From eab86cf718e757df21d88fbc36d42d78c85efb6d Mon Sep 17 00:00:00 2001 From: Trolli Schmittlauch Date: Wed, 18 Feb 2026 18:36:16 +0100 Subject: [PATCH] unify overlays We used to have overlay definitions in home/overlays and packages/default. Let's unify them. Using the exposed overlay from the flake required some changes in the home-manager config though. --- flake.nix | 1 + home/modules/packages.nix | 267 ++++++++++++++++++++------------------ home/overlays.nix | 31 ----- packages/default.nix | 28 ++++ 4 files changed, 168 insertions(+), 159 deletions(-) delete mode 100644 home/overlays.nix diff --git a/flake.nix b/flake.nix index 7b733a2..84dbbcf 100644 --- a/flake.nix +++ b/flake.nix @@ -109,6 +109,7 @@ # Optionally use extraSpecialArgs # to pass through arguments to home.nix extraSpecialArgs = { + # XXX: can we use the inputInjection pattern here as well instead? inherit inputs; }; }; diff --git a/home/modules/packages.nix b/home/modules/packages.nix index cdfedeb..462f6c6 100644 --- a/home/modules/packages.nix +++ b/home/modules/packages.nix @@ -1,123 +1,132 @@ { pkgs, + lib, inputs, config, ... }: -with pkgs; let cfg = config.schmittlauch.packages; - unstable = inputs.nixos-unstable.legacyPackages.${stdenv.hostPlatform.system}; - nur = inputs.nur.legacyPackages.${stdenv.hostPlatform.system}; + unstable = inputs.nixos-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system}; + nur = inputs.nur.legacyPackages.${pkgs.stdenv.hostPlatform.system}; - graphicsApps = [ - inkscape - exiftool - ] - ++ (with gimp3Plugins; [ - #fourier # broken - #lqrPlugin # broken - ]) - ++ lib.optionals pkgs.stdenv.isLinux [ - darktable - gimp3 - hugin - #luminanceHDR # FIXME, build failure - xournalpp - ] - ++ lib.optionals pkgs.stdenv.isDarwin [ - gimp2 - ]; + graphicsApps = + with pkgs; + [ + inkscape + exiftool + ] + ++ (with gimp3Plugins; [ + #fourier # broken + #lqrPlugin # broken + ]) + ++ lib.optionals pkgs.stdenv.isLinux [ + darktable + gimp3 + hugin + #luminanceHDR # FIXME, build failure + xournalpp + ] + ++ lib.optionals pkgs.stdenv.isDarwin [ + gimp2 + ]; - multimediaApps = [ - mpv - ] - ++ lib.optionals pkgs.stdenv.isDarwin [ vlc-bin ] - ++ lib.optionals pkgs.stdenv.isLinux [ - vlc - amarok - clementine - kdePackages.elisa - musescore - tenacity - #nur.repos.fooker.studio-link - ]; + multimediaApps = + with pkgs; + [ + mpv + ] + ++ lib.optionals pkgs.stdenv.isDarwin [ vlc-bin ] + ++ lib.optionals pkgs.stdenv.isLinux [ + vlc + amarok + clementine + kdePackages.elisa + musescore + tenacity + #nur.repos.fooker.studio-link + ]; - cliApps = [ - coreutils - myVim - htop - tmux - httpie - rsync - ponysay - gti - tree - lsof - mosh - openssh - sshfs-fuse - sshuttle - cryfs - gnupg - unar - lzop - p7zip - pwgen - pandoc - pdfgrep - # zig dependency breaks occasionally, stay on C version for now - ncdu_1 - dos2unix - unzip - fswatch - jq - age - lnav - spacer + cliApps = + with pkgs; + [ + coreutils + myVim + htop + tmux + httpie + rsync + ponysay + gti + tree + lsof + mosh + openssh + sshfs-fuse + sshuttle + cryfs + gnupg + unar + lzop + p7zip + pwgen + pandoc + pdfgrep + # zig dependency breaks occasionally, stay on C version for now + ncdu_1 + dos2unix + unzip + fswatch + jq + age + lnav + spacer - nix-output-monitor # putting this here as a plain `nix` alternative - ] - ++ lib.optionals pkgs.stdenv.isLinux [ - xclip - smbnetfs # for FUSE smb mounting - psmisc # for killall - torsocks - agrep - reptyr # re-bind running program to other tty - ]; + nix-output-monitor # putting this here as a plain `nix` alternative - nixHelpers = [ + ] + ++ lib.optionals pkgs.stdenv.isLinux [ + xclip + smbnetfs # for FUSE smb mounting + psmisc # for killall + torsocks + agrep + reptyr # re-bind running program to other tty + ]; + + nixHelpers = with pkgs; [ nixpkgs-review nixfmt nix-top statix ]; - devTools = [ - curl - httpie - gcc - shellcheck - mtr - ripgrep - fd - pre-commit - scriv + devTools = + with pkgs; + [ + curl + httpie + gcc + shellcheck + mtr + ripgrep + fd + pre-commit + scriv - # Haskell - ghc - cabal2nix - ] - ++ lib.optionals pkgs.stdenv.isLinux [ - gdb - strace - ltrace - valgrind - zeal - ]; + # Haskell + ghc + cabal2nix + ] + ++ lib.optionals pkgs.stdenv.isLinux [ + gdb + strace + ltrace + valgrind + zeal + ]; - pythonTools = with python3Packages; [ + pythonTools = with pkgs.python3Packages; [ python # to shadow old macOS python ipython uv @@ -131,16 +140,16 @@ let mypy ]; - games = [ + games = with pkgs; [ superTuxKart #hedgewars ]; - desktopCommon = [ + desktopCommon = with pkgs; [ keepassxc ]; - desktopLinux = [ + desktopLinux = with pkgs; [ firefox chromium kdePackages.falkon @@ -187,31 +196,33 @@ let chromedriver ]; - kdeTools = [ - okteta - ] - ++ (with kdePackages; [ - okular - gwenview - yakuake - dolphin - spectacle - kate - kleopatra - qdirstat - ark - kwalletmanager - #ktouch # TODO: unbreak - kcharselect - konversation - krdc - skanlite - akonadiconsole - tokodon # mastodon client - networkmanager-qt - kcrash - breeze-gtk - ]); + kdeTools = + with pkgs; + [ + okteta + ] + ++ (with kdePackages; [ + okular + gwenview + yakuake + dolphin + spectacle + kate + kleopatra + qdirstat + ark + kwalletmanager + #ktouch # TODO: unbreak + kcharselect + konversation + krdc + skanlite + akonadiconsole + tokodon # mastodon client + networkmanager-qt + kcrash + breeze-gtk + ]); in { options.schmittlauch.packages = { @@ -248,7 +259,7 @@ in ++ (lib.optional cfg.kde kdeTools) ); - nixpkgs.overlays = import ../overlays.nix; + nixpkgs.overlays = lib.attrValues inputs.self.overlays; nixpkgs.config = { permittedInsecurePackages = [ diff --git a/home/overlays.nix b/home/overlays.nix deleted file mode 100644 index 74db291..0000000 --- a/home/overlays.nix +++ /dev/null @@ -1,31 +0,0 @@ -[ - (self: super: { - myVim = super.neovim.override { - configure = { - packages.myVimPackage = with self.pkgs.vimPlugins; { - # loaded on start - start = [ - ale - base16-vim - LanguageClient-neovim - ctrlp - direnv-vim - fugitive - haskell-vim - jedi-vim - nerdtree - nerdtree-git-plugin - supertab - vim-dirdiff - vim-pandoc - vim-pandoc-syntax - vim-nix - vim-jinja - which-key-nvim - ]; - }; - customRC = builtins.readFile ./vimrc; - }; - }; - }) -] diff --git a/packages/default.nix b/packages/default.nix index fe84da9..1405ec3 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -5,4 +5,32 @@ final: prev: { spsdk = python-prev.spsdk.overridePythonAttrs { doCheck = false; }; }; }; + fc-scripts = final.callPackage ./fc-scripts.nix { }; + myVim = prev.neovim.override { + configure = { + packages.myVimPackage = with final.pkgs.vimPlugins; { + # loaded on start + start = [ + ale + base16-vim + LanguageClient-neovim + ctrlp + direnv-vim + fugitive + haskell-vim + jedi-vim + nerdtree + nerdtree-git-plugin + supertab + vim-dirdiff + vim-pandoc + vim-pandoc-syntax + vim-nix + vim-jinja + which-key-nvim + ]; + }; + customRC = builtins.readFile ../home/vimrc; + }; + }; }