1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2024-12-14 11:57:55 +00:00

waylogout: added configuration module

90% of the code is copied over from swaylock so thanks to the creator of
that module!
This commit is contained in:
~noodlez1232 2024-09-26 14:14:56 -07:00
parent f26aa4b76f
commit 82ef35ed34
3 changed files with 63 additions and 0 deletions

View file

@ -628,4 +628,10 @@
keys =
[{ fingerprint = "BC82 4BB5 1656 D144 285E A0EC D382 C4AF EECE AA90"; }];
};
noodlez = {
name = "Nathaniel Barragan";
email = "contact@nathanielbarragan.xyz";
github = "Noodlez1232";
githubId = 12480453;
};
}

View file

@ -255,6 +255,7 @@ let
./programs/pywal.nix
./programs/rbenv.nix
./programs/watson.nix
./programs/waylogout.nix
./programs/waybar.nix
./programs/wezterm.nix
./programs/wlogout.nix

View file

@ -0,0 +1,56 @@
{ pkgs, config, lib, ... }:
with lib;
let cfg = config.programs.waylogout;
in {
meta.maintainers = [ hm.maintainers.noodlez ];
options.programs.waylogout = {
enable = mkOption {
default = false;
type = lib.types.bool;
example = true;
description = ''
Whether or not to enable waylogout.
'';
};
package = mkPackageOption pkgs "waylogout" { };
settings = mkOption {
type = with types; attrsOf (oneOf [ bool float int str ]);
default = { };
description = ''
Default arguments to {command}`waylogout`. An empty set
disables configuration generation.
'';
example = {
color = "808080";
poweroff-command = "systemctl poweroff";
reboot-command = "systemctl reboot";
scaling = "fit";
effect-blur = "7x4";
screenshots = true;
};
};
};
config = mkIf cfg.enable {
assertions = [
(lib.hm.assertions.assertPlatform "programs.waylogout" pkgs
lib.platforms.linux)
];
home.packages = [ cfg.package ];
xdg.configFile."waylogout/config" = mkIf (cfg.settings != { }) {
text = concatStrings (mapAttrsToList (n: v:
if v == false then
""
else
(if v == true then n else n + "=" + builtins.toString v) + "\n")
cfg.settings);
};
};
}