diff --git a/modules/programs/eww.nix b/modules/programs/eww.nix index 3d178f94..23212f36 100644 --- a/modules/programs/eww.nix +++ b/modules/programs/eww.nix @@ -22,18 +22,48 @@ in { ''; }; - configDir = mkOption { - type = types.path; - example = literalExpression "./eww-config-dir"; + configYuck = mkOption { + type = types.lines; + example = literalExpression '' + (defwindow example + :monitor 0 + :geometry (geometry :x "0%" + :y "20px" + :width "90%" + :height "30px" + :anchor "top center") + :stacking "fg" + :reserve (struts :distance "40px" :side "top") + :windowtype "dock" + :wm-ignore false + "example content") + ''; description = '' - The directory that gets symlinked to - {file}`$XDG_CONFIG_HOME/eww`. + The content that gets symlinked to + {file} `$XDG_CONFIG_HOME/eww/eww.yuck`. + ''; + }; + + configScss = mkOption { + type = types.lines; + example = literalExpression '' + window { + background: pink; + } + ''; + description = '' + The content that gets symlinked to + {file} `$XDG_CONFIG_HOME/eww/eww.scss` ''; }; }; config = mkIf cfg.enable { home.packages = [ cfg.package ]; - xdg.configFile."eww".source = cfg.configDir; + xdg.configFile = { + "eww/eww.yuck".text = cfg.configYuck; + "eww/eww.scss".text = cfg.configScss; + }; }; } + diff --git a/tests/default.nix b/tests/default.nix index 28ce4f64..17467f8a 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -71,6 +71,7 @@ in import nmtSrc { ./modules/programs/dircolors ./modules/programs/direnv ./modules/programs/emacs + ./modules/programs/eww ./modules/programs/fastfetch ./modules/programs/feh ./modules/programs/fish diff --git a/tests/modules/programs/eww/basic-config.nix b/tests/modules/programs/eww/basic-config.nix new file mode 100644 index 00000000..3bb0ae6a --- /dev/null +++ b/tests/modules/programs/eww/basic-config.nix @@ -0,0 +1,32 @@ +{ pkgs, ... }: { + config = { + programs.eww = { + enable = true; + package = pkgs.writeScriptBin "dummy-eww" ""; + configYuck = '' + (defwindow example + :monitor 0 + :geometry (geometry :x "0%" + :y "20px" + :width "90%" + :height "30px" + :anchor "top center") + :stacking "fg" + :reserve (struts :distance "40px" :side "top") + :windowtype "dock" + :wm-ignore false + "example content") + ''; + configScss = '' + window { + background: pink; + } + ''; + }; + + nmt.script = '' + assertFileExists home-files/.config/eww/eww.yuck + assertFileExists home-files/.config/eww/eww.scss + ''; + }; +} diff --git a/tests/modules/programs/eww/default.nix b/tests/modules/programs/eww/default.nix new file mode 100644 index 00000000..b7a3ba04 --- /dev/null +++ b/tests/modules/programs/eww/default.nix @@ -0,0 +1 @@ +{ eww-basic-configuration = ./basic-config.nix; }