GithubHelp home page GithubHelp logo

prayag2 / konsave Goto Github PK

View Code? Open in Web Editor NEW
918.0 12.0 35.0 154 KB

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!

License: GNU General Public License v3.0

Python 93.88% Makefile 6.12%
kde-plasma-customizatios konsave linux kde plasma kde-plasma plasma-5 customization desktop-environment backup

konsave's Introduction

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

konsave's People

Contributors

gaareth avatar gadgieops avatar hitimr avatar kanishkanarch avatar luizoti avatar majabojarska avatar menacingperson avatar prayag2 avatar scarf005 avatar selplacei avatar urban-1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

konsave's Issues

Export leads to error

Describe the bug

Exporting profile leads to error and despite of getting the message that "Konsave: Successfully exported to ..." the .knsv file is not created.

To reproduce

❯  konsave --save "My_KDE_profile"
Konsave: Saving profile...
Konsave: Profile saved successfully!
❯  konsave --list
Konsave profiles:
ID      NAME
1       My_KDE_profile
❯  konsave --save "My_KDE_profile"
Konsave: Profile with this name already exists
Try 'konsave -h' for more info!
❯  konsave --export-profile 1
Konsave: Exporting profile. it might take a minute or two...
Konsave: 'Mouse'
Try 'konsave -h' for more info!
Konsave: Exporting icon theme
Konsave: [Errno 2] No such file or directory: '/usr/share/icons/breath2-dark/actions/16/view-financial-account-> asset.svg'
Try 'konsave -h' for more info!
Konsave: [Errno 2] No such file or directory: '/usr/share/icons/breath2-dark/actions/16@2x/view-financial-account-> asset.svg'
Try 'konsave -h' for more info!
Konsave: Exporting plasma files
Konsave: Source path doesn't exist
Try 'konsave -h' for more info!
Konsave: Exporting config files
Konsave: Creating archive
Konsave: Successfully exported to /home/mehrad/my_kde_profile.knsv

which cause ErrorCode: 130

❯  ls -al /home/mehrad/my_kde_profile.knsv
ls: cannot access '/home/mehrad/my_kde_profile.knsv': No such file or directory
❯  konsave --version
Konsave: 1.1.6

Expected behavior

No error, and having the .knsv output file.

Screenshots

-- Not Applicable. --

