<p align="center">
Switch your dotfiles on demand!
<br><br>
<a href="./LICENSE.md"><img src="https://img.shields.io/badge/license-MIT-cba6f7.svg"></a>
</p>
PyDotSwitcher is a Python utility that allows you to easily switch between your dotfiles.
## Features
- 📋 **Declarable**: PDS will only change between dotfiles YOU declare.
- 📁 **Grouped**: Make a group to change multiple configurations at the same time. Especially useful for changing colorschemes!
- 🛟 **Safe**: PDS Backs up files before it switches them, and changes to the dotfiles are linked with your current configuration group.
- 📜 **Scriptable**: You can also embed shell scripts for doing stuff when changing themes.
## Installation:
Install using PIP:
`pip install pydotswitcher` or 'python -m pip install pydotswitcher'
For Arch Linux users, install the `python-pydotswitcher` package
## Usage
Out of the box, PDS won't do anything. That is because you have to declare what files you want.
But first, a configuration group is needed:
`$ dotswitch -n MyConfig # Creates the MyConfig Group if it doesn't exist`
Now, let's add a file to our new group with the -a (Append) flag. For example, let's add our GTK settings:
`$ dotswitch -a ~/.config/gtk-3.0/settings.ini MyConfig`
Groups act as separate Home directories, so, running this command will create a `./.config/gtk-3.0` directory to store the `settings.ini` file inside the **MyConfig** group (Which, by default resides in ~/.config/pydotswitcher/groups/).
Now, to switch up our files, run:
`$ dotswitch -sw [group]`
This will apply all the configurations inside the group and will backup the existing configuration inside `~/.config/pydotswitcher/`, however, if you want to disable this, add the `--no-backup` flag.
For scripting, run `$ dotswitch -sh [group]`. This will auto generate a _.sh_ file for you to do scripting, and it will be executed when you switch up the files. If you have added a script to a group but don't want to execute it, append `--no-script`.
## Tips & Tricks
Some applications require a restart after having an updated. To fix this, create a script in your group and add `killall program-name && program-name &` to your script.
Raw data
{
"_id": null,
"home_page": "https://github.com/Ehllay/PyDotSwitcher",
"name": "pydotswitcher",
"maintainer": "",
"docs_url": null,
"requires_python": ">3.11",
"maintainer_email": "",
"keywords": "dotfiles,backup,utility config ricing colorscheme linux python",
"author": "Ehllay",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/f8/0d/7a2dfd92444575174ed51d42b6b7e3fa9c486868ccbab4d114ca430e149f/pydotswitcher-0.1.0.tar.gz",
"platform": null,
"description": "<p align=\"center\">\nSwitch your dotfiles on demand!\n<br><br>\n<a href=\"./LICENSE.md\"><img src=\"https://img.shields.io/badge/license-MIT-cba6f7.svg\"></a>\n</p>\nPyDotSwitcher is a Python utility that allows you to easily switch between your dotfiles.\n\n## Features\n\n- \ud83d\udccb **Declarable**: PDS will only change between dotfiles YOU declare.\n- \ud83d\udcc1 **Grouped**: Make a group to change multiple configurations at the same time. Especially useful for changing colorschemes!\n- \ud83d\udedf **Safe**: PDS Backs up files before it switches them, and changes to the dotfiles are linked with your current configuration group.\n- \ud83d\udcdc **Scriptable**: You can also embed shell scripts for doing stuff when changing themes.\n\n## Installation:\n\nInstall using PIP:\n`pip install pydotswitcher` or 'python -m pip install pydotswitcher'\n\nFor Arch Linux users, install the `python-pydotswitcher` package\n\n## Usage\n\nOut of the box, PDS won't do anything. That is because you have to declare what files you want.\n\nBut first, a configuration group is needed:\n\n`$ dotswitch -n MyConfig # Creates the MyConfig Group if it doesn't exist`\n\nNow, let's add a file to our new group with the -a (Append) flag. For example, let's add our GTK settings:\n\n`$ dotswitch -a ~/.config/gtk-3.0/settings.ini MyConfig`\n\nGroups act as separate Home directories, so, running this command will create a `./.config/gtk-3.0` directory to store the `settings.ini` file inside the **MyConfig** group (Which, by default resides in ~/.config/pydotswitcher/groups/).\n\nNow, to switch up our files, run:\n`$ dotswitch -sw [group]`\n\nThis will apply all the configurations inside the group and will backup the existing configuration inside `~/.config/pydotswitcher/`, however, if you want to disable this, add the `--no-backup` flag.\n\nFor scripting, run `$ dotswitch -sh [group]`. This will auto generate a _.sh_ file for you to do scripting, and it will be executed when you switch up the files. If you have added a script to a group but don't want to execute it, append `--no-script`.\n\n## Tips & Tricks\n\nSome applications require a restart after having an updated. To fix this, create a script in your group and add `killall program-name && program-name &` to your script.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Switch up your dotfiles",
"version": "0.1.0",
"project_urls": {
"Download": "https://github.com/Ehllay/PyDotSwitcher/archive/PDS_0.1.0.tar.gz",
"Homepage": "https://github.com/Ehllay/PyDotSwitcher"
},
"split_keywords": [
"dotfiles",
"backup",
"utility config ricing colorscheme linux python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ff12ecc268c0321d3a6c5d322878058228bc829f21e0557d91866438b4e0e69b",
"md5": "c9380293aa84576838dd71df3e531d01",
"sha256": "e0cc6ee5f085d26b680afad4ecced8278c6d9acec45b9bd870a5b73ef22c153c"
},
"downloads": -1,
"filename": "pydotswitcher-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c9380293aa84576838dd71df3e531d01",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">3.11",
"size": 6877,
"upload_time": "2023-09-24T16:18:16",
"upload_time_iso_8601": "2023-09-24T16:18:16.964903Z",
"url": "https://files.pythonhosted.org/packages/ff/12/ecc268c0321d3a6c5d322878058228bc829f21e0557d91866438b4e0e69b/pydotswitcher-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f80d7a2dfd92444575174ed51d42b6b7e3fa9c486868ccbab4d114ca430e149f",
"md5": "06883870765476ce4c7f710761285fb4",
"sha256": "7f0ddeec819c554a21a68d6306a47d017e4d4a3cd4b86c0f7af76007236a602f"
},
"downloads": -1,
"filename": "pydotswitcher-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "06883870765476ce4c7f710761285fb4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">3.11",
"size": 5748,
"upload_time": "2023-09-24T16:18:18",
"upload_time_iso_8601": "2023-09-24T16:18:18.754076Z",
"url": "https://files.pythonhosted.org/packages/f8/0d/7a2dfd92444575174ed51d42b6b7e3fa9c486868ccbab4d114ca430e149f/pydotswitcher-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-24 16:18:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Ehllay",
"github_project": "PyDotSwitcher",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pydotswitcher"
}