From cb216d39f10de7c97186b55b157acf6851148d06 Mon Sep 17 00:00:00 2001 From: RGBCube Date: Mon, 21 Jul 2025 18:19:43 +0300 Subject: [PATCH 1/5] helix: use nixd --- .gitignore | 2 -- docs/LICENSE.md => LICENSE.md | 0 docs/README.md => README.md | 0 hosts/best/default.nix | 3 ++- hosts/disk/default.nix | 3 ++- hosts/nine/default.nix | 3 ++- hosts/pala/default.nix | 9 +++++---- modules/common/editor/default.nix | 2 +- modules/linux/hyprland/hyprland.nix | 12 ------------ modules/linux/localisation.nix | 16 +++++++++++++++- 10 files changed, 27 insertions(+), 23 deletions(-) rename docs/LICENSE.md => LICENSE.md (100%) rename docs/README.md => README.md (100%) diff --git a/.gitignore b/.gitignore index 6e53a16..d80e300 100644 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,6 @@ !.gitignore -!docs/ - !hosts/ !hosts/**/ diff --git a/docs/LICENSE.md b/LICENSE.md similarity index 100% rename from docs/LICENSE.md rename to LICENSE.md diff --git a/docs/README.md b/README.md similarity index 100% rename from docs/README.md rename to README.md diff --git a/hosts/best/default.nix b/hosts/best/default.nix index 1b959ec..18982fb 100644 --- a/hosts/best/default.nix +++ b/hosts/best/default.nix @@ -1,7 +1,8 @@ lib: lib.nixosSystem' ({ config, keys, lib, ... }: let inherit (lib) collectNix remove; in { - imports = collectNix ./. |> remove ./default.nix; + imports = collectNix ./. + |> remove ./default.nix; secrets.id.file = ./id.age; services.openssh.hostKeys = [{ diff --git a/hosts/disk/default.nix b/hosts/disk/default.nix index 8e6cdcd..2c5e398 100644 --- a/hosts/disk/default.nix +++ b/hosts/disk/default.nix @@ -1,7 +1,8 @@ lib: lib.nixosSystem' ({ config, keys, lib, ... }: let inherit (lib) collectNix remove; in { - imports = collectNix ./. |> remove ./default.nix; + imports = collectNix ./. + |> remove ./default.nix; secrets.id.file = ./id.age; services.openssh.hostKeys = [{ diff --git a/hosts/nine/default.nix b/hosts/nine/default.nix index 2d06ed6..575ad85 100644 --- a/hosts/nine/default.nix +++ b/hosts/nine/default.nix @@ -1,7 +1,8 @@ lib: lib.nixosSystem' ({ config, keys, lib, ... }: let inherit (lib) collectNix remove; in { - imports = collectNix ./. |> remove ./default.nix; + imports = collectNix ./. + |> remove ./default.nix; secrets.id.file = ./id.age; services.openssh.hostKeys = [{ diff --git a/hosts/pala/default.nix b/hosts/pala/default.nix index d0f1b58..add1ba3 100644 --- a/hosts/pala/default.nix +++ b/hosts/pala/default.nix @@ -1,7 +1,8 @@ -lib: lib.darwinSystem' ({ lib, ... }: let +lib: lib.darwinSystem' ({ config, lib, ... }: let inherit (lib) collectNix remove; in { - imports = collectNix ./. |> remove ./default.nix; + imports = collectNix ./. + |> remove ./default.nix; type = "desktop"; @@ -14,8 +15,8 @@ in { home-manager.users.pala.home = { stateVersion = "25.05"; - homeDirectory = "/Users/pala"; + homeDirectory = config.users.users.pala.home; }; - system.stateVersion = 5; + system.stateVersion = 5; }) diff --git a/modules/common/editor/default.nix b/modules/common/editor/default.nix index 8e549c1..6f0d919 100644 --- a/modules/common/editor/default.nix +++ b/modules/common/editor/default.nix @@ -154,7 +154,7 @@ in { # NIX nixfmt-rfc-style - nil + nixd # PYTHON basedpyright diff --git a/modules/linux/hyprland/hyprland.nix b/modules/linux/hyprland/hyprland.nix index c9cb071..e55548b 100644 --- a/modules/linux/hyprland/hyprland.nix +++ b/modules/linux/hyprland/hyprland.nix @@ -35,18 +35,6 @@ in merge <| mkIf config.isDesktop { }; home-manager.sharedModules = [{ - xdg.configFile."xkb/symbols/tr-swapped-i".text = '' - default partial - xkb_symbols "basic" { - include "tr(basic)" - - name[Group1]="Turkish (i and ı swapped)"; - - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ idotless, Iabovedot, paragraph , none ]}; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ i , I , apostrophe, dead_caron ]}; - }; - ''; - wayland.windowManager.hyprland = enabled { systemd = enabled { enableXdgAutostart = true; diff --git a/modules/linux/localisation.nix b/modules/linux/localisation.nix index dacb110..6787e72 100644 --- a/modules/linux/localisation.nix +++ b/modules/linux/localisation.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, ... }: let inherit (lib) const genAttrs merge mkIf; in merge { - console.keyMap = pkgs.writeText "trq-swapped-i.map" '' + console.keyMap = pkgs.writeText "trq-swapped-i.map" /* hs */ '' include "${pkgs.kbd}/share/keymaps/i386/qwerty/trq.map" keycode 23 = i @@ -11,6 +11,20 @@ in merge { keycode 40 = +dotlessi +Idotabove ''; + home-manager.sharedModules = [{ + xdg.configFile."xkb/symbols/tr-swapped-i".text = /* rs */ '' + default partial + xkb_symbols "basic" { + include "tr(basic)" + + name[Group1]="Turkish (i and ı swapped)"; + + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ idotless, Iabovedot, paragraph , none ]}; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ i , I , apostrophe, dead_caron ]}; + }; + ''; + }]; + i18n.defaultLocale = "C.UTF-8"; } <| mkIf config.isDesktop { i18n.extraLocaleSettings = genAttrs [ From 30d4b5e421fa4172ba74231d76b9bb0ed89c9bc6 Mon Sep 17 00:00:00 2001 From: RGBCube Date: Tue, 22 Jul 2025 03:16:57 +0300 Subject: [PATCH 2/5] python: remove attrValues and set UV env vars --- modules/common/python.nix | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/modules/common/python.nix b/modules/common/python.nix index db78ec5..8ff6875 100644 --- a/modules/common/python.nix +++ b/modules/common/python.nix @@ -1,10 +1,13 @@ -{ lib, pkgs, ... }: let - inherit (lib) attrValues; +{ pkgs, ... }: let + package = pkgs.python314; in { - environment.systemPackages = attrValues { - inherit (pkgs) - python314 - uv - ; + environmennt.variables = { + UV_PYTHON_PREFERENCE = "system"; + UV_PYTHON = "${package}"; }; + + environment.systemPackages = [ + package + pkgs.uv + ]; } From 372df8b48a31a354411a24fb1799e9b37f237c81 Mon Sep 17 00:00:00 2001 From: RGBCube Date: Tue, 22 Jul 2025 03:17:23 +0300 Subject: [PATCH 3/5] treewide: get rid of attrValues pattern because nixd doesn't support goto def on it --- modules/common/agenix.nix | 10 +-- modules/common/editor/default.nix | 62 ++++++++------- modules/common/git.nix | 12 ++- modules/common/jujutsu.nix | 16 ++-- modules/common/nix.nix | 14 ++-- modules/common/packages.nix | 115 +++++++++++++--------------- modules/common/rust.nix | 33 ++++---- modules/common/shell/carapace.nix | 16 ++-- modules/linux/fonts.nix | 20 +++-- modules/linux/hyprland/hyprland.nix | 28 ++++--- modules/linux/thunar.nix | 30 +++----- 11 files changed, 160 insertions(+), 196 deletions(-) diff --git a/modules/common/agenix.nix b/modules/common/agenix.nix index e95b084..3c7b95e 100644 --- a/modules/common/agenix.nix +++ b/modules/common/agenix.nix @@ -1,5 +1,5 @@ { config, lib, pkgs, ... }: let - inherit (lib) attrNames attrValues filterAttrs hasPrefix head mkAliasOptionModule mkIf; + inherit (lib) attrNames filterAttrs hasPrefix head mkAliasOptionModule mkIf; in { imports = [(mkAliasOptionModule [ "secrets" ] [ "age" "secrets" ])]; @@ -12,10 +12,8 @@ in { environment = mkIf config.isDesktop { shellAliases.agenix = "agenix --identity ~/.ssh/id"; - systemPackages = attrValues { - inherit (pkgs) - agenix - ; - }; + systemPackages = [ + pkgs.agenix + ]; }; } diff --git a/modules/common/editor/default.nix b/modules/common/editor/default.nix index 6f0d919..d723d7a 100644 --- a/modules/common/editor/default.nix +++ b/modules/common/editor/default.nix @@ -129,49 +129,47 @@ in { shellAliases.e = config.editor.defaultAlias; variables.EDITOR = config.editor.defaultAlias; - systemPackages = mkIf config.isDesktop <| attrValues { - inherit (pkgs) - # CMAKE - cmake-language-server + systemPackages = mkIf config.isDesktop [ + # CMAKE + pkgs.cmake-language-server - # GO - gopls + # GO + pkgs.gopls - # HTML - vscode-langservers-extracted + # HTML + pkgs.vscode-langservers-extracted - # KOTLIN - kotlin-language-server + # KOTLIN + pkgs.kotlin-language-server - # LATEX - texlab + # LATEX + pkgs.texlab - # LUA - lua-language-server + # LUA + pkgs.lua-language-server - # MARKDOWN - markdown-oxide + # MARKDOWN + pkgs.markdown-oxide - # NIX - nixfmt-rfc-style - nixd + # NIX + pkgs.nixfmt-rfc-style + pkgs.nixd - # PYTHON - basedpyright + # PYTHON + pkgs.basedpyright - # RUST - rust-analyzer-nightly - lldb + # RUST + pkgs.rust-analyzer-nightly + pkgs.lldb - # TYPESCRIPT & OTHERS - deno + # TYPESCRIPT & OTHERS + pkgs.deno - # YAML - yaml-language-server + # YAML + pkgs.yaml-language-server - # ZIG - zls - ; - }; + # ZIG + pkgs.zls + ]; }; } diff --git a/modules/common/git.nix b/modules/common/git.nix index dbca01f..20afd3e 100644 --- a/modules/common/git.nix +++ b/modules/common/git.nix @@ -1,5 +1,5 @@ { self, config, lib, pkgs, ... }: let - inherit (lib) attrValues head mkAfter enabled merge mkIf; + inherit (lib) head mkAfter enabled merge mkIf; inherit (lib.strings) match; in { environment.shellAliases = merge { @@ -68,12 +68,10 @@ in { "ask-git" = "gh copilot suggest --target git --"; }; - environment.systemPackages = attrValues { - inherit (pkgs) - git-absorb - tig - ; - }; + environment.systemPackages = [ + pkgs.git-absorb + pkgs.tig + ]; home-manager.sharedModules = [ (homeArgs: let diff --git a/modules/common/jujutsu.nix b/modules/common/jujutsu.nix index c5b749b..48eab9d 100644 --- a/modules/common/jujutsu.nix +++ b/modules/common/jujutsu.nix @@ -1,14 +1,12 @@ { self, config, lib, pkgs, ... }: let - inherit (lib) attrValues enabled head mkIf; + inherit (lib) enabled head mkIf; in { - environment.systemPackages = attrValues { - inherit (pkgs) - difftastic - jjui - mergiraf - radicle-node - ; - }; + environment.systemPackages = [ + pkgs.difftastic + pkgs.jjui + pkgs.mergiraf + pkgs.radicle-node + ]; home-manager.sharedModules = [{ programs.jujutsu = enabled { diff --git a/modules/common/nix.nix b/modules/common/nix.nix index a397a6d..d485fb3 100644 --- a/modules/common/nix.nix +++ b/modules/common/nix.nix @@ -1,5 +1,5 @@ { self, config, inputs, lib, pkgs, ... }: let - inherit (lib) attrValues attrsToList concatStringsSep const disabled filter filterAttrs flip id isType mapAttrs mapAttrsToList match merge mkAfter optionalAttrs optionals; + inherit (lib) attrsToList concatStringsSep const disabled filter filterAttrs flip id isType mapAttrs mapAttrsToList merge mkAfter optionalAttrs optionals; inherit (lib.strings) toJSON; registryMap = inputs @@ -53,13 +53,11 @@ in { nix.optimise.automatic = true; - environment.systemPackages = attrValues { - inherit (pkgs) - nh - nix-index - nix-output-monitor - ; - }; + environment.systemPackages = [ + pkgs.nh + pkgs.nix-index + pkgs.nix-output-monitor + ]; home-manager.sharedModules = [{ programs.nushell.configFile.text = mkAfter /* nu */ '' diff --git a/modules/common/packages.nix b/modules/common/packages.nix index 93bebad..a02571a 100644 --- a/modules/common/packages.nix +++ b/modules/common/packages.nix @@ -1,76 +1,65 @@ { config, lib, pkgs, ... }: let - inherit (lib) attrValues optionalAttrs; + inherit (lib) optionals; in { unfree.allowedNames = [ "claude-code" ]; - environment.systemPackages = attrValues <| { - inherit (pkgs) - asciinema - cowsay - curlHTTP3 - dig - doggo - eza - fastfetch - fd - hyperfine - jc - moreutils - openssl - p7zip - pstree - rsync - sd - timg - tokei - typos - uutils-coreutils-noprefix - xh - yazi - yt-dlp - ; + environment.systemPackages = [ + pkgs.asciinema + pkgs.cowsay + pkgs.curlHTTP3 + pkgs.dig + pkgs.doggo + pkgs.eza + pkgs.fastfetch + pkgs.fd + pkgs.hyperfine + pkgs.jc + pkgs.moreutils + pkgs.openssl + pkgs.p7zip + pkgs.pstree + pkgs.rsync + pkgs.sd + pkgs.timg + pkgs.tokei + pkgs.typos + pkgs.uutils-coreutils-noprefix + pkgs.xh + pkgs.yazi + pkgs.yt-dlp + (pkgs.fortune.override { withOffensive = true; }) + ] ++ optionals config.isLinux [ + pkgs.traceroute + pkgs.usbutils + pkgs.strace + ] ++ optionals config.isDesktop [ + pkgs.claude-code - fortune = pkgs.fortune.override { withOffensive = true; }; - } // optionalAttrs config.isLinux { - inherit (pkgs) - traceroute - usbutils - strace - ; - } // optionalAttrs config.isDesktop { - inherit (pkgs) - claude-code + pkgs.clang_16 + pkgs.clang-tools_16 + pkgs.deno + pkgs.gh + pkgs.go + pkgs.lld + pkgs.zig - clang_16 - clang-tools_16 - deno - gh - go - lld - zig + pkgs.qbittorrent + ] ++ optionals (config.isLinux && config.isDesktop) [ + pkgs.thunderbird - qbittorrent - ; - } // optionalAttrs (config.isLinux && config.isDesktop) { - inherit (pkgs) - thunderbird + pkgs.whatsapp-for-linux - whatsapp-for-linux + pkgs.element-desktop + pkgs.zulip + pkgs.fractal - element-desktop - zulip - fractal + pkgs.obs-studio - obs-studio + pkgs.krita - krita + pkgs.libreoffice - libreoffice - ; - - inherit (pkgs.hunspellDicts) - en_US - en_GB-ize - ; - }; + pkgs.en_US + pkgs.en_GB-ize + ]; } diff --git a/modules/common/rust.nix b/modules/common/rust.nix index 57a3e2c..4b41892 100644 --- a/modules/common/rust.nix +++ b/modules/common/rust.nix @@ -1,34 +1,31 @@ { config, lib, pkgs, ... }: let - inherit (lib) attrValues makeLibraryPath mkIf; + inherit (lib) makeLibraryPath mkIf; in { environment.variables = { CARGO_NET_GIT_FETCH_WITH_CLI = "true"; - LIBRARY_PATH = mkIf config.isDarwin <| makeLibraryPath <| attrValues { - inherit (pkgs) - libiconv - ; - }; + LIBRARY_PATH = mkIf config.isDarwin <| makeLibraryPath [ + pkgs.libiconv + ]; }; - environment.systemPackages = attrValues { - inherit (pkgs) - cargo-deny - cargo-expand - cargo-fuzz - cargo-nextest + environment.systemPackages = [ + pkgs.cargo-deny + pkgs.cargo-expand + pkgs.cargo-fuzz + pkgs.cargo-nextest - evcxr + pkgs.evcxr - taplo - ; + pkgs.taplo - fenix = pkgs.fenix.complete.withComponents [ + + (pkgs.fenix.complete.withComponents [ "cargo" "clippy" "rust-src" "rustc" "rustfmt" - ]; - }; + ]) + ]; } diff --git a/modules/common/shell/carapace.nix b/modules/common/shell/carapace.nix index 426539a..6ce38bd 100644 --- a/modules/common/shell/carapace.nix +++ b/modules/common/shell/carapace.nix @@ -1,14 +1,12 @@ { lib, pkgs, ... }: let - inherit (lib) attrValues enabled; + inherit (lib) enabled; in { - environment.systemPackages = attrValues { - inherit (pkgs) - carapace - fish - zsh - inshellisense - ; - }; + environment.systemPackages = [ + pkgs.carapace + pkgs.fish + pkgs.zsh + pkgs.inshellisense + ]; home-manager.sharedModules = [{ programs.carapace = enabled; diff --git a/modules/linux/fonts.nix b/modules/linux/fonts.nix index acdcc05..029f4ca 100644 --- a/modules/linux/fonts.nix +++ b/modules/linux/fonts.nix @@ -1,5 +1,5 @@ { config, lib, pkgs, ... }: let - inherit (lib) attrValues disabled merge mkIf; + inherit (lib) disabled merge mkIf; in merge (mkIf config.isDesktop { @@ -9,17 +9,15 @@ in merge packages = [ pkgs.terminus_font ]; }; - fonts.packages = attrValues { - sans = config.theme.font.sans.package; - mono = config.theme.font.mono.package; + fonts.packages = [ + config.theme.font.sans.package + config.theme.font.mono.package - inherit (pkgs) - noto-fonts - noto-fonts-cjk-sans - noto-fonts-lgc-plus - noto-fonts-emoji - ; - }; + pkgs.noto-fonts + pkgs.noto-fonts-cjk-sans + pkgs.noto-fonts-lgc-plus + pkgs.noto-fonts-emoji + ]; }) (mkIf config.isServer { diff --git a/modules/linux/hyprland/hyprland.nix b/modules/linux/hyprland/hyprland.nix index e55548b..49b5cfa 100644 --- a/modules/linux/hyprland/hyprland.nix +++ b/modules/linux/hyprland/hyprland.nix @@ -1,5 +1,5 @@ { config, lib, pkgs, ... }: let - inherit (lib) attrValues enabled merge mkIf flatten range; + inherit (lib) enabled merge mkIf flatten range; in merge <| mkIf config.isDesktop { hardware.graphics = enabled; @@ -19,20 +19,18 @@ in merge <| mkIf config.isDesktop { programs.xwayland = enabled; - environment.systemPackages = attrValues { - inherit (pkgs) - brightnessctl - grim - hyprpicker - slurp - swappy - swaybg - wl-clipboard - wtype - xdg-utils - xwaylandvideobridge - ; - }; + environment.systemPackages = [ + pkgs.brightnessctl + pkgs.grim + pkgs.hyprpicker + pkgs.slurp + pkgs.swappy + pkgs.swaybg + pkgs.wl-clipboard + pkgs.wtype + pkgs.xdg-utils + pkgs.xwaylandvideobridge + ]; home-manager.sharedModules = [{ wayland.windowManager.hyprland = enabled { diff --git a/modules/linux/thunar.nix b/modules/linux/thunar.nix index 0a5f5e4..51f5cd5 100644 --- a/modules/linux/thunar.nix +++ b/modules/linux/thunar.nix @@ -1,25 +1,19 @@ { config, lib, pkgs, ... }: let - inherit (lib) attrValues enabled merge mkIf; + inherit (lib) enabled merge mkIf; in merge <| mkIf config.isDesktop { programs.thunar = enabled { - plugins = attrValues { - inherit (pkgs.xfce) - thunar-archive-plugin - thunar-media-tags-plugin - thunar-volman - ; - }; + plugins = [ + pkgs.xfce.thunar-archive-plugin + pkgs.xfce.thunar-media-tags-plugin + pkgs.xfce.thunar-volman + ]; }; - environment.systemPackages = attrValues { - inherit (pkgs) - ark - ffmpegthumbnailer - libgsf - ; + environment.systemPackages = [ + pkgs.ark + pkgs.ffmpegthumbnailer + pkgs.libgsf - inherit (pkgs.xfce) - tumbler - ; - }; + pkgs.xfce.tumbler + ]; } From cb96141ecf49502de5ff3eff4c21998a0599d936 Mon Sep 17 00:00:00 2001 From: RGBCube Date: Tue, 22 Jul 2025 03:21:37 +0300 Subject: [PATCH 4/5] helix: fix lsp config decl --- modules/common/editor/default.nix | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/modules/common/editor/default.nix b/modules/common/editor/default.nix index d723d7a..e7a23ff 100644 --- a/modules/common/editor/default.nix +++ b/modules/common/editor/default.nix @@ -66,10 +66,10 @@ in { args.program = "{0}"; args.initCommands = let - primer = pkgs.runCommand "primer" {} (/* py */ '' - mkdir $out - echo ' + # Why? Helix injections. + writeText = pkgs.writeText; + primer = writeText "primer.py" '' import subprocess import pathlib import lldb @@ -82,9 +82,7 @@ in { # Load lldb_lookup.py and execute lldb_commands with the correct path lldb.debugger.HandleCommand(f"""command script import "{rustlib_etc / 'lldb_lookup.py'}" """) lldb.debugger.HandleCommand(f"""command source -s 0 "{rustlib_etc / 'lldb_commands'}" """) - - ' > $out/primer.py - ''); + ''; in [ "command script import ${primer}/primer.py" ]; }]; } From 27a60aae67e3b9d1ce3960a803aecd0f236a0e2e Mon Sep 17 00:00:00 2001 From: RGBCube Date: Tue, 22 Jul 2025 03:22:19 +0300 Subject: [PATCH 5/5] packages: fix indents --- modules/common/packages.nix | 92 ++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/modules/common/packages.nix b/modules/common/packages.nix index a02571a..e0f5931 100644 --- a/modules/common/packages.nix +++ b/modules/common/packages.nix @@ -4,62 +4,62 @@ in { unfree.allowedNames = [ "claude-code" ]; environment.systemPackages = [ - pkgs.asciinema - pkgs.cowsay - pkgs.curlHTTP3 - pkgs.dig - pkgs.doggo - pkgs.eza - pkgs.fastfetch - pkgs.fd - pkgs.hyperfine - pkgs.jc - pkgs.moreutils - pkgs.openssl - pkgs.p7zip - pkgs.pstree - pkgs.rsync - pkgs.sd - pkgs.timg - pkgs.tokei - pkgs.typos - pkgs.uutils-coreutils-noprefix - pkgs.xh - pkgs.yazi - pkgs.yt-dlp - (pkgs.fortune.override { withOffensive = true; }) + pkgs.asciinema + pkgs.cowsay + pkgs.curlHTTP3 + pkgs.dig + pkgs.doggo + pkgs.eza + pkgs.fastfetch + pkgs.fd + pkgs.hyperfine + pkgs.jc + pkgs.moreutils + pkgs.openssl + pkgs.p7zip + pkgs.pstree + pkgs.rsync + pkgs.sd + pkgs.timg + pkgs.tokei + pkgs.typos + pkgs.uutils-coreutils-noprefix + pkgs.xh + pkgs.yazi + pkgs.yt-dlp + (pkgs.fortune.override { withOffensive = true; }) ] ++ optionals config.isLinux [ - pkgs.traceroute - pkgs.usbutils - pkgs.strace + pkgs.traceroute + pkgs.usbutils + pkgs.strace ] ++ optionals config.isDesktop [ - pkgs.claude-code + pkgs.claude-code - pkgs.clang_16 - pkgs.clang-tools_16 - pkgs.deno - pkgs.gh - pkgs.go - pkgs.lld - pkgs.zig + pkgs.clang_16 + pkgs.clang-tools_16 + pkgs.deno + pkgs.gh + pkgs.go + pkgs.lld + pkgs.zig - pkgs.qbittorrent + pkgs.qbittorrent ] ++ optionals (config.isLinux && config.isDesktop) [ - pkgs.thunderbird + pkgs.thunderbird - pkgs.whatsapp-for-linux + pkgs.whatsapp-for-linux - pkgs.element-desktop - pkgs.zulip - pkgs.fractal + pkgs.element-desktop + pkgs.zulip + pkgs.fractal - pkgs.obs-studio + pkgs.obs-studio - pkgs.krita + pkgs.krita - pkgs.libreoffice + pkgs.libreoffice - pkgs.en_US - pkgs.en_GB-ize + pkgs.en_US + pkgs.en_GB-ize ]; }