System information

  • OS or Linux distribution:
    • ❯ inxi --width 80 --system --graphics
      System:
        Host: Chrstphr Kernel: 5.11.2-1-MANJARO x86_64 bits: 64
        Desktop: KDE Plasma 5.21.2 Distro: Manjaro Linux
      Graphics:
        Device-1: Intel Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics
        driver: i915 v: kernel
        Device-2: NVIDIA GP106 [GeForce GTX 1060 6GB] driver: nvidia v: 460.56
        Display: x11 server: X.Org 1.20.10 driver: loaded: modesetting,nvidia
        unloaded: nouveau resolution: 1: 1080x1920~60Hz 2: 1080x1920~60Hz
        3: 1920x1080~60Hz
        OpenGL: renderer: GeForce GTX 1060 6GB/PCIe/SSE2 v: 4.6.0 NVIDIA 460.56
      
  • How did you install Konsave? [from the distro's package manager, using pip, directly from git, ...]
    • ❯  pamac search konsave
      konsave                                                                  [Installed] 1.1.6-1  AUR
      Save and apply your KDE Plasma customizations with just one command!
      
  • What version of Konsave are you using? Did you try updating?
    • The 1.1.6 is the latest at this moment.

[Feature Request] Better scripting support

Is your feature request related to a problem? Please describe.
Scriptable tools are useful. Treating "profiles" as opaque units, while possibly convenient for some uses, also hurts flexibility.

Describe the solution you'd like
Support for a simple option like --stdout, --save -, --save /dev/stdout, or --print <profile> would be great.

If you want to take it further, accepting input from STDIN (E.G. --i -) could also be interesting. Then you could do stuff like nc -l -p 1234 | konsave -i - on one machine and konsave -s - | nc newLaptop.localLAN 1234 to instantly transfer or synchronize your configuration.

Describe alternatives you've considered
The alternative is the current system of opaque "profiles" and ".knsv" files, which can be both messy in workflow (I.E. requires mucking with files) and messy in its effect on the system (I.E. saves state in persistent files, ironically creating even more hidden configuration to worry about, plus filepath collisions and so on).

Additional context
Since it appears that profiles are file hierarchies and ".knsv"s are ZIP archives, it's not clear what exactly should be emitted.
Personally I think either raw binary data or Base64 would be fine, as long as it's specified in the help text.

Also save ~/.local/share/konsole

Describe the bug
konsave does not save ~/.local/share/konsole

To reproduce

  1. Have the folder
  2. Save to profile
  3. Delete folder
  4. Apply profile

Expected behavior
It should have the ~/.local/share/konsole folder

Screenshots
If applicable, add screenshots to help explain your problem.

System information

  • OS or Linux distribution: Arch
  • How did you install Konsave? AUR Package is broken, I used pip
  • What version of Konsave are you using? Did you try updating? 2.1.1

Additional context
Add any other context about the problem here.

Looks like it failed when it actually succeeded (..,?)

Hi,
It looks like consave (when saving the current profile) looks for some directories (.config/Kvantum, .config/klipperrc etc...) and if it does not find them, it prints:

[Errno 2] No such file or directory: '/home/username/.config/klipperrc'

to stdout. The program then doesn't display more errors (the other missing dirs) and exit with code 0 (SUCCESS)

This is very confusing, and I can't know if the save file created is correct/complete or not.

Optimization file size

Is your feature request related to a problem? Please describe.
The problem is when uploading the file to github. Git maxes at 100mb, and my current file is now 150MB; which in my mind is huge, but I don't know.

Describe the solution you'd like
Probably I have a lot of images, or big file settings, so I would love to understand how can I check the files that are making this file so big

Support Python >=3.7

Konsave's README declares that the minimal required Python version "above 3.9". I'm guessing @Prayag2 meant "at least 3.9", since 3.10 is not released yet.

My question is, what causes this requirement? Correct me if I'm wrong, but it seems like Konsave could run even on >=3.6. Requiring such narrow (and recent) version range limits the availability for people who don't use Python >=3.9. The package does not enforce a specific Python version (e.g. via setuptools), so fortunately it's still possible to install Konsave in environments with earlier Python versions.

I propose to expand the supported Python version range to >=3.7 and enforce it via python_requires.

Can't add custom locations?

Describe the bug
See information below

Expected behavior
Backup files without issues

System information

  • OS or Linux distribution: Debian Sid
  • How did you install Konsave? PIP
  • What version of Konsave are you using? 2.1.2 Did you try updating? yes

Additional context

I keep getting:

Konsave: Exporting "zsh"...
Konsave: Source path doesn't exist
Please check the log at /home/tom/konsave_log.txt for more details.

which refers to this error:

Traceback (most recent call last):
  File "/home/tom/.local/lib/python3.10/site-packages/konsave/funcs.py", line 40, in inner_func
    function = func(*args, **kwargs)
  File "/home/tom/.local/lib/python3.10/site-packages/konsave/funcs.py", line 100, in copy
    assert os.path.exists(source), "Source path doesn't exist"
AssertionError: Source path doesn't exist

This is my config:


save:

    [...]

    zsh:
        location: "$HOME"
        entries:
            - .zshrc

I have also tried pointing the location using the full location and get the same error. What is happening and how do I fix it?

I wrote a PKGBUILD and made a AUR package for Archlinux User

Is your feature request related to a problem? Please describe.

I installed it and try to use konsave -s and it raised error(either happended when I use pip or AUR package to install)

Konsave: Saving profile...
Konsave: No config file found! Using default config (/usr/lib/python3.9/site-packages/konsave/conf.yaml).
Konsave: [Errno 2] No such file or directory: '/usr/lib/python3.9/site-packages/konsave/conf.yaml'
Try 'konsave -h' for more info!

it seems setup.py won‘t copy conf.yaml to /usr/lib/python3.9/site-packages/konsave/conf.yaml and this file don‘t exist
image

But, it seems work anyway, it can save profiles, generate ksnv file and apply a profile.

I am not sure if there are other problems since I don't have many customizations of KDE, at least it works on my laptop and PC(both KDE version 5.21.2).

Describe the solution you'd like
I wrote a PKGBUILD for Archlinux User to install it from AUR

And now Archlinux User can install it via

yay -S konsave

Additional context

Python version: 3.9.2
konsave version: 1.0.5 (dowmloaded from the tar.gz release)
OS: Archlinux x86_64
KDE version: 5.21.2

I am a bit busy now, maybe later I will survey the issue with conf.yaml (seems the latest pr has fixed it but there is still some problems on my pc )

Make saving configuration easier

I love your tool. This is what I needed to save all plasma settings!

To export it to a file first you have to save a configuruation with a name and then export it. However it exports it to ~/.knsv
I want it to immediately export it to my current directory, for example my dotfiles.

Can you make it easier to save the configuration for backup purposes for example to use konsave -e mybackup.knsv ?
Which automatically makes a backup, zips and saves to a directory (or the current directory)

Understood me? Thank you!

Thank you for making this!

Hey @Prayag2, thank you so much for taking the time to make this! 😎

This is something I've wanted to see for quite a while and I even discussed this concept on a recent episode of Destination Linux podcast so as you can imagine I was very excited to see it being made less than a week after talking about it on the show. :D I'm not sure if you are familiar with the show or not but either way, I just wanted to say this is something that will be very helpful for a lot of people and will allow me to more easily test out KDE based distros with my full setup and that is so awesome to have that possibility now.

I couldn't find a way to contact you outside of the issues so I am sorry for pinging you in the issues for a non-issue but anyway thanks again.

Export has scary overwrite behaviour.

Describe the bug

  • Apparently -e always saves to the user home? So if you cd to a subdirectory hoping to contain everything, then it still writes to your top-level user home.
  • When the output file $HOME/<PROFILENAME>.knsv already exists, then Konsave just straight-up overwrites it.
  • When the seemingly unrelated path $HOME/<PROFILENAME>.zip exists, then Konsave also just straight-up overwrites (and then removes) that too.
  • Konsave does not give you the opportunity to specify output filename either.
  • So the default behaviour of konsave -e is apparently to immediately overwrite two seemingly unrelated filepaths that the user didn't specify, in a location that the user also didn't specify, which also happens to be the top-level user home.
  • When the output already exists and is a directory, Konsave creates the file <PROFILENAME>.zip inside it instead.
  • When the output already exists and <PROFILENAME>.zip also already exists in it, then Konsave finally fails instead of overwriting (but I think not deliberately?).
  • If the profile name includes capitals, the "Successfully exported" message printed at the end switches them to lower-case instead, meaning the path reported to the user is wrong.

To reproduce
Use the konsave -e feature.

Expected behavior
Tools should never overwrite user data unless explicitly instructed to do so.

E.G.:

  • Do mktemp (Python: probably import tempfile) for the scratch file instead of putting it next to the output.
  • Write to os.getcwd() instead of user home.
  • Check for existing file before rename, and either fail or prompt (possibly depending on -f flag) instead of overwriting.
  • Possibly allow/require user to explicitly specify output filename/path.

[Feature Request] Ability to use both IDs and names to save/export profiles

** Description**
This may be intended behavior BUT it does not match use-case of the gif/video in the readme/github landing page.

konsave -l produces a list such as:

Konsave profiles:
ID            NAME
1              ProfileA
2              ProfileB

Attempting konsave -a 2 produces

Konsave: Profile not found :(
Please check the log at <$HOME>/.cache/konsave_log.txt for more details

It's unclear what the ID is used for. The landing page video shows the user typing konsave --apply 2 to apply a new profile.

I just installed konsave from pip today and its version 2.2.0

System information

  • running Rocky Linux 8 (red hat clone)
  • How did you install Konsave? using pip
  • What version of Konsave are you using? version 2.2.0
  • Did you try updating? no, but 2.2.0 looks like latest release per github sidebar

Again, this could be intended behavior, and then the issue is that the video is incorrect. Or I've messed something up on my end :) It's a new laptop I'm trying to get up and going.

Import doesn't seem to work in a fresh os install

I created and saved a profile in a previous installation. I had to reinstall whole OS again and I tried to import the profile I created before but it fails:

konsave -i ~/.nextcloud/dotfiles/portatil/fedora-konsave.knsv 
Konsave: Importing profile. it might take a minute or two...
Konsave: [Errno 2] No such file or directory: '/home/user/.config/konsave/temp/fedora-konsave/conf.yaml'
Please check the log at /home/user/konsave_log.txt for more details.
Konsave: Source path doesn't exist
Please check the log at /home/user/konsave_log.txt for more details.
Konsave: [Errno 2] No such file or directory: '/home/user/.config/konsave/temp/fedora-konsave/conf.yaml'
Please check the log at /home/user/konsave_log.txt for more details.

Here's the log:

konsave_log.txt

[Bug] Not backing up widgets properly

Describe the bug

Multiple Plasma Widgets on my Arch KDE desktops, saved to an export file, do not appear after importing into an Arch-derivative KDE VM. Source & Target DEs are Plasma 5.26.2.

To reproduce
Steps to reproduce the behaviour. [click this, type that, see error]:

  1. Created multiple Plasma Widgets on my Arch KDE desktops
  2. Installed konsave from AUR; v2.1.2.
  3. Inspected its conf.yaml, confirmed it already has entry for - wallpapers; i inserted - autostart at Line 68.
  4. Created backup via konsave -s {filename}.
  5. Created export file via konsave -e {filename}.
  6. In VM, imported via konsave -i {filename}.
  7. Logged out/in.
  8. Neither my Source wallpaper, nor any of its several desktop widgets, have appeared in the VM.

Expected behaviour
A clear and concise description of what you expected to happen:

  1. I'd hoped that my Source wallpaper, & all of its desktop widgets, would have appeared in the VM
  2. It took cumulatively more than a day to create & finesse all those widgets, so i'd really hoped i could protect my work via konsave, but also be able to easily copy all those widgets to other Plasmas.

Screenshots
If applicable, add screenshots to help explain your problem -- the RHS part of my Arch KDE [source] desktop:

System information

  • OS or Linux distribution: [Ubuntu, Arch, ...] = ArchLinux KDE source, ArchLinux GUI-Installer VM target.
  • How did you install Konsave? [from the distro's package manager, using pip, directly from git, ...] = AUR [paru konsave]; source & target.
  • What version of Konsave are you using? Did you try updating? = v2.1.2 [ie, current/latest version]; source & target.

Additional context
Commands used, output seen:

Source:

guigirl@archlinuxTower[~] 05:00:05 Wed Nov 02 $> konsave -s RHS-Panel_LHS-Conky__20221102_Widgets_on_Activity1_rhs_Conkies_on_Activity1+2_lhs
Konsave: Saving profile...
Konsave: Profile saved successfully!
guigirl@archlinuxTower[~] 05:01:11 Wed Nov 02 $> 
guigirl@archlinuxTower[~] 05:21:50 Wed Nov 02 $> konsave -l
Konsave profiles:
ID      NAME
1       RHS-Panel_LHS-Conky__20221102_Widgets_on_Activity1_rhs_Conkies_on_Activity1+2_lhs
guigirl@archlinuxTower[~] 05:21:52 Wed Nov 02 $>
guigirl@archlinuxTower[~] 05:24:22 Wed Nov 02 $> konsave -e RHS-Panel_LHS-Conky__20221102_Widgets_on_Activity1_rhs_Conkies_on_Activity1+2_lhs
Konsave: Exporting profile. it might take a minute or two...
Konsave: Exporting "configs"...
Konsave: Exporting "app_layouts"...
Konsave: Exporting "plasma"...
Konsave: Exporting "kwin"...
Konsave: Exporting "konsole"...
Konsave: Exporting "fonts"...
Konsave: Exporting "color-schemes"...
Konsave: Exporting "aurorae"...
Konsave: Exporting "icons"...
Konsave: Exporting "wallpapers"...
Konsave: Exporting ".fonts"...
Konsave: Exporting ".themes"...
Konsave: Exporting ".icons"...
Konsave: Creating archive
Konsave: Successfully exported to /home/guigirl/rhs-panel_lhs-conky__20221102_widgets_on_activity1_rhs_conkies_on_activity1+2_lhs.knsv
guigirl@archlinuxTower[~] 05:25:15 Wed Nov 02 $>

Target:

 [guigirl@algi hostfiles]$ konsave -i /home/guigirl/hostfiles/RHS-Panel_LHS-Conky__20221102_Widgets_on_Activity1_rhs_Conkies_on_Activity1+2_lhs.knsv
Konsave: Importing profile. it might take a minute or two...
Konsave: Importing "plasma"...
Konsave: Importing "kwin"...
Konsave: Importing "konsole"...
Konsave: Importing "fonts"...
Konsave: Importing "color-schemes"...
Konsave: Importing "aurorae"...
Konsave: Importing "icons"...
Konsave: Importing "wallpapers"...
Konsave: Importing ".fonts"...
Konsave: Importing ".themes"...
Konsave: Importing ".icons"...
Konsave: Profile successfully imported!
[guigirl@algi hostfiles]$
[guigirl@algi hostfiles]$ cd /home/guigirl/.config/konsave/profiles
[guigirl@algi profiles]$ ls -la
total 20
drwxr-xr-x 5 guigirl guigirl 4096 Nov  2 06:07 .
drwxr-xr-x 4 guigirl guigirl 4096 Nov  2 05:54 ..
drwxr-xr-x 4 guigirl guigirl 4096 Nov  2 04:12 My_ALG_20221102_0412
drwxr-xr-x 4 guigirl guigirl 4096 Nov  2 04:26 My_ALG_20221102_0426
drwxr-xr-x 4 guigirl guigirl 4096 Nov  2 06:07 RHS-Panel_LHS-Conky__20221102_Widgets_on_Activity1_rhs_Conkies_on_Activity1+2_lhs
[guigirl@algi profiles]$
[guigirl@algi profiles]$ konsave -a RHS-Panel_LHS-Conky__20221102_Widgets_on_Activity1_rhs_Conkies_on_Activity1+2_lhs
Konsave: Copying files...
Konsave: Profile applied successfully! please log-out and log-in to see the changes completely!
[guigirl@algi profiles]$

Make konsave a PyPI-ready package

Deploying to PyPI would simplify the install process and improve the availability of this tool.
This will also facilitate future, distro-specific adoption of this tool (e.g. on AUR).

I'm willing to make the necessary improvements soon:

  • Wrap the existing code in a setuptools-based package that can be deployed to PyPI.
  • Create GitHub Actions workflow for automatic deployment when a tag is pushed.
  • Some basic unit tests to run before deployment (?).

Creating this issue as a heads up that I'll be working on this 😉. Please leave your suggestions on this topic in the comments below.

Widget credentials should be stripped from files

Describe the bug
konsave by default saves and exports plasma-org.kde.plasma.desktop-appletsrc the file contains information about widgets including credentials used by the widgets for example event calendar, I'd expect credentials to be stripped since the config can be shared with others.

To reproduce

  • Add panel to desktop
  • install event calendar widget
  • add event calendar widget to panel
  • connect google calendar
  • run konsave -s profile
  • run konsave -e profile
  • check save/configs/plasma-org.kde.plasma.desktop-appletsrc you will see google calendar credentials in the file.

Expected behavior
credentials are stripped from files when using --save or --export.

Screenshots

event calendar credentials in plasma-org.kde.plasma.desktop-appletsrc inside .knsv file.
image

System information

  • OS or Linux distribution: EndeavourOS
  • How did you install Konsave? using pip
  • What version of Konsave are you using? Did you try updating? latest version 2.2.0

Additional context

Question: How to export to an external drive?

My home folder partition doesn't have enough space to export from konsave and trying to type a file path for the export file name throws an error. Is there a way for me to export to another drive?

konsave apply error

Describe the bug
A clear and concise description of what the bug is.

To reproduce
Steps to reproduce the behavior. [click this, type that, see error]

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

System information

  • OS or Linux distribution: [Ubuntu, Arch, ...]
  • How did you install Konsave? [from the distro's package manager, using pip, directly from git, ...]
  • What version of Konsave are you using? Did you try updating?

Additional context
Add any other context about the problem here.

Applying an import from my desktop to my laptop I get this error message:

Konsave: [Errno 2] No such file or directory: '/home/ed/.config/konsave/profilesedded/'

Selection_001

I'm using Fedora 33 on both machines. Both running Plasma 5.20.5.

Konsave: 'NoneType' object is not iterable

Describe the bug
When saving a profile, there is an error message of Konsave: 'NoneType' object is not iterable

To reproduce
Install konsave via python -m pip install konsave
Run konsave -s [profile name]

Expected behavior
I expected kde settings to save, and not create an empty file (which is what happened)

Screenshots
konsave -s kde-latte:

image

Konsave: Saving profile...
Konsave: 'NoneType' object is not iterable
Please check the log at /root/konsave_log.txt for more details.

[01/04/2022 15:49:09]
Traceback (most recent call last):

image

File "/usr/lib/python3.10/site-packages/konsave/funcs.py", line 40, in inner_func
function = func(*args, **kwargs)
File "/usr/lib/python3.10/site-packages/konsave/funcs.py", line 176, in save_profile
for entry in konsave_config[section]["entries"]:
TypeError: 'NoneType' object is not iterable

System information

  • OS or Linux distribution: Manjaro
  • How did you install Konsave? python -m pip install konsave
  • What version of Konsave are you using? Did you try updating? 2.1.1

Additional context
Python version 3.10.2, Manjaro 21.2.5

Config Shenanigans

Playing with this - loving it... despite the error mentioned in the other issue.

Initially for one LIGHT and one DARK config.

  1. Set Global theme (Breeze) plasma (breeze with transparency)
  2. Application style (kvantum - transparent Dolphin, Darkish one edited from Flatblur-Manjaro)
  3. Set personal colours (Grey-green combination)
  4. IMPORTANT - set DEFAULT Konsole colour to Darkish profile
  5. Run consave -s Dark && consave -l to check.
  6. repeat for a lighter theme.

To ensure Dolphin got refreshed, I decided to kill that on change and latte definitely needs a refresh if you run that.

#!/bin/bash
consave -a 1
latte-dock --replace &&
plasmashell --replace &&

if pgrep -x "dolphin"
    then pkill dolphin
fi

Make one script for each profile (1 is Dark, 2 is Light) and that's about it.

If anything else is dodgy, it's fixed by doing kwin_x11 --replace

[Code Quality] Add Type Hinting

Is your feature request related to a problem? Please describe.
adding type hint will make developing konsave much easier.

Describe the solution you'd like

  • add type hint to project code
  • use pydantic or msgspec to validate and generate JSON schema for config file

Additional context
willing to create a PR for it.

parameter handling

first attempt:

.local/bin/konfsave s
Traceback (most recent call last):
File ".local/bin/konfsave", line 8, in
sys.exit(main())
File "/home/miguel/.local/lib/python3.8/site-packages/konfsave/main.py", line 15, in main
actions.parse_arguments(sys.argv)
File "/home/miguel/.local/lib/python3.8/site-packages/konfsave/actions.py", line 51, in parse_arguments
next(v for k, v in {
File "/home/miguel/.local/lib/python3.8/site-packages/konfsave/actions.py", line 227, in action_save
profiles.save(
File "/home/miguel/.local/lib/python3.8/site-packages/konfsave/profiles.py", line 124, in save
raise RuntimeError('Attempted to save the current profile, but no profile is active.')
RuntimeError: Attempted to save the current profile, but no profile is active.

second attempt. Why invalid ?

.local/bin/konfsave s 20200509
[CRITICAL] The profile name "20200509" is invalid.

third attempt:

.local/bin/konfsave s normal
Traceback (most recent call last):
File ".local/bin/konfsave", line 8, in
sys.exit(main())
File "/home/miguel/.local/lib/python3.8/site-packages/konfsave/main.py", line 15, in main
actions.parse_arguments(sys.argv)
File "/home/miguel/.local/lib/python3.8/site-packages/konfsave/actions.py", line 51, in parse_arguments
next(v for k, v in {
File "/home/miguel/.local/lib/python3.8/site-packages/konfsave/actions.py", line 227, in action_save
profiles.save(
File "/home/miguel/.local/lib/python3.8/site-packages/konfsave/profiles.py", line 132, in save
elif not path.is_relative_to(Path.home()):
AttributeError: 'PosixPath' object has no attribute 'is_relative_to'

A better parameter handling with useful and clear error messages is a must.
Displaying crude Traceback error messages to the user is not acceptable.

Update PyYaml version

Describe the bug
Fails to run any command

To reproduce
Just install via AUR on arch. Thou maybe need to have installed latest PyYaml before that.

Expected behavior
Be able to run it.

Screenshots

!  ~  konsave -h                                             
/usr/lib/python3.10/site-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning: git-archive.dev8b63d73a17 is an invalid version and will not be supported in a future release
warnings.warn(
/usr/lib/python3.10/site-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning: 2.0.5-build-libtorrent-rasterbar-src-libtorrent-rasterbar-2.0.5-bindings-python is an invalid version and will not be supported in a future release
warnings.warn(
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 573, in _build_master
ws.require(__requires__)
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 891, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 782, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (PyYAML 6.0 (/usr/lib/python3.10/site-packages), Requirement.parse('PyYaml==5.4.1'), {'Konsave'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/bin/konsave", line 33, in <module>
sys.exit(load_entry_point('Konsave==2.1.1', 'console_scripts', 'konsave')())
File "/usr/bin/konsave", line 25, in importlib_load_entry_point
return next(matches).load()
File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 171, in load
module = import_module(match.group('module'))
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/usr/lib/python3.10/site-packages/konsave/__init__.py", line 3, in <module>
from pkg_resources import get_distribution, DistributionNotFound
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3266, in <module>
def _initialize_master_working_set():
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3240, in _call_aside
f(*args, **kwargs)
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3278, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 575, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 588, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 777, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'PyYaml==5.4.1' distribution was not found and is required by Konsave
!  ~  sudo pip install PyYaml                                    MSK
Requirement already satisfied: PyYaml in /usr/lib/python3.10/site-packages (6.0)

System information

Additional context
I might have some problems with Python packages.

.knsv files save paths as absolute, including the user's username

Issue: exporting and importing profiles saves their absolute path relative to root, which means that imported profiles get extracted to the home directory of the same user that exported them. This pretty much defeats the point of sharing profiles between people or users.

Possible fix: save only the contents of the actual profile and derive its name from the name of the .knsv archive. Extract the profile to wherever Konsave keeps its configs on the given system, not to the same absolute path as the system that packaged it.

Order of listed profiles

Are profiles listed in any particular order?

$ konsave -l
Konsave profiles:
ID      NAME
1       alvaro-20221130_080810
2       alvaro-20221125_080803
3       alvaro-20221213_090958
4       alvaro-20221128_090926
5       alvaro-20221130_070734

In this example, the latest profile is shown right in the middle (nr. 3).

python3+ support

Describe the bug
A clear and concise description of what the bug is.
Konsave supports only python 3.8+

To reproduce
Steps to reproduce the behavior. [click this, type that, see error]
konsave -a 1

Expected behavior
A clear and concise description of what you expected to happen.
Apply config

Screenshots
If applicable, add screenshots to help explain your problem.
Image

System information

  • OS or Linux distribution:
    Kubuntu 18.04
  • How did you install Konsave?
    pip
  • What version of Konsave are you using? Did you try updating?
    Konsave: 1.1.3

Additional context
Add any other context about the problem here.

I receve this error when i try to apply config:
Konsave: copytree() got an unexpected keyword argument 'dirs_exist_ok'

On shutil docs i found this note:
New in version 3.8: The dirs_exist_ok parameter.

Perhaps an internal copy module for konsave needs to be created, this may solve compatibility problems.

Issues with saving configurations.

Is your feature request related to a problem? Please describe.
Playing with PlasmaConfigSaver, also consave/konsave/konfsave there are issues.

  1. We need options for simpler 'GlobalTheme' style saving which won't backup Latte unless something is specifically included. For example, I set up a 'Gruv' profile - latte and event calendar and saved it.
  2. Set up Nord, new tweaks to event calendar, modified and backed up the latte style.
  3. restored 'Gruv' and lost the changes to the event calendar.

I think an informative configuration file with lines to include/exclude is good.
e.g.
OPTIONS # save as global theme # include plasma style and colours, decorations, fonts # save complete plasma config # Save Konsole profile

Currently I have regular timeshift backups, though I'm interested to try different workflow ideas.
So I would like to do profiles like....

  1. Dark-Gruv Plasma
  2. Dark-Gruv Theme
  3. Nord Plasma
  4. Nord Theme

I hope it makes some sense. Right now if I do any modification to my 'Gruv' that I want to also include in my 'Library' and 'Nord' profiles, it's not easy to do... it's duplicating the effort.

The most useful task this software could manage IMO would be to create a Global Theme which can appear in the Plasma settings applet.

does not apply (at all) or save profile properly

I use KDE Plasma 5.23.4 (on Arch Linux). Maybe this is the reason, idk.
Technically, it saves the profile, but it prints this into terminal:
Konsave: Saving profile... Konsave: 'NoneType' object is not iterable Please check the log at /home/crowbar/konsave_log.txt for more details.

And this is from the log:
Traceback (most recent call last): File "/home/crowbar/.local/lib/python3.9/site-packages/konsave/funcs.py", line 40, in inner_func function = func(*args, **kwargs) File "/home/crowbar/.local/lib/python3.9/site-packages/konsave/funcs.py", line 176, in save_profile for entry in konsave_config[section]["entries"]: TypeError: 'NoneType' object is not iterable

I tried to apply the theme and it said that it was applied, but nothing changed even after restart.

Original theme isnt completely restored

Describe the bug
First of all, congratulations on your work ! Konsave seems like the perfect tool i was looking for. I'm having a little trouble using it. The original theme isn't completely restored by konsave for me.

To reproduce

  • Save the original theme to konsave with konsave -s manjaro
  • Install the new theme (used https://github.com/vinceliuice/WhiteSur-kde)
  • Apply the new theme
  • Save the new desktop with konsave -s sur
  • Restore the original theme with konsave -a 1

Expected behavior
The original theme being completely restored.

Screenshots
Original theme
manjaro1
imagem qualquer

The original theme restored
manjaro2

System information

  • Manjaro 21.1.1
  • Konsave installed from distro repository
  • Konsave version 2.0.2-1

Additional context
I would like to create a GUI for konsave, but before i start to work i would like to se it working properly.

Clear current profile and revert to default/fresh KDE install

Would it be possible to also make an option to wipe the current profile settings, which would the get recreated at next login? This would give you the ability to start fresh with a default profile after a major KDE update or if you just wanted to get back to a stock profile quickly.

Thanks for your work.

Save Dolphin Configuration

Is your feature request related to a problem? Please describe.
It would be great to be able to save the setttings for dolphin in your config.
I adjust the toolbar for dolphin and its layout for different Themes.

Describe the solution you'd like
Dolphin Configuration gets also saved.

Thanks for your effort, it is a nice tool.
The Plasma Config Saver Plasmoid was always buggy and slow for me. I am glad I found this alternative.

`The 'Konsave==2.0.2' distribution was not found and is required by the application`

Describe the bug

Upon running konsave (with or without any argument) I will get an error regarding konsave version 2.0.2 where as I'm on the latest (2.2.0):

konsave
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 629, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 966, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 827, in resolve
    dist = self._resolve_dist(
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 873, in _resolve_dist
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.VersionConflict: (Konsave 2.2.0 (/usr/lib/python3.10/site-packages), Requirement.parse('Konsave==2.0.2'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/mehrad/.local/bin/konsave", line 33, in <module>
    sys.exit(load_entry_point('Konsave==2.0.2', 'console_scripts', 'konsave')())
  File "/home/mehrad/.local/bin/konsave", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 171, in load
    module = import_module(match.group('module'))
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/lib/python3.10/site-packages/konsave/__init__.py", line 3, in <module>
    from pkg_resources import get_distribution, DistributionNotFound
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3324, in <module>
    def _initialize_master_working_set():
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3298, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3336, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 631, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 644, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 827, in resolve
    dist = self._resolve_dist(
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 868, in _resolve_dist
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'Konsave==2.0.2' distribution was not found and is required by the application

To reproduce

Run konsave or konsave --version or konsave --wipe or konsave --list or etc.

I tried uninstalling and re-installing. Same situation. I also tried removing (well, renaming) the ~/.config/konsave/ and see if that has any effect. But still I get the same exact error.

Expected behavior

Not getting error

Screenshots

--not applicable imho--

System information

  • OS or Linux distribution: Manjaro (fully updated)
  • How did you install Konsave? From AUR
  • What version of Konsave are you using? Did you try updating? 2.2.0-1 AUR
python --version
Python 3.10.10

Additional context

--not applicable--

konsave --diff

Is your feature request related to a problem? Please describe.
Maybe it should have this, so you can differentiate between your saved .knsv and your current config

Describe the solution you'd like
konsave -d <file>.knsv

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

--apply removes Konsole status

Describe the bug
Plasma remembers Konsole status on startup (open windows and tabs, and tab customisations like title or colour). When I run konsave --apply and restart, I get Konsole windows restored, but everything else is lost (each window only has the default tab in the home directory).

To reproduce

  1. Open two Konsole windows.
  2. Add some tabs and customise them (title, colour, working directory)
  3. Save a profile with konsave --save konsole-test
  4. Optionally verify you get the same Konsole windows if you restart.
  5. Restore the profile (konsave --apply konsole-test) and restart.
  6. You'll get two Konsole windows, but not the customised tabs.

Expected behavior
I get my Konsole windows back.

System information

  • OS or Linux distribution:
    • Ubuntu 22.04 LTS with KDE backports
    • KDE Plasma 5.25.5
  • How did you install Konsave? python -m pip install konsave
  • What version of Konsave are you using? 2.1.2
  • Did you try updating? I understand I have latest release.

Konsave export profile broken

 ▲ nmiculinic@atlas ~ konsave -l   
Konsave profiles:
ID      NAME
1       default
 ▲ nmiculinic@atlas ~ konsave -e 1
Konsave: Exporting profile. it might take a minute or two...
Konsave: 'cursorTheme'
Try 'konsave -h' for more info!
Konsave: join() argument must be str, bytes, or os.PathLike object, not 'NoneType'
Try 'konsave -h' for more info!
konsave in ./.local/lib/python3.9/site-packages (1.1.5)

Doesn't seem to work on Endeavor when installed via pip

Describe the bug
Seems to install normally but the tool cannot be found after install.
If installed under root, it will not export anything as the file.knsv does not get created and there is no error messages

To reproduce
Install Endeavor, install konsave, attempt to use it and fail?

Expected behavior
throw error messages or create the file.knsv

Screenshots
N/A

System information

  • OS or Linux distribution: Endeavor
  • How did you install Konsave? pip
  • What version of Konsave are you using? Did you try updating?
    2.1.2. / fresh install.

Additional context
Endeavor is running inside a Qemu VM.

Wallpaper not saved

I reinstalled my system and imported my saved configuration.
All parameters are ok except the wallpaper that wasn't restored.
Maybe it does not backup the wallpaper image.

[Feature Request] Save SDDM Theme

I was wondering, if it is possible to also save the SSDM login screen and if so what folders or files I have to add to the configuration.
I know this would requrire root permissions, but if I run konsave with sudo it says command not found.

Import issues: ' path' ,not 'name'; logout required without warning

Describe the bug
Importing a profile has issues.

  • The field for the name should state that a path is to be entered.
    (It would be more intuitive if the import button opened an open dialog.)
  • After entering a path to a .knsv and clicking import the desktop goes black, and one has to log out and login again to continue work.

To reproduce
enter path, not name
click import

Expected behavior
Enter default text in field, to tell that a path is required.

If possible, apply the customisations without login-cycle.

[Feature suggestion] Alternatively, warn in a dialog after clicking mport that logout-login will be necessary, and that unexpected change of appearances are temporary and harmless, with an option to cancel.

System information

Konsave 1.6
Installed via pamac gui

Operating System: Manjaro Linux
KDE Plasma Version: 5.26.5
KDE Frameworks Version: 5.102.0
Qt Version: 5.15.8
Kernel Version: 6.1.9-1-MANJARO (64-bit)
Graphics Platform: X11

Introduce project guidelines: code style, docstring style, formatter, linter, etc.

As this little project is gaining traction, it would be good to introduce code guidelines. Specifically docstring style, formatting and linting tools. Everyone has some coding habits and prefers some tools over other. However, in a project it would be best to agree on some rules, just to keep the codebase clean and uniform.

This is obviously a topic for discussion. From my side, I'd like to propose the following:

  • PEP8 code style, as it's the official Python style guide. To check for code style compliance, a linter should be used, such as Flake8 or Pylint. Both check the code against PEP8. Pylint is stricter, but also more elastic. Both Flake8 and Pylint can be tweaked if necessary. I would go with Pylint after all.
  • Black formatter, as it is PEP8-compliant and has sensible defaults. It can be run also as a pre-commit Git hook to format the codebase on commit. Integrates well with various editors and IDEs.
  • Numpy docstring style. It's pretty common and well supported. Can be paired with Darglint to lint docstrings.

The above guidelines can be later described via a CONTRIBUTING.md file together with the preferred contributing workflow.

Konsave: 'NoneType' object is not subscriptable

Describe the bug

On Fedora 35 with Python 3.10 I get this message on save

❯ konsave --force --save Default
Konsave: Saving profile...
Konsave: list indices must be integers or slices, not str
Please check the log at /home/rabin/konsave_log.txt for more details.
Konsave: 'NoneType' object is not subscriptable
Please check the log at /home/rabin/konsave_log.txt for more details.

To reproduce

Expected behavior

Not to fail, and a better error handling.

Screenshots

System information

  • Fedora 35
  • pip install --user
  • 2.1.1

Additional context

File: /home/user/konsave_log.txt
[02/11/2021 10:22:58]
Traceback (most recent call last):
  File "/home/user/.local/lib/python3.10/site-packages/konsave/funcs.py", line 40, in inner_func
    function = func(*args, **kwargs)
  File "/home/user/.local/lib/python3.10/site-packages/konsave/funcs.py", line 127, in read_konsave_config
    parse_keywords(tokens, TOKEN_SYMBOL, konsave_config)
  File "/home/user/.local/lib/python3.10/site-packages/konsave/parse.py", line 54, in parse_keywords
    location = parsed[item][name]["location"]
TypeError: list indices must be integers or slices, not str

[02/11/2021 10:22:58]
Traceback (most recent call last):
  File "/home/user/.local/lib/python3.10/site-packages/konsave/funcs.py", line 40, in inner_func
    function = func(*args, **kwargs)
  File "/home/user/.local/lib/python3.10/site-packages/konsave/funcs.py", line 170, in save_profile
    konsave_config = read_konsave_config(CONFIG_FILE)["save"]
TypeError: 'NoneType' object is not subscriptable

Gitmodules

Is your feature request related to a problem? Please describe.
I would like to save kde theme without needing to install pip

Describe the solution you'd like
Gitmodules. https://github.com/anishathalye/dotbot/blob/master/.gitmodules
I was hoping to use this repo the same way and i believe both projects are using the same lib.
I think that it would remove the only requirement you have.

Describe alternatives you've considered
None. Its just a petty thing, granted....
Just love what you did, I've learned a lot. Still am...

Additional context
I tried opening a branch 📦
image

Ansible adoption

Describe the solution you'd like
This is a great project and I am truly appreciative of all the work of yourself and the contributors. I am finding it somewhat difficult to integrate into my desktop automation code using ansible.

Describe alternatives you've considered
konsave is my alternative!

Additional context
My use case is that I must repeatedly spin up/down VMs with a KDE desktop on demand from our users. I use ansible to make sure that all of the users account information and permissions are correctly set as well ensure security patches and applications are installed. KDE wise, we set some basic shortcuts and desktop layouts. A much nicer solution would be to create an ansible role to achieve this. Konsave is functional however there are many improvements needed that I would be much more comfortable dealing with in ansible.

I'd like to use this project as the basis of an ansible project that I will make publicly available and of course credit konsave and its authors as the initial inspiration. I would also be more than happy to continue contributing to this project as I am able to do so. Does this work ok for you?

Does not copy Background or Autostart apps

Describe the bug
Does not copy Background or Autostart apps

To reproduce

  1. Make a VM
  2. Apply an exported profile
  3. Logout and Login
  4. Wallpaper is the default one
  5. Autostart is empty in System Settings

Expected behavior
It should copy over the Autostart and Wallpaper

Screenshots
If applicable, add screenshots to help explain your problem.

System information

  • OS or Linux distribution: Arch
  • How did you install Konsave? Pip, AUR one is broken
  • What version of Konsave are you using? Did you try updating? 2.1.1 on both exporter and VM

Additional context
Add any other context about the problem here.

konsave command not found

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

The install did not work for me.

Selection_001

I noticed in your script that the utility is placed in the ~/.local/bin/ path. The reason that it didn't work for me is because my path is defined differently in my environment.

PATH=/usr/share/Modules/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/ed/bin

Maybe in your script you should either look at the user's PATH environment and place it in one of their defined paths or insert ./local/bin in the user's environment or something.
In the meantime, I will be adding that path to my .bashrc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.