Compare commits

..

255 commits
testing ... dev

Author SHA1 Message Date
b73c93a31e
Tweaks 2025-10-30 19:57:54 +01:00
48463104ab
[Tibo-NixDesk] Update 2025-10-30 19:51:27 +01:00
01efdcf8e7
[hypr] fix: Turn volume off at boot 2025-10-29 19:32:21 +01:00
f655e5223d
[hypr] Add hy3 addon 2025-10-26 21:19:00 +01:00
1f5facd346
[firefox] Add Google Scholar alias 2025-10-26 16:24:21 +01:00
e1b5cb2ea4
[virtualbox] Remove guest 2025-10-26 16:23:26 +01:00
f94e0647a9
[sops/ssh] Add more SSH config/keys 2025-10-26 16:22:50 +01:00
23b021b9b2
nixos/flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5ed4e25ab58fd4c028b59d5611e14ea64de51d23?narHash=sha256-TvODmeR2W7yX/JmOCmP%2BlAFNkTT7hAxYcF3Kz8SZV3w%3D' (2025-09-29)
  → 'github:NixOS/nixpkgs/33c6dca0c0cb31d6addcd34e90a63ad61826b28c?narHash=sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0%3D' (2025-10-19)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/e9f00bd893984bc8ce46c895c3bf7cac95331127?narHash=sha256-0m27AKv6ka%2Bq270dw48KflE0LwQYrO7Fm4/2//KCVWg%3D' (2025-09-28)
  → 'github:NixOS/nixpkgs/5e2a59a5b1a82f89f2c7e598302a9cacebb72a67?narHash=sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs%3D' (2025-10-19)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/9fcfabe085281dd793589bdc770a2e577a3caa5d?narHash=sha256-f9QC2KKiNReZDG2yyKAtDZh0rSK2Xp1wkPzKbHeQVRU%3D' (2025-09-29)
  → 'github:Mic92/sops-nix/5a7d18b5c55642df5c432aadb757140edfeb70b3?narHash=sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY%3D' (2025-10-20)
• Updated input 'zen-browser':
    'github:youwen5/zen-browser-flake/afd770119e0f9fbb085665738f3fa4c28ff42f78?narHash=sha256-LMfGQsy3OibEqr3WtLCOqUVdOy5/6DJKWHV8h%2B1Vapk%3D' (2025-09-30)
  → 'github:youwen5/zen-browser-flake/e7d9fefd8665be5d4c77466140f21a15f6d29e93?narHash=sha256-d01CGcdNlsqIn4ncGCWHM0Velnii/Ggef1iybQvEOfc%3D' (2025-10-22)
2025-10-22 09:48:06 +02:00
f722b86812
chore: More aliases 2025-10-08 10:09:39 +02:00
d94e6ebf1d
fix(waybar): Use SCRIPT_DIR envvar 2025-10-08 10:09:05 +02:00
411590d12c
fix(waybar): Custom scripts 2025-10-08 09:58:47 +02:00
6005ee646c
feat(waybar): Add individual module 2025-10-08 09:57:57 +02:00
3d4cd5ba5c
[sops/ssh] Add more SSH config/keys 2025-10-06 16:01:32 +02:00
c017c5db32
[sops] Rotate Hugo/ssh 2025-10-04 17:56:19 +02:00
efe1367084
[sops] Add NixOS/admin/ssh 2025-10-04 17:42:24 +02:00
b6c88b47d9
[sops] Add Tibo-NixTop key 2025-10-04 17:38:21 +02:00
92be81fb8f
[sops] Add GPG decryption 2025-10-04 16:34:37 +02:00
b3993ffcba
[bitwarden] Add pkg 2025-10-03 14:30:17 +02:00
072b89c473
nix flake update 2025-10-01 07:38:25 +02:00
9e215b6df9
[swaylock] Bluescreen 2025-10-01 07:37:06 +02:00
d6801e0679
[firefox] Fix rules 2025-09-30 09:31:53 +02:00
07ad0279bb
[Tibo-NixTop] Tweak boot 2025-09-30 09:31:16 +02:00
e6b51a7fea
[fprintd] Add fingerprint-scanner module 2025-09-30 09:30:27 +02:00
65e6b9cab9
[hypr] Fix modes 2025-09-28 16:32:40 +02:00
bc2f9752ce
nix flake update 2025-09-26 12:40:41 +02:00
f80c936737
[hypr] Fix "special" keybinds 2025-09-26 12:39:27 +02:00
5a6036dd62
[Tibo-NixTop] Add host 2025-09-25 21:38:36 +02:00
7d520d8cec
[firefox] Remove sponsors 2025-09-25 21:38:19 +02:00
c81444f924
[hypr] Add deps 2025-09-25 21:37:37 +02:00
7cfd76eb23
chore: Update to 25.05 2025-09-25 21:34:13 +02:00
dbbd14bbbe
fix(virtualbox): Update to 7.2 2025-09-25 19:44:06 +02:00
92b172b0a3
feat(hypr): Add dotfiles 2025-09-22 18:26:47 +02:00
b819c45b4c
chore: Update 2025-09-16 21:25:01 +02:00
0fa44bc367
chore(ssh): Add keys 2025-09-16 21:22:11 +02:00
a8ddc05ddd
feat(gpg): Add config 2025-09-16 21:21:38 +02:00
a41cdeaf39
chore(waybar): Update 2025-09-16 21:17:34 +02:00
19a8cbf400
chore(sway): Update 2025-09-16 21:13:13 +02:00
008ecba1a3
fix(foot): Remove padding 2025-09-16 21:10:30 +02:00
0e966c6201
chore: Updates 2025-09-16 21:09:26 +02:00
913562b98b
feat(yubikey-touch-detector): fix? 2025-09-16 21:06:29 +02:00
f446486678
chore: Update scripts 2025-09-16 21:05:04 +02:00
caa24fb255
chore(sway): Update 2025-09-16 21:04:48 +02:00
f35a2c5e85
chore: Update to 25.05 2025-09-16 21:02:51 +02:00
b7b0fa8ad3
chore(hyprland): Update 2025-09-16 20:59:18 +02:00
04b72edede
chore(plamsa): Update 2025-09-16 20:58:34 +02:00
2f1346651b
chore(tdpeuter): Tweak mail signatures 2025-09-16 20:53:16 +02:00
378ef78b40
feat(zen-browser): Add input/pkg 2025-09-16 20:52:22 +02:00
3fce7adaaa
chore: Add .idea to gitignore 2025-09-16 20:49:01 +02:00
3759885545
feat(firefox): Disable Homepage sponsors 2025-06-18 09:57:18 +02:00
ffd6f6e9c6
chore: suspend powerKey 2025-03-26 20:45:36 +01:00
8b9b00f33b
fixup! chore: Upgrade to 24.11 2025-02-21 20:55:42 +01:00
34263d84cc
feat(ssh): Add Dwengo keys 2025-02-21 20:40:34 +01:00
01ce208be9
chore: Upgrade to 24.11 2025-02-21 20:29:04 +01:00
c416cbaab9
chore(script): Improve toggle-light-dark 2025-01-26 22:12:27 +01:00
fb9cd8b9e9
fix(audio): Fix popping after audio suspend 2024-12-10 15:52:37 +01:00
2316cb2d9c
fix(notify): Switch to Pipewire 2024-12-03 10:58:47 +01:00
31a4c4060a
chore(docker): Add users to group 2024-10-25 16:17:58 +02:00
ade31510a8
chore: Refresh pkgs 2024-10-24 16:02:38 +02:00
b25f1f9f4b
feat(vim): Add Coq support 2024-10-24 15:29:38 +02:00
bdef46f0b2
chore: Upstream option renames 2024-10-24 15:28:36 +02:00
531fae0bb0
chore(sway): Add secondary terminal keybind 2024-10-19 14:46:38 +02:00
d1379cdf99
feat(ssh): Add Nextcloud secrets 2024-10-19 14:46:21 +02:00
0fa8782abb
[virtualbox] Remove custom pkg 2024-10-13 17:54:49 +02:00
58f2686097
[swaylock] Set default black background.
Avoid flashbangs
2024-10-07 09:48:40 +02:00
412932d20d
[sway] Switch fr to be keyboard layout 2024-09-29 20:15:09 +02:00
c9c36843ae
[swaylock] Configure keyboard layout 2024-09-29 13:08:37 +02:00
b14b9392fe
[waybar] chore: Hide power management under battery 2024-09-25 18:43:21 +02:00
0ef21309f4
[waybar] fix: Reverse volume scroll 2024-09-25 18:42:31 +02:00
8ad66eab07
[waybar] chore: Fix commas 2024-09-25 18:41:51 +02:00
0435852106
[waybar] feat: Add keyboard-layout toggle 2024-09-25 18:40:54 +02:00
5fdf52e0dc
[remEYEnder] Add icon 2024-09-19 15:56:13 +02:00
dc8fa78220
Clean up NixFat hardware config 2024-09-19 15:31:50 +02:00
b27b60a01b
[zsh] Add common aliases 2024-09-19 15:30:17 +02:00
a113c47eac
[remEYEnder] Add module 2024-09-19 15:29:55 +02:00
4c8d6dfc27
[sway] Add package for mirroring 2024-09-05 17:26:10 +02:00
8f5c38f525
[firefox] Add NixOS Options search 2024-09-05 17:12:54 +02:00
40f4ac6e12
[sway] Add ignore mode 2024-09-05 17:11:52 +02:00
f9b9424b29 colors 2024-06-21 16:11:01 +02:00
749e18793d
[nvidia] Add comments 2024-06-21 08:56:09 +02:00
6ef7e0aef8
[foot] fix: (simple) theme switching 2024-06-19 12:50:49 +02:00
0a7a5181ff
[waybar] feat: Add groups and power-profiles module 2024-06-02 20:55:57 +02:00
24ac842631
[waybar] feat: Add keyboard-state module 2024-06-02 20:55:56 +02:00
0fb52ce59e
[nixos] Upgrade to 24.05 2024-06-02 20:55:55 +02:00
386d79432b
[waybar] fix: Replace mediaplayer with mpris 2024-06-02 20:55:53 +02:00
19affd8b0e
[waybar] feat: Add privacy module 2024-06-02 20:55:51 +02:00
7866033826
[waybar] fix: Missing icons in bar 2024-06-02 20:55:49 +02:00
dbb547273b
[foot] Add config 2024-05-03 09:06:43 +02:00
2a4e5b5a96
[eid] Add module 2024-04-29 15:05:07 +02:00
8f021010c3
[firefox] Remove Qwant from search 2024-04-29 15:03:28 +02:00
ea0c3544ef
[cursor] fix: Avoid clash 2024-04-16 16:31:08 +02:00
9c61e74df7
[git] fix: Add safe directory for sshfs 2024-04-16 16:29:53 +02:00
4cd62682fd
[sway] Switch on desktop 2024-04-09 13:07:50 +02:00
2ec2004f87
[yubikey] Enable on desktop 2024-04-09 13:07:11 +02:00
ef9f891482
[sway] Attempt at improving startup time of launcher 2024-04-09 12:29:06 +02:00
da6d195afb
[yubikey] Add touch-detector 2024-04-06 23:17:01 +02:00
6f5815b392
[thunderbird] Sign mail with YubiKey 2024-03-30 23:05:05 +01:00
ff9de17d04
Allow signing with university mail 2024-03-30 00:24:22 +01:00
ceda87452c
Update monero config 2024-03-27 16:29:15 +01:00
7c0a2bf022
Restructure dotfiles 2024-03-27 16:28:39 +01:00
93260e3857
[zsh] Disable autoupdate oh-my-zsh 2024-03-24 11:50:01 +01:00
1c8e7e9b93
[monero] Disable 2024-03-23 22:45:11 +01:00
985f687cc4
[yubikey] Enable on laptop 2024-03-23 22:41:16 +01:00
26521600a1
[git] Disable signing university commits for now 2024-03-22 21:39:08 +01:00
e9274202bb
[git] Add PGP signing 2024-03-22 21:29:30 +01:00
4c0cabe4ba
[yubikey] Add module 2024-03-22 21:16:12 +01:00
cf34acefe0 [sway] Add vertical display 2024-03-20 22:06:43 +01:00
77c4056ada [docker] Disable on boot 2024-03-20 21:36:56 +01:00
059fa04660 [monero] Add module 2024-03-13 08:16:17 +01:00
832d664e6c [sway] Add altgr keyboard variant 2024-03-13 08:15:51 +01:00
601a742cd2 [foot] Add package 2024-03-08 15:38:48 +01:00
6cd501571e [openconnect-sso] Remove insecure 2024-03-08 15:38:32 +01:00
15e00efe3e [nvidia] Attempts to fix flicker
Switch to nouveau
2024-03-04 16:54:28 +01:00
e810827331 Fix rename 2024-03-04 16:52:53 +01:00
4004a048f6 [sway] Add history log to dmenu 2024-03-04 16:49:09 +01:00
1ac8bc985c [hyprland] Add module 2024-03-04 16:47:34 +01:00
85553a4a9c [vim] Tweak linters 2024-02-23 08:03:47 +01:00
6c1cdbe288 Update Tibo-NixFat 2024-02-19 10:14:33 +01:00
5c9517bb0c [vim] Fix working linter 2024-02-19 07:54:22 +01:00
c34b4caad9 Fix keyboard layouts 2024-02-18 16:35:03 +01:00
53a2d4c1a6 Update Tibo-NixDesk 2024-02-18 16:34:18 +01:00
d3510a3c65 [gnome] Remove more unused packages 2024-02-18 16:32:40 +01:00
381cfbcd72 [openconnect-sso] Fix poetry error 2024-02-18 16:31:46 +01:00
2843567f2c Mount disk for games 2024-02-18 16:20:07 +01:00
a795604d15 Remove deprecated direnv option 2023-12-24 11:07:43 +01:00
fd15c177e8 Add NVidia support to Docker 2023-12-07 20:24:37 +01:00
6264d45316 [sway] Improve various things 2023-11-26 14:13:47 +01:00
b6eb3492a8 [zsh] Add non-zero exit code to prompt 2023-11-26 10:56:39 +01:00
fe61e2c96d [firefox] Fix crashes 2023-11-25 11:53:46 +01:00
2b2a99aead Fix distorted background on different screens 2023-11-25 10:37:54 +01:00
356b1dd991 [networkmanager] Improve boot times 2023-11-24 19:17:10 +01:00
414bb4b983 [qemu][docker] Add modules and use on laptop 2023-11-24 19:08:42 +01:00
d9188bfd13 Fix direnv 2023-11-22 18:31:56 +01:00
39992187a6 Tweaks and leftover bits 2023-11-14 22:38:42 +01:00
2d4ebe3370 Update 2023-11-14 22:38:08 +01:00
21abf1deed [swayidle] Tweak parameters 2023-11-14 22:37:49 +01:00
8f97a8c719 [sway] Move config and use 2023-11-14 22:37:04 +01:00
65ef0adf6d [waybar] Move config 2023-11-14 22:34:44 +01:00
7dda8086d4 [direnv] Create module 2023-11-14 22:32:04 +01:00
125803927c Use vim-full instead of vim 2023-11-14 22:30:07 +01:00
a112f3929b Fix comments; works now 2023-11-14 22:07:52 +01:00
43d4d0c365 Remove old scripts 2023-11-14 22:07:24 +01:00
84b0d44ac1 Drop mako support 2023-11-14 21:53:22 +01:00
be4fc18caa Use specific Linux kernels 2023-11-14 21:17:35 +01:00
69ff446a04 Combine unfreepkgs list for stable and unstable 2023-11-14 21:05:04 +01:00
9bc2761ee1 Update notify.sh 2023-11-14 20:51:38 +01:00
55f7385742 Remove simple focus script 2023-11-12 20:16:49 +01:00
3d07c5e58f [swayidle] Fix timeout after sleep 2023-11-12 20:08:53 +01:00
0e622c6aba Move swayidle script 2023-11-12 20:08:01 +01:00
523a4be565 [virtualbox] Add vb group to users 2023-11-10 13:53:46 +01:00
553b973bb4 [swayidle] Add config 2023-11-10 13:52:24 +01:00
4e0b6e9869 [nix] Make own module 2023-11-10 13:07:42 +01:00
5f0934bf39 Power off bluetooth at boot 2023-11-10 11:04:15 +01:00
3be4dc3422 [plasma] Add module 2023-11-10 11:02:21 +01:00
bf1b696b2a Add custom cursor 2023-11-09 19:46:23 +01:00
295fef53d6 Remove garbage-collect on laptop 2023-11-09 19:45:13 +01:00
7b0e1ce837 Remove unused git-crypt 2023-11-08 20:54:33 +01:00
ffda64709f Improve light-dark toggle speed and Vim 2023-11-06 10:45:26 +01:00
1cb3fad4cc [fuzzel] Check config 2023-11-05 17:25:26 +01:00
1236598093 [mako] Check config 2023-11-04 22:00:19 +01:00
c135ee94a1 [swaylock] Check config 2023-11-04 21:50:07 +01:00
bf88810687 Remove unused script 2023-11-04 21:47:59 +01:00
e8c09b3387 [dunst] Check config 2023-11-04 21:47:35 +01:00
1f7a57a8f8 [virtualbox] Pin version 2023-11-02 17:35:40 +01:00
5f3c611554 [openconnect] Add openconnect-sso module 2023-11-02 17:35:18 +01:00
856bfa82e8 [vifm] Add to light-dark toggle 2023-11-02 17:05:09 +01:00
70b163cf0c [tailscale] Update 2023-11-02 17:04:04 +01:00
d3f0c94583 Fix capitalized urls not matching 2023-10-31 09:14:14 +01:00
9e35adca87 Enable Virtualbox on laptop 2023-10-30 10:32:36 +01:00
fb66f46e02 [OpenRGB] Fix 2023-10-30 10:30:03 +01:00
0d72ee0c84 Add themeswitch script 2023-10-28 12:49:49 +02:00
222dcbb4dd Move unchecked configs to old folder 2023-10-28 11:18:31 +02:00
7aba583074 [tailscale] Add module 2023-10-28 11:14:50 +02:00
759ebb3558 Update NixDesk 2023-10-24 21:00:53 +02:00
99231d0d04 [nvidia] Update settings 2023-10-24 12:45:40 +02:00
698876102e [spotify] Move adblock around 2023-10-24 12:43:44 +02:00
9e692e6a41 #13 Merge spotify into main 2023-10-24 10:06:52 +02:00
c8d78da5d9 [spotify] Fix adblock config file not found 2023-10-23 22:18:18 +02:00
18b5e573e2 [vim] Change LineNr to transparent background 2023-10-20 23:17:15 +02:00
789fb19029 [kitty] Change soft-black to blue instead of black 2023-10-20 23:01:15 +02:00
52e83e2435 Fix README users not working 2023-10-20 22:43:15 +02:00
b57c8c329a [nvidia] Move into module 2023-10-20 22:29:45 +02:00
00e003214f Move users directory up 2023-10-20 20:38:25 +02:00
10ad4de0c5 [firefox] Move into user config 2023-10-20 20:10:35 +02:00
745074da50 [thunderbird] Tweak 2023-10-20 20:01:07 +02:00
36abb35b7b [thunderbird] Move into user config 2023-10-20 19:26:31 +02:00
a53b7ef459 Separate user into smaller chunks 2023-10-20 19:20:32 +02:00
29ff9c1a01 [zsh] Fix 2023-10-19 23:02:17 +02:00
4967fbe29e Touchups 2023-10-19 22:24:33 +02:00
8a143f029d [zsh] Move into user config 2023-10-19 22:24:04 +02:00
74e1f9580a [kitty] Allow theme switching 2023-10-19 21:07:33 +02:00
5647db6b46 Move ssh-key README 2023-10-19 21:06:02 +02:00
50086f590f Remove old zellij 2023-10-19 21:05:14 +02:00
cf9058cc48 [vim] Move into user config 2023-10-19 21:03:53 +02:00
e378e97534 Add printing module 2023-10-19 20:58:15 +02:00
7c912db2b5 Improve NixOS README
Assisted by ChatGPT
2023-10-18 21:12:30 +02:00
6b2bd26e48 [sops] Move into proper module 2023-10-18 20:58:49 +02:00
e8b3e3d813 [gnome] Move into proper module 2023-10-18 20:30:40 +02:00
99ddea1658 [kitty] Move into user config 2023-10-18 20:14:07 +02:00
bd6b9a4b13 Remove steam 2023-10-18 20:11:35 +02:00
8a63138f28 Add stow as dependency for NixOS 2023-10-18 19:11:50 +02:00
f931c28f79 Remove almost empty bash config 2023-10-18 19:03:00 +02:00
37b3968722 [ssh] Move to actual module 2023-10-18 18:58:27 +02:00
197fcdbb81 [git] Add default branch 2023-10-18 18:58:17 +02:00
cb1e9496a9 [git] Move into proper module 2023-10-18 18:58:03 +02:00
1732827367 Fix font 2023-10-18 18:57:55 +02:00
65baefa48b [tea] Move into user 2023-10-18 18:57:46 +02:00
7a3ada2a38 [vifm] Move into user 2023-10-18 18:57:35 +02:00
189b8278b7 [zellij] Move to proper module 2023-10-18 18:57:18 +02:00
502f0f8bb0 [mpv] Merge module into user 2023-10-18 18:56:58 +02:00
c46a7ce9c3 [virtualbox] Move into proper module 2023-10-18 18:56:42 +02:00
b6044e99dc Update documentation 2023-10-17 23:15:14 +02:00
a9688167ec Remove alacritty fake 2023-10-17 23:14:45 +02:00
019f1e9b62 Add home-manager module 2023-10-17 23:14:25 +02:00
afa0baf28c Add user module 2023-10-17 23:09:40 +02:00
97db5d05d3 Rename fake modules to modules-old 2023-10-17 12:15:41 +02:00
82a2d7bbea Add GitHub search engine 2023-10-14 17:38:24 +02:00
ef69f9943a Add icon theme 2023-10-14 17:38:08 +02:00
9df715f74e Stay on light-mode while I figure out how to switch 2023-10-14 17:35:52 +02:00
091a8ab89a [zsh] Fix prompt not visible on both themes 2023-10-13 11:15:16 +02:00
2456478f30 [ssh] Set default git users 2023-10-13 10:22:38 +02:00
992df68711 [spotify] Add TryExec 2023-10-12 17:26:29 +02:00
5155078c37 [kitty] Add padding 2023-10-12 11:48:45 +02:00
0753356f01 Add custom font 2023-10-11 22:40:03 +02:00
69f948a469 Add Kitty
Friendship ended with ALACRITTY
Now KITTY is my best friend
2023-10-11 20:56:57 +02:00
43c8224f5b [git] Fix different mail for uni 2023-10-10 22:11:09 +02:00
e9a61f9301 [ssh] Add SubGit key 2023-10-10 21:14:05 +02:00
e1e6c01cf7 Add nsxiv as default for webp 2023-10-09 09:18:25 +02:00
ce2dfee548 [firefox] Add speech synthesis 2023-10-09 09:17:50 +02:00
575bcf6388 Fix not showing up on desktop 2023-10-08 23:04:55 +02:00
fff30c3314 Test spotify-adblock 2023-10-08 22:13:53 +02:00
6c60d85ea6 [gnome] Add wallpaper 2023-10-08 13:12:27 +02:00
396b504613 Add speech synthesis 2023-10-07 16:16:33 +02:00
0b3ce8351e Add openrgb 2023-10-07 16:16:06 +02:00
706d18da5c [gnome] Add styling tweaks 2023-10-05 22:50:39 +02:00
f7e8643c59 [ssh] Add HPC key 2023-10-05 21:09:36 +02:00
ece50202e0 Rename H4G0 to Hugo 2023-10-01 18:34:05 +02:00
1f644492b0 Add tea 2023-10-01 18:31:13 +02:00
729d83dfb7 Update NixLap 2023-10-01 16:56:12 +02:00
53fec1cca5 [zsh] Add fzf 2023-09-29 08:21:05 +02:00
aad57e583b [SSH] Enable 2023-09-22 13:08:57 +02:00
16789bd342 [SSH] Add H4Git key 2023-09-21 16:53:34 +02:00
4b93c35270 Set zathura as default app for pdf 2023-09-19 19:57:50 +02:00
a004e4c358 Fix renamed options 2023-09-15 10:04:24 +02:00
5ca9ad69cf Add MIME defaults 2023-09-15 09:55:49 +02:00
aec2ed2303 Add Windows-compatible partition to NixDesk 2023-09-13 15:04:36 +02:00
a930559049 [Git] Add GitHub-UGent key 2023-09-11 13:28:41 +02:00
4347b650f1 [Git] Move into own module 2023-09-11 13:19:03 +02:00
a60ff55afe [SSH] Add documentation 2023-09-11 13:18:22 +02:00
dd0aa22793 [SSH] Add GitHub key 2023-09-11 13:17:36 +02:00
5897150ea6 Update NixTest 2023-09-11 11:06:55 +02:00
823ccc15b5 Configure secrets, configure ssh and add H4G0 2023-09-10 22:53:30 +02:00
496e103b53 Rewrite README (using GPT-3.5) 2023-09-10 22:53:11 +02:00
3f08798bfe Tibo-NixDesk new disk config 2023-09-10 22:52:49 +02:00
1f9a231a4d [Vifm] Add icon for .nix files 2023-09-03 12:15:49 +02:00
731578cac0 Remove more default gnome packages 2023-08-29 13:18:40 +02:00
161 changed files with 19464 additions and 4940 deletions

