使用 Home Manager 管理 KDE Plasma
本项目旨在提供 Home Manager 模块,允许你 使用 Nix 配置 KDE Plasma。
目录
- 使用 Home Manager 管理 KDE Plasma
- 目录
- 支持的版本
- 已支持的功能
- 目前支持不佳的功能
- 不会支持的功能
- 快速入门
- 使用 overrideConfig 使配置更具声明性
- 使用 rc2nix 捕获当前配置
- 贡献与维护
- 特别鸣谢
支持的版本
plasma-manager 同时支持 plasma 5 和 plasma 6。trunk 分支是
最新的分支,主要专注于 plasma 6,但可能仍然适用于
plasma 5。如果你正在运行 plasma 5,建议使用 plasma-5
分支,该分支旨在与 plasma 5 具有更好的兼容性。要使用
flakes 实现这一点,你可以使用 "github:nix-community/plasma-manager/plasma-5" 作为你的
flake url,或者如果你正在使用 nix-channels,你可以将 channel url 设置为
"https://github.com/nix-community/plasma-manager/archive/plasma-5.tar.gz"。值得
注意的是,plasma 5 分支由于维护所需的额外工作,
在功能上可能会稍显滞后,但总体而言,当与 plasma 5 一起使用时,它应该
更少出现损坏。如果你想要与
plasma-manager 的最佳体验,建议运行 plasma 6。
支持的内容
目前 plasma-manager 支持配置以下内容:
- KDE 配置文件(通过
files模块) - 全局主题、配色方案、图标、光标主题、壁纸(通过
workspace模块) - 桌面图标、小部件和鼠标操作(通过
desktop模块) - Spectacle 快捷键配置(通过
spectacle模块) - 快捷键(通过
shortcuts模块) - 热键(通过
hotkeys模块) - 面板和额外小部件(通过
panels模块) - 键盘、触摸板和鼠标(通过
input模块) - KRunner(通过
krunner模块) - 屏幕锁定(通过
kscreenlocker模块) - 字体(通过
fonts模块) - 窗口规则(通过
window-rules模块) - 会话(通过
session模块) - KDE 应用(通过
apps模块)。特别是以下 KDE 应用在plasma-manager中有模块:- ghostwriter
- kate
- konsole
- okular
此外,除了上述列出的功能外,还有更多功能,未来还将增加更多功能!
目前支持不佳的内容
目前也有一些功能支持得不太好,特别是:
- 无需注销并重新登录即可实时更新配置
- 在
rc2nix生成的配置中使用高级模块 - 某些按键组合的键绑定(例如
Ctrl+Alt+T和Print,参见 https://github.com/nix-community/plasma-manager/issues/109 和 https://github.com/nix-community/plasma-manager/issues/136)
可能还有更多我们尚未意识到的问题。如果你发现其他 限制,请随时提交 issue 或 pr。
不支持的内容
由于技术原因,本项目有一些超出范围的事项。例如
- Plasma 登录配置(需要 root 权限,因此不适用于
home-manager模块)
快速入门
我们提供了一些示例来帮助你入门。这些示例位于 examples 目录中。在这里,你尤其可以找到:
- 一个 home-manager 配置示例 附带说明
- 一个仅用于 home-manager 的 flake.nix 示例
- 一个用于系统配置的 flake.nix 示例
- 一个展示 plasma-manager 部分功能的 home.nix 示例
未来会有更多!这些应该能让你对如何开始使用
plasma-manager 有一些了解。
此外, 包含所有受支持的 plasma-manager 选项的手册部分 可能也会有所帮助。
使用 overrideConfig 使您的配置更具声明性
默认情况下,plasma-manager 只会将指定的配置写入
各个配置文件,而保持其他所有选项不变。这样,未在
plasma-manager 中指定的设置将保持不变,这意味着在
plasma-manager 之外所做的配置仍然会生效。这可能导致即使使用相同的
plasma-manager 配置,不同机器上的设置也会不同。如果您更喜欢声明式方法,请考虑启用
overrideConfig。这会使所有未由 plasma-manager 设置的选项
在登录时设置为默认值。实际上,这就变成了一个声明式
设置,类似于您从大多数 home-manager 选项/模块中预期的那样。
需要注意的是,启用此选项将在 home-manager 激活时删除所有 KDE
配置文件,并用由 plasma-manager 生成的配置文件
替换它们。因此,如果您不想丢失这些文件,请在启用此选项之前务必备份您的 KDE
配置文件。
使用 rc2nix 捕获当前配置
为了更轻松地迁移到 plasma-manager,并在不使用 overrideConfig 时帮助维护您的 Nix
配置,本项目包含一个名为
rc2nix 的工具。
该工具将读取 KDE 配置文件并将其转换为 Nix。 转换后的配置将写入标准输出。这使得以下操作变得容易:
- 生成初始的 Plasma Manager 配置文件。
- 通过在使用 GUI 工具之前和之后捕获文件,然后使用
diff来查看 GUI 工具更改了哪些设置。
请记住,rc2nix 模块并不完美,并且通常会给出某种程度上的次优配置(在某些情况下,当使用更高级别的模块可以实现更好的配置时,它可能会优先使用 files 模块)。然而,它仍然是一个有用的工具,可以快速让你的配置运行起来,或者将 gui 设置应用生成的配置文件转换为 nix 表达式。
要运行 rc2nix 工具而无需克隆此仓库,请运行
以下 shell 命令:
nix run github:nix-community/plasma-manager
贡献与维护
这是一个社区项目,我们欢迎所有贡献。KDE plasma 及其 应用程序包含大量配置选项,如果您发现某些 选项缺失并且具备实现这些功能的技能,非常欢迎提交 PR。 从功能请求到错误报告,或 仅仅是关于改进项目的一般性建议,也欢迎提交 Issue。
特别感谢
plasma-manager 最初是在
pjones](https://github.com/pjones) 下开始开发的,其贡献为该项目奠定了
至今的基石。该项目还受到
Home Manager Issue
#607 上诸如 bew 和
kurnevsky 等人建议的启发。谢谢你们。