diff --git a/base.nix b/base.nix index e1afb40..635fd30 100644 --- a/base.nix +++ b/base.nix @@ -120,10 +120,12 @@ }; documentation.enable = false; environment = { - systemPackages = with pkgs; [ - wget - sops - ]; + systemPackages = builtins.attrValues { + inherit (pkgs) + wget + sops + ; + }; variables = let XDG_DATA_HOME = "\${HOME}/.local/share"; diff --git a/cinnamon.nix b/cinnamon.nix index 941b726..1cc7186 100644 --- a/cinnamon.nix +++ b/cinnamon.nix @@ -12,8 +12,10 @@ enable = true; style = "adwaita"; }; - users.users.jawz.packages = with pkgs; [ - adw-gtk3 # theme legacy applications - papirus-icon-theme # icon theme - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) + adw-gtk3 # theme legacy applications + papirus-icon-theme # icon theme + ; + }; } diff --git a/cosmic.nix b/cosmic.nix index c30600e..06a9db8 100644 --- a/cosmic.nix +++ b/cosmic.nix @@ -10,11 +10,13 @@ enable = true; style = "adwaita"; }; - users.users.jawz.packages = with pkgs; [ - # ffmpegthumbnailer # generate thumbnails - adw-gtk3 # theme legacy applications - papirus-icon-theme # icon theme - # libgda # for pano shell extension - # gradience # theme customizer, allows you to modify adw-gtk3 themes - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) + # ffmpegthumbnailer # generate thumbnails + adw-gtk3 # theme legacy applications + papirus-icon-theme # icon theme + # libgda # for pano shell extension + # gradience # theme customizer, allows you to modify adw-gtk3 themes + ; + }; } diff --git a/gnome.nix b/gnome.nix index a24b208..0a467e5 100644 --- a/gnome.nix +++ b/gnome.nix @@ -16,43 +16,52 @@ }; }; }; - environment.gnome.excludePackages = with pkgs; [ - # gnome-shell-extensions - # totem - baobab - cheese - epiphany - gnome-characters - gnome-connections - gnome-font-viewer - gnome-music - gnome-photos - gnome-text-editor - gnome-tour - yelp - ]; + environment.gnome.excludePackages = builtins.attrValues { + inherit (pkgs) + # gnome-shell-extensions + # totem + baobab + cheese + epiphany + gnome-characters + gnome-connections + gnome-font-viewer + gnome-music + gnome-photos + gnome-text-editor + gnome-tour + yelp + ; + }; qt = { enable = true; style = "adwaita"; }; users.users.jawz.packages = - (with pkgs; [ - # ffmpegthumbnailer # generate thumbnails - adw-gtk3 # theme legacy applications - gnome-tweaks # tweaks for the gnome desktop environment - papirus-icon-theme # icon theme - libgda # for pano shell extension - # gradience # theme customizer, allows you to modify adw-gtk3 themes - ]) - ++ (with pkgs.gnomeExtensions; [ - appindicator # applets for open applications - reading-strip # like putting a finger on every line I read - tactile # window manager - pano # clipboard manager - freon # hardware temperature monitor - gamemode-indicator-in-system-settings # I guess I'm a gamer now? - # blur-my-shell # make the overview more visually appealing - burn-my-windows - # forge # window manager - ]); + let + packages = builtins.attrValues { + inherit (pkgs) + adw-gtk3 # theme legacy applications + gnome-tweaks # tweaks for the gnome desktop environment + papirus-icon-theme # icon theme + libgda # for pano shell extension + # ffmpegthumbnailer # generate thumbnails + # gradience # theme customizer, allows you to modify adw-gtk3 themes + ; + }; + extensions = builtins.attrValues { + inherit (pkgs.gnomeExtensions) + appindicator # applets for open applications + reading-strip # like putting a finger on every line I read + tactile # window manager + pano # clipboard manager + freon # hardware temperature monitor + gamemode-indicator-in-system-settings # I guess I'm a gamer now? + burn-my-windows + # blur-my-shell # make the overview more visually appealing + # forge # window manager + ; + }; + in + packages ++ extensions; } diff --git a/hosts/miniserver/hardware-configuration.nix b/hosts/miniserver/hardware-configuration.nix index 9a4f95e..c50fdb2 100644 --- a/hosts/miniserver/hardware-configuration.nix +++ b/hosts/miniserver/hardware-configuration.nix @@ -12,7 +12,7 @@ graphics = { enable = true; enable32Bit = true; - extraPackages = with pkgs; [ vpl-gpu-rt ]; + extraPackages = [ pkgs.vpl-gpu-rt ]; }; }; boot = { diff --git a/hosts/server/configuration.nix b/hosts/server/configuration.nix index 1604ab7..f29bfac 100644 --- a/hosts/server/configuration.nix +++ b/hosts/server/configuration.nix @@ -90,7 +90,7 @@ users = { groups.nixremote.gid = 555; users = { - jawz.packages = with pkgs; [ stash ]; + jawz.packages = [ pkgs.stash ]; nixremote = { isNormalUser = true; createHome = true; diff --git a/hosts/workstation/configuration.nix b/hosts/workstation/configuration.nix index 4487403..d2e178b 100644 --- a/hosts/workstation/configuration.nix +++ b/hosts/workstation/configuration.nix @@ -80,12 +80,14 @@ users = { groups.nixremote.gid = 555; users = { - jawz.packages = with pkgs; [ - distrobox # install packages from other os - gocryptfs # encrypted filesystem! shhh!!! - torrenttools # create torrent files from the terminal! - vcsi # video thumbnails for torrents, can I replace it with ^? - ]; + jawz.packages = builtins.attrValues { + inherit (pkgs) + distrobox # install packages from other os + gocryptfs # encrypted filesystem! shhh!!! + torrenttools # create torrent files from the terminal! + vcsi # video thumbnails for torrents, can I replace it with ^? + ; + }; nixremote = { isNormalUser = true; createHome = true; @@ -116,14 +118,16 @@ obs-studio = { enable = true; enableVirtualCamera = true; - plugins = with pkgs.obs-studio-plugins; [ - obs-vkcapture - obs-vaapi - obs-tuna - looking-glass-obs - input-overlay - droidcam-obs - ]; + plugins = builtins.attrValues { + inherit (pkgs.obs-studio-plugins) + obs-vkcapture + obs-vaapi + obs-tuna + looking-glass-obs + input-overlay + droidcam-obs + ; + }; }; }; services = { diff --git a/modules/apps/art.nix b/modules/apps/art.nix index 962edd6..9c84b15 100644 --- a/modules/apps/art.nix +++ b/modules/apps/art.nix @@ -11,25 +11,26 @@ }; config = lib.mkIf config.my.apps.art.enable { users.users.jawz.packages = - (with pkgs; [ - gimp # the coolest bestest art program to never exist - krita # art to your heart desire! - # mypaint # not the best art program - # mypaint-brushes # but it's got some - # mypaint-brushes1 # nice damn brushes - blender # cgi animation and sculpting - drawpile # arty party with friends!! - pureref # create inspiration/reference boards - ]) - ++ ( - if config.my.dev.gameDev.enable then - with pkgs; - [ + let + gdPackages = builtins.attrValues { + inherit (pkgs) godot_4 # game development gdtoolkit_4 # gdscript language server - ] - else - [ ] - ); + ; + }; + packages = builtins.attrValues { + inherit (pkgs) + gimp # the coolest bestest art program to never exist + krita # art to your heart desire! + # mypaint # not the best art program + # mypaint-brushes # but it's got some + # mypaint-brushes1 # nice damn brushes + blender # cgi animation and sculpting + drawpile # arty party with friends!! + pureref # create inspiration/reference boards + ; + }; + in + packages ++ (if config.my.dev.gameDev.enable then gdPackages else [ ]); }; } diff --git a/modules/apps/dictionaries.nix b/modules/apps/dictionaries.nix index f1dd053..3742df4 100644 --- a/modules/apps/dictionaries.nix +++ b/modules/apps/dictionaries.nix @@ -7,11 +7,15 @@ { options.my.apps.dictionaries.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.apps.dictionaries.enable { - users.users.jawz.packages = with pkgs; [ - hunspell - hunspellDicts.it_IT - hunspellDicts.es_MX - hunspellDicts.en_CA-large - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) + hunspell + ; + inherit (pkgs.hunspellDicts) + it_IT + es_MX + en_CA-large + ; + }; }; } diff --git a/modules/apps/fonts.nix b/modules/apps/fonts.nix index 635db75..3482e4d 100644 --- a/modules/apps/fonts.nix +++ b/modules/apps/fonts.nix @@ -7,11 +7,13 @@ { options.my.apps.fonts.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.apps.fonts.enable { - users.users.jawz.packages = with pkgs; [ - nerdfonts - symbola - comic-neue - cascadia-code - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) + nerdfonts + symbola + comic-neue + cascadia-code + ; + }; }; } diff --git a/modules/apps/gaming.nix b/modules/apps/gaming.nix index 3aedc79..192ae91 100644 --- a/modules/apps/gaming.nix +++ b/modules/apps/gaming.nix @@ -19,26 +19,36 @@ platformOptimizations.enable = true; }; }; - users.users.jawz.packages = with pkgs; [ - shipwright # zelda OoT port - mangohud # fps & stats overlay - lutris # games launcher & emulator hub - cartridges # games launcher - gamemode # optimizes linux to have better gaming performance - heroic # install epic games - protonup-qt # update proton-ge - ns-usbloader # load games into my switch - (callPackage ../../pkgs/polymc/default.nix { }) # minecraft launcher - # minecraft # minecraft official launcher + users.users.jawz.packages = + let + packages = builtins.attrValues { + inherit (pkgs) + shipwright # zelda OoT port + mangohud # fps & stats overlay + lutris # games launcher & emulator hub + cartridges # games launcher + gamemode # optimizes linux to have better gaming performance + heroic # install epic games + protonup-qt # update proton-ge + ns-usbloader # load games into my switch + # minecraft # minecraft official launcher - # emulators - rpcs3 # ps3 - pcsx2 # ps2 - cemu # wii u - dolphin-emu # wii - snes9x-gtk # snes - ryujinx # switch - (callPackage ../../pkgs/citra/default.nix { branch = "nightly"; }) # 3ds - ]; + # emulators + rpcs3 # ps3 + pcsx2 # ps2 + cemu # wii u + dolphin-emu # wii + snes9x-gtk # snes + ryujinx # switch + ; + }; + customPackages = [ + # minecraft launcher + (pkgs.callPackage ../../pkgs/polymc/default.nix { }) + # 3Ds emulator + (pkgs.callPackage ../../pkgs/citra/default.nix { branch = "nightly"; }) + ]; + in + packages ++ customPackages; }; } diff --git a/modules/apps/internet.nix b/modules/apps/internet.nix index 99dfdda..5e87f13 100644 --- a/modules/apps/internet.nix +++ b/modules/apps/internet.nix @@ -23,22 +23,25 @@ users.users.jawz.packages = let vdhcoapp = pkgs.callPackage ../../pkgs/vdhcoapp/default.nix { }; + packages = builtins.attrValues { + inherit (pkgs) + warp # transfer files with based ppl + brave # crypto-browser that at least somewhat integrates with gtk + nextcloud-client # self-hosted google-drive alternative + fragments # beautiful torrent client + protonmail-bridge # bridge for protonmail + tor-browser-bundle-bin # dark web, so dark! + chromium # web browser with spyware included + telegram-desktop # furry chat + nicotine-plus # remember Ares? + vesktop # screen share with audio discord + discord # :3 + teamspeak5_client # ppl say they will use this...? + # hugo # website engine + ; + }; in - (with pkgs; [ - warp # transfer files with based ppl - brave # crypto-browser that at least somewhat integrates with gtk - nextcloud-client # self-hosted google-drive alternative - fragments # beautiful torrent client - protonmail-bridge # bridge for protonmail - tor-browser-bundle-bin # dark web, so dark! - chromium # web browser with spyware included - telegram-desktop # furry chat - nicotine-plus # remember Ares? - vesktop # screen share with audio discord - discord # :3 - teamspeak5_client # ppl say they will use this...? - # hugo # website engine - ]) + packages ++ [ vdhcoapp # video download helper assistant inputs.zen-browser.packages.x86_64-linux.default diff --git a/modules/apps/misc.nix b/modules/apps/misc.nix index d34f57f..0ad22f4 100644 --- a/modules/apps/misc.nix +++ b/modules/apps/misc.nix @@ -7,15 +7,17 @@ { options.my.apps.misc.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.apps.misc.enable { - users.users.jawz.packages = with pkgs; [ - # celeste # sync tool for any cloud provider - # czkawka # duplicate finder - # sequeler # friendly SQL client - collector # stores things and throws them anywhere - blanket # background noise - metadata-cleaner # remove any metadata and geolocation from files - pika-backup # backups - gnome-obfuscate # censor private information - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) + # celeste # sync tool for any cloud provider + # czkawka # duplicate finder + # sequeler # friendly SQL client + collector # stores things and throws them anywhere + blanket # background noise + metadata-cleaner # remove any metadata and geolocation from files + pika-backup # backups + gnome-obfuscate # censor private information + ; + }; }; } diff --git a/modules/apps/multimedia.nix b/modules/apps/multimedia.nix index 1e8e87d..7d16d40 100644 --- a/modules/apps/multimedia.nix +++ b/modules/apps/multimedia.nix @@ -7,19 +7,21 @@ { options.my.apps.multimedia.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.apps.multimedia.enable { - users.users.jawz.packages = with pkgs; [ - pitivi # video editor - celluloid # video player - curtail # image compressor - easyeffects # equalizer - handbrake # video converter, may be unnecessary - identity # compare images or videos - mousai # poor man shazam - shortwave # listen to world radio - tagger # tag music files - # cozy # audiobooks player - # gnome-podcasts # podcast player - # hakuneko # manga & comic GUI downloader - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) + pitivi # video editor + celluloid # video player + curtail # image compressor + easyeffects # equalizer + handbrake # video converter, may be unnecessary + identity # compare images or videos + mousai # poor man shazam + shortwave # listen to world radio + tagger # tag music files + # cozy # audiobooks player + # gnome-podcasts # podcast player + # hakuneko # manga & comic GUI downloader + ; + }; }; } diff --git a/modules/apps/office.nix b/modules/apps/office.nix index 1cb692a..121e814 100644 --- a/modules/apps/office.nix +++ b/modules/apps/office.nix @@ -8,15 +8,17 @@ options.my.apps.office.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.apps.office.enable { environment.variables.CALIBRE_USE_SYSTEM_THEME = "1"; - users.users.jawz.packages = with pkgs; [ - libreoffice # office, but based - calibre # ugly af eBook library manager - newsflash # feed reader, syncs with nextcloud - furtherance # I packaged this one tehee track time utility - planify # let's pretend I will organize my tasks - # foliate # gtk eBook reader - # wike # gtk wikipedia wow! - # denaro # manage your finances - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) + libreoffice # office, but based + calibre # ugly af eBook library manager + newsflash # feed reader, syncs with nextcloud + furtherance # I packaged this one tehee track time utility + planify # let's pretend I will organize my tasks + # foliate # gtk eBook reader + # wike # gtk wikipedia wow! + # denaro # manage your finances + ; + }; }; } diff --git a/modules/dev/docker.nix b/modules/dev/docker.nix index 479931d..98659b3 100644 --- a/modules/dev/docker.nix +++ b/modules/dev/docker.nix @@ -8,9 +8,9 @@ options.my.dev.docker.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.dev.docker.enable { environment.variables.DOCKER_CONFIG = "\${XDG_CONFIG_HOME}/docker"; - users.users.jawz.packages = with pkgs; [ - dockfmt - nodePackages.dockerfile-language-server-nodejs - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) dockfmt; + inherit (pkgs.nodePackages) dockerfile-language-server-nodejs; + }; }; } diff --git a/modules/dev/emacs.nix b/modules/dev/emacs.nix index e1461ed..f2d9f30 100644 --- a/modules/dev/emacs.nix +++ b/modules/dev/emacs.nix @@ -25,34 +25,45 @@ }; }; users.users.jawz.packages = - (with pkgs; [ - fd # modern find, faster searches - fzf # fuzzy finder! super cool and useful - ripgrep # modern grep - tree-sitter # code parsing based on symbols and shit, I do not get it - graphviz # graphs - tetex # export pdf - languagetool # proofreader for English + let + packagesDoomEverywhere = builtins.attrValues { + inherit (pkgs.xorg) xwininfo; + inherit (pkgs) + xdotool + xclip + wl-clipboard-rs + ; + }; + packages = builtins.attrValues { + inherit (pkgs) + fd # modern find, faster searches + fzf # fuzzy finder! super cool and useful + ripgrep # modern grep + tree-sitter # code parsing based on symbols and shit, I do not get it + graphviz # graphs + tetex # export pdf + languagetool # proofreader for English - # doom everywhere - xorg.xwininfo - xdotool - xclip - - # lsps - yaml-language-server - markdownlint-cli - ]) - ++ (with pkgs.nodePackages; [ - vscode-json-languageserver - # linters - prettier - ]); + # lsps + yaml-language-server + markdownlint-cli + ; + }; + packagesNode = builtins.attrValues { + inherit (pkgs.nodePackages) + vscode-json-languageserver + prettier # multi-language linter + ; + }; + in + packages ++ packagesDoomEverywhere ++ packagesNode; services.emacs = { enable = true; package = - with pkgs; - ((emacsPackagesFor emacs-gtk).emacsWithPackages (epkgs: with epkgs; [ vterm ])); + let + emacsPackages = (pkgs.emacsPackagesFor pkgs.emacs-gtk).emacsWithPackages; + in + emacsPackages (epkgs: [ epkgs.vterm ]); defaultEditor = true; }; environment.variables.PATH = [ "\${XDG_CONFIG_HOME}/emacs/bin" ]; diff --git a/modules/dev/haskell.nix b/modules/dev/haskell.nix index e2c471f..86365b5 100644 --- a/modules/dev/haskell.nix +++ b/modules/dev/haskell.nix @@ -7,10 +7,12 @@ { options.my.dev.haskell.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.dev.haskell.enable { - users.users.jawz.packages = with pkgs; [ - ghc # compiler - haskell-language-server # lsp - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) + ghc # compiler + haskell-language-server # lsp + ; + }; environment.variables = { CABAL_DIR = "\${XDG_CACHE_HOME}/cabal"; STACK_ROOT = "\${XDG_DATA_HOME}/stack"; diff --git a/modules/dev/javascript.nix b/modules/dev/javascript.nix index 9651ad5..876d79f 100644 --- a/modules/dev/javascript.nix +++ b/modules/dev/javascript.nix @@ -11,10 +11,10 @@ "npm/npmrc".source = ../../dotfiles/npm/npmrc; "configstore/update-notifier-npm-check.json".source = ../../dotfiles/npm/update-notifier-npm-check.json; }; - users.users.jawz.packages = with pkgs; [ - nodejs - nodePackages.pnpm - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) nodejs; + inherit (pkgs.nodePackages) pnpm; + }; environment.variables = { NPM_CONFIG_USERCONFIG = "\${XDG_CONFIG_HOME}/npm/npmrc"; PNPM_HOME = "\${XDG_DATA_HOME}/pnpm"; diff --git a/modules/dev/nix.nix b/modules/dev/nix.nix index 8a4a7e6..313068e 100644 --- a/modules/dev/nix.nix +++ b/modules/dev/nix.nix @@ -7,11 +7,13 @@ { options.my.dev.nix.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.dev.nix.enable { - users.users.jawz.packages = with pkgs; [ - nixfmt-rfc-style # formating - cachix # why spend time compiling? - nixd # language server - statix # linter - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) + nixfmt-rfc-style # formating + cachix # why spend time compiling? + nixd # language server + statix # linter + ; + }; }; } diff --git a/modules/dev/python.nix b/modules/dev/python.nix index 00842fe..0da8ecf 100644 --- a/modules/dev/python.nix +++ b/modules/dev/python.nix @@ -9,23 +9,32 @@ config = lib.mkIf config.my.dev.python.enable { home-manager.users.jawz.xdg.configFile."python/pythonrc".source = ../../dotfiles/pythonrc; environment.variables.PYTHONSTARTUP = "\${XDG_CONFIG_HOME}/python/pythonrc"; - users.users.jawz.packages = with pkgs; [ - pipenv # python development workflow for humans - pyright # LSP - (python3.withPackages ( - ps: with ps; [ - black # Python code formatter - editorconfig # follow rules of contributin - flake8 # wraper for pyflakes, pycodestyle and mccabe - isort # sort Python imports - pyflakes # checks source code for errors - pylint # bug and style checker for python - speedtest-cli # check internet speed from the comand line - # nose # testing and running python scripts - # poetry # dependency management made easy - # pytest # framework for writing tests - ] - )) - ]; + users.users.jawz.packages = + let + packages = builtins.attrValues { + inherit (pkgs) + pipenv # python development workflow for humans + pyright # LSP + ; + }; + pythonPackages = builtins.attrValues { + inherit (pkgs.python3Packages) + black # Python code formatter + editorconfig # follow rules of contributin + flake8 # wraper for pyflakes, pycodestyle and mccabe + isort # sort Python imports + pyflakes # checks source code for errors + pylint # bug and style checker for python + speedtest-cli # check internet speed from the comand line + # nose # testing and running python scripts + # poetry # dependency management made easy + # pytest # framework for writing tests + ; + }; + in + packages + ++ [ + (pkgs.python3.withPackages (ps: pythonPackages)) + ]; }; } diff --git a/modules/dev/sh.nix b/modules/dev/sh.nix index ae895c8..bf35849 100644 --- a/modules/dev/sh.nix +++ b/modules/dev/sh.nix @@ -7,11 +7,14 @@ { options.my.dev.sh.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.dev.sh.enable { - users.users.jawz.packages = with pkgs; [ - bashdb # autocomplete - shellcheck # linting - shfmt # a shell parser and formatter - nodePackages.bash-language-server # LSP - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) + bashdb # autocomplete + shellcheck # linting + shfmt # a shell parser and formatter + ; + #LSP + inherit (pkgs.nodePackages) bash-language-server; + }; }; } diff --git a/modules/servers/nextcloud.nix b/modules/servers/nextcloud.nix index e9f4474..1686118 100644 --- a/modules/servers/nextcloud.nix +++ b/modules/servers/nextcloud.nix @@ -39,25 +39,31 @@ in users.users.nextcloud = { isSystemUser = true; extraGroups = [ "render" ]; - packages = with pkgs; [ - mediainfo - nodejs - perl - (python311.withPackages (ps: with ps; [ tensorflow ])) - (perlPackages.buildPerlPackage ( - let - version = "12.70"; - in - { - pname = "Image-ExifTool"; - inherit version; - src = fetchurl { - url = "https://exiftool.org/Image-ExifTool-${version}.tar.gz"; - hash = "sha256-TLJSJEXMPj870TkExq6uraX8Wl4kmNerrSlX3LQsr/4="; - }; - } - )) - ]; + packages = + let + packages = builtins.attrValues { + inherit (pkgs) mediainfo nodejs perl; + }; + + pythonPackages = [ + (pkgs.python311.withPackages (ps: [ ps.tensorflow ])) + ]; + + perlPackages = pkgs.perlPackages.buildPerlPackage ( + let + version = "12.70"; + in + { + pname = "Image-ExifTool"; + inherit version; + src = pkgs.fetchurl { + url = "https://exiftool.org/Image-ExifTool-${version}.tar.gz"; + hash = "sha256-TLJSJEXMPj870TkExq6uraX8Wl4kmNerrSlX3LQsr/4="; + }; + } + ); + in + packages ++ pythonPackages ++ [ perlPackages ]; }; programs.msmtp = { enable = true; diff --git a/modules/servers/qbittorrent.nix b/modules/servers/qbittorrent.nix index 2623bfb..a2e5319 100644 --- a/modules/servers/qbittorrent.nix +++ b/modules/servers/qbittorrent.nix @@ -16,7 +16,7 @@ let hash = "sha256-ISiMNTrA4J8NYUQSmdVFaro1RxkSqvXhz6LpoSn/fLQ="; fetchSubmodules = true; }; - build-system = with pkgs.python3Packages; [ setuptools ]; + build-system = [ pkgs.python3Packages.setuptools ]; }; qbit_manage_env = pkgs.python3.withPackages ( ps: diff --git a/modules/services/nvidia.nix b/modules/services/nvidia.nix index 93a897a..9eb452a 100644 --- a/modules/services/nvidia.nix +++ b/modules/services/nvidia.nix @@ -13,13 +13,15 @@ graphics = { enable = true; enable32Bit = true; - extraPackages = with pkgs; [ - nvidia-vaapi-driver - vaapiVdpau - libvdpau-va-gl - vulkan-loader - mesa - ]; + extraPackages = builtins.attrValues { + inherit (pkgs) + nvidia-vaapi-driver + vaapiVdpau + libvdpau-va-gl + vulkan-loader + mesa + ; + }; }; nvidia = { open = (config.networking.hostName == "workstation"); diff --git a/modules/shell/exercism.nix b/modules/shell/exercism.nix index 95cc7c1..d447a66 100644 --- a/modules/shell/exercism.nix +++ b/modules/shell/exercism.nix @@ -7,9 +7,11 @@ { options.my.shell.exercism.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.shell.exercism.enable { - users.users.jawz.packages = with pkgs; [ - exercism # learn to code - bats # testing system, required by Exercism - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) + exercism # learn to code + bats # testing system, required by Exercism + ; + }; }; } diff --git a/modules/shell/multimedia.nix b/modules/shell/multimedia.nix index a623a37..033afe4 100644 --- a/modules/shell/multimedia.nix +++ b/modules/shell/multimedia.nix @@ -8,14 +8,16 @@ options.my.shell.multimedia.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.shell.multimedia.enable { users.users.jawz.packages = - (with pkgs; [ - gallery-dl # similar to yt-dlp but for most image gallery websites - yt-dlp # downloads videos from most video websites - ffmpeg # not ffmpreg, the coolest video conversion tool! - imagemagick # photoshop what?? - ]) - ++ [ - (pkgs.python3Packages.buildPythonApplication ( + let + packages = builtins.attrValues { + inherit (pkgs) + gallery-dl # similar to yt-dlp but for most image gallery websites + yt-dlp # downloads videos from most video websites + ffmpeg # not ffmpreg, the coolest video conversion tool! + imagemagick # photoshop what?? + ; + }; + ffpb = pkgs.python3Packages.buildPythonApplication ( let pname = "ffpb"; version = "0.4.1"; @@ -29,7 +31,11 @@ buildInputs = [ pkgs.python3Packages.setuptools ]; propagatedBuildInputs = [ pkgs.python3Packages.tqdm ]; } - )) + ); + in + packages + ++ [ + ffpb ]; }; } diff --git a/modules/shell/tools.nix b/modules/shell/tools.nix index c562856..c59ba5b 100644 --- a/modules/shell/tools.nix +++ b/modules/shell/tools.nix @@ -45,14 +45,16 @@ pager = "less -FR"; theme = "base16"; }; - extraPackages = with pkgs.bat-extras; [ - batman # man pages - batpipe # piping - batgrep # ripgrep - batdiff # this is getting crazy! - batwatch # probably my next best friend - prettybat # trans your sourcecode! - ]; + extraPackages = builtins.attrValues { + inherit (pkgs.bat-extras) + batman # man pages + batpipe # piping + batgrep # ripgrep + batdiff # this is getting crazy! + batwatch # probably my next best friend + prettybat # trans your sourcecode! + ; + }; }; }; }; @@ -65,19 +67,21 @@ vimAlias = true; }; }; - users.users.jawz.packages = with pkgs; [ - ripgrep # modern grep - du-dust # rusty du similar to gdu - eza # like ls but with colors - fd # modern find, faster searches - fzf # fuzzy finder! super cool and useful - gdu # disk-space utility checker, somewhat useful - rmlint # amazing dupe finder that integrates well with BTRFS - tldr # man for retards - trash-cli # oop! did not meant to delete that - jq # linting - smartmontools # check hard drie health - ]; + users.users.jawz.packages = builtins.attrValues { + inherit (pkgs) + ripgrep # modern grep + du-dust # rusty du similar to gdu + eza # like ls but with colors + fd # modern find, faster searches + fzf # fuzzy finder! super cool and useful + gdu # disk-space utility checker, somewhat useful + rmlint # amazing dupe finder that integrates well with BTRFS + tldr # man for retards + trash-cli # oop! did not meant to delete that + jq # linting + smartmontools # check hard drie health + ; + }; environment.variables = { TEST = "AHHH"; HISTFILE = "\${XDG_STATE_HOME}/bash/history"; diff --git a/overlay.nix b/overlay.nix index 836aa1b..9975967 100644 --- a/overlay.nix +++ b/overlay.nix @@ -5,24 +5,31 @@ _self: super: { nautilus = gPrev.nautilus.overrideAttrs (nsuper: { buildInputs = nsuper.buildInputs - ++ (with pkgs.gst_all_1; [ - gst-libav - gst-plugins-good - gst-plugins-bad - gst-plugins-ugly - gst-plugins-base - ]); + ++ builtins.attrValues { + inherit (pkgs.gst_all_1) + gst-libav + gst-plugins-good + gst-plugins-bad + gst-plugins-ugly + gst-plugins-base + ; + }; }); } ); lutris = super.lutris.override { extraPkgs = - pkgs: with pkgs; [ - pango - winetricks - wine64Packages.stable - wineWowPackages.stable - ]; + pkgs: + let + corePackages = builtins.attrValues { + inherit (pkgs) pango winetricks; + }; + winePackages = [ + pkgs.wine64Packages.stable + pkgs.wineWowPackages.stable + ]; + in + corePackages ++ winePackages; }; nerdfonts = super.nerdfonts.override { fonts = [ diff --git a/pkgs/download/default.nix b/pkgs/download/default.nix index c512a04..c81a3aa 100644 --- a/pkgs/download/default.nix +++ b/pkgs/download/default.nix @@ -9,11 +9,13 @@ python3Packages.buildPythonApplication { version = "2.5"; src = ../../scripts/download/.; build-system = [ python3Packages.setuptools ]; - dependencies = with python3Packages; [ - pyyaml - types-pyyaml - yt-dlp - ]; + dependencies = builtins.attrValues { + inherit (python3Packages) + pyyaml + types-pyyaml + yt-dlp + ; + }; propagatedBuildInputs = [ gallery-dl ffmpeg diff --git a/pkgs/polymc/default.nix b/pkgs/polymc/default.nix index 43acff8..3eb703c 100644 --- a/pkgs/polymc/default.nix +++ b/pkgs/polymc/default.nix @@ -168,7 +168,7 @@ let } ); }; - meta = with lib; { + meta = { homepage = "https://polymc.org/"; downloadPage = "https://polymc.org/download/"; changelog = "https://github.com/PolyMC/PolyMC/releases"; @@ -179,7 +179,7 @@ let their associated options with a simple interface. ''; platforms = [ "x86_64-linux" ]; - license = licenses.gpl3Only; + license = lib.licenses.gpl3Only; }; } ); diff --git a/pkgs/vdhcoapp/default.nix b/pkgs/vdhcoapp/default.nix index 12abd58..526d830 100644 --- a/pkgs/vdhcoapp/default.nix +++ b/pkgs/vdhcoapp/default.nix @@ -66,11 +66,11 @@ buildNpmPackage ( --add-flags $out/opt/vdhcoapp/src/main.js ''; - meta = with lib; { + meta = { description = "Companion application for the Video DownloadHelper browser add-on"; homepage = "https://www.downloadhelper.net/"; - license = licenses.gpl2; - maintainers = with maintainers; [ wolfangaukang ]; + license = lib.licenses.gpl2; + maintainers = [ lib.maintainers.wolfangaukang ]; mainProgram = "vdhcoapp"; }; } diff --git a/pkgs/vdhcoapp/filepicker.nix b/pkgs/vdhcoapp/filepicker.nix index 081b8c2..49db62b 100644 --- a/pkgs/vdhcoapp/filepicker.nix +++ b/pkgs/vdhcoapp/filepicker.nix @@ -33,12 +33,12 @@ rustPlatform.buildRustPackage ( nativeBuildInputs = [ pkg-config ]; - meta = with lib; { + meta = { description = "File picker used by VDHCoApp"; homepage = "https://github.com/paulrouget/static-filepicker"; - license = licenses.gpl2; + license = lib.licenses.gpl2; mainProgram = "filepicker"; - maintainers = with maintainers; [ hannesgith ]; + maintainers = [ lib.maintainers.hannesgith ]; }; } )