View file

@ -1,4 +0,0 @@
# Do not edit this file. To specify the files to encrypt, create your own
# .gitattributes file in the directory where your files are.
* !filter !diff
*.gpg binary

1
.gitattributes vendored
View file

@ -1 +0,0 @@
nixos/secrets/** filter=git-crypt diff=git-crypt

2
.gitignore vendored
View file

@ -1 +1,3 @@
result
.idea

View file

@ -1,18 +1,22 @@
# sisyphus
This repository serves as my dotfiles. It contains the configuration for my Linux machine(s), for multiple distributions. Not everything might be up to date and/or working, so don't expect a working machine if you try to use this configuration for your own machines. However, feel free to steal some parts or be inspired.
Welcome to my dotfiles repository, named Sisyphus. This repository houses the configurations for my Linux machines, spanning various distributions. Please note that not all configurations may be up-to-date or fully functional. If you decide to use these configurations for your own machines, be prepared for potential issues. Nevertheless, feel free to borrow or draw inspiration from this collection.
## Organisation
To maintain clarity and versatility, I've organized my configuration files into distinct subdirectories. The "bare" configuration files, those you typically find in your `~/.config` directory, are located in [stow](./stow). This separation allows for a streamlined approach to managing configurations, while other subdirectories house OS-specific settings.
- [Arch Linux](./arch) (+ [stow](./stow))
- [Nixos](./nixos)
- [NixOS](./nixos) (+ [stow](./stow))
## Analogy
## The Sisyphus Analogy
The analogy is quite simple.
The Sisyphus analogy is a straightforward one.
Over the course of getting to know Linux and during my career as a student, I had to reinstall my OS SO so so many times, either because I bricked my previous install, or because things weren't working the way I wanted them to or even because I found the current install to be cluttered. On a particular day, I had installed Arch (that's what I started with back then) over ten times, which is my personal record of most-installed-computers-in-one-day so far. I also managed to speedrun the installation process to 8min30sec for the kernel with an additional 4min30sec for installing Sway (fun fact/did you know?).
Throughout my journey with Linux, especially during my time as a student, I found myself reinstalling my operating system countless times. Whether it was due to a botched installation, unsatisfactory performance, or simply the desire for a fresh start, I've been there. Things escalated when I began tinkering extensively with machine configurations, often resulting in disk management mishaps. It was clear that I needed to find a way to put an end to these frequent reinstallations, contain my configurations, and maintain system stability. This repository represents my solution to these challenges.
Later, this worsened even more when I had way too much fun playing around with the machine configuration. (Managing disks is prone to errors!) I hope my addaction to breaking my laptop will ease with this repo: keeping everything easily accessible, often statically configured, so that it can be installed with as little input as (reasonably) possible.
I hope that by maintaining this repository, I can minimize the challenges of breaking my laptop and make configurations easily accessible. They are designed to be relatively static and require as little user input as reasonably possible during installation.
TL;DR: Discovering Linux was a tedious process and I had to start over several times, hence the analogy with [Sisyphus, greek mythology](https://en.wikipedia.org/wiki/Sisyphus).
TL;DR: My journey with Linux was a challenging one, marked by frequent restarts, which is why I chose the name Sisyphus as an analogy from [Greek mythology](https://en.wikipedia.org/wiki/Sisyphus).
*But also because it sounds cool and it has the sys from sytem in the name, don't tell anyone this though.*
P.S. While the name "Sisyphus" has a deep mythological significance, it also sounds cool and conveniently contains "sys" from "system" in its name. But, let's keep that our little secret, shall we?

View file

@ -1,26 +0,0 @@
#!/usr/bin/env bash
# Remove unused dependencies that are not explicitly installed
# Usage: [sudo] cleandependencies
# Retrieve a list of all packages that are not explicitly installed and are not needed by anything else.
# Note that optional dependencies also do not get removed.
# function getList () {
# grep "Name\|Required By\|Optional For\|Install Reason" <<< $(pacman -Qi) |
# tr '\n' ';' | sed "s/$/\n/" |
# sed "s/ */ /g" |
# sed "s/Name/\nName/g" |
# sed "s/\(Name\|Required By\|Optional For\|Install Reason\) : //g" |
# grep "Installed as a dependency for another package" |
# grep "^[^;]*;None;None" |
# cut -f 1 -d ';'
# } ; export -f getList
current_amount=$(pacman -Qdtq | wc -l)
# Keep looping while there are unusded dependencies.
# Stop when the next amount is the same, probably because the action was canceled.
while [[ ${current_amount} -ne 0 && ${current_amount} -ne ${previous_amount:=0} ]] ; do
previous_amount=${current_amount}
pacman -R $(pacman -Qdtq)
current_amount=$(pacman -Qdtq | wc -l)
done

View file

@ -1,22 +0,0 @@
#!/usr/bin/env bash
# Script to toggle Do not disturb mode for mako and dunst
# Permanent memory
saved_state=0
# Toggle
if [[ ${saved_state} -eq 0 ]] ; then
~/.scripts/notify.sh 'Hiding notifications'
sleep 5
makoctl set-mode do-not-disturb
dunstctl set-paused true
else
makoctl set-mode default
dunstctl set-paused false
~/.scripts/notify.sh 'Showing notifications'
fi
# Update status in file
new_state=$(( (${saved_state} + 1) % 2 ))
sed -i "s/^saved_state=.*$/saved_state=${new_state}/" "${0}"

View file

@ -1,16 +0,0 @@
#!/usr/bin/env bash
# Script to toggle black background to focus on sway
# Get instances of swaybg, except for the 'standard' one.
list=$( pgrep swaybg | head -n -1 )
if [ -z "${list}" ] ; then
swaybg --mode=solid_color --color=#000000 &
# Give the previous command some time to execute
sleep .1
swaymsg reload
else
# Clean up if already running
kill $( tr ' ' '\n' <<< ${list} )
fi

View file

@ -1,19 +0,0 @@
#!/usr/bin/env bash
# Configuration of swayidle
# Just run the script
# Kill previous instances to avoid clashing
pkill swayidle
swayidle -w \
timeout 600 \
'swaymsg "output * dpms off"' \
resume 'swaymsg "output * dpms on"' \
timeout 1200 \
'systemctl suspend' \
before-sleep 'swaymsg "output * dpms on"; swaylock'
# Screen needs to be turned back on or you will get a black screen after waking up again.
# timeout 300 \
# "~/.scripts/wander.sh" \
# resume 'brightnessctl -r' \

View file

@ -1,9 +0,0 @@
#!/usr/bin/env bash
# Toggle brightness to 'sleep' or 'awake', since brightnessctl does not support
# percentages of current amount.
# Just run the script
current=$( brightnessctl get )
# Doesn't have to be accurate so we can use built-in calculator.
brightnessctl -sq set $(( current / 10 * 3 ))

View file

@ -1,7 +0,0 @@
#!/usr/bin/env bash
# Ignore flake.nix and flake.lock
# For using personal flakes in a project that does not provide and want flakes.
# Syntaxis: git flake
git add --intent-to-add flake.nix flake.lock
git update-index --assume-unchanged flake.nix

View file

@ -1,11 +0,0 @@
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
PS1='[\u@\h \W]\$ '
eval $( keychain --eval --quiet ~/.ssh/id_ed25519 )

BIN
assets/bluescreen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

225
colors.sh Normal file
View file

@ -0,0 +1,225 @@
# tdpeuter color schemes
# The goal is to offer light and dark theme that is easy on the eyes,
# whilst also being unique and defining.
###############################
# tdpeuter-light color scheme #
###############################
# 171717 # Foreground
# FAFAFA # Daisy (Background)
# Regular colors (0-7)
# 000000 # Black (0)
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# Bright colors (8-15)
# 000000 # Black (8)
# 9
# 10
# 11
# 12
# 13
# 14
# 15
##############################
# tdpeuter-dark color scheme #
##############################
# FAFAFA # Daisy (Foreground)
printf "\033]10;#FAFAFA\007"
# 171717 # Background
printf "\033]11;#171717\007"
# Regular colors (0-7)
# 242124 # Black 0
printf "\033]4;0;#242124\007"
# B90E0A # Crimson (Red) 1
printf "\033]4;1;#B90E0A\007"
# B2BC68 # Leafy (Green) 2
printf "\033]4;2;#B2BC68\007"
# FFE135 # Banana (Yellow) 3
printf "\033]4;3;#FFE135\007"
# 80A2BE # Icicle (Blue) 4
printf "\033]4;4;#80A2BE\007"
# A45EE5 # Amethyst (Magenta) 5
printf "\033]4;5;#A45EE5\007"
# # (Cyan) 6
printf "\033]4;6;#80A2BE\007"
# FBFCF8 # Pearl (White) 7
printf "\033]4;7;#FBFCF8\007"
# Bright colors (8-15)
# 363636 # Grey-isch (Black) 8
printf "\033]4;8;#363636\007"
# BC544B # Blush (Red) 9
printf "\033]4;9;#BC544B\007"
# A6E3A1 # Lime (Green) 10
printf "\033]4;10;#A6E3A1\007"
# FCF4A3 # Banana (Yellow) 11
printf "\033]4;11;#FCF4A3\007"
# 74C7EC # Sapphire (Blue) 12
printf "\033]4;12;#74C7EC\007"
# B4BEFE # Lavender (Magenta) 13
# #CBA6F7
printf "\033]4;13;#B4BEFE\007"
# # (Cyan) 14
printf "\033]4;14;#74C7EC\007"
# FFFFFF # White 15
printf "\033]4;15;#FFFFFF\007"
# NEW COLORS 20241101
#
# Nr # R G B H S B # Name
# FG # 250 250 250 0 0 98 # Daisy (White)
printf "\033]10;#FAFAFA\007"
# BG # 19 19 19 0 0 7 # -
printf "\033]11;#131313\007"
# Regular colors (0-7)
# Nr # R G B H S B # Name
# 0 # 61 61 61 0 0 24 # - (Black)
printf "\033]4;0;#3D3D3D\007"
# 1 # 186 19 61 345 90 73 # - (Red)
printf "\033]4;1;#BA133D\007"
# 2 # 61 186 19 105 90 73 # - (Green)
printf "\033]4;2;#3DBA13\007"
# 3 # 186 144 19 45 90 73 # - (Yellow)
printf "\033]4;3;#BA9013\007"
# 4 # 19 61 186 225 90 73 # - (Blue)
printf "\033]4;4;#133DBA\007"
# 5 # 144 19 186 285 90 73 # - (Magenta)
printf "\033]4;5;#9013BA\007"
# 6 # 19 186 144 165 90 73 # - (Cyan)
printf "\033]4;6;#13BA90\007"
# 7 # 186 186 186 0 0 73 # - (White)
printf "\033]4;7;#BABABA\007"
# Bright colors (8-15)
# Nr # R G B H S B # Name
# 8 # 122 122 122 0 0 48 # - (Black)
printf "\033]4;8;#363636\007"
# 9 # 250 25 81 345 90 98 # - (Red)
printf "\033]4;9;#FA1951\007"
# 10 # 81 250 25 105 90 98 # - (Green)
printf "\033]4;10;#51FA19\007"
# 11 # 250 194 25 45 90 98 # - (Yellow)
printf "\033]4;11;#FAC219\007"
# 12 # 25 81 250 225 90 98 # - (Blue)
printf "\033]4;12;#1951FA\007"
# 13 # 194 25 250 285 90 98 # - (Magenta)
printf "\033]4;13;#C219FA\007"
# 14 # 25 259 194 165 90 98 # - (Cyan)
printf "\033]4;14;#19FAC2\007"
# 15 # 250 250 250 0 0 98 # - (White)
printf "\033]4;15;#FAFAFA\007"
# BRIGHTER
#
# Nr # R G B H S B # Name
# FG # 250 250 250 0 0 98 # Daisy (White)
printf "\033]11;#FAFAFA\007"
# BG # 19 19 19 0 0 7 # -
printf "\033]10;#131313\007"
# Regular colors (0-7)
# Nr # R G B H S B # Name
# 0 # 61 61 61 0 0 24 # - (Black)
printf "\033]4;0;#3D3D3D\007"
# 1 # 186 19 61 345 90 73 # - (Red)
printf "\033]4;1;#E62E4D\007"
# 2 # 61 186 19 105 90 73 # - (Green)
printf "\033]4;2;#4DE62E\007"
# 3 # 186 144 19 45 90 73 # - (Yellow)
printf "\033]4;3;#E6C72E\007"
# 4 # 19 61 186 225 90 73 # - (Blue)
printf "\033]4;4;#2E4CE6\007"
# 5 # 144 19 186 285 90 73 # - (Magenta)
printf "\033]4;5;#C52DE3\007"
# 6 # 19 186 144 165 90 73 # - (Cyan)
printf "\033]4;6;#2EE6C7\007"
# 7 # 186 186 186 0 0 73 # - (White)
printf "\033]4;7;#BABABA\007"
# Bright colors (8-15)
# Nr # R G B H S B # Name
# 8 # 122 122 122 0 0 48 # - (Black)
printf "\033]4;8;#7A7A7A\007"
# 9 # 250 25 81 345 90 98 # - (Red)
printf "\033]4;9;#FF002B\007"
# 10 # 81 250 25 105 90 98 # - (Green)
printf "\033]4;10;#2BFF00\007"
# 11 # 250 194 25 45 90 98 # - (Yellow)
printf "\033]4;11;#FFd500\007"
# 12 # 25 81 250 225 90 98 # - (Blue)
printf "\033]4;12;#002AFF\007"
# 13 # 194 25 250 285 90 98 # - (Magenta)
printf "\033]4;13;#D400FF\007"
# 14 # 25 259 194 165 90 98 # - (Cyan)
printf "\033]4;14;#00FFC0\007"
# 15 # 250 250 250 0 0 98 # - (White)
printf "\033]4;15;#FAFAFA\007"
# TEsting again
# Nr # R G B H S B # Name
# FG # 250 250 250 0 0 98 # Daisy (White)
# FAFAFA # Daisy (Foreground)
printf "\033]10;#FAFAFA\007"
# 171717 # Background
printf "\033]11;#171717\007"
# Nr # R G B H S B # Name
# 0 # 61 61 61 0 0 24 # - (Black)
printf "\033]4;0;#202124\007"
# 1 # 186 19 61 345 90 73 # - (Red)
printf "\033]4;1;#EA4335\007"
# 2 # 61 186 19 105 90 73 # - (Green)
printf "\033]4;2;#34A853\007"
# 3 # 186 144 19 45 90 73 # - (Yellow)
printf "\033]4;3;#FBBC04\007"
# 4 # 19 61 186 225 90 73 # - (Blue)
printf "\033]4;4;#4285F4\007"
# 5 # 144 19 186 285 90 73 # - (Magenta)
printf "\033]4;5;#A142F4\007"
# 6 # 19 186 144 165 90 73 # - (Cyan)
printf "\033]4;6;#24C1E0\007"
# 7 # 186 186 186 0 0 73 # - (White)
printf "\033]4;7;#FBFCF8\007"
# Bright colors (8-15)
# Nr # R G B H S B # Name
# 8 # 122 122 122 0 0 48 # - (Black)
printf "\033]4;8;#5F6368\007"
# 9 # 250 25 81 345 90 98 # - (Red)
printf "\033]4;9;#EA4335\007"
# 10 # 81 250 25 105 90 98 # - (Green)
printf "\033]4;10;#34A853\007"
# 11 # 250 194 25 45 90 98 # - (Yellow)
printf "\033]4;11;#FBBC05\007"
# 12 # 25 81 250 225 90 98 # - (Blue)
printf "\033]4;12;#4285F4\007"
# 13 # 194 25 250 285 90 98 # - (Magenta)
printf "\033]4;13;#A142F4\007"
# 14 # 25 259 194 165 90 98 # - (Cyan)
printf "\033]4;14;#24C1E0\007"
# 15 # 250 250 250 0 0 98 # - (White)
printf "\033]4;15;#FFFFFF\007"

