diff --git a/.gitignore b/.gitignore index d80e300..6e53a16 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ !.gitignore +!docs/ + !hosts/ !hosts/**/ diff --git a/LICENSE.md b/docs/LICENSE.md similarity index 100% rename from LICENSE.md rename to docs/LICENSE.md diff --git a/README.md b/docs/README.md similarity index 100% rename from README.md rename to docs/README.md diff --git a/hosts/best/default.nix b/hosts/best/default.nix index 18982fb..1b959ec 100644 --- a/hosts/best/default.nix +++ b/hosts/best/default.nix @@ -1,8 +1,7 @@ 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 2c5e398..8e6cdcd 100644 --- a/hosts/disk/default.nix +++ b/hosts/disk/default.nix @@ -1,8 +1,7 @@ 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 575ad85..2d06ed6 100644 --- a/hosts/nine/default.nix +++ b/hosts/nine/default.nix @@ -1,8 +1,7 @@ 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 add1ba3..d0f1b58 100644 --- a/hosts/pala/default.nix +++ b/hosts/pala/default.nix @@ -1,8 +1,7 @@ -lib: lib.darwinSystem' ({ config, lib, ... }: let +lib: lib.darwinSystem' ({ lib, ... }: let inherit (lib) collectNix remove; in { - imports = collectNix ./. - |> remove ./default.nix; + imports = collectNix ./. |> remove ./default.nix; type = "desktop"; @@ -15,8 +14,8 @@ in { home-manager.users.pala.home = { stateVersion = "25.05"; - homeDirectory = config.users.users.pala.home; + homeDirectory = "/Users/pala"; }; - system.stateVersion = 5; + system.stateVersion = 5; }) diff --git a/modules/common/agenix.nix b/modules/common/agenix.nix index 3c7b95e..e95b084 100644 --- a/modules/common/agenix.nix +++ b/modules/common/agenix.nix @@ -1,5 +1,5 @@ { config, lib, pkgs, ... }: let - inherit (lib) attrNames filterAttrs hasPrefix head mkAliasOptionModule mkIf; + inherit (lib) attrNames attrValues filterAttrs hasPrefix head mkAliasOptionModule mkIf; in { imports = [(mkAliasOptionModule [ "secrets" ] [ "age" "secrets" ])]; @@ -12,8 +12,10 @@ in { environment = mkIf config.isDesktop { shellAliases.agenix = "agenix --identity ~/.ssh/id"; - systemPackages = [ - pkgs.agenix - ]; + systemPackages = attrValues { + inherit (pkgs) + agenix + ; + }; }; } diff --git a/modules/common/editor/default.nix b/modules/common/editor/default.nix index e7a23ff..8e549c1 100644 --- a/modules/common/editor/default.nix +++ b/modules/common/editor/default.nix @@ -66,10 +66,10 @@ in { args.program = "{0}"; args.initCommands = let - # Why? Helix injections. - writeText = pkgs.writeText; + primer = pkgs.runCommand "primer" {} (/* py */ '' + mkdir $out + echo ' - primer = writeText "primer.py" '' import subprocess import pathlib import lldb @@ -82,7 +82,9 @@ 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" ]; }]; } @@ -127,47 +129,49 @@ in { shellAliases.e = config.editor.defaultAlias; variables.EDITOR = config.editor.defaultAlias; - systemPackages = mkIf config.isDesktop [ - # CMAKE - pkgs.cmake-language-server + systemPackages = mkIf config.isDesktop <| attrValues { + inherit (pkgs) + # CMAKE + cmake-language-server - # GO - pkgs.gopls + # GO + gopls - # HTML - pkgs.vscode-langservers-extracted + # HTML + vscode-langservers-extracted - # KOTLIN - pkgs.kotlin-language-server + # KOTLIN + kotlin-language-server - # LATEX - pkgs.texlab + # LATEX + texlab - # LUA - pkgs.lua-language-server + # LUA + lua-language-server - # MARKDOWN - pkgs.markdown-oxide + # MARKDOWN + markdown-oxide - # NIX - pkgs.nixfmt-rfc-style - pkgs.nixd + # NIX + nixfmt-rfc-style + nil - # PYTHON - pkgs.basedpyright + # PYTHON + basedpyright - # RUST - pkgs.rust-analyzer-nightly - pkgs.lldb + # RUST + rust-analyzer-nightly + lldb - # TYPESCRIPT & OTHERS - pkgs.deno + # TYPESCRIPT & OTHERS + deno - # YAML - pkgs.yaml-language-server + # YAML + yaml-language-server - # ZIG - pkgs.zls - ]; + # ZIG + zls + ; + }; }; } diff --git a/modules/common/git.nix b/modules/common/git.nix index 20afd3e..dbca01f 100644 --- a/modules/common/git.nix +++ b/modules/common/git.nix @@ -1,5 +1,5 @@ { self, config, lib, pkgs, ... }: let - inherit (lib) head mkAfter enabled merge mkIf; + inherit (lib) attrValues head mkAfter enabled merge mkIf; inherit (lib.strings) match; in { environment.shellAliases = merge { @@ -68,10 +68,12 @@ in { "ask-git" = "gh copilot suggest --target git --"; }; - environment.systemPackages = [ - pkgs.git-absorb - pkgs.tig - ]; + environment.systemPackages = attrValues { + inherit (pkgs) + git-absorb + tig + ; + }; home-manager.sharedModules = [ (homeArgs: let diff --git a/modules/common/jujutsu.nix b/modules/common/jujutsu.nix index 48eab9d..c5b749b 100644 --- a/modules/common/jujutsu.nix +++ b/modules/common/jujutsu.nix @@ -1,12 +1,14 @@ { self, config, lib, pkgs, ... }: let - inherit (lib) enabled head mkIf; + inherit (lib) attrValues enabled head mkIf; in { - environment.systemPackages = [ - pkgs.difftastic - pkgs.jjui - pkgs.mergiraf - pkgs.radicle-node - ]; + environment.systemPackages = attrValues { + inherit (pkgs) + difftastic + jjui + mergiraf + radicle-node + ; + }; home-manager.sharedModules = [{ programs.jujutsu = enabled { diff --git a/modules/common/nix.nix b/modules/common/nix.nix index d485fb3..a397a6d 100644 --- a/modules/common/nix.nix +++ b/modules/common/nix.nix @@ -1,5 +1,5 @@ { self, config, inputs, lib, pkgs, ... }: let - inherit (lib) attrsToList concatStringsSep const disabled filter filterAttrs flip id isType mapAttrs mapAttrsToList merge mkAfter optionalAttrs optionals; + inherit (lib) attrValues attrsToList concatStringsSep const disabled filter filterAttrs flip id isType mapAttrs mapAttrsToList match merge mkAfter optionalAttrs optionals; inherit (lib.strings) toJSON; registryMap = inputs @@ -53,11 +53,13 @@ in { nix.optimise.automatic = true; - environment.systemPackages = [ - pkgs.nh - pkgs.nix-index - pkgs.nix-output-monitor - ]; + environment.systemPackages = attrValues { + inherit (pkgs) + nh + nix-index + 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 e0f5931..93bebad 100644 --- a/modules/common/packages.nix +++ b/modules/common/packages.nix @@ -1,65 +1,76 @@ { config, lib, pkgs, ... }: let - inherit (lib) optionals; + inherit (lib) attrValues optionalAttrs; 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; }) - ] ++ optionals config.isLinux [ - pkgs.traceroute - pkgs.usbutils - pkgs.strace - ] ++ optionals config.isDesktop [ - pkgs.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 + ; - pkgs.clang_16 - pkgs.clang-tools_16 - pkgs.deno - pkgs.gh - pkgs.go - pkgs.lld - pkgs.zig + fortune = pkgs.fortune.override { withOffensive = true; }; + } // optionalAttrs config.isLinux { + inherit (pkgs) + traceroute + usbutils + strace + ; + } // optionalAttrs config.isDesktop { + inherit (pkgs) + claude-code - pkgs.qbittorrent - ] ++ optionals (config.isLinux && config.isDesktop) [ - pkgs.thunderbird + clang_16 + clang-tools_16 + deno + gh + go + lld + zig - pkgs.whatsapp-for-linux + qbittorrent + ; + } // optionalAttrs (config.isLinux && config.isDesktop) { + inherit (pkgs) + thunderbird - pkgs.element-desktop - pkgs.zulip - pkgs.fractal + whatsapp-for-linux - pkgs.obs-studio + element-desktop + zulip + fractal - pkgs.krita + obs-studio - pkgs.libreoffice + krita - pkgs.en_US - pkgs.en_GB-ize - ]; + libreoffice + ; + + inherit (pkgs.hunspellDicts) + en_US + en_GB-ize + ; + }; } diff --git a/modules/common/python.nix b/modules/common/python.nix index 8ff6875..db78ec5 100644 --- a/modules/common/python.nix +++ b/modules/common/python.nix @@ -1,13 +1,10 @@ -{ pkgs, ... }: let - package = pkgs.python314; +{ lib, pkgs, ... }: let + inherit (lib) attrValues; in { - environmennt.variables = { - UV_PYTHON_PREFERENCE = "system"; - UV_PYTHON = "${package}"; + environment.systemPackages = attrValues { + inherit (pkgs) + python314 + uv + ; }; - - environment.systemPackages = [ - package - pkgs.uv - ]; } diff --git a/modules/common/rust.nix b/modules/common/rust.nix index 4b41892..57a3e2c 100644 --- a/modules/common/rust.nix +++ b/modules/common/rust.nix @@ -1,31 +1,34 @@ { config, lib, pkgs, ... }: let - inherit (lib) makeLibraryPath mkIf; + inherit (lib) attrValues makeLibraryPath mkIf; in { environment.variables = { CARGO_NET_GIT_FETCH_WITH_CLI = "true"; - LIBRARY_PATH = mkIf config.isDarwin <| makeLibraryPath [ - pkgs.libiconv - ]; + LIBRARY_PATH = mkIf config.isDarwin <| makeLibraryPath <| attrValues { + inherit (pkgs) + libiconv + ; + }; }; - environment.systemPackages = [ - pkgs.cargo-deny - pkgs.cargo-expand - pkgs.cargo-fuzz - pkgs.cargo-nextest + environment.systemPackages = attrValues { + inherit (pkgs) + cargo-deny + cargo-expand + cargo-fuzz + cargo-nextest - pkgs.evcxr + evcxr - pkgs.taplo + taplo + ; - - (pkgs.fenix.complete.withComponents [ + fenix = 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 6ce38bd..426539a 100644 --- a/modules/common/shell/carapace.nix +++ b/modules/common/shell/carapace.nix @@ -1,12 +1,14 @@ { lib, pkgs, ... }: let - inherit (lib) enabled; + inherit (lib) attrValues enabled; in { - environment.systemPackages = [ - pkgs.carapace - pkgs.fish - pkgs.zsh - pkgs.inshellisense - ]; + environment.systemPackages = attrValues { + inherit (pkgs) + carapace + fish + zsh + inshellisense + ; + }; home-manager.sharedModules = [{ programs.carapace = enabled; diff --git a/modules/linux/fonts.nix b/modules/linux/fonts.nix index 029f4ca..acdcc05 100644 --- a/modules/linux/fonts.nix +++ b/modules/linux/fonts.nix @@ -1,5 +1,5 @@ { config, lib, pkgs, ... }: let - inherit (lib) disabled merge mkIf; + inherit (lib) attrValues disabled merge mkIf; in merge (mkIf config.isDesktop { @@ -9,15 +9,17 @@ in merge packages = [ pkgs.terminus_font ]; }; - fonts.packages = [ - config.theme.font.sans.package - config.theme.font.mono.package + fonts.packages = attrValues { + sans = config.theme.font.sans.package; + mono = config.theme.font.mono.package; - pkgs.noto-fonts - pkgs.noto-fonts-cjk-sans - pkgs.noto-fonts-lgc-plus - pkgs.noto-fonts-emoji - ]; + inherit (pkgs) + noto-fonts + noto-fonts-cjk-sans + noto-fonts-lgc-plus + noto-fonts-emoji + ; + }; }) (mkIf config.isServer { diff --git a/modules/linux/hyprland/hyprland.nix b/modules/linux/hyprland/hyprland.nix index 49b5cfa..c9cb071 100644 --- a/modules/linux/hyprland/hyprland.nix +++ b/modules/linux/hyprland/hyprland.nix @@ -1,5 +1,5 @@ { config, lib, pkgs, ... }: let - inherit (lib) enabled merge mkIf flatten range; + inherit (lib) attrValues enabled merge mkIf flatten range; in merge <| mkIf config.isDesktop { hardware.graphics = enabled; @@ -19,20 +19,34 @@ in merge <| mkIf config.isDesktop { programs.xwayland = enabled; - environment.systemPackages = [ - pkgs.brightnessctl - pkgs.grim - pkgs.hyprpicker - pkgs.slurp - pkgs.swappy - pkgs.swaybg - pkgs.wl-clipboard - pkgs.wtype - pkgs.xdg-utils - pkgs.xwaylandvideobridge - ]; + environment.systemPackages = attrValues { + inherit (pkgs) + brightnessctl + grim + hyprpicker + slurp + swappy + swaybg + wl-clipboard + wtype + xdg-utils + xwaylandvideobridge + ; + }; 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 6787e72..dacb110 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" /* hs */ '' + console.keyMap = pkgs.writeText "trq-swapped-i.map" '' include "${pkgs.kbd}/share/keymaps/i386/qwerty/trq.map" keycode 23 = i @@ -11,20 +11,6 @@ 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 [ diff --git a/modules/linux/thunar.nix b/modules/linux/thunar.nix index 51f5cd5..0a5f5e4 100644 --- a/modules/linux/thunar.nix +++ b/modules/linux/thunar.nix @@ -1,19 +1,25 @@ { config, lib, pkgs, ... }: let - inherit (lib) enabled merge mkIf; + inherit (lib) attrValues enabled merge mkIf; in merge <| mkIf config.isDesktop { programs.thunar = enabled { - plugins = [ - pkgs.xfce.thunar-archive-plugin - pkgs.xfce.thunar-media-tags-plugin - pkgs.xfce.thunar-volman - ]; + plugins = attrValues { + inherit (pkgs.xfce) + thunar-archive-plugin + thunar-media-tags-plugin + thunar-volman + ; + }; }; - environment.systemPackages = [ - pkgs.ark - pkgs.ffmpegthumbnailer - pkgs.libgsf + environment.systemPackages = attrValues { + inherit (pkgs) + ark + ffmpegthumbnailer + libgsf + ; - pkgs.xfce.tumbler - ]; + inherit (pkgs.xfce) + tumbler + ; + }; }