From d5687fa0246b1350cef7cfd83f99208187c33dce Mon Sep 17 00:00:00 2001 From: Chris Dombroski Date: Sat, 21 Sep 2024 21:50:25 -0400 Subject: [PATCH] abolish with scoping --- configs/home.nix | 205 -------------------------- flake.nix | 6 +- home-modules/vim.nix | 26 ++-- home-modules/vscode.nix | 10 +- nixos-configurations/orangepihole.nix | 12 +- nixos-configurations/smolboi.nix | 125 ++++++++-------- nixos-configurations/zeus.nix | 22 +-- nixos-modules/plymouth.nix | 2 +- pkgs/zwave-js-ui.nix | 2 +- 9 files changed, 107 insertions(+), 303 deletions(-) delete mode 100644 configs/home.nix diff --git a/configs/home.nix b/configs/home.nix deleted file mode 100644 index b435dcf..0000000 --- a/configs/home.nix +++ /dev/null @@ -1,205 +0,0 @@ -{ - config, - lib, - pkgs, - pkgs-unstable, - ... -}: - -{ - # Home Manager needs a bit of information about you and the paths it should - # manage. - home.username = "cdombroski"; - home.homeDirectory = "/home/cdombroski"; - - # This value determines the Home Manager release that your configuration is - # compatible with. This helps avoid breakage when a new Home Manager release - # introduces backwards incompatible changes. - # - # You should not change this value, even if you update Home Manager. If you do - # want to update the value, then make sure to first check the Home Manager - # release notes. - home.stateVersion = "23.11"; # Please read the comment before changing. - - # The home.packages option allows you to install Nix packages into your - # environment. - home.packages = [ - pkgs.element-desktop - pkgs.discord - pkgs.openrgb-with-all-plugins - pkgs.keepassxc - pkgs.heroic - pkgs.r2modman - pkgs.mangohud - pkgs.hack-font - pkgs.htop - pkgs.jellyfin-media-player - pkgs.konversation - pkgs.nixd - pkgs.yakuake - pkgs.mgba - pkgs.vlc - pkgs-unstable.jetbrains.idea-community - pkgs.dolphin-emu-primehack - pkgs.steamtinkerlaunch - pkgs.mangohud - pkgs.lutris - pkgs.knossosnet - pkgs.lilypond - pkgs.musescore - pkgs.protontricks - pkgs.protonup-qt - (pkgs.retroarch.override { - cores = with pkgs.libretro; [ - beetle-psx-hw - pcsx2 - mesen - bsnes - parallel-n64 - dolphin - sameboy - citra - gpsp - desmume - fbneo - nxengine - mgba - ]; - }) - - # # Adds the 'hello' command to your environment. It prints a friendly - # # "Hello, world!" when run. - # pkgs.hello - - # # It is sometimes useful to fine-tune packages, for example, by applying - # # overrides. You can do that directly here, just don't forget the - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of - # # fonts? - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) - - # # You can also create simple shell scripts directly inside your - # # configuration. For example, this adds a command 'my-hello' to your - # # environment: - # (pkgs.writeShellScriptBin "my-hello" '' - # echo "Hello, ${config.home.username}!" - # '') - ]; - - services.syncthing = { - enable = true; - tray.enable = true; - }; - - systemd.user = { - targets.tray = { - Unit = { - Description = "System Tray"; - Requires = [ "graphical-session.target" ]; - }; - }; - }; - - nixpkgs.config = { - allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "discord" ]; - permittedInsecurePackages = [ "electron-25.9.0" ]; - }; - xdg.configFile."autostart/yakuake.desktop".source = "${pkgs.yakuake}/share/applications/org.kde.yakuake.desktop"; - - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. - home.file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; - - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; - }; - - home.preferXdgDirectories = true; - xdg.enable = true; - - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. If you don't want to manage your shell through Home - # Manager then you have to manually source 'hm-session-vars.sh' located at - # either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/cdombroski/etc/profile.d/hm-session-vars.sh - # - home.sessionVariables = { - ANDROID_USER_HOME = "${config.xdg.dataHome}/android"; - CARGO_HOME = "${config.xdg.dataHome}/cargo"; - DOTNET_CLI_HOME = "${config.xdg.dataHome}/dotnet"; - DVDCSS_CACHE = "${config.xdg.dataHome}/dvdcss"; - GRADLE_USER_HOME = "${config.xdg.dataHome}/gradle"; - JAVA_OPTIONS = "-Djava.util.prefs.userRoot=${config.xdg.configHome}/java"; - NODE_REPL_HISTORY = "${config.xdg.stateHome}/node_repl_history"; - NPM_CONFIG_USERCONFIG = "${config.xdg.configHome}/npm/npmrc"; - PYTHON_HISTORY = "${config.xdg.stateHome}/python_history"; - RUSTUP_HOME = "${config.xdg.dataHome}/rustup"; - XCOMPOSE_CACHE = "${config.xdg.cacheHome}/X11/xcompose"; - }; - home.shellAliases = { - adb = ''HOME="${config.xdg.dataHome}/android" adb''; - mvn = "mvn -gs ${config.xdg.configHome}/maven/settings.xml"; - wget = "wget --hsts-file=${config.xdg.dataHome}/wget-hsts"; - }; - home.sessionPath = [ "$HOME/.local/bin" ]; - gtk.gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc"; - - # Let Home Manager install and manage itself. - programs = { - home-manager.enable = true; - bash = { - enable = true; - enableCompletion = true; - historyFile = "${config.xdg.stateHome}/bash/history"; - }; - direnv = { - enable = true; - nix-direnv.enable = true; - }; - gpg = { - enable = true; - homedir = "${config.xdg.dataHome}/gnupg"; - }; - vim = { - enable = true; - defaultEditor = true; - plugins = with pkgs.vimPlugins; [ - vim-sensible - vim-fugitive - vim-eunuch - vim-endwise - vim-lsp - vim-lsp-settings - nerdtree - nerdtree-git-plugin - vim-devicons - editorconfig-vim - ]; - }; - vscode = { - enable = true; - package = pkgs.vscodium-fhs; - extensions = with pkgs.vscode-extensions; [ - mkhl.direnv - eamodio.gitlens - jnoortheen.nix-ide - redhat.java - ]; - }; - }; -} diff --git a/flake.nix b/flake.nix index 0d49f8e..addd72f 100644 --- a/flake.nix +++ b/flake.nix @@ -130,9 +130,9 @@ config = { }; }; devshells.default = { - packages = with pkgs; [ - deploy-rs.deploy-rs - sops + packages = [ + pkgs.deploy-rs.deploy-rs + pkgs.sops ]; }; packages.zwave-js-ui = pkgs.callPackage ./pkgs/zwave-js-ui.nix { }; diff --git a/home-modules/vim.nix b/home-modules/vim.nix index 32cd249..064504e 100644 --- a/home-modules/vim.nix +++ b/home-modules/vim.nix @@ -3,17 +3,19 @@ programs.vim = { enable = true; defaultEditor = true; - plugins = with pkgs.vimPlugins; [ - vim-sensible - vim-fugitive - vim-eunuch - vim-endwise - vim-lsp - vim-lsp-settings - nerdtree - nerdtree-git-plugin - vim-devicons - editorconfig-vim - ]; + plugins = builtins.attrValues { + inherit (pkgs.vimPlugins) + vim-sensible + vim-fugitive + vim-eunuch + vim-endwise + vim-lsp + vim-lsp-settings + nerdtree + nerdtree-git-plugin + vim-devicons + editorconfig-vim + ; + }; }; } diff --git a/home-modules/vscode.nix b/home-modules/vscode.nix index 5f8fc64..d019ce1 100644 --- a/home-modules/vscode.nix +++ b/home-modules/vscode.nix @@ -8,11 +8,11 @@ programs.vscode = lib.mkIf osConfig.services.displayManager.enable { enable = true; package = pkgs.vscodium-fhs; - extensions = with pkgs.vscode-extensions; [ - mkhl.direnv - eamodio.gitlens - jnoortheen.nix-ide - redhat.java + extensions = [ + pkgs.vscode-extensions.mkhl.direnv + pkgs.vscode-extensions.eamodio.gitlens + pkgs.vscode-extensions.jnoortheen.nix-ide + pkgs.vscode-extensions.redhat.java ]; }; } diff --git a/nixos-configurations/orangepihole.nix b/nixos-configurations/orangepihole.nix index c729879..5c81fdb 100644 --- a/nixos-configurations/orangepihole.nix +++ b/nixos-configurations/orangepihole.nix @@ -139,9 +139,9 @@ services.adblock = { startAt = "daily"; postStop = "systemctl try-reload-or-restart unbound"; - path = with pkgs; [ - gawk - wget + path = [ + pkgs.gawk + pkgs.wget ]; script = '' wget -nv -O - https://raw.githubusercontent.com/hagezi/dns-blocklists/main/unbound/tif.blacklist.conf > /tmp/new.conf @@ -155,9 +155,9 @@ }; environment = { - systemPackages = with pkgs; [ - vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. - wget + systemPackages = [ + pkgs.vim + pkgs.wget ]; persistence."/persist" = { hideMounts = true; diff --git a/nixos-configurations/smolboi.nix b/nixos-configurations/smolboi.nix index de9af7d..4197392 100644 --- a/nixos-configurations/smolboi.nix +++ b/nixos-configurations/smolboi.nix @@ -63,7 +63,7 @@ in allowUnfree = true; permittedInsecurePackages = [ "electron-25.9.0" ]; packageOverrides = pkgs: { - steam = pkgs.steam.override { extraPkgs = pkgs: with pkgs; [ winetricks ]; }; + steam = pkgs.steam.override { extraPkgs = pkgs: [ pkgs.winetricks ]; }; }; }; hostPlatform = lib.mkDefault "x86_64-linux"; @@ -121,63 +121,68 @@ in }; environment = { - systemPackages = with pkgs; [ - vim-full - libreoffice-qt - firefox - syncthing - chromium - skanlite - htop - kate - cifs-utils - tio - p7zip - rar - piper - element-desktop - discord - openrgb-with-all-plugins - keepassxc - heroic - r2modman - mangohud - hack-font - htop - jellyfin-media-player - konversation - nixd - yakuake - mgba - vlc - pkgs-unstable.jetbrains.idea-community - dolphin-emu-primehack - steamtinkerlaunch - mangohud - lutris - knossosnet - lilypond - musescore - protontricks - protonup-qt - (retroarch.override { - cores = with libretro; [ - beetle-psx-hw - pcsx2 - mesen - bsnes - parallel-n64 - dolphin - sameboy - citra - gpsp - desmume - fbneo - nxengine + systemPackages = + builtins.attrValues { + inherit (pkgs) + vim-full + libreoffice-qt + firefox + syncthing + chromium + skanlite + htop + kate + cifs-utils + tio + p7zip + rar + piper + element-desktop + discord + openrgb-with-all-plugins + keepassxc + heroic + r2modman + mangohud + hack-font + jellyfin-media-player + konversation + nixd + yakuake mgba - ]; - }) - ]; + vlc + dolphin-emu-primehack + steamtinkerlaunch + lutris + knossosnet + lilypond + musescore + protontricks + protonup-qt + ; + inherit (pkgs-unstable.jetbrains) idea-community; + } + ++ [ + (pkgs.retroarch.override { + cores = builtins.attrValues { + inherit (pkgs.libretro) + beetle-psx-hw + pcsx2 + mesen + bsnes + parallel-n64 + dolphin + sameboy + citra + gpsp + desmume + fbneo + nxengine + mgba + ; + }; + }) + ]; persistence."/persist" = { hideMounts = true; directories = [ @@ -212,9 +217,9 @@ in remotePlay.openFirewall = true; gamescopeSession.enable = true; }; - firefox.nativeMessagingHosts.packages = with pkgs; [ - keepassxc - libsForQt5.plasma-browser-integration + firefox.nativeMessagingHosts.packages = [ + pkgs.keepassxc + pkgs.kdePackages.plasma-browser-integration ]; gamemode = { enable = true; diff --git a/nixos-configurations/zeus.nix b/nixos-configurations/zeus.nix index 3155334..d96130d 100644 --- a/nixos-configurations/zeus.nix +++ b/nixos-configurations/zeus.nix @@ -258,7 +258,7 @@ in imageFile = pkgs.dockerTools.buildLayeredImage { name = "my-zwave-js-ui"; tag = "latest"; - contents = with pkgs; [ cacert ]; + contents = [ pkgs.cacert ]; config.Cmd = [ "${inputs.self.packages.${pkgs.stdenv.system}.zwave-js-ui}/bin/zwave-js-ui" ]; }; volumes = [ "zwave-config:/usr/src/app/store" ]; @@ -488,15 +488,17 @@ in }; nix.settings.trusted-users = [ "nixremote" ]; environment = { - systemPackages = with pkgs; [ - vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. - dive - podman-tui - docker-compose - tcpdump - ethtool - pkgs-unstable.recyclarr - ]; + systemPackages = builtins.attrValues { + inherit (pkgs) + vim + dive + podman-tui + docker-compose + tcpdump + ethtool + ; + inherit (pkgs-unstable) recyclarr; + }; persistence."/persist" = { enableWarnings = false; hideMounts = true; diff --git a/nixos-modules/plymouth.nix b/nixos-modules/plymouth.nix index d719f57..c714aa1 100644 --- a/nixos-modules/plymouth.nix +++ b/nixos-modules/plymouth.nix @@ -2,7 +2,7 @@ { boot.plymouth = { enable = true; - themePackages = with pkgs; [ (adi1090x-plymouth-themes.override { selected_themes = [ "owl" ]; }) ]; + themePackages = [ (pkgs.adi1090x-plymouth-themes.override { selected_themes = [ "owl" ]; }) ]; theme = lib.mkForce "owl"; }; } diff --git a/pkgs/zwave-js-ui.nix b/pkgs/zwave-js-ui.nix index 1da5b1b..6618047 100644 --- a/pkgs/zwave-js-ui.nix +++ b/pkgs/zwave-js-ui.nix @@ -20,6 +20,6 @@ buildNpmPackage rec { description = "Full featured Z-Wave Control Panel and MQTT Gateway."; homepage = "https://zwave-js.github.io/zwave-js-ui/"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ cdombroski ]; + maintainers = [ lib.maintainers.cdombroski ]; }; }