commit f6221a624add9e13988e5332ac20915d43e2508a
parent 8905fba42c4cc2ee6c516ab5fa41362852275e5e
Author: mtmn <miro@haravara.org>
Date: Wed, 15 Apr 2026 22:12:58 +0200
Merge branch 'master' of ssh://codeberg.org/mtmn/nix
Diffstat:
3 files changed, 234 insertions(+), 187 deletions(-)
diff --git a/flake.nix b/flake.nix
@@ -73,6 +73,7 @@
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
+ netrc-file = "/run/agenix/netrc";
};
}
inputs.ragenix.nixosModules.default
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"
+ }
+ ]
+ }
+''