View file

@ -1,10 +1,10 @@
keys:
- &tdpeuter age1q2gqur3t4fu8flsuu2zdnule37vdkh6egpt6a2e3ytx433x8gpvsr4hw6l
- &Tibo-NixDesk age1quvlqpznqkw2r0jhyx6p2hsq3dk93087yha46ugtce6ew9c64pgq4uhcvz
- &Tibo-NixFatDesk age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
- &Tibo-NixTop age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
creation_rules:
- path_regex: secrets/[^/]+\.yaml$
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
key_groups:
- age:
- *tdpeuter
- *Tibo-NixFatDesk
- *Tibo-NixTop

View file

@ -1,3 +1,16 @@
# nixos
# NixOS
Nix Flake for my Linux machines running NixOS.
Nix Flake configuration for my Linux machines running NixOS.
## Structure
The directory structure is organized as follows:
- [`flake.nix`](./flake.nix): Main entrypoint for the configuration.
- [hosts/*hostname*](./hosts): Host-specific configuration by setting options. Each host has its own folder.
- [modules](./modules): Declarations of configuration options.
- [overlays](./overlays): Attribute overrides for Nix Packages.
- [secrets](./secrets): Encrypted files that store sensitive information, such as SSH private keys.
- [users/*username*](./users): User-specific configuration. Users are defined as modules, so they can be enabled or disabled on a host machine.
[Modules](https://nixos.wiki/wiki/NixOS_modules) are a key component of NixOS. They encapsulate various configuration options, which should make it easy for you to integrate it into your specific configuration.

214
nixos/flake.lock generated
View file

@ -1,36 +1,15 @@
{
"nodes": {
"devshell": {
"flake-utils": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": "systems"
},
"locked": {
"lastModified": 1687173957,
"narHash": "sha256-GOds2bAQcZ94fb9/Nl/aM+r+0wGSi4EKYuZYR8Dw4R8=",
"owner": "numtide",
"repo": "devshell",
"rev": "2cf83bb31720fcc29a999aee28d6da101173e66a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1687709756,
"narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@ -46,58 +25,63 @@
]
},
"locked": {
"lastModified": 1687647567,
"narHash": "sha256-Ua90LZYJO7/7KW/KK/AqijhIekd+wxPwbVKXuBYzJeQ=",
"lastModified": 1758463745,
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "6ca1e16eb3016c94b7ac16699e1d4158bd4e39a4",
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-23.05",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
},
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"openconnect-sso",
"nixpkgs"
]
},
"locked": {
"lastModified": 1720066371,
"narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "622f829f5fe69310a866c8a6cd07e747c44ef820",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1687729501,
"narHash": "sha256-mTLkMePoHUWvTCf3NuKbeYEea/tsikSIKBWwb9OfRr4=",
"lastModified": 1760862643,
"narHash": "sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "35130d4b4f0b8c50ed2aceb909a538c66c91d4a0",
"rev": "33c6dca0c0cb31d6addcd34e90a63ad61826b28c",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-23.05",
"ref": "nixos-25.05",
"type": "indirect"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1687031877,
"narHash": "sha256-yMFcVeI+kZ6KD2QBrFPNsvBrLq2Gt//D0baHByMrjFY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e2e2059d19668dab1744301b8b0e821e3aae9c99",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1687681650,
"narHash": "sha256-M2If+gRcfpmaJy/XbfSsRzLlPpoU4nr0NHnKKl50fd8=",
"lastModified": 1760878510,
"narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1c9db9710cb23d60570ad4d7ab829c2d34403de3",
"rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67",
"type": "github"
},
"original": {
@ -106,30 +90,95 @@
"type": "indirect"
}
},
"openconnect-sso": {
"inputs": {
"flake-utils": [
"utils"
],
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"nixpkgs"
],
"poetry2nix": "poetry2nix",
"systems": "systems_2",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1758594056,
"narHash": "sha256-6XyKDRWqBngw1g73e789iyIaw/0VF04ELk/ATtlkTVU=",
"owner": "ThinkChaos",
"repo": "openconnect-sso",
"rev": "2041471efd331d0591d34e122aefb02690fb233a",
"type": "github"
},
"original": {
"owner": "ThinkChaos",
"ref": "fix/nix-flake",
"repo": "openconnect-sso",
"type": "github"
}
},
"poetry2nix": {
"inputs": {
"flake-utils": [
"openconnect-sso",
"flake-utils"
],
"nix-github-actions": [
"openconnect-sso",
"nix-github-actions"
],
"nixpkgs": [
"openconnect-sso",
"nixpkgs"
],
"systems": [
"openconnect-sso",
"systems"
],
"treefmt-nix": [
"openconnect-sso",
"treefmt-nix"
]
},
"locked": {
"lastModified": 1721039874,
"narHash": "sha256-XANsG9GYHip8pxZpbqKf/YGv8tIa0xTh289Y+WNBNfw=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "d11c01e58587e5f21037ed6477465a7f26a32e27",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "poetry2nix",
"type": "github"
}
},
"root": {
"inputs": {
"devshell": "devshell",
"flake-utils": "flake-utils",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable",
"openconnect-sso": "openconnect-sso",
"sops-nix": "sops-nix",
"utils": "utils"
"utils": "utils",
"zen-browser": "zen-browser"
}
},
"sops-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
]
},
"locked": {
"lastModified": 1687398569,
"narHash": "sha256-e/umuIKFcFtZtWeX369Hbdt9r+GQ48moDmlTcyHWL28=",
"lastModified": 1760998189,
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "2ff6973350682f8d16371f8c071a304b8067f192",
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
"type": "github"
},
"original": {
@ -168,6 +217,27 @@
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"openconnect-sso",
"nixpkgs"
]
},
"locked": {
"lastModified": 1721769617,
"narHash": "sha256-6Pqa0bi5nV74IZcENKYRToRNM5obo1EQ+3ihtunJ014=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "8db8970be1fb8be9c845af7ebec53b699fe7e009",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"utils": {
"inputs": {
"flake-utils": [
@ -175,11 +245,11 @@
]
},
"locked": {
"lastModified": 1657226504,
"narHash": "sha256-GIYNjuq4mJlFgqKsZ+YrgzWm0IpA4axA3MCrdKYj7gs=",
"lastModified": 1738591040,
"narHash": "sha256-4WNeriUToshQ/L5J+dTSWC5OJIwT39SEP7V7oylndi8=",
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"rev": "2bf0f91643c2e5ae38c1b26893ac2927ac9bd82a",
"rev": "afcb15b845e74ac5e998358709b2b5fe42a948d1",
"type": "github"
},
"original": {
@ -187,6 +257,26 @@
"repo": "flake-utils-plus",
"type": "github"
}
},
"zen-browser": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1761105987,
"narHash": "sha256-d01CGcdNlsqIn4ncGCWHM0Velnii/Ggef1iybQvEOfc=",
"owner": "youwen5",
"repo": "zen-browser-flake",
"rev": "e7d9fefd8665be5d4c77466140f21a15f6d29e93",
"type": "github"
},
"original": {
"owner": "youwen5",
"repo": "zen-browser-flake",
"type": "github"
}
}
},
"root": "root",

View file

@ -2,41 +2,64 @@
description = "System configuration of my machines using flakes";
inputs = {
nixpkgs.url = "nixpkgs/nixos-23.05";
nixpkgs.url = "nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
devshell = {
url = "github:numtide/devshell";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-utils.url = "github:numtide/flake-utils";
home-manager = {
url = "github:nix-community/home-manager/release-23.05";
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
openconnect-sso = {
url = "github:ThinkChaos/openconnect-sso/fix/nix-flake";
inputs = {
flake-utils.follows = "utils";
nixpkgs.follows = "nixpkgs";
};
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
utils = {
url = "github:gytis-ivaskevicius/flake-utils-plus";
inputs.flake-utils.follows = "flake-utils";
};
zen-browser = {
url = "github:youwen5/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{
self, nixpkgs, nixpkgs-unstable,
devshell, flake-utils, home-manager, sops-nix, utils,
flake-utils, home-manager, openconnect-sso, sops-nix, utils, zen-browser,
... }:
let
system = "x86_64-linux";
system = utils.lib.system.x86_64-linux;
unfreePackages = pkg: builtins.elem (nixpkgs.lib.getName pkg) [
"corefonts"
"nvidia-settings" "nvidia-x11" "nvidia-persistenced"
"Oracle_VirtualBox_Extension_Pack"
"spotify"
"steam" "steam-unwrapped" "steam-run"
"vista-fonts"
"intel-ocl"
"libfprint-2-tod1-broadcom"
];
in
utils.lib.mkFlake {
inherit self inputs;
channelsConfig = {
allowUnfree = true;
};
channelsConfig.allowUnfreePredicate = unfreePackages;
sharedOverlays = [
(import ./overlays/cmdtime)
(import ./overlays/icosystem)
(import ./overlays/letter)
(import ./overlays/spotify)
];
hostDefaults = {
inherit system;
@ -44,13 +67,16 @@
specialArgs = {
pkgs-unstable = import nixpkgs-unstable {
inherit system;
config.allowUnfreePredicate = unfreePackages;
};
};
modules = [
home-manager.nixosModule
sops-nix.nixosModules.sops
./modules
./users
home-manager.nixosModules.home-manager
sops-nix.nixosModules.sops
];
};
@ -58,6 +84,7 @@
Tibo-NixDesk.modules = [ ./hosts/Tibo-NixDesk ];
Tibo-NixFat.modules = [ ./hosts/Tibo-NixFat ];
Tibo-NixTest.modules = [ ./hosts/Tibo-NixTest ];
Tibo-NixTop.modules = [ ./hosts/Tibo-NixTop ];
};
};
}

View file

@ -1,72 +1,95 @@
{ config, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
../../modules/hardware/nvidia.nix
imports = [
./hardware-configuration.nix
];
../../modules/apps/virtualbox
../../modules/des/gnome
];
sisyphus = {
desktop.hyprland.enable = true;
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot/efi";
hardware = {
nvidia = {
enable = true;
model = "RTX 2060";
gui-settings = true;
};
yubikey.enable = true;
};
# Enable networking
networking.hostName = "Tibo-NixDesk"; # Define your hostname.
networking.networkmanager.enable = true;
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking = {
networkmanager.enable = true;
openconnect-sso.enable = true;
};
nix = {
flakes.enable = true;
gc.onFull.enable = true;
};
programs = {
direnv.enable = true;
home-manager.enable = true;
sops.enable = true;
ssh.enable = true;
};
services = {
tailscale.enable = true;
pipewire.enable = true;
printing.enable = true;
openrgb.enable = true;
};
users.tdpeuter.enable = true;
virtualisation = {
docker.enable = true;
virtualbox.enable = true;
};
};
boot = {
loader = {
systemd-boot.enable = true;
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
};
plymouth.enable = true;
};
environment.systemPackages = with pkgs; [
git
vim-full
w3m
wget
zenith-nvidia
];
programs = {
steam.enable = true;
zsh.enable = true;
};
hardware.bluetooth.enable = true;
networking.hostName = "Tibo-NixDesk";
services.xserver.xkb = {
layout = "us";
variant = "altgr-intl";
};
system.stateVersion = "24.05";
# Set your time zone.
time.timeZone = "Europe/Brussels";
# Select internationalisation properties.
i18n.defaultLocale = "en_GB.utf8";
# Configure keymap in X11
services.xserver = {
layout = "us";
xkbVariant = "";
i18n.defaultLocale = "en_GB.UTF-8";
console = {
# font = "Lat2-Terminus16";
useXkbConfig = true; # use xkbOptions in tty.
};
# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
system.stateVersion = "23.05";
}

View file

@ -4,26 +4,67 @@
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot = {
initrd = {
availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
kernelModules = [ ];
};
kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ];
};
fileSystems."/" =
{ device = "/dev/disk/by-label/NIXROOT";
fileSystems = {
"/" = {
device = "/dev/disk/by-label/NIX-ROOT";
fsType = "ext4";
};
fileSystems."/boot/efi" =
{ device = "/dev/disk/by-label/NIXBOOT";
"/boot/efi" = {
device = "/dev/disk/by-label/NIX-BOOT";
fsType = "vfat";
};
swapDevices = [ ];
"/nix" = {
device = "/dev/disk/by-label/NIX-STORE";
fsType = "ext4";
options = [ "noatime" ];
};
"/mnt/Nextcloud" = {
device = "/dev/disk/by-label/Nextcloud";
fsType = "ntfs";
};
# "/home/${config.users.users.tdpeuter.name}/Nextcloud" = {
"/home/tdpeuter/Nextcloud" = {
depends = [
"/mnt/Nextcloud"
];
device = "/mnt/Nextcloud/Nextcloud";
fsType = "none";
options = [
"bind"
];
};
"/mnt/Games" = {
device = "/dev/disk/by-label/Games";
fsType = "ntfs";
options = [
"uid=tdpeuter"
"gid=users"
"defaults"
];
};
};
swapDevices = [
{ device = "/dev/disk/by-label/SWAP"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -3,107 +3,131 @@
{
imports = [
./hardware-configuration.nix
../../modules/hardware/nvidia.nix
../../modules/apps/virtualbox
../../modules/des/gnome
];
# Use the systemd-boot EFI boot loader.]
boot.loader = {
systemd-boot.enable = true;
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
sisyphus = {
desktop = {
sway.enable = true;
hyprland.enable = true;
};
hardware = {
eid.enable = true;
nvidia = {
enable = true;
model = "Quadro T2000";
};
yubikey.enable = true;
};
networking = {
networkmanager.enable = true;
openconnect-sso.enable = true;
};
nix = {
flakes.enable = true;
gc.onFull.enable = true;
};
programs = {
direnv.enable = true;
home-manager.enable = true;
sops.enable = true;
ssh.enable = true;
};
services = {
pipewire.enable = true;
tailscale.enable = true;
};
users.tdpeuter.enable = true;
virtualisation = {
docker.enable = true;
virtualbox.enable = true;
};
};
# Setup keyfile
boot.initrd.secrets = {
"/crypto_keyfile.bin" = null;
boot = {
# Encryption
initrd = {
# Setup keyfile
secrets."/crypto_keyfile.bin" = null;
# Enable swap on luks
luks.devices."luks-3825c43c-6cc4-4846-b1cc-02b5938640c9" = {
device = "/dev/disk/by-uuid/3825c43c-6cc4-4846-b1cc-02b5938640c9";
keyFile = "/crypto_keyfile.bin";
};
};
# Use the systemd-boot EFI boot loader.]
loader = {
systemd-boot.enable = true;
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
};
};
networking.hostName = "Tibo-NixFat";
# Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
# Set your time zone.
time.timeZone = "Europe/Brussels";
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Select internationalisation properties.
i18n.defaultLocale = "en_GB.UTF-8";
# console = {
# font = "Lat2-Terminus16";
# keyMap = "us";
# useXkbConfig = true; # use xkbOptions in tty.
# };
environment.systemPackages = with pkgs; [
git
vim-full
w3m
wget
zenith-nvidia
];
services.xserver = {
# Configure keymap in X11
layout = "us";
xkbVariant = "";
programs = {
zsh.enable = true;
};
# Enable CUPS to print documents.
# services.printing.enable = true;
# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
hardware.bluetooth = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
powerOnBoot = false;
};
networking = {
hostName = "Tibo-NixFat";
networkmanager.wifi.powersave = true;
};
services.logind.lidSwitch = "ignore";
# Enable Bluetooth.
hardware.bluetooth.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
services.xserver.libinput.enable = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
system.stateVersion = "23.05";
}
services = {
logind = {
# Handle the laptop lid switch as follows:
lidSwitch = "hybrid-sleep";
lidSwitchExternalPower = "lock";
lidSwitchDocked = "ignore";
# Handle the power key
powerKey = "suspend";
};
xserver.xkb = {
# Keyboard layout
layout = "us";
variant = "altgr-intl";
};
# Touchpad
libinput.enable = true;
thermald.enable = true;
};
system.stateVersion = "24.05";
systemd.coredump.enable = false;
time.timeZone = "Europe/Brussels";
# --- Barrier ---
i18n.defaultLocale = "en_GB.UTF-8";
console = {
useXkbConfig = true; # use xkbOptions in tty.
};
}

View file

@ -8,35 +8,50 @@
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot = {
initrd = {
availableKernelModules = [
"xhci_pci"
"nvme"
"usb_storage"
"sd_mod"
"rtsx_pci_sdmmc"
];
kernelModules = [ ];
luks.devices."luks-c21cb4a4-f618-43af-bc0c-e8be74fe3b81".device = "/dev/disk/by-uuid/c21cb4a4-f618-43af-bc0c-e8be74fe3b81";
};
kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ];
};
fileSystems."/" =
{ device = "/dev/disk/by-label/NIXROOT";
fileSystems = {
"/" = {
device = "/dev/disk/by-label/NIX-ROOT";
fsType = "ext4";
};
boot.initrd.luks.devices."luks-7319552e-7148-4a9b-aa56-aa580b0b935a".device = "/dev/disk/by-uuid/7319552e-7148-4a9b-aa56-aa580b0b935a";
fileSystems."/boot/efi" =
{ device = "/dev/disk/by-label/NIXBOOT";
"/boot/efi" = {
device = "/dev/disk/by-label/NIX-BOOT";
fsType = "vfat";
};
};
# swapDevices =
# [ { device = "/dev/disk/by-label/SWAP"; }
# ];
swapDevices = [
{ device = "/dev/disk/by-label/SWAP"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno2.useDHCP = lib.mkDefault true;
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp111s0.useDHCP = lib.mkDefault true;
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
nixpkgs.config.allowUnfree = true;
hardware = {
enableAllFirmware = true;
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
};
}

View file

@ -1,22 +1,14 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
../../modules/des/plasma
];
# Nix Flakes
nix.package = pkgs.nixFlakes;
nix.extraOptions = ''
experimental-features = nix-command flakes
'';
# Use the systemd-boot EFI boot loader.]
# Bootloader
boot.loader = {
systemd-boot.enable = true;
@ -26,10 +18,11 @@
};
};
networking.hostName = "Tibo-NixTest"; # Define your hostname.
# Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
networking = {
hostName = "Tibo-NixTest";
# wireless.enable = true; # Enables wireless support via wpa_supplicant.
networkmanager.enable = true; # Easiest to use and most distros use this by default.
};
# Set your time zone.
time.timeZone = "Europe/Brussels";
@ -53,29 +46,6 @@
# "caps:escape" # map caps to escape.
# };
services.xserver = {
# Enable the X11 windowing system.
enable = true;
# Enable the Plasma 5 Desktop Environment.
displayManager.sddm.enable = true;
displayManager.defaultSession = "plasmawayland";
desktopManager.plasma5 = {
enable = true;
excludePackages = with pkgs.libsForQt5; [
elisa
okular
plasma-browser-integration
khelpcenter
kwalletmanager
oxygen
];
};
};
# Enable CUPS to print documents.
# services.printing.enable = true;
@ -89,44 +59,6 @@
# Enable touchpad support (enabled default in most desktopManager).
services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.tdpeuter = {
description = "Tibo De Peuter";
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ];
initialPassword = "ChangeMe";
packages = with pkgs; [
home-manager
];
};
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
firefox
git
mongodb
vim
wget
];
nixpkgs.config = {
allowUnfree = true;
};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
@ -138,13 +70,7 @@
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "22.11"; # Did you read the comment?
system.stateVersion = "23.05";
}

View file

@ -0,0 +1,205 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
sisyphus = {
desktop.hyprland.enable = true;
hardware = {
eid.enable = true;
fingerprint-scanner.enable = true;
nvidia = {
enable = true;
model = "Quadro T2000";
};
yubikey.enable = true;
};
networking = {
networkmanager.enable = true;
openconnect-sso.enable = true;
};
nix = {
flakes.enable = true;
gc.onFull.enable = true;
};
programs = {
direnv.enable = true;
home-manager.enable = true;
sops.enable = true;
ssh.enable = true;
};
services = {
pipewire.enable = true;
tailscale.enable = true;
};
users.tdpeuter.enable = true;
virtualisation = {
docker.enable = true;
virtualbox.enable = true;
};
};
boot = {
initrd = {
# Use EFI and YubiKey
kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ];
luks = {
# Enable YubiKey PBA
yubikeySupport = true;
devices."encrypted".yubikey = {
slot = 2;
twoFactor = false;
gracePeriod = 10;
keyLength = 64;
saltLength = 16;
storage.device = "/dev/nvme0n1p1";
};
};
};
loader = {
# Use the systemd-boot EFI boot loader.
systemd-boot = {
enable = true;
editor = false;
memtest86.enable = true;
};
efi.canTouchEfiVariables = true;
};
# Use latest kernel.
kernelPackages = pkgs.linuxPackages_latest;
plymouth.enable = true;
};
hardware.bluetooth = {
enable = true;
powerOnBoot = false;
};
nix.settings.download-buffer-size = 500 * 1024 * 1024; # 500 MiB
programs.zsh.enable = true;
services = {
auto-cpufreq = {
enable = true;
settings = {
battery = {
governor = "powersave";
turbo = "never";
};
charger = {
governor = "performance";
turbo = "auto";
};
};
};
logind = {
# Handle the laptop lid switch as follows:
lidSwitch = "hybrid-sleep";
lidSwitchExternalPower = "lock";
lidSwitchDocked = "ignore";
# Handle the power key
powerKey = "suspend";
};
power-profiles-daemon.enable = false;
smartd.enable = true;
thermald.enable = true;
xserver = {
# Keyboard layout
xkb = {
layout = "us";
variant = "altgr-intl";
};
};
# Touchpad
libinput.enable = true;
};
networking = {
hostName = "Tibo-NixTop"; # Define your hostname.
};
# Set your time zone.
time.timeZone = "Europe/Brussels";
# Select internationalisation properties.
i18n = {
defaultLocale = "en_GB.UTF-8"; # LANG
extraLocaleSettings.LC_TIME = "nl_BE.UTF-8";
};
console = {
# font = "Lat2-Terminus16";
# keyMap = "us";
useXkbConfig = true; # use xkb.options in tty.
};
# Enable CUPS to print documents.
# services.printing.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.libinput.enable = true;
# List packages installed in system profile.
# You can use https://search.nixos.org/ to find more packages (and options).
environment = {
# Enabled to allow installed binaries in ~/.local/bin
localBinInPath = true;
systemPackages = with pkgs; [
git
vim-full # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
w3m
wget
zenith-nvidia
];
};
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "25.05"; # Did you read the comment?
}

View file

@ -0,0 +1,41 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/e759b10f-7949-4094-9272-d91340dcc5b6";
fsType = "ext4";
};
boot.initrd.luks.devices."encrypted".device = "/dev/disk/by-uuid/2b6586fa-8823-4add-94f3-132aab17b7b8";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/12CE-A600";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno2.useDHCP = lib.mkDefault true;
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -1,15 +0,0 @@
{ inputs, lib, config, pkgs, ... }:
{
home-manager.users.tdpeuter = { pkgs, ... }: {
home = {
packages = with pkgs; [
alacritty
];
file = {
".config/alacritty".source = ../../../../stow/alacritty/.config/alacritty;
};
};
};
}

View file

@ -1,27 +0,0 @@
{
imports = [
./alacritty
./firefox
./steam
./thunderbird
# ./virtualbox
];
home-manager.users.tdpeuter = { pkgs, ... }: {
home.packages = with pkgs; [
brave
caprine-bin
discord
jellyfin-media-player
libreoffice-fresh
mattermost-desktop
nextcloud-client
obsidian
pinentry_qt
qalculate-gtk
spotify
zathura
zoom-us
];
};
}

View file

@ -1,41 +0,0 @@
{ inputs, lib, config, pkgs, ... }:
{
home-manager.users.tdpeuter.programs.firefox = {
enable = true;
package = pkgs.firefox.override {
cfg = {
enableTridactylNative = true;
};
extraPolicies = {
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
ExtensionSettings = {};
OfferToSaveLogins = false;
};
};
profiles.tdpeuter = {
search = {
default = "DuckDuckGo";
force = true;
engines = {
"eBay".metaData.hidden = true;
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
};
};
};
};
}

View file

@ -1,8 +0,0 @@
{ inputs, lib, config, pkgs, ... }:
{
programs.steam = {
enable = true;
};
}

View file

@ -1,164 +0,0 @@
{ inputs, lib, config, pkgs, ... }:
let
signatures = {
default = ''
Met vriendelijke groeten
Tibo De Peuter
'';
UGent = ''
Met vriendelijke groeten
Tibo De Peuter
Student 2Ba Informatica
'';
MrFortem = ''
Kind regards
MrFortem Fiducia
'';
};
in
{
home-manager.users.tdpeuter = {
accounts.email.accounts = {
Telenet = {
address = "tibo.depeuter@telenet.be";
userName = "tibo.depeuter@telenet.be";
imap = {
host = "imap.telenet.be";
port = 993;
tls.enable = true;
};
smtp = {
host = "smtp.telenet.be";
port = 587;
tls = {
enable = true;
useStartTls = true;
};
};
realName = "Tibo De Peuter";
signature = {
showSignature = "append";
text = signatures.default;
};
primary = true;
thunderbird = {
enable = true;
settings = id: {
"mail.identity.id_${id}.htmlSigText" = signatures.default;
};
};
};
UGent = {
flavor = "outlook.office365.com";
address = "tibo.depeuter@ugent.be";
realName = "Tibo De Peuter";
signature = {
showSignature = "append";
text = signatures.UGent;
};
thunderbird = {
enable = true;
settings = id: {
"mail.server.server_${id}.authMethod" = 10;
"mail.smtpserver.smtp_${id}.authMethod" = 10;
"mail.identity.id_${id}.htmlSigText" = signatures.UGent;
};
};
};
Gmail = {
flavor = "gmail.com";
address = "tibo.depeuter@gmail.com";
realName = "Tibo De Peuter";
signature = {
showSignature = "append";
text = signatures.default;
};
thunderbird = {
enable = true;
settings = id: {
"mail.identity.id_${id}.htmlSigText" = signatures.default;
};
};
};
MrFortem = {
flavor = "gmail.com";
address = "fortemfiducia@gmail.com";
realName = "Fortem Fiducia";
signature = {
showSignature = "attach";
text = ''
Kind regards
MrFortem Fiducia
'';
};
thunderbird = {
enable = true;
settings = id: {
"mail.server.server_${id}.directory" = ".thunderbird/tdpeuter/ImapMail/imap.gmail.com-mrfortem";
"mail.server.server_${id}.directory-rel" = "[ProfD]ImapMail/imap.gmail.com-mrfortem";
"mail.identity.id_${id}.htmlSigText" = signatures.MrFortem;
};
};
};
};
programs = {
thunderbird = {
enable = true;
profiles.tdpeuter = {
isDefault = true;
settings = {
"mailnews.default_sort_order" = 2; # Sort descending
"mailnews.mark_message_read.delay" = true;
"mailnews.start_page.enabled" = false;
"mail.pane_config.dynamic" = 2; # Vertical view
"calendar.list.sortOrder" = "personal ugent tasks planning zeus";
"calendar.registry.personal.cache.enabled" = true;
"calendar.registry.personal.name" = "Personal";
"calendar.registry.personal.type" = "caldav";
"calendar.registry.personal.uri" = "https://cloud.depeuter.dev/remote.php/dav/calendars/tdpeuter/personal/";
"calendar.registry.personal.username" = "tdpeuter";
"calendar.registry.ugent.cache.enabled" = true;
"calendar.registry.ugent.color" = "#1E64C8";
"calendar.registry.ugent.name" = "UGent";
"calendar.registry.ugent.type" = "caldav";
"calendar.registry.ugent.uri" = "https://cloud.depeuter.dev/remote.php/dav/calendars/tdpeuter/ugent/";
"calendar.registry.ugent.username" = "tdpeuter";
"calendar.registry.planning.cache.enabled" = true;
"calendar.registry.planning.name" = "Planning";
"calendar.registry.planning.type" = "caldav";
"calendar.registry.planning.uri" = "https://cloud.depeuter.dev/remote.php/dav/calendars/tdpeuter/planning/";
"calendar.registry.planning.username" = "tdpeuter";
"calendar.registry.zeus.cache.enabled" = true;
"calendar.registry.zeus.color" = "#FF7F00";
"calendar.registry.zeus.name" = "ZeusWPI";
"calendar.registry.zeus.type" = "ics";
"calendar.registry.zeus.uri" = "https://zeus.ugent.be/ical.ics";
"calendar.registry.tasks.cache.enabled" = true;
"calendar.registry.tasks.color" = "#813D9C";
"calendar.registry.tasks.name" = "Tasks";
"calendar.registry.tasks.type" = "caldav";
"calendar.registry.tasks.uri" = "https://cloud.depeuter.dev/remote.php/dav/calendars/tdpeuter/tasks-2/";
"calendar.registry.tasks.username" = "tdpeuter";
};
};
};
};
};
}

View file

@ -1,17 +0,0 @@
{
virtualisation.virtualbox = {
host = {
enable = true;
enableExtensionPack = true;
};
guest = {
enable = true;
x11 = true;
};
};
users.extraGroups.vboxusers.members = [
"user-with-access-to-virtualbox"
];
}

View file

@ -1,58 +1,11 @@
{ inputs, lib, config, pkgs, ... }:
{
imports = [
./apps
./shells
./utils
./desktop
./hardware
./networking
./nix
./programs
./services
./virtualisation
];
# Nix Flakes
nix.package = pkgs.nixFlakes;
nix.extraOptions = ''
experimental-features = nix-command flakes
keep-outputs = true
keep-derivations = true
'';
users.users.tdpeuter = {
description = "Tibo De Peuter";
isNormalUser = true;
extraGroups = [ "networkmanager" "wheel" ];
initialPassword = "ChangeMe";
packages = with pkgs; [
home-manager
];
};
home-manager.useGlobalPkgs = true;
home-manager.users.tdpeuter = { pkgs, ... }: {
home = {
username = "tdpeuter";
homeDirectory = "/home/tdpeuter";
stateVersion = "23.05";
packages = with pkgs; [
gnupg
# Fonts
corefonts # Calibri for Uni
];
};
programs = {
home-manager.enable = true;
gpg.enable = true;
};
services = {
gpg-agent = {
enable = true;
pinentryFlavor = "qt";
};
};
};
}

View file

@ -1,41 +0,0 @@
{ config, lib, pkgs, ... }:
{
services.xserver = {
enable = true;
# Enable the GNOME Desktop Environment.
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
excludePackages = with pkgs; [
xterm
];
};
environment.systemPackages = with pkgs; [
gnomeExtensions.launch-new-instance
];
environment.gnome.excludePackages = (with pkgs; [
epiphany # Web browser
gnome-console
gnome-photos
gnome-text-editor
gnome-tour
]) ++ (with pkgs.gnome; [
geary # Mail client
gedit
gnome-calculator
gnome-calendar
gnome-characters
gnome-clocks
gnome-contacts
gnome-maps
gnome-music
gnome-weather
simple-scan
totem # Movie player
yelp # Help viewer
]);
}

View file

@ -1,32 +0,0 @@
{ config, lib, pkgs, ... }:
{
services.xserver = {
enable = true;
displayManager.sddm = {
enable = true;
# https://discourse.nixos.org/t/plasma-wayland-session-not-available-from-sddm/13447/2
settings.Wayland.SessionDir = "${pkgs.plasma5Packages.plasma-workspace}/share/wayland-sessions";
};
desktopManager.plasma5 = {
enable = true;
useQtScaling = true;
excludePackages = with pkgs.libsForQt5; [
elisa
okular
khelpcenter
konsole
print-manager
plasma-systemmonitor
gwenview
];
};
excludePackages = with pkgs; [
xterm
];
};
}

View file

@ -1,110 +0,0 @@
{ config, pkgs, lib, ... }:
let
# bash script to let dbus know about important env variables and
# propagate them to relevent services run at the end of sway config
# see
# https://github.com/emersion/xdg-desktop-portal-wlr/wiki/"It-doesn't-work"-Troubleshooting-Checklist
# note: this is pretty much the same as /etc/sway/config.d/nixos.conf but also restarts
# some user services to make sure they have the correct environment variables
dbus-sway-environment = pkgs.writeTextFile {
name = "dbus-sway-environment";
destination = "/bin/dbus-sway-environment";
executable = true;
text = ''
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
systemctl --user start pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
'';
};
# currently, there is some friction between sway and gtk:
# https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
# the suggested way to set gtk settings is with gsettings
# for gsettings to work, we need to tell it where the schemas are
# using the XDG_DATA_DIR environment variable
# run at the end of sway config
configure-gtk = pkgs.writeTextFile {
name = "configure-gtk";
destination = "/bin/configure-gtk";
executable = true;
text = let
schema = pkgs.gsettings-desktop-schemas;
datadir = "${schema}/share/gsettings-schemas/${schema.name}";
in ''
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
gnome_schema=org.gnome.desktop.interface
gsettings set $gnome_schema gtk-theme 'Dracula'
'';
};
in
{
services.xserver = {
enable = true;
displayManager.lightdm.enable = true;
excludePackages = with pkgs; [
xterm
];
};
security.polkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
};
services.dbus.enable = true;
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
};
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
};
home-manager.users.tdpeuter = { pkgs, ... }: {
home = {
username = "tdpeuter";
homeDirectory = "/home/tdpeuter";
file = {
".config/sway".source = ../../../../stow/sway/.config/sway;
".config/waybar".source = ../../../../stow/waybar/.config/waybar;
".config/dunst".source = ../../../../stow/dunst/.config/dunst;
# TODO Fix scripts, I don't like it this way
".scripts".source = ../../../../stow/_scripts/.scripts;
};
packages = with pkgs; [
brightnessctl
dunst
font-awesome
pamixer
pavucontrol
playerctl
swayidle
swaylock-effects
waybar
wmname
];
# };
#
# wayland.windowManager.sway = {
# enable = true;
# package = pkgs.sway-unwrapped;
# config = rec {
# terminal = "alacritty";
# startup = [
# {command = "alacritty";}
# ];
# };
};
};
}

View file

@ -0,0 +1,10 @@
{
imports = [
./gnome
./hyprland
./plasma
./sway
./waybar
];
}

View file

@ -0,0 +1,35 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.desktop.gnome;
in {
options.sisyphus.desktop.gnome.enable = lib.mkEnableOption "GNOME";
config = lib.mkIf cfg.enable {
services = {
gnome = {
core-apps.enable = false;
core-developer-tools.enable = false;
core-shell.enable = true;
};
xserver = {
enable = true;
excludePackages = with pkgs; [
xterm
];
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
videoDrivers = [ "nvidia" ];
};
};
# Start a new instance of application instead of going to that window.
environment.systemPackages = with pkgs.gnomeExtensions; [
launch-new-instance
];
};
}

View file

@ -0,0 +1,62 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.desktop.hyprland;
in {
options.sisyphus.desktop.hyprland.enable = lib.mkEnableOption "Hyprland";
config = lib.mkIf cfg.enable {
environment = {
sessionVariables = {
# Hint Electron apps to use wayland
NIXOS_OZONE_WL = "1";
ASSETS_DIR = ../../../../assets;
SCRIPT_DIR = ../../../../scripts;
};
systemPackages = with pkgs; [
brightnessctl
dunst
libnotify
swaybg
waycorner
playerctl
wlsunset
wl-clipboard # Copying to system clipboard in vim
wl-mirror # Mirror an output
wdisplays # Tool to configure displays
hyprlandPlugins.hy3 # i3/sway layout plugin
swaylock
glib
libva
dmenu
jq
j4-dmenu-desktop
rofi
];
};
programs.hyprland = {
enable = true;
xwayland.enable = true;
};
security.polkit.enable = true;
services = {
dbus.enable = true;
displayManager.ly.enable = true;
gnome.gnome-keyring.enable = true;
xserver.videoDrivers = [ "nvidia" ];
};
sisyphus.desktop.waybar.enable = true;
};
}

View file

@ -0,0 +1,48 @@
{ config, lib, pkgs, ... }:
# This module is not tested at all so it might be broken!
let
cfg = config.sisyphus.desktop.plasma;
in {
options.sisyphus.desktop.plasma.enable = lib.mkEnableOption "KDE Plasma";
config = lib.mkIf cfg.enable {
services = {
displayManager = {
defaultSession = "plasma";
sddm = {
enable = true;
wayland.enable = true;
# https://discourse.nixos.org/t/plasma-wayland-session-not-available-from-sddm/13447/2
# settings.Wayland.SessionDir = "${pkgs.plasma5Packages.plasma-workspace}/share/wayland-sessions";
};
};
desktopManager.plasma6.enable = true;
# Use gnome keyring instead of KDE Wallet.
gnome.gnome-keyring.enable = true;
xserver = {
enable = true;
excludePackages = with pkgs; [
xterm
];
videoDrivers = [ "nvidia" ];
};
};
environment.plasma6.excludePackages = with pkgs.kdePackages; [
elisa
gwenview
kate
khelpcenter
konsole
kwalletmanager
okular
plasma-systemmonitor
print-manager
];
};
}

View file

@ -0,0 +1,147 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.desktop.sway;
# bash script to let dbus know about important env variables and
# propagate them to relevent services run at the end of sway config
# see
# https://github.com/emersion/xdg-desktop-portal-wlr/wiki/"It-doesn't-work"-Troubleshooting-Checklist
# note: this is pretty much the same as /etc/sway/config.d/nixos.conf but also restarts
# some user services to make sure they have the correct environment variables
dbus-sway-environment = pkgs.writeTextFile {
name = "dbus-sway-environment";
destination = "/bin/dbus-sway-environment";
executable = true;
text = ''
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
systemctl --user start pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
'';
};
# currently, there is some friction between sway and gtk:
# https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
# the suggested way to set gtk settings is with gsettings
# for gsettings to work, we need to tell it where the schemas are
# using the XDG_DATA_DIR environment variable
# run at the end of sway config
configure-gtk = pkgs.writeTextFile {
name = "configure-gtk";
destination = "/bin/configure-gtk";
executable = true;
text = let
schema = pkgs.gsettings-desktop-schemas;
datadir = "${schema}/share/gsettings-schemas/${schema.name}";
in ''
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
gnome_schema=org.gnome.desktop.interface
# gsettings set $gnome_schema gtk-theme 'Dracula'
# https://github.com/crispyricepc/sway-nvidia/blob/2101a18698151a61266740f1297158119bf660ac/wlroots-env-nvidia.sh
# Hardware cursors not yet working on wlroots
export WLR_NO_HARDWARE_CURSORS=1
# Set wlroots renderer to Vulkan to avoid flickering
export WLR_RENDERER=vulkan
# General wayland environment variables
export XDG_SESSION_TYPE=wayland
export QT_QPA_PLATFORM=wayland
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
# Firefox wayland environment variable
export MOZ_ENABLE_WAYLAND=1
export MOZ_USE_XINPUT2=1
# OpenGL Variables
export GBM_BACKEND=nvidia-drm
export __GL_GSYNC_ALLOWED=0
export __GL_VRR_ALLOWED=0
export __GLX_VENDOR_LIBRARY_NAME=nvidia
# Xwayland compatibility
export XWAYLAND_NO_GLAMOR=1
'';
};
in {
options.sisyphus.desktop.sway.enable = lib.mkEnableOption "Sway";
config = lib.mkIf cfg.enable {
environment.systemPackages = (with pkgs; [
# Window manager related
dbus-sway-environment
configure-gtk
wayland
xdg-utils # Open with default program
glib # gsettings
wl-clipboard # Copying to system clipboard in vim
wl-mirror # Mirror an output
wdisplays # Tool to configure displays
# Desktop Environment related
brightnessctl
dunst
libnotify
playerctl
swaybg
swaylock-effects
wlsunset
waycorner
# TODO Turn into own module/package?
dmenu
jq
j4-dmenu-desktop
rofi
]) ++ (with pkgs.sway-contrib; [
grimshot
]);
environment.sessionVariables = {
ASSETS_DIR = ../../../../assets;
SCRIPT_DIR = ../../../../scripts;
};
fonts.packages = with pkgs; [
dejavu_fonts
font-awesome
noto-fonts
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-emoji
];
hardware.graphics.enable = true;
services = {
atd.enable = true; # Required by sunset.sh
dbus.enable = true;
displayManager.ly.enable = true;
gnome.gnome-keyring.enable = true;
power-profiles-daemon.enable = true;
xserver.videoDrivers = [ "nouveau" ];
# xserver.videoDrivers = [ "nvidia" ];
};
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
gtk-session-lock
];
xdgOpenUsePortal = true;
};
programs.sway = {
enable = true;
package = pkgs.swayfx;
wrapperFeatures.gtk = true;
};
sisyphus = {
desktop.waybar.enable = true;
users.wantedGroups = [
config.users.groups.video.name # Brightnessctl
];
};
};
}

View file

@ -0,0 +1,18 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.desktop.waybar;
in {
options.sisyphus.desktop.waybar.enable = lib.mkEnableOption "Waybar";
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
libnotify
playerctl
jq
j4-dmenu-desktop
];
programs.waybar.enable = true;
};
}

View file

@ -0,0 +1,8 @@
{
imports = [
./eid
./fingerprint-scanner
./nvidia
./yubikey
];
}

View file

@ -0,0 +1,18 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.hardware.eid;
in {
options.sisyphus.hardware.eid.enable = lib.mkEnableOption "Electronic identity card (eID)";
config = lib.mkIf cfg.enable {
services.pcscd = {
enable = true;
plugins = [ pkgs.ccid ];
};
environment.systemPackages = with pkgs; [
eid-mw
];
};
}

View file

@ -0,0 +1,30 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.hardware.fingerprint-scanner;
in {
options.sisyphus.hardware.fingerprint-scanner.enable = lib.mkEnableOption "Fingerprint scanner support";
config = lib.mkIf cfg.enable {
# Enable driver
services.fprintd = {
enable = true;
# Enable Touch OEM Drivers library support
tod = {
enable = true;
# Dell drivers
driver = pkgs.libfprint-2-tod1-broadcom;
};
};
# Start driver at boot
systemd.services.fprintd = {
wantedBy = [
"multi-user.target"
];
serviceConfig.Type = "simple";
};
};
}

View file

@ -1,33 +0,0 @@
{ inputs, lib, config, pkgs, ... }:
let
nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" ''
export __NV_PRIME_RENDER_OFFLOAD=1
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only
exec "$@"
'';
in
{
nixpkgs.config.allowUnfree = true;
services.xserver.videoDrivers = [ "nvidia" ];
hardware = {
opengl.enable = true;
nvidia = {
open = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
modesetting.enable = true;
};
};
# Offloading
# environment.systemPackages = [ nvidia-offload ];
# hardware.nvidia.prime = {
# offload.enable = true;
# intelBusId = "PCI::00:02:0";
# nvidiaBusId = "PCI:01:00:0";
# };
}

View file

@ -0,0 +1,90 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.hardware.nvidia;
# The graphics cards for which to do offloading
do-offloading = builtins.elem cfg.model [ "Quadro T2000" ];
nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" ''
export __NV_PRIME_RENDER_OFFLOAD=1
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only
exec "$@"
'';
in {
options.sisyphus.hardware.nvidia = {
enable = lib.mkEnableOption "NVIDIA GPU support";
model = lib.mkOption {
type = lib.types.enum [ "" "Quadro T2000" "RTX 2060" ];
default = "";
example = "Quadro T2000";
description = lib.mdDoc "The model of NVIDIA GPU card";
};
gui-settings = lib.mkEnableOption "NVIDIA settings menu";
};
config = lib.mkIf cfg.enable {
boot = {
extraModprobeConfig = ''
options nvidia-drm modeset=1
'';
kernelParams = [
"nvidia_drm.modeset=1"
];
};
hardware = {
graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [
intel-ocl
intel-compute-runtime
opencl-clhpp
opencl-clang
opencl-headers
ocl-icd
];
};
nvidia = {
# Use the NVidia open source kernel module (or not)
open = false;
package = config.boot.kernelPackages.nvidiaPackages.stable;
# Modesetting is required.
modesetting.enable = true;
nvidiaSettings = cfg.gui-settings;
powerManagement = {
enable = do-offloading;
finegrained = do-offloading;
};
# Avoid flickering
forceFullCompositionPipeline = true;
prime = lib.mkMerge [
(lib.mkIf do-offloading {
offload = {
enable = true;
enableOffloadCmd = true;
};
})
(lib.mkIf (cfg.model == "Quadro T2000") {
intelBusId = "PCI::00:02:0";
nvidiaBusId = "PCI:01:00:0";
})
(lib.mkIf (cfg.model == "RTX 2060") {
sync.enable = true;
intelBusId = "PCI::00:02:0";
nvidiaBusId = "PCI:01:00:0";
})
];
};
};
environment.systemPackages = lib.mkIf do-offloading [
nvidia-offload
];
};
}

View file

@ -0,0 +1,42 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.hardware.yubikey;
in {
options.sisyphus.hardware.yubikey.enable = lib.mkEnableOption "YubiKey support";
config = lib.mkIf cfg.enable {
programs = {
gnupg.agent = {
enable = true;
# TODO Necessary?
# enableSSHSupport = true;
# pinentryFlavor = "curses";
};
# yubikey-touch-detector.enable = true;
};
# Enable smart card reading
services.pcscd.enable = true;
environment.systemPackages = with pkgs; [
yubikey-touch-detector
];
# Send a notification if the YubiKey is waiting for touch.
systemd.services.yubikey-touch-detector = {
enable = true;
description = "Detects when your YubiKey is waiting for a touch";
path = with pkgs; [
gnupg
yubikey-touch-detector
];
wantedBy = [
"graphical-session.target"
];
script = ''exec yubikey-touch-detector --libnotify'';
environment.YUBIKEY_TOUCH_DETECTOR_LIBNOTIFY = "true";
};
};
}

View file

@ -0,0 +1,6 @@
{
imports = [
./networkmanager
./openconnect-sso
];
}

View file

@ -0,0 +1,14 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.networking.networkmanager;
in {
options.sisyphus.networking.networkmanager.enable = lib.mkEnableOption "NetworkManager";
config = lib.mkIf cfg.enable {
networking.networkmanager.enable = true;
# Prevent slow boot times
systemd.services.NetworkManager-wait-online.enable = false;
};
}

View file

@ -0,0 +1,13 @@
{ config, inputs, lib, pkgs, ... }:
let
cfg = config.sisyphus.networking.openconnect-sso;
in {
options.sisyphus.networking.openconnect-sso.enable = lib.mkEnableOption "OpenConnect SSO";
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
inputs.openconnect-sso.packages.${config.nixpkgs.localSystem.system}.default
];
};
}

View file

@ -0,0 +1,6 @@
{
imports = [
./flakes
./gc
];
}

View file

@ -0,0 +1,14 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.nix.flakes;
in {
options.sisyphus.nix.flakes.enable = lib.mkEnableOption "Nix Flakes";
config.nix = lib.mkIf cfg.enable {
extraOptions = ''
experimental-features = nix-command flakes
'';
package = pkgs.nixVersions.stable;
};
}

View file

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.nix.gc;
in {
options.sisyphus.nix.gc = {
weekly.enable = lib.mkEnableOption "Scheduled Nix garbage-collection";
onFull.enable = lib.mkEnableOption "Nix garbage-collection when disk is almost full";
};
config.nix = {
# If the disk has less than 100MiB, free up to 2GiB by garbage-collecting.
extraOptions = lib.mkIf cfg.onFull.enable ''
min-free = ${toString (100 * 1024 * 1024)}
max-free = ${toString (2048 * 1024 * 1024)}
'';
# Scheduled garbage-collect
gc = lib.mkIf cfg.weekly.enable {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
};
}

View file

@ -0,0 +1,9 @@
{
imports = [
./direnv
./home-manager
./sops
./spotify-adblock
./ssh
];
}

View file

@ -0,0 +1,21 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.programs.direnv;
in {
options.sisyphus.programs.direnv.enable = lib.mkEnableOption "direnv";
config = lib.mkIf cfg.enable {
programs.direnv = {
enable = true;
nix-direnv.enable = true; # Use nix-specific direnv, https://github.com/nix-community/nix-direnv
};
# This is also done by setting programs.direnv.persistDerivations.
# Keep derivations so shells don't break.
nix.extraOptions = ''
keep-outputs = true
keep-derivations = true
'';
};
}

View file

@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.programs.home-manager;
in {
options.sisyphus.programs.home-manager.enable = lib.mkEnableOption "Home-manager";
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
home-manager
];
home-manager.useGlobalPkgs = true;
};
}

View file

@ -0,0 +1,41 @@
# Adding SSH keys
To incorporate SSH keys, for instance, to enable authentication with a Git server, follow these steps:
Step 0: If necessary, generate a keypair, for example using the command:
```bash
ssh-keygen -t ed25519
```
Please note that setting a password for the keypair is not yet tested.
Step 1: Create a new file named `yourservice.yaml` within the [secrets](../../../secrets/) directory by executing the following command:
```bash
sops secrets/yourservice.yaml
```
Within this file, create a value that contains your private key. For example:
```yaml
yourservice:
ssh: |
-----BEGIN OPENSSH PRIVATE KEY-----
<...>
-----END OPENSSH PRIVATE KEY-----
```
Step 2: Reference this value in [your sops configuration](../../utils/sops/default.nix) as follows:
```
sops.secrets."yourservice/ssh".format = "yaml";
sops.secrets."yourservice/sss".sopsFile = secrets/youservice.yaml;
```
Step 3: Finally, add the SSH key to your SSH configuration so that it is used correctly when connecting to your host. Add the following lines to your SSH configuraton file:
```
Host yourservice
IdentityFile /run/secrets/yourservice/ssh
```

View file

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.programs.sops;
in {
options.sisyphus.programs.sops.enable = lib.mkEnableOption "Sops";
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
sops
];
sops = {
# Add secrets.yml to the Nix Store.
defaultSopsFile = ../../../secrets/secrets.yaml;
age = {
# Don't derive age keys from SSH keys.
sshKeyPaths = [ ];
# Use an age key that is expected to already be in the filesystem.
# You will need to place this file manually.
keyFile = "/var/lib/sops-nix/key.txt";
};
};
};
}

View file

@ -0,0 +1,11 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.programs.spotify-adblock;
in {
options.sisyphus.programs.spotify-adblock.enable = lib.mkEnableOption "Spotify adblock";
config = lib.mkIf cfg.enable {
environment.etc."spotify-adblock/config.toml".source = "${pkgs.spotify-adblock}/config.toml";
};
}

View file

@ -0,0 +1,13 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.programs.ssh;
in {
options.sisyphus.programs.ssh.enable = lib.mkEnableOption "SSH";
config = lib.mkIf cfg.enable {
programs.ssh = {
enableAskPassword = false;
};
};
}

View file

@ -0,0 +1,11 @@
{
imports = [
./monero
./openrgb
./openssh
./pipewire
./printing
./remEYEnder
./tailscale
];
}

View file

@ -0,0 +1,41 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.services.monero;
in {
options.sisyphus.services.monero.enable = lib.mkEnableOption "Monero";
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
monero-cli
];
services = {
# Choose to run a node or not.
monero.enable = true;
xmrig = {
enable = true;
settings = {
autosave = true;
background = true;
pause-on-battery = true;
pause-on-active = 60;
donate-level = 5;
cpu = true;
opencl = false;
cuda = true;
pools = [
{
url = "monerohash.com:9999";
# url = "127.0.0.1:18081"; # Local node
user = "44FjmmLn1k1GC1AFTLSdWDZ17CHB2h3eRCnfkfTQBucHaKX1AGS5oLERR1FEaHxPQcUNwrbEfsgbY4Y6bYJm6ZrdCYGwg7b";
keepalive = true;
tls = true;
}
];
};
};
};
};
}

View file

@ -0,0 +1,23 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.services.openrgb;
in {
options.sisyphus.services.openrgb.enable = lib.mkEnableOption "OpenRGB";
config = lib.mkIf cfg.enable {
services.udev.packages = with pkgs; [
openrgb
];
boot.kernelModules = [ "i2c-dev" ];
hardware.i2c.enable = true;
services.hardware.openrgb = {
enable = true;
package = pkgs.openrgb-with-all-plugins;
motherboard = "intel";
};
};
}

View file

@ -0,0 +1,17 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.services.openssh;
in {
options.sisyphus.services.openssh.enable = lib.mkEnableOption "OpenSSH";
config = lib.mkIf cfg.enable {
services.openssh = {
enable = true;
settings = {
PasswordAuthentication = false;
PermitRootLogin = "no";
};
};
};
}

View file

@ -0,0 +1,41 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.services.pipewire;
in {
options.sisyphus.services.pipewire.enable = lib.mkEnableOption "Pipewire";
config = lib.mkIf cfg.enable {
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
wireplumber = {
enable = true;
# Fix pops after silence
extraConfig."99-disable-suspend" = {
"monitor.alsa.rules" = [
{
matches = [
# Headphone jack on laptop
{ "node.name" = "alsa_output.pci-0000_00_1f.3.analog-stereo"; }
];
actions.update-props = {
"session.suspend-timeout-seconds" = 0;
};
}
];
};
};
};
};
}

View file

@ -0,0 +1,18 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.services.printing;
in {
options.sisyphus.services.printing.enable = lib.mkEnableOption "Printing";
config = lib.mkIf cfg.enable {
services = {
printing.enable = true;
avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
};
};
}

View file

@ -0,0 +1,35 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.services.remEYEnder;
icon = ./vecteezy_eyes-line-icon-vector-isolated_13932670.jpg;
in {
options.sisyphus.services.remEYEnder.enable = lib.mkEnableOption "Eye reminder";
config = lib.mkIf cfg.enable {
systemd.user = {
services.remEYEnder = {
enable = true;
description = "Send an eye reminder";
serviceConfig.Type = "oneshot";
script = ''
# Display reminder for 20 seconds.
${pkgs.libnotify}/bin/notify-send -t 20000 --icon=${icon} "RemEYEnder" "Look away from your screen :)"
'';
};
timers.remEYEnder = {
enable = true;
description = "Timer for remEYEnders, runs every 20 minutes.";
wantedBy = [
"timers.target"
];
timerConfig = {
OnActiveSec = "20min";
OnUnitActiveSec = "20min";
Unit = "remEYEnder.service";
};
};
};
};
}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View file

@ -0,0 +1,15 @@
{ config, lib, pkgs, pkgs-unstable, ... }:
let
cfg = config.sisyphus.services.tailscale;
in {
options.sisyphus.services.tailscale.enable = lib.mkEnableOption "Tailscale";
config = lib.mkIf cfg.enable {
services.tailscale = {
enable = true;
package = pkgs-unstable.tailscale;
useRoutingFeatures = "client";
};
};
}

View file

@ -1,5 +0,0 @@
{
imports = [
./zsh
];
}

View file

@ -1,70 +0,0 @@
{ config, lib, pkgs, ... }:
{
programs.zsh.enable = true;
users.users.tdpeuter.shell = pkgs.zsh;
home-manager.users.tdpeuter = { pkgs, ... }: {
home = {
packages = with pkgs; [
font-awesome
];
file = {
".oh-my-zsh".source = ../../../../stow/zsh/.oh-my-zsh;
};
};
programs.zsh = {
enable = true;
enableAutosuggestions = true;
enableSyntaxHighlighting = true;
history = {
expireDuplicatesFirst = true;
extended = true;
};
initExtra = ''
eval "$(direnv hook zsh)"
'';
oh-my-zsh = {
enable = true;
custom = "$HOME/.oh-my-zsh";
plugins = [
"dirhistory"
"git"
"screen"
];
theme = "mrfortem";
};
plugins = [
{
name = "cmdtime";
src = pkgs.fetchFromGitHub {
owner = "tom-auger";
repo = "cmdtime";
rev = "ffc72641dcfa0ee6666ceb1dc712b61be30a1e8b";
hash = "sha256-v6wCfNoPXDD3sS6yUYE6lre8Ir1yJcLGoAW3O8sUOCg=";
};
}
];
shellAliases = {
cp = "cp -i"; # Confirm before overwriting something
df = "df -h";
free = "free -m";
ll = "ls -la";
np = "nano -w PKGBUILD";
more = "less";
hgrep = "history | grep";
gs = "git status";
update = ''
pushd ~/projects/sisyphus/nixos
nix flake update
sudo nixos-rebuild switch --flake .# --show-trace
popd
'';
};
};
};
}

View file

@ -1,43 +0,0 @@
{
imports = [
./mpv
./vifm
./vim
./zellij
];
home-manager.users.tdpeuter = { pkgs, ... }: {
home.packages = with pkgs; [
direnv
duf
git-crypt
lynx
nsxiv
w3m
wget
zenith-nvidia
];
programs = {
direnv = {
enable = true;
nix-direnv.enable = true;
};
git = {
enable = true;
userName = "tdpeuter";
userEmail = "tibo.depeuter@gmail.com";
extraConfig = {
core.editor = "vim";
};
includes = [
{
path = "~/.gitconfig-ugent";
condition = "gitdir:~/Nextcloud/Documenten/UGent";
}
];
};
};
};
}

View file

@ -1,11 +0,0 @@
{ config, system, lib, pkgs-unstable, ... }:
{
home-manager.users.tdpeuter.home = {
packages = with pkgs-unstable; [
mpv
];
file.".config/mpv".source = ../../../../stow/mpv/.config/mpv;
};
}

View file

@ -1,8 +0,0 @@
{ config, lib, pkgs, ... }:
{
services.openssh = {
enable = true;
passwordAuthentication = false;
};
}

View file

@ -1,22 +0,0 @@
{ config, lib, pkgs, ... }:
{
home-manager.users.tdpeuter.home = {
packages = with pkgs; [
vifm
chafa # Terminal image previewer
glow # Terminal Markdown renderer
font-awesome_5
];
# Put files separately so history still works
file = {
".config/vifm/colors".source = ../../../../stow/vifm/.config/vifm/colors;
".config/vifm/scripts".source = ../../../../stow/vifm/.config/vifm/scripts;
".config/vifm/vifmrc".source = ../../../../stow/vifm/.config/vifm/vifmrc;
};
};
}

View file

@ -1,76 +0,0 @@
{ inputs, lib, config, pkgs, ... }:
{
home-manager.users.tdpeuter = { pkgs, ... }: {
home.file = {
".vim".source = ../../../../stow/vim/.vim;
};
programs.vim = {
enable = true;
extraConfig = ''
colorscheme catppuccin_mocha_mod
" Tags
" pacman -S ctags
command! MakeTags !ctags -R . &
" Move to defintion using ^]
" Move to ambigious using g^]
" Move back using ^t
filetype on
filetype indent on
filetype plugin on
" File browsing
let g:netrw_browse_split=4 " open in the previous window
let g:netrw_altv=1 " split new windows to the right
let g:netrw_liststyle=3 " treeview
set autoindent
set conceallevel=2
set incsearch
set linebreak
set nocompatible
set path+=**
set scrolloff=3
set showcmd
set showmatch
set smartindent
set smarttab
set title
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx
set wildmenu
syntax enable
if $TERM == 'alacritty'
set ttymouse=sgr " Alacritty specific
endif
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
" https://stackoverflow.com/a/37558470/19044747
augroup remember_folds
autocmd!
autocmd BufWinLeave * silent! mkview
autocmd BufWinEnter * silent! loadview
augroup END
endif
'';
plugins = with pkgs.vimPlugins; [
ale
catppuccin-vim
statix
vifm-vim
];
settings = {
expandtab = true;
mouse = "a";
number = true;
relativenumber = true;
shiftwidth = 4;
tabstop = 4;
};
};
};
}

View file

@ -1,16 +0,0 @@
{ config, pkgs, lib, ... }:
{
home-manager.users.tdpeuter.home = {
packages = with pkgs; [
zellij
];
file.".config/zellij".source = ../../../../stow/zellij/.config/zellij;
};
fonts.fonts = with pkgs; [
noto-fonts
noto-fonts-cjk
];
}

View file

@ -0,0 +1,7 @@
{
imports = [
./docker
./qemu
./virtualbox
];
}

View file

@ -0,0 +1,24 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.virtualisation.docker;
in {
options.sisyphus.virtualisation.docker.enable = lib.mkEnableOption "Docker";
config = lib.mkIf cfg.enable {
virtualisation.docker = {
enable = true;
# Because these are made for development purposes and not for servers
enableOnBoot = false;
daemon.settings.features.cdi = true;
};
# Updated version of deprecated enableNvidia.
hardware.nvidia-container-toolkit.enable = true;
sisyphus.users.wantedGroups = [
"docker"
];
};
}

View file

@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.virtualisation.qemu;
in {
options.sisyphus.virtualisation.qemu.enable = lib.mkEnableOption "QEMU";
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
qemu
];
virtualisation.libvirtd.qemu.runAsRoot = false;
};
}

View file

@ -0,0 +1,30 @@
{ config, lib, pkgs-unstable, ... }:
let
cfg = config.sisyphus.virtualisation.virtualbox;
in {
options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox";
config = lib.mkIf cfg.enable {
virtualisation.virtualbox.host = {
enable = true;
enableExtensionPack = true;
enableHardening = true;
package = pkgs-unstable.virtualbox;
};
# https://www.virtualbox.org/ticket/22248#comment:1
# and
# https://github.com/NixOS/nixpkgs/pull/444438
boot.kernelParams = [ "kvm.enable_virt_at_load=0" ];
# Define the group
users.groups.vboxusers = {};
sisyphus.users.wantedGroups = [
config.users.groups.vboxusers.name # The group we defined earlier
config.users.groups.dialout.name # Serial Port
];
};
}

View file

@ -0,0 +1,17 @@
final: prev: {
cmdtime = final.stdenv.mkDerivation {
name = "cmdtime";
version = "v0.0.0";
src = final.fetchFromGitHub {
owner = "tom-auger";
repo = "cmdtime";
rev = "ffc72641dcfa0ee6666ceb1dc712b61be30a1e8b";
hash = "sha256-v6wCfNoPXDD3sS6yUYE6lre8Ir1yJcLGoAW3O8sUOCg=";
};
installPhase = ''
mkdir -p $out/share/cmdtime
cp $src/cmdtime.plugin.zsh $out/share/cmdtime/cmdtime.plugin.zsh
'';
};
}

View file

@ -0,0 +1,12 @@
# The following is taken from: https://nixos-and-flakes.thiscute.world/nixpkgs/overlays
# import all nix files in the current folder, and execute them with args as parameters
# The return value is a list of all execution results, which is the list of overlays
args:
# execute and import all overlay files in the current directory with the given args
builtins.map
(f: (import (./. + "/${f}") args)) # execute and import the overlay file
(builtins.filter # find all overlay files in the current directory
(f: f != "default.nix")
(builtins.attrNames (builtins.readDir ./.)))

View file

@ -0,0 +1,18 @@
final: prev: {
icosystem = final.stdenv.mkDerivation {
name = "icosystem";
version = "v1.0.0";
src = final.fetchFromGitea {
domain = "git.depeuter.dev";
owner = "tdpeuter";
repo = "icosystem";
rev = "ca565dc36d";
hash = "sha256-GJu0APTkrsFH981Y1RBedOnvVJ5Z79w2WPcLkrc8CH0=";
};
installPhase = ''
mkdir -p $out/share/icons
cp -R $src $out/share/icons/icosystem
'';
};
}

View file

@ -0,0 +1,18 @@
final: prev: {
letter = final.stdenv.mkDerivation {
name = "letter";
version = "v1.0.0";
src = final.fetchFromGitea {
domain = "git.depeuter.dev";
owner = "tdpeuter";
repo = "letter";
rev = "v1.0.0";
hash = "sha256-2HaXZMIYSauqj9Cy7rRzYGyuYLno9AHAXpWsyD+BdtE=";
};
installPhase = ''
mkdir -p $out/share/fonts
cp -R $src/ttf $out/share/fonts/letter
'';
};
}

View file

@ -0,0 +1,24 @@
final: prev: {
spotify-adblock = final.rustPlatform.buildRustPackage rec {
name = "spotify-adblock";
version = "v1.0.3";
src = final.fetchFromGitHub {
owner = "abba23";
repo = "spotify-adblock";
rev = "5a3281d";
sha256 = "sha256-UzpHAHpQx2MlmBNKm2turjeVmgp5zXKWm3nZbEo0mYE=";
};
cargoHash = "sha256-oGpe+kBf6kBboyx/YfbQBt1vvjtXd1n2pOH6FNcbF8M=";
buildInputs = with final; [
cargo
rustc
];
postPatch = ''
mkdir -p $out
cp $src/config.toml $out/config.toml
'';
};
}

View file

@ -0,0 +1,41 @@
HomeLab:
Gitea:
ssh: ENC[AES256_GCM,data:+H9qhfOg5WlTB7pihvbJ9omY/zLTAADe8KzI4fbdZ7NuaM0auC95AIQqhwNNCZNglg9UGOVL662pY7dNhbQ/2iCLPHSPgFFXf3fx1moRRcYYQzoJxsgxp19FZQeGNJ0qfRf72xYbZQZKslyHQmcqDieoVTyhaLqTfgC8MQ/UZofw/ortmgME7z51rGV5sXXMjxpJpHz9JxiPwQEL0ABWDAeCqBVBzlqqwdmfKEdkcR4l3USHfH1iNF5XQ5V26I+UGDOyoixt1c/BXzD9xzKI7MUDoRz+qfC6C62LIlEgqZY5tWg+tVZnqobakxwH6d8pXtQ7vaIREEP0LqQMkrNcK8X+cDRteToQ1fcxtN1V+JfZSa9pVC+iGgvmSZ00q4bnOgTmgO9IZ80TvOR4bHpRhjM5l4JMbLBv2jqY1zeUx/5L3WNuYIm9sL5mWXkV/RAD8WCemNSWdKbGsvByEUeiFcxczL/vQ6y3fi+ntmXUgeXVy5zVNkNlYbqd+DemBmwZQb9D1T5T97i2ChciYb3/ON1NObja/bt0PTQa,iv:hIbwsPcDSfgDItlvFFy0vCjuQWvgoQHBH60v8nTVTNg=,tag:1T/TdTEy98TfgMzYAxfHKA==,type:str]
HTPC:
ssh: ENC[AES256_GCM,data:svt6jhMXVCydmlcoa052TtFoIwQiAzNJRn9GPZDBuOGSnB83kUpuy/oqPOIa2ipco0L/5F/mQWn7OHUFtyhWWMerzY8niPldUDKH4jgsvRhRIatGOFiDyL8oA+f1O9lmhyFx35uxGa+Q6tn6rtXVKRVWQFe8kYBvGYjugKixsOMugoqLIxY8wUlMTzm6uDd7a72s/0hgQZGKp0eHWBHEdSJGPdv8svVDZ1PBMrlZa5ZpuiUmmvZvyCEnRtImUZALG4nKMvJjunxKr/4MJhWuffQ60jLYzInoGggiJlwBm+E+m43FwIFndY+LJ+ykO5RAbHhSwgXsCS5WXBrvDGuOTNAlIp6yTgSK1DCzSjzOJOc93rVSPhPdkaOoKgxhz1k95qCEhYUf9vyBgyIaOntWEArV+OZmHje6awbk4fpyIzRe7ggHlhKILYoGYzeejxbMGB9nH15RlUiTF7QnAWxWNSwcET6dSn2MtpC3yegnYl4u3eJ7YkHHYYQtwCQ9vCnt0i/sfuJmbrSFBXnVKMWB2w1Att145gDdlDok,iv:4bkSYvgmG6j/AwVnfGsLjdqtyP/gpWRvOKZCQxP0sMs=,tag:LyjE7dTt0+IDuSlbVLgCMg==,type:str]
Hugo:
ssh: ENC[AES256_GCM,data:y233CFIH7/n4EGEd2D7MuoprcMV9A8DaiV9JYZ6sr5j+hZnGr8sIAm9/55Bi2cD74sBZcE+tjOz+V2aJ2llKgcdS84ZmXMPh6KQ2QYRYuGdBLeztl8foKdimToblBapebTVO7Rc2mdhg7sZtC/TKSIJnG3R3lRfRdKaxNjaRS51epl7VZKGhLBjZoZqMXOezY7lvNBvF3hFfMh5el5I5Te/yQbbp0a7DkAvA+c1nG9bo9FN0h3VJJTzcuHqvGHI736VosLe8UGirMkX9mBwB8ZV4+2Vp7ZsSHnX5or/MzuYexT0zeLbTNHfj64d2W2/LKDkxNc35Sw7NvxwsVj3k2UHC2jEgus2z0AdMFszEFXh+Eu9wK8yX4ebzUut+OHNPuxvIk+ORxYr3OdVkOhhWHLinu/skNg0u5OdUXo/0p1876+gpcnOVC5UrUflwrtKGQgNk+ovWWjSfcQMh+gI6GYXzksX3YdMEriYZt4Z8lev2od/i7q48cV4W3Lo6TDDttipynxQus6K+J3oBKRirLHylRA5gusqUOVzC,iv:thw9OUnA02qe6aMuLTwy+q/a6isB375/k7JixPEy960=,tag:s95FtFRmPG0Up2oVuQyXsg==,type:str]
Nextcloud:
ssh: ENC[AES256_GCM,data:aVqa57u9hIOquP367EDj2rlyQWRe3EZv8l5cC+yQQKCri2bN5IFSq8qNemOIcU9ycBnxIyK6gLerJYQQcgzIIARmnfDpbJ9w+EeUL5yvPVJN6FM7oBeaL9mzYRl8aDKr22LhL9YiKAT1nKHESmTb3TZRvuvWJTGzCMRV85ROGxZYVUgG6BjuHEzuTsc4fy3NVPIl7/4ZjPgNNYx+UNsV5xwTejveB/sGblVrHOO74LZXzUWRlQNun5nM3MY3GALzfrPrVIAyGNu37CGachtwxaPOj7vUKZmD/e+XajYVKRJ3v33jrUeI0dDmhuwJj3taoFik6suAyiK3RlDdeWoERR8vqduiyxJnVMs6mNkigzkVtifpwZyQ8vNyG7w1JNPygMYgQzjN43lGVml8cx1lZvcoBzQabjWxcNzhV8gXxoGKvAwUV7ELB6l00rUH+EeI0uU8/IFm9kwmZq42ciM/bRGSGXzo2PYG2OHOiDe5b0nrIlajaRKd+vuuzTtFFU9EwH0GPzERRaoxVK+h9tzcco/REITCE+CVlHSx,iv:bb1X95HK5tT7EJpqqgMOUxw5VO5MuzoYxkPIzR5sEqU=,tag:y2LKHm7czwyuHp7Ea8KiYw==,type:str]
NixOS:
admin:
ssh: ENC[AES256_GCM,data:rAn/H2CtK2dkES2UIJrZbEP/3rqLgJsy5rortmdqoCthQ41IxztiaH1VtdaVDtw5j0qu49RJ59KkmYpOQXC2okAgLeqcb+J9iwrwspfKd+/I186a4gHZ2l+hGpmr3Vbs6K/UoCY67uygZhznBuwKeW4EjYJgGS7zInJFmMvcMV1rP/t4VoW+5oxptQNCrzoRukIG6NiAOcqU1GtvBfL5PxLaTWUEcZMYuo6sY/9VuEWgkZP1bmhBPUIv9D5yJo94KQr0YOaX4lz2pwd+K0cdD8d0Lh8B5YplA1NDCUnBbuDXfH0aSUAm7DCm6Y/E2UECEMRLuwfyEoe/yaHh8iCGveI//FkmiIKNY1SmTkjM2Fdfk6QaVDF8sG2CWdX21H3senfeM6jSow7JLY1LDvC2WxO4YIJEi14Y7zEpIZinWimyAhihPvMLnwd3taOhE59NrTOQKQS3tyFX+5tO3LtBrpn+Tm/B7WO49EkRn1LXN8CWkFnEEGXgxfNRg91C967nHaNpDMssGjfVG20WwYAtMKXzrNyzSEJbZglQ,iv:vY/8yyO0eLzpdho9aPUH9WGQ8Cp5LA+5RckjzDgYMMY=,tag:Jar1qVS/c1rQ8f3qpYqJdA==,type:str]
Roxanne:
ghost:
ssh: ENC[AES256_GCM,data:hkgVUVyCLANeYB4bcCTLB/F6eAbg7J4eN8y+VVzBfkcgnpDmXmghBihreQVT7OIwRrHIH1ok2vuH8vgXb38tuplUD5I8e0Gqy3EqpOGagsO8lss4aIg2lRwZ9WazJknvo4OaGc34jrwcZicesnaxK6g+GX2r2N4caGKMuOZ2i1mLKBwOcEtL6l3REKrGkExd3mYJX1Yqs7sMbGLNpfemDghv646zvxDRwPby49qIPA8OtGR+DBMZTTEviNqamJaFbs7YX+K77J1NHK59u6UfzU6hEjTBEYIjkFDzGATAZAopCsjOHcAA0alejHK4QZZt3e8unVsLICNK08ZCyEzwSXQ/wpUh3ccGcLit2t1LYZT4PqqG8+6ooaQYso67Wral0pdsTsrF0mGNfsZm76MDV9puP5B+IInanHz+2mCHbdmTi6rg9t8Q6mpFqrUbrwxMn2Ns1proBXBCqK/sFjC/bVIyMHUVOh6GYcKaVTv8ecB9ZEjp5dZ4VeStqTMT+xqS7dXBAJzGytLwXT/JaQelIE0w47aBaGy63Pqy,iv:WuAGU+ru8xLp2LXK12x/ueCH0XDxA0zGUt7+HWUdVMo=,tag:UqUMD/jSdTXOkf0kyMqwHA==,type:str]
Vaultwarden:
ssh: ENC[AES256_GCM,data:LJ7nbIdl1GqcsBtOwqsDtjKMfks13X5hsGkEFxDj0eX1EegEBkoWnzstu34RTgt1O1O+3Y/Amg7cDce2ZyZrTwDmLqinpuJD3CI7pRtQygAH8X9wPQYE6U3D1t4dXuMcDftjS+uY0CJFmq01dLv0GytSZSiNBcqNepTY+fO20yylyUbDGjI3Foyi86ipEtLVeFJqESiHDMHn/Cr+ggpLNMXijpnyoCRstPlm3GY3n6EhPwKhwovLB3AXolUeScnInIpwiikVTkYLNLCbrG8KAAr+DmWK3GTZYToH0wV8HpacPQI+4cHf96+EvAVlYMwGyQztPmXO7/9xUgWCNYow+z8BD6ijMuyZHT9aNkoAPt/y72N/PSf5HqW0QVWr3LmyIG+i9Bxbhqc7mRUIy4wZsODbtoO8/RtAly6mXIg0DZLlbo8kDe3TE3m+P5E/KQJOAvM2QdL+NXPcf2J2JYHW4kzITx447Bc3+F/DRs616MhekIoDybLhY3MT0XvYX1d1wAv/Ip98EGzfptXjnJvKPcJgTBlqNyeKuPOe,iv:oEGJUpoj+N30TgLpSWQqGdqYBdWLUWnSuQ+7TdSgmFc=,tag:AUZ2QnPUxLHaxsHbrmSYZQ==,type:str]
sops:
age:
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlL05vZHk2T1B6OHArUXlj
bEZWV0dUeVN0M3ZpeHdKcGlKV1RWYmRLM0FjCm9PLzBZTFo3RjhZTEhYMDBSN2Nj
aithQ2hpZXVCSngxcVBvQ2hKRzFXUEEKLS0tIE5rL0NHb1llRmlSQXVUeU8rVmNY
aEZHdDFEWUdxMzRVVjFhQWZmS04wRkkKrD2CiwdNcbK9s64omQ7xSA29J48HwIHa
ickyL/uorYhXmBKhqdvNq/j1Nb88LR9ti55Z7eecJNbyJb4OTtgzXQ==
-----END AGE ENCRYPTED FILE-----
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBOWNXQ1BsekdoS3BCdHA4
YTJJRHJBTEJ1bmhkWktSamYyRk1TUmovZ2trCnBXbUZQZFBndmU3VzJHVjczZGtY
ZkJDY3RzSEhXQVlLL0g1QTYxSC9CZGMKLS0tIGFBZnNlWmZjZFdkdGZvaHA5ZjMw
NFRtOFIybnFPWm1idFY0WEVqVGxOK1UKiJDByqKv/i/l9dvOplDyzDORU3ulhSwi
6xyEqmyNQpIkiS6TLZZYrBlQMDYqZ2gj1HhdIUssWJCf5Ho8KVDjJQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-10-18T15:55:58Z"
mac: ENC[AES256_GCM,data:vdVOTFlDD9jlGJksI5TDxk3stPkLY8lB6LMhV6QGqh9R2vaGuGGh6RZuR6AInq1Rm89innA6M1S2UUM6Jef1EKiPgq41neWMx/i3n7Ixx8FcraO/lgUYKG5yszYdjAlLQvKWqIbvX0bMYNwpF10FO5OyiXWiJrP9Om0Pjvk7dO8=,iv:W9I1nv0fKckNlNjJF0U4HlkyI5VDpvOGiSo0GeOODaY=,tag:RjkSTQYejyf1WO0LilbXYg==,type:str]
unencrypted_suffix: _unencrypted
version: 3.10.2

31
nixos/secrets/UGent.yaml Normal file
View file

@ -0,0 +1,31 @@
UGent:
GitHub:
ssh: ENC[AES256_GCM,data:J50bZHBhN1AT1mF0YpzAFvC4zYeXiIPLJsb4Bx2oqnwX8XlfL0xta7z9Y5CmLxBIxowpj2sLaAnElO1pbsGl8NCnERYvAAt0tpnF3ndozLKfqGPsBKnnc/s9CrZhcsCtoH23lMlVsYMJfVR3B1/0W1XeU+E/GpzBTaH0jkwpmE9+k/TdtPPqSqHvF47NS9lTDx9puHSFixNhxUE82/7wvKTrkGO6+SJXTELXqFM7IojwIHs9UrL2zIrMMRnSPwAiZ96UI4Cg2S18j610ZzX/aw1qODqL53ZfZ9HKurGxyEN58ehR4UhiGsHiml9Ged9UIHhpX3DtMCrwrZfAzGLDV4DxDGQRT8C/aCgOag5AtYJczivY8wA9CQpiTBBUlomUurjRtiSX4FdvZxZLTmY+DtnE/SblRNsAZUEu6DVcg+HUYgqWu+XgVhWyKCiEbKpw0Crl4O3e8evIZ8H7+o3ydQjSgjbIkNjtYGR6fH/8Hh1HOsdh9CDevhNh0TtD/KP7ahTEIeelm6A9ZaP92Bnga5aafKtjX0RBOv4u,iv:6YE94ihsaUkB9+c48ELvRiY8bgZvS0EoyP+l5AisW8o=,tag:NSMpky7GoxDkybFSCjJm3Q==,type:str]
HPC:
ssh: ENC[AES256_GCM,data:A4ir0yvCgIVJCl4C5fB4+WhJVj6Go9XWfjw1/lOaWr2rP+tVNnjGuv/d47z55Gxose5keYX2wRMet/M2Re18+5ckFTyfT4YkcHtQCyBGbmwYmIzxcaxinNsCuOelEdNnFnYW2ha0aJ8Q5Xjfpec1YqDrCT/Add3qGRzBizQJ1FajbyhxJOKLYvUrYvLZ8+XE8SUndvjQnVig3ArUm2hDFsEMm4ClZ4T+EwcIuWrS8ia7ZoqlQhglEtlSEczE65a6hQAFeXE64YC3s8kWlRGhRqJQXjB5g/UTkOht3Vrw2cNzrz90tR9vhooOEBEI6d8F8RJGkdyUe5zod1eKnE/lwOFhhTbzrGrYzX4oUrDIL+Dx9+R9mQchv9qSau1JtKDvzkYmqVVgTC6wE98gTRSBw78f0MKO27FA3diC/k3t+mwsKVRjcvlTUcbRcFAxjq/U5TbOq5jOgA41dI9KE/+bnJoLRh81m/sq9EqMTp90wDKn+jjCn7lGcGDwtaaTlbLIGIw5u9pcfD4UyvJZamnS96JAhsDUqk+fxb05,iv:jPCdaC7CahKrj3tvzZTs1ZI/3+zuCCqIdXp3vo9l/iY=,tag:DeUdWEZHpsB1AMD2AQuiTg==,type:str]
SubGit:
ssh: ENC[AES256_GCM,data:hJAle4DHJNvX569reclBG5rEdWsjAyV2TtHYMiPfky/dMKJkYgT4+T0doLfUn1O6at77kJGPmwUEvmK819DUuvHtNY7c6angV7iLygJ/ThI1FIFOKH+NxEsI3scoT0VDDybHpgice/fcJL1tMcvE74+dWOnZ2r4pxcMJEFHUPVVWcl9/stJLn78OonsyWpj8PglcnYFOfZ6THIe3lyNBxRp7XEweuwjacthGzOzNu3Z95zcCAnAokFVZ570glJNhjJVNEmPHZkHOcGiGNNM4JNbR11v+dOYtac942t/mmmWwAzbznuu8ZLupYWjdg/f07ftkPAwFwCoXblZ3708Lvf6uOt/CPeWvEII2Haf1Cr5w+U6TAt14zzL73xCSQqwz1TfkcmD+bJplmtcpSP/KX8/BRK7qr6Ec5T9ecbraRB7zDBg0X2x51DSHLrA7UIhpI9JNaOArU5UOVYTWwuzFiGG61elJMcPZ5vWEVrTCocfa4INPo4B2MkFbbsYf6xnY1L3Wc9LQjkff6aCqYnQaXZ/WfPWepf9YvYG1,iv:0Bm1r0FuJJKKmcbTiPL36rb5FaMZfOO7Mx8pXU2FSfg=,tag:0ShoJPJUx37mEAus+mhPmw==,type:str]
sops:
age:
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpb0dlWE5PNllnME1jQWE4
cHFzWkR4ZzNaWlR0WDJ4c1hEdlJGN0FISWlZCmNNdVRtL080QzgwQTZtTGpVRkxW
dkdvYXdQNUlhYWQrYlNDR2JISXdpdkkKLS0tIEpIU20rK3F3WGpBS1g3NmJqYWRX
SWlNbFZ0NTJJZ09Wd3JzK1hscjJoS2MK4GU8ndim80CaOjgvMwVlgIq/1VQIylSZ
EJl15zUFaDiDZUCcZE8TkJQ/rbGDSiq7KlWyFe48Q3UC86jfF88qCg==
-----END AGE ENCRYPTED FILE-----
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYNjkzeHloK3hKUTJaMTdr
NUdiZ2JGZitqN1k0WCtEODU4R2MrTmUzR1hrCmNJL0Y4ZEpLN0l6ZmhGWEM5UktG
ck1PUnFSSVNCRUd5Sm9kSXNmVW5jZDQKLS0tIHpHWVBVNFNBSlUvZldJVGowUEtZ
S05HZ0FiSVlkUjRRV01TbjlpVFlkQWcK7jAqOYd9EDT93xpVgtpKl03EO6oHmGRR
iK9j2y7j1YSghPKDBrC5eKy9+IP/EFEBGygcokqT7C6Nscu80YhVbg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-10-06T14:01:15Z"
mac: ENC[AES256_GCM,data:bWo5DGCt5cK02Lf61yKFDZLLaMmcWyba+03CZ35EnGz7Hoc1sl3qTmgJfNz8EKDeXTIkk33DdnI/kZ2nX7vsZ/QgOhFQWzWRYe1cxqiWyd0wnUlwdoeeFrBP3uOTHXAOVe6q77S3qChzBP3J+5OijztvdOVEOKFmFPSCgyA029Q=,iv:6DSp63IrtYyaFxkaify/JZDXpB76AaGGW/OcPTKBbvk=,tag:sPKddpcx60JFZ4VEGD1tnQ==,type:str]
unencrypted_suffix: _unencrypted
version: 3.10.2

View file

@ -0,0 +1,28 @@
GitHub:
ssh: ENC[AES256_GCM,data:jzRpTgefhZg7Vhm8QvWNsPBko1yw56sM/XehY72lAc7aRz+dx6BGgyYbZiifd7GrGJGUbH6gWfUg8YjgVla6VRsiHCEvSK3bY0ADDwTeSUs+wuybYXQZqhivSCInVtVSNAcp99uI1QwKor289zmxcFtSZEXgU1OCSel/8br+qipAbOkzAKX1v15eigjY4OSQxXL59EuuuHEQ+vjVVv95tDv03jaNAoU9UKr0Atrny/Fn2sQn4Tmec5Q1XdvDErKhSxrAFiACkxXUwPZMHez+BUZrmkksqpzNJjYNIlmsITuOVr7Fyen9wotAwsDf96Fmz5JYLtRX9CAboUgQLdUOKprwX/xgBnFtDTSH1Qr785T1QSAZL6xdE6hNibxZO3vGeeaPC3oGB5g9x5CwTQelMdOUPKdKorCDj226o56cTc/IQxUpsULbeOyi2pMGHiTHbiQBzHpxWyQ/gBktPkF25GOFeaCu3gW+xsspX91jSKudcYdBqWUNmJcdsfHfPxPM4cZtA/sVMyoA+YcehgU7GTu9DAlxDTug/JWo,iv:5shfzmrFFVEuaYmyTkBMAw9BIFFkKz0yl1dyJWxq6Y4=,tag:CX7TBJJXCKuIPSmg9/RpGg==,type:str]
Gitea:
ssh: ENC[AES256_GCM,data:8eyuycMkBVMHfzaGeGs+0RA4vCpaAUTjCwiplUamypEk9BDYqxe+69O6OjJAGaPnmH4kpsb/WVd5sU6HNUogBuzDQhCrv2B6NadcmnV+fH3MHfAWvDy7R68PUkwcywWVOo65SONckjKVa0Y+8IeeJh9zpr36qCbbs+zPC4XTk+Y5R4vK/ocmSJSmwqVK1SfGGwOjFoJvHVI6jdXh//vgKaITqmyZV7N3OU9EiQp1FmNKwFf/x70w2LGATrNBcexwNy20ZYd6ewiAfJxFHR6Svfc2P5X2nlv99W5t1eU5QEGUcalcslsW/VkmFC3agN3Yry2EMIlfTlm0hm4+ryDGWEvgyUC0dLA8Ao0TLaaqig9HzBRP1h6aORe0lDwzTUg6WltrIu0s7hFwD4YLi1qP5lY99hvrDIRbTEg6AY6X4b32YFlyOXy0YDetv90+QyEcwANWO9MXz2S9hxuQmjOXMCVYMaiMLVUkG+mShbQuxTiFQt/7D83yOBSRLugx/aU318NKvUDlCt7wpZbMI3gBia4nUYLoLcXRKcAZ,iv:uc1ZtGdcolLrpQgS5n5LEAwBt0vMmkj2OuTXcn8sQ7A=,tag:F2ofcj0zEBgxwukMUd7+uw==,type:str]
sops:
age:
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwSDRZQ0pVNWhmdFo1UDVv
MFlrZEFtNjlpZ3pBU0VrdkFpR2x4WGxUZ0RRClJad1JPYWhFTWd1N2ZKQWsrSjFj
YXREaGRrbE15MEdpblJtcTk2cFk1eGsKLS0tIHE2ZTd3R1gwQ3E1VzkvZTZoZjBW
aTRLcFJ6NkpJRjkyenVxeFRLVmgwMjQK47HRKyg1SxWABZHCdVdIaPEKoSiWIOO/
OYu/1owbUwTh1KouUb4tgNmVBOkERJ9i3lEjWLHUWrlCAUImc9dG4g==
-----END AGE ENCRYPTED FILE-----
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBVDZtU2g4dmFXTlNIMFBs
OFBpS2RXRzFwTVdJazQrSldwWUFtdCs0U1ZFCmxRdy9yY3VIWU4zenc4eVNEVUZv
VUlyT29JekNTS3RIMktmS2RGNU5GMTgKLS0tIEhvM2RkcUs0SE5uSXFxc3dvSXhP
WmViM05IMHFPckNic1hHY2ZlTEMrYkkK+66rYqbGQucqQch4Tx9jONR9OIXdjMUd
q/fGLCoSluHuCOkUWr/wUgvF5dWAHftYj9JjDB/9vpp4Q0WClLDszw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-10-19T12:24:38Z"
mac: ENC[AES256_GCM,data:g15gV0H0rlzoeN5Z/Zkgh/8ya9GSrWDVP9oqdVz3m4obmquCLDIygsPaYpRXmfOtPSgvX2KzZ08sNLfcBZSh7eH2Ws7xcezWOntOcmAQNz5LvemqP7YuwtivMK/P4qrkME+LQPkSrSUR+rT99Zj+RQXisy91Cq9NbVBj6uQH7+I=,iv:W+oDp5Dun0g35BFprOmgfI0LoPME3HpPuuniCKA32Kc=,tag:CUU74HZuRNedyI3txn9D+g==,type:str]
unencrypted_suffix: _unencrypted
version: 3.8.1

View file

@ -0,0 +1,34 @@
hello: ENC[AES256_GCM,data:Qs69AsC8Yz+2RWSMvZp3zw==,iv:9p9bf2MI0HFwPB5qu0nTy3riyE6xUqsdObaXv3vgs3c=,tag:fjwrOPR/2vIeNgPDEVI+LQ==,type:str]
example_key: ENC[AES256_GCM,data:JaknfPEPPtIotkwWpQ==,iv:OQy1S24scW0Ac9omkHg1HSCH6b7cClBMDH1GXZkzUBY=,tag:ItO6EdXKy4zOuZ2DROI+Tg==,type:str]
#ENC[AES256_GCM,data:Pok2Tcvryb59LmHDanq5/Q==,iv:Wl2nAb0X7s3bFeGeVUAHb+FMqrKHSJwwHulhdwhPkuE=,tag:YxicHwyrYLZZ6sFGNvkMMA==,type:comment]
example_array:
- ENC[AES256_GCM,data:ULZ3vixg/k1biadqhw8=,iv:7NMuh30RkiBGpXO/sd5WKzBggNnMZkV8eD16w39utd4=,tag:+ReYo3sQf2rgK0nTXAq1UA==,type:str]
- ENC[AES256_GCM,data:VawE9ClM28rRQPScWAM=,iv:XKiKDFGy6Io5gyp/FHLXIs7CpT41E6KAKHQmuZLRVHE=,tag:FSIdSnI/emPwHk0dQVT/TQ==,type:str]
example_number: ENC[AES256_GCM,data:yd6R8u2Nd5effA==,iv:7NO330iRkYO42a4AjBr5Ebv/nxx5J0/OpWKIqMTqdPQ=,tag:N/RK1+Q+QqnVPCkGPA1/AQ==,type:float]
example_booleans:
- ENC[AES256_GCM,data:Ul7fKA==,iv:U51FhTsWwkbhUWGsO8D+bl2mLdTIfapIB+OGJEOAiRA=,tag:9NJLKp8s2TSKLyXwM8OncA==,type:bool]
- ENC[AES256_GCM,data:LVU1a90=,iv:1X1qV+8iIe1i5hIrqyB3tJew9hsHjJHlATmkEmwRA0Y=,tag:ko/5OwmJH/6HKPsvbkoRpw==,type:bool]
sops:
age:
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4KzMrV2dpWFQyQUQyV050
elVhN0dUeTRodG1kNHZ0VEVmTUI1QjhidFJnClhJU0tVY0tmMkFaMDZkMDJOKzV1
NVJiSERtR0VZR3VBOGVJbGk3cUxTMzAKLS0tIGhvMmIyOWQwVlhXRzYwampTeG5V
UDVWQnE4NDY5cFF3RnpxcjhMY2N0VUUK+B24C0CT5b82DJSdKotX4iPhzWxnYsn6
kS7Ut9uy5OwcB+p6erlbLMEUVmmSNw89KBrowT0Ui1d3AfyGAN4rqQ==
-----END AGE ENCRYPTED FILE-----
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwTjh4NDRYZGM1VHRZWGor
MmhFWDNvMjI4UUVPbnorNnpabGNZY1BuMVdrCisvZ0U5SXRPM3IzNlZvZEpWZktz
b2FJemtNVHU0WUI4M0U1L2tWR3g1MEUKLS0tIGczTmVubzcwVjg5NDdQdEllWEFw
TWRIRE5WSGRCbncvWlpEMmdWOW5kb00Kq79O2C4aYmZmrq+rbyMtwmEqkqL9epn/
pw2dxXmYt95qu3x/BxjoN8RFZhabFp9xHkZ1kqJe9FGmBtAmoWXjWA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2023-09-10T20:20:18Z"
mac: ENC[AES256_GCM,data:yfmYEo8pdlG3tu4Fabwde57igIvpt4UuhQqStVlV36rvPnv9dc42+6iduu+heuQ2OAVw0jk6/o6SWJpcms2DReOAMGDOgt+zV3TgJym52YdMcjTNJTo+4loULhvaWyN9ZdPJjSYKEoSgOZi+oMx4BpwreQEaPaYUxcbTqrWCUa8=,iv:Mb81sBxibRxSaC2kgakhy2pyEmW0MDobF+lHF7cny5E=,tag:DCqTWSnf5Gv5YfAGSEC2yw==,type:str]
unencrypted_suffix: _unencrypted
version: 3.7.3

View file

@ -1,3 +0,0 @@
# created: 2023-04-11T14:44:53+02:00
# public key: age1q2gqur3t4fu8flsuu2zdnule37vdkh6egpt6a2e3ytx433x8gpvsr4hw6l
AGE-SECRET-KEY-10J7MWCWQQY33TVNMQ9AMH4TH5LULSVAZ539P9QG3NA2Z3LTMXAFS2QQ4NG

14
nixos/users/default.nix Normal file
View file

@ -0,0 +1,14 @@
{ config, lib, ... }:
{
imports = [
./tdpeuter
];
options.sisyphus.users.wantedGroups = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
example = [ config.users.groups.wheel.name ];
description = "Groups to which a user should be added";
};
}

View file

@ -0,0 +1,193 @@
{ config, inputs, lib, pkgs, pkgs-unstable, ... }:
let
cfg = config.sisyphus.users.tdpeuter;
user = config.users.users.tdpeuter.name;
installedPkgs = config.environment.systemPackages ++ config.home-manager.users.tdpeuter.home.packages;
cursor = {
package = pkgs.phinger-cursors;
name = "phinger-cursors-light";
size = 24;
};
in {
imports = [
./dotfiles.nix
./firefox.nix # Enables Firefox without setting options
./mail.nix # Enables Thunderbird without setting options
./secrets.nix
];
options.sisyphus.users.tdpeuter.enable = lib.mkEnableOption "user Tibo De Peuter";
config = lib.mkIf cfg.enable {
users.users.tdpeuter = {
description = "Tibo De Peuter";
isNormalUser = true;
extraGroups = config.sisyphus.users.wantedGroups ++ [
config.users.groups.input.name
config.users.groups.keys.name
config.users.groups.networkmanager.name
config.users.groups.wheel.name
];
initialPassword = "ChangeMe";
shell = pkgs.zsh;
packages = (with pkgs; [
bitwarden-desktop
brave # Internet browser
chafa # Terminal image viewer
cmdtime # Zsh plugin
duf # Df alternative
feishin # Jellyfin music client
foot
fzf
gh # GitHub CLI tool
glow # Terminal Markdown renderer
icosystem # Personal icon theme
jellyfin-media-player
libreoffice-fresh # Office tools
librewolf # Internet browser
mpv # Media player
nextcloud-client
nsxiv # Lightweight image viewer
qalculate-gtk # Calculator
spotify
spotify-adblock
unzip
vifm # File manager
zathura # PDF viewer
zellij # Tmux + screen alternative
zotero
zsh
zsh-autosuggestions
zsh-syntax-highlighting
# SMB
cifs-utils
psmisc
# Linters and LSPs
statix # Nix
# TODO Move to devshells
# ruff pylint # Python
]) ++ (with pkgs-unstable; [
logseq # Note taking
]) ++ [
inputs.zen-browser.packages.${pkgs.system}.default
];
};
fonts.packages = with pkgs; [
corefonts # Calibri for Uni
dejavu_fonts
font-awesome # Dependency of Vifm & zsh config
letter # Personal font
noto-fonts # Dependency of Zellij config
noto-fonts-cjk-sans # Dependency of Zellij config
noto-fonts-cjk-serif # Dependency of Zellij config
noto-fonts-emoji
noto-fonts-color-emoji # Emoji's!
vistafonts # Microsoft fonts
];
sisyphus = {
programs.spotify-adblock.enable = true;
services.remEYEnder.enable = true;
};
home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable {
programs.home-manager.enable = true;
home = {
username = user;
homeDirectory = "/home/${user}";
inherit (config.system) stateVersion;
# packages = (with pkgs; [
# ]) ++ (with pkgs-unstable; [
# ]);
pointerCursor = {
inherit (cursor) package name size;
gtk.enable = true;
};
};
# GNOME ricing
# Browse available settings by running:
# gsettings list-schemas | xargs -I % sh -c 'echo %; gsettings list-keys %' | less
dconf.settings = lib.mkIf config.sisyphus.desktop.gnome.enable {
"org/gnome/desktop/background" = {
picture-uri = "file:///home/tdpeuter/Nextcloud/Afbeeldingen/wallpapers/bg";
picture-uri-dark = "file:///home/tdpeuter/Nextcloud/Afbeeldingen/wallpapers/bg-dark";
};
"org/gnome/desktop/interface" = {
enable-animations = false;
enable-hot-corners = false;
};
"org/gnome/desktop/notifications" = {
show-in-lock-screen = false;
};
"org/gnome/desktop/peripherals.touchpad" = {
tap-to-click = true;
};
"org/gnome/mutter" = {
dynamic-workspaces = true;
workspaces-only-on-primary = false;
};
"org/gnome/shell/app-switcher" = {
current-workspace-only = true;
};
};
services.syncthing = {
enable = true;
extraOptions = [
"--no-default-folder"
];
tray.enable = true;
};
xdg = {
desktopEntries.spotify = {
name = "Spotify";
genericName = "Music Player";
icon = "spotify-client";
exec = "env LD_PRELOAD=${pkgs.spotify-adblock}/lib/libspotifyadblock.so spotify %U";
mimeType = [ "x-scheme-handler/spotify" ];
categories = [ "Audio" "Music" "Player" "AudioVideo" ];
settings = {
TryExec = "spotify";
StartupWMClass = "spotify";
};
};
mimeApps = {
enable = true;
defaultApplications = let
browser = "firefox.desktop";
image-viewer = "nsxiv.desktop";
pdf-viewer = "org.pwmt.zathura-pdf-mupdf.desktop";
in {
"application/pdf" = pdf-viewer;
"application/x-extension-htm" = browser;
"application/x-extension-html" = browser;
"application/x-extension-shtml" = browser;
"application/x-extension-xht" = browser;
"application/x-extension-xhtml" = browser;
"application/xhtml+xml" = browser;
"image/jpeg" = image-viewer;
"image/png" = image-viewer;
"image/webp" = image-viewer;
"text/html" = browser;
"x-scheme-handler/chrome" = browser;
"x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser;
};
};
};
};
};
}

View file

@ -0,0 +1,129 @@
{ config, lib, pkgs, pkgs-unstable, ... }:
# Does basically the same thing that stow does, but using Nix.
let
cfg = config.sisyphus.users.tdpeuter;
user = config.users.users.tdpeuter.name;
installedPkgs = config.environment.systemPackages ++ config.home-manager.users.tdpeuter.home.packages;
in {
config = lib.mkIf cfg.enable {
home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable {
home = {
file = lib.mkMerge [
{
".config/alacritty" = {
enable = false;
source = ../../../stow/alacritty/.config/alacritty;
};
".config/dunst" = {
enable = config.sisyphus.desktop.hyprland.enable || config.sisyphus.desktop.sway.enable;
source = ../../../stow/dunst/.config/dunst;
};
".config/foot" = {
recursive = true;
source = ../../../stow/foot/.config/foot;
};
".config/fuzzel" = {
recursive = true;
source = ../../../stow/fuzzel/.config/fuzzel;
};
".config/git" = {
recursive = true;
source = ../../../stow/git/.config/git;
};
".config/hypr" = {
inherit (config.sisyphus.desktop.hyprland) enable;
recursive = true;
source = ../../../stow/hyprland/.config/hypr;
};
".config/kitty" = {
enable = false;
recursive = true;
source = ../../../stow/kitty/.config/kitty;
};
".config/mako" = {
enable = false;
source = ../../../stow/mako/.config/mako;
};
".config/mpv" = {
source = ../../../stow/mpv/.config/mpv;
};
".config/OpenRGB" = {
inherit (config.sisyphus.services.openrgb) enable;
recursive = true;
source = ../../../stow/openrgb/.config/OpenRGB;
};
".config/sway" = {
inherit (config.sisyphus.desktop.sway) enable;
source = ../../../stow/sway/.config/sway;
};
".config/swayidle" = {
inherit (config.sisyphus.desktop.sway) enable;
source = ../../../stow/swayidle/.config/swayidle;
};
".config/swaylock" = {
enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable;
source = ../../../stow/swaylock/.config/swaylock;
};
".config/vifm" = {
recursive = true; # Fix history and all working
source = ../../../stow/vifm/.config/vifm;
};
".config/waybar" = {
enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable;
source = ../../../stow/waybar/.config/waybar;
};
".config/zellij" = {
source = ../../../stow/zellij/.config/zellij;
};
".gnupg" = {
inherit (config.programs.gnupg.agent) enable;
source = ../../../stow/gnupg/.gnupg;
recursive = true;
onChange = ''
chmod 700 /home/tdpeuter/.gnupg
# chmod 600 /home/tdpeuter/.gnupg/* # Already read-only?
'';
};
".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable {
inherit (config.sisyphus.programs.ssh) enable;
source = ../../../stow/ssh/.ssh/config;
};
".vim" = {
recursive = true;
source = ../../../stow/vim/.vim;
};
".vim/autoload/plug.vim" = {
source = "${pkgs.vimPlugins.vim-plug}/plug.vim";
};
".vimrc" = {
source = ../../../stow/vim/.vimrc;
};
}
(lib.mkIf (config.users.users.tdpeuter.shell == pkgs.zsh) {
".oh-my-zsh" = {
source = "${pkgs.oh-my-zsh}/share/oh-my-zsh";
recursive = true;
};
".oh-my-zsh/themes/tdpeuter.zsh-theme" = {
source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme;
};
".zshrc" = {
source = ../../../stow/zsh/.zshrc;
};
".zsh/plugins/cmdtime/cmdtime.plugin.zsh" = {
source = "${pkgs.cmdtime}/share/cmdtime/cmdtime.plugin.zsh";
};
".zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" = {
source = "${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh";
};
".zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" = {
source = "${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh";
};
})
];
};
};
};
}

View file

@ -0,0 +1,118 @@
{ config, lib, pkgs, pkgs-unstable, ... }:
let
cfg = config.sisyphus.users.tdpeuter;
user = config.users.users.tdpeuter.name;
in {
config = lib.mkIf cfg.enable {
home-manager.users.tdpeuter.programs.firefox = lib.mkIf config.sisyphus.programs.home-manager.enable {
enable = true;
package = pkgs-unstable.firefox.override {
cfg = {
speechSynthesisSupport = true; # Allow Text-to-speech in e.g. Discord
};
nativeMessagingHosts = with pkgs; [
tridactyl-native
];
# https://mozilla.github.io/policy-templates/
extraPolicies = {
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
FirefoxHome = {
SponsoredTopSites = false;
SponsoredPocket = false;
};
OfferToSaveLogins = false;
# https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265
ExtensionSettings = {
"amazon@search.mozilla.org".installation_mode = "blocked";
"google@search.mozilla.org".installation_mode = "blocked";
};
# Anything in about:config
Preferences = let
falseLocked = {
Value = false;
Status = "falseLocked";
};
in {
"browser.newtabpage.activity-stream.showSponsoredCheckboxes" = falseLocked;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = falseLocked;
"browser.newtabpage.pinned" = {
Value = "[]";
Status = "default";
};
"services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.showSponsoredTopSites" = falseLocked;
};
};
# Support smart cards
pkcs11Modules = with pkgs-unstable; [
eid-mw
];
};
languagePacks = [
"en-GB"
"nl"
];
profiles.tdpeuter.search= {
default = "ddg"; # Reference by id instead of by name
force = true;
engines = {
"bing".metaData.hidden = true;
"ebay".metaData.hidden = true;
"GitHub" = {
urls = [{
template = "https://github.com/search";
params = [
{ name = "q"; value = "{searchTerms}"; }
{ name = "type"; value = "repositories"; }
];
}];
icon = "${pkgs.icosystem}/share/icons/icosystem/scalable/apps/github-mark.svg";
definedAliases = [ "@gh" ];
};
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"NixOS Options" = {
urls = [{
template = "https://search.nixos.org/options";
params = [
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@no" ];
};
"Google Scholar" = {
urls = [{
template = "https://scholar.google.ch/scholar";
params = [
{ name = "q"; value = "{searchTerms}"; }
];
}];
definedAliases = [ "@gs" ];
};
};
};
};
};
}

View file

@ -0,0 +1,143 @@
{ config, lib, pkgs, pkgs-unstable, ... }:
let
cfg = config.sisyphus.users.tdpeuter;
user = config.users.users.tdpeuter.name;
signatures = {
default = ''
Met vriendelijke groeten
Tibo De Peuter
'';
english = ''
Kind regards
Tibo De Peuter
'';
academic = ''
Met vriendelijke groeten
Tibo De Peuter
Student Ma Informatica
'';
alias = ''
Kind regards
MrFortem Fiducia
'';
};
in {
config = lib.mkIf cfg.enable {
home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable {
accounts.email.accounts = {
Telenet = {
address = "tibo.depeuter@telenet.be";
userName = "tibo.depeuter@telenet.be";
imap = {
host = "imap.telenet.be";
port = 993;
tls.enable = true;
};
smtp = {
host = "smtp.telenet.be";
port = 587;
tls = {
enable = true;
useStartTls = true;
};
};
realName = config.users.users.tdpeuter.description;
signature = {
showSignature = "append";
text = signatures.default;
};
primary = true;
thunderbird = {
enable = true;
settings = id: {
"mail.identity.id_${id}.htmlSigText" = signatures.default;
};
};
};
UGent = {
flavor = "outlook.office365.com";
address = "tibo.depeuter@ugent.be";
realName = config.users.users.tdpeuter.description;
signature = {
showSignature = "append";
text = signatures.academic;
};
thunderbird = {
enable = true;
settings = id: {
"mail.server.server_${id}.authMethod" = 10;
"mail.smtpserver.smtp_${id}.authMethod" = 10;
"mail.identity.id_${id}.htmlSigText" = signatures.academic;
# Allow PGP
"mail.identity.id_${id}.openpgp_key_id" = "9B11F5243089DB5B"; # Your 'master' key
"mail.identity.id_${id}.attachPgpKey" = true;
};
};
};
Gmail = {
flavor = "gmail.com";
address = "tibo.depeuter@gmail.com";
realName = config.users.users.tdpeuter.description;
signature = {
showSignature = "append";
text = signatures.default;
};
thunderbird = {
enable = true;
settings = id: {
"mail.identity.id_${id}.htmlSigText" = signatures.default;
};
};
};
MrFortem = {
flavor = "gmail.com";
address = "fortemfiducia@gmail.com";
realName = "Fortem Fiducia";
signature = {
showSignature = "append";
text = signatures.MrFortem;
};
thunderbird = {
enable = true;
settings = id: {
"mail.server.server_${id}.directory" = ".thunderbird/tdpeuter/ImapMail/imap.gmail.com-mrfortem";
"mail.server.server_${id}.directory-rel" = "[ProfD]ImapMail/imap.gmail.com-mrfortem";
"mail.identity.id_${id}.htmlSigText" = signatures.alias;
};
};
};
};
programs = {
thunderbird = {
enable = true;
profiles.tdpeuter = {
isDefault = true;
settings = {
# View
"mailnews.default_sort_order" = 2; # Sort descending
"mailnews.mark_message_read.delay" = true;
"mailnews.start_page.enabled" = false;
"mail.pane_config.dynamic" = 2; # Vertical view
# Encryption
"mail.openpgp.allow_external_gnupg" = true; # Enable YubiKey GPG signing
"mail.e2ee.auto_enable" = true; # Automatically enable encryption when possible.
};
};
};
};
};
};
}

View file

@ -0,0 +1,48 @@
{ config, lib, pkgs, pkgs-unstable, ... }:
let
cfg = config.sisyphus.users.tdpeuter;
user = config.users.users.tdpeuter.name;
in {
config = lib.mkIf cfg.enable {
sops.secrets = lib.mkIf config.sisyphus.programs.sops.enable (
let
HomeLab = {
format = "yaml";
sopsFile = ../../secrets/HomeLab.yaml;
owner = user;
};
personal = {
format = "yaml";
sopsFile = ../../secrets/personal.yaml;
owner = user;
};
UGent = {
format = "yaml";
sopsFile = ../../secrets/UGent.yaml;
owner = user;
};
in {
"UGent/HPC/ssh" = UGent;
# Git authentication
"Gitea/ssh" = personal;
"GitHub/ssh" = personal;
"UGent/GitHub/ssh" = UGent;
"UGent/SubGit/ssh" = UGent;
# HomeLab
# Physical hosts
"HomeLab/Hugo/ssh" = HomeLab;
"HomeLab/Roxanne/ghost/ssh" = HomeLab;
"HomeLab/HTPC/ssh" = HomeLab;
# Virtual hosts
"HomeLab/Gitea/ssh" = HomeLab;
"HomeLab/Nextcloud/ssh" = HomeLab;
"HomeLab/Vaultwarden/ssh" = HomeLab;
"HomeLab/NixOS/admin/ssh" = HomeLab;
});
};
}

View file

@ -2,8 +2,10 @@
# Show system status in notification, or your own message
# Syntaxis: notify [-vb] [-t <timeout>] [-p <value>] [<title> <message>]
# Requirements:
# Requirements/dependencies:
# - amixer
# - brightnessctl
# - libnotify (notify-send)
panic () {
>&2 echo "Syntaxis: notify [-vb] [-t <timeout>] [-p <value>] [<title> <message>]"
@ -21,14 +23,14 @@ while getopts ":bvt:p:" options; do
v)
# Get volume (don't use pamixer because that is way slower)
value=$( pactl get-sink-volume @DEFAULT_SINK@ \
| cut -d '/' -f2 \
| grep -o '[0-9]*%' \
| tr -d '%' )
| tr -d '%' \
| head -n1 )
title="Volume: ${value}%"
category='sysinfo'
# If audio disabled, set value to zero.
if [ "$( pactl get-sink-mute @DEFAULT_SINK@ )" == "Mute: yes" ] ; then
if [ "$( pactl get-sink-mute @DEFAULT_SINK@ | grep -o '\(yes\|no\)' | head -n1 )" == 'yes' ] ; then
title="Volume: ${value}% (Disabled)"
value=0
fi

Some files were not shown because too many files have changed in this diff Show more