Different desktop environments on *nix usually have different configuration methods for the same setting. This makes it hard for developers to handle desktop settings in their program.
settingsctl is a cross-desktop (*nix) tool to handle desktop settings.
This was also the aim of xdg-settings
. But xdg-settings doesn't really work.
For more information (and the documentation) see the website.
Ensure you have Python 3. You probably already have it.
-
Download settingsctl here (zip)
-
Either:
- Install settingsctl system-wide (
sudo ./install.py
) - Install settingsctl for your user (
./install.py --user
) - Or just run it (
./settingsctl --help
)
- Install settingsctl system-wide (
$ settingsctl get appearance.desktop.wallpaper
/path/to/wallpaper
$ settingsctl get power.screen-lock.enabled
true
$ settingsctl set power.screen-lock.timeout 20
Also see Documentation::Tutorial.
- Support for nearly every setting you may find in a desktop environment's settings. (To be done by v1.0)
- Support for nearly every desktop environment (Yours isn't supported? File an issue!) (To be done by v1.0)
- Support for optional JSON output format for easy parsing
- Extensive documentation
(Quality) Contributions are always welcome. Here you will find how to go about contributing to this project.
Firstly, the language: settingsctl is written in Python 3.
The coding conventions are mainly PEP8, but with one notable exception: Tabs are used instead of spaces.
See also the TODO
file included, which has a list of things to be done.
-
Fork the repository.
-
Then file a pull request for your change.
-
Fork the repository.
-
In the
lib/
directory, find the Python module that defines the setting. -
Code your contribution (feature, bug fix, etc).
-
Then file a pull request for your change.
-
Fork the repository.
-
Look through the code (file:
settingsctl
). -
Code your contribution (feature, bug fix, etc).
-
Then file a pull request for your change.
settingsctl is licensed under the GNU General Public License (GPL) version 3 (or, at your option, a later version).
settingsctl is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
For the license text, see the included LICENSE file.
Follows Semantic Versioning.
Information about changes by version can be found in CHANGELOG and the Updates page.
- It's not been updated since about 2011
- It supports only two settings: default browser and URL scheme handler
This project hopes to eventually officially (as in approved by XDG as a standard) replace the old xdg-settings
.