mirror of
https://github.com/kittywitch/nixfiles.git
synced 2026-02-09 12:29:19 -08:00
49 lines
1.4 KiB
Nix
49 lines
1.4 KiB
Nix
{
|
|
inputs,
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}: let
|
|
inherit (lib.options) mkOption mkEnableOption mkPackageOption;
|
|
inherit (lib.types) submodule path nullOr;
|
|
inherit (lib.modules) mkIf;
|
|
inherit (lib.meta) getExe';
|
|
cfg = config.programs.konawall-py;
|
|
in {
|
|
options.programs.konawall-py = {
|
|
enable = mkEnableOption "konawall, the wallpaper manager";
|
|
package = mkPackageOption inputs.konawall-py.packages.${pkgs.system} "konawall-py" {};
|
|
settings = mkOption {
|
|
type = submodule {
|
|
freeformType = (pkgs.formats.toml {}).type;
|
|
};
|
|
default = {};
|
|
};
|
|
environmentFile = mkOption {
|
|
type = nullOr path;
|
|
default = null;
|
|
};
|
|
};
|
|
config = mkIf cfg.enable {
|
|
home.packages = [
|
|
cfg.package
|
|
];
|
|
xdg.configFile."konawall/config.toml".source = (pkgs.formats.toml {}).generate "konawall-config" cfg.settings;
|
|
|
|
systemd.user.services.konawall-py = {
|
|
Unit = {
|
|
Description = "konawall-py";
|
|
X-Restart-Triggers = [(toString config.xdg.configFile."konawall/config.toml".source)];
|
|
After = ["graphical-session.target" "network-online.target"];
|
|
};
|
|
Service = {
|
|
ExecStart = "${getExe' cfg.package "gui"}";
|
|
Restart = "on-failure";
|
|
RestartSec = "1s";
|
|
EnvironmentFile = cfg.environmentFile;
|
|
};
|
|
Install = {WantedBy = ["graphical-session.target"];};
|
|
};
|
|
};
|
|
}
|