feat: added wallpaper script as exposed option
This commit is contained in:
parent
0f4e5f7391
commit
3ade74f761
1 changed files with 42 additions and 36 deletions
|
@ -3,9 +3,24 @@
|
|||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
cfg = config.xsession.wallpapers;
|
||||
in {
|
||||
options.xsession.wallpapers = {
|
||||
enable = lib.mkEnableOption "automatically refreshing randomly selected wallpapers";
|
||||
script = let
|
||||
exe =
|
||||
pkgs.writeShellScript "set-wallpaper"
|
||||
''
|
||||
${pkgs.feh}/bin/feh --no-fehbg --bg-fill --randomize \
|
||||
$( ${pkgs.findutils}/bin/find ${config.home.homeDirectory}/${cfg.folder} \( -iname "*.png" -or -iname "*.jpg" \) )
|
||||
'';
|
||||
in
|
||||
lib.mkOption {
|
||||
description = "The script which will be called to set new wallpapers";
|
||||
default = exe;
|
||||
type = lib.types.package;
|
||||
};
|
||||
folder = lib.mkOption {
|
||||
description = "The folder from which the wallpapers are selected. Relative to home directory";
|
||||
type = lib.types.str;
|
||||
|
@ -17,16 +32,7 @@
|
|||
default = "3 min";
|
||||
};
|
||||
};
|
||||
config = let
|
||||
cfg = config.xsession.wallpapers;
|
||||
exe =
|
||||
pkgs.writeShellScript "set-wallpaper"
|
||||
''
|
||||
${pkgs.feh}/bin/feh --no-fehbg --bg-fill --randomize \
|
||||
$( ${pkgs.findutils}/bin/find ${config.home.homeDirectory}/${cfg.folder} \( -iname "*.png" -or -iname "*.jpg" \) )
|
||||
'';
|
||||
in
|
||||
lib.mkIf cfg.enable {
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.user = {
|
||||
timers = {
|
||||
set-wallpaper = {
|
||||
|
@ -49,7 +55,7 @@
|
|||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart =
|
||||
exe;
|
||||
cfg.script;
|
||||
};
|
||||
Install.WantedBy = ["graphical-session.target"];
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue