diff --git a/homes/x86_64-linux/jo/apps/firefox/default.nix b/homes/x86_64-linux/jo/apps/firefox/default.nix index 8844b1a..68ec53b 100644 --- a/homes/x86_64-linux/jo/apps/firefox/default.nix +++ b/homes/x86_64-linux/jo/apps/firefox/default.nix @@ -15,5 +15,6 @@ in @import "onebar/onebar.css"; ''; - home.file.".mozilla/firefox/default/chrome/onebar/onebar.css".source = ./onebar.css; + home.file.".mozilla/firefox/default/chrome/onebar/onebar.css".source = + mkIf config.programs.firefox.enable ./onebar.css; } diff --git a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-frappe.css b/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-frappe.css deleted file mode 100644 index 3d0d60d..0000000 --- a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-frappe.css +++ /dev/null @@ -1,6 +0,0 @@ -/* frappe */ -@import url("https://youtubemusic.catppuccin.com/src/frappe.css"); - -html:not(.style-scope) { - --ctp-accent: var(--ctp-blue) !important; -} diff --git a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-latte.css b/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-latte.css deleted file mode 100644 index af971c8..0000000 --- a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-latte.css +++ /dev/null @@ -1,6 +0,0 @@ -/* latte */ -@import url("https://youtubemusic.catppuccin.com/src/latte.css"); - -html:not(.style-scope) { - --ctp-accent: var(--ctp-blue) !important; -} diff --git a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-macchiato.css b/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-macchiato.css deleted file mode 100644 index 6979eab..0000000 --- a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-macchiato.css +++ /dev/null @@ -1,6 +0,0 @@ -/* macchiato */ -@import url("https://youtubemusic.catppuccin.com/src/macchiato.css"); - -html:not(.style-scope) { - --ctp-accent: var(--ctp-blue) !important; -} diff --git a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-mocha.css b/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-mocha.css deleted file mode 100644 index b95c627..0000000 --- a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-mocha.css +++ /dev/null @@ -1,6 +0,0 @@ -/* mocha */ -@import url("https://youtubemusic.catppuccin.com/src/mocha.css"); - -html:not(.style-scope) { - --ctp-accent: var(--ctp-blue) !important; -} diff --git a/homes/x86_64-linux/jo/apps/youtube-music/default.nix b/homes/x86_64-linux/jo/apps/youtube-music/default.nix deleted file mode 100644 index 0d7a220..0000000 --- a/homes/x86_64-linux/jo/apps/youtube-music/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - ... -}: -{ - -} diff --git a/homes/x86_64-linux/jo/default.nix b/homes/x86_64-linux/jo/default.nix index c9ab3c5..00ad55d 100644 --- a/homes/x86_64-linux/jo/default.nix +++ b/homes/x86_64-linux/jo/default.nix @@ -7,7 +7,6 @@ imports = [ ./apps/discord ./apps/firefox - ./apps/youtube-music ]; puzzlevision = { @@ -34,6 +33,10 @@ path = "${config.home.homeDirectory}/.wakatime.cfg"; }; + programs.git = { + enable = true; + }; + home.packages = with pkgs; [ ## GENERAL ghostty @@ -53,6 +56,7 @@ ## RUNTIMES and CLIs for development bun git + git-credential-oauth attic-client ]; diff --git a/modules/flake/default.nix b/modules/flake/default.nix index bc8eafb..ca75b51 100644 --- a/modules/flake/default.nix +++ b/modules/flake/default.nix @@ -5,5 +5,8 @@ # Automagically imports systems from "/systems/arch-classname/system-name". ./systems.nix + + # Automagically import custom packages defined in "/pkgs/pkg-name/default.nix" + ./packages.nix ]; } diff --git a/modules/flake/lib.nix b/modules/flake/lib.nix index 93bcb54..9f67370 100644 --- a/modules/flake/lib.nix +++ b/modules/flake/lib.nix @@ -26,6 +26,18 @@ let else [ ]; + filesystemEntityToPackage = + directory: pkgs: pkgArgs: name: type: + if type == "directory" then + dirToPkgAttrSet "${directory}/${name}" pkgs pkgArgs + else if name == "default.nix" then + { + ${builtins.unsafeDiscardStringContext (builtins.baseNameOf directory)} = + pkgs.callPackage "${directory}/${name}" pkgArgs; + } + else + { }; + dirToModuleList = directory: let @@ -50,12 +62,25 @@ let acc // (filesystemEntityToAttrSet directory importArgs name (builtins.getAttr name readDir)) ) { } (builtins.attrNames readDir); + dirToPkgAttrSet = + directory: pkgs: pkgArgs: + let + # Read provided directory only once at the very start and save the result. + readDir = readDirectory directory; + in + builtins.foldl' ( + acc: name: + acc // (filesystemEntityToPackage directory pkgs pkgArgs name (builtins.getAttr name readDir)) + ) { } (builtins.attrNames readDir); + puzzlelib = dirToAttrSet ../../lib { inherit lib self; } // { inherit dirToAttrSet + dirToPkgAttrSet dirToModuleList filesystemEntityToList filesystemEntityToAttrSet + filesystemEntityToPackage ; }; in diff --git a/modules/flake/packages.nix b/modules/flake/packages.nix new file mode 100644 index 0000000..78eab4f --- /dev/null +++ b/modules/flake/packages.nix @@ -0,0 +1,11 @@ +{ + self, + ... +}: +{ + perSystem = + { pkgs, ... }: + { + packages = self.lib.dirToPkgAttrSet ../../pkgs pkgs { }; + }; +} diff --git a/pkgs/.gitkeep b/pkgs/.gitkeep new file mode 100644 index 0000000..e69de29