From ae8a5638630ba7c4b21cbac0f1b6b26a6f4af1a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Wed, 7 Jan 2026 12:31:09 +0100 Subject: [PATCH 001/126] npins: bump to master --- npins/sources.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/npins/sources.json b/npins/sources.json index 47811a38..c3c10860 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -125,11 +125,11 @@ "owner": "nix-community", "repo": "home-manager" }, - "branch": "release-25.11", + "branch": "master", "submodules": false, - "revision": "6bd04da47cfb48dfd15eabf08364b78ad894f5b2", - "url": "https://github.com/nix-community/home-manager/archive/6bd04da47cfb48dfd15eabf08364b78ad894f5b2.tar.gz", - "hash": "1wvysqiybcyf2hzvvpja2522fqhk45554j0b07h3s7zhzc2056ia" + "revision": "4e8b7bef66c60735982369f3151b93e62fe37da7", + "url": "https://github.com/nix-community/home-manager/archive/4e8b7bef66c60735982369f3151b93e62fe37da7.tar.gz", + "hash": "0jva394l5s9vdrwfffvb8f4181i8832g6hffasn8nc8aqyn1wq5f" }, "infuse": { "type": "GitRelease", @@ -195,11 +195,11 @@ "owner": "nixos", "repo": "nixpkgs" }, - "branch": "nixos-25.11-small", + "branch": "nixos-unstable", "submodules": false, - "revision": "a35a20f6d3d51b6b42b68a6879701f7d87381896", - "url": "https://github.com/nixos/nixpkgs/archive/a35a20f6d3d51b6b42b68a6879701f7d87381896.tar.gz", - "hash": "00781d4nhmqzvxph2lpsj3kika3v8y0nigfadr6y8lvzxrcppkfj" + "revision": "9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5", + "url": "https://github.com/nixos/nixpkgs/archive/9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5.tar.gz", + "hash": "1h3g9iyfj0xwz7i4ywcxjpp3p9xk7ahp563m0h1i25697sc2lrji" }, "nur": { "type": "Git", From c2e068dc48d8dd9fe0c824a1c2b4c08ec52bbe7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Wed, 7 Jan 2026 12:35:21 +0100 Subject: [PATCH 002/126] nixos: use upstream xscreensaver module --- nix/configurations/vanadium.nix | 1 - nix/nixosModules/common/xscreensaver.nix | 54 ------------------------ 2 files changed, 55 deletions(-) delete mode 100644 nix/nixosModules/common/xscreensaver.nix diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 344c1f77..f0163280 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -113,7 +113,6 @@ in ../nixosModules/common/network.nix ../nixosModules/common/sudo-conf.nix ../nixosModules/common/system-nixconf.nix - ../nixosModules/common/xscreensaver.nix # QUIRK: # Had issue when building the installer as it fails to bootstrap itself diff --git a/nix/nixosModules/common/xscreensaver.nix b/nix/nixosModules/common/xscreensaver.nix deleted file mode 100644 index 49aebbd0..00000000 --- a/nix/nixosModules/common/xscreensaver.nix +++ /dev/null @@ -1,54 +0,0 @@ -# -# This module provides a service react to xscreensaver events -# -{ - config, - lib, - ... -}: -let - cfg = config.services.xscreensaver; -in -{ - options = { - services.xscreensaver.hooks = lib.mkOption { - type = with lib.types; attrsOf str; - description = "An attrset of events mapped a block of shell command to be run"; - default = { }; - }; - }; - - config = lib.mkIf cfg.enable { - systemd.user.services = { - "xscreensaver-hooks" = { - description = "Run commands on xscreensaver events"; - after = [ - "graphical-session.target" - "xscreensaver.service" - ]; - partOf = [ "graphical-session.target" ]; - wantedBy = [ "graphical-session.target" ]; - script = - let - handlers = lib.concatMapAttrsStringSep "\n" (event: action: '' - "${event}") - ( ${action} - ) - ;; - '') cfg.hooks; - in - '' - xscreensaver-command -watch | while read event rest; do - echo "The handler script got \"$event\"" - case $event in - ${handlers} - esac - done - ''; - path = [ - cfg.package # contains xscreensaver-command - ]; - }; - }; - }; -} From 041fbcfa1c3af92c9db22911142a3608b40df65d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Wed, 7 Jan 2026 12:35:57 +0100 Subject: [PATCH 003/126] vanadium: rename networking.wireless.userControlled.enable to networking.wireless.userControlled --- nix/configurations/vanadium/nixos/connectivity.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/configurations/vanadium/nixos/connectivity.nix b/nix/configurations/vanadium/nixos/connectivity.nix index 024f0b25..28890b7a 100644 --- a/nix/configurations/vanadium/nixos/connectivity.nix +++ b/nix/configurations/vanadium/nixos/connectivity.nix @@ -35,7 +35,7 @@ # To enable roaming https://wiki.archlinux.org/title/Wpa_supplicant#Roaming wireless = { enable = true; - userControlled.enable = true; + userControlled = true; secretsFile = config.age.secrets.wpa_password.path; scanOnLowSignal = false; networks = From 040afef28048cc98f3a81cf8baaa0a928a2a6653 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Wed, 7 Jan 2026 13:32:48 +0100 Subject: [PATCH 004/126] vanadium/xmonad: return Nothing if the layout is not changed --- .../home/xmonad/lib/XMonad/Layout/SetMasterNTall.hs | 6 ++++-- nix/configurations/vanadium/home/xmonad/xmonad.hs | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/nix/configurations/vanadium/home/xmonad/lib/XMonad/Layout/SetMasterNTall.hs b/nix/configurations/vanadium/home/xmonad/lib/XMonad/Layout/SetMasterNTall.hs index a08f7742..a09af1d3 100644 --- a/nix/configurations/vanadium/home/xmonad/lib/XMonad/Layout/SetMasterNTall.hs +++ b/nix/configurations/vanadium/home/xmonad/lib/XMonad/Layout/SetMasterNTall.hs @@ -23,8 +23,10 @@ instance LayoutClass SetMasterNTall a where let ws' = W.Workspace t (unSetMasterNTall l) s in (fmap . fmap . fmap) SetMasterNTall . runLayout ws' - handleMessage (SetMasterNTall l@(ResizableTall _n0 d f s)) mess - | Just (SetMasterN n) <- fromMessage mess = pure $ Just $ SetMasterNTall $ ResizableTall n d f s + handleMessage (SetMasterNTall l@(ResizableTall n0 d f s)) mess + | Just (SetMasterN n) <- fromMessage mess = pure $ + if n0 /= n then Just $ SetMasterNTall $ ResizableTall n d f s + else Nothing | otherwise = (fmap . fmap) SetMasterNTall . handleMessage l $ mess description (SetMasterNTall l) = description l diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index e5c8ad57..3a57cc1e 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -210,10 +210,10 @@ setMasterNEventHandleHook ev = let adjustMasterCount :: X () adjustMasterCount = do count <- gets $ length . W.integrate' . W.stack . W.workspace . W.current . windowset - if count <= 3 then sendMessage (SetMasterN 1) - else if count <= 5 then sendMessage (SetMasterN 2) - else if count <= 7 then sendMessage (SetMasterN 3) - else pure () + if count >= 7 then sendMessage (SetMasterN 4) + else if count >= 5 then sendMessage (SetMasterN 3) + else if count >= 3 then sendMessage (SetMasterN 2) + else sendMessage (SetMasterN 1) in do case ev of MapRequestEvent{} -> adjustMasterCount From 088c6b31a5a5cee7b402b101bb88720ff853c652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Wed, 7 Jan 2026 14:03:04 +0100 Subject: [PATCH 005/126] vanadium/xmonad: remove floating window from the count --- nix/configurations/vanadium/home/xmonad/xmonad.hs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index 3a57cc1e..48e9dabf 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -33,9 +33,9 @@ import XMonad.Util.NamedScratchpad import XMonad.Util.SpawnOnce import Data.Char.Greek +import qualified Data.Map.Strict as M import Data.Ratio import Data.Semigroup -import qualified Data.Map.Strict as M import System.Posix import Graphics.X11.ExtraTypes.XF86 @@ -209,7 +209,17 @@ setMasterNEventHandleHook :: Event -> X All setMasterNEventHandleHook ev = let adjustMasterCount :: X () adjustMasterCount = do - count <- gets $ length . W.integrate' . W.stack . W.workspace . W.current . windowset + ws <- gets windowset + -- Remove the floating windows in the count + let s :: Maybe (W.Stack Window) + s = W.stack $ W.workspace $ W.current ws + + count :: Int + count = + length + $ filter (flip M.notMember (W.floating ws)) + $ W.integrate' s + if count >= 7 then sendMessage (SetMasterN 4) else if count >= 5 then sendMessage (SetMasterN 3) else if count >= 3 then sendMessage (SetMasterN 2) From 245da500a0bd67118286d133ff6d4a1869b60f33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Wed, 7 Jan 2026 14:52:49 +0100 Subject: [PATCH 006/126] vanadium: enable printer --- .../vanadium/nixos/connectivity.nix | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/nix/configurations/vanadium/nixos/connectivity.nix b/nix/configurations/vanadium/nixos/connectivity.nix index 024f0b25..17ca3b84 100644 --- a/nix/configurations/vanadium/nixos/connectivity.nix +++ b/nix/configurations/vanadium/nixos/connectivity.nix @@ -76,4 +76,20 @@ services.mullvad-vpn.enable = true; hardware.bluetooth.enable = true; + + + # Printing and auto-discovery of Wi-Fi printers + services.avahi = { + enable = true; + nssmdns4 = true; + openFirewall = true; + }; + + services.printing = { + enable = true; + drivers = with pkgs; [ + cups-filters + cups-browsed + ]; + }; } From 2d17c2c145fcc1a9ffd011c5e3292147de167a3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Wed, 7 Jan 2026 16:03:57 +0100 Subject: [PATCH 007/126] vanadium/xmonad: fix off by one if condition --- nix/configurations/vanadium/home/xmonad/xmonad.hs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index 48e9dabf..f9cbd2bc 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -220,9 +220,9 @@ setMasterNEventHandleHook ev = $ filter (flip M.notMember (W.floating ws)) $ W.integrate' s - if count >= 7 then sendMessage (SetMasterN 4) - else if count >= 5 then sendMessage (SetMasterN 3) - else if count >= 3 then sendMessage (SetMasterN 2) + if count > 7 then sendMessage (SetMasterN 4) + else if count > 5 then sendMessage (SetMasterN 3) + else if count > 3 then sendMessage (SetMasterN 2) else sendMessage (SetMasterN 1) in do case ev of From 92a20d36b69e72909221d6a9554c61163ee5dd2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 8 Jan 2026 13:42:37 +0100 Subject: [PATCH 008/126] Revert "nvim: remove relative number" This reverts commit 563a66ff8e1608d1b62baa4385e3a54bd79d87c4. --- .config/nvim/plugin/autocommands.lua | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.config/nvim/plugin/autocommands.lua b/.config/nvim/plugin/autocommands.lua index 3de0d831..b0ce7973 100644 --- a/.config/nvim/plugin/autocommands.lua +++ b/.config/nvim/plugin/autocommands.lua @@ -54,6 +54,23 @@ vim.api.nvim_create_autocmd("WinLeave", { callback = function() vim.wo.cursorline = false end, }) +local auto_linenr = vim.api.nvim_create_augroup("AutoLineNr", {}) +vim.api.nvim_create_autocmd({ "VimEnter", "WinEnter", "BufWinEnter" }, { + group = auto_linenr, + callback = function() + -- fugitive, for example, doesn't have numbers + -- if I set relative number I'll get numbers and we don't want that + if vim.wo.number then + vim.wo.relativenumber = true + end + end, +}) + +vim.api.nvim_create_autocmd("WinLeave", { + group = auto_linenr, + callback = function() vim.wo.relativenumber = false end, +}) + vim.api.nvim_create_autocmd({ "VimEnter", "FocusGained", "BufEnter" }, { group = vim.api.nvim_create_augroup("ReloadFileOnChange", {}), command = "checktime", From c33bef854b4cde5ace7b2212f6672de9975b7c43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 8 Jan 2026 14:11:26 +0100 Subject: [PATCH 009/126] home/btop: disable io mode for disks This doesn't seem to have an effect when using btrfs. I'd rather see the disk usage. --- nix/homeModules/common/btop/btop.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nix/homeModules/common/btop/btop.conf b/nix/homeModules/common/btop/btop.conf index c1973464..626f09c7 100644 --- a/nix/homeModules/common/btop/btop.conf +++ b/nix/homeModules/common/btop/btop.conf @@ -184,7 +184,8 @@ disk_free_priv = False show_io_stat = True #* Toggles io mode for disks, showing big graphs for disk read/write speeds. -io_mode = True +# This doesn't seem to have an effect when using btrfs. I'd rather see the disk usage. +io_mode = False #* Set to True to show combined read/write io graphs in io mode. io_graph_combined = False From 4728a44721030eb0a9b0f88ba2558a65695527bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 8 Jan 2026 18:29:24 +0100 Subject: [PATCH 010/126] home/fish: remove clubbering nix-shell alias --- nix/homeModules/common/fish/aliasesAbbrs.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/nix/homeModules/common/fish/aliasesAbbrs.nix b/nix/homeModules/common/fish/aliasesAbbrs.nix index 330a0159..863510f6 100644 --- a/nix/homeModules/common/fish/aliasesAbbrs.nix +++ b/nix/homeModules/common/fish/aliasesAbbrs.nix @@ -21,10 +21,6 @@ # idiot protection chmod = "chmod --preserve-root"; chown = "chown --preserve-root"; - - # I can't make alias with a space, i.e. `nom shell` - nix-shell = "nix-shell --command fish"; - nom-shell = "nom-shell --command fish"; }) ]; }; From 9426f74fce33d1dd0e5b8f62ea427adf07b8df9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 9 Jan 2026 12:09:22 +0100 Subject: [PATCH 011/126] home/fish: wrap nix-.* calls with "command" in alias functions --- nix/homeModules/common/fish/functions/nix-build.fish | 4 ++-- nix/homeModules/common/fish/functions/nix-shell.fish | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nix/homeModules/common/fish/functions/nix-build.fish b/nix/homeModules/common/fish/functions/nix-build.fish index 8b074641..16bc1efc 100644 --- a/nix/homeModules/common/fish/functions/nix-build.fish +++ b/nix/homeModules/common/fish/functions/nix-build.fish @@ -1,7 +1,7 @@ function nix-build if type -q nom-build - nom-build $argv + command nom-build $argv else - nix-build $argv + command nix-build $argv end end diff --git a/nix/homeModules/common/fish/functions/nix-shell.fish b/nix/homeModules/common/fish/functions/nix-shell.fish index b108e9ed..d7ea11bf 100644 --- a/nix/homeModules/common/fish/functions/nix-shell.fish +++ b/nix/homeModules/common/fish/functions/nix-shell.fish @@ -1,7 +1,7 @@ function nix-shell if type -q nom-shell - nom-shell $argv + command nom-shell $argv else - nix-shell $argv + command nix-shell $argv end end From c23aad611ad650ac820404d9cb9ec8d11758a76f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 9 Jan 2026 23:04:26 +0100 Subject: [PATCH 012/126] vanadium/xmonad: different height --- nix/configurations/vanadium/home/xmonad/xmonad.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index f9cbd2bc..0ea59e18 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -80,7 +80,7 @@ myLayout = $ smartSpacingWithEdge 5 $ reflectMsg . reflectHoriz $ SetMasterNTall - $ ResizableTall 1 (1/10) (3/7) [] + $ ResizableTall 1 (1/10) (3/7) [1.2, 1, 1, 1.2] isSioyek :: Query Bool isSioyek = className =? "sioyek" From 40754f9b6a8f22f657dca37e2cf2a55eef3ee9b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 10 Jan 2026 10:00:17 +0100 Subject: [PATCH 013/126] packages/hs-speedscope: init --- .../by-name/hs-speedscope/package.nix | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 nix/packages/by-name/hs-speedscope/package.nix diff --git a/nix/packages/by-name/hs-speedscope/package.nix b/nix/packages/by-name/hs-speedscope/package.nix new file mode 100644 index 00000000..8206cc9b --- /dev/null +++ b/nix/packages/by-name/hs-speedscope/package.nix @@ -0,0 +1,28 @@ +{ + haskellPackages, + haskell, + fetchFromGitHub, + fetchpatch, +}: +let + inherit (haskell.lib.compose) appendPatches justStaticExecutables; + + drv = haskellPackages.callCabal2nix "hs-speedscope" (fetchFromGitHub { + owner = "mpickering"; + repo = "hs-speedscope"; + rev = "c34ac00d35f5db52e14dc5b9ba5b228aa9953398"; + hash = "sha256-sVTIPIUophj/sgNp1ox1eWHa19zhsZJGjvQt5hUfYk4="; + }) { }; +in +appendPatches [ + (fetchpatch { + name = "fix-event-dropping-logic"; + url = "https://github.com/mpickering/hs-speedscope/commit/1420a9615dc0cafc3051c87cad8a8c463550fcda.patch"; + hash = "sha256-kOaMhXHAxSQRhvxhF0uDSD1Us+ywNJcqnrKDfNaU5hA="; + }) + (fetchpatch { + name = "passing-rts-options"; + url = "https://github.com/mpickering/hs-speedscope/commit/12ad16062325817242f0b7ebefabb40b9af4aa3e.patch"; + hash = "sha256-AcL8t+D2xccKGVCCASXgP8t1K4EfHQmDpn2ZmR2Ppxk="; + }) +] (justStaticExecutables drv) From ff476b5c666c14c40f2856d756fe56eb33d5bfc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 10 Jan 2026 10:04:53 +0100 Subject: [PATCH 014/126] vanadium/home: +hs-speedscope --- nix/configurations/vanadium/home/dev.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nix/configurations/vanadium/home/dev.nix b/nix/configurations/vanadium/home/dev.nix index e664c20f..5e0ba28e 100644 --- a/nix/configurations/vanadium/home/dev.nix +++ b/nix/configurations/vanadium/home/dev.nix @@ -31,6 +31,9 @@ # bash pkgs.shfmt pkgs.nodePackages.bash-language-server + + # ghc + pkgs.hs-speedscope ]; programs.git = { From 9e33750fd9697eb57ee1b40508bc292d02f8e7aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 10 Jan 2026 18:12:19 +0100 Subject: [PATCH 015/126] packages/tokei: drop upstream has 14.0.0 --- nix/packages/by-name/tokei/package.nix | 39 -------------------------- 1 file changed, 39 deletions(-) delete mode 100644 nix/packages/by-name/tokei/package.nix diff --git a/nix/packages/by-name/tokei/package.nix b/nix/packages/by-name/tokei/package.nix deleted file mode 100644 index 77399046..00000000 --- a/nix/packages/by-name/tokei/package.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - rustPlatform, - libiconv, - darwin, - zlib, -}: -rustPlatform.buildRustPackage ( - finalAttrs: - let - cargoToml = fromTOML (builtins.readFile (finalAttrs.src + "/Cargo.toml")); - cargoLock = finalAttrs.src + "/Cargo.lock"; - in - { - pname = "tokei"; - version = cargoToml.package.version; - - src = fetchFromGitHub { - owner = "XAMPPRocky"; - repo = "tokei"; - rev = "v13.0.0-alpha.9"; - hash = "sha256-OSIJYSUwc8SvszEOMgt+d/ljCW2jtBkPw6buof4JpUc="; - }; - - cargoLock.lockFile = cargoLock; - - buildInputs = lib.optionals stdenv.isDarwin [ - libiconv - darwin.Security - ]; - - checkInputs = lib.optionals stdenv.isDarwin [ zlib ]; - - # enable all output formats - buildFeatures = [ "all" ]; - } -) From e3b843e00d96b799dddb35559d3d802a8636b0a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 10 Jan 2026 22:28:56 +0100 Subject: [PATCH 016/126] packages/mullvad-status: init --- .../by-name/mullvad-status/mullvad-status.sh | 33 +++++++++++++++++++ .../by-name/mullvad-status/package.nix | 14 ++++++++ 2 files changed, 47 insertions(+) create mode 100644 nix/packages/by-name/mullvad-status/mullvad-status.sh create mode 100644 nix/packages/by-name/mullvad-status/package.nix diff --git a/nix/packages/by-name/mullvad-status/mullvad-status.sh b/nix/packages/by-name/mullvad-status/mullvad-status.sh new file mode 100644 index 00000000..af75f92f --- /dev/null +++ b/nix/packages/by-name/mullvad-status/mullvad-status.sh @@ -0,0 +1,33 @@ +if ! type mullvad >/dev/null; then + echo -n "Mullvad unavailable" + exit 1 +fi + +MULLVAD_STATUS="$(mullvad status -j)" + +function xmobarColor { + fg="$1" + x="$2" + echo -n "$x" +} + +case "$(echo "$MULLVAD_STATUS" | jq -r ".state")" in +connected) + function has-feature { + echo "$MULLVAD_STATUS" | jq --exit-status ".details.feature_indicators|contains([\"$1\"])" >/dev/null + } + if has-feature "LockdownMode"; then + xmobarColor "green" "Mullvad On " + else + xmobarColor "orange" "Mullvad On" + fi + + COUNTRY="$(echo "$MULLVAD_STATUS" | jq -r '.details.location.country')" + CITY="$(echo "$MULLVAD_STATUS" | jq -r '.details.location.city')" + + echo -n " ($COUNTRY,$CITY)" + ;; +disconnected) + xmobarColor "red" "Mullvad Off" + ;; +esac diff --git a/nix/packages/by-name/mullvad-status/package.nix b/nix/packages/by-name/mullvad-status/package.nix new file mode 100644 index 00000000..4841f3aa --- /dev/null +++ b/nix/packages/by-name/mullvad-status/package.nix @@ -0,0 +1,14 @@ +{ + writeShellApplication, + jq, + mullvad, +}: + +writeShellApplication { + name = "mullvad-status"; + runtimeInputs = [ + mullvad + jq + ]; + text = builtins.readFile ./mullvad-status.sh; +} From 62f81c84c510ada73f9379075d0cdc4d78d58e71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 10 Jan 2026 22:29:21 +0100 Subject: [PATCH 017/126] vanadium/xmobar: mullvad-status --- nix/configurations/vanadium/home/xmobar.nix | 1 + nix/configurations/vanadium/home/xmobar/xmobar.hs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/nix/configurations/vanadium/home/xmobar.nix b/nix/configurations/vanadium/home/xmobar.nix index 0da89245..59052e85 100644 --- a/nix/configurations/vanadium/home/xmobar.nix +++ b/nix/configurations/vanadium/home/xmobar.nix @@ -19,6 +19,7 @@ ghc pkgs.libnotify pkgs.hrt-time + pkgs.mullvad-status ] }" ''; diff --git a/nix/configurations/vanadium/home/xmobar/xmobar.hs b/nix/configurations/vanadium/home/xmobar/xmobar.hs index f4bab962..e7550fb6 100644 --- a/nix/configurations/vanadium/home/xmobar/xmobar.hs +++ b/nix/configurations/vanadium/home/xmobar/xmobar.hs @@ -103,6 +103,7 @@ config = (6 &second) , Run $ Com "powerprofilesctl" ["get"] "" (6 &second) , Run $ Com "hrt-time" ["days"] "" (60 &minute) + , Run $ Com "mullvad-status" [] "" (6 &second) , Run XMonadLog , Run $ Weather @@ -124,6 +125,7 @@ config = <> alignSep config <> intercalate "|" [ " %LFRN% " + , " %mullvad-status% " , " %battery%, %powerprofilesctl%) " , " %hereClock% (%tomorrow%, %hrt-time%) " ] From c2c7fd2b37086e8dd6b9ff7469ac53c328ae9aad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 10 Jan 2026 22:30:10 +0100 Subject: [PATCH 018/126] vanadium/xmobar: clean up events --- nix/configurations/vanadium/home/xmobar/xmobar.hs | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/nix/configurations/vanadium/home/xmobar/xmobar.hs b/nix/configurations/vanadium/home/xmobar/xmobar.hs index e7550fb6..a0710c21 100644 --- a/nix/configurations/vanadium/home/xmobar/xmobar.hs +++ b/nix/configurations/vanadium/home/xmobar/xmobar.hs @@ -65,20 +65,7 @@ config = , Run $ Com "tomorrow" - [ "--target", "2025-08-14" - , "--target", "2025-08-21" - , "--target", "2025-08-22" - , "--target", "2025-09-16=snip snip" - , "--target", "2025-10-13=no teef" - , "--target", "2025-10-31=dragon book" - , "--target", "2025-11-19=scalpel" - , "--target", "2025-11-29=à deux" - -- , "--target", "2025-12-15=campus baguette" - -- , "--target", "2025-12-16=dragon book" - , "--target", "2025-12-18=baguette" - , "--target", "2025-12-30=seule" - , "--target", "2026-02-02=monmaster" - , "--target", "2026-02-22=dernier appel" + [ "--target", "2026-02-02=monmaster" ] "" (60 &minute) From 6470614a33dee8876518676488184a9d707f5659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 10 Jan 2026 22:30:39 +0100 Subject: [PATCH 019/126] vanadium/xmobar: remove hrt-time --- nix/configurations/vanadium/home/xmobar.nix | 1 - nix/configurations/vanadium/home/xmobar/xmobar.hs | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/nix/configurations/vanadium/home/xmobar.nix b/nix/configurations/vanadium/home/xmobar.nix index 59052e85..13078a66 100644 --- a/nix/configurations/vanadium/home/xmobar.nix +++ b/nix/configurations/vanadium/home/xmobar.nix @@ -18,7 +18,6 @@ lib.makeBinPath [ ghc pkgs.libnotify - pkgs.hrt-time pkgs.mullvad-status ] }" diff --git a/nix/configurations/vanadium/home/xmobar/xmobar.hs b/nix/configurations/vanadium/home/xmobar/xmobar.hs index a0710c21..76b011e3 100644 --- a/nix/configurations/vanadium/home/xmobar/xmobar.hs +++ b/nix/configurations/vanadium/home/xmobar/xmobar.hs @@ -89,7 +89,6 @@ config = ] (6 &second) , Run $ Com "powerprofilesctl" ["get"] "" (6 &second) - , Run $ Com "hrt-time" ["days"] "" (60 &minute) , Run $ Com "mullvad-status" [] "" (6 &second) , Run XMonadLog , Run $ @@ -114,7 +113,7 @@ config = [ " %LFRN% " , " %mullvad-status% " , " %battery%, %powerprofilesctl%) " - , " %hereClock% (%tomorrow%, %hrt-time%) " + , " %hereClock% (%tomorrow%) " ] } From d6417797db6549cccefdbc2a4d97765754f78bc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 10 Jan 2026 22:36:36 +0100 Subject: [PATCH 020/126] packages/mullvad-status: show red when no internet --- nix/packages/by-name/mullvad-status/mullvad-status.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nix/packages/by-name/mullvad-status/mullvad-status.sh b/nix/packages/by-name/mullvad-status/mullvad-status.sh index af75f92f..17873d5b 100644 --- a/nix/packages/by-name/mullvad-status/mullvad-status.sh +++ b/nix/packages/by-name/mullvad-status/mullvad-status.sh @@ -28,6 +28,13 @@ connected) echo -n " ($COUNTRY,$CITY)" ;; disconnected) - xmobarColor "red" "Mullvad Off" + function is-locked-down { + echo "$MULLVAD_STATUS" | jq --exit-status ".details.locked_down" >/dev/null + } + if is-locked-down "LockdownMode"; then + xmobarColor "red" "Mullvad Off " + else + xmobarColor "orange" "Mullvad Off" + fi ;; esac From c0e0dbe9b9cf96f0fe4c2e828a83154c48a5febb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 10 Jan 2026 23:02:09 +0100 Subject: [PATCH 021/126] vanadium/xmonad: remove 2d nagivation --- .../vanadium/home/xmonad/xmonad.hs | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index 0ea59e18..7dab02c3 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -3,10 +3,8 @@ import XMonad import XMonad.Actions.CopyWindow -import XMonad.Actions.Navigation2D import XMonad.Actions.Submap import XMonad.Actions.SwapWorkspaces -import XMonad.Actions.Warp import XMonad.Hooks.DynamicLog import XMonad.Hooks.EwmhDesktops import XMonad.Hooks.InsertPosition @@ -48,7 +46,6 @@ main = $ withSB xmobarConfig . docks $ setEwmhActivateHook myActivateHook $ ewmhFullscreen . ewmh - $ withNavigation2DConfig def $ def { modMask = superMask , borderWidth = 5 @@ -283,9 +280,6 @@ removedKeybinds = ++ [ (superMask , n) | n <- [xK_1 .. xK_9] ] ++ [ (superMask .|. shiftMask, n) | n <- [xK_1 .. xK_9] ] -warpToWindowCenter :: X () -warpToWindowCenter = warpToWindow 0.5 0.5 - keybinds :: [((KeyMask, KeySym), X ())] keybinds = [ @@ -327,27 +321,6 @@ keybinds = , ((0, xK_l), withFocused $ windows . flip W.float centeredFloat) ] ) - - -- Switch between layers - , ((altMask, xK_s), switchLayer ) - - -- We override default focus shifting bindings to warp the cursor to the center of the new window. - -- This is especially useful because mag doesn't work well with focusFollowsMouse. - -- The order is important: focus shift, and then warp the cursor - -- - -- Warp when focus shifts by binding, not by mouse (otherwise it's annoying) - - -- Directional navigation of windows - , ((altMask, xK_l), windowGo R False >> warpToWindowCenter) - , ((altMask, xK_h), windowGo L False >> warpToWindowCenter) - , ((altMask, xK_k), windowGo U False >> warpToWindowCenter) - , ((altMask, xK_j), windowGo D False >> warpToWindowCenter) - - -- Swap adjacent windows - , ((altMask .|. superMask, xK_l), windowSwap R False >> warpToWindowCenter) - , ((altMask .|. superMask, xK_h), windowSwap L False >> warpToWindowCenter) - , ((altMask .|. superMask, xK_k), windowSwap U False >> warpToWindowCenter) - , ((altMask .|. superMask, xK_j), windowSwap D False >> warpToWindowCenter) ] -- Screenshots From 7c335b264f2c4a3fe0a894f3e814aca0019e9d1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 10 Jan 2026 23:12:33 +0100 Subject: [PATCH 022/126] vanadium/xmonad: copyToAll --- nix/configurations/vanadium/home/xmonad/xmonad.hs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index 7dab02c3..2314f2be 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -319,6 +319,8 @@ keybinds = , submap $ M.fromList [ ((0, xK_t), withFocused $ windows . W.sink) , ((0, xK_l), withFocused $ windows . flip W.float centeredFloat) + , ((0, xK_c), windows copyToAll) + , ((0, xK_k), killAllOtherCopies) ] ) ] From 4b12e279e0fb09e6c2aa351b6c286049c4664375 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 10 Jan 2026 23:14:55 +0100 Subject: [PATCH 023/126] vanadium/xmonad: ungrab cursor when making selection --- nix/configurations/vanadium/home/xmonad/xmonad.hs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index 2314f2be..a49abdff 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -329,10 +329,10 @@ keybinds = ++ (let fullscreen = "maim -u | xclip -in -selection clipboard -t image/png" withSelection = "maim -u -s -b 5 -o | xclip -in -selection clipboard -t image/png" toFloat = "maim -u -s -b 5 -o | feh --auto-zoom -" - in [ ((0, xK_Print), spawn fullscreen ) - , ((superMask .|. shiftMask, xK_3 ), spawn fullscreen ) - , ((superMask .|. shiftMask, xK_4 ), spawn withSelection) - , ((superMask .|. shiftMask, xK_5 ), spawn toFloat ) + in [ ((0, xK_Print), unGrab >> spawn fullscreen ) + , ((superMask .|. shiftMask, xK_3 ), unGrab >> spawn fullscreen ) + , ((superMask .|. shiftMask, xK_4 ), unGrab >> spawn withSelection) + , ((superMask .|. shiftMask, xK_5 ), unGrab >> spawn toFloat ) ] ) From 5751f70d5e45aa1f8a126a445e3b87bc701dc7ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 11 Jan 2026 15:22:38 +0100 Subject: [PATCH 024/126] vanadium/home: clean up nix packages --- nix/configurations/vanadium/home/programs.nix | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/nix/configurations/vanadium/home/programs.nix b/nix/configurations/vanadium/home/programs.nix index 46351801..3fad8c64 100644 --- a/nix/configurations/vanadium/home/programs.nix +++ b/nix/configurations/vanadium/home/programs.nix @@ -69,18 +69,11 @@ pkgs.onefetch pkgs.just - # nix tools - # # Alejandra handles inline comments poorly - # # https://github.com/kamadorueda/alejandra/issues/429 - # pkgs.alejandra - pkgs.nixfmt-rfc-style - pkgs.nurl - pkgs.dix - pkgs.niv + pkgs.nixfmt-rfc-style # formatter + pkgs.nurl # fetcher made easy + pkgs.nix-diff # debug cache miss pkgs.npins - pkgs.nix-tree - pkgs.nix-output-monitor - pkgs.nh + pkgs.nix-tree # analyze closure # productivity / media pkgs.evolution From ba80b161b8dfeec82230c567e31314bde7911e5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 11 Jan 2026 15:22:44 +0100 Subject: [PATCH 025/126] fish: add nom as a script dependency --- nix/homeModules/common/fish/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nix/homeModules/common/fish/default.nix b/nix/homeModules/common/fish/default.nix index 6a866084..dbb6e438 100644 --- a/nix/homeModules/common/fish/default.nix +++ b/nix/homeModules/common/fish/default.nix @@ -11,7 +11,10 @@ # # Script dependencies # - home.packages = [ pkgs.vivid ]; + home.packages = [ + pkgs.vivid + pkgs.nix-output-monitor # pretty ui for shells + ]; programs = { fd.enable = true; fzf.enable = true; From 36367bdfaf2ed02feede4f747a8b02c28777ad73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 11 Jan 2026 15:25:19 +0100 Subject: [PATCH 026/126] vanadium/home: clean up packages --- nix/configurations/vanadium/home/programs.nix | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/nix/configurations/vanadium/home/programs.nix b/nix/configurations/vanadium/home/programs.nix index 3fad8c64..558bdbcd 100644 --- a/nix/configurations/vanadium/home/programs.nix +++ b/nix/configurations/vanadium/home/programs.nix @@ -78,25 +78,18 @@ # productivity / media pkgs.evolution pkgs.libreoffice + pkgs.minder # mindmap tool pkgs.calibre - pkgs.foliate # TODO: replace calibre with foliate - # pkgs.rawtherapee pkgs.digikam - pkgs.gimp - pkgs.easyeffects pkgs.nautilus pkgs.sushi # space bar previewer - # pkgs.blender - # pkgs.inkscape - # pkgs.aseprite # pkgs.xournalpp - pkgs.nicotine-plus pkgs.picard # music tagger - pkgs.qbittorrent pkgs.mousai - pkgs.localsend # file share with iOS - pkgs.minder # mindmap tool + pkgs.nicotine-plus + pkgs.qbittorrent pkgs.mkvtoolnix + pkgs.localsend # file share with iOS # social pkgs.iamb From 157bbd8f7d560f29f17d4b3184a09c2aa3f00f05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 11 Jan 2026 15:25:50 +0100 Subject: [PATCH 027/126] tree-wide: drop kitty configuration --- nix/configurations/vanadium.nix | 1 - nix/configurations/vanadium/home/programs.nix | 11 ---- nix/homeModules/common/kitty.nix | 62 ------------------- 3 files changed, 74 deletions(-) delete mode 100644 nix/homeModules/common/kitty.nix diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 344c1f77..6e76dbb7 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -177,7 +177,6 @@ in ../homeModules/common/fzf.nix ../homeModules/common/git.nix ../homeModules/common/gpg.nix - ../homeModules/common/kitty.nix ../homeModules/common/ghostty.nix ../homeModules/common/leana.nix ../homeModules/common/locale.nix diff --git a/nix/configurations/vanadium/home/programs.nix b/nix/configurations/vanadium/home/programs.nix index 558bdbcd..818e1cda 100644 --- a/nix/configurations/vanadium/home/programs.nix +++ b/nix/configurations/vanadium/home/programs.nix @@ -161,17 +161,6 @@ mouse-scroll-multiplier = 1; }; }; - kitty = { - enable = false; - font.size = 12; # sweet spot for framework 13 - settings = { - shell = lib.getExe config.programs.fish.package; - # https://github.com/kovidgoyal/kitty/issues/1866 - # https://sw.kovidgoyal.net/kitty/conf/#terminal-bell - linux_bell_theme = "elementary"; - }; - }; - chromium.enable = true; }; diff --git a/nix/homeModules/common/kitty.nix b/nix/homeModules/common/kitty.nix deleted file mode 100644 index fff484b9..00000000 --- a/nix/homeModules/common/kitty.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: -let - cfg = config.programs.kitty; -in -{ - config = lib.mkIf cfg.enable { - home.packages = [ - pkgs.nerd-fonts.iosevka - ]; - - programs.kitty = { - font.name = "family=\"Iosevka NFM\""; - - settings = rec { - # Make text thicker - text_composition_strategy = lib.mkIf pkgs.stdenv.isLinux "2.8 0"; - - # Don't prompt - confirm_os_window_close = 0; - - # Never underline links - underline_hyperlinks = "never"; - - # No default bindings - clear_all_shortcuts = "no"; - - # cursor - cursor_blink_interval = 1; - cursor_stop_blinking_after = 15; # always blink - - # theme - background = "#fdf6e3"; - foreground = "#073642"; - cursor = "#000000"; - cursor_text_color = "#ffffff"; - selection_foreground = foreground; - selection_background = "#dbcba3"; - color0 = "#073642"; - color8 = "#4d4d4d"; - color1 = "#af005f"; - color9 = "#d33682"; - color2 = "#859900"; - color10 = "#29a350"; - color3 = "#ba9b23"; - color11 = "#d6b429"; - color4 = "#268bd2"; - color12 = "#469edd"; - color5 = "#5f5faf"; - color13 = "#6060d1"; - color6 = "#2aa198"; - color14 = "#4bccc1"; # a platupus? perry the platupus? - color7 = "#a0a1a7"; - color15 = "#eeeadd"; - }; - }; - }; -} From cdfe147f81c663527a3f1ef4df7db001c9c18d84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 11 Jan 2026 15:30:38 +0100 Subject: [PATCH 028/126] npins: drop dix --- npins/sources.json | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/npins/sources.json b/npins/sources.json index 47811a38..d2db2cb0 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -32,22 +32,6 @@ "url": "https://api.github.com/repos/nix-community/disko/tarball/v1.11.0", "hash": "13brimg7z7k9y36n4jc1pssqyw94nd8qvgfjv53z66lv4xkhin92" }, - "dix": { - "type": "GitRelease", - "repository": { - "type": "GitHub", - "owner": "bloxx12", - "repo": "dix" - }, - "pre_releases": false, - "version_upper_bound": null, - "release_prefix": null, - "submodules": false, - "version": "v1.3.0", - "revision": "ba315562f8c4a957dc9c058d75a43419e3307f63", - "url": "https://api.github.com/repos/bloxx12/dix/tarball/v1.3.0", - "hash": "00gr8b6i9xis9kmbblvnafjpaa2hk18bs0i3pxisyzibp928bv2z" - }, "eepy": { "type": "Git", "repository": { From e47ae2d6480b2cc34d43c5c863d01714347d0879 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 11 Jan 2026 15:30:42 +0100 Subject: [PATCH 029/126] overlays/dix: drop --- nix/configurations/vanadium.nix | 1 - nix/overlays/dix.nix | 6 ------ 2 files changed, 7 deletions(-) delete mode 100644 nix/overlays/dix.nix diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 6e76dbb7..a91971bc 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -54,7 +54,6 @@ in ../overlays/wired-notify.nix ../overlays/wallpapers.nix ../overlays/nil.nix - ../overlays/dix.nix ../overlays/eepy.nix ../overlays/calibre-no-mime.nix ../overlays/fcitx5-table-extra-taiwanese.nix diff --git a/nix/overlays/dix.nix b/nix/overlays/dix.nix deleted file mode 100644 index ad644e49..00000000 --- a/nix/overlays/dix.nix +++ /dev/null @@ -1,6 +0,0 @@ -let - sources = import ../../npins; -in -final: _: { - dix = sources.dix.asFlake.packages.${final.stdenv.hostPlatform.system}.default; -} From 10da2954b7f8dcdc8d8d1eeb6c118e8c25d16fea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 11 Jan 2026 16:01:20 +0100 Subject: [PATCH 030/126] npins: update sources --- npins/sources.json | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/npins/sources.json b/npins/sources.json index d2db2cb0..ce30894b 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -84,9 +84,9 @@ }, "branch": "main", "submodules": false, - "revision": "45abfa91905a5dafdddb711dd9402d45947cdfbb", - "url": "https://github.com/ghostty-org/ghostty/archive/45abfa91905a5dafdddb711dd9402d45947cdfbb.tar.gz", - "hash": "1pmfsxd65yva3ij2v20xb5r1hf3mx6lqr593nivnvsi345jnfh1y" + "revision": "17da13840dc71ba36b0deb2c0e85097840630ad5", + "url": "https://github.com/ghostty-org/ghostty/archive/17da13840dc71ba36b0deb2c0e85097840630ad5.tar.gz", + "hash": "1ifa8fiqgc4pc7dyzh31d5g0wrawxvrpnz7lcf2qxjfjv5jq0k63" }, "hategroup-dnsbl": { "type": "Git", @@ -111,9 +111,9 @@ }, "branch": "release-25.11", "submodules": false, - "revision": "6bd04da47cfb48dfd15eabf08364b78ad894f5b2", - "url": "https://github.com/nix-community/home-manager/archive/6bd04da47cfb48dfd15eabf08364b78ad894f5b2.tar.gz", - "hash": "1wvysqiybcyf2hzvvpja2522fqhk45554j0b07h3s7zhzc2056ia" + "revision": "82fb7dedaad83e5e279127a38ef410bcfac6d77c", + "url": "https://github.com/nix-community/home-manager/archive/82fb7dedaad83e5e279127a38ef410bcfac6d77c.tar.gz", + "hash": "1rj0cazl5kjcfn4433fj31293yx421wbawryp5q3bq3fsmhkkr9h" }, "infuse": { "type": "GitRelease", @@ -181,9 +181,9 @@ }, "branch": "nixos-25.11-small", "submodules": false, - "revision": "a35a20f6d3d51b6b42b68a6879701f7d87381896", - "url": "https://github.com/nixos/nixpkgs/archive/a35a20f6d3d51b6b42b68a6879701f7d87381896.tar.gz", - "hash": "00781d4nhmqzvxph2lpsj3kika3v8y0nigfadr6y8lvzxrcppkfj" + "revision": "ff8a91eb93e8abfceed1957330b54e54e99c747a", + "url": "https://github.com/nixos/nixpkgs/archive/ff8a91eb93e8abfceed1957330b54e54e99c747a.tar.gz", + "hash": "0j0410wjpkxix1sxfr3fpd60iqvjrkgydiis7rqr4g44y042dfns" }, "nur": { "type": "Git", @@ -194,9 +194,9 @@ }, "branch": "main", "submodules": false, - "revision": "68e3e935ba29960813ab1ecf2852a0ecbe8d5946", - "url": "https://github.com/nix-community/nur/archive/68e3e935ba29960813ab1ecf2852a0ecbe8d5946.tar.gz", - "hash": "02pmkhd6ram43qnmirh3z46w1l31rmm16mhkx36jaxhpnzlwgr2i" + "revision": "9aa5514ef92b980580f90029447ecc732851e2a9", + "url": "https://github.com/nix-community/nur/archive/9aa5514ef92b980580f90029447ecc732851e2a9.tar.gz", + "hash": "1dx6r4nz2dmv6lq34aig2pcgb74m00kq7ma60fm34jih67ldpcs0" }, "pin-emacs28": { "type": "Git", @@ -333,9 +333,9 @@ }, "branch": "mistress", "submodules": false, - "revision": "ee12113e53e1b9b80638b6963a5b7075c3b81e93", - "url": "https://git.confusedcompiler.org/leana8959/wallpapers/archive/ee12113e53e1b9b80638b6963a5b7075c3b81e93.tar.gz", - "hash": "1pv17pvc60jkr8y7j8g3q0wmy5qgsjxsq1gv23yb3gf52g4z98sk" + "revision": "861a5942932820291eba572cbe251866895e3655", + "url": "https://git.confusedcompiler.org/leana8959/wallpapers/archive/861a5942932820291eba572cbe251866895e3655.tar.gz", + "hash": "0p0q8v510zracsmymws88iv9qgxqyhiwlfcmln5p6yc8a7ra6p8y" }, "wired-notify": { "type": "Git", @@ -359,9 +359,9 @@ }, "branch": "main", "submodules": false, - "revision": "350c729b261e6f5529460140a5f0943dd4c5e156", - "url": "https://github.com/0xc000022070/zen-browser-flake/archive/350c729b261e6f5529460140a5f0943dd4c5e156.tar.gz", - "hash": "1fbx200712rdz3b8c4acrz0ib8fd636bvsiyv4m31xqpfqpj3kza" + "revision": "5c9624f3d0176727284678aebf677770dd1375b2", + "url": "https://github.com/0xc000022070/zen-browser-flake/archive/5c9624f3d0176727284678aebf677770dd1375b2.tar.gz", + "hash": "1highzr36j8crd77y6331ggfm66n78075vj1rqhbbbxfq6aazkz8" } }, "version": 5 From a70b9db0c729b38633850c6c2cdd7391f5ccde34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Mon, 12 Jan 2026 23:23:42 +0100 Subject: [PATCH 031/126] Reapply "nvim: remove relative number" This reverts commit 92a20d36b69e72909221d6a9554c61163ee5dd2a. --- .config/nvim/plugin/autocommands.lua | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/.config/nvim/plugin/autocommands.lua b/.config/nvim/plugin/autocommands.lua index b0ce7973..3de0d831 100644 --- a/.config/nvim/plugin/autocommands.lua +++ b/.config/nvim/plugin/autocommands.lua @@ -54,23 +54,6 @@ vim.api.nvim_create_autocmd("WinLeave", { callback = function() vim.wo.cursorline = false end, }) -local auto_linenr = vim.api.nvim_create_augroup("AutoLineNr", {}) -vim.api.nvim_create_autocmd({ "VimEnter", "WinEnter", "BufWinEnter" }, { - group = auto_linenr, - callback = function() - -- fugitive, for example, doesn't have numbers - -- if I set relative number I'll get numbers and we don't want that - if vim.wo.number then - vim.wo.relativenumber = true - end - end, -}) - -vim.api.nvim_create_autocmd("WinLeave", { - group = auto_linenr, - callback = function() vim.wo.relativenumber = false end, -}) - vim.api.nvim_create_autocmd({ "VimEnter", "FocusGained", "BufEnter" }, { group = vim.api.nvim_create_augroup("ReloadFileOnChange", {}), command = "checktime", From 1c73168fdc8591c71273110ebed48a54f6b66885 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 15 Jan 2026 21:11:58 +0100 Subject: [PATCH 032/126] npins: add npins --- nix/configurations/vanadium.nix | 1 + nix/overlays/npins.nix | 6 ++++++ npins/sources.json | 16 ++++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 nix/overlays/npins.nix diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index a91971bc..43a36dd4 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -58,6 +58,7 @@ in ../overlays/calibre-no-mime.nix ../overlays/fcitx5-table-extra-taiwanese.nix ../overlays/ghostty-dev.nix + ../overlays/npins.nix ../overlays/iosevka.nix ../packages/overlay.nix diff --git a/nix/overlays/npins.nix b/nix/overlays/npins.nix new file mode 100644 index 00000000..e5b0c16d --- /dev/null +++ b/nix/overlays/npins.nix @@ -0,0 +1,6 @@ +let + sources = import ../../npins; +in +final: _: { + npins = import sources.npins { pkgs = final; }; +} diff --git a/npins/sources.json b/npins/sources.json index ce30894b..9900b81c 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -185,6 +185,22 @@ "url": "https://github.com/nixos/nixpkgs/archive/ff8a91eb93e8abfceed1957330b54e54e99c747a.tar.gz", "hash": "0j0410wjpkxix1sxfr3fpd60iqvjrkgydiis7rqr4g44y042dfns" }, + "npins": { + "type": "GitRelease", + "repository": { + "type": "GitHub", + "owner": "andir", + "repo": "npins" + }, + "pre_releases": false, + "version_upper_bound": "0.5", + "release_prefix": null, + "submodules": false, + "version": "0.4.0", + "revision": "52904b878c2db61e062b63beb07784d41f98c765", + "url": "https://api.github.com/repos/andir/npins/tarball/0.4.0", + "hash": "07n256q07k1f0nm92nqgihm71xyrg9293w6ib3r92vmqpf5rghwj" + }, "nur": { "type": "Git", "repository": { From 8587f2258b8f1755d7ab111ccf0d55a4b5eb8a1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 15 Jan 2026 21:16:13 +0100 Subject: [PATCH 033/126] overlays/calibre-no-mime: drop --- nix/configurations/vanadium.nix | 1 - nix/overlays/calibre-no-mime.nix | 11 ----------- 2 files changed, 12 deletions(-) delete mode 100644 nix/overlays/calibre-no-mime.nix diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 43a36dd4..15f396de 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -55,7 +55,6 @@ in ../overlays/wallpapers.nix ../overlays/nil.nix ../overlays/eepy.nix - ../overlays/calibre-no-mime.nix ../overlays/fcitx5-table-extra-taiwanese.nix ../overlays/ghostty-dev.nix ../overlays/npins.nix diff --git a/nix/overlays/calibre-no-mime.nix b/nix/overlays/calibre-no-mime.nix deleted file mode 100644 index bfc2d604..00000000 --- a/nix/overlays/calibre-no-mime.nix +++ /dev/null @@ -1,11 +0,0 @@ -# cailbre is obnoxious about opening HTML -final: prev: { - calibre = final.symlinkJoin { - name = "calibre"; - paths = [ prev.calibre ]; - buildInputs = [ final.makeWrapper ]; - postBuild = '' - rm -r $out/share/mime - ''; - }; -} From 4af7f74bdf009a8eac99f7c4137622f8c2d64f34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 15 Jan 2026 21:16:42 +0100 Subject: [PATCH 034/126] overlays/eepy: drop --- nix/configurations/vanadium.nix | 1 - nix/configurations/vanadium/home/programs.nix | 1 - nix/overlays/eepy.nix | 6 ------ npins/sources.json | 14 -------------- 4 files changed, 22 deletions(-) delete mode 100644 nix/overlays/eepy.nix diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 15f396de..d8f2f12c 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -54,7 +54,6 @@ in ../overlays/wired-notify.nix ../overlays/wallpapers.nix ../overlays/nil.nix - ../overlays/eepy.nix ../overlays/fcitx5-table-extra-taiwanese.nix ../overlays/ghostty-dev.nix ../overlays/npins.nix diff --git a/nix/configurations/vanadium/home/programs.nix b/nix/configurations/vanadium/home/programs.nix index 818e1cda..2f1b390f 100644 --- a/nix/configurations/vanadium/home/programs.nix +++ b/nix/configurations/vanadium/home/programs.nix @@ -46,7 +46,6 @@ pkgs.ruler pkgs.mini-calc - pkgs.eepy pkgs.zbar # pdf diff --git a/nix/overlays/eepy.nix b/nix/overlays/eepy.nix deleted file mode 100644 index 38bc8053..00000000 --- a/nix/overlays/eepy.nix +++ /dev/null @@ -1,6 +0,0 @@ -let - sources = import ../../npins; -in -final: _: { - eepy = sources.eepy.asFlake.packages.${final.stdenv.hostPlatform.system}.default; -} diff --git a/npins/sources.json b/npins/sources.json index 9900b81c..d61b2550 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -32,20 +32,6 @@ "url": "https://api.github.com/repos/nix-community/disko/tarball/v1.11.0", "hash": "13brimg7z7k9y36n4jc1pssqyw94nd8qvgfjv53z66lv4xkhin92" }, - "eepy": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "cafkafk", - "repo": "eepy" - }, - "branch": "main", - "submodules": false, - "revision": "2092e67cf48f62754cdeb45ced1e5670d11fddc3", - "url": "https://github.com/cafkafk/eepy/archive/2092e67cf48f62754cdeb45ced1e5670d11fddc3.tar.gz", - "hash": "0rddwwrkbbgcdava542qg1wb3ca9d6g24l9gp4ghp55f04p55p79", - "frozen": true - }, "fcitx5-table-extra": { "type": "Git", "repository": { From 627888c13f1a526617064a8b3d75bf9178c402ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 15 Jan 2026 21:26:36 +0100 Subject: [PATCH 035/126] npins: upgrade --- npins/default.nix | 151 ++++++++++++++++++++++++++++++++++----------- npins/sources.json | 54 ++++++++-------- 2 files changed, 143 insertions(+), 62 deletions(-) diff --git a/npins/default.nix b/npins/default.nix index 850b02ae..884fc8cc 100644 --- a/npins/default.nix +++ b/npins/default.nix @@ -9,8 +9,15 @@ */ # Generated by npins. Do not modify; will be overwritten regularly let - data = builtins.fromJSON (builtins.readFile ./sources.json); - version = data.version; + # Backwards-compatibly make something that previously didn't take any arguments take some + # The function must return an attrset, and will unfortunately be eagerly evaluated + # Same thing, but it catches eval errors on the default argument so that one may still call it with other arguments + mkFunctor = + fn: + let + e = builtins.tryEval (fn { }); + in + (if e.success then e.value else { error = fn { }; }) // { __functor = _self: fn; }; # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 range = @@ -21,7 +28,6 @@ let # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); - concatMapStrings = f: list: concatStrings (map f list); concatStrings = builtins.concatStringsSep ""; # If the environment variable NPINS_OVERRIDE_${name} is set, then use @@ -48,52 +54,87 @@ let mkSource = name: spec: + { + pkgs ? null, + }: assert spec ? type; let + # Unify across builtin and pkgs fetchers. + # `fetchGit` requires a wrapper because of slight API differences. + fetchers = + if pkgs == null then + { + inherit (builtins) fetchTarball fetchurl; + # For some fucking reason, fetchGit has a different signature than the other builtin fetchers … + fetchGit = args: (builtins.fetchGit args).outPath; + } + else + { + fetchTarball = + { + url, + sha256, + }: + pkgs.fetchzip { + inherit url sha256; + extension = "tar"; + }; + inherit (pkgs) fetchurl; + fetchGit = + { + url, + submodules, + rev, + name, + narHash, + }: + pkgs.fetchgit { + inherit url rev name; + fetchSubmodules = submodules; + hash = narHash; + }; + }; + + # Dispatch to the correct code path based on the type path = if spec.type == "Git" then - mkGitSource spec + mkGitSource fetchers spec else if spec.type == "GitRelease" then - mkGitSource spec + mkGitSource fetchers spec else if spec.type == "PyPi" then - mkPyPiSource spec + mkPyPiSource fetchers spec else if spec.type == "Channel" then - mkChannelSource spec + mkChannelSource fetchers spec else if spec.type == "Tarball" then - mkTarballSource spec + mkTarballSource fetchers spec + else if spec.type == "Container" then + mkContainerSource pkgs spec else builtins.throw "Unknown source type ${spec.type}"; in - spec - // rec { - outPath = mayOverride name path; - - # Waiting for discussion upstream - # https://github.com/andir/npins/issues/159 - asFlake = - if sources ? flake-compat then - (import sources.flake-compat { src = outPath; }).outputs - else - throw ".asFlake needs flake-compat as a source"; - }; + spec // { outPath = mayOverride name path; }; mkGitSource = + { + fetchTarball, + fetchGit, + ... + }: { repository, revision, url ? null, submodules, hash, - branch ? null, ... }: assert repository ? type; # At the moment, either it is a plain git repository (which has an url), or it is a GitHub/GitLab repository # In the latter case, there we will always be an url to the tarball if url != null && !submodules then - builtins.fetchTarball { + fetchTarball { inherit url; - sha256 = hash; # FIXME: check nix version & use SRI hashes + sha256 = hash; } else let @@ -104,6 +145,8 @@ let "https://github.com/${repository.owner}/${repository.repo}.git" else if repository.type == "GitLab" then "${repository.server}/${repository.repo_path}.git" + else if repository.type == "Forgejo" then + "${repository.server}/${repository.owner}/${repository.repo}.git" else throw "Unrecognized repository type ${repository.type}"; urlToName = @@ -118,51 +161,89 @@ let "${if matched == null then "source" else builtins.head matched}${appendShort}"; name = urlToName url revision; in - builtins.fetchGit { + fetchGit { rev = revision; - inherit name; - # hash = hash; - inherit url submodules; + narHash = hash; + + inherit name submodules url; }; mkPyPiSource = + { fetchurl, ... }: { url, hash, ... }: - builtins.fetchurl { + fetchurl { inherit url; sha256 = hash; }; mkChannelSource = + { fetchTarball, ... }: { url, hash, ... }: - builtins.fetchTarball { + fetchTarball { inherit url; sha256 = hash; }; mkTarballSource = + { fetchTarball, ... }: { url, locked_url ? url, hash, ... }: - builtins.fetchTarball { + fetchTarball { url = locked_url; sha256 = hash; }; - sources = - if version == 5 then - builtins.mapAttrs mkSource data.pins + mkContainerSource = + pkgs: + { + image_name, + image_tag, + image_digest, + ... + }: + if pkgs == null then + builtins.throw "container sources require passing in a Nixpkgs value: https://github.com/andir/npins/blob/master/README.md#using-the-nixpkgs-fetchers" else - throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`"; + pkgs.dockerTools.pullImage { + imageName = image_name; + imageDigest = image_digest; + finalImageTag = image_tag; + }; in -sources +mkFunctor ( + { + input ? ./sources.json, + }: + let + data = + if builtins.isPath input then + # while `readFile` will throw an error anyways if the path doesn't exist, + # we still need to check beforehand because *our* error can be caught but not the one from the builtin + # *piegames sighs* + if builtins.pathExists input then + builtins.fromJSON (builtins.readFile input) + else + throw "Input path ${toString input} does not exist" + else if builtins.isAttrs input then + input + else + throw "Unsupported input type ${builtins.typeOf input}, must be a path or an attrset"; + version = data.version; + in + if version == 7 then + builtins.mapAttrs (name: spec: mkFunctor (mkSource name spec)) data.pins + else + throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`" +) diff --git a/npins/sources.json b/npins/sources.json index d61b2550..1708e121 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -14,7 +14,7 @@ "version": "0.15.0", "revision": "564595d0ad4be7277e07fa63b5a991b3c645655d", "url": "https://api.github.com/repos/ryantm/agenix/tarball/0.15.0", - "hash": "01dhrghwa7zw93cybvx4gnrskqk97b004nfxgsys0736823956la" + "hash": "sha256-ipqShkBmHKC9ft1ZAsA6aeKps32k7+XZSPwfxeHLsAU=" }, "disko": { "type": "GitRelease", @@ -30,7 +30,7 @@ "version": "v1.11.0", "revision": "cdf8deded8813edfa6e65544f69fdd3a59fa2bb4", "url": "https://api.github.com/repos/nix-community/disko/tarball/v1.11.0", - "hash": "13brimg7z7k9y36n4jc1pssqyw94nd8qvgfjv53z66lv4xkhin92" + "hash": "sha256-ItkIZyebGvNH2dK9jVGzJHGPtb6BSWLN8Gmef16NeY0=" }, "fcitx5-table-extra": { "type": "Git", @@ -43,7 +43,7 @@ "submodules": true, "revision": "cba16e03fd43b1ee8a15d20e14ecf0fb1c6762fa", "url": null, - "hash": "0ryb3cng4py2zrm95p5ial9w13p7w4ws0bl0lddrij1sq42kzg8l", + "hash": "sha256-FL0/BcE6yJhbo4AuoDnh547AE1Wx3JJq/sJf8iwby2c=", "frozen": true }, "flake-compat": { @@ -58,7 +58,7 @@ "submodules": false, "revision": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", "url": "https://git.lix.systems/lix-project/flake-compat/archive/549f2762aebeff29a2e5ece7a7dc0f955281a1d1.tar.gz", - "hash": "0g4izwn5k7qpavlk3w41a92rhnp4plr928vmrhc75041vzm3vb1l", + "hash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", "frozen": true }, "ghostty-dev": { @@ -72,7 +72,7 @@ "submodules": false, "revision": "17da13840dc71ba36b0deb2c0e85097840630ad5", "url": "https://github.com/ghostty-org/ghostty/archive/17da13840dc71ba36b0deb2c0e85097840630ad5.tar.gz", - "hash": "1ifa8fiqgc4pc7dyzh31d5g0wrawxvrpnz7lcf2qxjfjv5jq0k63" + "hash": "sha256-w0yAZdnSyY6FY/R8e/PuXGUOXmlhwO/bYZewh6NDysU=" }, "hategroup-dnsbl": { "type": "Git", @@ -85,7 +85,7 @@ "submodules": false, "revision": "cc19c050997d5f54014bb20c764b131e003dfb17", "url": "https://github.com/chigh/hategroup-dnsbl/archive/cc19c050997d5f54014bb20c764b131e003dfb17.tar.gz", - "hash": "1x1nhy0717bav35z6aid0224izmcsrg3knys64xszhslh266p429", + "hash": "sha256-SZBrjIBUw687MdrbOV7WrP5IhAAtKvPL2GqdcICHNvQ=", "frozen": true }, "home-manager": { @@ -99,7 +99,7 @@ "submodules": false, "revision": "82fb7dedaad83e5e279127a38ef410bcfac6d77c", "url": "https://github.com/nix-community/home-manager/archive/82fb7dedaad83e5e279127a38ef410bcfac6d77c.tar.gz", - "hash": "1rj0cazl5kjcfn4433fj31293yx421wbawryp5q3bq3fsmhkkr9h" + "hash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=" }, "infuse": { "type": "GitRelease", @@ -116,7 +116,7 @@ "version": "v2.4", "revision": "c7da66119bb3502a59402cd2d1688a3f0a02577a", "url": "https://codeberg.org/api/v1/repos/amjoseph/infuse.nix/archive/v2.4.tar.gz", - "hash": "1s3d1v27jxsw5050qi0bq6agpf5gpw6jmcyigzpdgwfm9d6w6wz1" + "hash": "sha256-4XPDTUvV8dfuf9GzKg2/r7j7lMELRAwKKFx3ecQObeg=" }, "nil": { "type": "Git", @@ -129,7 +129,7 @@ "submodules": false, "revision": "504599f7e555a249d6754698473124018b80d121", "url": "https://github.com/oxalica/nil/archive/504599f7e555a249d6754698473124018b80d121.tar.gz", - "hash": "1mzx60999jciq2ax1l5ajmks6fb3cmjavn7fsyh4aysvcdgzrj6p" + "hash": "sha256-18j8X2Nbe0Wg1+7YrWRlYzmjZ5Wq0NCVwJHJlBIw/dc=" }, "nix-monitored": { "type": "Git", @@ -142,7 +142,7 @@ "submodules": false, "revision": "60f3baa4701d58eab86c2d1d9c3d7e820074d461", "url": "https://github.com/ners/nix-monitored/archive/60f3baa4701d58eab86c2d1d9c3d7e820074d461.tar.gz", - "hash": "1rdyjmxkvyqd5blbzbwfv2b99krx6rkpdzi1ckyby8i676gf9hv7", + "hash": "sha256-Z8PknjkmIr/8ZCH+dmc2Pc+UltiOr7/oKg37PXuVvuU=", "frozen": true }, "nixos-hardware": { @@ -156,7 +156,7 @@ "submodules": false, "revision": "40b1a28dce561bea34858287fbb23052c3ee63fe", "url": "https://github.com/NixOS/nixos-hardware/archive/40b1a28dce561bea34858287fbb23052c3ee63fe.tar.gz", - "hash": "197v6xxdq5j4w8kil6q21ij9x6ng8z6j72brkwwjim23798c2c4n" + "hash": "sha256-ljDBUDpD1Cg5n3mJI81Hz5qeZAwCGxon4kQW3Ho3+6Q=" }, "nixpkgs": { "type": "Git", @@ -169,7 +169,7 @@ "submodules": false, "revision": "ff8a91eb93e8abfceed1957330b54e54e99c747a", "url": "https://github.com/nixos/nixpkgs/archive/ff8a91eb93e8abfceed1957330b54e54e99c747a.tar.gz", - "hash": "0j0410wjpkxix1sxfr3fpd60iqvjrkgydiis7rqr4g44y042dfns" + "hash": "sha256-2romCPCEPJJxPjrG5t/McuMITLtuZNd16LHPKzkIBEg=" }, "npins": { "type": "GitRelease", @@ -185,7 +185,7 @@ "version": "0.4.0", "revision": "52904b878c2db61e062b63beb07784d41f98c765", "url": "https://api.github.com/repos/andir/npins/tarball/0.4.0", - "hash": "07n256q07k1f0nm92nqgihm71xyrg9293w6ib3r92vmqpf5rghwj" + "hash": "sha256-ksOXi7u4bpHyWNHwkUR62fdwKowPW5GqBS7MA7Apwh4=" }, "nur": { "type": "Git", @@ -198,7 +198,7 @@ "submodules": false, "revision": "9aa5514ef92b980580f90029447ecc732851e2a9", "url": "https://github.com/nix-community/nur/archive/9aa5514ef92b980580f90029447ecc732851e2a9.tar.gz", - "hash": "1dx6r4nz2dmv6lq34aig2pcgb74m00kq7ma60fm34jih67ldpcs0" + "hash": "sha256-QLPb6DEwSjKqA0bVgycAlZz12BUvKjIwNbs28S3Jprc=" }, "pin-emacs28": { "type": "Git", @@ -211,7 +211,7 @@ "submodules": false, "revision": "93c121f6888986f9148a33afd39d714f4b2ca98c", "url": "https://github.com/NixOS/nixpkgs/archive/93c121f6888986f9148a33afd39d714f4b2ca98c.tar.gz", - "hash": "198p4lv3zqw3s6j3yflgic0jxig4y0vsb1k8433jv227ks89kqdg", + "hash": "sha256-r+GZkJ5HiC3HIGiGpTfw5MUuAYuPOj+k0YPjPzYlF6U=", "frozen": true }, "pin-florashell": { @@ -225,7 +225,7 @@ "submodules": false, "revision": "7282cb574e0607e65224d33be8241eae7cfe0979", "url": "https://github.com/NixOS/nixpkgs/archive/7282cb574e0607e65224d33be8241eae7cfe0979.tar.gz", - "hash": "0klkpy7ah033y3cwj51a0l96lwmkqqvwgfv3kid4z9x5g2rqr0l5", + "hash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=", "frozen": true }, "pin-fourmolu": { @@ -239,7 +239,7 @@ "submodules": false, "revision": "f6cf0e77542dd938f002652dd54391b973f792de", "url": "https://github.com/NixOS/nixpkgs/archive/f6cf0e77542dd938f002652dd54391b973f792de.tar.gz", - "hash": "1a8kcw1biyzmf5k8qjrji5fvgr8bbmi7fvf8pvfgjmf1df8rrcz1", + "hash": "sha256-4bOckWvBVfncvshtd2JdC+W3XYkyS4xmcfX7uAJnE6k=", "frozen": true }, "pin-isabelle": { @@ -253,7 +253,7 @@ "submodules": false, "revision": "805a384895c696f802a9bf5bf4720f37385df547", "url": "https://github.com/NixOS/nixpkgs/archive/805a384895c696f802a9bf5bf4720f37385df547.tar.gz", - "hash": "1q7y5ygr805l5axcjhn0rn3wj8zrwbrr0c6a8xd981zh8iccmx0p", + "hash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=", "frozen": true }, "pin-masna3shell": { @@ -267,7 +267,7 @@ "submodules": false, "revision": "641d909c4a7538f1539da9240dedb1755c907e40", "url": "https://github.com/NixOS/nixpkgs/archive/641d909c4a7538f1539da9240dedb1755c907e40.tar.gz", - "hash": "10hpb1aw884k3zzcy1mhf47dqvfagiyx7kr6hg0p5xcwg04mkx8x", + "hash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", "frozen": true }, "pin-necro-man-nixpkgs": { @@ -281,7 +281,7 @@ "submodules": false, "revision": "c58ed2fc0f592ebc280bfba077ea418ce10213d1", "url": "https://github.com/NixOS/nixpkgs/archive/c58ed2fc0f592ebc280bfba077ea418ce10213d1.tar.gz", - "hash": "1y5is3cjwsy9n5cqs8i7qc9kf8cny9yxzirzzspkqbrm51axv53i", + "hash": "sha256-cZTdVSg1Lzyv/j/H333yliE3E8MnIo1ZsclrLtnQsfg=", "frozen": true }, "pin-vim-tw": { @@ -295,7 +295,7 @@ "submodules": false, "revision": "c93c1b3413bd7e235fc22b469bc0d2feec332cf5", "url": "https://github.com/NixOS/nixpkgs/archive/c93c1b3413bd7e235fc22b469bc0d2feec332cf5.tar.gz", - "hash": "115sdkhyp0pm5rmag4gq0myg2rs20irisgnpf26zjfm92pw8isq4", + "hash": "sha256-BOuI+BWpOvmNcNc+HXMEQmfxfAX4kadqLvWC6+FsuoQ=", "frozen": true }, "pin-wireshark": { @@ -309,7 +309,7 @@ "submodules": false, "revision": "9d3ae807ebd2981d593cddd0080856873139aa40", "url": "https://github.com/NixOS/nixpkgs/archive/9d3ae807ebd2981d593cddd0080856873139aa40.tar.gz", - "hash": "0bjqgsprq9fgl5yh58dk59xmchi4dajq3sf5i447q02dbiasjsil", + "hash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=", "frozen": true }, "url-eater": { @@ -323,7 +323,7 @@ "submodules": false, "revision": "d617007eba79f9760db084aefda6c02c80ad7971", "url": "https://github.com/AgathaSorceress/url-eater/archive/d617007eba79f9760db084aefda6c02c80ad7971.tar.gz", - "hash": "0dir077j5gy6yzbhsr85z7kbiwi135ns59gwrycbpvihzzp4qbwm" + "hash": "sha256-lS9M7v8w7ruYz/ylom0ZIfK45vkFZQ3X98a/Is8BOTY=" }, "wallpapers": { "type": "Git", @@ -337,7 +337,7 @@ "submodules": false, "revision": "861a5942932820291eba572cbe251866895e3655", "url": "https://git.confusedcompiler.org/leana8959/wallpapers/archive/861a5942932820291eba572cbe251866895e3655.tar.gz", - "hash": "0p0q8v510zracsmymws88iv9qgxqyhiwlfcmln5p6yc8a7ra6p8y" + "hash": "sha256-Hl2j8lGIeXOLpZU5yiP0uD+cdkRI8+qrZip/EMpGGFw=" }, "wired-notify": { "type": "Git", @@ -350,7 +350,7 @@ "submodules": false, "revision": "491197a6a5ef9c65a85c3eb1531786f32ffff5b3", "url": "https://github.com/Toqozz/wired-notify/archive/491197a6a5ef9c65a85c3eb1531786f32ffff5b3.tar.gz", - "hash": "07gaizslvsiihvfrrbcdz0b2c04llsfqaji03ls55p1zbm41w6f3" + "hash": "sha256-wxkeSF0/3FI0HSBKhZ2mlAAmFviNrZzdhjHqTfWP6h0=" }, "zen-browser": { "type": "Git", @@ -363,8 +363,8 @@ "submodules": false, "revision": "5c9624f3d0176727284678aebf677770dd1375b2", "url": "https://github.com/0xc000022070/zen-browser-flake/archive/5c9624f3d0176727284678aebf677770dd1375b2.tar.gz", - "hash": "1highzr36j8crd77y6331ggfm66n78075vj1rqhbbbxfq6aazkz8" + "hash": "sha256-6M+vlMGur7UgzkHucgA61pjq3gtjGH9OywxJM/KHL8I=" } }, - "version": 5 + "version": 7 } From d2617493e8ea97e299706afd7468e60938bd8681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 15 Jan 2026 21:30:49 +0100 Subject: [PATCH 036/126] npins: restore asFlake patch --- npins/default.nix | 65 ++++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/npins/default.nix b/npins/default.nix index 884fc8cc..94d09bee 100644 --- a/npins/default.nix +++ b/npins/default.nix @@ -112,7 +112,18 @@ let else builtins.throw "Unknown source type ${spec.type}"; in - spec // { outPath = mayOverride name path; }; + spec + // rec { + outPath = mayOverride name path; + + # Waiting for discussion upstream + # https://github.com/andir/npins/issues/159 + asFlake = + if sources ? flake-compat then + (import sources.flake-compat { src = outPath; }).outputs + else + throw ".asFlake needs flake-compat as a source"; + }; mkGitSource = { @@ -221,29 +232,31 @@ let imageDigest = image_digest; finalImageTag = image_tag; }; -in -mkFunctor ( - { - input ? ./sources.json, - }: - let - data = - if builtins.isPath input then - # while `readFile` will throw an error anyways if the path doesn't exist, - # we still need to check beforehand because *our* error can be caught but not the one from the builtin - # *piegames sighs* - if builtins.pathExists input then - builtins.fromJSON (builtins.readFile input) + + sources = mkFunctor ( + { + input ? ./sources.json, + }: + let + data = + if builtins.isPath input then + # while `readFile` will throw an error anyways if the path doesn't exist, + # we still need to check beforehand because *our* error can be caught but not the one from the builtin + # *piegames sighs* + if builtins.pathExists input then + builtins.fromJSON (builtins.readFile input) + else + throw "Input path ${toString input} does not exist" + else if builtins.isAttrs input then + input else - throw "Input path ${toString input} does not exist" - else if builtins.isAttrs input then - input - else - throw "Unsupported input type ${builtins.typeOf input}, must be a path or an attrset"; - version = data.version; - in - if version == 7 then - builtins.mapAttrs (name: spec: mkFunctor (mkSource name spec)) data.pins - else - throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`" -) + throw "Unsupported input type ${builtins.typeOf input}, must be a path or an attrset"; + version = data.version; + in + if version == 7 then + builtins.mapAttrs (name: spec: mkFunctor (mkSource name spec)) data.pins + else + throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`" + ); +in +sources From 085442e442770864ea41952c198b088a44980ad2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 15 Jan 2026 21:32:17 +0100 Subject: [PATCH 037/126] vanadium/overlay: remove xclip patch Revert this if the error persists. --- nix/configurations/vanadium/overlay.nix | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/nix/configurations/vanadium/overlay.nix b/nix/configurations/vanadium/overlay.nix index 169bf13b..4fcc6c76 100644 --- a/nix/configurations/vanadium/overlay.nix +++ b/nix/configurations/vanadium/overlay.nix @@ -16,18 +16,6 @@ infuse { ./patches/helix/W-as-write.patch ]; - # TODO: - # pinned branch of https://github.com/astrand/xclip/tree/xerror - # use this until #43 gets resolved properly - xclip.__output.src = - _: - final.fetchFromGitHub { - owner = "astrand"; - repo = "xclip"; - rev = "2c3b811002b35d3be7f39cc1145dd06bdb32e31c"; - hash = "sha256-hHbq97GTKiRw8LZa/LY4LUOFOd/5H4+S+NR0BJfcu6M="; - }; - fcitx5.__output.cmakeFlags.__append = [ (lib.cmakeFeature "ENABLE_EMOJI" "Off") (lib.cmakeFeature "ENABLE_WAYLAND" "Off") From daf4d2901ebcbdc2cea2771b7942a22d1edbe855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 15 Jan 2026 21:33:06 +0100 Subject: [PATCH 038/126] overlays/pin-emacs28: drop I suspect that agda toolchain has moved on and I can use a newer emacs --- nix/configurations/vanadium.nix | 3 --- nix/configurations/vanadium/home/programs.nix | 4 ---- nix/overlays/pin-emacs28.nix | 6 ------ 3 files changed, 13 deletions(-) delete mode 100644 nix/overlays/pin-emacs28.nix diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index d8f2f12c..20037a04 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -64,9 +64,6 @@ in ./vanadium/overlay.nix ./vanadium/kernel-overlay.nix - # removed, but I need it for PLFA! - ../overlays/pin-emacs28.nix - # use lix everywhere and wrap it with nom ../overlays/lix.nix ../overlays/nix-monitored.nix diff --git a/nix/configurations/vanadium/home/programs.nix b/nix/configurations/vanadium/home/programs.nix index 2f1b390f..a4d1d533 100644 --- a/nix/configurations/vanadium/home/programs.nix +++ b/nix/configurations/vanadium/home/programs.nix @@ -118,10 +118,6 @@ enable = true; defaultEditor = true; }; - emacs = { - enable = true; - package = pkgs.unsafe-emacs28; - }; lazygit.enable = true; fish = { enable = true; diff --git a/nix/overlays/pin-emacs28.nix b/nix/overlays/pin-emacs28.nix deleted file mode 100644 index 11f1ed50..00000000 --- a/nix/overlays/pin-emacs28.nix +++ /dev/null @@ -1,6 +0,0 @@ -let - sources = import ../../npins; -in -_: _: { - unsafe-emacs28 = (import sources.pin-emacs28 { }).emacs; -} From a8e5776854b7c86fba543a4177ab2161118a6e41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 15 Jan 2026 21:34:17 +0100 Subject: [PATCH 039/126] vanadium: remove fcitx5-table-extra patch --- nix/configurations/vanadium.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 20037a04..3221dcd8 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -54,7 +54,6 @@ in ../overlays/wired-notify.nix ../overlays/wallpapers.nix ../overlays/nil.nix - ../overlays/fcitx5-table-extra-taiwanese.nix ../overlays/ghostty-dev.nix ../overlays/npins.nix From 23ec902debf1b86304faf9b2813170c80c11450e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 15 Jan 2026 21:35:36 +0100 Subject: [PATCH 040/126] overlays/pin-isabelle-2023: drop --- nix/overlays/pin-isabelle-2023.nix | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 nix/overlays/pin-isabelle-2023.nix diff --git a/nix/overlays/pin-isabelle-2023.nix b/nix/overlays/pin-isabelle-2023.nix deleted file mode 100644 index c5cbab6f..00000000 --- a/nix/overlays/pin-isabelle-2023.nix +++ /dev/null @@ -1,7 +0,0 @@ -let - sources = import ../../npins; -in -_: _: { - # Isabelle version 2023 - isabelle-2023 = (import sources.pin-isabelle { }).isabelle; -} From 3d91894fbba8f3c4dfc210ad82869d0b9a10c48b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 15 Jan 2026 21:35:46 +0100 Subject: [PATCH 041/126] overlays/pin-wireshark: drop --- nix/overlays/pin-wireshark.nix | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 nix/overlays/pin-wireshark.nix diff --git a/nix/overlays/pin-wireshark.nix b/nix/overlays/pin-wireshark.nix deleted file mode 100644 index e1708117..00000000 --- a/nix/overlays/pin-wireshark.nix +++ /dev/null @@ -1,8 +0,0 @@ -let - sources = import ../../npins; -in -_: _: { - # Wireshark bug - # https://gitlab.com/wireshark/wireshark/-/issues/19574 - inherit (import sources.pin-wireshark { }) wireshark; -} From 810a3956103a8180702d8853a3a87f336378b9e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 15 Jan 2026 21:41:52 +0100 Subject: [PATCH 042/126] tree-wide: remove nix-monitored on headless hosts --- nix/configurations/hetzner_benchmark.nix | 1 - nix/configurations/hydrogen.nix | 1 - 2 files changed, 2 deletions(-) diff --git a/nix/configurations/hetzner_benchmark.nix b/nix/configurations/hetzner_benchmark.nix index 515bfd3a..af9baca1 100644 --- a/nix/configurations/hetzner_benchmark.nix +++ b/nix/configurations/hetzner_benchmark.nix @@ -40,7 +40,6 @@ in # use lix everywhere and wrap it with nom ../overlays/lix.nix - ../overlays/nix-monitored.nix ]; }; diff --git a/nix/configurations/hydrogen.nix b/nix/configurations/hydrogen.nix index 2cafb757..7bc9620a 100644 --- a/nix/configurations/hydrogen.nix +++ b/nix/configurations/hydrogen.nix @@ -45,7 +45,6 @@ in # use lix everywhere and wrap it with nom ../overlays/lix.nix - ../overlays/nix-monitored.nix ]; }; From 5a296c6e97c4912a2a12f12fdd6a5562ac44f580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 15 Jan 2026 23:57:15 +0100 Subject: [PATCH 043/126] overlays/iosevka-term: always build iosevka term --- nix/configurations/vanadium.nix | 2 +- .../{iosevka.nix => iosevka-term.nix} | 49 +++++++++++-------- 2 files changed, 30 insertions(+), 21 deletions(-) rename nix/overlays/{iosevka.nix => iosevka-term.nix} (91%) diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 3221dcd8..2f4bec34 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -57,7 +57,7 @@ in ../overlays/ghostty-dev.nix ../overlays/npins.nix - ../overlays/iosevka.nix + ../overlays/iosevka-term.nix ../packages/overlay.nix ./vanadium/overlay.nix diff --git a/nix/overlays/iosevka.nix b/nix/overlays/iosevka-term.nix similarity index 91% rename from nix/overlays/iosevka.nix rename to nix/overlays/iosevka-term.nix index a22bf34b..e8068820 100644 --- a/nix/overlays/iosevka.nix +++ b/nix/overlays/iosevka-term.nix @@ -1,29 +1,19 @@ -final: prev: rec { - nerd-fonts = - let - mkNerdFont = final.callPackage ../lib/mkNerdFont.nix { }; - in - prev.nerd-fonts - // { - iosevka = mkNerdFont { - font = iosevka; - patcherArgs = [ - "--complete" - "--careful" - "--name {/.}-NFM" - "--mono" - ]; - }; - }; - - iosevka = prev.iosevka.override { +final: prev: +let + iosevka-term = prev.iosevka.override { + # This changes pname which changes what the outputted buildPlan name is. + # Stupid API set = ""; # Guide: https://github.com/be5invis/Iosevka/blob/main/doc/custom-build.md privateBuildPlan = { family = "Iosevka"; serifs = "sans"; - spacing = "normal"; + + # Iosevka + Ghostty makes "…" display in a odd way. + # We use "term" width to avoid this. + # https://github.com/ghostty-org/ghostty/discussions/10335 + spacing = "term"; # Otherwise kitty behaves funny with ligature # noLigation = true; @@ -171,4 +161,23 @@ final: prev: rec { ]; }; }; + + mkNerdFont = final.callPackage ../lib/mkNerdFont.nix { }; + iosevka-term-nerd = mkNerdFont { + font = iosevka-term; + patcherArgs = [ + "--complete" + "--careful" + "--name {/.}-NFM" + "--mono" + ]; + }; +in +{ + inherit iosevka-term; + + nerd-fonts = prev.nerd-fonts // { + iosevka = iosevka-term-nerd; + iosevka-term = iosevka-term-nerd; + }; } From a3c02415f8b483551b6783d48ed914e866c529d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 16 Jan 2026 00:36:36 +0100 Subject: [PATCH 044/126] treewide: remove core and job count configuration --- nix/configurations/hetzner_benchmark/nixos/sane-nix.nix | 7 ------- nix/configurations/vanadium/nixos/sane-nix.nix | 7 ------- 2 files changed, 14 deletions(-) diff --git a/nix/configurations/hetzner_benchmark/nixos/sane-nix.nix b/nix/configurations/hetzner_benchmark/nixos/sane-nix.nix index d73c45e0..3419eae6 100644 --- a/nix/configurations/hetzner_benchmark/nixos/sane-nix.nix +++ b/nix/configurations/hetzner_benchmark/nixos/sane-nix.nix @@ -11,11 +11,4 @@ MemoryMax = "90%"; OOMScoreAdjust = 500; }; - - # 12 Cores, 64 GB RAM - # split into 4 jobs with 3C/16G - nix.settings = { - cores = 3; - max-jobs = 4; - }; } diff --git a/nix/configurations/vanadium/nixos/sane-nix.nix b/nix/configurations/vanadium/nixos/sane-nix.nix index 83088437..83c080d8 100644 --- a/nix/configurations/vanadium/nixos/sane-nix.nix +++ b/nix/configurations/vanadium/nixos/sane-nix.nix @@ -10,11 +10,4 @@ MemoryMax = "90%"; OOMScoreAdjust = 500; }; - - # 16 Cores, 32 GB RAM - # split into 4 jobs with 4C/8G - nix.settings = { - cores = 2; - max-jobs = 4; - }; } From bcd45dddf5cd00e0bf9e4a12f68f344e1b69b629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 16 Jan 2026 09:49:22 +0100 Subject: [PATCH 045/126] overlays/iosevka-term: trace useful message and override iosevka package --- nix/overlays/iosevka-term.nix | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/nix/overlays/iosevka-term.nix b/nix/overlays/iosevka-term.nix index e8068820..ddfcfcbb 100644 --- a/nix/overlays/iosevka-term.nix +++ b/nix/overlays/iosevka-term.nix @@ -1,5 +1,7 @@ final: prev: let + inherit (final) lib; + iosevka-term = prev.iosevka.override { # This changes pname which changes what the outputted buildPlan name is. # Stupid API @@ -172,12 +174,18 @@ let "--mono" ]; }; + + warnActuallyTerm = lib.warn '' + The overlay "${toString ./iosevka-term.nix}" is used, you are actually using iosevka-term. + There is no difference between iosevka and iosevka term when using this overlay. + ''; in { - inherit iosevka-term; + iosevka = warnActuallyTerm iosevka-term; + iosevka-term = iosevka-term; nerd-fonts = prev.nerd-fonts // { - iosevka = iosevka-term-nerd; + iosevka = warnActuallyTerm iosevka-term-nerd; iosevka-term = iosevka-term-nerd; }; } From a12fabd33de2a98c29c299dbd47d11c195a7c4db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 16 Jan 2026 09:55:43 +0100 Subject: [PATCH 046/126] Revert "vanadium/overlay: remove xclip patch" The crashing bug can still be sometimes triggered. Let's keep using this branch for now. --- nix/configurations/vanadium/overlay.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/nix/configurations/vanadium/overlay.nix b/nix/configurations/vanadium/overlay.nix index 4fcc6c76..169bf13b 100644 --- a/nix/configurations/vanadium/overlay.nix +++ b/nix/configurations/vanadium/overlay.nix @@ -16,6 +16,18 @@ infuse { ./patches/helix/W-as-write.patch ]; + # TODO: + # pinned branch of https://github.com/astrand/xclip/tree/xerror + # use this until #43 gets resolved properly + xclip.__output.src = + _: + final.fetchFromGitHub { + owner = "astrand"; + repo = "xclip"; + rev = "2c3b811002b35d3be7f39cc1145dd06bdb32e31c"; + hash = "sha256-hHbq97GTKiRw8LZa/LY4LUOFOd/5H4+S+NR0BJfcu6M="; + }; + fcitx5.__output.cmakeFlags.__append = [ (lib.cmakeFeature "ENABLE_EMOJI" "Off") (lib.cmakeFeature "ENABLE_WAYLAND" "Off") From 261ffa3ff1cac512e8e35e10e72f8fde72a879e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 16 Jan 2026 12:18:57 +0100 Subject: [PATCH 047/126] nvim/leap: fix plugin binding --- .config/nvim/plugin/leap.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/nvim/plugin/leap.lua b/.config/nvim/plugin/leap.lua index 14ea952b..d977c684 100644 --- a/.config/nvim/plugin/leap.lua +++ b/.config/nvim/plugin/leap.lua @@ -1,3 +1,3 @@ local leap = require("leap") -vim.keymap.set({ "n", "x", "o" }, "s", function() leap.leap() end) +vim.keymap.set({ "n", "x", "o" }, "s", function() leap.leap { backward = false } end) vim.keymap.set("n", "S", function() leap.leap { backward = true } end) From bab66207cc55dbc647d5935249c22a370473e197 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 16 Jan 2026 16:18:32 +0100 Subject: [PATCH 048/126] packages/overlay: fix iosevka-term rename --- nix/packages/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/packages/default.nix b/nix/packages/default.nix index b72b05c0..71739d36 100644 --- a/nix/packages/default.nix +++ b/nix/packages/default.nix @@ -7,6 +7,6 @@ in (import sources.nixpkgs { overlays = map scopeOverlay [ (import ./overlay.nix) - (import ../overlays/iosevka.nix) + (import ../overlays/iosevka-term.nix) ]; }).export From ec4d17cf83c09a3c092b82256bfd7a702b8f53ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 16 Jan 2026 16:20:57 +0100 Subject: [PATCH 049/126] packages/ruler: update --- nix/packages/by-name/ruler/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nix/packages/by-name/ruler/package.nix b/nix/packages/by-name/ruler/package.nix index e7de03a8..98020c21 100644 --- a/nix/packages/by-name/ruler/package.nix +++ b/nix/packages/by-name/ruler/package.nix @@ -13,8 +13,8 @@ let domain = "git.confusedcompiler.org"; owner = "leana8959"; repo = "ruler"; - rev = "addc8a75dcfd64d5f40516f2526210c8fc163e70"; - hash = "sha256-6dnZgkeG0p2O4ROtrFoG+jUmAQPWKHodKzUdVrBgcIM="; + rev = "1740f6d632142e97b1a8c8157fb018039631eabf"; + hash = "sha256-HNz4XJ26HXWc75/JE/Rx1TwpInCk978eQRh+DZS12CQ="; }) { }; cabalOverrides = o: { From e5c88e59108e56a429c8ad2214b967fc192d02d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 16 Jan 2026 22:39:16 +0100 Subject: [PATCH 050/126] vanadium: +helix --- nix/configurations/vanadium/home/programs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/configurations/vanadium/home/programs.nix b/nix/configurations/vanadium/home/programs.nix index a4d1d533..32db4e26 100644 --- a/nix/configurations/vanadium/home/programs.nix +++ b/nix/configurations/vanadium/home/programs.nix @@ -41,7 +41,7 @@ pkgs.macchanger # The file picker is not ergonomic enough, sadly - # pkgs.helix + pkgs.helix # pkgs.nushell pkgs.ruler From 87cb9444648fd455b4f345d314ab47f72f0a5053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 17 Jan 2026 18:48:28 +0100 Subject: [PATCH 051/126] npins: update sources --- npins/sources.json | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/npins/sources.json b/npins/sources.json index 1708e121..c96e48d1 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -70,9 +70,9 @@ }, "branch": "main", "submodules": false, - "revision": "17da13840dc71ba36b0deb2c0e85097840630ad5", - "url": "https://github.com/ghostty-org/ghostty/archive/17da13840dc71ba36b0deb2c0e85097840630ad5.tar.gz", - "hash": "sha256-w0yAZdnSyY6FY/R8e/PuXGUOXmlhwO/bYZewh6NDysU=" + "revision": "9fb03ba55c9e53901193187d5c43341f5b1b430d", + "url": "https://github.com/ghostty-org/ghostty/archive/9fb03ba55c9e53901193187d5c43341f5b1b430d.tar.gz", + "hash": "sha256-TEfSd6oR4YCc1BVr9pOxjTJASMswKiGfEC2kRA3aTyI=" }, "hategroup-dnsbl": { "type": "Git", @@ -97,9 +97,9 @@ }, "branch": "release-25.11", "submodules": false, - "revision": "82fb7dedaad83e5e279127a38ef410bcfac6d77c", - "url": "https://github.com/nix-community/home-manager/archive/82fb7dedaad83e5e279127a38ef410bcfac6d77c.tar.gz", - "hash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=" + "revision": "2a63d0e9d2c72ac4d4150ebb242cf8d86f488c8c", + "url": "https://github.com/nix-community/home-manager/archive/2a63d0e9d2c72ac4d4150ebb242cf8d86f488c8c.tar.gz", + "hash": "sha256-vRV1dWJOCpCal3PRr86wE2WTOMfAhTu6G7bSvOsryUo=" }, "infuse": { "type": "GitRelease", @@ -154,9 +154,9 @@ }, "branch": "master", "submodules": false, - "revision": "40b1a28dce561bea34858287fbb23052c3ee63fe", - "url": "https://github.com/NixOS/nixos-hardware/archive/40b1a28dce561bea34858287fbb23052c3ee63fe.tar.gz", - "hash": "sha256-ljDBUDpD1Cg5n3mJI81Hz5qeZAwCGxon4kQW3Ho3+6Q=" + "revision": "cce68f4a54fa4e3d633358364477f5cc1d782440", + "url": "https://github.com/NixOS/nixos-hardware/archive/cce68f4a54fa4e3d633358364477f5cc1d782440.tar.gz", + "hash": "sha256-IRPmIOV2tPwxbhP/I9M5AmwhTC0lMPtoPStC+8T6xl0=" }, "nixpkgs": { "type": "Git", @@ -167,9 +167,9 @@ }, "branch": "nixos-25.11-small", "submodules": false, - "revision": "ff8a91eb93e8abfceed1957330b54e54e99c747a", - "url": "https://github.com/nixos/nixpkgs/archive/ff8a91eb93e8abfceed1957330b54e54e99c747a.tar.gz", - "hash": "sha256-2romCPCEPJJxPjrG5t/McuMITLtuZNd16LHPKzkIBEg=" + "revision": "3fb71110bad6aa250a59f23a6ed51c2a99747b6f", + "url": "https://github.com/nixos/nixpkgs/archive/3fb71110bad6aa250a59f23a6ed51c2a99747b6f.tar.gz", + "hash": "sha256-8MKveNU8UChYisd8JpYsJWIHTh4A1X1wAbjTxWgA0RE=" }, "npins": { "type": "GitRelease", @@ -196,9 +196,9 @@ }, "branch": "main", "submodules": false, - "revision": "9aa5514ef92b980580f90029447ecc732851e2a9", - "url": "https://github.com/nix-community/nur/archive/9aa5514ef92b980580f90029447ecc732851e2a9.tar.gz", - "hash": "sha256-QLPb6DEwSjKqA0bVgycAlZz12BUvKjIwNbs28S3Jprc=" + "revision": "1e87169b18457a22e6ef372789e48cd86b81e2ba", + "url": "https://github.com/nix-community/nur/archive/1e87169b18457a22e6ef372789e48cd86b81e2ba.tar.gz", + "hash": "sha256-kW4mzy7wzuW+od/o3Gfg5ONO7nb7U7uUxvEkAyFd9cY=" }, "pin-emacs28": { "type": "Git", @@ -361,9 +361,9 @@ }, "branch": "main", "submodules": false, - "revision": "5c9624f3d0176727284678aebf677770dd1375b2", - "url": "https://github.com/0xc000022070/zen-browser-flake/archive/5c9624f3d0176727284678aebf677770dd1375b2.tar.gz", - "hash": "sha256-6M+vlMGur7UgzkHucgA61pjq3gtjGH9OywxJM/KHL8I=" + "revision": "76bbc35c59419b8b0616fb779ce5600e85edab11", + "url": "https://github.com/0xc000022070/zen-browser-flake/archive/76bbc35c59419b8b0616fb779ce5600e85edab11.tar.gz", + "hash": "sha256-+LC0wOiliUXbIj6zT2hCoOQ0zn33BD2NxGoy0QqP3Eo=" } }, "version": 7 From b15abf8bdbae508fe02b6edcf2acc658106cccd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 17 Jan 2026 19:42:13 +0100 Subject: [PATCH 052/126] Revert "home/git: disable git-lfs" This reverts commit fdc88e415f2ec3a5b592be26a945d197d68fc15c. --- nix/homeModules/common/git.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nix/homeModules/common/git.nix b/nix/homeModules/common/git.nix index 9074ce48..9b694bb4 100644 --- a/nix/homeModules/common/git.nix +++ b/nix/homeModules/common/git.nix @@ -5,6 +5,9 @@ }: { # git plugins + programs.git = { + lfs.enable = true; + }; programs.patdiff = { enable = lib.mkDefault true; enableGitIntegration = lib.mkDefault true; From 6ae3f6932d7d40c6393fe27dd5f5a0471692b5c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 17 Jan 2026 21:48:57 +0100 Subject: [PATCH 053/126] home/gpg: remove duplicated key --- nix/homeModules/common/gpg.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/nix/homeModules/common/gpg.nix b/nix/homeModules/common/gpg.nix index 916db466..23586a28 100644 --- a/nix/homeModules/common/gpg.nix +++ b/nix/homeModules/common/gpg.nix @@ -36,10 +36,6 @@ user = "jappeace"; hash = "sha256-wJ4hiE7M7dcEMaE8waNZEi+tybpVIsFzoeDJhIIaLhk="; } - { - user = "gautaz"; - hash = "sha256-j0I9l8uKfzKNrc2qveFi5mkRppxL36+BUEqvFPs6vqA="; - } { user = "confusedkernel"; hash = "sha256-9DdtDAcv+2Z0jJMSLAXbp5ne8uHYj5V/lNGi0kKSdv4="; From fd5e0464062290d60e83473d72a4849b981fd277 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 17 Jan 2026 21:52:45 +0100 Subject: [PATCH 054/126] home/gpg: reduce trust of other people --- nix/homeModules/common/gpg.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nix/homeModules/common/gpg.nix b/nix/homeModules/common/gpg.nix index 23586a28..2d969411 100644 --- a/nix/homeModules/common/gpg.nix +++ b/nix/homeModules/common/gpg.nix @@ -5,13 +5,17 @@ gpg-agent.pinentry.package = pkgs.pinentry-tty; }; + # Fun video btw + # https://media.ccc.de/v/39c3-to-sign-or-not-to-sign-practical-vulnerabilities-i programs.gpg.publicKeys = let fromUrl = { url, hash, - trust ? 5, + # https://security.stackexchange.com/a/69089 + # One lower than ultimate (introducer in the web of trust) is good enough. + trust ? 4, }: { source = pkgs.fetchurl { inherit url hash; }; @@ -27,6 +31,7 @@ { user = "leana8959"; hash = "sha256-Y+v/8bLkyUIe4vjToChQP3ChPxRV/DqI72OTsx6F0oo="; + trust = 5; } { user = "vanilla-extracts"; From 294868e5226f1863a8c7a0a3598cd487e194739c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 17 Jan 2026 23:57:27 +0100 Subject: [PATCH 055/126] vanadium: configure remote builders --- nix/configurations/vanadium.nix | 1 + .../vanadium/nixos/remote-builders.nix | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 nix/configurations/vanadium/nixos/remote-builders.nix diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 2f4bec34..99d9c96d 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -94,6 +94,7 @@ in ./vanadium/nixos/input.nix ./vanadium/nixos/misc.nix + ./vanadium/nixos/remote-builders.nix ./vanadium/nixos/display.nix ./vanadium/nixos/gui.nix diff --git a/nix/configurations/vanadium/nixos/remote-builders.nix b/nix/configurations/vanadium/nixos/remote-builders.nix new file mode 100644 index 00000000..87a21592 --- /dev/null +++ b/nix/configurations/vanadium/nixos/remote-builders.nix @@ -0,0 +1,29 @@ +let + supportedFeatures = [ + "nixos-test" + "benchmark" + "big-parallel" + "kvm" + ]; +in +{pkgs, ...}: +{ + nix.buildMachines = [ + # NOTE: these hosts need to be put in the .ssh/config of root. + # https://wiki.nixos.org/wiki/Distributed_build#Recommended_setup:_multi-user_Nix_local_%E2%80%93%3E_multi-user_Nix_remote + { + hostName = "pancake"; + sshUser = "remotebuild"; + speedFactor = 2; + system = pkgs.stdenv.hostPlatform.system; + inherit supportedFeatures; + } + { + hostName = "hetzner_benchmark"; + sshUser = "remotebuild"; + speedFactor = 12; + system = pkgs.stdenv.hostPlatform.system; + inherit supportedFeatures; + } + ]; +} From c43cd8b595b12cb883097a292dd95cf79bd882c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 18 Jan 2026 00:08:19 +0100 Subject: [PATCH 056/126] vanadium: update {min,max}-free with a formula --- nix/configurations/vanadium/nixos/sane-nix.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nix/configurations/vanadium/nixos/sane-nix.nix b/nix/configurations/vanadium/nixos/sane-nix.nix index 83c080d8..bb710e8e 100644 --- a/nix/configurations/vanadium/nixos/sane-nix.nix +++ b/nix/configurations/vanadium/nixos/sane-nix.nix @@ -1,8 +1,11 @@ # Protect my system from running out of storage or memory +let + totalStorage = 930; +in { nix.settings = { - min-free = 50 * 1024 * 1024 * 1024; - max-free = 100 * 1024 * 1024 * 1024; + min-free = builtins.ceil (totalStorage * 0.2) * 1024 * 1024 * 1024; + max-free = builtins.ceil (totalStorage * 0.3) * 1024 * 1024 * 1024; }; systemd.services.nix-daemon.serviceConfig = { From 3acb95f7455f8ccdd21021242559b6bd7a2fa468 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 18 Jan 2026 00:10:07 +0100 Subject: [PATCH 057/126] hetzner_benchmark: update {min,max}-free with a formula --- nix/configurations/hetzner_benchmark/nixos/sane-nix.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nix/configurations/hetzner_benchmark/nixos/sane-nix.nix b/nix/configurations/hetzner_benchmark/nixos/sane-nix.nix index 3419eae6..54f76994 100644 --- a/nix/configurations/hetzner_benchmark/nixos/sane-nix.nix +++ b/nix/configurations/hetzner_benchmark/nixos/sane-nix.nix @@ -1,9 +1,11 @@ # Protect my system from running out of storage or memory +let + totalStorage = 500; +in { - # 500GB Storage nix.settings = { - min-free = 50 * 1024 * 1024 * 1024; - max-free = 100 * 1024 * 1024 * 1024; + min-free = builtins.ceil (totalStorage * 0.2) * 1024 * 1024 * 1024; + max-free = builtins.ceil (totalStorage * 0.3) * 1024 * 1024 * 1024; }; systemd.services.nix-daemon.serviceConfig = { From 0798147e92812dacc07fef98176be11ca1103d0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 18 Jan 2026 01:05:15 +0100 Subject: [PATCH 058/126] home/fish: wrap "nix {build,shell}" with nom if possible --- nix/homeModules/common/fish/functions/nix.fish | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 nix/homeModules/common/fish/functions/nix.fish diff --git a/nix/homeModules/common/fish/functions/nix.fish b/nix/homeModules/common/fish/functions/nix.fish new file mode 100644 index 00000000..488220e9 --- /dev/null +++ b/nix/homeModules/common/fish/functions/nix.fish @@ -0,0 +1,11 @@ +function nix + if [ $(count $argv) -lt 1 ] + command nix $argv + end + and if [ $argv[1] = "build" -o $argv[1] = "shell" ] && type -q nom + nom $argv + else + command nix $argv + end +end + From 98125368d3eebb6baf4e4f7aa781a016137dd3c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 18 Jan 2026 01:05:53 +0100 Subject: [PATCH 059/126] home/fish: specify --command $SHELL in alias --- nix/homeModules/common/fish/aliasesAbbrs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/homeModules/common/fish/aliasesAbbrs.nix b/nix/homeModules/common/fish/aliasesAbbrs.nix index 863510f6..8affff1d 100644 --- a/nix/homeModules/common/fish/aliasesAbbrs.nix +++ b/nix/homeModules/common/fish/aliasesAbbrs.nix @@ -7,7 +7,7 @@ programs.fish = { shellAbbrs = lib.mkMerge [ (lib.mkIf pkgs.stdenv.isLinux { - "," = "nix-shell -p"; + "," = "nix-shell --command $SHELL -p"; }) ]; From 8eb2603a8fee85b29778198f2a7b4e949fd5d35d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 18 Jan 2026 18:22:42 +0100 Subject: [PATCH 060/126] vanadium/overlay: patch btop waiting for upstream response Related to: https://github.com/NixOS/nixpkgs/issues/481249 --- nix/configurations/vanadium/overlay.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nix/configurations/vanadium/overlay.nix b/nix/configurations/vanadium/overlay.nix index 169bf13b..a73ecd0c 100644 --- a/nix/configurations/vanadium/overlay.nix +++ b/nix/configurations/vanadium/overlay.nix @@ -16,6 +16,14 @@ infuse { ./patches/helix/W-as-write.patch ]; + btop.__output.patches.__append = [ + (final.fetchpatch { + name = "btrfs-io-graph"; + url = "https://patch-diff.githubusercontent.com/raw/aristocratos/btop/pull/1285.patch"; + hash = "sha256-za6B1EiOV1JqKMJwrNQo43RKChw+C4mmC8pcoxLLau4="; + }) + ]; + # TODO: # pinned branch of https://github.com/astrand/xclip/tree/xerror # use this until #43 gets resolved properly From 963b1afacdfaf11b27287e887536d4a29bfb51d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 18 Jan 2026 18:23:56 +0100 Subject: [PATCH 061/126] Revert "home/btop: disable io mode for disks" This reverts commit c33bef854b4cde5ace7b2212f6672de9975b7c43. --- nix/homeModules/common/btop/btop.conf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nix/homeModules/common/btop/btop.conf b/nix/homeModules/common/btop/btop.conf index 626f09c7..c1973464 100644 --- a/nix/homeModules/common/btop/btop.conf +++ b/nix/homeModules/common/btop/btop.conf @@ -184,8 +184,7 @@ disk_free_priv = False show_io_stat = True #* Toggles io mode for disks, showing big graphs for disk read/write speeds. -# This doesn't seem to have an effect when using btrfs. I'd rather see the disk usage. -io_mode = False +io_mode = True #* Set to True to show combined read/write io graphs in io mode. io_graph_combined = False From 0a34f6cc7dc2682a452a1b51eba510d5afa9b526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 18 Jan 2026 22:23:31 +0100 Subject: [PATCH 062/126] vanadium: +lsr --- nix/configurations/vanadium/home/programs.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nix/configurations/vanadium/home/programs.nix b/nix/configurations/vanadium/home/programs.nix index 32db4e26..74c8bed8 100644 --- a/nix/configurations/vanadium/home/programs.nix +++ b/nix/configurations/vanadium/home/programs.nix @@ -20,6 +20,7 @@ home.packages = [ pkgs.ghc # my favorite calculator + pkgs.lsr # fast ls with io_uring pkgs.nmap pkgs.stow pkgs.zip From 3133e11a96421c209e073d87f9d789fd69dc19da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 18 Jan 2026 22:24:42 +0100 Subject: [PATCH 063/126] fish: wrap ls command --- nix/homeModules/common/fish/functions/ls.fish | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 nix/homeModules/common/fish/functions/ls.fish diff --git a/nix/homeModules/common/fish/functions/ls.fish b/nix/homeModules/common/fish/functions/ls.fish new file mode 100644 index 00000000..785ac319 --- /dev/null +++ b/nix/homeModules/common/fish/functions/ls.fish @@ -0,0 +1,7 @@ +function ls + if type -q lsr + command lsr $argv + else + command ls $argv + end +end From 9c728011bee4e3df385b227c9f5c548f9ea317f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Tue, 20 Jan 2026 09:43:33 +0100 Subject: [PATCH 064/126] networks: simplify documented command --- nix/networks/wpa_supplicant-compat.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/networks/wpa_supplicant-compat.nix b/nix/networks/wpa_supplicant-compat.nix index 2f57b267..b8bffae8 100644 --- a/nix/networks/wpa_supplicant-compat.nix +++ b/nix/networks/wpa_supplicant-compat.nix @@ -2,7 +2,7 @@ # This loads the list of networks as a NixOS wpa_supplicant compatible attrset # # View the example config -# less $(nix-build --no-out-link -E '(import {}).wpa_supplicant')/share/doc/wpa_supplicant/wpa_supplicant.conf.example +# less $(nix-build --no-out-link '' -A 'wpa_supplicant')/share/doc/wpa_supplicant/wpa_supplicant.conf.example let sources = import ../../npins; lib = import (sources.nixpkgs + "/lib"); From f772e03821171bfb1be47ffea6174e23d9990771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Tue, 20 Jan 2026 15:28:17 +0100 Subject: [PATCH 065/126] home/starship: drop min time to 2 seconds --- nix/homeModules/common/starship/starship.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/homeModules/common/starship/starship.toml b/nix/homeModules/common/starship/starship.toml index 88a7587d..a1e10ee1 100644 --- a/nix/homeModules/common/starship/starship.toml +++ b/nix/homeModules/common/starship/starship.toml @@ -108,7 +108,7 @@ style = "blue" #################### Right hand side #################### [cmd_duration] -min_time = 60_000 +min_time = 2_000 show_milliseconds = true style = 'blue' format = '([$duration]($style) )' From 1c8df62dfe38be824acd2bd819e52c27e372a49f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Tue, 20 Jan 2026 15:55:25 +0100 Subject: [PATCH 066/126] vanadium: update wallpaper --- nix/configurations/vanadium/home/misc.nix | 2 +- npins/sources.json | 36 +++++++++++------------ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/nix/configurations/vanadium/home/misc.nix b/nix/configurations/vanadium/home/misc.nix index 8337a00b..2e3c2719 100644 --- a/nix/configurations/vanadium/home/misc.nix +++ b/nix/configurations/vanadium/home/misc.nix @@ -31,7 +31,7 @@ home.file = { ".xscreensaver".source = "${./xscreensaver/.xscreensaver}"; - ".wallpaper".source = "${pkgs.wallpapers.packages.knights_of_guinevere.fixing_gwen}"; + ".wallpaper".source = "${pkgs.wallpapers.packages.serial_experiments_lain.lain_windows_error}"; }; xdg.configFile = { "xmonad".source = "${./xmonad}"; diff --git a/npins/sources.json b/npins/sources.json index c96e48d1..8a5f78dc 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -70,9 +70,9 @@ }, "branch": "main", "submodules": false, - "revision": "9fb03ba55c9e53901193187d5c43341f5b1b430d", - "url": "https://github.com/ghostty-org/ghostty/archive/9fb03ba55c9e53901193187d5c43341f5b1b430d.tar.gz", - "hash": "sha256-TEfSd6oR4YCc1BVr9pOxjTJASMswKiGfEC2kRA3aTyI=" + "revision": "9ec6e9ea9a8a590fd906a0d216133d949581f54b", + "url": "https://github.com/ghostty-org/ghostty/archive/9ec6e9ea9a8a590fd906a0d216133d949581f54b.tar.gz", + "hash": "sha256-QcgtrDx4Efv8XKPO9YZ9Zu90xsFsrw5zmj9ugJVh+nw=" }, "hategroup-dnsbl": { "type": "Git", @@ -154,9 +154,9 @@ }, "branch": "master", "submodules": false, - "revision": "cce68f4a54fa4e3d633358364477f5cc1d782440", - "url": "https://github.com/NixOS/nixos-hardware/archive/cce68f4a54fa4e3d633358364477f5cc1d782440.tar.gz", - "hash": "sha256-IRPmIOV2tPwxbhP/I9M5AmwhTC0lMPtoPStC+8T6xl0=" + "revision": "d447553bcbc6a178618d37e61648b19e744370df", + "url": "https://github.com/NixOS/nixos-hardware/archive/d447553bcbc6a178618d37e61648b19e744370df.tar.gz", + "hash": "sha256-qgGq7CfrYKc3IBYQ7qp0Z/ZXndQVC5Bj0N8HW9mS2rM=" }, "nixpkgs": { "type": "Git", @@ -167,9 +167,9 @@ }, "branch": "nixos-25.11-small", "submodules": false, - "revision": "3fb71110bad6aa250a59f23a6ed51c2a99747b6f", - "url": "https://github.com/nixos/nixpkgs/archive/3fb71110bad6aa250a59f23a6ed51c2a99747b6f.tar.gz", - "hash": "sha256-8MKveNU8UChYisd8JpYsJWIHTh4A1X1wAbjTxWgA0RE=" + "revision": "43b2e61c9d09cf6c1c9c192fe6da08accc9bfb1d", + "url": "https://github.com/nixos/nixpkgs/archive/43b2e61c9d09cf6c1c9c192fe6da08accc9bfb1d.tar.gz", + "hash": "sha256-D+GLCmhxA9O69GViYl48lSvp/Dr/Ohy5/onXVPwY6rI=" }, "npins": { "type": "GitRelease", @@ -196,9 +196,9 @@ }, "branch": "main", "submodules": false, - "revision": "1e87169b18457a22e6ef372789e48cd86b81e2ba", - "url": "https://github.com/nix-community/nur/archive/1e87169b18457a22e6ef372789e48cd86b81e2ba.tar.gz", - "hash": "sha256-kW4mzy7wzuW+od/o3Gfg5ONO7nb7U7uUxvEkAyFd9cY=" + "revision": "d1b81205dfc1b37b093c272089d15c608a5d0b62", + "url": "https://github.com/nix-community/nur/archive/d1b81205dfc1b37b093c272089d15c608a5d0b62.tar.gz", + "hash": "sha256-O0XJuaGyuYDUrr/qjtQ5IjdxbaV9PNzCMvyP5SgxaX0=" }, "pin-emacs28": { "type": "Git", @@ -335,9 +335,9 @@ }, "branch": "mistress", "submodules": false, - "revision": "861a5942932820291eba572cbe251866895e3655", - "url": "https://git.confusedcompiler.org/leana8959/wallpapers/archive/861a5942932820291eba572cbe251866895e3655.tar.gz", - "hash": "sha256-Hl2j8lGIeXOLpZU5yiP0uD+cdkRI8+qrZip/EMpGGFw=" + "revision": "2ed11d34f02d86795f6d08bb3ec23e341a46a788", + "url": "https://git.confusedcompiler.org/leana8959/wallpapers/archive/2ed11d34f02d86795f6d08bb3ec23e341a46a788.tar.gz", + "hash": "sha256-fE2uKYi3yWV6h6i4ZXifux9vCOnXdYTJ7kWJUISQ3B4=" }, "wired-notify": { "type": "Git", @@ -361,9 +361,9 @@ }, "branch": "main", "submodules": false, - "revision": "76bbc35c59419b8b0616fb779ce5600e85edab11", - "url": "https://github.com/0xc000022070/zen-browser-flake/archive/76bbc35c59419b8b0616fb779ce5600e85edab11.tar.gz", - "hash": "sha256-+LC0wOiliUXbIj6zT2hCoOQ0zn33BD2NxGoy0QqP3Eo=" + "revision": "37149a5b77e8fd2b5332e8cec9edf39ca5b8e8bc", + "url": "https://github.com/0xc000022070/zen-browser-flake/archive/37149a5b77e8fd2b5332e8cec9edf39ca5b8e8bc.tar.gz", + "hash": "sha256-w10iy/aqd5LtD78NDWWG+eKGzkb+cGhAAo7PVciLbWE=" } }, "version": 7 From 7e65f2d0935ca3701c6c0643876f885badaf6db7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Tue, 20 Jan 2026 18:38:20 +0100 Subject: [PATCH 067/126] overlays/iosevka-term: don't slant # --- nix/overlays/iosevka-term.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/overlays/iosevka-term.nix b/nix/overlays/iosevka-term.nix index ddfcfcbb..1a1b26a8 100644 --- a/nix/overlays/iosevka-term.nix +++ b/nix/overlays/iosevka-term.nix @@ -33,7 +33,7 @@ let lig-plus-chain = "with-notch"; lig-single-arrow-bar = "with-notch"; lower-lambda = "tailed-turn"; - number-sign = "slanted"; + # number-sign = "slanted"; percent = "rings-continuous-slash-also-connected"; seven = "straight-serifless-crossbar"; }; From 2d6ead21457cb46b15b62352af55d4a0f8f5f1bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Tue, 20 Jan 2026 18:39:15 +0100 Subject: [PATCH 068/126] npins: update sources --- npins/sources.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/npins/sources.json b/npins/sources.json index 8a5f78dc..30a98489 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -70,9 +70,9 @@ }, "branch": "main", "submodules": false, - "revision": "9ec6e9ea9a8a590fd906a0d216133d949581f54b", - "url": "https://github.com/ghostty-org/ghostty/archive/9ec6e9ea9a8a590fd906a0d216133d949581f54b.tar.gz", - "hash": "sha256-QcgtrDx4Efv8XKPO9YZ9Zu90xsFsrw5zmj9ugJVh+nw=" + "revision": "6730afe3120bf41d3927ed715979259bf42764e2", + "url": "https://github.com/ghostty-org/ghostty/archive/6730afe3120bf41d3927ed715979259bf42764e2.tar.gz", + "hash": "sha256-V66mbZ4wI1+TDhnHNPdxfZ0QFKnZXEKNFuMgZfTqdx0=" }, "hategroup-dnsbl": { "type": "Git", @@ -196,9 +196,9 @@ }, "branch": "main", "submodules": false, - "revision": "d1b81205dfc1b37b093c272089d15c608a5d0b62", - "url": "https://github.com/nix-community/nur/archive/d1b81205dfc1b37b093c272089d15c608a5d0b62.tar.gz", - "hash": "sha256-O0XJuaGyuYDUrr/qjtQ5IjdxbaV9PNzCMvyP5SgxaX0=" + "revision": "d787c45d0224a5d8d245ad628352a192388d5357", + "url": "https://github.com/nix-community/nur/archive/d787c45d0224a5d8d245ad628352a192388d5357.tar.gz", + "hash": "sha256-GHL4HZfyIQRbDrzRJO3Xulb2SYlm+erTt/eKHmR00vs=" }, "pin-emacs28": { "type": "Git", From 5b4c35df1c41b25993f55a420664a894f186fd2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Tue, 20 Jan 2026 21:18:12 +0100 Subject: [PATCH 069/126] vanadium: -chromium --- nix/configurations/vanadium/home/programs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/configurations/vanadium/home/programs.nix b/nix/configurations/vanadium/home/programs.nix index 74c8bed8..f891b1e2 100644 --- a/nix/configurations/vanadium/home/programs.nix +++ b/nix/configurations/vanadium/home/programs.nix @@ -157,7 +157,7 @@ mouse-scroll-multiplier = 1; }; }; - chromium.enable = true; + # chromium.enable = true; }; services = { From 4932575819b40b023f2762b7f7410a030bb1430b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Wed, 21 Jan 2026 10:54:43 +0100 Subject: [PATCH 070/126] packages/ruler: update --- nix/packages/by-name/ruler/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nix/packages/by-name/ruler/package.nix b/nix/packages/by-name/ruler/package.nix index 98020c21..18a02156 100644 --- a/nix/packages/by-name/ruler/package.nix +++ b/nix/packages/by-name/ruler/package.nix @@ -13,8 +13,8 @@ let domain = "git.confusedcompiler.org"; owner = "leana8959"; repo = "ruler"; - rev = "1740f6d632142e97b1a8c8157fb018039631eabf"; - hash = "sha256-HNz4XJ26HXWc75/JE/Rx1TwpInCk978eQRh+DZS12CQ="; + rev = "0e08e66f48e6ba5483a7a39456a753581587151f"; + hash = "sha256-ay8V35FuXF5eFvWjH87PDzMSQTRALHDRBiZNdOC3gFg="; }) { }; cabalOverrides = o: { From aed2fed5a94a15a9a73659e1ff89498fd79665a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 22 Jan 2026 16:28:44 +0100 Subject: [PATCH 071/126] nvim/telescope: sort buffer picker --- .config/nvim/plugin/telescope.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.config/nvim/plugin/telescope.lua b/.config/nvim/plugin/telescope.lua index 5cf24d54..733066de 100644 --- a/.config/nvim/plugin/telescope.lua +++ b/.config/nvim/plugin/telescope.lua @@ -52,6 +52,9 @@ telescope.setup { live_grep = { layout_config = { height = 0.7 }, }, + buffers = { + sort_lastused = true, + }, resume = { initial_mode = "normal", }, From 4260ebfda0d65f7fad24874af2ead06bc9c17ad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 22 Jan 2026 16:50:18 +0100 Subject: [PATCH 072/126] packages/ai_blocklist: add PR as patches --- nix/packages/by-name/ai_blocklist/package.nix | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/nix/packages/by-name/ai_blocklist/package.nix b/nix/packages/by-name/ai_blocklist/package.nix index d0b324e9..a5ade514 100644 --- a/nix/packages/by-name/ai_blocklist/package.nix +++ b/nix/packages/by-name/ai_blocklist/package.nix @@ -1,5 +1,6 @@ { fetchFromGitHub, + fetchpatch, stdenvNoCC, lib, }: @@ -14,6 +15,31 @@ stdenvNoCC.mkDerivation (finalAttrs: { hash = "sha256-p3wfR28DH6V8BHn9DT10d09Yq3mdbBecWwlR1CdDYUA="; }; + patches = + let + mkPRPatch = + { number, hash }: + fetchpatch { + name = "ai-blocklist-patch-PR${toString number}"; + url = "https://patch-diff.githubusercontent.com/raw/laylavish/uBlockOrigin-HUGE-AI-Blocklist/pull/${toString number}.patch"; + inherit hash; + }; + in + map mkPRPatch [ + { + number = 286; + hash = "sha256-ijkOCtHCmiSUTpVfGIumPijr8xscRDBTtu7XfTMRiXY="; + } + { + number = 300; + hash = "sha256-oso0e1+CM7hmglNZpFgaz51OU2Dhuuo7mXayTbva+vY="; + } + { + number = 324; + hash = "sha256-/FFPFZpIQSPE7XXeFEcmVv8g8wg5JFIgKoYUTthLg5A="; + } + ]; + # Build takes no time preferLocalBuild = true; allowSubstitutes = false; From acab4af8090c32f626ab48577e7a171bad88bb32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 22 Jan 2026 17:46:33 +0100 Subject: [PATCH 073/126] vanadium: blahaj boot animation --- nix/configurations/vanadium/nixos/misc.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/nix/configurations/vanadium/nixos/misc.nix b/nix/configurations/vanadium/nixos/misc.nix index 0f757beb..5b6348c7 100644 --- a/nix/configurations/vanadium/nixos/misc.nix +++ b/nix/configurations/vanadium/nixos/misc.nix @@ -1,4 +1,4 @@ -{ config, ... }: +{ config, pkgs, ... }: { system.stateVersion = "24.11"; @@ -15,6 +15,12 @@ "pcie_aspm=off" ]; + boot.plymouth = { + enable = true; + themePackages = [ pkgs.plymouth-blahaj-theme ]; + theme = "blahaj"; + }; + # Cross building # https://discourse.nixos.org/t/how-do-i-get-my-aarch64-linux-machine-to-build-x86-64-linux-extra-platforms-doesnt-seem-to-work/38106/2?u=leana8959 boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; From f2bd846e2238ef907f8ae644ec1d172ba0305ce2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 22 Jan 2026 21:18:32 +0100 Subject: [PATCH 074/126] overlays/iosevka: refactor iosevka overlay now uses iosevka config build plans in extesible forms! --- nix/configurations/vanadium.nix | 2 +- nix/overlays/iosevka-term.nix | 191 ---------------------- nix/overlays/iosevka/default.nix | 59 +++++++ nix/overlays/iosevka/privateBuildPlan.nix | 147 +++++++++++++++++ nix/overlays/iosevka/spacings.nix | 24 +++ nix/overlays/iosevka/variants.nix | 93 +++++++++++ nix/packages/default.nix | 2 +- 7 files changed, 325 insertions(+), 193 deletions(-) delete mode 100644 nix/overlays/iosevka-term.nix create mode 100644 nix/overlays/iosevka/default.nix create mode 100644 nix/overlays/iosevka/privateBuildPlan.nix create mode 100644 nix/overlays/iosevka/spacings.nix create mode 100644 nix/overlays/iosevka/variants.nix diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 99d9c96d..415bda60 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -57,7 +57,7 @@ in ../overlays/ghostty-dev.nix ../overlays/npins.nix - ../overlays/iosevka-term.nix + ../overlays/iosevka ../packages/overlay.nix ./vanadium/overlay.nix diff --git a/nix/overlays/iosevka-term.nix b/nix/overlays/iosevka-term.nix deleted file mode 100644 index 1a1b26a8..00000000 --- a/nix/overlays/iosevka-term.nix +++ /dev/null @@ -1,191 +0,0 @@ -final: prev: -let - inherit (final) lib; - - iosevka-term = prev.iosevka.override { - # This changes pname which changes what the outputted buildPlan name is. - # Stupid API - set = ""; - - # Guide: https://github.com/be5invis/Iosevka/blob/main/doc/custom-build.md - privateBuildPlan = { - family = "Iosevka"; - serifs = "sans"; - - # Iosevka + Ghostty makes "…" display in a odd way. - # We use "term" width to avoid this. - # https://github.com/ghostty-org/ghostty/discussions/10335 - spacing = "term"; - - # Otherwise kitty behaves funny with ligature - # noLigation = true; - exportGlyphNames = true; - - variants.design = { - ampersand = "et-tailed"; - capital-q = "crossing"; - capital-z = "straight-serifless-with-crossbar"; - cent = "open"; - dollar = "open"; - lig-double-arrow-bar = "with-notch"; - lig-equal-chain = "with-notch"; - lig-hyphen-chain = "with-notch"; - lig-plus-chain = "with-notch"; - lig-single-arrow-bar = "with-notch"; - lower-lambda = "tailed-turn"; - # number-sign = "slanted"; - percent = "rings-continuous-slash-also-connected"; - seven = "straight-serifless-crossbar"; - }; - variants.italic = { - v = "cursive-serifless"; - w = "cursive-serifless"; - }; - - weights = { - # Build 580, but indicate 400 in output - Regular.shape = 580; - Regular.menu = 400; - Regular.css = 400; - Bold.shape = 700; - Bold.menu = 700; - Bold.css = 700; - }; - - widths = { - Normal.shape = 500; - Normal.menu = 5; - Normal.css = "normal"; - Extended.shape = 600; - Extended.menu = 7; - Extended.css = "expanded"; - }; - - slopes = { - Upright.angle = 0; - Upright.css = "normal"; - Upright.menu = "upright"; - Upright.shape = "upright"; - Italic.angle = 9.4; - Italic.shape = "italic"; - Italic.menu = "italic"; - Italic.css = "italic"; - }; - - # The ligatures are defined based on Haskell and Nix usages. - # - # Follow: for more details - ligations.enables = [ - "arrow-l" # Left-pointing arrows - # "arrow-l-hyphen" # Left-pointing arrows with hyphen-minus (-) being the rod - # "arrow-l-equal" # Left-pointing arrows with equal sign (=) being the rod - # "arrow-l-wave" # Left-pointing arrows with tilde (~) being the rod - - "arrow-r" # Right-pointing arrows - # "arrow-r-hyphen" # Right-pointing arrows with hyphen-minus (-) being the rod - # "arrow-r-equal" # Right-pointing arrows with equal sign (=) being the rod - # "arrow-r-wave" # Right-pointing arrows with tilde (~) being the rod - - "arrow-lr" # Dual-pointing arrows - # "arrow-lr-hyphen" # Dual-pointing arrows with hyphen-minus (-) being the rod - # "arrow-lr-equal" # Dual-pointing arrows with equal sign (=) being the rod - # "arrow-lr-wave" # Dual-pointing arrows with tilde (~) being the rod - - "counter-arrow-l" # Left-pointing counter-arrows - # "counter-arrow-l-hyphen" # Left-pointing counter-arrows with hyphen-minus (-) being the rod - # "counter-arrow-l-equal" # Left-pointing counter-arrows with equal sign (=) being the rod - # "counter-arrow-l-wave" # Left-pointing counter-arrows with tilde (~) being the rod - - "counter-arrow-r" # Right-pointing counter-arrows - # "counter-arrow-r-hyphen" # Right-pointing counter-arrows with hyphen-minus (-) being the rod - # "counter-arrow-r-equal" # Right-pointing counter-arrows with equal sign (=) being the rod - # "counter-arrow-r-wave" # Right-pointing counter-arrows with tilde (~) being the rod - - # "eqeqeq" # Enable special ligation for === with triple lines - "eqeq" # Enable ligation for == and === - "lteq" # Enable ligation for <= as less-than-or-equal sign - # "eqlt" # Enable ligation for =< as less-than-or-equal sign - "gteq" # Enable ligation for >= as greater-than-or-equal sign - # "lteq-separate" # Display <= as separate shape - # "eqlt-separate" # Display =< as separate shape - # "gteq-separate" # Display >= as separate shape - - # "exeqeqeq" # Enable special ligation for !=== with triple lines - # "exeqeq" # Enable special ligation for !== with triple lines - # "eqexeq" # Enable special ligation for =!= with triple lines - # "eqexeq-dl" # Enable special ligation for =!= with double lines - # "exeq" # Enable ligation for != and !== - # "tildeeq" # Enable ligation for ~= as inequality - # "eqslasheq" # Enable special triple-line ligation for =/= as inequality - "slasheq" # Enable ligation for /= and =/= as inequality - "trig" # Enable ligation for <|, |> , <||, and other bar-and-angle-bracket symbols - # "ltgt-ne" # Enable ligation for <> as inequality - "ltgt-diamond" # Enable ligation for <> as diamond - # "ltgt-diamond-tag" # Enable ligation for <> as diamond-shaped empty HTML/XML tag - # "ltgt-slash-tag" # Enable ligation for and - # "brst" # Center asterisk in (* and *) - "slash-asterisk" # Shift asterisk in /* and */ - "kern-dotty" # Move connecting dotty punctuations closer, like for ::, :: # and ... - # "kern-bars" # Move consecutive bars closer, like for ||, ||| and // - "center-ops" # Vertically align some of the operators (like *) to the center position it is before or after a "center" operator (like +) - - # These put -. to the same height - # "center-op-trigger-plus-minus-l" # Plus (+) and Minus (-) will trigger other operator characters at left to be centered - # "center-op-trigger-plus-minus-r" # Plus (+) and Minus (-) will trigger other operator characters at right to be centered - - # These put *= to the same height - # "center-op-trigger-equal-l" # Equal (=) will trigger other operator characters at left to be centered - # "center-op-trigger-equal-r" # Equal (=) will trigger other operator characters at right to be centered - - "center-op-trigger-bar-l" # Bars (|) will trigger other operator characters at left to be centered - "center-op-trigger-bar-r" # Bars (|) will trigger other operator characters at right to be centered - "center-op-trigger-angle-inside" # Less (<) and Greater (>) will trigger other operator characters at inside to be centered - "center-op-trigger-angle-outside" # Less (<) and Greater (>) will trigger other operator characters at outside to be centered - # "center-op-influence-dot" # Treat dot (.) as operator and perform chained centering - "center-op-influence-colon" # Treat colon (:) as operator and perform chained centering - "tilde-tilde" # Make 2 or more contiguous ASCII tildes (like ~~, ~~~ and ~~~~) connected as a wave line - # "tilde-tilde-tilde" # Make 3 or more contiguous ASCII tildes (like ~~~ and ~~~~) connected as a wave line - # "minus-minus" # Make 2 or more contiguous hyphen-minuses (like --, --- and ----) connected as a straight solid line - # "minus-minus-minus" # Make 3 or more contiguous hyphen-minuses (like --- and ----) connected as a straight solid line - # "plus-plus" # Make 2 or more contiguous plus signs (like ++, +++ and ++++) connected. - # "plus-plus-plus" # Make 3 or more contiguous plus signs (like +++ and ++++) connected. - # "underscore-underscore" # Make 2 or more contiguous underscores (like __, ___ and ____) connected - # "underscore-underscore-underscore" # Make 3 or more contiguous underscores (like ___ and ____) connected - # "hash-hash" # Make 2 or more contiguous hash signs (number signs) (like ##, ### and ####) connected - # "hash-hash-hash" # Make 3 or more contiguous hash signs (number signs) (like ## and ###) connected - # "logic" # Enable ligation for /\ and \/ - # "llgg" # Enable ligation for <<, >> and other angle-bracket chaining - # "llggeq" # Enable ligation for <<=, >>= as shift operator - # "html-comment" # Enable ligation for bold + weightmedium medium + + size15 regular + size10 medium + bold + + + + + + + + ''; + }; + }; }; home.packages = [ pkgs.noto-fonts From ad6669d42f24bed5fec40ba873630a3303ac16bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 23 Jan 2026 10:29:01 +0100 Subject: [PATCH 082/126] vanadium/xmonad: correct dmenu font configuration --- nix/configurations/vanadium/home/xmonad/xmonad.hs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index 52d4279c..905f640d 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -351,9 +351,7 @@ keybinds = -- Launcher ++ (let launchFirefox = "zen" - -- dmenu doesn't find the right font, but it falls back to the right one - -- https://bbs.archlinux.org/viewtopic.php?id=139829 - launchDmenu = "dmenu_run -i -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10" + launchDmenu = "dmenu_run -i -fn \"IosevkaPTMono-18\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10" lock = "xscreensaver-command -lock" in [ ((controlMask .|. altMask, xK_m), namedScratchpadAction myScratchpads "cmus" ) , ((controlMask .|. altMask, xK_t), namedScratchpadAction myScratchpads "btop" ) From 8bd410c1164865e1d4d08705194587646377e393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 23 Jan 2026 17:03:04 +0100 Subject: [PATCH 083/126] vanadium: switch to ubuntu mono font find . -type f -not -path .git -exec sed -i "s/PTMono/UbuntuMono/g" {} + --- nix/configurations/vanadium/home/misc.nix | 4 ++-- nix/configurations/vanadium/home/xmobar/xmobar.hs | 2 +- nix/configurations/vanadium/home/xmonad/xmonad.hs | 2 +- nix/homeModules/common/ghostty.nix | 4 ++-- nix/homeModules/common/wired/default.nix | 2 +- nix/homeModules/common/wired/wired.ron | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/nix/configurations/vanadium/home/misc.nix b/nix/configurations/vanadium/home/misc.nix index 24c1aa1c..e6ede002 100644 --- a/nix/configurations/vanadium/home/misc.nix +++ b/nix/configurations/vanadium/home/misc.nix @@ -14,7 +14,7 @@ "Noto Sans CJK TC" ]; serif = [ "Noto Serif CJK TC" ]; - monospace = [ "IosevkaPTMono" ]; + monospace = [ "IosevkaUbuntuMono" ]; emoji = [ "Noto Color Emoji" ]; }; @@ -66,7 +66,7 @@ pkgs.noto-fonts-color-emoji pkgs.noto-fonts-emoji-blob-bin pkgs.ubuntu-classic - pkgs.IosevkaPTMono + pkgs.IosevkaUbuntuMono ]; home.file = { diff --git a/nix/configurations/vanadium/home/xmobar/xmobar.hs b/nix/configurations/vanadium/home/xmobar/xmobar.hs index 0157b8bd..663f5242 100644 --- a/nix/configurations/vanadium/home/xmobar/xmobar.hs +++ b/nix/configurations/vanadium/home/xmobar/xmobar.hs @@ -54,7 +54,7 @@ config = -- For framework 13 , dpi = 150 - , font = "IosevkaPTMono 8" + , font = "IosevkaUbuntuMono 8" , fgColor = "#FFFFFF" , bgColor = "#000000" , position = BottomH 24 diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index 905f640d..461fdef8 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -351,7 +351,7 @@ keybinds = -- Launcher ++ (let launchFirefox = "zen" - launchDmenu = "dmenu_run -i -fn \"IosevkaPTMono-18\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10" + launchDmenu = "dmenu_run -i -fn \"IosevkaUbuntuMono-18\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10" lock = "xscreensaver-command -lock" in [ ((controlMask .|. altMask, xK_m), namedScratchpadAction myScratchpads "cmus" ) , ((controlMask .|. altMask, xK_t), namedScratchpadAction myScratchpads "btop" ) diff --git a/nix/homeModules/common/ghostty.nix b/nix/homeModules/common/ghostty.nix index 3dfd6338..0d31c22a 100644 --- a/nix/homeModules/common/ghostty.nix +++ b/nix/homeModules/common/ghostty.nix @@ -10,7 +10,7 @@ in { config = lib.mkIf cfg.enable { home.packages = [ - pkgs.nerd-fonts.IosevkaTermPTMono + pkgs.nerd-fonts.IosevkaTermUbuntuMono ]; programs.ghostty.settings = { @@ -21,7 +21,7 @@ in resize-overlay = "never"; # Fonts - font-family = "IosevkaTermPTMono NFM"; + font-family = "IosevkaTermUbuntuMono NFM"; adjust-cursor-thickness = 2; keybind = [ "ctrl+shift+==increase_font_size:1" diff --git a/nix/homeModules/common/wired/default.nix b/nix/homeModules/common/wired/default.nix index 6e253037..5cc98bc5 100644 --- a/nix/homeModules/common/wired/default.nix +++ b/nix/homeModules/common/wired/default.nix @@ -1,6 +1,6 @@ { pkgs, ... }: { - home.packages = [ pkgs.IosevkaPTMono ]; + home.packages = [ pkgs.IosevkaUbuntuMono ]; services.wired = { config = "${./wired.ron}"; }; diff --git a/nix/homeModules/common/wired/wired.ron b/nix/homeModules/common/wired/wired.ron index 05b4f76e..72ecc60f 100644 --- a/nix/homeModules/common/wired/wired.ron +++ b/nix/homeModules/common/wired/wired.ron @@ -122,7 +122,7 @@ offset: Vec2(x: 0.0, y: 0.0), params: ScrollingTextBlock(( text: "%s", - font: "IosevkaPTMono 24", + font: "IosevkaUbuntuMono 24", color: Color(hex: "#fafafa"), padding: Padding(left: 7.0, right: 7.0, top: 1.0, bottom: 0.0), width: (min: 400, max: 400), @@ -140,7 +140,7 @@ offset: Vec2(x: 0.0, y: -3.0), params: ScrollingTextBlock(( text: "%b", - font: "IosevkaPTMono 18", + font: "IosevkaUbuntuMono 18", color: Color(hex: "#fafafa"), padding: Padding(left: 7.0, right: 7.0, top: 3.0, bottom: 7.0), width: (min: 400, max: 400), From 0ad8a3c659e0432fceb460840682a4a202560119 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 23 Jan 2026 17:05:58 +0100 Subject: [PATCH 084/126] vanadium: switch to IBM Plex Mono font --- nix/configurations/vanadium/home/misc.nix | 4 ++-- nix/configurations/vanadium/home/xmobar/xmobar.hs | 2 +- nix/configurations/vanadium/home/xmonad/xmonad.hs | 2 +- nix/homeModules/common/ghostty.nix | 4 ++-- nix/homeModules/common/wired/default.nix | 2 +- nix/homeModules/common/wired/wired.ron | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/nix/configurations/vanadium/home/misc.nix b/nix/configurations/vanadium/home/misc.nix index e6ede002..4d438ef5 100644 --- a/nix/configurations/vanadium/home/misc.nix +++ b/nix/configurations/vanadium/home/misc.nix @@ -14,7 +14,7 @@ "Noto Sans CJK TC" ]; serif = [ "Noto Serif CJK TC" ]; - monospace = [ "IosevkaUbuntuMono" ]; + monospace = [ "IosevkaIBMPlexMono" ]; emoji = [ "Noto Color Emoji" ]; }; @@ -66,7 +66,7 @@ pkgs.noto-fonts-color-emoji pkgs.noto-fonts-emoji-blob-bin pkgs.ubuntu-classic - pkgs.IosevkaUbuntuMono + pkgs.IosevkaIBMPlexMono ]; home.file = { diff --git a/nix/configurations/vanadium/home/xmobar/xmobar.hs b/nix/configurations/vanadium/home/xmobar/xmobar.hs index 663f5242..725a7c78 100644 --- a/nix/configurations/vanadium/home/xmobar/xmobar.hs +++ b/nix/configurations/vanadium/home/xmobar/xmobar.hs @@ -54,7 +54,7 @@ config = -- For framework 13 , dpi = 150 - , font = "IosevkaUbuntuMono 8" + , font = "IosevkaIBMPlexMono 8" , fgColor = "#FFFFFF" , bgColor = "#000000" , position = BottomH 24 diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index 461fdef8..1c2cb239 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -351,7 +351,7 @@ keybinds = -- Launcher ++ (let launchFirefox = "zen" - launchDmenu = "dmenu_run -i -fn \"IosevkaUbuntuMono-18\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10" + launchDmenu = "dmenu_run -i -fn \"IosevkaIBMPlexMono-18\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10" lock = "xscreensaver-command -lock" in [ ((controlMask .|. altMask, xK_m), namedScratchpadAction myScratchpads "cmus" ) , ((controlMask .|. altMask, xK_t), namedScratchpadAction myScratchpads "btop" ) diff --git a/nix/homeModules/common/ghostty.nix b/nix/homeModules/common/ghostty.nix index 0d31c22a..669d0574 100644 --- a/nix/homeModules/common/ghostty.nix +++ b/nix/homeModules/common/ghostty.nix @@ -10,7 +10,7 @@ in { config = lib.mkIf cfg.enable { home.packages = [ - pkgs.nerd-fonts.IosevkaTermUbuntuMono + pkgs.nerd-fonts.IosevkaTermIBMPlexMono ]; programs.ghostty.settings = { @@ -21,7 +21,7 @@ in resize-overlay = "never"; # Fonts - font-family = "IosevkaTermUbuntuMono NFM"; + font-family = "IosevkaTermIBMPlexMono NFM"; adjust-cursor-thickness = 2; keybind = [ "ctrl+shift+==increase_font_size:1" diff --git a/nix/homeModules/common/wired/default.nix b/nix/homeModules/common/wired/default.nix index 5cc98bc5..4283cf78 100644 --- a/nix/homeModules/common/wired/default.nix +++ b/nix/homeModules/common/wired/default.nix @@ -1,6 +1,6 @@ { pkgs, ... }: { - home.packages = [ pkgs.IosevkaUbuntuMono ]; + home.packages = [ pkgs.IosevkaIBMPlexMono ]; services.wired = { config = "${./wired.ron}"; }; diff --git a/nix/homeModules/common/wired/wired.ron b/nix/homeModules/common/wired/wired.ron index 72ecc60f..fbd8c3aa 100644 --- a/nix/homeModules/common/wired/wired.ron +++ b/nix/homeModules/common/wired/wired.ron @@ -122,7 +122,7 @@ offset: Vec2(x: 0.0, y: 0.0), params: ScrollingTextBlock(( text: "%s", - font: "IosevkaUbuntuMono 24", + font: "IosevkaIBMPlexMono 24", color: Color(hex: "#fafafa"), padding: Padding(left: 7.0, right: 7.0, top: 1.0, bottom: 0.0), width: (min: 400, max: 400), @@ -140,7 +140,7 @@ offset: Vec2(x: 0.0, y: -3.0), params: ScrollingTextBlock(( text: "%b", - font: "IosevkaUbuntuMono 18", + font: "IosevkaIBMPlexMono 18", color: Color(hex: "#fafafa"), padding: Padding(left: 7.0, right: 7.0, top: 3.0, bottom: 7.0), width: (min: 400, max: 400), From 352be828697d96db3d4804b55a82b67c07a64ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 23 Jan 2026 17:43:32 +0100 Subject: [PATCH 085/126] Revert "vanadium: switch to IBM Plex Mono font" This reverts commit 0ad8a3c659e0432fceb460840682a4a202560119. --- nix/configurations/vanadium/home/misc.nix | 4 ++-- nix/configurations/vanadium/home/xmobar/xmobar.hs | 2 +- nix/configurations/vanadium/home/xmonad/xmonad.hs | 2 +- nix/homeModules/common/ghostty.nix | 4 ++-- nix/homeModules/common/wired/default.nix | 2 +- nix/homeModules/common/wired/wired.ron | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/nix/configurations/vanadium/home/misc.nix b/nix/configurations/vanadium/home/misc.nix index 4d438ef5..e6ede002 100644 --- a/nix/configurations/vanadium/home/misc.nix +++ b/nix/configurations/vanadium/home/misc.nix @@ -14,7 +14,7 @@ "Noto Sans CJK TC" ]; serif = [ "Noto Serif CJK TC" ]; - monospace = [ "IosevkaIBMPlexMono" ]; + monospace = [ "IosevkaUbuntuMono" ]; emoji = [ "Noto Color Emoji" ]; }; @@ -66,7 +66,7 @@ pkgs.noto-fonts-color-emoji pkgs.noto-fonts-emoji-blob-bin pkgs.ubuntu-classic - pkgs.IosevkaIBMPlexMono + pkgs.IosevkaUbuntuMono ]; home.file = { diff --git a/nix/configurations/vanadium/home/xmobar/xmobar.hs b/nix/configurations/vanadium/home/xmobar/xmobar.hs index 725a7c78..663f5242 100644 --- a/nix/configurations/vanadium/home/xmobar/xmobar.hs +++ b/nix/configurations/vanadium/home/xmobar/xmobar.hs @@ -54,7 +54,7 @@ config = -- For framework 13 , dpi = 150 - , font = "IosevkaIBMPlexMono 8" + , font = "IosevkaUbuntuMono 8" , fgColor = "#FFFFFF" , bgColor = "#000000" , position = BottomH 24 diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index 1c2cb239..461fdef8 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -351,7 +351,7 @@ keybinds = -- Launcher ++ (let launchFirefox = "zen" - launchDmenu = "dmenu_run -i -fn \"IosevkaIBMPlexMono-18\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10" + launchDmenu = "dmenu_run -i -fn \"IosevkaUbuntuMono-18\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10" lock = "xscreensaver-command -lock" in [ ((controlMask .|. altMask, xK_m), namedScratchpadAction myScratchpads "cmus" ) , ((controlMask .|. altMask, xK_t), namedScratchpadAction myScratchpads "btop" ) diff --git a/nix/homeModules/common/ghostty.nix b/nix/homeModules/common/ghostty.nix index 669d0574..0d31c22a 100644 --- a/nix/homeModules/common/ghostty.nix +++ b/nix/homeModules/common/ghostty.nix @@ -10,7 +10,7 @@ in { config = lib.mkIf cfg.enable { home.packages = [ - pkgs.nerd-fonts.IosevkaTermIBMPlexMono + pkgs.nerd-fonts.IosevkaTermUbuntuMono ]; programs.ghostty.settings = { @@ -21,7 +21,7 @@ in resize-overlay = "never"; # Fonts - font-family = "IosevkaTermIBMPlexMono NFM"; + font-family = "IosevkaTermUbuntuMono NFM"; adjust-cursor-thickness = 2; keybind = [ "ctrl+shift+==increase_font_size:1" diff --git a/nix/homeModules/common/wired/default.nix b/nix/homeModules/common/wired/default.nix index 4283cf78..5cc98bc5 100644 --- a/nix/homeModules/common/wired/default.nix +++ b/nix/homeModules/common/wired/default.nix @@ -1,6 +1,6 @@ { pkgs, ... }: { - home.packages = [ pkgs.IosevkaIBMPlexMono ]; + home.packages = [ pkgs.IosevkaUbuntuMono ]; services.wired = { config = "${./wired.ron}"; }; diff --git a/nix/homeModules/common/wired/wired.ron b/nix/homeModules/common/wired/wired.ron index fbd8c3aa..72ecc60f 100644 --- a/nix/homeModules/common/wired/wired.ron +++ b/nix/homeModules/common/wired/wired.ron @@ -122,7 +122,7 @@ offset: Vec2(x: 0.0, y: 0.0), params: ScrollingTextBlock(( text: "%s", - font: "IosevkaIBMPlexMono 24", + font: "IosevkaUbuntuMono 24", color: Color(hex: "#fafafa"), padding: Padding(left: 7.0, right: 7.0, top: 1.0, bottom: 0.0), width: (min: 400, max: 400), @@ -140,7 +140,7 @@ offset: Vec2(x: 0.0, y: -3.0), params: ScrollingTextBlock(( text: "%b", - font: "IosevkaIBMPlexMono 18", + font: "IosevkaUbuntuMono 18", color: Color(hex: "#fafafa"), padding: Padding(left: 7.0, right: 7.0, top: 3.0, bottom: 7.0), width: (min: 400, max: 400), From 26acc21d31a78b0e4ca2ee65433ab438940e4807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 23 Jan 2026 19:06:27 +0100 Subject: [PATCH 086/126] vanadium: use iosevka default It seems like I like the original the most <3 --- nix/configurations/vanadium/home/misc.nix | 4 ++-- nix/configurations/vanadium/home/xmobar/xmobar.hs | 2 +- nix/configurations/vanadium/home/xmonad/xmonad.hs | 2 +- nix/homeModules/common/ghostty.nix | 4 ++-- nix/homeModules/common/wired/default.nix | 2 +- nix/homeModules/common/wired/wired.ron | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/nix/configurations/vanadium/home/misc.nix b/nix/configurations/vanadium/home/misc.nix index e6ede002..44492885 100644 --- a/nix/configurations/vanadium/home/misc.nix +++ b/nix/configurations/vanadium/home/misc.nix @@ -14,7 +14,7 @@ "Noto Sans CJK TC" ]; serif = [ "Noto Serif CJK TC" ]; - monospace = [ "IosevkaUbuntuMono" ]; + monospace = [ "Iosevka" ]; emoji = [ "Noto Color Emoji" ]; }; @@ -66,7 +66,7 @@ pkgs.noto-fonts-color-emoji pkgs.noto-fonts-emoji-blob-bin pkgs.ubuntu-classic - pkgs.IosevkaUbuntuMono + pkgs.Iosevka ]; home.file = { diff --git a/nix/configurations/vanadium/home/xmobar/xmobar.hs b/nix/configurations/vanadium/home/xmobar/xmobar.hs index 663f5242..76b011e3 100644 --- a/nix/configurations/vanadium/home/xmobar/xmobar.hs +++ b/nix/configurations/vanadium/home/xmobar/xmobar.hs @@ -54,7 +54,7 @@ config = -- For framework 13 , dpi = 150 - , font = "IosevkaUbuntuMono 8" + , font = "Iosevka 8" , fgColor = "#FFFFFF" , bgColor = "#000000" , position = BottomH 24 diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index 461fdef8..32590777 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -351,7 +351,7 @@ keybinds = -- Launcher ++ (let launchFirefox = "zen" - launchDmenu = "dmenu_run -i -fn \"IosevkaUbuntuMono-18\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10" + launchDmenu = "dmenu_run -i -fn \"Iosevka-18\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10" lock = "xscreensaver-command -lock" in [ ((controlMask .|. altMask, xK_m), namedScratchpadAction myScratchpads "cmus" ) , ((controlMask .|. altMask, xK_t), namedScratchpadAction myScratchpads "btop" ) diff --git a/nix/homeModules/common/ghostty.nix b/nix/homeModules/common/ghostty.nix index 0d31c22a..d259e588 100644 --- a/nix/homeModules/common/ghostty.nix +++ b/nix/homeModules/common/ghostty.nix @@ -10,7 +10,7 @@ in { config = lib.mkIf cfg.enable { home.packages = [ - pkgs.nerd-fonts.IosevkaTermUbuntuMono + pkgs.nerd-fonts.IosevkaTerm ]; programs.ghostty.settings = { @@ -21,7 +21,7 @@ in resize-overlay = "never"; # Fonts - font-family = "IosevkaTermUbuntuMono NFM"; + font-family = "IosevkaTerm NFM"; adjust-cursor-thickness = 2; keybind = [ "ctrl+shift+==increase_font_size:1" diff --git a/nix/homeModules/common/wired/default.nix b/nix/homeModules/common/wired/default.nix index 5cc98bc5..8a657630 100644 --- a/nix/homeModules/common/wired/default.nix +++ b/nix/homeModules/common/wired/default.nix @@ -1,6 +1,6 @@ { pkgs, ... }: { - home.packages = [ pkgs.IosevkaUbuntuMono ]; + home.packages = [ pkgs.Iosevka ]; services.wired = { config = "${./wired.ron}"; }; diff --git a/nix/homeModules/common/wired/wired.ron b/nix/homeModules/common/wired/wired.ron index 72ecc60f..bbaff072 100644 --- a/nix/homeModules/common/wired/wired.ron +++ b/nix/homeModules/common/wired/wired.ron @@ -122,7 +122,7 @@ offset: Vec2(x: 0.0, y: 0.0), params: ScrollingTextBlock(( text: "%s", - font: "IosevkaUbuntuMono 24", + font: "Iosevka 24", color: Color(hex: "#fafafa"), padding: Padding(left: 7.0, right: 7.0, top: 1.0, bottom: 0.0), width: (min: 400, max: 400), @@ -140,7 +140,7 @@ offset: Vec2(x: 0.0, y: -3.0), params: ScrollingTextBlock(( text: "%b", - font: "IosevkaUbuntuMono 18", + font: "Iosevka 18", color: Color(hex: "#fafafa"), padding: Padding(left: 7.0, right: 7.0, top: 3.0, bottom: 7.0), width: (min: 400, max: 400), From bd8bd280ea2b2308b206245b9cf0aa704e408ed2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 23 Jan 2026 19:11:06 +0100 Subject: [PATCH 087/126] overlays/iosevka: make regular and medium thicker --- nix/overlays/iosevka/privateBuildPlan.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nix/overlays/iosevka/privateBuildPlan.nix b/nix/overlays/iosevka/privateBuildPlan.nix index d4677f26..b5f31c9c 100644 --- a/nix/overlays/iosevka/privateBuildPlan.nix +++ b/nix/overlays/iosevka/privateBuildPlan.nix @@ -26,10 +26,10 @@ }; weights = { - Regular.shape = 400; + Regular.shape = 420; Regular.menu = 400; Regular.css = 400; - Medium.shape = 500; + Medium.shape = 550; Medium.menu = 500; Medium.css = 500; Bold.shape = 700; From 5045521db5ca0d60abd224ce46bdb4beaef5e2fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 23 Jan 2026 19:16:36 +0100 Subject: [PATCH 088/126] overlays/iosevka: enable brst and markdown-checkboxes --- nix/overlays/iosevka/privateBuildPlan.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nix/overlays/iosevka/privateBuildPlan.nix b/nix/overlays/iosevka/privateBuildPlan.nix index b5f31c9c..d6123ac6 100644 --- a/nix/overlays/iosevka/privateBuildPlan.nix +++ b/nix/overlays/iosevka/privateBuildPlan.nix @@ -105,7 +105,7 @@ "ltgt-diamond" # Enable ligation for <> as diamond # "ltgt-diamond-tag" # Enable ligation for <> as diamond-shaped empty HTML/XML tag # "ltgt-slash-tag" # Enable ligation for and - # "brst" # Center asterisk in (* and *) + "brst" # Center asterisk in (* and *) "slash-asterisk" # Shift asterisk in /* and */ "kern-dotty" # Move connecting dotty punctuations closer, like for ::, :: # and ... # "kern-bars" # Move consecutive bars closer, like for ||, ||| and // @@ -142,5 +142,6 @@ # "colon-greater-as-colon-arrow:" Transform :> into : and a narrow arrow # "brace-bar" # Enable ligation for {| and |} "brack-bar" # Enable ligation for [| and |] + "markdown-checkboxes" # Enable ligation for Markdown checkboxes like - [ ] and - [x] ]; } From f8658bc7933bd0797c2992326c808c3c9bae5b41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 23 Jan 2026 23:13:59 +0100 Subject: [PATCH 089/126] overlays/cornelis: init --- nix/overlays/cornelis.nix | 5 +++++ npins/sources.json | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 nix/overlays/cornelis.nix diff --git a/nix/overlays/cornelis.nix b/nix/overlays/cornelis.nix new file mode 100644 index 00000000..7ae3c175 --- /dev/null +++ b/nix/overlays/cornelis.nix @@ -0,0 +1,5 @@ +# The Agda support for Vim +let + sources = import ../../npins; +in +sources.cornelis.asFlake.overlays.cornelis diff --git a/npins/sources.json b/npins/sources.json index 30a98489..2bc69d66 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -16,6 +16,22 @@ "url": "https://api.github.com/repos/ryantm/agenix/tarball/0.15.0", "hash": "sha256-ipqShkBmHKC9ft1ZAsA6aeKps32k7+XZSPwfxeHLsAU=" }, + "cornelis": { + "type": "GitRelease", + "repository": { + "type": "GitHub", + "owner": "agda", + "repo": "cornelis" + }, + "pre_releases": false, + "version_upper_bound": null, + "release_prefix": null, + "submodules": false, + "version": "v2.8.0", + "revision": "67137c76fe0d4a8bb899eea46afaa370993d3556", + "url": "https://api.github.com/repos/agda/cornelis/tarball/refs/tags/v2.8.0", + "hash": "sha256-dGS6De3EtTirgEMDMSjA+iBNc670W7pG4eA02Nq7Azo=" + }, "disko": { "type": "GitRelease", "repository": { From 46447d8a02571dd50115497c3903d1d3def8592e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 23 Jan 2026 23:14:07 +0100 Subject: [PATCH 090/126] vanadium: +cornelis --- nix/configurations/vanadium.nix | 1 + nix/configurations/vanadium/home/dev.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 415bda60..c8b9e4d5 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -56,6 +56,7 @@ in ../overlays/nil.nix ../overlays/ghostty-dev.nix ../overlays/npins.nix + ../overlays/cornelis.nix ../overlays/iosevka ../packages/overlay.nix diff --git a/nix/configurations/vanadium/home/dev.nix b/nix/configurations/vanadium/home/dev.nix index 5e0ba28e..034946b3 100644 --- a/nix/configurations/vanadium/home/dev.nix +++ b/nix/configurations/vanadium/home/dev.nix @@ -27,6 +27,7 @@ pkgs.taplo # toml pkgs.vscode-langservers-extracted # JSON etc pkgs.yaml-language-server # yaml + pkgs.cornelis # agda # bash pkgs.shfmt From 69c07154c96b690587ae5ea55a52def378e47fcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 23 Jan 2026 23:17:30 +0100 Subject: [PATCH 091/126] nvim: +cornelis --- .config/nvim/lazy-lock.json | 3 +++ .config/nvim/lua/_lazy.lua | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 1dcd08f7..a739f392 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -7,6 +7,7 @@ "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, "cmp-spell": { "branch": "master", "commit": "694a4e50809d6d645c1ea29015dad0c293f019d6" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, + "cornelis": { "branch": "master", "commit": "deda7eb399efe94cc49c645da7b6f94780fe0c19" }, "fidget.nvim": { "branch": "main", "commit": "64463022a1f2ff1318ab22a2ea4125ed9313a483" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, "gitsigns.nvim": { "branch": "main", "commit": "130beacf8a51f00aede9c31064c749136679a321" }, @@ -21,6 +22,7 @@ "nvim-cmp": { "branch": "main", "commit": "d97d85e01339f01b842e6ec1502f639b080cb0fc" }, "nvim-colorizer.lua": { "branch": "master", "commit": "81e676d3203c9eb6e4c0ccf1eba1679296ef923f" }, "nvim-dap": { "branch": "master", "commit": "818cd8787a77a97703eb1d9090543a374f79a9ac" }, + "nvim-hs.vim": { "branch": "develop", "commit": "d4a6b7278ae6a1fdc64e300c3ebc1e24719af342" }, "nvim-jdtls": { "branch": "master", "commit": "f73731b543f5971e0da9665eb1d7ceffe1fde71f" }, "nvim-lspconfig": { "branch": "master", "commit": "41ceb6bba3a40128b7841f5b7f5a9dae7201e823" }, "nvim-metals": { "branch": "main", "commit": "90dadd67bb1069ce1ba2a4dabf4e45da2807ba80" }, @@ -39,5 +41,6 @@ "vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, "vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" }, + "vim-textobj-user": { "branch": "master", "commit": "41a675ddbeefd6a93664a4dc52f302fe3086a933" }, "vimtex": { "branch": "master", "commit": "2e1bbabeb2c34bb17d7bc8cfdf8f95b16dd0db0c" } } diff --git a/.config/nvim/lua/_lazy.lua b/.config/nvim/lua/_lazy.lua index 5e428516..8784d253 100644 --- a/.config/nvim/lua/_lazy.lua +++ b/.config/nvim/lua/_lazy.lua @@ -120,6 +120,14 @@ local plugins = { lazy = false, version = "^2", }, + { + "agda/cornelis", + name = "cornelis", + ft = "agda", + init = function() vim.g.cornelis_use_global_binary = 1 end, + dependencies = { "neovimhaskell/nvim-hs.vim", "kana/vim-textobj-user" }, + version = "*", + }, { "nvim-telescope/telescope.nvim", branch = "0.1.x", From 643d736942107ccb362d28de8f99453499b5a68a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 24 Jan 2026 00:15:18 +0100 Subject: [PATCH 092/126] npins: update sources --- npins/sources.json | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/npins/sources.json b/npins/sources.json index 2bc69d66..929ec7c3 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -86,9 +86,9 @@ }, "branch": "main", "submodules": false, - "revision": "6730afe3120bf41d3927ed715979259bf42764e2", - "url": "https://github.com/ghostty-org/ghostty/archive/6730afe3120bf41d3927ed715979259bf42764e2.tar.gz", - "hash": "sha256-V66mbZ4wI1+TDhnHNPdxfZ0QFKnZXEKNFuMgZfTqdx0=" + "revision": "34eaad6fc86e086f469e81769a793be20d1e169b", + "url": "https://github.com/ghostty-org/ghostty/archive/34eaad6fc86e086f469e81769a793be20d1e169b.tar.gz", + "hash": "sha256-628LfxEPA0tiCjh6syMupdrGvVb6twhoJTtUFKDbqBQ=" }, "hategroup-dnsbl": { "type": "Git", @@ -113,9 +113,9 @@ }, "branch": "release-25.11", "submodules": false, - "revision": "2a63d0e9d2c72ac4d4150ebb242cf8d86f488c8c", - "url": "https://github.com/nix-community/home-manager/archive/2a63d0e9d2c72ac4d4150ebb242cf8d86f488c8c.tar.gz", - "hash": "sha256-vRV1dWJOCpCal3PRr86wE2WTOMfAhTu6G7bSvOsryUo=" + "revision": "75ed713570ca17427119e7e204ab3590cc3bf2a5", + "url": "https://github.com/nix-community/home-manager/archive/75ed713570ca17427119e7e204ab3590cc3bf2a5.tar.gz", + "hash": "sha256-TtjKgXyg1lMfh374w5uxutd6Vx2P/hU81aEhTxrO2cg=" }, "infuse": { "type": "GitRelease", @@ -170,9 +170,9 @@ }, "branch": "master", "submodules": false, - "revision": "d447553bcbc6a178618d37e61648b19e744370df", - "url": "https://github.com/NixOS/nixos-hardware/archive/d447553bcbc6a178618d37e61648b19e744370df.tar.gz", - "hash": "sha256-qgGq7CfrYKc3IBYQ7qp0Z/ZXndQVC5Bj0N8HW9mS2rM=" + "revision": "9f7ba891ea5fc3ededd7804f1a23fafadbcb26ca", + "url": "https://github.com/NixOS/nixos-hardware/archive/9f7ba891ea5fc3ededd7804f1a23fafadbcb26ca.tar.gz", + "hash": "sha256-3ymIZ8s3+hu7sDl/Y48o6bwMxorfKrmn97KuWiw1vjY=" }, "nixpkgs": { "type": "Git", @@ -183,9 +183,9 @@ }, "branch": "nixos-25.11-small", "submodules": false, - "revision": "43b2e61c9d09cf6c1c9c192fe6da08accc9bfb1d", - "url": "https://github.com/nixos/nixpkgs/archive/43b2e61c9d09cf6c1c9c192fe6da08accc9bfb1d.tar.gz", - "hash": "sha256-D+GLCmhxA9O69GViYl48lSvp/Dr/Ohy5/onXVPwY6rI=" + "revision": "6c1fc6e4c93c084d0ae654ee85dc16cfe53b12b0", + "url": "https://github.com/nixos/nixpkgs/archive/6c1fc6e4c93c084d0ae654ee85dc16cfe53b12b0.tar.gz", + "hash": "sha256-3tAkeUYt7WBVgNfaXDW6HnrrGSuZooZ8nIAnbmKsY2A=" }, "npins": { "type": "GitRelease", @@ -212,9 +212,9 @@ }, "branch": "main", "submodules": false, - "revision": "d787c45d0224a5d8d245ad628352a192388d5357", - "url": "https://github.com/nix-community/nur/archive/d787c45d0224a5d8d245ad628352a192388d5357.tar.gz", - "hash": "sha256-GHL4HZfyIQRbDrzRJO3Xulb2SYlm+erTt/eKHmR00vs=" + "revision": "bea55329cc806cfe3b826f7baab0503fd6b6892f", + "url": "https://github.com/nix-community/nur/archive/bea55329cc806cfe3b826f7baab0503fd6b6892f.tar.gz", + "hash": "sha256-B8+OiD8kYXtFc4vJc9+d7q8+MOic8VYR0G8wbSHjuSc=" }, "pin-emacs28": { "type": "Git", @@ -377,9 +377,9 @@ }, "branch": "main", "submodules": false, - "revision": "37149a5b77e8fd2b5332e8cec9edf39ca5b8e8bc", - "url": "https://github.com/0xc000022070/zen-browser-flake/archive/37149a5b77e8fd2b5332e8cec9edf39ca5b8e8bc.tar.gz", - "hash": "sha256-w10iy/aqd5LtD78NDWWG+eKGzkb+cGhAAo7PVciLbWE=" + "revision": "0fac05e4b604c3304e7710a95572e78350fe9968", + "url": "https://github.com/0xc000022070/zen-browser-flake/archive/0fac05e4b604c3304e7710a95572e78350fe9968.tar.gz", + "hash": "sha256-jejW3u1bkqz0ObXZeiZqLQNwC7+MXb8/KMwf3VPQpRI=" } }, "version": 7 From 9c6bfa105866078d1668500f3d0cd16babaaa017 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 24 Jan 2026 00:34:07 +0100 Subject: [PATCH 093/126] overlays/ghostty-dev: patch version when using npins --- nix/overlays/ghostty-dev.nix | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/nix/overlays/ghostty-dev.nix b/nix/overlays/ghostty-dev.nix index 599c6542..35a49af8 100644 --- a/nix/overlays/ghostty-dev.nix +++ b/nix/overlays/ghostty-dev.nix @@ -1,7 +1,20 @@ let sources = import ../../npins; in -final: prev: { +final: prev: +let + inherit (final) lib; +in +{ # Dev version of ghostty, "tip" - ghostty = sources.ghostty-dev.asFlake.packages.${final.stdenv.hostPlatform.system}.default; + ghostty = + let + shortRev = lib.substring 0 8 sources.ghostty-dev.revision; + in + # NOTE: + # ghostty-dev internally builds a derivation used as a cache. + # Overriding the pname would cause cache mismatch. + sources.ghostty-dev.asFlake.packages.${final.stdenv.hostPlatform.system}.default.override { + revision = shortRev; + }; } From a1a918193a05daef7236ccffa8b9e36261f23df5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 24 Jan 2026 21:22:12 +0100 Subject: [PATCH 094/126] nvim/ftplugin: agda support --- .config/nvim/ftplugin/agda.vim | 184 ++++++++++++++++++++++++ .config/nvim/ftplugin/markdown.agda.vim | 1 + .config/nvim/lua/_lazy.lua | 7 +- 3 files changed, 191 insertions(+), 1 deletion(-) create mode 100644 .config/nvim/ftplugin/agda.vim create mode 120000 .config/nvim/ftplugin/markdown.agda.vim diff --git a/.config/nvim/ftplugin/agda.vim b/.config/nvim/ftplugin/agda.vim new file mode 100644 index 00000000..74a49940 --- /dev/null +++ b/.config/nvim/ftplugin/agda.vim @@ -0,0 +1,184 @@ +" Sourced from +" https://wiki.portal.chalmers.se/agda/pmwiki.php?n=Main.VIMEditing#:~:text=agda%2Dutf8%2Evim +" (Link is dead so use wayback machine) + +" Superscripts +imap ^0 ⁰ +imap ^1 ¹ +imap ^2 ² +imap ^3 ³ +imap ^4 ⁴ +imap ^5 ⁵ +imap ^6 ⁶ +imap ^7 ⁷ +imap ^8 ⁸ +imap ^9 ⁹ +imap ^+ ⁺ +imap ^- ⁻ +imap ^= ⁼ +imap ^( ⁽ +imap ^) ⁾ +imap ^n ⁿ + +" Subscripts +imap \_0 ₀ +imap \_1 ₁ +imap \_2 ₂ +imap \_3 ₃ +imap \_4 ₄ +imap \_5 ₅ +imap \_6 ₆ +imap \_7 ₇ +imap \_8 ₈ +imap \_9 ₉ +imap \_+ ₊ +imap \_- ₋ +imap \_= ₌ +imap \_( ₍ +imap \_) ₎ + +" Arrows +imap -> → +imap <-- ← +imap <--> ↔ +imap ==> ⇒ +imap <== ⇐ +imap <==> ⇔ +" +" Symbols from mathematics and logic, LaTeX style +imap \forall ∀ +imap \exists ∃ +imap \in ∈ +imap \ni ∋ +imap \empty ∅ +imap \prod ∏ +imap \sum ∑ +imap \le ≤ +imap \ge ≥ +imap \pm ± +imap \subset ⊂ +imap \subseteq ⊆ +imap \supset ⊃ +imap \supseteq ⊇ +imap \setminus ∖ +imap \cap ∩ +imap \cup ∪ +imap \int ∫ +imap \therefore ∴ +imap \qed ∎ +imap \1 𝟙 +imap \N ℕ +imap \Z ℤ +imap \C ℂ +imap \Q ℚ +imap \R ℝ +imap \E 𝔼 +imap \F 𝔽 +imap \to → +imap \mapsto ↦ +imap \infty ∞ +imap \equiv ≡ +imap \cong ≅ +imap \:= ≔ +imap \=: ≕ +imap \ne ≠ +imap \approx ≈ +imap \perp ⊥ +imap \not ̷ +imap \ldots … +imap \cdots ⋯ +imap \cdot ⋅ +imap \circ ◦ +imap \times × +imap \oplus ⊕ +imap \langle ⟨ +imap \rangle ⟩ + +" Math +imap \monus ∸ + +" Greek alphabet... +imap \alpha α +imap \beta β +imap \gamma γ +imap \delta δ +imap \epsilon ε +imap \zeta ζ +imap \nu η +imap \theta θ +imap \iota ι +imap \kappa κ +imap \lambda λ +imap \mu μ +imap \nu ν +imap \xi ξ +imap \omicron ο +imap \pi π +imap \rho ρ +imap \stigma ς +imap \sigma σ +imap \tau τ +imap \upsilon υ +imap \phi ϕ +imap \varphi φ +imap \chi χ +imap \psi ψ +imap \omega ω + +imap \Alpha Α +imap \Beta Β +imap \Gamma Γ +imap \Delta Δ +imap \Epsilon Ε +imap \Zeta Ζ +imap \Nu Η +imap \Theta Θ +imap \Iota Ι +imap \Kappa Κ +imap \Lambda Λ +imap \Mu Μ +imap \Nu Ν +imap \Xi Ξ +imap \Omicron Ο +imap \Pi Π +imap \Rho Ρ +imap \Sigma Σ +imap \Tau Τ +imap \Upsilon Υ +imap \Phi Φ +imap \Chi Χ +imap \Psi Ψ +imap \Omega Ω + +" autoload +function! CornelisLoadWrapper() + if exists(":CornelisLoad") ==# 2 + CornelisLoad + endif +endfunction + +au BufReadPre *.agda call CornelisLoadWrapper() +au BufReadPre *.lagda* call CornelisLoadWrapper() + +au BufRead,BufNewFile *.agda call AgdaFiletype() +au BufRead,BufNewFile *.lagda* call AgdaFiletype() +au QuitPre *.agda :CornelisCloseInfoWindows +au QuitPre *.lagda* :CornelisCloseInfoWindows + +" autoreload at file write +au BufWritePost *.agda execute "normal! :CornelisLoad\" +au BufWritePost *.lagda* execute "normal! :CornelisLoad\" + +" default cornelis config +nnoremap l :CornelisLoad +nnoremap r :CornelisRefine +nnoremap d :CornelisMakeCase +nnoremap , :CornelisTypeContext +nnoremap . :CornelisTypeContextInfer +nnoremap n :CornelisSolve +nnoremap a :CornelisAuto +nnoremap gd :CornelisGoToDefinition +nnoremap [/ :CornelisPrevGoal +nnoremap ]/ :CornelisNextGoal +nnoremap :CornelisInc +nnoremap :CornelisDec diff --git a/.config/nvim/ftplugin/markdown.agda.vim b/.config/nvim/ftplugin/markdown.agda.vim new file mode 120000 index 00000000..72fd5ccf --- /dev/null +++ b/.config/nvim/ftplugin/markdown.agda.vim @@ -0,0 +1 @@ +.config/nvim/ftplugin/agda.vim \ No newline at end of file diff --git a/.config/nvim/lua/_lazy.lua b/.config/nvim/lua/_lazy.lua index 8784d253..c388d328 100644 --- a/.config/nvim/lua/_lazy.lua +++ b/.config/nvim/lua/_lazy.lua @@ -124,7 +124,12 @@ local plugins = { "agda/cornelis", name = "cornelis", ft = "agda", - init = function() vim.g.cornelis_use_global_binary = 1 end, + init = function() + vim.g.cornelis_use_global_binary = 1 + -- We don't use the default binding for shortcuts (see ftplugin) + -- Also, buffer reload is done in the ftplugin too + vim.g.cornelis_no_agda_input = 1 + end, dependencies = { "neovimhaskell/nvim-hs.vim", "kana/vim-textobj-user" }, version = "*", }, From 5ffb48d5cd853831e538440d52ed4620585a2dd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 24 Jan 2026 22:49:43 +0100 Subject: [PATCH 095/126] vanadium: -tuba -telegram-desktop --- nix/configurations/vanadium/home/programs.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/nix/configurations/vanadium/home/programs.nix b/nix/configurations/vanadium/home/programs.nix index f891b1e2..9492eafb 100644 --- a/nix/configurations/vanadium/home/programs.nix +++ b/nix/configurations/vanadium/home/programs.nix @@ -95,9 +95,7 @@ pkgs.iamb pkgs.discord # keep the app for video calls pkgs.signal-desktop - pkgs.tuba # mastodon GUI client pkgs.emoji-picker-rs - pkgs.telegram-desktop # for archlinux china # wm utilities pkgs.xbrightness From 934038691dbc7c37bf3bbf18b12d887c31caa7d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 24 Jan 2026 22:50:26 +0100 Subject: [PATCH 096/126] vanadium: -minder --- nix/configurations/vanadium/home/programs.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/nix/configurations/vanadium/home/programs.nix b/nix/configurations/vanadium/home/programs.nix index 9492eafb..72a01a76 100644 --- a/nix/configurations/vanadium/home/programs.nix +++ b/nix/configurations/vanadium/home/programs.nix @@ -78,7 +78,6 @@ # productivity / media pkgs.evolution pkgs.libreoffice - pkgs.minder # mindmap tool pkgs.calibre pkgs.digikam pkgs.nautilus From 2a9804f87fb40940e536a3aa4821252ed4149283 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 24 Jan 2026 22:51:45 +0100 Subject: [PATCH 097/126] move zbar to shared home module I only used it for otp code scanning anyway --- nix/configurations/vanadium/home/programs.nix | 1 - nix/homeModules/common/password-store.nix | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/configurations/vanadium/home/programs.nix b/nix/configurations/vanadium/home/programs.nix index 72a01a76..b0b931ab 100644 --- a/nix/configurations/vanadium/home/programs.nix +++ b/nix/configurations/vanadium/home/programs.nix @@ -47,7 +47,6 @@ pkgs.ruler pkgs.mini-calc - pkgs.zbar # pdf pkgs.poppler-utils # pdfseparate, pdfunite diff --git a/nix/homeModules/common/password-store.nix b/nix/homeModules/common/password-store.nix index 04d8c5f9..8b1dcc19 100644 --- a/nix/homeModules/common/password-store.nix +++ b/nix/homeModules/common/password-store.nix @@ -9,6 +9,7 @@ let in { home.packages = lib.mkIf cfg.enable [ + pkgs.zbar pkgs.pwgen pkgs.diceware ]; From 4514493746c420f50fd743b0a40ab52da570c392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 24 Jan 2026 23:10:48 +0100 Subject: [PATCH 098/126] nixos/lean-nixos: init --- nix/nixosModules/extra/lean-nixos.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 nix/nixosModules/extra/lean-nixos.nix diff --git a/nix/nixosModules/extra/lean-nixos.nix b/nix/nixosModules/extra/lean-nixos.nix new file mode 100644 index 00000000..b8d4a815 --- /dev/null +++ b/nix/nixosModules/extra/lean-nixos.nix @@ -0,0 +1,14 @@ +# disable unused tools on nixos systems (that I don't use) +{ + system.tools = { + # build a network of virtual machines? never used this. + nixos-build-vms.enable = false; + + # only useful for installer + nixos-generate-config.enable = false; + nixos-install.enable = false; + + # interactively show options, just use the repl instead + nixos-option.enable = false; + }; +} From e63978da7faad7d1bb613be2cc0ee7c3ed5c0067 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 24 Jan 2026 23:11:00 +0100 Subject: [PATCH 099/126] vanadium: include config to disable useless nixos scripts --- nix/configurations/vanadium.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index c8b9e4d5..6be7ec17 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -117,6 +117,7 @@ in # ../nixosModules/extra/secure_dns.nix ../nixosModules/extra/zram.nix ../nixosModules/extra/leana.nix + ../nixosModules/extra/lean-nixos.nix # # Extern modules From 16dfce7e6e523addf852139695df8a8b05d641c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 25 Jan 2026 11:49:00 +0100 Subject: [PATCH 100/126] nvim: move out cornelis autocommands to avoid duplication --- .config/nvim/ftplugin/agda.vim | 21 +-------------------- .config/nvim/plugin/cornelis.vim | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 20 deletions(-) create mode 100644 .config/nvim/plugin/cornelis.vim diff --git a/.config/nvim/ftplugin/agda.vim b/.config/nvim/ftplugin/agda.vim index 74a49940..3c80e715 100644 --- a/.config/nvim/ftplugin/agda.vim +++ b/.config/nvim/ftplugin/agda.vim @@ -150,26 +150,7 @@ imap \Chi Χ imap \Psi Ψ imap \Omega Ω -" autoload -function! CornelisLoadWrapper() - if exists(":CornelisLoad") ==# 2 - CornelisLoad - endif -endfunction - -au BufReadPre *.agda call CornelisLoadWrapper() -au BufReadPre *.lagda* call CornelisLoadWrapper() - -au BufRead,BufNewFile *.agda call AgdaFiletype() -au BufRead,BufNewFile *.lagda* call AgdaFiletype() -au QuitPre *.agda :CornelisCloseInfoWindows -au QuitPre *.lagda* :CornelisCloseInfoWindows - -" autoreload at file write -au BufWritePost *.agda execute "normal! :CornelisLoad\" -au BufWritePost *.lagda* execute "normal! :CornelisLoad\" - -" default cornelis config +" default cornelis mapping nnoremap l :CornelisLoad nnoremap r :CornelisRefine nnoremap d :CornelisMakeCase diff --git a/.config/nvim/plugin/cornelis.vim b/.config/nvim/plugin/cornelis.vim new file mode 100644 index 00000000..27930283 --- /dev/null +++ b/.config/nvim/plugin/cornelis.vim @@ -0,0 +1,17 @@ +" agda related autocommands + +function! CornelisLoadWrapper() + if exists(":CornelisLoad") ==# 2 + CornelisLoad + endif +endfunction + +au BufReadPre *.agda call CornelisLoadWrapper() +au BufReadPre *.lagda* call CornelisLoadWrapper() + +au QuitPre *.agda :CornelisCloseInfoWindows +au QuitPre *.lagda* :CornelisCloseInfoWindows + +" autoreload at file write +au BufWritePost *.agda execute "normal! :CornelisLoad\" +au BufWritePost *.lagda* execute "normal! :CornelisLoad\" From d2ebdb007336b182e9c6f1799c6c31c9f94b0ff9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 25 Jan 2026 14:43:13 +0100 Subject: [PATCH 101/126] nvim/agda: add bindings for PFLA chapter "Induction" --- .config/nvim/ftplugin/agda.vim | 40 ++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/.config/nvim/ftplugin/agda.vim b/.config/nvim/ftplugin/agda.vim index 3c80e715..9038d60a 100644 --- a/.config/nvim/ftplugin/agda.vim +++ b/.config/nvim/ftplugin/agda.vim @@ -3,22 +3,30 @@ " (Link is dead so use wayback machine) " Superscripts -imap ^0 ⁰ -imap ^1 ¹ -imap ^2 ² -imap ^3 ³ -imap ^4 ⁴ -imap ^5 ⁵ -imap ^6 ⁶ -imap ^7 ⁷ -imap ^8 ⁸ -imap ^9 ⁹ -imap ^+ ⁺ -imap ^- ⁻ -imap ^= ⁼ -imap ^( ⁽ -imap ^) ⁾ -imap ^n ⁿ +imap \^0 ⁰ +imap \^1 ¹ +imap \^2 ² +imap \^3 ³ +imap \^4 ⁴ +imap \^5 ⁵ +imap \^6 ⁶ +imap \^7 ⁷ +imap \^8 ⁸ +imap \^9 ⁹ +imap \^+ ⁺ +imap \^- ⁻ +imap \^= ⁼ +imap \^( ⁽ +imap \^) ⁾ +imap \^n ⁿ + +imap \^l ˡ +imap \^r ʳ + +imap \' ′ +imap \'' ″ +imap \''' ‴ +imap \'''' ⁗ " Subscripts imap \_0 ₀ From e538cf1fdfbe2a85e264530e577a7a55e32c0c17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 25 Jan 2026 15:24:17 +0100 Subject: [PATCH 102/126] nvim/agda: document how to find new symbols --- .config/nvim/ftplugin/agda.vim | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.config/nvim/ftplugin/agda.vim b/.config/nvim/ftplugin/agda.vim index 9038d60a..6a5dbec8 100644 --- a/.config/nvim/ftplugin/agda.vim +++ b/.config/nvim/ftplugin/agda.vim @@ -2,6 +2,9 @@ " https://wiki.portal.chalmers.se/agda/pmwiki.php?n=Main.VIMEditing#:~:text=agda%2Dutf8%2Evim " (Link is dead so use wayback machine) +" To add more +" https://www.compart.com/en/unicode/ + " Superscripts imap \^0 ⁰ imap \^1 ¹ From cc9a1be62f55738915fc2a24d9560796acde719e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 25 Jan 2026 22:01:04 +0100 Subject: [PATCH 103/126] npins/cornelis: use 2.7.1 due to agda's interface change --- nix/overlays/cornelis.nix | 5 +++++ npins/sources.json | 9 +++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/nix/overlays/cornelis.nix b/nix/overlays/cornelis.nix index 7ae3c175..3008001b 100644 --- a/nix/overlays/cornelis.nix +++ b/nix/overlays/cornelis.nix @@ -2,4 +2,9 @@ let sources = import ../../npins; in + +# If this is updated, we break split on case support for PLFA. +# PLFA uses 2.7.0 +# https://github.com/agda/cornelis/issues/169 +assert sources.cornelis.version == "v2.7.1"; sources.cornelis.asFlake.overlays.cornelis diff --git a/npins/sources.json b/npins/sources.json index 929ec7c3..c6de909e 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -27,10 +27,11 @@ "version_upper_bound": null, "release_prefix": null, "submodules": false, - "version": "v2.8.0", - "revision": "67137c76fe0d4a8bb899eea46afaa370993d3556", - "url": "https://api.github.com/repos/agda/cornelis/tarball/refs/tags/v2.8.0", - "hash": "sha256-dGS6De3EtTirgEMDMSjA+iBNc670W7pG4eA02Nq7Azo=" + "version": "v2.7.1", + "revision": "40298eed11eb877526b3ab3f648d8a7bff9e2f50", + "url": "https://api.github.com/repos/agda/cornelis/tarball/refs/tags/v2.7.1", + "hash": "sha256-h18AeggnOSSjy0RLJIkWsSID1BJTarOV9F1APKusIrE=", + "frozen": true }, "disko": { "type": "GitRelease", From edf313dfb3b6fe68f2f8f7e52ff812113ad40e98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 25 Jan 2026 22:39:53 +0100 Subject: [PATCH 104/126] overlays/iosevka: useless refactor --- nix/overlays/iosevka/default.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/nix/overlays/iosevka/default.nix b/nix/overlays/iosevka/default.nix index 236e7059..bae060fa 100644 --- a/nix/overlays/iosevka/default.nix +++ b/nix/overlays/iosevka/default.nix @@ -29,18 +29,18 @@ let identityOverlay = _: _: { }; overlays = - lib.crossLists - ( - spacingCfg: variantCfg: - lib.composeManyExtensions [ - spacingCfg - variantCfg - ] - ) - [ + let + # Useless complexity just for the fun + n-airyToList = acc: x: { + value = acc ++ [ x ]; + __functor = self: n-airyToList self.value; + }; + combinations = lib.crossLists (n-airyToList [ ]) [ (import ./spacings.nix) ([ identityOverlay ] ++ import ./variants.nix) ]; + in + map ({ value, ... }: lib.composeManyExtensions value) combinations; iosevkas = lib.genAttrs' overlays ( overlay: From 43fd967b7804b1f1b47ee52625e5610e9a216ed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Mon, 26 Jan 2026 10:37:22 +0100 Subject: [PATCH 105/126] Revert "vanadium/connectivity: remove instagram ban" This reverts commit 2e6aa202e644aabc426620c6f7809c396f452214. --- nix/configurations/vanadium/nixos/connectivity.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nix/configurations/vanadium/nixos/connectivity.nix b/nix/configurations/vanadium/nixos/connectivity.nix index 17ca3b84..8d881955 100644 --- a/nix/configurations/vanadium/nixos/connectivity.nix +++ b/nix/configurations/vanadium/nixos/connectivity.nix @@ -63,6 +63,10 @@ # This is the fascist one, just block it because I can't tell 0.0.0.0 nixos.wiki + # Gotta purify my smoos brain for a while + 0.0.0.0 instagram.com + 0.0.0.0 www.instagram.com + # The "people who you viewed can see you" thing is weird af 0.0.0.0 linkedin.com 0.0.0.0 www.linkedin.com From b55accdd01090d8b3ec53fe777e9dbe0e25667e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Mon, 26 Jan 2026 10:37:47 +0100 Subject: [PATCH 106/126] Reapply "vanadium/connectivity: block youtube for a while" This reverts commit a1d4740d26cac0f3ef579d76f032751f235f4f07. --- nix/configurations/vanadium/nixos/connectivity.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nix/configurations/vanadium/nixos/connectivity.nix b/nix/configurations/vanadium/nixos/connectivity.nix index 8d881955..37d8c312 100644 --- a/nix/configurations/vanadium/nixos/connectivity.nix +++ b/nix/configurations/vanadium/nixos/connectivity.nix @@ -67,6 +67,9 @@ 0.0.0.0 instagram.com 0.0.0.0 www.instagram.com + 0.0.0.0 youtube.com + 0.0.0.0 www.youtube.com + # The "people who you viewed can see you" thing is weird af 0.0.0.0 linkedin.com 0.0.0.0 www.linkedin.com From 6c178a152db7dcc2eaeaf920c7dbcfaa9248c839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Mon, 26 Jan 2026 16:07:13 +0100 Subject: [PATCH 107/126] Revert "vanadium/firefox: -addons.shinigami-eyes" This reverts commit e537aebd15528582d21f966e3e12268e9b128321. --- nix/configurations/vanadium/home/firefox.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nix/configurations/vanadium/home/firefox.nix b/nix/configurations/vanadium/home/firefox.nix index 6edc85cb..af525054 100644 --- a/nix/configurations/vanadium/home/firefox.nix +++ b/nix/configurations/vanadium/home/firefox.nix @@ -115,6 +115,7 @@ in [ addons.sponsorblock addons.return-youtube-dislikes + addons.shinigami-eyes addons.consent-o-matic ]; }; From b9093075f9af6943a8452361b51c8090cbffba96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Mon, 26 Jan 2026 16:10:18 +0100 Subject: [PATCH 108/126] vanadium/zen-browser: +addons.shinigami-eyes --- nix/configurations/vanadium/home/zen-browser.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nix/configurations/vanadium/home/zen-browser.nix b/nix/configurations/vanadium/home/zen-browser.nix index beee8d6a..c658d744 100644 --- a/nix/configurations/vanadium/home/zen-browser.nix +++ b/nix/configurations/vanadium/home/zen-browser.nix @@ -115,6 +115,7 @@ in [ addons.sponsorblock addons.return-youtube-dislikes + addons.shinigami-eyes addons.consent-o-matic ]; }; From 08b934cf21d04ad18c4c8440b4764c639ed36200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Mon, 26 Jan 2026 21:08:18 +0100 Subject: [PATCH 109/126] {default,shell}.nix: remove sources from arguments --- default.nix | 6 +++--- shell.nix | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/default.nix b/default.nix index 729c5d87..c6d15dab 100644 --- a/default.nix +++ b/default.nix @@ -1,6 +1,6 @@ -{ - sources ? import ./npins, -}: +let + sources = import ./npins; +in { # for repl sessions inherit sources; diff --git a/shell.nix b/shell.nix index 1fc63cf4..31c91133 100644 --- a/shell.nix +++ b/shell.nix @@ -1,8 +1,11 @@ +let + sources = import ./npins; +in { - sources ? import ./npins, pkgs ? import sources.nixpkgs { overlays = map import [ ./nix/overlays/disko.nix + ./nix/overlays/npins.nix ]; }, withGHC ? false, From 94e3d872f0224a421d72c18d062a735b2e922349 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Mon, 26 Jan 2026 21:35:00 +0100 Subject: [PATCH 110/126] home/fish: use home-manager to configure vivid --- nix/homeModules/common/fish/default.nix | 6 +++++- nix/homeModules/common/fish/shellInit.fish | 3 --- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/nix/homeModules/common/fish/default.nix b/nix/homeModules/common/fish/default.nix index dbb6e438..9b5994fa 100644 --- a/nix/homeModules/common/fish/default.nix +++ b/nix/homeModules/common/fish/default.nix @@ -12,12 +12,16 @@ # Script dependencies # home.packages = [ - pkgs.vivid pkgs.nix-output-monitor # pretty ui for shells ]; programs = { fd.enable = true; fzf.enable = true; + # fd uses LS_COLORS + vivid = { + enable = true; + activeTheme = "solarized-light"; # similar to milou + }; }; # diff --git a/nix/homeModules/common/fish/shellInit.fish b/nix/homeModules/common/fish/shellInit.fish index 0a1cfd24..c99199ca 100644 --- a/nix/homeModules/common/fish/shellInit.fish +++ b/nix/homeModules/common/fish/shellInit.fish @@ -83,7 +83,4 @@ set -x fzf_fd_opts --hidden --exclude=.git # fzf-fish using patdiff would show incomplete diff, it is a bug # don't do it -# fd uses LS_COLORS -set -x LS_COLORS (vivid -m 24-bit generate solarized-light) # similar to milou - set -g sponge_purge_only_on_exit true From a9a85f16a44ab48b7a7a1fee1f8b5e84eccceb6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Mon, 26 Jan 2026 21:35:43 +0100 Subject: [PATCH 111/126] home/fish: remove fd --- nix/homeModules/common/fish/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nix/homeModules/common/fish/default.nix b/nix/homeModules/common/fish/default.nix index 9b5994fa..77f15131 100644 --- a/nix/homeModules/common/fish/default.nix +++ b/nix/homeModules/common/fish/default.nix @@ -15,9 +15,8 @@ pkgs.nix-output-monitor # pretty ui for shells ]; programs = { - fd.enable = true; fzf.enable = true; - # fd uses LS_COLORS + # attempt to make color look less bad vivid = { enable = true; activeTheme = "solarized-light"; # similar to milou From 64921628a80186c1cd2a6ef1d5e69185b41177a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Mon, 26 Jan 2026 21:42:29 +0100 Subject: [PATCH 112/126] home/ghostty: hide cursor when typing --- nix/homeModules/common/ghostty.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nix/homeModules/common/ghostty.nix b/nix/homeModules/common/ghostty.nix index d259e588..2b0513f4 100644 --- a/nix/homeModules/common/ghostty.nix +++ b/nix/homeModules/common/ghostty.nix @@ -28,6 +28,8 @@ in "ctrl+-=decrease_font_size:1" ]; + mouse-hide-while-typing = true; + # Theme background = "#fdf6e3"; foreground = "#073642"; From e645fcebfe6a507becb832f781a3f3b3b406a021 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Mon, 26 Jan 2026 21:56:48 +0100 Subject: [PATCH 113/126] packages/tmux-sessionizer: add fd as dependency --- nix/packages/by-name/tmux-sessionizer/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nix/packages/by-name/tmux-sessionizer/package.nix b/nix/packages/by-name/tmux-sessionizer/package.nix index 63c7cbc1..7e18e495 100644 --- a/nix/packages/by-name/tmux-sessionizer/package.nix +++ b/nix/packages/by-name/tmux-sessionizer/package.nix @@ -2,6 +2,7 @@ writeShellApplication, tmux, procps, + fd, fzf, gnused, lib, @@ -42,6 +43,7 @@ let tmux-sessionizer = writeShellApplication { name = "tmux-sessionizer"; runtimeInputs = [ + fd fzf gnused ]; From 2dd8b24a3390d20fa24fe60aecffa0ee71a08453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Tue, 27 Jan 2026 11:41:59 +0100 Subject: [PATCH 114/126] Revert "home/fish: remove fd" fd is needed by fish.fzf, when `cat`ting current directory. This reverts commit a9a85f16a44ab48b7a7a1fee1f8b5e84eccceb6b. --- nix/homeModules/common/fish/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nix/homeModules/common/fish/default.nix b/nix/homeModules/common/fish/default.nix index 77f15131..9b5994fa 100644 --- a/nix/homeModules/common/fish/default.nix +++ b/nix/homeModules/common/fish/default.nix @@ -15,8 +15,9 @@ pkgs.nix-output-monitor # pretty ui for shells ]; programs = { + fd.enable = true; fzf.enable = true; - # attempt to make color look less bad + # fd uses LS_COLORS vivid = { enable = true; activeTheme = "solarized-light"; # similar to milou From f8aae6bd6522ab82dd78a58d0ee44b92cda37894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 29 Jan 2026 15:06:13 +0100 Subject: [PATCH 115/126] vanadium: add ghostty substituter --- nix/configurations/vanadium/home/dev.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nix/configurations/vanadium/home/dev.nix b/nix/configurations/vanadium/home/dev.nix index 034946b3..dddef0f0 100644 --- a/nix/configurations/vanadium/home/dev.nix +++ b/nix/configurations/vanadium/home/dev.nix @@ -75,6 +75,7 @@ "https://haskell-language-server.cachix.org" "https://helix.cachix.org" "https://cache.iog.io" + "https://ghostty.cachix.org" ]; extra-trusted-public-keys = [ "ghc-nix.cachix.org-1:ziC/I4BPqeA4VbtOFpFpu6D1t6ymFvRWke/lc2+qjcg=" @@ -82,6 +83,7 @@ "haskell-language-server.cachix.org-1:juFfHrwkOxqIOZShtC4YC1uT1bBcq2RSvC7OMKx0Nz8=" "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs=" "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" + "ghostty.cachix.org-1:QB389yTa6gTyneehvqG58y0WnHjQOqgnA+wBnpWWxns=" ]; }; }; From 2f4b5e59fec745efed02226d829609c044994308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 29 Jan 2026 15:22:28 +0100 Subject: [PATCH 116/126] nixos/system-nixconf: disable prompt to accept-flake-config --- nix/nixosModules/common/system-nixconf.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nix/nixosModules/common/system-nixconf.nix b/nix/nixosModules/common/system-nixconf.nix index fdfb8d20..cbce71b6 100644 --- a/nix/nixosModules/common/system-nixconf.nix +++ b/nix/nixosModules/common/system-nixconf.nix @@ -8,6 +8,10 @@ package = lib.mkDefault pkgs.nix; settings = { + # it is impossible to anser in nix-direnv, so we force it to off. + # https://github.com/nix-community/nix-direnv/issues/678 + accept-flake-config = lib.mkForce false; + # Try to have at least 10GB of space by default min-free = lib.mkDefault (5 * 1024 * 1024 * 1024); max-free = lib.mkDefault (10 * 1024 * 1024 * 1024); From 80d3a7234ec7dac8116aa5f803d1b2fa448c0a15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 29 Jan 2026 15:39:40 +0100 Subject: [PATCH 117/126] nvim/lsp: enable zls --- .config/nvim/plugin/lsp.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.config/nvim/plugin/lsp.lua b/.config/nvim/plugin/lsp.lua index 087193b5..ab37b57d 100644 --- a/.config/nvim/plugin/lsp.lua +++ b/.config/nvim/plugin/lsp.lua @@ -24,6 +24,8 @@ local servers = { ["nil"] = { formatting = { command = { "nixfmt" } } }, }, }, + + zls = {}, } vim.diagnostic.config { From ae75bd748316d60c721937e252cf203a603b73da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 29 Jan 2026 15:43:35 +0100 Subject: [PATCH 118/126] home/{zen-browser,firefox}: don't always use new windows It's actually annoying --- nix/homeModules/common/firefox.nix | 4 ---- nix/homeModules/common/zen-browser.nix | 4 ---- 2 files changed, 8 deletions(-) diff --git a/nix/homeModules/common/firefox.nix b/nix/homeModules/common/firefox.nix index 194206bf..357b05f0 100644 --- a/nix/homeModules/common/firefox.nix +++ b/nix/homeModules/common/firefox.nix @@ -54,10 +54,6 @@ in "browser.ctrlTab.sortByRecentlyUsed" = false; "layout.css.devPixelsPerPx" = 1.1; - # open links in new window - # this works a lot better with xmonad where I have a bunch of windows - "browser.link.open_newwindow" = 2; - # Sponsored crap # Yes "browser.newtabpage.activity-stream.showSearch" = true; diff --git a/nix/homeModules/common/zen-browser.nix b/nix/homeModules/common/zen-browser.nix index 4b2e2fbc..e2975bba 100644 --- a/nix/homeModules/common/zen-browser.nix +++ b/nix/homeModules/common/zen-browser.nix @@ -71,10 +71,6 @@ in "browser.tabs.closeWindowWithLastTab" = true; "general.smoothScroll" = false; - # open links in new window - # this works a lot better with xmonad where I have a bunch of windows - "browser.link.open_newwindow" = 2; - # Sponsored crap # Yes "browser.newtabpage.activity-stream.showSearch" = true; From 760774d05391b3767f43ccc6fc09587801c084a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 29 Jan 2026 15:50:16 +0100 Subject: [PATCH 119/126] home/{zen-browser,firefox}: refactor --- nix/homeModules/common/firefox.nix | 4 + nix/homeModules/common/zen-browser.nix | 130 +++---------------------- 2 files changed, 15 insertions(+), 119 deletions(-) diff --git a/nix/homeModules/common/firefox.nix b/nix/homeModules/common/firefox.nix index 357b05f0..4cbb38bb 100644 --- a/nix/homeModules/common/firefox.nix +++ b/nix/homeModules/common/firefox.nix @@ -53,6 +53,10 @@ in "browser.tabs.loadInBackground" = true; "browser.ctrlTab.sortByRecentlyUsed" = false; "layout.css.devPixelsPerPx" = 1.1; + "browser.startup.page" = 1; + "browser.translations.automaticallyPopup" = false; + "browser.tabs.closeWindowWithLastTab" = true; + "general.smoothScroll" = false; # Sponsored crap # Yes diff --git a/nix/homeModules/common/zen-browser.nix b/nix/homeModules/common/zen-browser.nix index e2975bba..8ba46dd0 100644 --- a/nix/homeModules/common/zen-browser.nix +++ b/nix/homeModules/common/zen-browser.nix @@ -1,53 +1,17 @@ { - pkgs, config, lib, ... }: let - inherit (pkgs) nur; - cfg = config.programs.zen-browser; + + firefoxCfg = config.programs.firefox; in { programs.zen-browser = { - # https://mozilla.github.io/policy-templates - # The following have more complex logic, keep them as policies and not profiles - policies = { - RequestedLocales = [ - "fr-FR" # for fuck sake stop showing me translated version of French gov sites - "zh-TW" - "en-US" - ]; + policies = firefoxCfg.policies; - SearchEngines = { - Remove = [ - "Google" - "Bing" - "DuckDuckGo" - "Qwant" - "eBay" - "Perplexity" - ]; - Default = "DuckDuckGo Lite"; - Add = [ - { - Name = "DuckDuckGo Lite"; - URLTemplate = "https://lite.duckduckgo.com/lite/search?q={searchTerms}"; - } - ]; - }; - NoDefaultBookmarks = true; - DisplayMenuBar = "never"; - DisplayBookmarksToolbar = "never"; - DNSOverHTTPS = { - Enabled = false; - }; - }; - - # https://searchfox.org/mozilla-central/source/browser/components/enterprisepolicies/Policies.sys.mjs - # Some policies can be rewritten to profiles configuration - # # "locked" semantic from zen (doesn't seem to be doing anything, attempted for zen-twilight 1.18t) # https://github.com/0xc000022070/zen-browser-flake/tree/main#preferences # @@ -57,87 +21,15 @@ in # - click the buttons # - diff it # diff .zen/default/prefs.js{.bk,} - profiles.default = { - settings = { + profiles.default = lib.mkMerge [ + firefoxCfg.profiles.default + { # Zen specific - "zen.theme.content-element-separation" = 0; # Remove "borders" around window - - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - "browser.tabs.loadInBackground" = true; - "browser.ctrlTab.sortByRecentlyUsed" = false; - "layout.css.devPixelsPerPx" = 1.1; - "browser.startup.page" = 1; - "browser.translations.automaticallyPopup" = false; - "browser.tabs.closeWindowWithLastTab" = true; - "general.smoothScroll" = false; - - # Sponsored crap - # Yes - "browser.newtabpage.activity-stream.showSearch" = true; - "browser.newtabpage.activity-stream.feeds.topsites" = true; - # No - "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; - "browser.newtabpage.activity-stream.feeds.section.highlights" = false; - "browser.newtabpage.activity-stream.feeds.system.topstories" = false; - "browser.newtabpage.activity-stream.feeds.section.topstories" = false; - "browser.newtabpage.activity-stream.showSponsored" = false; - - # URL - # Yes - "browser.urlbar.suggest.quicksuggest.nonsponsored" = true; - # No - "browser.urlbar.suggest.quicksuggest.sponsored" = false; - - # Pasword manager - "signon.rememberSignons" = false; - "services.passwordSavingEnabled" = false; - "pref.privacy.disable_button.view_passwords" = false; - - # Hardware acceleration - "layers.acceleration.disabled" = false; - - # Screenshot - "screenshots.browser.component.enabled" = true; - - # Recommendations - "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; - "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false; - "extensions.htmlaboutaddons.recommendations.enabled" = false; # Addons - - # Onboarding - "browser.aboutwelcome.enabled" = false; - - # AI crap - "browser.ml.chat.enabled" = false; - "browser.ml.chat.page" = false; - "browser.ml.chat.shortcuts" = false; - "browser.ml.chat.sidebar" = false; - - # Prevent WebRTC leak - # https://mullvad.net/en/help/webrtc - "media.peerconnection.enabled" = false; - }; - - extensions.packages = - let - addons = nur.repos.rycee.firefox-addons; - in - [ - addons.ublock-origin - addons.privacy-badger - addons.user-agent-string-switcher - - /* - Here's to you who want to remove news feed eradicator because you find it annoying: - It is here to annoy you so it is less likely for you to be on the agency inversion path. - DO NOT REMOVE IT. I repeat, DO NOT REMOVE IT. - - If you think it's annoying, go do some jump rope, sing, live. - */ - addons.news-feed-eradicator # did you read the comment above? - addons.multi-account-containers - ]; - }; + settings = { + "zen.theme.content-element-separation" = 0; # Remove "borders" around window + }; + } + ]; }; xdg.mimeApps = From ea3571e226851e82ccb995e60dfae2ce670c8175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 29 Jan 2026 15:51:39 +0100 Subject: [PATCH 120/126] chore: run nixfmt tree-wide --- nix/configurations/vanadium/nixos/connectivity.nix | 1 - nix/configurations/vanadium/nixos/remote-builders.nix | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/nix/configurations/vanadium/nixos/connectivity.nix b/nix/configurations/vanadium/nixos/connectivity.nix index 37d8c312..92c3453b 100644 --- a/nix/configurations/vanadium/nixos/connectivity.nix +++ b/nix/configurations/vanadium/nixos/connectivity.nix @@ -84,7 +84,6 @@ hardware.bluetooth.enable = true; - # Printing and auto-discovery of Wi-Fi printers services.avahi = { enable = true; diff --git a/nix/configurations/vanadium/nixos/remote-builders.nix b/nix/configurations/vanadium/nixos/remote-builders.nix index 48195f91..b94c066a 100644 --- a/nix/configurations/vanadium/nixos/remote-builders.nix +++ b/nix/configurations/vanadium/nixos/remote-builders.nix @@ -6,7 +6,7 @@ let "kvm" ]; in -{pkgs, ...}: +{ pkgs, ... }: { nix.buildMachines = [ # NOTE: these hosts need to be put in the .ssh/config of root. From e78c2841d4ff6d4405963fe9e55159db678330f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 29 Jan 2026 16:56:25 +0100 Subject: [PATCH 121/126] home/lazygit: update lazygit config due to a breaking change --- nix/homeModules/common/git.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nix/homeModules/common/git.nix b/nix/homeModules/common/git.nix index 9b694bb4..920de2a8 100644 --- a/nix/homeModules/common/git.nix +++ b/nix/homeModules/common/git.nix @@ -20,7 +20,11 @@ in lib.mkIf patdiffCfg.enable { settings = { - git.paging.externalDiffCommand = "${lib.getExe' patdiffCfg.package "patdiff-git-wrapper"}"; + git.paging = [ + { + externalDiffCommand = "${lib.getExe' patdiffCfg.package "patdiff-git-wrapper"}"; + } + ]; }; }; From 29004da42afba064495d3ebbc3c54e83865cb1ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 29 Jan 2026 17:16:50 +0100 Subject: [PATCH 122/126] home/{firefox,zen-browser}: add sensible configurations --- nix/homeModules/common/firefox.nix | 6 +++++- nix/homeModules/common/zen-browser.nix | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/nix/homeModules/common/firefox.nix b/nix/homeModules/common/firefox.nix index 4cbb38bb..27d93132 100644 --- a/nix/homeModules/common/firefox.nix +++ b/nix/homeModules/common/firefox.nix @@ -54,9 +54,13 @@ in "browser.ctrlTab.sortByRecentlyUsed" = false; "layout.css.devPixelsPerPx" = 1.1; "browser.startup.page" = 1; + "browser.link.open_newwindow" = 2; # open in new tab "browser.translations.automaticallyPopup" = false; "browser.tabs.closeWindowWithLastTab" = true; - "general.smoothScroll" = false; + "general.smoothScroll" = false; # makes me dizzy + "accessibility.typeaheadfind" = true; # type to find + "layout.css.always_underline_links" = true; + "media.videocontrols.picture-in-picture.enable-when-switching-tabs.enabled" = true; # Sponsored crap # Yes diff --git a/nix/homeModules/common/zen-browser.nix b/nix/homeModules/common/zen-browser.nix index 8ba46dd0..a9cecff2 100644 --- a/nix/homeModules/common/zen-browser.nix +++ b/nix/homeModules/common/zen-browser.nix @@ -27,6 +27,11 @@ in # Zen specific settings = { "zen.theme.content-element-separation" = 0; # Remove "borders" around window + "zen.tabs.show-newtab-vertical" = false; + "zen.view.compact.toolbar-flash-popup" = true; + "zen.view.show-newtab-button-top" = false; + "zen.view.use-single-toolbar" = false; + "zen.tabs.ctrl-tab.ignore-pending-tabs" = true; # ctrl-tab ignore unloaded tabs }; } ]; From 7ff36d892632c9e12bab51fa48ad13bad16428e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 29 Jan 2026 22:48:48 +0100 Subject: [PATCH 123/126] home/{firefox,zen-browser}: don't always underline links This is actually very noisy in GitHub --- nix/homeModules/common/firefox.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/nix/homeModules/common/firefox.nix b/nix/homeModules/common/firefox.nix index 27d93132..18981f77 100644 --- a/nix/homeModules/common/firefox.nix +++ b/nix/homeModules/common/firefox.nix @@ -59,7 +59,6 @@ in "browser.tabs.closeWindowWithLastTab" = true; "general.smoothScroll" = false; # makes me dizzy "accessibility.typeaheadfind" = true; # type to find - "layout.css.always_underline_links" = true; "media.videocontrols.picture-in-picture.enable-when-switching-tabs.enabled" = true; # Sponsored crap From 496f2f1f4638f92fbd78bcbd053e578fabb4ca56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Wed, 7 Jan 2026 12:31:09 +0100 Subject: [PATCH 124/126] npins: bump to master --- npins/sources.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/npins/sources.json b/npins/sources.json index c6de909e..ce22557f 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -112,11 +112,11 @@ "owner": "nix-community", "repo": "home-manager" }, - "branch": "release-25.11", + "branch": "master", "submodules": false, - "revision": "75ed713570ca17427119e7e204ab3590cc3bf2a5", - "url": "https://github.com/nix-community/home-manager/archive/75ed713570ca17427119e7e204ab3590cc3bf2a5.tar.gz", - "hash": "sha256-TtjKgXyg1lMfh374w5uxutd6Vx2P/hU81aEhTxrO2cg=" + "revision": "4e8b7bef66c60735982369f3151b93e62fe37da7", + "url": "https://github.com/nix-community/home-manager/archive/4e8b7bef66c60735982369f3151b93e62fe37da7.tar.gz", + "hash": "0jva394l5s9vdrwfffvb8f4181i8832g6hffasn8nc8aqyn1wq5f" }, "infuse": { "type": "GitRelease", @@ -182,11 +182,11 @@ "owner": "nixos", "repo": "nixpkgs" }, - "branch": "nixos-25.11-small", + "branch": "nixos-unstable", "submodules": false, - "revision": "6c1fc6e4c93c084d0ae654ee85dc16cfe53b12b0", - "url": "https://github.com/nixos/nixpkgs/archive/6c1fc6e4c93c084d0ae654ee85dc16cfe53b12b0.tar.gz", - "hash": "sha256-3tAkeUYt7WBVgNfaXDW6HnrrGSuZooZ8nIAnbmKsY2A=" + "revision": "9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5", + "url": "https://github.com/nixos/nixpkgs/archive/9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5.tar.gz", + "hash": "1h3g9iyfj0xwz7i4ywcxjpp3p9xk7ahp563m0h1i25697sc2lrji" }, "npins": { "type": "GitRelease", From 8e201d91f5cc3b432455cdbaf001b25c041f4b48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Wed, 7 Jan 2026 12:35:21 +0100 Subject: [PATCH 125/126] nixos: use upstream xscreensaver module --- nix/configurations/vanadium.nix | 1 - nix/nixosModules/common/xscreensaver.nix | 54 ------------------------ 2 files changed, 55 deletions(-) delete mode 100644 nix/nixosModules/common/xscreensaver.nix diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 6be7ec17..a93a753f 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -109,7 +109,6 @@ in ../nixosModules/common/network.nix ../nixosModules/common/sudo-conf.nix ../nixosModules/common/system-nixconf.nix - ../nixosModules/common/xscreensaver.nix # QUIRK: # Had issue when building the installer as it fails to bootstrap itself diff --git a/nix/nixosModules/common/xscreensaver.nix b/nix/nixosModules/common/xscreensaver.nix deleted file mode 100644 index 49aebbd0..00000000 --- a/nix/nixosModules/common/xscreensaver.nix +++ /dev/null @@ -1,54 +0,0 @@ -# -# This module provides a service react to xscreensaver events -# -{ - config, - lib, - ... -}: -let - cfg = config.services.xscreensaver; -in -{ - options = { - services.xscreensaver.hooks = lib.mkOption { - type = with lib.types; attrsOf str; - description = "An attrset of events mapped a block of shell command to be run"; - default = { }; - }; - }; - - config = lib.mkIf cfg.enable { - systemd.user.services = { - "xscreensaver-hooks" = { - description = "Run commands on xscreensaver events"; - after = [ - "graphical-session.target" - "xscreensaver.service" - ]; - partOf = [ "graphical-session.target" ]; - wantedBy = [ "graphical-session.target" ]; - script = - let - handlers = lib.concatMapAttrsStringSep "\n" (event: action: '' - "${event}") - ( ${action} - ) - ;; - '') cfg.hooks; - in - '' - xscreensaver-command -watch | while read event rest; do - echo "The handler script got \"$event\"" - case $event in - ${handlers} - esac - done - ''; - path = [ - cfg.package # contains xscreensaver-command - ]; - }; - }; - }; -} From c7a09c5a23330d06f1fbbba60c3fdcc1e22ac346 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Wed, 7 Jan 2026 12:35:57 +0100 Subject: [PATCH 126/126] vanadium: rename networking.wireless.userControlled.enable to networking.wireless.userControlled --- nix/configurations/vanadium/nixos/connectivity.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/configurations/vanadium/nixos/connectivity.nix b/nix/configurations/vanadium/nixos/connectivity.nix index 92c3453b..9b48c9e3 100644 --- a/nix/configurations/vanadium/nixos/connectivity.nix +++ b/nix/configurations/vanadium/nixos/connectivity.nix @@ -35,7 +35,7 @@ # To enable roaming https://wiki.archlinux.org/title/Wpa_supplicant#Roaming wireless = { enable = true; - userControlled.enable = true; + userControlled = true; secretsFile = config.age.secrets.wpa_password.path; scanOnLowSignal = false; networks =