commit 4e872a1732e2d19ca2e77ee66d5cc5d899560253
parent 3b26509b81dced1fc5e63b54b4e1bc12bbcd7f8a
Author: mtmn <miro@haravara.org>
Date: Thu, 16 Apr 2026 09:26:11 +0200
Merge branch 'master' of ssh://codeberg.org/mtmn/nix
Diffstat:
14 files changed, 278 insertions(+), 243 deletions(-)
diff --git a/flake.lock b/flake.lock
@@ -30,17 +30,17 @@
"nixpkgs": "nixpkgs"
},
"locked": {
- "lastModified": 1776099912,
- "narHash": "sha256-KCbdRYnR1Osvx5ZG1EOhX693OCwXBj/7DkWaDmWBBPs=",
+ "lastModified": 1776279594,
+ "narHash": "sha256-N8RdA+ExCkSUcnabRXY8v2vaY1Zt9HfMGyEr1ATavkM=",
"ref": "refs/heads/master",
- "rev": "e1c9d15025b992888b433826346c2c3a37410c32",
- "revCount": 59,
+ "rev": "e83086e5d74a178afbd0da7f2c0a4c4d6b9b883b",
+ "revCount": 62,
"type": "git",
- "url": "ssh://git@codeberg.org/mtmn/corpus.git"
+ "url": "ssh://git@codeberg.org/mtmn/corpus"
},
"original": {
"type": "git",
- "url": "ssh://git@codeberg.org/mtmn/corpus.git"
+ "url": "ssh://git@codeberg.org/mtmn/corpus"
}
},
"crane": {
@@ -100,7 +100,6 @@
"original": {
"owner": "serokell",
"repo": "deploy-rs",
- "rev": "77c906c0ba56aabdbc72041bf9111b565cdd6171",
"type": "github"
}
},
@@ -183,11 +182,11 @@
]
},
"locked": {
- "lastModified": 1776046499,
- "narHash": "sha256-Wzc4nn07/0RL21ypPHRzNDQZcjhIC8LaYo7QJQjM5T4=",
+ "lastModified": 1776184304,
+ "narHash": "sha256-No6QGBmIv5ChiwKCcbkxjdEQ/RO2ZS1gD7SFy6EZ7rc=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "287f84846c1eb3b72c986f5f6bebcff0bd67440d",
+ "rev": "3c7524c68348ef79ce48308e0978611a050089b2",
"type": "github"
},
"original": {
@@ -256,11 +255,11 @@
},
"nixpkgs_2": {
"locked": {
- "lastModified": 1775888245,
- "narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=",
+ "lastModified": 1776255774,
+ "narHash": "sha256-psVTpH6PK3q1htMJpmdz1hLF5pQgEshu7gQWgKO6t6Y=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "13043924aaa7375ce482ebe2494338e058282925",
+ "rev": "566acc07c54dc807f91625bb286cb9b321b5f42a",
"type": "github"
},
"original": {
@@ -396,11 +395,11 @@
"rev": "8bf35f488b18b0e0b24b13c51920932021bf8029",
"revCount": 28,
"type": "git",
- "url": "ssh://git@codeberg.org/mtmn/tools.git"
+ "url": "ssh://git@codeberg.org/mtmn/tools"
},
"original": {
"type": "git",
- "url": "ssh://git@codeberg.org/mtmn/tools.git"
+ "url": "ssh://git@codeberg.org/mtmn/tools"
}
},
"utils": {
diff --git a/flake.nix b/flake.nix
@@ -15,7 +15,7 @@
};
deploy-rs = {
- url = "github:serokell/deploy-rs/77c906c0ba56aabdbc72041bf9111b565cdd6171";
+ url = "github:serokell/deploy-rs";
inputs.nixpkgs.follows = "nixpkgs";
};
@@ -30,12 +30,12 @@
};
tools = {
- url = "git+ssh://git@codeberg.org/mtmn/tools.git";
+ url = "git+ssh://git@codeberg.org/mtmn/tools";
flake = false;
};
corpus = {
- url = "git+ssh://git@codeberg.org/mtmn/corpus.git";
+ url = "git+ssh://git@codeberg.org/mtmn/corpus";
};
};
@@ -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
@@ -169,6 +170,7 @@
"bandeno"
"headscale"
"searxng"
+ "attic"
"static"
"miniflux"
"corpus"
diff --git a/home.nix b/home.nix
@@ -41,13 +41,18 @@
auto-optimise-store = true;
warn-dirty = false;
experimental-features = ["nix-command" "flakes"];
+ access-tokens = [
+ "attic.saatana.cat=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE4MDc4MzA0ODgsIm5iZiI6MTc3NjI3Mjg4OCwic3ViIjoiaG9tZS1tYW5hZ2VyIiwiaHR0cHM6Ly9qd3QuYXR0aWMucnMvdjEiOnsiY2FjaGVzIjp7ImNlbnRyYWwiOnsiciI6MX19fX0.TnszDyNrf9Y2ll3sW5HHp8JaCCCUWztHzJdMoWoi_bTFYruk4oKj0MKlSbdFUCPKM5xanRu_wbdcINqaOEmM5o7u91Zdg_4Nr036h42xSMkj48QUt1zKbtNwSs65XyfouYnjSlyfJnfRhlhkyDPYxLoMelg6TbNXMSjEgAIRPLbXgAerckRMUW73fL6TyJeGP8jh9xlJfTedER7BWEwMnz3MTu8oLK7IoXKvQTXsuPALbnt84LgwUbaaXeQ6aJrjmZSsncxvezixShXoBwevYx2JpwgVURH54Qoa11u2L4Ffapfi57VD0LkMpA629kCmRpGUJ4_LrD3lrgY070izIKbI0Ktaxf6G2PyIS6bhiziP6Oy_7rj4KmPGsE2Hzyqra0YyIHO9Z-3L1PZhS-3WrL49AcjEPAC9YknU9E-aaabqirf0rWMQjvbHrszzBWpPlALLN3lJVlyL_nm9xVeV_ny4D_-MjpyFgi0MuD0UO2Q5ek0W3RyAY1pr4EbQrLPmYqEAvGbdc9ZGlKTHoPYdLvvcgvDRSn2P_eg2cVri4wzBBrB5Sw3Fss0B8SCT2A7bNaHFQaL6hH3NzL2F0x1O5JbCOqm7cDYMwzvtVKyRpuKLn90F1uuKsYIBt27Ej_ux9pcrXX-R5o_gE-74-lD4qSLWm7eD266R2fnmICCFM-o"
+ ];
substituters = [
"https://cache.nixos.org"
"https://nix-community.cachix.org"
+ "https://attic.saatana.cat/central"
];
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
+ "central:7OgUwblUa9YD6dVxXSApAGyC0/oQ/JJUH2puRZ0sv0M="
];
};
gc = {
diff --git a/hosts/nixaran/configuration.nix b/hosts/nixaran/configuration.nix
Binary files differ.
diff --git a/hosts/proton/default.nix b/hosts/proton/default.nix
@@ -76,6 +76,7 @@
nvd
ragenix
statix
+ attic-client
];
net_tools = with pkgs; [
diff --git a/hosts/void/default.nix b/hosts/void/default.nix
@@ -4,6 +4,10 @@
parts = {
utils = with pkgs; [
shellcheck
+ eza
+ zoxide
+ fzf
+ tree-sitter
shfmt
gron
bear
@@ -61,9 +65,6 @@
jaq
jq
datasette
- hledger
- hledger-iadd
- rainfrog
tokyocabinet
];
@@ -93,6 +94,7 @@
nix-diff
nix-output-monitor
niv
+ attic-client
];
net = with pkgs; [
@@ -128,6 +130,12 @@
claude-code-bin
];
+ ocaml = with pkgs; [
+ ocaml
+ dune
+ opam
+ ];
+
lua =
(with pkgs.luaPackages; [
fennel
@@ -137,35 +145,12 @@
fnlfmt
]);
- erlang =
- (with pkgs.beam28Packages; [
- erlang
- rebar3
- ])
- ++ (with pkgs; [
- gleam
- ]);
-
- haskell =
- (with pkgs.haskell.compiler; [
- ghc9124
- ])
- ++ (with pkgs.haskellPackages; [
- Cabal_3_16_1_0
- stack
- purescript
- purenix
- ])
- ++ (with pkgs; [
- cabal2nix
- ]);
-
other = with pkgs; [
miniserve
babashka
feather
- nodejs
esbuild
+ nodejs
picard
rustup
];
diff --git a/hosts/wsl/default.nix b/hosts/wsl/default.nix
@@ -1,199 +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
- ];
+ 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"
+ }
+ ]
+ }
+''
diff --git a/modules/mixins/dotfiles/config/nvim/fnl/init.fnl b/modules/mixins/dotfiles/config/nvim/fnl/init.fnl
@@ -34,9 +34,7 @@
:priority 1000
:config (fn []
(vim.cmd.colorscheme :doric-dark)
- (vim.api.nvim_set_hl 0 :Normal {:bg :NONE})
- (vim.api.nvim_set_hl 0 :NormalFloat {:bg :NONE})
- (vim.api.nvim_set_hl 0 :NormalNC {:bg :NONE}))})
+ (vim.api.nvim_set_hl 0 :Normal {:bg :NONE}))})
(use "windwp/nvim-autopairs" {:event :VeryLazy :config true})
(use "ibhagwan/fzf-lua" {:config true})
diff --git a/modules/mixins/dotfiles/config/shell/rc/aliased-short-names b/modules/mixins/dotfiles/config/shell/rc/aliased-short-names
@@ -25,7 +25,7 @@ alias mrd='magdalena recent-dirs'
alias mrf='magdalena recent-files'
alias pdm='pkill -f dmenu'
-alias pcm='pcmanfm'
+alias pcm='pcmanfm & disown'
alias duh='du -hs'
alias dfh='df -h'
diff --git a/modules/mixins/dotfiles/config/shell/rc/prompt-functions b/modules/mixins/dotfiles/config/shell/rc/prompt-functions
@@ -1,10 +1,10 @@
# vim: ft=sh
_C_RESET=$(tput sgr0)
-_C_1=$(tput setaf 141)
-_C_2=$(tput setaf 209)
-_C_3=$(tput setaf 203)
-_C_4=$(tput setaf 174)
-_C_6=$(tput setaf 167)
+_C_1=$(tput setaf 1)
+_C_2=$(tput setaf 3)
+_C_3=$(tput setaf 4)
+_C_4=$(tput setaf 5)
+_C_6=$(tput setaf 6)
colour_part() {
local colour_val msg delim
diff --git a/modules/services/attic.nix b/modules/services/attic.nix
@@ -60,9 +60,6 @@ in {
endpoint = cfg.s3Endpoint;
region = cfg.s3Region;
};
- signing = {
- signing-key-paths = [cfg.signingKeyFile];
- };
};
environmentFile = cfg.credentialsFile;
};
diff --git a/secrets.nix b/secrets.nix
@@ -12,6 +12,7 @@ in {
"secrets/couchdb-admin-pass.age".publicKeys = allKeys;
"secrets/searx-secret-key.age".publicKeys = allKeys;
"secrets/headscale-api-key.age".publicKeys = allKeys;
+ "secrets/attic-credentials.age".publicKeys = allKeys;
"secrets/miniflux-secrets.age".publicKeys = allKeys;
"secrets/listenbrainz-token.age".publicKeys = allKeys;
"secrets/mpd-host.age".publicKeys = allKeys;
diff --git a/secrets/attic-credentials.age b/secrets/attic-credentials.age
Binary files differ.