diff --git a/flake.lock b/flake.lock index 9e1d90e..686677c 100644 --- a/flake.lock +++ b/flake.lock @@ -78,11 +78,11 @@ "yants": "yants" }, "locked": { - "lastModified": 1700949136, - "narHash": "sha256-ymBz+A5j3JQDAlsbBMxiPj/ApcolP3HmCalYNoyzXhU=", + "lastModified": 1700993790, + "narHash": "sha256-0m5x3YysUPYR2rtgtpRCRW7hP5YqEebwkGvhDmvG0Zo=", "owner": "gtrunsec", "repo": "flops", - "rev": "b6b8534a8162bacf0eb207d2aa514c50bb66ba9b", + "rev": "a3fb5306c5d30baf7b9bc743d09665604e80ed69", "type": "github" }, "original": { diff --git a/local/lock/flake.lock b/local/lock/flake.lock index d120339..748b6c5 100644 --- a/local/lock/flake.lock +++ b/local/lock/flake.lock @@ -86,6 +86,22 @@ "type": "github" } }, + "catppuccin-foliate": { + "flake": false, + "locked": { + "lastModified": 1675229524, + "narHash": "sha256-tpZj1/gV2TEdcequ+0EFz/3Hv4UN2dcdbJvT8a/i+hs=", + "owner": "catppuccin", + "repo": "foliate", + "rev": "40ae4528569d864cba8f4e64716c3361f7244209", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "foliate", + "type": "github" + } + }, "climodSrc": { "flake": false, "locked": { @@ -1433,6 +1449,7 @@ "inputs": { "agenix": "agenix", "audioNix": "audioNix", + "catppuccin-foliate": "catppuccin-foliate", "climodSrc": "climodSrc", "darwin": "darwin_2", "devshell": "devshell", diff --git a/local/lock/flake.nix b/local/lock/flake.nix index ab83f78..85e4d2a 100644 --- a/local/lock/flake.nix +++ b/local/lock/flake.nix @@ -84,6 +84,9 @@ navi-tldr-pages.url = "github:denisidoro/navi-tldr-pages"; navi-tldr-pages.flake = false; + + catppuccin-foliate.url = "github:catppuccin/foliate"; + catppuccin-foliate.flake = false; }; outputs = _: { }; } diff --git a/src/pops/homeModules.nix b/src/pops/homeModules.nix index fd04e58..0403761 100644 --- a/src/pops/homeModules.nix +++ b/src/pops/homeModules.nix @@ -10,12 +10,15 @@ inputs, lib, haumea, + super, }: -(flops.haumea.pops.default.setInit { +((flops.haumea.pops.default.setInit { src = projectDir + "/units/nixos/homeModules"; type = "nixosModules"; inputs = root.lib.loaderInputs; -}).addExporters +}).addLoadExtender + { load.inputs.inputs = super.flake.inputs; } +).addExporters [ (POP.extendPop flops.haumea.pops.exporter ( self: _super: { diff --git a/tests/nixos/__fixture/pops/nixosModules.nix b/tests/nixos/__fixture/pops/nixosModules.nix index dd786db..3dbcc1c 100644 --- a/tests/nixos/__fixture/pops/nixosModules.nix +++ b/tests/nixos/__fixture/pops/nixosModules.nix @@ -29,10 +29,10 @@ in ] ) { - config.boot.contents = update [ 0 ] [ + config.contents = update [ 0 ] [ { content = { - loader.timeout.content = 10; + boot.loader.timeout.content = 10; # loader.efi.canTouchEfiVariables = false; }; } diff --git a/tests/nixos/expr.nix b/tests/nixos/expr.nix index 1e6ac5d..fc3c658 100644 --- a/tests/nixos/expr.nix +++ b/tests/nixos/expr.nix @@ -53,6 +53,7 @@ in (extraHomeModule [ out.outputs.homeProfiles.customProfiles.presets.hyprland.default out.outputs.homeProfiles.default.presets.firefox + out.outputs.homeProfiles.default.presets.foliate ]) ]).config.home-manager.users.admin; } diff --git a/units/nixos/darwinModules/homebrew/default.nix b/units/nixos/darwinModules/homebrew/default.nix index 2946ae7..1e7404f 100644 --- a/units/nixos/darwinModules/homebrew/default.nix +++ b/units/nixos/darwinModules/homebrew/default.nix @@ -30,8 +30,8 @@ let ]) ); brews = lib.subtractLists cfg.__profiles__.brews.removePackagesFromProfiles ( - lib.optionals cfg.__profiles__.emacs [ "emacs-plus@29" ] - ++ (lib.optionals cfg.__profiles__.fonts [ + lib.optionals cfg.__profiles__.enableEmacs [ "emacs-plus@29" ] + ++ (lib.optionals cfg.__profiles__.enableFonts [ "fontconfig" "rxvt-unicode" ]) @@ -78,20 +78,28 @@ in config = with lib; mkMerge [ - { inherit casks brews; } - (mkIf cfg.__profiles__.default { - taps = [ - "homebrew/bundle" - "homebrew/core" - ]; - }) - (mkIf (cfg.casks != [ ]) { - taps = [ - "homebrew/cask" - "homebrew/cask-versions" - ]; - }) - (mkIf cfg.__profiles__.fonts { taps = [ "homebrew/cask-fonts" ]; }) - (mkIf cfg.__profiles__.emacs { taps = [ "d12frosted/emacs-plus" ]; }) + (mkModulePath { inherit casks brews; }) + (mkIf cfg.__profiles__.default ( + mkModulePath { + taps = [ + "homebrew/bundle" + "homebrew/core" + ]; + } + )) + (mkIf (cfg.casks != [ ]) ( + mkModulePath { + taps = [ + "homebrew/cask" + "homebrew/cask-versions" + ]; + } + )) + (mkIf cfg.__profiles__.fonts ( + mkModulePath { taps = [ "homebrew/cask-fonts" ]; } + )) + (mkIf cfg.__profiles__.emacs ( + mkModulePath { taps = [ "d12frosted/emacs-plus" ]; } + )) ]; } diff --git a/units/nixos/homeModules/_common/themes.nix b/units/nixos/homeModules/_common/themes.nix new file mode 100644 index 0000000..766c513 --- /dev/null +++ b/units/nixos/homeModules/_common/themes.nix @@ -0,0 +1,31 @@ +{ lib, inputs }: +with lib; { + themes = mkOption { + default = { }; + type = types.attrsOf ( + types.submodule ( + { + config, + options, + name, + ... + }: + { + options = { + enable = mkEnableOption ( + lib.mdDoc "Whether to enable ${name}-catppuccin theme" + ); + src = mkOption { + type = types.str; + default = ""; + description = "The package to use for ${name}-catppuccin theme"; + }; + }; + config = mkMerge [ + (mkIf (hasAttr name inputs) { src = inputs.${name}.outPath or inputs.${name}; }) + ]; + } + ) + ); + }; +} diff --git a/units/nixos/homeModules/programs/alacritty/default.nix b/units/nixos/homeModules/programs/alacritty/default.nix index c2d67e6..13303a4 100644 --- a/units/nixos/homeModules/programs/alacritty/default.nix +++ b/units/nixos/homeModules/programs/alacritty/default.nix @@ -12,10 +12,8 @@ in }; config = mkMerge [ (mkIf (cfg.enable && pkgs.stdenv.isLinux) { - programs.alacritty = { - settings = { - key_bindings = mkIf cfg.CSIuSupport CSIuKeyBindings; - }; + settings = { + key_bindings = mkIf cfg.CSIuSupport CSIuKeyBindings; }; }) ]; diff --git a/units/nixos/homeModules/programs/bat.nix b/units/nixos/homeModules/programs/bat.nix index ff3586c..e445818 100644 --- a/units/nixos/homeModules/programs/bat.nix +++ b/units/nixos/homeModules/programs/bat.nix @@ -1,6 +1,6 @@ # SPDX-FileCopyrightText: 2023 The omnibus Authors # -# SPDX-License-Identifier: MIT +# SPDX-License-Identifier: MIT' { config = diff --git a/units/nixos/homeModules/programs/foliate/default.nix b/units/nixos/homeModules/programs/foliate/default.nix new file mode 100644 index 0000000..9d4507c --- /dev/null +++ b/units/nixos/homeModules/programs/foliate/default.nix @@ -0,0 +1,29 @@ +{ + lib, + loadSrc, + cfg, + inputs, + config, +}: +with lib; { + options = { + enable = mkEnableOption (lib.mdDoc "Whether to enable foliate"); + __profiles__ = { + themes = + (import (loadSrc + "/_common/themes.nix") { inherit lib inputs; }).themes; + }; + }; + config = mkMerge [ + (mkIf cfg.enable { home.packages = [ pkgs.foliate ]; }) + (mkIf + ( + hasAttr "catppuccin-foliate" cfg.__profiles__.themes + && cfg.__profiles__.themes.catppuccin-foliate.enable + ) + { + xdg.configFile."com.github.johnfactotum.Foliate/themes.json".source = + cfg.__profiles__.themes.catppuccin-foliate.src + "/themes.json"; + } + ) + ]; +} diff --git a/units/nixos/homeModules/programs/navi.nix b/units/nixos/homeModules/programs/navi.nix index 8ee9c98..eaf854d 100644 --- a/units/nixos/homeModules/programs/navi.nix +++ b/units/nixos/homeModules/programs/navi.nix @@ -28,12 +28,12 @@ config = with lib; mkMerge [ - { + (mkModulePath { settings = { cheats = { paths = config.programs.navi.__profiles__.navi-tldr-pages.paths; }; }; - } + }) ]; } diff --git a/units/nixos/homeProfiles/presets/foliate.nix b/units/nixos/homeProfiles/presets/foliate.nix new file mode 100644 index 0000000..cbf9185 --- /dev/null +++ b/units/nixos/homeProfiles/presets/foliate.nix @@ -0,0 +1,11 @@ +{ + imports = [ omnibus.homeModules.programs.foliate ]; + programs.foliate = { + enable = true; + __profiles__.themes = { + catppuccin-foliate = { + enable = true; + }; + }; + }; +} diff --git a/units/nixos/nixosModules/boot/default.nix b/units/nixos/nixosModules/boot/default.nix index d6e5075..58f006b 100644 --- a/units/nixos/nixosModules/boot/default.nix +++ b/units/nixos/nixosModules/boot/default.nix @@ -11,13 +11,15 @@ with lib; { ]; config = mkMerge [ - (mkIf cfg.__profiles__.systemd-boot.enable { - loader = { - timeout = mkIf cfg.__profiles__.speedup 0; - systemd-boot.enable = true; - efi.canTouchEfiVariables = true; - }; - }) + (mkIf cfg.__profiles__.systemd-boot.enable ( + mkModulePath { + loader = { + timeout = mkIf cfg.__profiles__.speedup 0; + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; + } + )) ]; # config.loader.timeout = 1;