Skip to content

Commit

Permalink
feat(home-manager): init mako module (#49)
Browse files Browse the repository at this point in the history
  • Loading branch information
Anomalocaridid authored Nov 2, 2023
1 parent 3a12806 commit 4840eda
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 0 deletions.
1 change: 1 addition & 0 deletions modules/home-manager/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ in
./helix.nix
./glamour.nix
./gtk.nix
./mako.nix
./neovim.nix
./polybar.nix
./sway.nix
Expand Down
34 changes: 34 additions & 0 deletions modules/home-manager/mako.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{ config
, pkgs
, lib
, ...
}:
let
inherit (builtins) readFile;

cfg = config.services.mako.catppuccin;
enable = cfg.enable && config.services.mako.enable;
theme = lib.ctp.fromINI pkgs (pkgs.fetchFromGitHub
{
owner = "catppuccin";
repo = "mako";
rev = "9dd088aa5f4529a3dd4d9760415e340664cb86df";
hash = "sha256-nUzWkQVsIH4rrCFSP87mXAka6P+Td2ifNbTuP7NM/SQ=";
} + /src/${cfg.flavour});

# Settings that need to be extracted and put in extraConfig
extraConfigAttrs = lib.attrsets.getAttrs [ "urgency=high" ] theme;
in
{
options.services.mako.catppuccin =
lib.ctp.mkCatppuccinOpt "mako" config;

# Will cause infinite recursion if config.services.mako is directly set as a whole
config.services.mako = lib.mkIf enable {
backgroundColor = theme.background-color;
textColor = theme.text-color;
borderColor = theme.border-color;
progressColor = theme.progress-color;
extraConfig = readFile ((pkgs.formats.ini { }).generate "mako-extra-config" extraConfigAttrs);
};
}
15 changes: 15 additions & 0 deletions modules/lib/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,21 @@ in
in
fromJSON (readFile json);

# a -> path -> a
# fromJSON but for ini (and without readFile)
# a should be the local pkgs attrset
fromINI = pkgs: file:
let
inherit (builtins) fromJSON readFile;

# convert to json
json = with pkgs;
runCommand "converted.json" { } ''
${jc}/bin/jc --ini < ${file} > $out
'';
in
fromJSON (readFile json);

# a -> a -> [path] -> [path]
# this imports a list of paths while inheriting
# multiple attributes
Expand Down

0 comments on commit 4840eda

Please sign in to comment.