nix/hm: add option to disable systemd service (#526)

* nix/hm: add option to disable systemd service

* readme: complement home manager configuring
This commit is contained in:
Davi Ribeiro 2025-08-29 23:47:23 -03:00 committed by GitHub
parent 4c9a9471dc
commit cc80951855
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 21 additions and 3 deletions

View file

@ -63,6 +63,8 @@ or a devshell. The shell can then be run via `caelestia-shell`.
> The default package does not have the CLI enabled by default, which is required for full funcionality. > The default package does not have the CLI enabled by default, which is required for full funcionality.
> To enable the CLI, use the `with-cli` package. > To enable the CLI, use the `with-cli` package.
For home-manager, you can also use the Caelestia's home manager module (explained in [configuring](https://github.com/caelestia-dots/shell?tab=readme-ov-file#configuring)) that installs and configures the shell and the CLI.
### Manual installation ### Manual installation
Dependencies: Dependencies:
@ -207,15 +209,24 @@ For NixOS users, a home manager module is also available.
```nix ```nix
programs.caelestia = { programs.caelestia = {
enable = true; enable = true;
systemd.enable = false; # if you prefer starting from your compositor
settings = { settings = {
bar.status = { bar.status = {
showBattery = false; showBattery = false;
}; };
paths.wallpaperDir = "~/Images"; paths.wallpaperDir = "~/Images";
}; };
cli = {
enable = true; # Also add caelestia-cli to path
settings = {
theme.enableGtk = false;
};
};
}; };
``` ```
The module automatically adds Caelestia shell to the path with **full functionality**. The CLI is not required, however you have the option to enable and configure it.
</details> </details>
> [!NOTE] > [!NOTE]

View file

@ -19,6 +19,13 @@ in {
default = shell-default; default = shell-default;
description = "The package of Caelestia shell"; description = "The package of Caelestia shell";
}; };
systemd = {
enable = mkOption {
type = types.bool;
default = true;
description = "Enable the systemd service for Caelestia shell";
};
};
settings = mkOption { settings = mkOption {
type = types.attrsOf types.anything; type = types.attrsOf types.anything;
default = {}; default = {};
@ -55,12 +62,12 @@ in {
shell = cfg.package or shell-default; shell = cfg.package or shell-default;
in in
lib.mkIf cfg.enable { lib.mkIf cfg.enable {
systemd.user.services.caelestia = { systemd.user.services.caelestia = lib.mkIf cfg.systemd.enable {
Unit = { Unit = {
Description = "Caelestia Shell Service"; Description = "Caelestia Shell Service";
After = ["graphical-session.target"]; After = ["graphical-session.target"];
PartOf = ["graphical-session.target"]; PartOf = ["graphical-session.target"];
X-Restart-Triggers = lib.mkIf (cfg.settings != { }) [ X-Restart-Triggers = lib.mkIf (cfg.settings != {}) [
"${config.xdg.configFile."caelestia/shell.json".source}" "${config.xdg.configFile."caelestia/shell.json".source}"
]; ];
}; };