From 6c0cc52a3cd1cd0b28c083e62ef49b537590a96e Mon Sep 17 00:00:00 2001 From: Jo Date: Wed, 27 Aug 2025 00:19:31 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20custom=20packages=20support?= =?UTF-8?q?=20through=20pkgs=20directory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../x86_64-linux/jo/apps/firefox/default.nix | 3 ++- .../apps/youtube-music/catppuccin-frappe.css | 6 ----- .../apps/youtube-music/catppuccin-latte.css | 6 ----- .../youtube-music/catppuccin-macchiato.css | 6 ----- .../apps/youtube-music/catppuccin-mocha.css | 6 ----- .../jo/apps/youtube-music/default.nix | 6 ----- homes/x86_64-linux/jo/default.nix | 6 ++++- modules/flake/default.nix | 3 +++ modules/flake/lib.nix | 25 +++++++++++++++++++ modules/flake/packages.nix | 11 ++++++++ 10 files changed, 46 insertions(+), 32 deletions(-) delete mode 100644 homes/x86_64-linux/jo/apps/youtube-music/catppuccin-frappe.css delete mode 100644 homes/x86_64-linux/jo/apps/youtube-music/catppuccin-latte.css delete mode 100644 homes/x86_64-linux/jo/apps/youtube-music/catppuccin-macchiato.css delete mode 100644 homes/x86_64-linux/jo/apps/youtube-music/catppuccin-mocha.css delete mode 100644 homes/x86_64-linux/jo/apps/youtube-music/default.nix create mode 100644 modules/flake/packages.nix 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 { }; + }; +}