nix

configuration files that power my machines
Log | Files | Refs | README | LICENSE

commit ba340d0b0ca83ee5909b151205501a19a6e2e963
parent 65a33b6647f8f0520d3b8ce39fa9ab70cc21d0e3
Author: mtmn <miro@haravara.org>
Date:   Wed, 15 Apr 2026 22:05:11 +0200

wsl: overlay clean

Diffstat:
Mhosts/wsl/default.nix | 342++++++++++++++++++++++++++++++++++++-------------------------------------------
Ahosts/wsl/overlays/config/magdalena/config.json.nix | 78++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 233 insertions(+), 187 deletions(-)

diff --git a/hosts/wsl/default.nix b/hosts/wsl/default.nix @@ -1,200 +1,168 @@ {pkgs, ...}: let - core = with pkgs; [ - bat - eza - fd - fzf - neovim - ripgrep - moor - tmux - ncurses - tree-sitter - unzip - zoxide - pass - passExtensions.pass-otp - ]; + inherit (pkgs) lib; - utils = with pkgs; [ - borgbackup - fdupes - gocryptfs - inotify-tools - ncdu - restic - ansible - ansible-lint - awscli2 - hadolint - woodpecker-cli - tealdeer - libvarlink - bandit - ruff - shellcheck - shfmt - sops - zls - ]; + parts = { + utils = with pkgs; [ + eza + zoxide + fzf + shellcheck + shfmt + gron + bear + ctags + entr + hyperfine + gdb + strace + perf + meson + ninja + cmake + moor + buf + harper + duc + ]; - data = with pkgs; [ - duckdb - gron - jaq - jless - jq - pandoc - slop - taplo - ]; + media = + (with pkgs; [ + ncmpcpp + sacad + ffmpeg + yt-dlp + imagemagick + exiftool + ]) + ++ (with pkgs.python314Packages; [ + yt-dlp-ejs + ]); - vcs = with pkgs; [ - difftastic - git - git-bug - git-crypt - git-absorb - git-filter-repo - gitleaks - jujutsu - jjui - prek - ]; + ops = with pkgs; [ + ansible-lint + ansible + awscli2 + dnscontrol + woodpecker-cli + podman + skopeo + tenv + ]; - nix_tools = with pkgs; [ - alejandra - comma - deadnix - deploy-rs - nh - nil - nix-du - nixd - nixfmt - nixos-anywhere - nvd - ragenix - statix - nix-health - attic-client - ]; + lsp = with pkgs; [ + typescript-language-server + ansible-language-server + clang-tools + gopls + nixd + zls + ]; - net_tools = with pkgs; [ - bore-cli - caddy - chisel - curl - dnscontrol - dnsmasq - hurl - inetutils - knot-dns - lftp - monolith - mosh - mosquitto - net-tools - newsraft - nmap - offpunk - rclone - rsync - sshfs - thrift - trickle - w3m - websocat - wget - whois - xh - ]; + data = with pkgs; [ + duckdb + jless + jaq + jq + datasette + tokyocabinet + ]; - build_tools = with pkgs; [ - libgcc - bear - bmake - boost - clang - cmake - ctags - entr - just - act - lld - lldb - llvm - meson - mold - ninja - tre - libtermkey - ]; + haskell = + (with pkgs.haskell.compiler; [ + ghc9124 + ]) + ++ (with pkgs.haskellPackages; [ + Cabal_3_16_1_0 + stack + purescript + purenix + ]) + ++ (with pkgs; [ + cabal2nix + ]); - perf_utils = with pkgs; [ - bpftools - bpftrace - bpfmon - bpftop - libbpf - below - hyperfine - iotop - pwru - gdb - strace - perf - valgrind - aflplusplus - ]; - beam28 = with pkgs.beam28Packages; [ - erlang - expert - rebar3 - ]; + vcs = with pkgs; [ + difftastic + git-bug + git-crypt + git-absorb + git-annex + gitleaks + lazygit + jujutsu + jjui + prek + ]; - all = with pkgs; [ - babashka - biome - gleam - luaPackages.fennel - luaPackages.lpeg - fnlfmt - luarocks - bun - clj-kondo - clojure - gemini-cli-bin - qwen-code - deno - dune - go - gopls - leiningen - ocaml - # purescript - ]; -in { - programs.git = { - enable = true; - ignores = [ - ".crush/" - ".gemini/" - ".qwen/" - "AGENTS.md" + nix = with pkgs; [ + alejandra + comma + deadnix + nh + nix-du + nixos-anywhere + nvd + ragenix + statix + nix-diff + nix-output-monitor + niv + attic-client + ]; + + net = with pkgs; [ + bore-cli + curl + inetutils + lftp + mosh + mosquitto + net-tools + nmap + rclone + rsync + sshfs + thrift + trickle + websocat + wget + xh ]; - }; - home.packages = - core - ++ utils - ++ data - ++ vcs - ++ nix_tools - ++ net_tools - ++ build_tools - ++ perf_utils - ++ beam28 - ++ all; + web = with pkgs; [ + aerc + offpunk + monolith + newsraft + vdirsyncer + ]; + + llm = with pkgs; [ + qwen-code + gemini-cli-bin + claude-code-bin + ]; + + lua = + (with pkgs.luaPackages; [ + fennel + lua + ]) + ++ (with pkgs; [ + fnlfmt + ]); + + other = with pkgs; [ + miniserve + babashka + feather + esbuild + nodejs + picard + rustup + ]; + }; +in { + home.packages = lib.concatLists (lib.attrValues parts); } diff --git a/hosts/wsl/overlays/config/magdalena/config.json.nix b/hosts/wsl/overlays/config/magdalena/config.json.nix @@ -0,0 +1,78 @@ +{ + homeDir, + year, + month, + ... +}: '' + { + "editor": "nvim", + "max_depth": 5, + "ignored_patterns": [ + ".git", + ".jj", + ".zig-cache", + "target", + "vendor", + "node_modules", + "composer.lock", + "deps", + "_build", + ".expert", + ".nix-data", + ".crush", + ".gemini", + ".qwen", + "saturn" + ], + "fzf_opts": [ + "--highlight-line", + "--ansi", + "--layout=reverse", + "--border=rounded", + "--color=bg+:#2a1f2e,bg:-1,spinner:#c084b8,hl:#e08060", + "--color=fg:#c8b8bf,header:#c4607a,info:#7a6e7a,pointer:#c084b8", + "--color=marker:#e06fad,fg+:#f0dfe5,prompt:#7a9fd4,hl+:#f0a070", + "--color=border:#3d2a42" + ], + "fav_dirs": [ + "${homeDir}/src", + "${homeDir}/src/nix", + "${homeDir}/src/napkins", + "${homeDir}/src/nix/hosts/wsl", + "${homeDir}/src/nix/modules/mixins/dotfiles", + "${homeDir}/src/tools", + "${homeDir}/misc", + "${homeDir}/misc/llm", + "${homeDir}/misc/random", + "${homeDir}/Downloads", + "${homeDir}/.tmux" + ], + "openers": [ + { + "extensions": ["mp4", "mkv", "avi", "webm"], + "action": "media_player", + "command": "mpv" + }, + { + "extensions": ["flac", "aiff", "aif", "mp3", "wav"], + "action": "audio_player", + "command": "mpv" + }, + { + "extensions": ["jpg", "jpeg", "png", "webp", "svg"], + "action": "image_viewer", + "command": "nsxiv-rifle" + }, + { + "extensions": ["pdf", "epub", "mobi"], + "action": "document_reader", + "command": "sioyek" + }, + { + "extensions": ["html"], + "action": "web_browser", + "command": "offpunk" + } + ] + } +''