From 853d6aaa179d74e4ec7d1a3df8f386f7a06cf63f Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 25 May 2025 12:00:48 +0200 Subject: [PATCH 01/16] feat(home): Fix mu4e setup --- home/alex/modules/email.nix | 3 +++ home/alex/programs/emacs/doom/init.el | 4 ++-- home/alex/programs/emacs/doom/packages.el | 6 ++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/home/alex/modules/email.nix b/home/alex/modules/email.nix index 95e8a09..71bcbd3 100644 --- a/home/alex/modules/email.nix +++ b/home/alex/modules/email.nix @@ -35,6 +35,9 @@ in enable = true; hooks.preNew = "mbsync --all"; }; + programs.mu = { + enable = true; + }; accounts.email = { accounts.failco = mkAccount "me@failco.de" // { diff --git a/home/alex/programs/emacs/doom/init.el b/home/alex/programs/emacs/doom/init.el index a42d272..c76a1cf 100644 --- a/home/alex/programs/emacs/doom/init.el +++ b/home/alex/programs/emacs/doom/init.el @@ -177,8 +177,8 @@ (zig +lsp +tree-sitter) ; C, but simpler :email - ;; (mu4e +org +gmail) - (notmuch +org +afew) + (mu4e +org +gmail +mbsync) + ;; (notmuch +org +afew) ;;(wanderlust +gmail) :app diff --git a/home/alex/programs/emacs/doom/packages.el b/home/alex/programs/emacs/doom/packages.el index c1ac1df..7c1f4ee 100644 --- a/home/alex/programs/emacs/doom/packages.el +++ b/home/alex/programs/emacs/doom/packages.el @@ -53,8 +53,10 @@ ;; :recipe (:host github :repo "username/repo" ;; :files ("some-file.el" "src/lisp/*.el"))) -(unpin! compat) - ;(unpin! with-editor ghub) +;;(unpin! compat) +;;(unpin! with-editor ghub) + +(package! transient :pin "25b994a565ce8035330b0a3071ee430c0282349e") ; 0.8.8 (package! ormolu) (package! org-gtd From 57a942b52500e5987a3dfdcced435a892e0b10e4 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 25 May 2025 12:00:48 +0200 Subject: [PATCH 02/16] feat(home): Enable signal desktop --- flake.lock | 125 +++++++++++++++++++++++++++++++-------------- home/alex/home.nix | 1 + 2 files changed, 89 insertions(+), 37 deletions(-) diff --git a/flake.lock b/flake.lock index 765bc8b..ed7b1ac 100644 --- a/flake.lock +++ b/flake.lock @@ -10,11 +10,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1745630506, - "narHash": "sha256-bHCFgGeu8XjWlVuaWzi3QONjDW3coZDqSHvnd4l7xus=", + "lastModified": 1747575206, + "narHash": "sha256-NwmAFuDUO/PFcgaGGr4j3ozG9Pe5hZ/ogitWhY+D81k=", "owner": "ryantm", "repo": "agenix", - "rev": "96e078c646b711aee04b82ba01aefbff87004ded", + "rev": "4835b1dc898959d8547a871ef484930675cb47f1", "type": "github" }, "original": { @@ -68,11 +68,11 @@ ] }, "locked": { - "lastModified": 1746695594, - "narHash": "sha256-pAAWYs3S+/tY65vemHZdVSXpeIz4JINEJZoPoBjr8JU=", + "lastModified": 1748225455, + "narHash": "sha256-AzlJCKaM4wbEyEpV3I/PUq5mHnib2ryEy32c+qfj6xk=", "owner": "nix-community", "repo": "disko", - "rev": "6bb82b77ce140137177e30df067759931ab60a73", + "rev": "a894f2811e1ee8d10c50560551e50d6ab3c392ba", "type": "github" }, "original": { @@ -121,11 +121,11 @@ "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -152,6 +152,32 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "snm", + "flake-compat" + ], + "gitignore": "gitignore_2", + "nixpkgs": [ + "snm", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1742649964, + "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -173,6 +199,28 @@ "type": "github" } }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "snm", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -201,11 +249,11 @@ ] }, "locked": { - "lastModified": 1746719124, - "narHash": "sha256-KOL73WIjO00ds1oIe+5HAcGcpd/TfE6dymmmYbiSlYM=", + "lastModified": 1748737919, + "narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "3c59c5132b64e885faca381e713b579dcbddba75", + "rev": "5675a9686851d9626560052a032c4e14e533c1fa", "type": "github" }, "original": { @@ -286,11 +334,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1746461020, - "narHash": "sha256-7+pG1I9jvxNlmln4YgnlW4o+w0TZX24k688mibiFDUE=", + "lastModified": 1748693115, + "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3730d8a308f94996a9ba7c7138ede69c1b9ac4ae", + "rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc", "type": "github" }, "original": { @@ -300,19 +348,20 @@ "type": "github" } }, - "nixpkgs-24_11": { + "nixpkgs-25_05": { "locked": { - "lastModified": 1734083684, - "narHash": "sha256-5fNndbndxSx5d+C/D0p/VF32xDiJCJzyOqorOYW4JEo=", + "lastModified": 1747610100, + "narHash": "sha256-rpR5ZPMkWzcnCcYYo3lScqfuzEw5Uyfh+R0EKZfroAc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "314e12ba369ccdb9b352a4db26ff419f7c49fa84", + "rev": "ca49c4304acf0973078db0a9d200fd2bae75676d", "type": "github" }, "original": { - "id": "nixpkgs", - "ref": "nixos-24.11", - "type": "indirect" + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs-docs": { @@ -365,17 +414,18 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1732014248, - "narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=", + "lastModified": 1747179050, + "narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "23e89b7da85c3640bbc2173fe04f4bd114342367", + "rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e", "type": "github" }, "original": { - "id": "nixpkgs", + "owner": "NixOS", "ref": "nixos-unstable", - "type": "indirect" + "repo": "nixpkgs", + "type": "github" } }, "nmd": { @@ -441,11 +491,11 @@ ] }, "locked": { - "lastModified": 1746537231, - "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=", + "lastModified": 1747372754, + "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969", + "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", "type": "github" }, "original": { @@ -488,15 +538,16 @@ "inputs": { "blobs": "blobs", "flake-compat": "flake-compat_2", + "git-hooks": "git-hooks", "nixpkgs": "nixpkgs_2", - "nixpkgs-24_11": "nixpkgs-24_11" + "nixpkgs-25_05": "nixpkgs-25_05" }, "locked": { - "lastModified": 1746637515, - "narHash": "sha256-bUq2uHmsfY3SpJrR4dpncITykufTiD2320JsOKgIYl0=", + "lastModified": 1748689589, + "narHash": "sha256-ltwdNAsto54HMQFdrCprWXPFhNBfEuiCkj+GS7ZHvww=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "a7d2b05a9920d90f5eb8076f449acdb6c1ad79ca", + "rev": "c9f61e02aee97dc8c7d4f3739b012a992183508c", "type": "gitlab" }, "original": { @@ -508,11 +559,11 @@ }, "stable": { "locked": { - "lastModified": 1746557022, - "narHash": "sha256-QkNoyEf6TbaTW5UZYX0OkwIJ/ZMeKSSoOMnSDPQuol0=", + "lastModified": 1748421225, + "narHash": "sha256-XXILOc80tvlvEQgYpYFnze8MkQQmp3eQxFbTzb3m/R0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1d3aeb5a193b9ff13f63f4d9cc169fb88129f860", + "rev": "78add7b7abb61689e34fc23070a8f55e1d26185b", "type": "github" }, "original": { diff --git a/home/alex/home.nix b/home/alex/home.nix index 59d08a6..b576544 100644 --- a/home/alex/home.nix +++ b/home/alex/home.nix @@ -45,6 +45,7 @@ # social discord # talk to other people google-chrome + signal-desktop # system tools uhk-agent # my keyboard From 2e7fa6eb146694840675000ea4d7cf564656ce54 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 11 Jun 2025 15:16:46 +0200 Subject: [PATCH 03/16] chore: Update inputs --- flake.lock | 36 ++++++++++++++++++------------------ hosts/thrall/default.nix | 1 + 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/flake.lock b/flake.lock index ed7b1ac..fa072e9 100644 --- a/flake.lock +++ b/flake.lock @@ -68,11 +68,11 @@ ] }, "locked": { - "lastModified": 1748225455, - "narHash": "sha256-AzlJCKaM4wbEyEpV3I/PUq5mHnib2ryEy32c+qfj6xk=", + "lastModified": 1749436314, + "narHash": "sha256-CqmqU5FRg5AadtIkxwu8ulDSOSoIisUMZRLlcED3Q5w=", "owner": "nix-community", "repo": "disko", - "rev": "a894f2811e1ee8d10c50560551e50d6ab3c392ba", + "rev": "dfa4d1b9c39c0342ef133795127a3af14598017a", "type": "github" }, "original": { @@ -249,11 +249,11 @@ ] }, "locked": { - "lastModified": 1748737919, - "narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=", + "lastModified": 1749628652, + "narHash": "sha256-f8jDF4G9m7pPySeQc6KskqMgtcJq6X1o2CytMx66qAE=", "owner": "nix-community", "repo": "home-manager", - "rev": "5675a9686851d9626560052a032c4e14e533c1fa", + "rev": "450f06ec3cd0d86f67db58a7245db8848773e895", "type": "github" }, "original": { @@ -334,11 +334,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1748693115, - "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=", + "lastModified": 1749285348, + "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc", + "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f", "type": "github" }, "original": { @@ -491,11 +491,11 @@ ] }, "locked": { - "lastModified": 1747372754, - "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", + "lastModified": 1749636823, + "narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", + "rev": "623c56286de5a3193aa38891a6991b28f9bab056", "type": "github" }, "original": { @@ -543,11 +543,11 @@ "nixpkgs-25_05": "nixpkgs-25_05" }, "locked": { - "lastModified": 1748689589, - "narHash": "sha256-ltwdNAsto54HMQFdrCprWXPFhNBfEuiCkj+GS7ZHvww=", + "lastModified": 1749244584, + "narHash": "sha256-BGmEptAyP2NrP4gX7VMYWo53h5e8r2iE/uo2+YPMcfo=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "c9f61e02aee97dc8c7d4f3739b012a992183508c", + "rev": "8b27add0883067e990bff4f847b6f7b6f53324b9", "type": "gitlab" }, "original": { @@ -559,11 +559,11 @@ }, "stable": { "locked": { - "lastModified": 1748421225, - "narHash": "sha256-XXILOc80tvlvEQgYpYFnze8MkQQmp3eQxFbTzb3m/R0=", + "lastModified": 1749488106, + "narHash": "sha256-b9GIWdF/8jKpCC5JIMgDLZgwe8cEbty2fyTyo1eDFfI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "78add7b7abb61689e34fc23070a8f55e1d26185b", + "rev": "8fe3e32e7f210522377c3bcff80931a3284ace6a", "type": "github" }, "original": { diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index cc9024d..9f567f1 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -412,6 +412,7 @@ in mailserver = { enable = true; + stateVersion = 1; fqdn = "thrall.failco.de"; domains = [ "failco.de" From efa99d6331c4a460fa1fd9cbb8bec3e676c742ff Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 16 Jun 2025 20:57:41 +0200 Subject: [PATCH 04/16] dregil: Use gnome for now by default --- flake.nix | 14 ++++---------- home/alex/default.nix | 3 --- home/alex/home.nix | 18 +++++++++--------- home/alex/programs/xmonad/default.nix | 13 ++++++++++--- hosts/dregil/configuration.nix | 6 +----- modules/wm/x.nix | 3 ++- 6 files changed, 26 insertions(+), 31 deletions(-) diff --git a/flake.nix b/flake.nix index 1f9095c..23f2062 100644 --- a/flake.nix +++ b/flake.nix @@ -28,16 +28,6 @@ inputs.nixpkgs.follows = "nixpkgs-droid"; }; - # emacs = { - # url = "github:nix-community/emacs-overlay"; - # inputs.nixpkgs.follows = "nixpkgs"; - # }; - # - # simplex-chat = { - # url = "github:simplex-chat/simplex-chat"; - # inputs.nixpkgs.follows = "nixpkgs"; - # }; - # age for nix to store encrypted passwords conveniently agenix = { url = "github:ryantm/agenix"; @@ -129,6 +119,10 @@ modules = [ ./hosts/igor ]; }; + homeConfigurations."alex@dregil" = home-manager.lib.homeManagerConfiguration { + + }; + nixOnDroidConfigurations.default = with inputs; nix-on-droid.lib.nixOnDroidConfiguration { diff --git a/home/alex/default.nix b/home/alex/default.nix index 8e99ff4..62ee3b3 100644 --- a/home/alex/default.nix +++ b/home/alex/default.nix @@ -5,9 +5,6 @@ inputs, ... }: -let - electron-overlay = final: prev: { electron = final.electron_25; }; -in { imports = [ ]; diff --git a/home/alex/home.nix b/home/alex/home.nix index b576544..220259c 100644 --- a/home/alex/home.nix +++ b/home/alex/home.nix @@ -9,19 +9,19 @@ imports = [ ./cli.nix ./programs/rofi - ./programs/xmonad - #./programs/i3 + # ./programs/xmonad + # ./programs/i3 ./programs/jitsi-meet ./programs/simplex-chat ./programs/zathura ./programs/autorandr - ./services/polybar - ./services/dunst - ./services/udiskie + # ./services/polybar + # ./services/dunst + # ./services/udiskie # ./services/picom - ./services/screen-locker - ./services/blueman-applet - ./services/network-manager + # ./services/screen-locker + # ./services/blueman-applet + # ./services/network-manager ./services/syncthing ./services/git-sync ./modules/email.nix @@ -100,7 +100,7 @@ { enable = true; loginExtra = auth-socket-env; - initExtra = auth-socket-env; + initContent = auth-socket-env; }; }; diff --git a/home/alex/programs/xmonad/default.nix b/home/alex/programs/xmonad/default.nix index 486cc14..9256cb8 100644 --- a/home/alex/programs/xmonad/default.nix +++ b/home/alex/programs/xmonad/default.nix @@ -1,5 +1,9 @@ -{ config, lib, pkgs, ... }: - +{ + config, + lib, + pkgs, + ... +}: { config.xsession.windowManager.xmonad = { enable = true; @@ -8,5 +12,8 @@ }; # control backlight - config.home.packages = [ pkgs.xorg.xbacklight pkgs.scrot ]; + config.home.packages = [ + pkgs.xorg.xbacklight + pkgs.scrot + ]; } diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index f89f65e..3001398 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -50,11 +50,7 @@ in extraLocaleSettings = { TIME_STYLE = "iso"; }; - supportedLocales = [ - "C.UTF-8/UTF-8" - "en_US.UTF-8/UTF-8" - "de_DE.UTF-8/UTF-8" - ]; + extraLocales = "all"; }; console = { diff --git a/modules/wm/x.nix b/modules/wm/x.nix index d186430..c96b0fe 100644 --- a/modules/wm/x.nix +++ b/modules/wm/x.nix @@ -28,9 +28,10 @@ }; desktopManager.xfce.enable = true; - desktopManager.gnome.enable = true; }; + desktopManager.gnome.enable = true; + # Enable touchpad support (enabled default in most desktopManager). libinput = { enable = true; From 49b169f4732d88f91376748b63d339f26a5469e1 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 12 Jun 2025 14:03:27 +0200 Subject: [PATCH 05/16] chore: Update inputs --- flake.lock | 60 +++++----- hosts/thrall/default.nix | 2 +- modules/nix-config.nix | 10 +- scripts/nixos-mailserver-migration-03.py | 142 +++++++++++++++++++++++ 4 files changed, 181 insertions(+), 33 deletions(-) create mode 100755 scripts/nixos-mailserver-migration-03.py diff --git a/flake.lock b/flake.lock index fa072e9..2ed5f4b 100644 --- a/flake.lock +++ b/flake.lock @@ -10,11 +10,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1747575206, - "narHash": "sha256-NwmAFuDUO/PFcgaGGr4j3ozG9Pe5hZ/ogitWhY+D81k=", + "lastModified": 1750173260, + "narHash": "sha256-9P1FziAwl5+3edkfFcr5HeGtQUtrSdk/MksX39GieoA=", "owner": "ryantm", "repo": "agenix", - "rev": "4835b1dc898959d8547a871ef484930675cb47f1", + "rev": "531beac616433bac6f9e2a19feb8e99a22a66baf", "type": "github" }, "original": { @@ -68,11 +68,11 @@ ] }, "locked": { - "lastModified": 1749436314, - "narHash": "sha256-CqmqU5FRg5AadtIkxwu8ulDSOSoIisUMZRLlcED3Q5w=", + "lastModified": 1751607816, + "narHash": "sha256-5PtrwjqCIJ4DKQhzYdm8RFePBuwb+yTzjV52wWoGSt4=", "owner": "nix-community", "repo": "disko", - "rev": "dfa4d1b9c39c0342ef133795127a3af14598017a", + "rev": "da6109c917b48abc1f76dd5c9bf3901c8c80f662", "type": "github" }, "original": { @@ -165,11 +165,11 @@ ] }, "locked": { - "lastModified": 1742649964, - "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", + "lastModified": 1749636823, + "narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", + "rev": "623c56286de5a3193aa38891a6991b28f9bab056", "type": "github" }, "original": { @@ -249,11 +249,11 @@ ] }, "locked": { - "lastModified": 1749628652, - "narHash": "sha256-f8jDF4G9m7pPySeQc6KskqMgtcJq6X1o2CytMx66qAE=", + "lastModified": 1751760902, + "narHash": "sha256-qBGNn7T/zOgUDQTo/RM/D2oxMkB2x36j3ajvpVanEVs=", "owner": "nix-community", "repo": "home-manager", - "rev": "450f06ec3cd0d86f67db58a7245db8848773e895", + "rev": "8b0180dde1d6f4cf632e046309e8f963924dfbd0", "type": "github" }, "original": { @@ -334,11 +334,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1749285348, - "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=", + "lastModified": 1751637120, + "narHash": "sha256-xVNy/XopSfIG9c46nRmPaKfH1Gn/56vQ8++xWA8itO4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f", + "rev": "5c724ed1388e53cc231ed98330a60eb2f7be4be3", "type": "github" }, "original": { @@ -350,11 +350,11 @@ }, "nixpkgs-25_05": { "locked": { - "lastModified": 1747610100, - "narHash": "sha256-rpR5ZPMkWzcnCcYYo3lScqfuzEw5Uyfh+R0EKZfroAc=", + "lastModified": 1749727998, + "narHash": "sha256-mHv/yeUbmL91/TvV95p+mBVahm9mdQMJoqaTVTALaFw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ca49c4304acf0973078db0a9d200fd2bae75676d", + "rev": "fd487183437963a59ba763c0cc4f27e3447dd6dd", "type": "github" }, "original": { @@ -414,11 +414,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1747179050, - "narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=", + "lastModified": 1749285348, + "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e", + "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f", "type": "github" }, "original": { @@ -491,11 +491,11 @@ ] }, "locked": { - "lastModified": 1749636823, - "narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=", + "lastModified": 1750779888, + "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "623c56286de5a3193aa38891a6991b28f9bab056", + "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", "type": "github" }, "original": { @@ -543,11 +543,11 @@ "nixpkgs-25_05": "nixpkgs-25_05" }, "locked": { - "lastModified": 1749244584, - "narHash": "sha256-BGmEptAyP2NrP4gX7VMYWo53h5e8r2iE/uo2+YPMcfo=", + "lastModified": 1751772161, + "narHash": "sha256-CxekYKL+M4VGb1pQk7lVDRe1x3th/5Du2xq/X1nNors=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "8b27add0883067e990bff4f847b6f7b6f53324b9", + "rev": "6004878dc6c1cb1c0cedd8c10a59d416c8dad9c9", "type": "gitlab" }, "original": { @@ -559,11 +559,11 @@ }, "stable": { "locked": { - "lastModified": 1749488106, - "narHash": "sha256-b9GIWdF/8jKpCC5JIMgDLZgwe8cEbty2fyTyo1eDFfI=", + "lastModified": 1751274312, + "narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8fe3e32e7f210522377c3bcff80931a3284ace6a", + "rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674", "type": "github" }, "original": { diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 9f567f1..0da18d6 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -412,7 +412,7 @@ in mailserver = { enable = true; - stateVersion = 1; + stateVersion = 3; fqdn = "thrall.failco.de"; domains = [ "failco.de" diff --git a/modules/nix-config.nix b/modules/nix-config.nix index 80b1825..09a5343 100644 --- a/modules/nix-config.nix +++ b/modules/nix-config.nix @@ -26,8 +26,14 @@ keep-outputs = true; keep-derivations = true; - trusted-substituters = [ "https://devenv.cachix.org" ]; - trusted-public-keys = [ "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" ]; + trusted-substituters = [ + "https://devenv.cachix.org" + "https://nixcache.reflex-frp.org" + ]; + trusted-public-keys = [ + "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" + "ryantrinkle.com-1:JJiAKaRv9mWgpVAz8dwewnZe0AzzEAzPkagE9SP5NWI=" + ]; trusted-users = [ "root" "alex" diff --git a/scripts/nixos-mailserver-migration-03.py b/scripts/nixos-mailserver-migration-03.py new file mode 100755 index 0000000..6aedad4 --- /dev/null +++ b/scripts/nixos-mailserver-migration-03.py @@ -0,0 +1,142 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i python3 -p python3 + +import argparse +import os +import shutil +import sys +from enum import Enum +from pathlib import Path +from pwd import getpwnam + + +class FolderLayout(Enum): + Default = 1 + Folder = 2 + + +def check_user(vmail_root: Path): + owner = vmail_root.owner() + owner_uid = getpwnam(owner).pw_uid + + if os.geteuid() == owner_uid: + return + + try: + print( + f"Trying to switch effective user id to {owner_uid} ({owner})", + file=sys.stderr, + ) + os.seteuid(owner_uid) + return + except PermissionError: + print( + f"Failed switching to virtual mail user. Please run this script under it, for example by using `sudo -u {owner}`)", + file=sys.stderr, + ) + sys.exit(1) + + +def is_maildir_related(path: Path, layout: FolderLayout) -> bool: + if path.name in [ + "subscriptions" + # https://doc.dovecot.org/2.3/admin_manual/mailbox_formats/maildir/#imap-uid-mapping + "dovecot-uidlist", + # https://doc.dovecot.org/2.3/admin_manual/mailbox_formats/maildir/#imap-keywords + "dovecot-keywords", + ]: + return True + if not path.is_dir(): + return False + if path.name in ["cur", "new", "tmp"]: + return True + if layout is FolderLayout.Default and path.name.startswith("."): + return True + if layout is FolderLayout.Folder: + if path.name in ["mail"]: + return False + return True + + return False + + +def mkdir(dst: Path, dry_run: bool = True): + print(f'mkdir "{dst}"') + if not dry_run: + # u+rwx, setgid + dst.mkdir(mode=0o2700) + + +def move(src: Path, dst: Path, dry_run: bool = True): + print(f'mv "{src}" "{dst}"') + if not dry_run: + src.rename(dst) + + +def delete(dst: Path, dry_run: bool = True): + if not dst.exists(): + return + + if dst.is_dir(): + print(f'rm --recursive "{dst}"') + if not dry_run: + shutil.rmtree(dst) + else: + print(f'rm "{dst}"') + if not dry_run: + dst.unlink() + + +def main(vmail_root: Path, layout: FolderLayout, dry_run: bool = True): + maildirs = {path.parent for path in vmail_root.glob("*/*/cur")} + maybe_delete = [] + + # The old maildir will be the new home directory + for homedir in maildirs: + maildir = homedir / "mail" + mkdir(maildir, dry_run) + + for path in homedir.iterdir(): + if is_maildir_related(path, layout): + move(path, maildir / path.name, dry_run) + else: + maybe_delete.append(path) + + # Files that are part of the previous home directory, but now obsolete + for path in [ + vmail_root / ".dovecot.lda-dupes", + vmail_root / ".dovecot.lda-dupes.locks", + ]: + delete(path, dry_run) + + # The remaining files are likely obsolete, but should still be checked with care + for path in maybe_delete: + print(f"# rm {str(path)}") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description=""" + NixOS Mailserver Migration #3: Dovecot mail directory migration + (https://nixos-mailserver.readthedocs.io/en/latest/migrations.html#dovecot-mail-directory-migration) + """ + ) + parser.add_argument( + "vmail_root", type=Path, help="Path to the `mailserver.mailDirectory`" + ) + parser.add_argument( + "--layout", + choices=["default", "folder"], + required=True, + help="Folder layout: 'default' unless `mailserver.useFsLayout` was enabled, then'folder'", + ) + parser.add_argument( + "--execute", action="store_true", help="Actually perform changes" + ) + + args = parser.parse_args() + + layout = FolderLayout.Default if args.layout == "default" else FolderLayout.Folder + + check_user(args.vmail_root) + main(args.vmail_root, layout, not args.execute) From 0f31a3e5602dd179d1db997bcb92661c51f94095 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Tue, 17 Jun 2025 21:49:38 +0200 Subject: [PATCH 06/16] modules(wm): disable XFCE desktop environment --- modules/wm/x.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/wm/x.nix b/modules/wm/x.nix index c96b0fe..aa86b29 100644 --- a/modules/wm/x.nix +++ b/modules/wm/x.nix @@ -26,8 +26,6 @@ enable = true; greeters.slick.enable = true; }; - - desktopManager.xfce.enable = true; }; desktopManager.gnome.enable = true; From f0707aacdd60dbe5eb72016bcaf0e3a64b08321d Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Tue, 17 Jun 2025 21:49:38 +0200 Subject: [PATCH 07/16] home(alex): enable gnome paperwm extension --- home/alex/home.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/home/alex/home.nix b/home/alex/home.nix index 220259c..3d8b050 100644 --- a/home/alex/home.nix +++ b/home/alex/home.nix @@ -54,6 +54,8 @@ parallel-disk-usage gdu + gnomeExtensions.paperwm + # gaming support stable.bottles wine64Packages.stagingFull From 9d0eba39ba25fa9d3234cc9190fd6ced1be25b07 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Tue, 17 Jun 2025 21:49:38 +0200 Subject: [PATCH 08/16] home(alex): enable ssh master control --- home/alex/cli.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/home/alex/cli.nix b/home/alex/cli.nix index b408b76..7cca3f1 100644 --- a/home/alex/cli.nix +++ b/home/alex/cli.nix @@ -186,7 +186,11 @@ in }; }; - ssh.enable = true; + ssh = { + enable = true; + controlMaster = "auto"; + controlPersist = "10m"; + }; texlive.enable = true; }; From 370d124efcd1eea5af8cc151a190dea161b4c108 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 10 Jul 2025 19:38:17 +0200 Subject: [PATCH 09/16] home(alex): do not provide .config/doom --- home/alex/programs/emacs/default.nix | 5 ----- home/alex/programs/emacs/doom/config.el | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/home/alex/programs/emacs/default.nix b/home/alex/programs/emacs/default.nix index 1707339..d94091f 100644 --- a/home/alex/programs/emacs/default.nix +++ b/home/alex/programs/emacs/default.nix @@ -23,9 +23,4 @@ in defaultEditor = true; startWithUserSession = true; }; - - xdg.configFile.doom = { - target = "doom"; - source = ./doom; - }; } diff --git a/home/alex/programs/emacs/doom/config.el b/home/alex/programs/emacs/doom/config.el index c5ee5c8..c9e42e1 100644 --- a/home/alex/programs/emacs/doom/config.el +++ b/home/alex/programs/emacs/doom/config.el @@ -375,7 +375,7 @@ :after denote) (use-package! cov) -(use-package! casual-suite) +;(use-package! casual-suite) (map! :desc "Move workspace to the left" :leader :n "TAB <" #'+workspace/swap-left) (map! :desc "Move workspace to the left" :leader :n "TAB >" #'+workspace/swap-right) From 8c684af604e7e13563b4044ff2a44d710415e20b Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 17 Jul 2025 14:26:29 +0200 Subject: [PATCH 10/16] emacs: do not pin transient package --- home/alex/programs/emacs/doom/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/alex/programs/emacs/doom/packages.el b/home/alex/programs/emacs/doom/packages.el index 7c1f4ee..9acca29 100644 --- a/home/alex/programs/emacs/doom/packages.el +++ b/home/alex/programs/emacs/doom/packages.el @@ -56,7 +56,7 @@ ;;(unpin! compat) ;;(unpin! with-editor ghub) -(package! transient :pin "25b994a565ce8035330b0a3071ee430c0282349e") ; 0.8.8 +;;(package! transient :pin "25b994a565ce8035330b0a3071ee430c0282349e") ; 0.8.8 (package! ormolu) (package! org-gtd From 53efeef9c40c9de012951c6663c958b563c72809 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 28 Jul 2025 21:43:40 +0200 Subject: [PATCH 11/16] home(alex): fix tramp connection --- home/alex/programs/shell/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/home/alex/programs/shell/default.nix b/home/alex/programs/shell/default.nix index 3866337..7f36b7b 100644 --- a/home/alex/programs/shell/default.nix +++ b/home/alex/programs/shell/default.nix @@ -15,6 +15,11 @@ programs.zsh = { enable = true; autosuggestion.enable = true; + + initContent = '' + [ $TERM = "dumb" ] && unsetopt zle && PS1='$ ' + ''; + oh-my-zsh = { enable = true; plugins = [ From 65b164997a41cc16f4a53d2b0f7d01896c6bd838 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 28 Jul 2025 21:25:57 +0200 Subject: [PATCH 12/16] home(alex): configure zsh --- home/alex/programs/shell/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/home/alex/programs/shell/default.nix b/home/alex/programs/shell/default.nix index 7f36b7b..48b25b9 100644 --- a/home/alex/programs/shell/default.nix +++ b/home/alex/programs/shell/default.nix @@ -14,7 +14,9 @@ programs.zsh = { enable = true; + enableCompletion = true; autosuggestion.enable = true; + syntaxHighlighting.enable = true; initContent = '' [ $TERM = "dumb" ] && unsetopt zle && PS1='$ ' From 0d59442168abc29cf4b49df6dfd5593c832a88ee Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 31 Jul 2025 17:17:10 +0200 Subject: [PATCH 13/16] chore: Update inputs --- flake.lock | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/flake.lock b/flake.lock index 2ed5f4b..9a52e9f 100644 --- a/flake.lock +++ b/flake.lock @@ -68,11 +68,11 @@ ] }, "locked": { - "lastModified": 1751607816, - "narHash": "sha256-5PtrwjqCIJ4DKQhzYdm8RFePBuwb+yTzjV52wWoGSt4=", + "lastModified": 1753140376, + "narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=", "owner": "nix-community", "repo": "disko", - "rev": "da6109c917b48abc1f76dd5c9bf3901c8c80f662", + "rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c", "type": "github" }, "original": { @@ -165,11 +165,11 @@ ] }, "locked": { - "lastModified": 1749636823, - "narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=", + "lastModified": 1750779888, + "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "623c56286de5a3193aa38891a6991b28f9bab056", + "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", "type": "github" }, "original": { @@ -249,11 +249,11 @@ ] }, "locked": { - "lastModified": 1751760902, - "narHash": "sha256-qBGNn7T/zOgUDQTo/RM/D2oxMkB2x36j3ajvpVanEVs=", + "lastModified": 1753943136, + "narHash": "sha256-eiEE5SabVcIlGSTRcRyBjmJMaYAV95SJnjy8YSsVeW4=", "owner": "nix-community", "repo": "home-manager", - "rev": "8b0180dde1d6f4cf632e046309e8f963924dfbd0", + "rev": "bd82507edd860c453471c46957cbbe3c9fd01b5c", "type": "github" }, "original": { @@ -334,11 +334,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1751637120, - "narHash": "sha256-xVNy/XopSfIG9c46nRmPaKfH1Gn/56vQ8++xWA8itO4=", + "lastModified": 1753694789, + "narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5c724ed1388e53cc231ed98330a60eb2f7be4be3", + "rev": "dc9637876d0dcc8c9e5e22986b857632effeb727", "type": "github" }, "original": { @@ -350,11 +350,11 @@ }, "nixpkgs-25_05": { "locked": { - "lastModified": 1749727998, - "narHash": "sha256-mHv/yeUbmL91/TvV95p+mBVahm9mdQMJoqaTVTALaFw=", + "lastModified": 1751741127, + "narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fd487183437963a59ba763c0cc4f27e3447dd6dd", + "rev": "29e290002bfff26af1db6f64d070698019460302", "type": "github" }, "original": { @@ -414,11 +414,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1749285348, - "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=", + "lastModified": 1751792365, + "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f", + "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", "type": "github" }, "original": { @@ -543,11 +543,11 @@ "nixpkgs-25_05": "nixpkgs-25_05" }, "locked": { - "lastModified": 1751772161, - "narHash": "sha256-CxekYKL+M4VGb1pQk7lVDRe1x3th/5Du2xq/X1nNors=", + "lastModified": 1753285640, + "narHash": "sha256-ofa021NeHDXAxg5J8mSnn8rHa393PAlD85ZCetP4Qa0=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "6004878dc6c1cb1c0cedd8c10a59d416c8dad9c9", + "rev": "ce87c8a9771d1a20c3fa3b60113b9b0821627dcb", "type": "gitlab" }, "original": { From c4ce3cf2467ddac1e21ade47c2f2e1f64750cbe3 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 4 Sep 2025 16:04:14 +0200 Subject: [PATCH 14/16] feat(docs): Enable Tika support for paperless --- hosts/thrall/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 0da18d6..164a582 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -324,6 +324,7 @@ in address = "127.0.0.1"; port = 3002; consumptionDirIsPublic = true; + configureTika = true; settings = { PAPERLESS_OCR_LANGUAGE = "deu+eng"; PAPERLESS_OCR_USER_ARGS = ''{"invalidate_digital_signatures": true}''; @@ -460,6 +461,9 @@ in ]; "anne@kobjolke.de" = "anne.kobjolke@gmail.com"; "alexander@kobjolke.de" = "alex@kobjolke.de"; + "ida@kobjolke.de" = "alex@kobjolke.de"; + "klara@kobjolke.de" = "alex@kobjolke.de"; + "charlie@kobjolke.de" = "alex@kobjolke.de"; }; certificateScheme = "acme-nginx"; From f1c078957163421fbe8ef0ec89169c074b6cf9bf Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 4 Sep 2025 16:04:14 +0200 Subject: [PATCH 15/16] feat(emacs): Add support packages to denote --- home/alex/programs/emacs/doom/config.el | 14 +++++++++++++- home/alex/programs/emacs/doom/packages.el | 6 ++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/home/alex/programs/emacs/doom/config.el b/home/alex/programs/emacs/doom/config.el index c9e42e1..39c5a5e 100644 --- a/home/alex/programs/emacs/doom/config.el +++ b/home/alex/programs/emacs/doom/config.el @@ -321,6 +321,18 @@ (("C-c n d" . #'denote-open-or-create-with-command)) ) +(use-package! denote-org + :after denote) + +(use-package! denote-journal + :after denote) + +(use-package! denote-menu + :after denote) + +(use-package! denote-sequence + :after denote) + (use-package! org-super-agenda :after org-agenda :init @@ -375,7 +387,7 @@ :after denote) (use-package! cov) -;(use-package! casual-suite) + ;(use-package! casual-suite) (map! :desc "Move workspace to the left" :leader :n "TAB <" #'+workspace/swap-left) (map! :desc "Move workspace to the left" :leader :n "TAB >" #'+workspace/swap-right) diff --git a/home/alex/programs/emacs/doom/packages.el b/home/alex/programs/emacs/doom/packages.el index 9acca29..3589576 100644 --- a/home/alex/programs/emacs/doom/packages.el +++ b/home/alex/programs/emacs/doom/packages.el @@ -70,7 +70,13 @@ (package! emacsql-sqlite3) (package! nov) (package! org-present) + (package! denote) +(package! denote-org) +(package! denote-journal) +(package! denote-menu) +(package! denote-sequence) + (package! org-super-agenda) (package! org-modern) (package! org-ql) From 3885f590831e17db307f1623bf1e68dec8a60ce3 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 23 Nov 2025 22:45:52 +0100 Subject: [PATCH 16/16] chore: Update inputs --- flake.lock | 81 +++++++++------------ home/alex/cli.nix | 9 ++- home/alex/programs/git/default.nix | 99 +++++++++++++++----------- home/alex/programs/jujutsu/default.nix | 4 +- 4 files changed, 100 insertions(+), 93 deletions(-) diff --git a/flake.lock b/flake.lock index 9a52e9f..5fc1bf6 100644 --- a/flake.lock +++ b/flake.lock @@ -10,11 +10,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1750173260, - "narHash": "sha256-9P1FziAwl5+3edkfFcr5HeGtQUtrSdk/MksX39GieoA=", + "lastModified": 1762618334, + "narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=", "owner": "ryantm", "repo": "agenix", - "rev": "531beac616433bac6f9e2a19feb8e99a22a66baf", + "rev": "fcdea223397448d35d9b31f798479227e80183f6", "type": "github" }, "original": { @@ -68,11 +68,11 @@ ] }, "locked": { - "lastModified": 1753140376, - "narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=", + "lastModified": 1763651264, + "narHash": "sha256-8vvwZbw0s7YvBMJeyPVpWke6lg6ROgtts5N2/SMCcv4=", "owner": "nix-community", "repo": "disko", - "rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c", + "rev": "e86a89079587497174ccab6d0d142a65811a4fd9", "type": "github" }, "original": { @@ -105,11 +105,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -121,11 +121,11 @@ "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "lastModified": 1761588595, + "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "type": "github" }, "original": { @@ -165,11 +165,11 @@ ] }, "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "lastModified": 1763319842, + "narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761", "type": "github" }, "original": { @@ -249,11 +249,11 @@ ] }, "locked": { - "lastModified": 1753943136, - "narHash": "sha256-eiEE5SabVcIlGSTRcRyBjmJMaYAV95SJnjy8YSsVeW4=", + "lastModified": 1763906693, + "narHash": "sha256-inm7paa3myo8gE4TzjM8OPvsEg8xocWreIZBgBPEKgo=", "owner": "nix-community", "repo": "home-manager", - "rev": "bd82507edd860c453471c46957cbbe3c9fd01b5c", + "rev": "3d6c1c8fa0bea3a1a7ba23d6fa5993116766073b", "type": "github" }, "original": { @@ -334,11 +334,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1753694789, - "narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=", + "lastModified": 1763678758, + "narHash": "sha256-+hBiJ+kG5IoffUOdlANKFflTT5nO3FrrR2CA3178Y5s=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dc9637876d0dcc8c9e5e22986b857632effeb727", + "rev": "117cc7f94e8072499b0a7aa4c52084fa4e11cc9b", "type": "github" }, "original": { @@ -348,22 +348,6 @@ "type": "github" } }, - "nixpkgs-25_05": { - "locked": { - "lastModified": 1751741127, - "narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "29e290002bfff26af1db6f64d070698019460302", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.05", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs-docs": { "locked": { "lastModified": 1705957679, @@ -414,16 +398,16 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "lastModified": 1763553727, + "narHash": "sha256-4aRqRkYHplWk0mrtoF5i3Uo73E3niOWiUZU8kmPm9hQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", + "rev": "094318ea16502a7a81ce90dd3638697020f030a2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixos-unstable-small", "repo": "nixpkgs", "type": "github" } @@ -491,11 +475,11 @@ ] }, "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "lastModified": 1763741496, + "narHash": "sha256-uIRqs/H18YEtMOn1OkbnPH+aNTwXKx+iU3qnxEkVUd0=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "rev": "20e71a403c5de9ce5bd799031440da9728c1cda1", "type": "github" }, "original": { @@ -539,15 +523,14 @@ "blobs": "blobs", "flake-compat": "flake-compat_2", "git-hooks": "git-hooks", - "nixpkgs": "nixpkgs_2", - "nixpkgs-25_05": "nixpkgs-25_05" + "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1753285640, - "narHash": "sha256-ofa021NeHDXAxg5J8mSnn8rHa393PAlD85ZCetP4Qa0=", + "lastModified": 1763564778, + "narHash": "sha256-HSWMOylEaTtVgzIjpTbjcjVLXHDwNyV081eVUBfAcMs=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "ce87c8a9771d1a20c3fa3b60113b9b0821627dcb", + "rev": "4987d275a90392347f84923cd4cd8efcf0aa7a22", "type": "gitlab" }, "original": { diff --git a/home/alex/cli.nix b/home/alex/cli.nix index 7cca3f1..b4833b9 100644 --- a/home/alex/cli.nix +++ b/home/alex/cli.nix @@ -188,8 +188,13 @@ in ssh = { enable = true; - controlMaster = "auto"; - controlPersist = "10m"; + enableDefaultConfig = false; + matchBlocks = { + "*" = { + controlMaster = "auto"; + controlPersist = "10m"; + }; + }; }; texlive.enable = true; diff --git a/home/alex/programs/git/default.nix b/home/alex/programs/git/default.nix index 1551ded..070984a 100644 --- a/home/alex/programs/git/default.nix +++ b/home/alex/programs/git/default.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: { programs.git = { @@ -17,48 +22,62 @@ key = "41A6D13FECA21280"; signByDefault = false; }; - delta = { enable = true; }; - # TODO create option for my own account meta data - userEmail = "me@failco.de"; - userName = "Alexander Kobjolke"; - extraConfig = { - pull = { rebase = true; }; - merge = { conflictstyle = "diff3"; }; - submodule = { recurse = true; }; - }; + settings = { + pull = { + rebase = true; + }; + merge = { + conflictstyle = "diff3"; + }; + submodule = { + recurse = true; + }; + user = { + # TODO create option for my own account meta data + email = "me@failco.de"; + name = "Alexander Kobjolke"; + }; + alias = { + a = "add"; + c = "commit"; + ca = "commit --amend"; + can = "commit --amend --no-edit"; + cl = "clone"; + cm = "commit -m"; + co = "checkout"; + cp = "cherry-pick"; + cpx = "cherry-pick -x"; + d = "diff"; + f = "fetch"; + fo = "fetch origin"; + fu = "fetch upstream"; + lol = "log --graph --decorate --pretty=oneline --abbrev-commit"; + lola = "log --graph --decorate --pretty=oneline --abbrev-commit --all"; + pl = "pull"; + pr = "pull -r"; + ps = "push"; + psf = "push -f"; + rb = "rebase"; + rbi = "rebase -i"; + r = "remote"; + ra = "remote add"; + rr = "remote rm"; + rv = "remote -v"; + rs = "remote show"; + st = "status"; + }; - aliases = { - a = "add"; - c = "commit"; - ca = "commit --amend"; - can = "commit --amend --no-edit"; - cl = "clone"; - cm = "commit -m"; - co = "checkout"; - cp = "cherry-pick"; - cpx = "cherry-pick -x"; - d = "diff"; - f = "fetch"; - fo = "fetch origin"; - fu = "fetch upstream"; - lol = "log --graph --decorate --pretty=oneline --abbrev-commit"; - lola = "log --graph --decorate --pretty=oneline --abbrev-commit --all"; - pl = "pull"; - pr = "pull -r"; - ps = "push"; - psf = "push -f"; - rb = "rebase"; - rbi = "rebase -i"; - r = "remote"; - ra = "remote add"; - rr = "remote rm"; - rv = "remote -v"; - rs = "remote show"; - st = "status"; + init.defaultBranch = "main"; }; - extraConfig = { init.defaultBranch = "main"; }; }; - programs.git-cliff = { enable = true; }; + programs.delta = { + enable = true; + enableGitIntegration = true; + }; + + programs.git-cliff = { + enable = true; + }; } diff --git a/home/alex/programs/jujutsu/default.nix b/home/alex/programs/jujutsu/default.nix index f7b6642..bcb67f6 100644 --- a/home/alex/programs/jujutsu/default.nix +++ b/home/alex/programs/jujutsu/default.nix @@ -9,8 +9,8 @@ programs.jujutsu = { enable = true; settings = { - user.name = config.programs.git.userName; - user.email = config.programs.git.userEmail; + user.name = config.programs.git.settings.user.name; + user.email = config.programs.git.settings.user.email; ui.default-command = "log"; aliases.init = [ "git"