• Stars
    star
    940
  • Rank 48,627 (Top 1.0 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created over 3 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A command line program written in Python to let you backup your dotfiles and switch to other ones in an instant. Works out-of-the box on KDE Plasma!

Konsave (Save Linux Customization)

A CLI program that will let you save and apply your Linux customizations with just one command! Konsave also lets you share your dot files to your friends in an instant! It officially supports KDE Plasma but it can be used on all other desktop environments too!



Installation

Install from PyPI
python -m pip install konsave

Usage

Get Help

konsave -h or konsave --help

Save current configuration as a profile

konsave -s <profile name> or konsave --save <profile name>

Overwrite an already saved profile

konsave -s <profile name> -f or konsave -s <profile name> --force

List all profiles

konsave -l or konsave --list

Remove a profile

konsave -r <profile name> or konsave --remove <profile name>

Apply a profile

konsave -a <profile name> or konsave --apply <profile name> You may need to log out and log in to see all the changes.

Export a profile as a ".knsv" file to share it with your friends!

konsave -e <profile name> or konsave --export-profile <profile name>

Export a profile, setting the output dir and archive name

konsave -e <profile name> -d <archive directory> -n <archive name> or konsave --export-profile <profile name> --archive-directory <archive directory> --export-name <export name>

Export a profile, overwrite files if they already exist

konsave -e <profile name> -f or konsave --export-profile <profile name> --force *note: without --force, the export will be appended with the date and time to ensure unique naming and no data is overwritten

Import a ".knsv" file

konsave -i <path to the file> or konsave --import-profile <path to the file>

Show current version

konsave -v or konsave --version

Wipe all profiles

konsave -w or konsave --wipe


Editing the configuration file

You can make changes to Konsave's configuration file according to your needs. The configuration file is located in ~/.config/konsave/conf.yaml. When using Konsave for the first time, you'll be prompted to enter your desktop environment.
For KDE Plasma users, the configuration file will be pre-configured.

Format

The configuration file should be formatted in the following way:

---
save:
    name:
        location: "path/to/parent/directory"
        entries: 
        # These are files to be backed up.
        # They should be present in the specified location.
            - file1
            - file2
export:
    # This includes files which will be exported with your profile.
    # They will not be saved but only be exported and imported.
    # These may include files like complete icon packs and themes..
    name:
        location: "path/to/parent/directory"
        entries: 
            - file1
            - file2
...

Adding more files/folders to backup

You can add more files/folders in the configuration file like this:

save:
    name:
        location: "path/to/parent/directory"
        entries:
            - file1
            - file2
            - folder1
            - folder2
export:
    anotherName:
            location: "another/path/to/parent/directory"
            entries:
                - file1
                - file2
                - folder1
                - folder2

Using placeholders

You can use a few placeholders in the location of each entry in the configuration file. These are:
$HOME: the home directory
$CONFIG_DIR: refers to "$HOME/.config/"
$SHARE_DIR: refers to "$HOME/.local/share"
$BIN_DIR: refers to "$HOME/.local/bin"
${ENDS_WITH="text"}: for folders with different names on different computers whose names end with the same thing.
The best example for this is the ".default-release" folder of firefox.
${BEGINS_WITH="text"}: for folders with different names on different computers whose names start with the same thing.

save:
    firefox:
        location: "$HOME/.mozilla/firefox/${ENDS_WITH='.default-release'}"
        entries:
            - chrome

Contributing

Please read CONTRIBUTION.md for info about contributing.

License

This project uses GNU General Public License 3.0

More Repositories

1

kde_controlcentre

A beautiful control centre widget for KDE Plasma directly inspired by the MacOS control centre.
QML
273
star
2

pomo

A simple pomodoro timer written in bash with the ability to pause, play and skip timers. It works with most notification daemons available on Linux.
Shell
44
star
3

kde_modernclock

A modern looking clock widget for KDE Plasma! Written entirely in QML and Javascript, this clock makes your desktop look aesthetic! Inspired by the popular rainmeter skin "Mond".
QML
38
star
4

dotfiles

This repository includes all of my favourite Linux dotfiles that I have created.
CSS
33
star
5

kde_aestheticclock

An aesthetic looking and customizable widget with a built-in system monitor and media player! Inspired by a popular rainmeter skin.
QML
28
star
6

android-as-monitor-linux

This Python script facilitates the creation of a VNC server and establishes a virtual monitor on your Linux PC. The purpose is to enable seamless utilization of your Android device as a secondary monitor through either Wi-Fi or USB Tethering.
Python
24
star
7

kde_onedark

A dark theme for KDE Plasma inspired by the popular "One Dark" theme for text editors like VSCode, Vim, Sublime etc!
Shell
15
star
8

kde_relaxingsounds

This widget lets you play relaxing sounds right from your taskbar. It's for people who love the sounds of nature <3
QML
11
star
9

termdrop

A lightweight script to run any app as a dropdown in BSPWM. Used mostly for terminal emulators like Alacritty and Kitty.
Shell
9
star
10

wps-skin-installer

This script will let you install your favourite WPS Office skin in Linux!
Python
8
star
11

kde_minimalistclock

A minimalist looking clock for KDE!
QML
7
star
12

bspdd

BSPWM Dynamic Desktops! A tiny script to make dynamic desktops in BSPWM!
Shell
7
star
13

kde_nostalgia

A simple KDE Theme inspired by the Nostalgia14 color palette https://lospec.com/palette-list/nostalgi14
4
star
14

catppuccin_kde

Catppuccin's KDE Port
4
star
15

kde_entomophobia

Entomophobia is a disaturated theme based on the color palette created by https://lospec.com/musthbly
3
star
16

kde_gru

A desaturated bluish-green colour scheme that's easy on the eyes!
3
star
17

kde_tanjiro

A KDE theme with blur based on Tanjiro from Demon Slayer!
1
star
18

CodeLight

CodeLight is a simple, fast and clean css boilerplate which can be used to make beautiful websites.
HTML
1
star
19

funwithpaper

The Official Fun With Paper Website
CSS
1
star
20

kde_like_tiling_wm

Make plasma behave like a wm!
Python
1
star
21

VIST

Python
1
star