feat(home-manager): init mako module (#49)

This commit is contained in:
Anomalocaridid 2023-11-02 15:55:47 +00:00 committed by GitHub
parent 3a12806a37
commit 4840eda13e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 50 additions and 0 deletions

View file

@ -22,6 +22,7 @@ in
./helix.nix
./glamour.nix
./gtk.nix
./mako.nix
./neovim.nix
./polybar.nix
./sway.nix

View file

@ -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);
};
}

View file

@ -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