summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_sources/generated.json32
-rw-r--r--_sources/generated.nix32
-rw-r--r--accounts/gkleen@sif/default.nix107
-rw-r--r--accounts/gkleen@sif/ssh-hosts.nix6
-rw-r--r--accounts/gkleen@sif/systemd.nix38
-rw-r--r--accounts/gkleen@sif/zshrc17
-rw-r--r--flake.lock66
-rw-r--r--home-modules/pandoc/default.nix27
-rw-r--r--home-modules/pandoc/german_abbreviations.txt1423
-rwxr-xr-xhome-modules/pandoc/german_abbreviations.txt.gup35
-rw-r--r--hosts/sif/default.nix5
-rw-r--r--overlays/niri.nix8
-rw-r--r--overlays/swayosd/default.nix17
-rw-r--r--overlays/waybar.nix11
-rw-r--r--user-profiles/zsh/zshrc9
15 files changed, 1640 insertions, 193 deletions
diff --git a/_sources/generated.json b/_sources/generated.json
index ed2c5d34..80194b7f 100644
--- a/_sources/generated.json
+++ b/_sources/generated.json
@@ -22,7 +22,7 @@
22 }, 22 },
23 "bpf-examples": { 23 "bpf-examples": {
24 "cargoLocks": null, 24 "cargoLocks": null,
25 "date": "2025-01-03", 25 "date": "2025-03-06",
26 "extract": null, 26 "extract": null,
27 "name": "bpf-examples", 27 "name": "bpf-examples",
28 "passthru": null, 28 "passthru": null,
@@ -34,12 +34,12 @@
34 "name": null, 34 "name": null,
35 "owner": "xdp-project", 35 "owner": "xdp-project",
36 "repo": "bpf-examples", 36 "repo": "bpf-examples",
37 "rev": "8d53e6fc46ae625bd16b38eb1007ece99460eada", 37 "rev": "64e7da048b14822bef06f3971189c4c0985422e7",
38 "sha256": "sha256-BUncjyaywmtSMVhbWZDy9XiNlGJet8Z0lzmUqm3f+HU=", 38 "sha256": "sha256-cyyRNvU35ujxkLraOqw2oiZwUblBpJaEncPl2++VHL4=",
39 "sparseCheckout": [], 39 "sparseCheckout": [],
40 "type": "github" 40 "type": "github"
41 }, 41 },
42 "version": "8d53e6fc46ae625bd16b38eb1007ece99460eada" 42 "version": "64e7da048b14822bef06f3971189c4c0985422e7"
43 }, 43 },
44 "emacs-scratch_el": { 44 "emacs-scratch_el": {
45 "cargoLocks": null, 45 "cargoLocks": null,
@@ -99,7 +99,7 @@
99 }, 99 },
100 "mako": { 100 "mako": {
101 "cargoLocks": null, 101 "cargoLocks": null,
102 "date": "2025-03-01", 102 "date": "2025-03-07",
103 "extract": null, 103 "extract": null,
104 "name": "mako", 104 "name": "mako",
105 "passthru": null, 105 "passthru": null,
@@ -109,13 +109,13 @@
109 "fetchSubmodules": false, 109 "fetchSubmodules": false,
110 "leaveDotGit": false, 110 "leaveDotGit": false,
111 "name": null, 111 "name": null,
112 "rev": "5321a4c61b2c23caa39337cd36065384bfcb3ace", 112 "rev": "91a1fc482b1ef8c45a64e38f13e0b23e84155f32",
113 "sha256": "sha256-QplCniTBCoZV+R8hspsDcj3MhHcXkMjMoYC4mZyq3nM=", 113 "sha256": "sha256-i91WGv1O5OZ0338/F2nkXUZ7xLD3N9Zxloeq3sDt04w=",
114 "sparseCheckout": [], 114 "sparseCheckout": [],
115 "type": "git", 115 "type": "git",
116 "url": "https://github.com/emersion/mako" 116 "url": "https://github.com/emersion/mako"
117 }, 117 },
118 "version": "5321a4c61b2c23caa39337cd36065384bfcb3ace" 118 "version": "91a1fc482b1ef8c45a64e38f13e0b23e84155f32"
119 }, 119 },
120 "mpv-autosave": { 120 "mpv-autosave": {
121 "cargoLocks": null, 121 "cargoLocks": null,
@@ -407,7 +407,7 @@
407 }, 407 },
408 "v4l2loopback": { 408 "v4l2loopback": {
409 "cargoLocks": null, 409 "cargoLocks": null,
410 "date": "2025-02-28", 410 "date": "2025-03-14",
411 "extract": null, 411 "extract": null,
412 "name": "v4l2loopback", 412 "name": "v4l2loopback",
413 "passthru": null, 413 "passthru": null,
@@ -419,16 +419,16 @@
419 "name": null, 419 "name": null,
420 "owner": "umlaeute", 420 "owner": "umlaeute",
421 "repo": "v4l2loopback", 421 "repo": "v4l2loopback",
422 "rev": "60a0315c6db154597dc733ea42139cf159644a7a", 422 "rev": "2ae34dbd9f1ecb19de3e43d4b75008a078330e4b",
423 "sha256": "sha256-GymBIScU4sg3ofVb9R4/Abq9OZZ+IqLKv/6y32wFLm8=", 423 "sha256": "sha256-oOkh6t3wapC6Dz+UovF1iGgyGb1IUoLS2PeZugu7Y/g=",
424 "sparseCheckout": [], 424 "sparseCheckout": [],
425 "type": "github" 425 "type": "github"
426 }, 426 },
427 "version": "60a0315c6db154597dc733ea42139cf159644a7a" 427 "version": "2ae34dbd9f1ecb19de3e43d4b75008a078330e4b"
428 }, 428 },
429 "xcompose": { 429 "xcompose": {
430 "cargoLocks": null, 430 "cargoLocks": null,
431 "date": "2022-09-14", 431 "date": "2025-03-11",
432 "extract": null, 432 "extract": null,
433 "name": "xcompose", 433 "name": "xcompose",
434 "passthru": null, 434 "passthru": null,
@@ -440,12 +440,12 @@
440 "name": null, 440 "name": null,
441 "owner": "kragen", 441 "owner": "kragen",
442 "repo": "xcompose", 442 "repo": "xcompose",
443 "rev": "cd8d3e622f547ec9f83d7f64f51d4a27ee812681", 443 "rev": "8b5a6a0c788fd0a4b921d9d3737174defb863873",
444 "sha256": "sha256-fkl2lDv/DdrqPjVsEUKSRD3BNGwTjTsA0ovI8akFI6U=", 444 "sha256": "sha256-6EjQErdBOd5hqcrdaf88E1UZVYIc3FOfv34hvUwOWdA=",
445 "sparseCheckout": [], 445 "sparseCheckout": [],
446 "type": "github" 446 "type": "github"
447 }, 447 },
448 "version": "cd8d3e622f547ec9f83d7f64f51d4a27ee812681" 448 "version": "8b5a6a0c788fd0a4b921d9d3737174defb863873"
449 }, 449 },
450 "yt-dlp": { 450 "yt-dlp": {
451 "cargoLocks": null, 451 "cargoLocks": null,
diff --git a/_sources/generated.nix b/_sources/generated.nix
index 47944d09..0dcedc0e 100644
--- a/_sources/generated.nix
+++ b/_sources/generated.nix
@@ -18,15 +18,15 @@
18 }; 18 };
19 bpf-examples = { 19 bpf-examples = {
20 pname = "bpf-examples"; 20 pname = "bpf-examples";
21 version = "8d53e6fc46ae625bd16b38eb1007ece99460eada"; 21 version = "64e7da048b14822bef06f3971189c4c0985422e7";
22 src = fetchFromGitHub { 22 src = fetchFromGitHub {
23 owner = "xdp-project"; 23 owner = "xdp-project";
24 repo = "bpf-examples"; 24 repo = "bpf-examples";
25 rev = "8d53e6fc46ae625bd16b38eb1007ece99460eada"; 25 rev = "64e7da048b14822bef06f3971189c4c0985422e7";
26 fetchSubmodules = true; 26 fetchSubmodules = true;
27 sha256 = "sha256-BUncjyaywmtSMVhbWZDy9XiNlGJet8Z0lzmUqm3f+HU="; 27 sha256 = "sha256-cyyRNvU35ujxkLraOqw2oiZwUblBpJaEncPl2++VHL4=";
28 }; 28 };
29 date = "2025-01-03"; 29 date = "2025-03-06";
30 }; 30 };
31 emacs-scratch_el = { 31 emacs-scratch_el = {
32 pname = "emacs-scratch_el"; 32 pname = "emacs-scratch_el";
@@ -61,17 +61,17 @@
61 }; 61 };
62 mako = { 62 mako = {
63 pname = "mako"; 63 pname = "mako";
64 version = "5321a4c61b2c23caa39337cd36065384bfcb3ace"; 64 version = "91a1fc482b1ef8c45a64e38f13e0b23e84155f32";
65 src = fetchgit { 65 src = fetchgit {
66 url = "https://github.com/emersion/mako"; 66 url = "https://github.com/emersion/mako";
67 rev = "5321a4c61b2c23caa39337cd36065384bfcb3ace"; 67 rev = "91a1fc482b1ef8c45a64e38f13e0b23e84155f32";
68 fetchSubmodules = false; 68 fetchSubmodules = false;
69 deepClone = false; 69 deepClone = false;
70 leaveDotGit = false; 70 leaveDotGit = false;
71 sparseCheckout = [ ]; 71 sparseCheckout = [ ];
72 sha256 = "sha256-QplCniTBCoZV+R8hspsDcj3MhHcXkMjMoYC4mZyq3nM="; 72 sha256 = "sha256-i91WGv1O5OZ0338/F2nkXUZ7xLD3N9Zxloeq3sDt04w=";
73 }; 73 };
74 date = "2025-03-01"; 74 date = "2025-03-07";
75 }; 75 };
76 mpv-autosave = { 76 mpv-autosave = {
77 pname = "mpv-autosave"; 77 pname = "mpv-autosave";
@@ -254,27 +254,27 @@
254 }; 254 };
255 v4l2loopback = { 255 v4l2loopback = {
256 pname = "v4l2loopback"; 256 pname = "v4l2loopback";
257 version = "60a0315c6db154597dc733ea42139cf159644a7a"; 257 version = "2ae34dbd9f1ecb19de3e43d4b75008a078330e4b";
258 src = fetchFromGitHub { 258 src = fetchFromGitHub {
259 owner = "umlaeute"; 259 owner = "umlaeute";
260 repo = "v4l2loopback"; 260 repo = "v4l2loopback";
261 rev = "60a0315c6db154597dc733ea42139cf159644a7a"; 261 rev = "2ae34dbd9f1ecb19de3e43d4b75008a078330e4b";
262 fetchSubmodules = true; 262 fetchSubmodules = true;
263 sha256 = "sha256-GymBIScU4sg3ofVb9R4/Abq9OZZ+IqLKv/6y32wFLm8="; 263 sha256 = "sha256-oOkh6t3wapC6Dz+UovF1iGgyGb1IUoLS2PeZugu7Y/g=";
264 }; 264 };
265 date = "2025-02-28"; 265 date = "2025-03-14";
266 }; 266 };
267 xcompose = { 267 xcompose = {
268 pname = "xcompose"; 268 pname = "xcompose";
269 version = "cd8d3e622f547ec9f83d7f64f51d4a27ee812681"; 269 version = "8b5a6a0c788fd0a4b921d9d3737174defb863873";
270 src = fetchFromGitHub { 270 src = fetchFromGitHub {
271 owner = "kragen"; 271 owner = "kragen";
272 repo = "xcompose"; 272 repo = "xcompose";
273 rev = "cd8d3e622f547ec9f83d7f64f51d4a27ee812681"; 273 rev = "8b5a6a0c788fd0a4b921d9d3737174defb863873";
274 fetchSubmodules = false; 274 fetchSubmodules = false;
275 sha256 = "sha256-fkl2lDv/DdrqPjVsEUKSRD3BNGwTjTsA0ovI8akFI6U="; 275 sha256 = "sha256-6EjQErdBOd5hqcrdaf88E1UZVYIc3FOfv34hvUwOWdA=";
276 }; 276 };
277 date = "2022-09-14"; 277 date = "2025-03-11";
278 }; 278 };
279 yt-dlp = { 279 yt-dlp = {
280 pname = "yt-dlp"; 280 pname = "yt-dlp";
diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix
index 6f720bbf..1254b6db 100644
--- a/accounts/gkleen@sif/default.nix
+++ b/accounts/gkleen@sif/default.nix
@@ -4,33 +4,6 @@ with lib;
4 4
5let 5let
6 cfg = config.home-manager.users.${userName}; 6 cfg = config.home-manager.users.${userName};
7 emacsScratch = pkgs.stdenv.mkDerivation (sources.emacs-scratch_el // rec {
8 phases = [ "installPhase" ];
9
10 installPhase = ''
11 mkdir -p $out/share/emacs/site-lisp
12 cp $src/scratch.el $out/share/emacs/site-lisp/default.el
13 '';
14 });
15 muteScript = pkgs.stdenv.mkDerivation {
16 name = "mute";
17 src = ./scripts/mute.zsh;
18
19 buildInputs = with pkgs; [ makeWrapper ];
20
21 phases = [ "installPhase" ];
22
23 installPhase = ''
24 mkdir -p $out/bin
25 install -m 0755 $src $out/bin/mute
26 wrapProgram $out/bin/mute \
27 --prefix PATH : ${pkgs.zsh}/bin \
28 --prefix PATH : ${pkgs.findutils}/bin \
29 --prefix PATH : ${pkgs.util-linux}/bin \
30 --prefix PATH : ${pkgs.coreutils}/bin \
31 --prefix PATH : ${pkgs.pulseaudio}/bin
32 '';
33 };
34 wrapElectron = { package, bin ? package.meta.mainProgram or package.pname or (pkgs.lib.strings.nameFromURL package.name "-"), outBin ? bin, sandbox ? true }: pkgs.symlinkJoin { 7 wrapElectron = { package, bin ? package.meta.mainProgram or package.pname or (pkgs.lib.strings.nameFromURL package.name "-"), outBin ? bin, sandbox ? true }: pkgs.symlinkJoin {
35 name = "${package.name}-wrapped"; 8 name = "${package.name}-wrapped";
36 buildInputs = with pkgs; [ makeWrapper ]; 9 buildInputs = with pkgs; [ makeWrapper ];
@@ -47,10 +20,6 @@ let
47 ''; 20 '';
48 }; 21 };
49 22
50 wrappedChrome = wrapElectron { package = pkgs.google-chrome; outBin = "google-chrome"; };
51 wrappedZulip = wrapElectron { package = pkgs.zulip; bin = "zulip"; outBin = "zulip"; };
52 wrappedElementDesktop = wrapElectron { package = pkgs.element-desktop; bin = "element-desktop"; };
53 wrappedRocketChatDesktop = wrapElectron { package = pkgs.rocketchat-desktop; bin = "rocketchat-desktop"; outBin = "rocketchat"; };
54 wrappedYTMDesktop = wrapElectron { package = pkgs.ytmdesktop; sandbox = false; }; 23 wrappedYTMDesktop = wrapElectron { package = pkgs.ytmdesktop; sandbox = false; };
55 24
56 wrappedKeepassxc = pkgs.symlinkJoin { 25 wrappedKeepassxc = pkgs.symlinkJoin {
@@ -63,7 +32,7 @@ let
63 text = '' 32 text = ''
64 [D-BUS Service] 33 [D-BUS Service]
65 Name=org.keepassxc.KeePassXC.MainWindow 34 Name=org.keepassxc.KeePassXC.MainWindow
66 Exec=${pkgs.coreutils}/bin/false 35 Exec=${lib.getExe' pkgs.coreutils "false"}
67 SystemdService=keepassxc.service 36 SystemdService=keepassxc.service
68 ''; 37 '';
69 }) 38 })
@@ -73,7 +42,7 @@ let
73 text = '' 42 text = ''
74 [D-BUS Service] 43 [D-BUS Service]
75 Name=org.freedesktop.secrets 44 Name=org.freedesktop.secrets
76 Exec=${pkgs.coreutils}/bin/false 45 Exec=${lib.getExe' pkgs.coreutils "false"}
77 SystemdService=keepassxc.service 46 SystemdService=keepassxc.service
78 ''; 47 '';
79 }) 48 })
@@ -87,8 +56,6 @@ in {
87 ]; 56 ];
88 57
89 config = { 58 config = {
90 services.displayManager.defaultSession = "Hyprland"; # "none+xmonad";
91
92 home-manager.users.${userName} = { 59 home-manager.users.${userName} = {
93 imports = [ 60 imports = [
94 ./libvirt 61 ./libvirt
@@ -137,8 +104,8 @@ in {
137 ''} 104 ''}
138 105
139 Match host *.mathinst.loc,*.math.lmu.de !host ssh.math.lmu.de !exec "nc -z -w 1 %h %p &>/dev/null" 106 Match host *.mathinst.loc,*.math.lmu.de !host ssh.math.lmu.de !exec "nc -z -w 1 %h %p &>/dev/null"
140 # ProxyCommand ${pkgs.socat}/bin/socat - SOCKS4A:127.0.0.1:%h:%p,socksport=8118 107 ProxyCommand ${lib.getExe pkgs.socat} - SOCKS4A:127.0.0.1:%h:%p,socksport=8118
141 ProxyJump ssh.math.lmu.de 108 # ProxyJump ssh.math.lmu.de
142 109
143 Match host *.cipmath.loc !host cip04.cipmath.loc,mgmt-cls01.cipmath.loc !exec "nc -z -w 1 %h %p &>/dev/null" 110 Match host *.cipmath.loc !host cip04.cipmath.loc,mgmt-cls01.cipmath.loc !exec "nc -z -w 1 %h %p &>/dev/null"
144 ProxyJump cip04 111 ProxyJump cip04
@@ -159,18 +126,27 @@ in {
159 extraPackages = epkgs: with epkgs; [ 126 extraPackages = epkgs: with epkgs; [
160 evil evil-dvorak undo-tree magit haskell-tng-mode nix-mode 127 evil evil-dvorak undo-tree magit haskell-tng-mode nix-mode
161 yaml-mode json-mode shakespeare-mode smart-mode-line 128 yaml-mode json-mode shakespeare-mode smart-mode-line
162 highlight-parentheses highlight-symbol ag sass-mode lua-mode 129 highlight-parentheses highlight-symbol ag sass-mode
163 fira-code-mode use-package wanderlust # notmuch 130 lua-mode fira-code-mode use-package wanderlust # notmuch
164 git-gutter emacsScratch 131 git-gutter scratch edit-server mediawiki editorconfig
165 edit-server mediawiki editorconfig typescript-mode 132 typescript-mode markdown-mode nftables-mode rustic
166 markdown-mode nftables-mode rustic lsp-mode lsp-ui 133 lsp-mode lsp-ui direnv company projectile
167 direnv company projectile tomorrow-night-paradise-theme 134 tomorrow-night-paradise-theme
168 treesit-grammars.with-all-grammars magit-delta scad-mode 135 treesit-grammars.with-all-grammars magit-delta scad-mode
169 ]; 136 ];
170 overrides = self: super: { 137 overrides = self: super: {
171 tomorrow-night-paradise-theme = super.trivialBuild { 138 tomorrow-night-paradise-theme = super.trivialBuild {
172 inherit (sources.tomorrow-night-paradise-theme) pname version src; 139 inherit (sources.tomorrow-night-paradise-theme) pname version src;
173 }; 140 };
141 scratch = pkgs.stdenv.mkDerivation {
142 inherit (sources.emacs-scratch_el) pname version src;
143
144 phases = [ "unpackPhase" "installPhase" ];
145
146 installPhase = ''
147 install -Dt $out/share/emacs/site-lisp scratch.el
148 '';
149 };
174 }; 150 };
175 }; 151 };
176 firefox = { 152 firefox = {
@@ -226,7 +202,7 @@ in {
226 gh = { 202 gh = {
227 enable = true; 203 enable = true;
228 settings = { 204 settings = {
229 editor = "${config.home-manager.users.${userName}.programs.emacs.package}/bin/emacsclient"; 205 editor = lib.getExe' config.home-manager.users.${userName}.programs.emacs.package "emacsclient";
230 gitProtocol = "ssh"; 206 gitProtocol = "ssh";
231 }; 207 };
232 }; 208 };
@@ -287,6 +263,10 @@ in {
287 }; 263 };
288 }; 264 };
289 }; 265 };
266 pandoc = {
267 enable = true;
268 extraAbbreviations = ["i.A." "d.h." "D.h." "gdw."];
269 };
290 }; 270 };
291 271
292 services = { 272 services = {
@@ -302,7 +282,7 @@ in {
302 enable = true; 282 enable = true;
303 enableSshSupport = true; 283 enableSshSupport = true;
304 extraConfig = '' 284 extraConfig = ''
305 pinentry-program ${pkgs.pinentry-gtk2}/bin/pinentry 285 pinentry-program ${lib.getExe' pkgs.pinentry-gtk2 "pinentry"}
306 grab 286 grab
307 ''; 287 '';
308 }; 288 };
@@ -342,7 +322,7 @@ in {
342 batch = "true"; 322 batch = "true";
343 log = "false"; 323 log = "false";
344 repeat = "watch"; 324 repeat = "watch";
345 sshcmd = "${pkgs.openssh}/bin/ssh"; 325 sshcmd = lib.getExe' pkgs.openssh "ssh";
346 ui = "text"; 326 ui = "text";
347 }; 327 };
348 }; 328 };
@@ -418,13 +398,13 @@ in {
418 fira-code-symbols libreoffice xournalpp google-chrome 398 fira-code-symbols libreoffice xournalpp google-chrome
419 nixos-shell virt-viewer freerdp gnome-icon-theme 399 nixos-shell virt-viewer freerdp gnome-icon-theme
420 paper-icon-theme sshpassSecret weechat element-desktop 400 paper-icon-theme sshpassSecret weechat element-desktop
421 matrix-synapse-tools.synadm
422 flakeInputs.deploy-rs.packages.${config.nixpkgs.system}.deploy-rs 401 flakeInputs.deploy-rs.packages.${config.nixpkgs.system}.deploy-rs
423 sieve-connect gimp inkscape udiskie glab nitrokey-app 402 sieve-connect gimp inkscape udiskie glab nitrokey-app
424 pynitrokey gtklock wlrctl remmina openscad spice-record 403 pynitrokey gtklock wlrctl remmina openscad spice-record
425 libguestfs-with-appliance nerd-fonts.fira-mono 404 libguestfs-with-appliance nerd-fonts.fira-mono
426 nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts 405 nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts
427 swtpm (hunspellWithDicts (with hunspellDicts; [en_GB-large de_DE])) 406 swtpm (hunspellWithDicts (with hunspellDicts; [en_GB-large de_DE]))
407 # synadm
428 ]; 408 ];
429 409
430 file = { 410 file = {
@@ -448,9 +428,9 @@ in {
448 EDITOR = pkgs.writeShellScript "editor" '' 428 EDITOR = pkgs.writeShellScript "editor" ''
449 args=("--reuse-frame" "--alternate-editor" "") 429 args=("--reuse-frame" "--alternate-editor" "")
450 args+=("$@") 430 args+=("$@")
451 exec -a emacsclient ${cfg.services.emacs.package}/bin/emacsclient "''${args[@]}" 431 exec -a emacsclient ${lib.getExe' cfg.services.emacs.package "emacsclient"} "''${args[@]}"
452 ''; 432 '';
453 RCLONE_PASSWORD_COMMAND = "${pkgs.libsecret}/bin/secret-tool lookup service rclone"; 433 RCLONE_PASSWORD_COMMAND = "${lib.getExe' pkgs.libsecret "secret-tool"} lookup service rclone";
454 }; 434 };
455 435
456 extraProfileCommands = '' 436 extraProfileCommands = ''
@@ -463,7 +443,7 @@ in {
463 source = ./wireplumber; 443 source = ./wireplumber;
464 recursive = true; 444 recursive = true;
465 onChange = '' 445 onChange = ''
466 ${pkgs.systemd}/bin/systemctl --user try-restart wireplumber 446 ${lib.getExe' config.systemd.package "systemctl"} --user try-restart wireplumber
467 ''; 447 '';
468 }; 448 };
469 "stack/config.yaml" = { 449 "stack/config.yaml" = {
@@ -505,29 +485,6 @@ in {
505 }; 485 };
506 486
507 xdg.dataFile = { 487 xdg.dataFile = {
508 "pandoc/abbreviations" = {
509 source = pkgs.runCommand "pandoc-abbreviations" {
510 buildInputs = [ pkgs.pandoc pkgs.coreutils ];
511 } (let
512 germanAbbrevs = pkgs.fetchFromGitHub {
513 owner = "jfilter";
514 repo = "german-abbreviations";
515 rev = "8eb9dae93b6f05d7c53374cd217ab2dc89558e0c";
516 sha256 = "SaD3tSqzen6Y3SPICe6/9vhe4iMHlArZ3kFQaEk7Hps=";
517 };
518 in ''
519 cat \
520 <(pandoc --print-default-data-file=abbreviations) \
521 <(grep -E '^[^ ]+\.$' ${germanAbbrevs}/german_abbreviations.txt) \
522 ${pkgs.writeText "abbrevs.txt" ''
523 i.A.
524 d.h.
525 D.h.
526 gdw.
527 ''} \
528 | sort | uniq >$out
529 '');
530 };
531 "dbus-1/services/org.keepassxc.KeePassXC.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.keepassxc.KeePassXC.service"; 488 "dbus-1/services/org.keepassxc.KeePassXC.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.keepassxc.KeePassXC.service";
532 "dbus-1/services/org.freedesktop.secrets.service.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.freedesktop.secrets.service.service"; 489 "dbus-1/services/org.freedesktop.secrets.service.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.freedesktop.secrets.service.service";
533 "emoji-data/list.txt".source = pkgs.stdenv.mkDerivation { 490 "emoji-data/list.txt".source = pkgs.stdenv.mkDerivation {
@@ -615,10 +572,10 @@ in {
615 name = "Rainbow"; 572 name = "Rainbow";
616 exec = toString (pkgs.writeShellScript "rainbow" '' 573 exec = toString (pkgs.writeShellScript "rainbow" ''
617 exec -- \ 574 exec -- \
618 ${config.systemd.package}/bin/systemd-run --wait --user --slice-inherit \ 575 ${lib.getExe' config.systemd.package "systemd-run"} --wait --user --slice-inherit \
619 --property 'CPUAccounting=yes' --property 'CPUQuotaPeriodSec=50ms' \ 576 --property 'CPUAccounting=yes' --property 'CPUQuotaPeriodSec=50ms' \
620 --property 'Environment=DSCP=46' \ 577 --property 'Environment=DSCP=46' \
621 -- ${pkgs.dscp}/bin/dscp ${pkgs.google-chrome}/bin/google-chrome-stable \ 578 -- ${lib.getExe pkgs.dscp} ${lib.getExe' pkgs.google-chrome "google-chrome-stable"} \
622 --class=Rainbow \ 579 --class=Rainbow \
623 --kiosk "https://web.openrainbow.com" \ 580 --kiosk "https://web.openrainbow.com" \
624 --user-data-dir=''${HOME}/.config/google-chrome-rainbow 581 --user-data-dir=''${HOME}/.config/google-chrome-rainbow
diff --git a/accounts/gkleen@sif/ssh-hosts.nix b/accounts/gkleen@sif/ssh-hosts.nix
index ac930614..4ca9e052 100644
--- a/accounts/gkleen@sif/ssh-hosts.nix
+++ b/accounts/gkleen@sif/ssh-hosts.nix
@@ -306,8 +306,8 @@
306 "mathw0h" = 306 "mathw0h" =
307 { hostname = "mathw0h.mathinst.loc"; 307 { hostname = "mathw0h.mathinst.loc";
308 }; 308 };
309 "proxy.mathw0g" = 309 "proxy.ssh.math.lmu.de" =
310 { hostname = "mathw0g.mathinst.loc"; 310 { hostname = "ssh.math.lmu.de";
311 extraOptions = { 311 extraOptions = {
312 ControlPath = "none"; 312 ControlPath = "none";
313 ExitOnForwardFailure = "yes"; 313 ExitOnForwardFailure = "yes";
@@ -317,7 +317,7 @@
317 }; 317 };
318 "proxy.mathw0h" = 318 "proxy.mathw0h" =
319 { hostname = "mathw0h.mathinst.loc"; 319 { hostname = "mathw0h.mathinst.loc";
320 proxyJump = "proxy.mathw0g"; 320 # proxyJump = "proxy.ssh.math.lmu.de";
321 extraOptions = { 321 extraOptions = {
322 ControlPath = "none"; 322 ControlPath = "none";
323 ExitOnForwardFailure = "yes"; 323 ExitOnForwardFailure = "yes";
diff --git a/accounts/gkleen@sif/systemd.nix b/accounts/gkleen@sif/systemd.nix
index a89b46c2..14669a1e 100644
--- a/accounts/gkleen@sif/systemd.nix
+++ b/accounts/gkleen@sif/systemd.nix
@@ -6,7 +6,7 @@ let
6 cfg = config.home-manager.users.${userName}; 6 cfg = config.home-manager.users.${userName};
7 7
8 autossh-socks-script = pkgs.writeScript "autossh" '' 8 autossh-socks-script = pkgs.writeScript "autossh" ''
9 #!${pkgs.zsh}/bin/zsh -xe 9 #!${lib.getExe pkgs.zsh} -xe
10 10
11 host="''${1%:*}" 11 host="''${1%:*}"
12 port="''${1#*:}" 12 port="''${1#*:}"
@@ -15,31 +15,29 @@ let
15 cmd=() 15 cmd=()
16 16
17 if [[ -n "''${SSHPASS_SECRET}" ]]; then 17 if [[ -n "''${SSHPASS_SECRET}" ]]; then
18 cmd+=(${pkgs.sshpassSecret}/bin/sshpass-secret) 18 cmd+=(${lib.getExe' pkgs.sshpassSecret "sshpass-secret"})
19 cmd+=("''${(@s/:/)SSHPASS_SECRET}") 19 cmd+=("''${(@s/:/)SSHPASS_SECRET}")
20 cmd+=(--) 20 cmd+=(--)
21 fi 21 fi
22 22
23 cmd+=(${pkgs.openssh}/bin/ssh -vN -D localhost:''${port} "''${host}") 23 cmd+=(${lib.getExe' pkgs.openssh "ssh"} -vN -D localhost:''${port} "''${host}")
24 24
25 ( exec -a "''${cmd[1]}" -- ''${cmd} ) & 25 ( exec -a "''${cmd[1]}" -- ''${cmd} ) &
26 pid=$! 26 pid=$!
27 27
28 newpid="" 28 newpid=""
29 i=200 29 i=200
30 while ! newpid=$(${pkgs.lsof}/bin/lsof -Pi @localhost:"''${port}" -sTCP:LISTEN -t); do 30 while ! newpid=$(${lib.getExe pkgs.lsof} -Pi @localhost:"''${port}" -sTCP:LISTEN -t); do
31 if ! kill -0 "''${pid}"; then 31 if ! kill -0 "''${pid}"; then
32 wait "''${pid}" 32 wait "''${pid}"
33 exit $? 33 exit $?
34 fi 34 fi
35 [[ "''${i}" -gt 0 ]] || exit 1 35 [[ "''${i}" -gt 0 ]] || exit 1
36 i=$((''${i} - 1)) 36 i=$((''${i} - 1))
37 ${pkgs.coreutils}/bin/sleep 0.1 37 ${lib.getExe' pkgs.coreutils "sleep"} 0.1
38 done 38 done
39 39
40 ${config.systemd.package}/bin/systemd-notify --ready 40 ${lib.getExe' config.systemd.package "systemd-notify"} --pid=''${newpid} --ready
41
42 wait "''${pid}" "''${newpid}"
43 ''; 41 '';
44in { 42in {
45 tmpfiles.rules = [ 43 tmpfiles.rules = [
@@ -146,7 +144,7 @@ in {
146 Service.ExecStart = "${pkgs.bluez}/bin/mpris-proxy"; 144 Service.ExecStart = "${pkgs.bluez}/bin/mpris-proxy";
147 Install.WantedBy = [ "default.target" ]; 145 Install.WantedBy = [ "default.target" ];
148 }; 146 };
149 "autossh-socks@proxy.mathw0h:8119" = { 147 "autossh-socks@proxy.ssh.math.lmu.de:8119" = {
150 Service = { 148 Service = {
151 Type = "notify"; 149 Type = "notify";
152 NotifyAccess = "all"; 150 NotifyAccess = "all";
@@ -154,7 +152,7 @@ in {
154 Restart = "always"; 152 Restart = "always";
155 RestartSec = "23s"; 153 RestartSec = "23s";
156 ExecStart = "${autossh-socks-script} \"%I\""; 154 ExecStart = "${autossh-socks-script} \"%I\"";
157 Environment = [ "SSHPASS_SECRET=gkleen@mathw0g.math.lmu.de" ]; 155 Environment = [ "SSHPASS_SECRET=gkleen@ssh.math.lmu.de" ];
158 }; 156 };
159 Unit = { 157 Unit = {
160 StopWhenUnneeded = true; 158 StopWhenUnneeded = true;
@@ -175,6 +173,22 @@ in {
175 StopWhenUnneeded = true; 173 StopWhenUnneeded = true;
176 }; 174 };
177 }; 175 };
176 "autossh-socks@proxy.mathw0h:8123" = {
177 Service = {
178 Type = "notify";
179 NotifyAccess = "all";
180 WorkingDirectory = "~";
181 Restart = "always";
182 RestartSec = "23s";
183 ExecStart = "${autossh-socks-script} \"%I\"";
184 Environment = [ "SSHPASS_SECRET=gkleen@mathw0h.mathinst.loc" ];
185 };
186 Unit = {
187 StopWhenUnneeded = true;
188 StartLimitInterval = "180s";
189 StartLimitBurst = 7;
190 };
191 };
178 swayidle = { 192 swayidle = {
179 Service = { 193 Service = {
180 RuntimeDirectory = "swayidle"; 194 RuntimeDirectory = "swayidle";
@@ -356,7 +370,7 @@ in {
356 Service = { 370 Service = {
357 ExecStart = "${config.systemd.package}/lib/systemd/systemd-socket-proxyd --exit-idle-time=10s localhost:${toString (port + 1)}"; 371 ExecStart = "${config.systemd.package}/lib/systemd/systemd-socket-proxyd --exit-idle-time=10s localhost:${toString (port + 1)}";
358 }; 372 };
359 }) [{ host = "proxy.mathw0h"; port = 8118; } { host = "proxy.vidhar"; port = 8120; }]); 373 }) [{ host = "proxy.ssh.math.lmu.de"; port = 8118; } { host = "proxy.vidhar"; port = 8120; } { host = "proxy.mathw0h"; port = 8122; }]);
360 sockets = listToAttrs (map (port: nameValuePair "proxy-to-autossh-socks@${toString port}" { 374 sockets = listToAttrs (map (port: nameValuePair "proxy-to-autossh-socks@${toString port}" {
361 Socket = { 375 Socket = {
362 ListenStream = "%I"; 376 ListenStream = "%I";
@@ -364,7 +378,7 @@ in {
364 Install = { 378 Install = {
365 WantedBy = ["default.target"]; 379 WantedBy = ["default.target"];
366 }; 380 };
367 }) [8118 8120]) // { 381 }) [8118 8120 8122]) // {
368 "yt-dlp" = { 382 "yt-dlp" = {
369 Socket = { 383 Socket = {
370 SocketMode = "0600"; 384 SocketMode = "0600";
diff --git a/accounts/gkleen@sif/zshrc b/accounts/gkleen@sif/zshrc
index e3f675a1..3a524bf1 100644
--- a/accounts/gkleen@sif/zshrc
+++ b/accounts/gkleen@sif/zshrc
@@ -272,11 +272,11 @@ l() {
272} 272}
273 273
274re() { 274re() {
275 systemctl --restart $@ 275 systemctl restart $@
276} 276}
277 277
278ure() { 278ure() {
279 systemctl --user --restart $@ 279 systemctl --user restart $@
280} 280}
281 281
282ssh-installer() { 282ssh-installer() {
@@ -306,20 +306,7 @@ done < <(find ~/projects ~/uni -regextype posix-extended -maxdepth 2 -type d -re
306 sed -zr 's|(.*/([0-9]{2}[ws])/(.+))|\1 \2 \3|' | \ 306 sed -zr 's|(.*/([0-9]{2}[ws])/(.+))|\1 \2 \3|' | \
307 sort -z -r -k2 | sort -z -s -k3 | uniq -z -f 2) 307 sort -z -r -k2 | sort -z -s -k3 | uniq -z -f 2)
308 308
309alias '..'='cd ..'
310alias rzadm=$'tmpdir -i sh -c \'mkdir adm; sshfs gkleen@mgmt01:/adm adm\'' 309alias rzadm=$'tmpdir -i sh -c \'mkdir adm; sshfs gkleen@mgmt01:/adm adm\''
311alias mathcloud=$'tmpdir -i rclone mount --daemon mathcloud:// .' 310alias mathcloud=$'tmpdir -i rclone mount --daemon mathcloud:// .'
312alias -g L='| less'
313alias -g S='&> /dev/null'
314alias -g G='| grep'
315alias -g B='&> /dev/null &'
316alias -g BB='&> /dev/null &!'
317 311
318export DEFAULT_USER=gkleen 312export DEFAULT_USER=gkleen
319
320bindkey -e
321bindkey ';5C' emacs-forward-word
322bindkey ';5D' emacs-backward-word
323bindkey '^[[1;5C' emacs-forward-word
324bindkey '^[[1;5D' emacs-backward-word
325bindkey '^H' backward-kill-word
diff --git a/flake.lock b/flake.lock
index 007dd5eb..4f3e02a1 100644
--- a/flake.lock
+++ b/flake.lock
@@ -397,11 +397,11 @@
397 "xwayland-satellite-unstable": "xwayland-satellite-unstable" 397 "xwayland-satellite-unstable": "xwayland-satellite-unstable"
398 }, 398 },
399 "locked": { 399 "locked": {
400 "lastModified": 1741281866, 400 "lastModified": 1742108116,
401 "narHash": "sha256-e/Zok3cRBtBOYMxNDEA62rWue4BRcR92DGCwttbnanE=", 401 "narHash": "sha256-NrV9ysEfSbeRUPo0jdCBeesuNLTVrpHGXg40snH1YGE=",
402 "owner": "sodiboo", 402 "owner": "sodiboo",
403 "repo": "niri-flake", 403 "repo": "niri-flake",
404 "rev": "40ba2c0eced1de1f4bdfb11f368de24932339e6c", 404 "rev": "824f10012de455a1d0ef795a605f28948ee10467",
405 "type": "github" 405 "type": "github"
406 }, 406 },
407 "original": { 407 "original": {
@@ -431,11 +431,11 @@
431 "niri-unstable": { 431 "niri-unstable": {
432 "flake": false, 432 "flake": false,
433 "locked": { 433 "locked": {
434 "lastModified": 1741260996, 434 "lastModified": 1742103165,
435 "narHash": "sha256-uKWfBwNLZEsDnICY7immZn/oLhQos227SDiEnDQwTI4=", 435 "narHash": "sha256-zAzMwvozlS2gmqdhrgeMz0PNp3kRDkwxIEfqWT3Hj6g=",
436 "owner": "YaLTeR", 436 "owner": "YaLTeR",
437 "repo": "niri", 437 "repo": "niri",
438 "rev": "88fcf0c2a996ef61bb1f51cb02afa7686de1bbe1", 438 "rev": "287480b541e85b13ff6419d372f82fa8e42c603c",
439 "type": "github" 439 "type": "github"
440 }, 440 },
441 "original": { 441 "original": {
@@ -472,11 +472,11 @@
472 ] 472 ]
473 }, 473 },
474 "locked": { 474 "locked": {
475 "lastModified": 1740886574, 475 "lastModified": 1742096597,
476 "narHash": "sha256-jN6kJ41B6jUVDTebIWeebTvrKP6YiLd1/wMej4uq4Sk=", 476 "narHash": "sha256-CUy00dj513aIvtN2NGiDKLCVEQSz4xHWSDf229EiJdU=",
477 "owner": "Mic92", 477 "owner": "Mic92",
478 "repo": "nix-index-database", 478 "repo": "nix-index-database",
479 "rev": "26a0f969549cf4d56f6e9046b9e0418b3f3b94a5", 479 "rev": "5c77c6d6f2e8cc6007c2b1a4df1a507834404a67",
480 "type": "github" 480 "type": "github"
481 }, 481 },
482 "original": { 482 "original": {
@@ -493,11 +493,11 @@
493 ] 493 ]
494 }, 494 },
495 "locked": { 495 "locked": {
496 "lastModified": 1740362141, 496 "lastModified": 1741549407,
497 "narHash": "sha256-1eSoFF0derndmAU1xq4PPuSzO7rlkUDBo2ncjyVgc30=", 497 "narHash": "sha256-f9SXK+/rvlryDNlc++Eva/hYjbkf7OCalWwmwifRhtI=",
498 "owner": "AshleyYakeley", 498 "owner": "AshleyYakeley",
499 "repo": "NixVirt", 499 "repo": "NixVirt",
500 "rev": "3fc706593a35583863f8634a8fd2d7cfad7f1263", 500 "rev": "9950b932dce4ae6b9bda7c83d41705c1a14e10f0",
501 "type": "github" 501 "type": "github"
502 }, 502 },
503 "original": { 503 "original": {
@@ -508,11 +508,11 @@
508 }, 508 },
509 "nixos-hardware": { 509 "nixos-hardware": {
510 "locked": { 510 "locked": {
511 "lastModified": 1740646007, 511 "lastModified": 1741792691,
512 "narHash": "sha256-dMReDQobS3kqoiUCQIYI9c0imPXRZnBubX20yX/G5LE=", 512 "narHash": "sha256-f0BVt1/cvA0DQ/q3rB+HY4g4tKksd03ZkzI4xehC2Ew=",
513 "owner": "NixOS", 513 "owner": "NixOS",
514 "repo": "nixos-hardware", 514 "repo": "nixos-hardware",
515 "rev": "009b764ac98a3602d41fc68072eeec5d24fc0e49", 515 "rev": "e1f12151258b12c567f456d8248e4694e9390613",
516 "type": "github" 516 "type": "github"
517 }, 517 },
518 "original": { 518 "original": {
@@ -630,11 +630,11 @@
630 }, 630 },
631 "nixpkgs-stable_2": { 631 "nixpkgs-stable_2": {
632 "locked": { 632 "locked": {
633 "lastModified": 1741196730, 633 "lastModified": 1741862977,
634 "narHash": "sha256-0Sj6ZKjCpQMfWnN0NURqRCQn2ob7YtXTAOTwCuz7fkA=", 634 "narHash": "sha256-prZ0M8vE/ghRGGZcflvxCu40ObKaB+ikn74/xQoNrGQ=",
635 "owner": "NixOS", 635 "owner": "NixOS",
636 "repo": "nixpkgs", 636 "repo": "nixpkgs",
637 "rev": "48913d8f9127ea6530a2a2f1bd4daa1b8685d8a3", 637 "rev": "cdd2ef009676ac92b715ff26630164bb88fec4e0",
638 "type": "github" 638 "type": "github"
639 }, 639 },
640 "original": { 640 "original": {
@@ -678,11 +678,11 @@
678 }, 678 },
679 "nixpkgs_2": { 679 "nixpkgs_2": {
680 "locked": { 680 "locked": {
681 "lastModified": 1741173522, 681 "lastModified": 1742069588,
682 "narHash": "sha256-k7VSqvv0r1r53nUI/IfPHCppkUAddeXn843YlAC5DR0=", 682 "narHash": "sha256-C7jVfohcGzdZRF6DO+ybyG/sqpo1h6bZi9T56sxLy+k=",
683 "owner": "NixOS", 683 "owner": "NixOS",
684 "repo": "nixpkgs", 684 "repo": "nixpkgs",
685 "rev": "d69ab0d71b22fa1ce3dbeff666e6deb4917db049", 685 "rev": "c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5",
686 "type": "github" 686 "type": "github"
687 }, 687 },
688 "original": { 688 "original": {
@@ -748,11 +748,11 @@
748 "treefmt-nix": "treefmt-nix" 748 "treefmt-nix": "treefmt-nix"
749 }, 749 },
750 "locked": { 750 "locked": {
751 "lastModified": 1741163974, 751 "lastModified": 1741790785,
752 "narHash": "sha256-QehWX1ik9vqkylkbvdpO5XZKaqf2fsE92iMEyRBW2qI=", 752 "narHash": "sha256-nzgO/ZCSBzWjbMkYDxG+yl9Z2eGbCgQu06Oku3ir5D4=",
753 "owner": "nix-community", 753 "owner": "nix-community",
754 "repo": "poetry2nix", 754 "repo": "poetry2nix",
755 "rev": "98293f0b368f24c48e05aaa2359dcc0de15e976f", 755 "rev": "f842aae3a72ef764e38eaf3e75aa435fb9861bba",
756 "type": "github" 756 "type": "github"
757 }, 757 },
758 "original": { 758 "original": {
@@ -891,11 +891,11 @@
891 ] 891 ]
892 }, 892 },
893 "locked": { 893 "locked": {
894 "lastModified": 1741043164, 894 "lastModified": 1741861888,
895 "narHash": "sha256-9lfmSZLz6eq9Ygr6cCmvQiiBEaPb54pUBcjvbEMPORc=", 895 "narHash": "sha256-ynOgXAyToeE1UdLNfrUn/hL7MN0OpIS2BtNdLjpjPf0=",
896 "owner": "Mic92", 896 "owner": "Mic92",
897 "repo": "sops-nix", 897 "repo": "sops-nix",
898 "rev": "3f2412536eeece783f0d0ad3861417f347219f4d", 898 "rev": "d016ce0365b87d848a57c12ffcfdc71da7a2b55f",
899 "type": "github" 899 "type": "github"
900 }, 900 },
901 "original": { 901 "original": {
@@ -966,11 +966,11 @@
966 ] 966 ]
967 }, 967 },
968 "locked": { 968 "locked": {
969 "lastModified": 1737014022, 969 "lastModified": 1742140394,
970 "narHash": "sha256-5cG3lbjvrqvotI3oEPham3jGq8Fd96NfrqCGvC1e6Qw=", 970 "narHash": "sha256-U1Lp5HZbpnWQRetOLzQl3dURplY2BRfAZYkjBawYrVM=",
971 "owner": "gkleen", 971 "owner": "gkleen",
972 "repo": "Waybar", 972 "repo": "Waybar",
973 "rev": "83765e0f8e99a7d344eae511a4090a76a27e5791", 973 "rev": "f310667db199c570b599a08152d49b7f80db93f2",
974 "type": "github" 974 "type": "github"
975 }, 975 },
976 "original": { 976 "original": {
@@ -1000,11 +1000,11 @@
1000 "xwayland-satellite-unstable": { 1000 "xwayland-satellite-unstable": {
1001 "flake": false, 1001 "flake": false,
1002 "locked": { 1002 "locked": {
1003 "lastModified": 1741140299, 1003 "lastModified": 1742083780,
1004 "narHash": "sha256-Y2bPO92Yg5HcH5ORvrVOQb4wRGEapGEteHXGtNvboxk=", 1004 "narHash": "sha256-cVLagXvI4jFbCe76tpvAWA2N2WF94Pl0PpgsGp2P6rM=",
1005 "owner": "Supreeeme", 1005 "owner": "Supreeeme",
1006 "repo": "xwayland-satellite", 1006 "repo": "xwayland-satellite",
1007 "rev": "10cb041a80bb815cc1789cfa305923f1f9e3713d", 1007 "rev": "f9ec97b007547ad80147404335ed22e880dbd69d",
1008 "type": "github" 1008 "type": "github"
1009 }, 1009 },
1010 "original": { 1010 "original": {
diff --git a/home-modules/pandoc/default.nix b/home-modules/pandoc/default.nix
new file mode 100644
index 00000000..1d16b621
--- /dev/null
+++ b/home-modules/pandoc/default.nix
@@ -0,0 +1,27 @@
1{ pkgs, lib, config, ... }:
2
3let
4 cfg = config.programs.pandoc;
5in {
6 options.programs.pandoc = {
7 germanAbbreviations = lib.mkEnableOption "importing german abbreviations" // { default = true; };
8 extraAbbreviations = lib.mkOption {
9 type = lib.types.listOf lib.types.str;
10 default = [];
11 };
12 };
13
14 config = lib.mkIf cfg.enable {
15 xdg.dataFile = lib.mkIf (cfg.germanAbbreviations || cfg.extraAbbreviations != []) {
16 "pandoc/abbreviations".source = pkgs.runCommand "pandoc-abbreviations" {
17 buildInputs = [ pkgs.coreutils ];
18 } ''
19 cat \
20 <(${lib.getExe' cfg.finalPackage "pandoc"} --print-default-data-file=abbreviations) \
21 ${lib.optionalString cfg.germanAbbreviations ./german_abbreviations.txt} \
22 ${lib.optionalString (cfg.extraAbbreviations != []) (pkgs.writeText "abbrevs.txt" (lib.concatStringsSep "\n" cfg.extraAbbreviations))} \
23 | sort | uniq >$out
24 '';
25 };
26 };
27}
diff --git a/home-modules/pandoc/german_abbreviations.txt b/home-modules/pandoc/german_abbreviations.txt
new file mode 100644
index 00000000..fa4c9c87
--- /dev/null
+++ b/home-modules/pandoc/german_abbreviations.txt
@@ -0,0 +1,1423 @@
1&c.
2A.
3a.
4a.a.O.
5A.C.A.B.
6a.D.
7a.d.D.
8a.g.O.
9Abb.
10abchas.
11abds.
12Abf.
13Abfr.
14Abg.
15abgek.
16abh.
17Abh.
18Abk.
19ABl.
20Abl.
21Abm.
22abn.
23Abn.
24abr.
25Abr.
26Abs.
27abs.
28Abschn.
29Abst.
30Abt.
31abulg.
32abw.
33abwert.
34abzgl.
35accel.
36accresc.
37Add.
38Adj.
39adj.
40Adr.
41adv.
42Adv.
43adyg.
44ae.
45aengl.
46afghan.
47afr.
48afranz.
49afranzös.
50afries.
51afrik.
52afrk.
53afrs.
54afrz.
55afränk.
56ags.
57ahd.
58Ahd.
59aind.
60air.
61akad.
62Akk.
63akkad.
64akt.
65alb.
66alban.
67alem.
68alemann.
69all.
70allg.
71allj.
72allm.
73alltagsspr.
74alphanum.
75Alt.
76altai.
77altengl.
78altfranz.
79altfranzös.
80altfrz.
81altgr.
82althochdt.
83altis.
84altisländ.
85altpreuß.
86altröm.
87alttest.
88alëut.
89am.
90amer.
91amerik.
92amerikan.
93amhar.
94amt.
95amtl.
96Amtm.
97Amtsbl.
98Amtsdt.
99Amtsspr.
100an.
101anal.
102anat.
103Anat.
104anatom.
105andalus.
106ang.
107angelsächs.
108Angest.
109angest.
110angloamerik.
111anglofrz.
112angloind.
113Anh.
114Ank.
115Ankl.
116Anl.
117anl.
118Anm.
119Anm.d.Red.
120Ann.
121ann.
122annamit.
123anord.
124Anord.
125anschl.
126Anschl.
127Anschr.
128antarkt.
129Anthrop.
130anthrop.
131Anw.
132aobd.
133apl.
134Apostr.
135App.
136Apr.
137apreuß.
138ar.
139arab.
140aragon.
141aram.
142aran.
143architekt.
144archäol.
145arg.
146argent.
147arkt.
148armen.
149Art.
150Art.-Nr.
151Artt.
152as.
153aserbaidsch.
154aslaw.
155assyr.
156astron.
157asächs.
158At.-Gew.
159attr.
160Attr.
161Aufl.
162Aug.
163Ausg.
164ausgen.
165Aussch.
166ausschl.
167Ausspr.
168Ausst.
169austral.
170awar.
171awest.
172Az.
173aztek.
174b.
175B.
176Ba.-Wü.
177bab.
178babyl.
179bair.
180Bakt.
181Bal.
182balt.
183baltoslaw.
184Bankw.
185bas.
186baschk.
187bask.
188Bat.
189bauf.
190Bauw.
191bay.
192bayer.
193bayr.
194BayVBl.
195Bd.
196Bde.
197Bed.
198Begr.
199begr.
200beif.
201beil.
202Beil.
203Bem.
204ben.
205berbersprachl.
206Bergb.
207berlin.
208Berufsbez.
209bes.
210besch.
211Beschl.
212best.
213Best.-Nr.
214Betr.
215betr.
216Betriebswiss.
217Bev.
218Bez.
219bez.
220bezw.
221Bf.
222bfn.
223Bg.
224bgld.
225Bgld.
226Bhf.
227Bib.
228bibl.
229bildl.
230bildungsspr.
231Biol.
232biol.
233Bj.
234bl.
235Bl.
236Blk.
237Bln.
238Bodenk.
239bot.
240Bot.
241Br.-M.
242Br.-Mstr.
243bras.
244bret.
245breton.
246brit.
247Brm.
248brn.
249Bruchz.
250bsd.
251Bsp.
252bsplsw.
253bspw.
254BT-Drs.
255Btl.
256btto.
257Bttr.
258Buchw.
259buddh.
260bulg.
261bulgar.
262burjat.
263burmes.
264Bw.
265byzant.
266Bz.
267bzb.
268bzgl.
269bzw.
270böhm.
271Börsenw.
272C.
273ca.
274Carp.
275Cb.
276cf.
277chakass.
278chald.
279chant.
280chem.
281Chem.
282chilen.
283chin.
284Chr.
285christl.
286chron.
287Chron.
288Co.
289Comp.
290cresc.
291D.
292Dankb.
293dankwtw.
294das.
295dass.
296Dat.
297dbzgl.
298ders.
299des.
300desgl.
301Dez.
302dgl.
303Di.
304dial.
305dichter.
306dies.
307dim.
308Dim.
309Dimin.
310dimin.
311Dipl.
312Dipl.-Bibl.
313Dipl.-Ing.
314Dipl.-Kff.
315Dipl.-Kffr.
316Dipl.-Kfm.
317Dipl.-Kfr.
318Dipl.-Psych.
319Dir.
320Diss.
321Do.
322do.
323Do.-Gge.
324dominikan.
325dor.
326Doz.
327Dr.
328Drchf.
329Drcks.
330Dres.
331Drs.
332Drucks.
333dt.
334Dtl.
335dto.
336Dtzd.
337dz.
338Dz.
339dän.
340E.
341ebd.
342Ed.
343ed.
344ehem.
345eidg.
346eig.
347eigtl.
348Einf.
349einh.
350Einl.
351einschl.
352Einw.
353Eisenb.
354Elektrot.
355elektrotechn.
356em.
357engl.
358entspr.
359erb.
360erf.
361erg.
362Erg.
363erk.
364Erl.
365erm.
366Ers.-D.
367ersch.
368erschl.
369Erschl.
370Erschl.-Geb.
371Erschw.
372erschw.
373Erstauff.
374Erstausg.
375Ertr.
376Erw.
377Erw.-Bldg.
378erwähnw.
379Erzb.
380erzg.
381erzgeb.
382eskim.
383estn.
384etc.
385Etg.
386etrusk.
387etw.
388eur.
389europ.
390ev.
391evang.
392evtl.
393Ew.
394ewen.
395ewenk.
396exkl.
397Expl.
398Ez.
399f.
400F.
401Fa.
402fachspr.
403Fachspr.
404Fag.
405Fam.
406fam.
407Febr.
408fem.
409ff.
410Fig.
411fig.
412finanzmath.
413finn.
414finnougr.
415Flgh.
416fläm.
417Fn.
418fnhd.
419folg.
420Forts.
421Fortstzg.
422Fr.
423fr.
424fragm.
425franz.
426französ.
427Frdf.
428frdl.
429frdsprlg.
430Frfr.
431frfr.
432Frh.
433Frhf.
434Frhr.
435fries.
436friesl.
437Frk.
438Frl.
439Frm.
440frnhd.
441Frspr.
442frstl.
443Frt.
444frtr.
445Frwk.
446frz.
447fränk.
448frühnhd.
449Fs.
450Fsch.
451Fschr.
452Fsm.
453Ftm.
454Fut.
455fut.
456färö.
457förml.
458g.
459Ga.
460gall.
461galloroman.
462Gart.
463gaskogn.
464gbd.
465Gbd.
466Gbf.
467GBl.
468Gbl.
469geb.
470Geb.
471Geb.-T.
472Gebr.
473gebr.
474ged.
475gef.
476geg.
477gegr.
478geh.
479gek.
480gel.
481geleg.
482gem.
483gemeingerm.
484gen.
485Gen.
486geod.
487geogr.
488geograf.
489geograph.
490geol.
491geolog.
492geophys.
493georg.
494gep.
495ger.
496germ.
497Ges.
498ges.
499gesch.
500gespr.
501gest.
502get.
503Gew.
504gew.
505gez.
506Gfsch.
507Gft.
508gg.
509ggb.
510ggbfs.
511ggez.
512ggf.
513ggfls.
514ggfs.
515Ggs.
516ggü.
517Ghzg.
518Ghzgt.
519glchz.
520Gld.
521Glde.
522gldg.
523Gldr.
524Gled.
525gleichbed.
526gleichn.
527gleichz.
528Glfl.
529gls.
530gltd.
531gltg.
532glz.
533gm.
534got.
535gr.
536Gr.
537Gramm.
538grammat.
539graph.
540grch.
541Grchl.
542Grdb.
543Grdf.
544Grdfl.
545Grdg.
546Grdl.
547Grdr.
548grds.
549Grdst.
550griech.
551Grz.
552grönländ.
553Gstb.
554Gt.
555gyn.
556gynäk.
557gäl.
558H.-I.
559H.-Qu.
560hait.
561Handw.
562Hbf.
563hd.
564Hd.-Bibl.
565Hdb.
566hdbr.
567Hdbr.
568hdl.
569Hdl.
570Hdlbg.
571hebr.
572hess.
573hethit.
574Hf.
575Hg.
576hg.
577hindust.
578hinr.
579hins.
580Hinw.
581hist.
582HJber.
583Hkl.
584hl.
585hochd.
586hochspr.
587Hom.
588hor.
589Hpfl.
590hptpl.
591hpts.
592Hptst.
593hptw.
594Hptw.
595HQu.
596Hr.
597HReg.
598Hrn.
599Hrsg.
600hrsg.
601Hs.
602Hs.-Nr.
603hschr.
604Hschr.
605HSt.
606Hubbr.
607Hubr.
608Hw.
609Hyaz.
610hydr.
611hydrol.
612Hzm.
613i.
614I.E.
615i.g.O.
616i.Tr.
617iber.
618ibid.
619ide.
620Ident.
621ident.
622idg.
623ie.
624illyr.
625Imkerspr.
626imp.
627Imp.
628in.
629Ind.
630ind.
631indef.
632indekl.
633indian.
634indiff.
635indir.
636indiv.
637indog.
638indogerm.
639indogerman.
640indoiran.
641indon.
642indones.
643Inf.
644inf.
645Ing.
646Inh.
647inkl.
648inn.
649Ins.
650insb.
651insbes.
652int.
653intern.
654intrans.
655ir.
656iran.
657iron.
658isl.
659islam.
660isländ.
661it.
662ital.
663italien.
664j.
665J.
666Jahrh.
667jakut.
668Jan.
669jap.
670japan.
671jav.
672jem.
673jemen.
674Jg.
675jgdfr.
676Jh.
677Jhd.
678Jhdt.
679Jhg.
680Jhs.
681jidd.
682jmd.
683jmdm.
684jmdn.
685jmds.
686journ.
687jr.
688Jr.
689Jt.
690Jtsd.
691jugendspr.
692jugendsprachl.
693jugoslaw.
694Jul.
695jun.
696Jun.
697jur.
698Juw.
699jägersprachl.
700jährl.
701Jän.
702jüd.
703k.u.k.
704K.Ö.St.V.
705kalm.
706kanad.
707Kap.
708karib.
709kastil.
710katal.
711katalan.
712kath.
713kaufm.
714kaukas.
715kelt.
716Kgr.
717Kh.
718kindersprachl.
719kirchenlat.
720kirchenslaw.
721kirchl.
722kirg.
723Kl.
724klass.
725klass.-lat.
726klimatol.
727kol.
728Komm.
729Konj.
730Konv.
731Kop.
732kop.
733kopt.
734korean.
735Kr.
736kreol.
737kret.
738Krh.
739Krhs.
740Krim.-Ob.-Insp.
741krimgot.
742kriminaltechn.
743Krkhs.
744kroat.
745Krs.
746Ks.
747Kto.
748Kto.-Nr.
749kuban.
750kurd.
751Kurzw.
752Kw.
753l.
754L.-Abg.
755lab.
756LAbg.
757ladin.
758landsch.
759Landw.
760langfr.
761langj.
762langob.
763langobard.
764lapp.
765lat.
766latein.
767latinis.
768lautl.
769lautm.
770lbd.
771lbdg.
772Ldkr.
773led.
774leg.
775lett.
776lfd.
777Lfg.
778Lfm.
779Lfrg.
780Lg.
781lgfr.
782Lgft.
783lgj.
784lig.
785ling.
786lit.
787LL.M.
788lrh.
789lt.
790ltd.
791luth.
792luxemb.
793Lz.
794m.
795M.
796M.-Schr.
797m.a.W.
798ma.
799MA.
800Mag.
801malai.
802marinespr.
803marx.
804mask.
805math.
806Math.
807max.
808Max.
809mazedon.
810mbl.
811Mbl.
812MBl.
813Mbll.
814md.
815mdal.
816mdj.
817mdl.
818mdls.
819Mdt.
820me.
821mech.
822meckl.
823med.
824melanes.
825mengl.
826Merc.
827met.
828meteorol.
829meton.
830mex.
831mexik.
832mfr.
833mfranz.
834mfrk.
835mfrz.
836mfränk.
837mgl.
838Mgl.
839mglw.
840mhd.
841mhdt.
842Mi.
843mi.
844Mia.
845milit.
846Mill.
847min.
848Min.
849mind.
850Mio.
851mir.
852Mitgl.
853mitteld.
854mitteldt.
855mittelhochdt.
856Mittw.
857Mitw.
858mlat.
859Mme.
860Mmes.
861mnd.
862mndd.
863mniederd.
864mnl.
865Mo.
866mod.
867mong.
868Mrd.
869Mrz.
870Mschr.
871Msgr.
872Msp.
873mtl.
874mundartl.
875musik.
876MwSt.
877Myth.
878Mz.
879männl.
880möbl.
881n.
882Nachf.
883nachm.
884nat.
885nationalsoz.
886natsoz.
887Nbf.
888Nbfl.
889Nchf.
890nd.
891ndd.
892ndrl.
893neapolit.
894Neub.
895neunorweg.
896neutest.
897neutr.
898Nfl.
899ngl.
900ngr.
901nhbr.
902nhd.
903nicar.
904niederd.
905niederdt.
906niederl.
907niederld.
908niem.
909niger.
910nihil.
911nl.
912nlat.
913nmtl.
914Nom.
915nord.
916nordamerik.
917nordd.
918norddt.
919nordgerm.
920nordostd.
921nordostdt.
922nordwestd.
923nordwestdt.
924norm.
925norw.
926norweg.
927Nov.
928Nr.
929ntw.
930Ntw.
931Nutzfl.
932nw.
933näml.
934nö.
935nördl.
936o.
937O.K.
938ob.
939Ob.
940Obb.
941obb.
942obd.
943Oberlaus.
944obers.
945obersächs.
946obj.
947od.
948offiz.
949Offz.
950Ofr.
951ofrs.
952Okt.
953op.
954Orch.-Bes.
955org.
956Orig.
957orn.
958orth.
959Ortskl.
960Osch.
961osk.
962osman.
963ostd.
964ostdt.
965ostfr.
966ostfrz.
967ostgerm.
968ostidg.
969ostmdt.
970ostmitteld.
971ostniederd.
972ostpr.
973ostpreuß.
974ostw.
975osö.
976Ouv.
977oz.
978Oz.
979oö.
980OÖ.
981P.
982p.
983P.S.
984pa.
985palästin.
986par.
987parag.
988Paragr.
989Parl.
990Part.
991pass.
992Pat.
993pej.
994pers.
995peruan.
996Pet.
997Pf.
998Pfd.
999Pfg.
1000Pfl.
1001pharm.
1002philos.
1003Philos.
1004phonolog.
1005phryg.
1006Phys.
1007phys.
1008phöniz.
1009Pi.
1010pik.
1011Pkt.
1012Pl.
1013Plur.
1014poet.
1015Pol.
1016pol.
1017polit.
1018poln.
1019polynes.
1020port.
1021portug.
1022Pos.
1023pos.
1024pp.
1025ppa.
1026preuß.
1027Priv.-Doz.
1028Prof.
1029prot.
1030Prot.
1031prov.
1032Prov.
1033prov.-fr.
1034provenz.
1035Proz.
1036Proz.-Bev.
1037präd.
1038prähist.
1039Präs.
1040Psych.
1041psych.
1042Päd.
1043Q.
1044q.v.
1045Qmstr.
1046Qt.
1047qu.
1048Qu.
1049quadr.
1050Quadr.
1051qual.
1052Qual.
1053quant.
1054Quant.
1055Quar.
1056Quart.
1057Quat.
1058quitt.
1059Quitt.
1060Quäst.
1061r.
1062r.-k.
1063Rab.
1064rad.
1065Raff.
1066Rak.
1067Randb.
1068Randbem.
1069rat.
1070Rat.
1071Rb.
1072rd.
1073RdErl.
1074Rdf.
1075refl.
1076Reg.
1077Reg.-Bez.
1078Regt.
1079Rel.
1080rel.
1081relig.
1082Rep.
1083resp.
1084Rg.-Präs.
1085RGBl.
1086rglm.
1087Rgstr.
1088Rgt.
1089Rh.
1090rh.
1091rhein.
1092rheinhess.
1093rhet.
1094rhfrk.
1095Rhj.
1096Rhld.
1097Rhs.
1098Ri.
1099Richtl.
1100rip.
1101rk.
1102roman.
1103rotw.
1104Rr.
1105rrh.
1106Rspr.
1107Rtn.
1108Rtt.
1109rumän.
1110russ.
1111Rvj.
1112rzp.
1113rätorom.
1114röm.
1115röm.-kath.
1116S.
1117s.
1118S.-Wk.
1119Sa.
1120Sachs.
1121san.
1122sanskr.
1123Sat.
1124sat.
1125Sb.
1126Sbd.
1127sc.
1128scherzh.
1129Schill.
1130schles.
1131schott.
1132schr.
1133schriftl.
1134Schussw.
1135schwed.
1136schweiz.
1137Schwg.
1138Schwp.
1139schwäb.
1140scil.
1141Sdp.
1142sek.
1143sem.
1144semit.
1145sen.
1146Sep.
1147Sept.
1148serb.
1149serbokroat.
1150Sg.
1151sibir.
1152Sing.
1153singhal.
1154Sir.
1155sizilian.
1156skand.
1157slaw.
1158slow.
1159slowak.
1160slowen.
1161So.
1162sod.
1163sof.
1164sog.
1165sogen.
1166sogl.
1167soldatenspr.
1168solv.
1169somal.
1170sorb.
1171Sout.
1172soz.
1173soziol.
1174span.
1175spez.
1176sportspr.
1177Spr.
1178sprachwiss.
1179Spvg.
1180Spvgg.
1181spätahd.
1182spätgriech.
1183spätlat.
1184spätmhd.
1185Sr.
1186ssp.
1187St.
1188St.-Nr.
1189staatl.
1190Std.
1191stdl.
1192stellv.
1193Stellv.
1194Stk.
1195Str.
1196str.
1197Stud.
1198stud.
1199subsp.
1200Subst.
1201sumer.
1202svw.
1203Swk.
1204syn.
1205Syn.
1206syr.
1207sächs.
1208südafrik.
1209südd.
1210süddt.
1211südl.
1212südostdt.
1213südwestd.
1214Süßw.
1215Tab.
1216Tabl.
1217Taf.
1218tamil.
1219tatar.
1220techn.
1221Tel.
1222telef.
1223Temp.
1224Terr.
1225tessin.
1226test.
1227Tfx.
1228tgl.
1229Tgt.
1230thrak.
1231thür.
1232thüring.
1233Ti.
1234tib.
1235tirol.
1236Tlr.
1237tochar.
1238trans.
1239tsch.
1240tschech.
1241tschechoslowak.
1242Tsd.
1243tun.
1244Tun.
1245tunes.
1246Tunes.
1247tungus.
1248turkotat.
1249typogr.
1250tägl.
1251türk.
1252u.
1253u.a.
1254Ubr.
1255ue.
1256ugr.
1257ugs.
1258ukrain.
1259umbr.
1260umg.
1261unang.
1262unbefl.
1263Unf.
1264unf.
1265unfol.
1266unfr.
1267ung.
1268ungar.
1269ungebr.
1270ungel.
1271ungen.
1272unges.
1273ungl.
1274Uni-Kl.
1275Univ.
1276unv.
1277unverantw.
1278unverb.
1279unverbr.
1280unverd.
1281unverg.
1282unverh.
1283unverk.
1284unverp.
1285unversch.
1286unverz.
1287unverzgl.
1288unvollst.
1289unvorb.
1290unvors.
1291unzerbr.
1292urgerm.
1293urkdl.
1294urspr.
1295ursprüngl.
1296Urt.
1297usf.
1298USt-IdNr.
1299usw.
1300uvm.
1301v.
1302va.
1303Ver.
1304Verf.
1305Verg.
1306vergl.
1307Vergl.
1308verh.
1309Vers.
1310vers.
1311vert.
1312Vfg.
1313vgbl.
1314vgl.
1315Vgl.
1316vh.
1317viell.
1318vj.
1319Vj.
1320vl.
1321vlat.
1322vlt.
1323vmtl.
1324volkst.
1325Vors.
1326vrstl.
1327vrt.
1328vs.
1329vsl.
1330vt.
1331vulg.
1332vulgärlat.
1333Vwz.
1334vzk.
1335w.
1336W.
1337Wa.
1338wal.
1339wehrtgl.
1340weibl.
1341Weis.
1342weißruss.
1343werkt.
1344westd.
1345westdt.
1346Westf.
1347westfäl.
1348westgerm.
1349westl.
1350westmitteld.
1351westmitteldt.
1352Wf.
1353wf.
1354Wfl.
1355wg.
1356wh.
1357Whg.
1358winzerspr.
1359wirtschaftl.
1360wiss.
1361Wkst.
1362Wkstf.
1363wkts.
1364wld.
1365Wr.
1366Ws.
1367Wtb.
1368Ww.
1369Wwe.
1370Wz.
1371Xerogr.
1372Xerok.
1373Xyl.
1374y.
1375Y.
1376yd.
1377Yd.
1378Yds.
1379yds.
1380Z.
1381z.B.
1382za.
1383Zf.
1384Zgm.
1385zgs.
1386zgst.
1387zgw.
1388Zi.
1389Ziff.
1390zit.
1391Zit.
1392zk.
1393Zk.
1394Zool.
1395zool.
1396Zssg.
1397Zssgn.
1398Ztr.
1399Zub.
1400zur.
1401zus.
1402zw.
1403Zz.
1404zz.
1405zzgl.
1406zzt.
1407ägypt.
1408Ökol.
1409ökol.
1410ökon.
1411ökum.
1412örtl.
1413österr.
1414Österr.
1415östl.
1416übers.
1417übertr.
1418überw.
1419Überw.
1420übl.
1421üblw.
1422Übn.
1423übsch.
diff --git a/home-modules/pandoc/german_abbreviations.txt.gup b/home-modules/pandoc/german_abbreviations.txt.gup
new file mode 100755
index 00000000..abcab1da
--- /dev/null
+++ b/home-modules/pandoc/german_abbreviations.txt.gup
@@ -0,0 +1,35 @@
1#!/usr/bin/env nix
2#!nix shell --impure --expr ``
3#!nix with (import (builtins.getFlake ''nixpkgs'') {});
4#!nix python3.withPackages (ps: with ps; [ requests ])
5#!nix `` --command python3
6
7import requests
8import json
9import sys
10import re
11import subprocess
12
13def wiki_cont(url, params):
14 continue_params = None
15 while True:
16 req_params = params
17 if continue_params is not None:
18 req_params |= continue_params
19 json_data = requests.get(url, req_params).json()
20 if "query" in json_data:
21 yield json_data["query"]
22 if "continue" not in json_data:
23 break
24 else:
25 continue_params = json_data["continue"]
26
27out_re = re.compile(r"[^ ]*[^ 0-9][^ ]*\.")
28
29subprocess.run(["gup", "--always"], check=True)
30
31with open(sys.argv[1], 'w') as out:
32 for query in wiki_cont("https://de.wiktionary.org/w/api.php", {"action": "query", "list": "categorymembers", "cmtitle": "Kategorie:Abkürzung_(Deutsch)", "format": "json"}):
33 for item in map(lambda i: i["title"], query["categorymembers"]):
34 if out_re.fullmatch(item):
35 print(item, file=out)
diff --git a/hosts/sif/default.nix b/hosts/sif/default.nix
index 2a3a6be9..9208e391 100644
--- a/hosts/sif/default.nix
+++ b/hosts/sif/default.nix
@@ -26,9 +26,6 @@ in {
26 allowUnfree = true; 26 allowUnfree = true;
27 pulseaudio = true; 27 pulseaudio = true;
28 }; 28 };
29 extraOverlays = [
30 flakeInputs.niri-flake.overlays.niri
31 ];
32 }; 29 };
33 30
34 time.timeZone = null; 31 time.timeZone = null;
@@ -472,6 +469,8 @@ in {
472 libinput.enable = true; 469 libinput.enable = true;
473 470
474 envfs.enable = false; 471 envfs.enable = false;
472
473 displayManager.defaultSession = "Niri";
475 }; 474 };
476 475
477 systemd.tmpfiles.settings = { 476 systemd.tmpfiles.settings = {
diff --git a/overlays/niri.nix b/overlays/niri.nix
new file mode 100644
index 00000000..9188ed7d
--- /dev/null
+++ b/overlays/niri.nix
@@ -0,0 +1,8 @@
1{ final, prev, flakeInputs, ... }: prev.lib.composeExtensions
2 flakeInputs.niri-flake.overlays.niri
3 (final: prev: {
4 niri-unstable = prev.niri-unstable.overrideAttrs (oldAttrs: {
5 buildInputs = (oldAttrs.buildInputs or []) ++ [ final.libgbm ];
6 });
7 })
8 final prev
diff --git a/overlays/swayosd/default.nix b/overlays/swayosd/default.nix
index d8807b41..2a3a0f2b 100644
--- a/overlays/swayosd/default.nix
+++ b/overlays/swayosd/default.nix
@@ -6,23 +6,6 @@
6 inherit version src; 6 inherit version src;
7 hash = "sha256-s2vgyQP6J3i0q2o/Tt8dYoamBH3vrI/FNJYteHO8v5Q="; 7 hash = "sha256-s2vgyQP6J3i0q2o/Tt8dYoamBH3vrI/FNJYteHO8v5Q=";
8 }; 8 };
9 nativeBuildInputs = with final; [
10 wrapGAppsHook4
11 pkg-config
12 meson
13 rustc
14 cargo
15 ninja
16 rustPlatform.cargoSetupHook
17 ];
18 buildInputs = with final; [
19 gtk4-layer-shell
20 libevdev
21 libinput
22 libpulseaudio
23 udev
24 sassc
25 ];
26 patches = (oldAttrs.patches or []) ++ [ 9 patches = (oldAttrs.patches or []) ++ [
27 ./exponential.patch 10 ./exponential.patch
28 ]; 11 ];
diff --git a/overlays/waybar.nix b/overlays/waybar.nix
index 20f37255..e7e3b807 100644
--- a/overlays/waybar.nix
+++ b/overlays/waybar.nix
@@ -1,3 +1,8 @@
1{ final, prev, flakeInputs, ... }: 1{ final, prev, flakeInputs, ... }: prev.lib.composeExtensions
2 2 flakeInputs.waybar.overlays.default
3flakeInputs.waybar.overlays.default final prev 3 (final: prev: {
4 waybar = prev.waybar.overrideAttrs (oldAttrs: {
5 dontVersionCheck = true;
6 });
7 })
8 final prev
diff --git a/user-profiles/zsh/zshrc b/user-profiles/zsh/zshrc
index 7d0c1a16..ed614182 100644
--- a/user-profiles/zsh/zshrc
+++ b/user-profiles/zsh/zshrc
@@ -24,9 +24,18 @@ setopt ignore_eof
24bindkey -e 24bindkey -e
25bindkey ';5C' emacs-forward-word 25bindkey ';5C' emacs-forward-word
26bindkey ';5D' emacs-backward-word 26bindkey ';5D' emacs-backward-word
27bindkey '^[[1;5C' emacs-forward-word
28bindkey '^[[1;5D' emacs-backward-word
29bindkey '^H' backward-kill-word
27 30
28autoload -Uz url-quote-magic bracketed-paste-magic 31autoload -Uz url-quote-magic bracketed-paste-magic
29zle -N self-insert url-quote-magic 32zle -N self-insert url-quote-magic
30zle -N bracketed-paste bracketed-paste-magic 33zle -N bracketed-paste bracketed-paste-magic
31 34
32setopt extended_glob 35setopt extended_glob
36
37alias -g L='| less'
38alias -g S='&> /dev/null'
39alias -g G='| grep'
40alias -g B='&> /dev/null &'
41alias -g BB='&> /dev/null &!'