{"id":14967942,"url":"https://github.com/nix-community/plasma-manager","last_synced_at":"2025-05-15T01:06:28.972Z","repository":{"id":38126958,"uuid":"506440253","full_name":"nix-community/plasma-manager","owner":"nix-community","description":"Manage KDE Plasma with Home Manager [maintainer=@HeitorAugustoLN] ","archived":false,"fork":false,"pushed_at":"2025-03-23T21:33:16.000Z","size":806,"stargazers_count":802,"open_issues_count":62,"forks_count":83,"subscribers_count":10,"default_branch":"trunk","last_synced_at":"2025-05-08T11:38:20.293Z","etag":null,"topics":["home-manager","kde","kde-plasma","nix","plasma"],"latest_commit_sha":null,"homepage":"https://nix-community.github.io/plasma-manager/","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nix-community.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"nix-community"}},"created_at":"2022-06-22T23:54:36.000Z","updated_at":"2025-05-08T11:28:06.000Z","dependencies_parsed_at":"2023-11-18T02:04:22.304Z","dependency_job_id":"82cc7b47-87aa-4520-a348-f2026e556fb5","html_url":"https://github.com/nix-community/plasma-manager","commit_stats":{"total_commits":268,"total_committers":46,"mean_commits":5.826086956521739,"dds":0.7014925373134329,"last_synced_commit":"d16bbded0ae452bc088489e7dca3ef58d8d1830b"},"previous_names":["pjones/plasma-manager"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nix-community%2Fplasma-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nix-community%2Fplasma-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nix-community%2Fplasma-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nix-community%2Fplasma-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nix-community","download_url":"https://codeload.github.com/nix-community/plasma-manager/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253824913,"owners_count":21970100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["home-manager","kde","kde-plasma","nix","plasma"],"created_at":"2024-09-24T13:38:57.901Z","updated_at":"2025-05-15T01:06:28.924Z","avatar_url":"https://github.com/nix-community.png","language":"Nix","funding_links":["https://opencollective.com/nix-community"],"categories":["Third party applications","Nix"],"sub_categories":["Other"],"readme":"# Manage KDE Plasma with Home Manager\n\nThis project aims to provide [Home Manager][home-manager] modules which allow you\nto configure KDE Plasma using Nix.\n\n## Table of contents\n- [Manage KDE Plasma with Home Manager](#manage-kde-plasma-with-home-manager)\n- [Table of contents](#table-of-contents)\n- [Supported versions](#supported-versions)\n- [What's supported](#whats-supported)\n- [What's not well supported (at the moment)](#whats-not-well-supported-at-the-moment)\n- [What will not be supported](#what-will-not-be-supported)\n- [Getting started](#getting-started)\n- [Make your configuration more declarative with overrideConfig](#make-your-configuration-more-declarative-with-overrideconfig)\n- [Capturing Your Current Configuration with rc2nix](#capturing-your-current-configuration-with-rc2nix)\n- [Contributions and Maintenance](#contributions-and-maintenance)\n- [Special Thanks](#special-thanks)\n\n## Supported versions\n`plasma-manager` supports both plasma 5 and plasma 6. The `trunk` branch is the\nmost up-to-date branch and is mainly focused on plasma 6, but may still work on\nplasma 5. If you are running plasma 5, it's recommended to use the `plasma-5`\nbranch, which is designed to have better compatibility with plasma 5. To do this\nwith flakes you can use \"github:nix-community/plasma-manager/plasma-5\" as your\nflake url, or if you are using nix-channels you can set the channel url to\n\"https://github.com/nix-community/plasma-manager/archive/plasma-5.tar.gz\". It's\nworth noting that the plasma 5 branch, due to the extra work required for\nmaintaining, may lag behind a bit in features, but in general it should be less\nbroken when used with plasma 5. If you want the best experience with\n`plasma-manager` it's recommended running plasma 6.\n\n## What's supported\nAt the moment `plasma-manager` supports configuring the following:\n- KDE configuration files (via the `files` module)\n- Global themes, colorschemes, icons, cursortheme, wallpaper (via the `workspace` module)\n- Desktop icons, widgets, and mouse actions (via the `desktop` module)\n- Configuration of spectacle shortcuts (via the `spectacle` module)\n- Shortcuts (via the `shortcuts` module)\n- Hotkeys (via the `hotkeys` module)\n- Panels and Extra Widgets (via the `panels` module)\n- Keyboards, Touchpads and Mice (via the `input` module)\n- KRunner (via the `krunner` module)\n- Screen locker (via the `kscreenlocker` module)\n- Fonts (via the `fonts` module)\n- Window Rules (via the `window-rules` module)\n- Session (via the `session` module)\n- KDE apps (via the `apps` module). In particular the following kde apps have\n  modules in `plasma-manager`:\n  - ghostwriter\n  - kate\n  - konsole\n  - okular\n\nAdditionally there are more functionality than just listed above, and more\nfunctionality to come in the future!\n\n## What's not well supported (at the moment)\nThere also are some things which at the moment isn't very well supported, in\nparticular:\n- Real-time updates of configuration without having to log out and back in\n- Usage of high-level modules in the configuration generated by `rc2nix`\n- Keybindings to some key combinations (`Ctrl+Alt+T` and `Print` for example, see https://github.com/nix-community/plasma-manager/issues/109 and https://github.com/nix-community/plasma-manager/issues/136)\n\nThere may also be more things we aren't aware of. If you find some other\nlimitations don't hesitate to open an issue or submit a pr.\n\n## What will not be supported\nThere are some things which are out of bounds for this project due to technical\nreasons. For example\n- SDDM configuration (requires root-privileges and thus not suited for a `home-manager` module)\n\n## Getting started\nWe provide some examples to help you get started. These are located in the\n[examples](./examples/) directory. Here you in particular can find:\n- [An example home-manager configuration](./examples/homeManager/home.nix) [with instructions](./examples/homeManager/README.md)\n- [An example flake.nix for usage with home-manager only](./examples/homeManagerFlake//flake.nix)\n- [An example flake.nix for usage with the system configuration](./examples/systemFlake/flake.nix)\n- [An example home.nix showing some of the capabilities of plasma-manager](./examples/home.nix)\n\nWith more to come! These should give you some idea how to get started with\n`plasma-manager`.\n\nAdditionally,\n[the manual section containing all the supported plasma-manager options](https://nix-community.github.io/plasma-manager/options.xhtml)\nmay come in handy.\n\n## Make your configuration more declarative with overrideConfig\nBy default `plasma-manager` will simply write the specified configurations to\nvarious config-files and leave all other options alone. This way settings not\nspecified in `plasma-manager` will be left alone, meaning that configurations\nmade outside `plasma-manager` will still be set. This can lead to different\nsettings on different machines even with the same `plasma-manager`\nconfiguration. If you like a declarative approach better consider enabling\n`overrideConfig`. This makes it so all options not set by `plasma-manager` will\nbe set to the default on login. In practice this then becomes a declarative\nsetup, much like what you would expect from most `home-manager` options/modules.\n\nOne thing to keep in mind is that enabling this option will delete all the KDE\nconfig-files on `home-manager` activation, and replace them with config-files\ngenerated by `plasma-manager`. Therefore make sure you backup your KDE\nconfig-files before enabling this option if you don't want to lose them.\n\n## Capturing Your Current Configuration with rc2nix\n\nTo make it easier to migrate to `plasma-manager`, and to help maintain your Nix\nconfiguration when not using `overrideConfig`, this project includes a tool\ncalled `rc2nix`.\n\nThis tool will read KDE configuration files and translate them to Nix.  The\ntranslated configuration is written to standard output.  This makes it easy to:\n\n- Generate an initial Plasma Manager configuration file.\n- See what settings are changed by a GUI tool by capturing a file\n  before and after using the tool and then using `diff`.\n\nKeep in mind that the `rc2nix` module isn't perfect and often will give somewhat\nsuboptimal configurations (it will in some cases prefer using the `files` module\nwhen better configurations can be achieved using higher-level modules). However,\nit is still a useful tool to quickly get your configuration up and running or\nconverting config-files generated by the gui settings app to nix expressions.\n\nTo run the `rc2nix` tool without having to clone this repository run\nthe following shell command:\n\n```sh\nnix run github:nix-community/plasma-manager\n```\n\n## Contributions and Maintenance\n\nThis is a community project and we welcome all contributions. KDE plasma and its\napps consists of a lot of configuration options, and if you find that some\noptions are missing and have the skills to implement this, PRs are very welcome.\nIssues are also welcome for everything from feature-requests to bug-reports or\njust general suggestions for improving the project.\n\n## Special Thanks\n\n`plasma-manager` started off it's development under\n[pjones](https://github.com/pjones), whose contributions have laid the\nfoundation of the project to this day. The project was otherwise inspired by the\nsuggestions on [Home Manager Issue\n#607][hm607] by people such as [bew](https://github.com/bew) and\n[kurnevsky](https://github.com/kurnevsky). Thank you.\n\n[home-manager]: https://github.com/nix-community/home-manager\n[hm607]: https://github.com/nix-community/home-manager/issues/607\n[nix-community]: https://github.com/nix-community\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnix-community%2Fplasma-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnix-community%2Fplasma-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnix-community%2Fplasma-manager/lists"}