Compare commits

...

222 Commits

Author SHA1 Message Date
b3d4865101 update flake 2025-09-03 02:06:01 -04:00
bf7fef3181 Add license 2025-09-03 01:53:22 -04:00
fbe6dbf84a Add blocktube extension, license-templates Emacs package, wireguard VPN 2025-09-02 22:53:15 -04:00
6b71bb213e NixOS: add wireguard-tools 2025-08-28 19:33:29 -04:00
dc5ea719d7 Emacs: add evil-surround 2025-08-28 19:32:32 -04:00
adbaed8256 Firefox config changes, add openutau 2025-08-28 19:31:26 -04:00
e603322c45 Emacs relative line numbers 2025-08-24 04:39:02 -04:00
4ad87a9d0a Emacs config tweaks 2025-08-24 04:21:26 -04:00
2b0334fdc0 Update flake 2025-08-24 01:20:59 -04:00
ee5ba9db09 Disable touchpad zoom in Firefox 2025-08-23 22:06:06 -04:00
6228e9e269 Update flake 2025-08-16 12:22:34 -04:00
f643fe7cd5 Remove Enhancer for YouTube, it is unsupported 2025-08-14 01:31:56 -04:00
d0e26059f0 Update flake 2025-08-14 01:18:47 -04:00
f6adac8cf0 Remove some whitespace in flake.nix 2025-08-04 14:16:45 -04:00
8630ff4f3d Fix some build issues 2025-07-30 17:00:46 -04:00
52620a1de0 Update flake 2025-07-30 17:00:15 -04:00
6fa3538630 Enable ibuffer-auto-mode in Emacs 2025-07-30 14:03:45 -04:00
26d52eadcc Add user-filters back on uBlock settings to enable block element shortcut in context menu 2025-07-30 13:55:18 -04:00
ee86571afd Update flake 2025-07-29 11:46:20 -04:00
c1d9b5360e Git signing, Firefox add-on config 2025-07-29 11:38:37 -04:00
cf065675a7 Update flake 2025-07-19 14:15:50 -04:00
5f2c3d241e Show full URLs in Firefox, corfu config in Emacs 2025-07-16 12:37:44 -04:00
5f30d3e55f Force Firefox extensions due to rebuild failing 2025-07-14 03:25:11 -04:00
5ee7cd1462 Update flake, add Nix category to emacs ibuffer 2025-07-13 19:55:36 -04:00
54dcfeac2f Update flake 2025-07-13 19:32:03 -04:00
ab0cdd972b Add Plasma back to desktop, add proton tool 2025-07-13 19:27:38 -04:00
64fdf478e9 Update flake 2025-07-06 20:04:48 -04:00
612cfd7b6b Addition: dolphin to desktop config 2025-06-30 00:50:32 -04:00
7564f7be9e Edit nix generation count and Emacs config 2025-06-29 19:17:39 -04:00
b7b846007d Emacs: add nerd-icons-corfu 2025-06-27 01:35:29 -04:00
7b35b606a6 Update flake 2025-06-27 01:16:15 -04:00
cb7d690890 Update Emacs config 2025-06-27 01:03:48 -04:00
e58a33b54e Edit Emacs config, LaTeX, fonts 2025-06-26 03:20:22 -04:00
dc4cf7fd77 Add texliveSmall 2025-06-25 14:36:18 -04:00
c0dea56d8b hypridle config 2025-06-25 03:09:22 -04:00
eb08f3dee0 Change mako notification location 2025-06-25 02:40:17 -04:00
29ac4e123d add fzf 2025-06-24 21:31:16 -04:00
a9d2a5d224 Fix: sddm config 2025-06-24 13:16:41 -04:00
064172db50 waybar hacking again 2025-06-24 13:04:44 -04:00
1969fd1e14 Refactoring, added amdgpu to initrd modules 2025-06-24 12:48:07 -04:00
f4dd67085e git config 2025-06-24 11:28:42 -04:00
975677f962 waybar hacking 2025-06-24 02:25:59 -04:00
5e047a7d97 Hyprland and waybar hacking 2025-06-24 02:13:55 -04:00
b7ffcf5ec6 Specify sddm package as requested by build error 2025-06-23 16:06:19 -04:00
ea5c6db82f Added plasma module, disable plasma on ichigo 2025-06-23 15:59:37 -04:00
3e98345789 Disable hyprland on ichigo, environment variable changes to clean up ~ 2025-06-23 12:59:22 -04:00
2c31aba8c8 Uncomment bash config, remove twitter extension 2025-06-23 09:45:10 -04:00
a654e76961 Merge branch 'main' of https://git.traphouse.cathoderaytube.net/chase/nix-config 2025-06-23 09:44:32 -04:00
98ef961f8e Update flake 2025-06-23 09:44:13 -04:00
ac010bad8c Update flake 2025-06-23 09:39:26 -04:00
29a785b79c Update flake 2025-06-22 17:38:48 -04:00
cc2a427add Update flake 2025-06-21 17:12:04 -04:00
f1e5c6c527 Add linkwarden extension 2025-06-20 13:46:41 -04:00
86db6c447b 241 current 2025-06-17 11:20:12 25.11.20250607.3e3afe5 6.15.1 * 2025-06-17 11:20:29 -04:00
4046dcbb48 Add README for Home Manager 2025-06-17 06:15:26 +00:00
b435373a83 Added source to details of wallpaper file 2025-06-17 02:11:47 -04:00
ae8269816d Remove wallpaper file 2025-06-17 02:10:16 -04:00
cac7ef8482 Merge branch 'main' of https://git.traphouse.cathoderaytube.net/chase/nix-config 2025-06-17 02:07:10 -04:00
65fd7498d7 239 current 2025-06-16 16:46:57 25.11.20250607.3e3afe5 6.15.1 * 2025-06-16 16:47:09 -04:00
2fead2a1f8 238 current 2025-06-13 16:21:57 25.11.20250607.3e3afe5 6.15.1 * 2025-06-13 16:22:08 -04:00
b6416eecc7 Emacs config fixes 2025-06-13 16:16:09 -04:00
bb55528d60 More emacs config tweaks 2025-06-13 15:45:45 -04:00
796808a38a Edit emacs config 2025-06-13 15:23:08 -04:00
963e2b1294 Edit emacs config for better terminal support 2025-06-13 12:15:34 -04:00
51f0e96488 232 current 2025-06-13 02:38:33 25.11.20250607.3e3afe5 6.15.1 * 2025-06-13 02:38:51 -04:00
9dde449cdd 231 current 2025-06-13 02:34:41 25.11.20250607.3e3afe5 6.15.1 * 2025-06-13 02:35:00 -04:00
ce888c4527 230 current 2025-06-13 02:20:57 25.11.20250607.3e3afe5 6.15.1 * 2025-06-13 02:21:16 -04:00
c7bb70d901 229 current 2025-06-13 01:27:52 25.11.20250607.3e3afe5 6.15.1 * 2025-06-13 01:28:13 -04:00
8153599c99 Update secrets 2025-06-13 01:11:51 -04:00
dad74bcb36 227 current 2025-06-13 01:09:57 25.11.20250607.3e3afe5 6.15.1 * 2025-06-13 01:10:19 -04:00
53b357bae9 Add host key for kuromi 2025-06-13 01:01:27 -04:00
c9a41ac3ef Merge branch 'main' of https://git.traphouse.cathoderaytube.net/chase/nix-config 2025-06-13 00:36:45 -04:00
33c00528c2 Added zsh 2025-06-13 00:34:31 -04:00
3b64c033f1 31 current 2025-06-11 23:47:12 25.11.20250607.3e3afe5 6.15.1 * 2025-06-11 23:47:16 -04:00
d6e2dca8cb 30 current 2025-06-11 19:49:28 25.11.20250607.3e3afe5 6.15.1 * 2025-06-11 19:49:32 -04:00
76c7e69572 Refactor: ichigo smb config 2025-06-10 23:39:02 -04:00
3c470b9a1b Update secrets config 2025-06-10 22:34:22 -04:00
d2608f594e Secureboot stuff 2025-06-10 15:24:04 -04:00
f2b4c60bad Add secureboot stuff 2025-06-10 15:10:43 -04:00
9cdee2278d 223 current 2025-06-10 04:12:06 25.11.20250607.3e3afe5 6.15.1 * 2025-06-10 04:12:15 -04:00
7a11a8beae 222 current 2025-06-10 04:03:49 25.11.20250607.3e3afe5 6.15.1 * 2025-06-10 04:03:58 -04:00
af7bab5ed9 221 current 2025-06-10 03:07:59 25.11.20250607.3e3afe5 6.15.1 * 2025-06-10 03:08:09 -04:00
a527dfd0c4 add brightnessctl 2025-06-10 00:41:20 -04:00
23a0839019 add helvum 2025-06-10 00:14:24 -04:00
69bf951f13 Add lm_sensors 2025-06-09 23:23:42 -04:00
de76251c18 Add waybar stuff 2025-06-09 23:04:23 -04:00
18a2072070 Add rofi-wayland 2025-06-09 22:06:57 -04:00
8a769e3ed1 restore auto-generated hyprland config 2025-06-09 21:17:37 -04:00
e778577c57 fix: hyprlock formatting 2025-06-09 19:37:08 -04:00
c428ff985d edit hyprland config 2025-06-09 19:27:30 -04:00
45109c95b5 Enable adb globally, add kvm group 2025-06-09 16:21:17 -04:00
eeb7ab6f83 Add adb udev rules, groups, edit flymake config 2025-06-09 16:07:24 -04:00
279e97d215 Add TPM2 support 2025-06-09 12:41:32 -04:00
3a84898308 Add Yubikey tools 2025-06-09 01:39:08 -04:00
30455c8709 Update flake 2025-06-09 00:31:42 -04:00
bb1ec1cbce Fix: smb-credentials 2025-06-08 15:45:47 -04:00
27cf08d271 Fix: update secrets.yaml with correct keys 2025-06-08 15:07:07 -04:00
4a81ea1e0c Fix public key for anzu 2025-06-08 15:02:46 -04:00
eaf4b88ee2 Fix: formatting 2025-06-08 14:52:21 -04:00
1988d45fbf Improve secrets management with sops-nix 2025-06-08 14:49:47 -04:00
034b693380 197 current 2025-06-08 13:39:35 25.11.20250605.d3d2d80 6.15.1 * 2025-06-08 13:39:47 -04:00
40b59c2cf6 Remove ghostty, add kitty shortcut, add mpv sponsorblock 2025-06-08 12:37:37 -04:00
053a6c744f Removed ranger, configure yt-dlp 2025-06-08 12:36:35 -04:00
2d365c49ab 195 current 2025-06-08 01:02:01 25.11.20250605.d3d2d80 6.15.1 * 2025-06-08 01:02:12 -04:00
572c5987b2 Merge branch 'main' of https://git.traphouse.cathoderaytube.net/chase/nix-config 2025-06-08 00:38:21 -04:00
6bdee3b1cf Add new host kuromi and modularized hyprland 2025-06-08 00:34:17 -04:00
7abb2ddfdc 194 current 2025-06-07 17:21:41 25.11.20250605.d3d2d80 6.15.1 * 2025-06-07 17:21:57 -04:00
b8bde251fd Remove table of contents 2025-06-07 04:13:53 -04:00
73bc4eaeb2 update README 2025-06-07 04:12:06 -04:00
1ada9392b6 Add README.org 2025-06-07 04:10:23 -04:00
7b790129b7 192 current 2025-06-07 03:55:43 25.11.20250605.d3d2d80 6.15.1 * 2025-06-07 03:55:52 -04:00
02df8ea982 Update flake, add modified nixswitch script nixupdate to update flake and rebuild 2025-06-07 03:44:09 -04:00
23f1665665 190 current 2025-06-06 23:28:12 25.11.20250605.d3d2d80 6.15.1 * 2025-06-06 23:28:21 -04:00
e9dec5a032 Refactoring, changed repo name from "nixos-config" to "nix-config" 2025-06-06 23:05:16 -04:00
40bcf42094 188 current 2025-06-06 18:54:16 25.11.20250605.d3d2d80 6.15.1 * 2025-06-06 18:55:41 -04:00
66c4d33550 187 current 2025-06-05 18:59:10 25.11.20250531.910796c 6.15.0 * 2025-06-05 18:59:18 -04:00
c174acb2c8 186 current 2025-06-05 13:46:21 25.11.20250531.910796c 6.15.0 * 2025-06-05 13:46:38 -04:00
0af891a4aa 185 current 2025-06-05 13:38:09 25.11.20250531.910796c 6.15.0 * 2025-06-05 13:38:25 -04:00
b7a4ea44de 184 current 2025-06-05 13:30:13 25.11.20250531.910796c 6.15.0 * 2025-06-05 13:30:30 -04:00
2bd4c041b4 183 current 2025-06-05 13:16:42 25.11.20250531.910796c 6.15.0 * 2025-06-05 13:16:58 -04:00
2c443ffaa1 182 current 2025-06-05 03:13:00 25.11.20250531.910796c 6.15.0 * 2025-06-05 03:13:10 -04:00
4e55dfb0da 181 current 2025-06-05 01:25:19 25.11.20250531.910796c 6.15.0 * 2025-06-05 01:25:28 -04:00
3781a419d7 180 current 2025-06-04 17:03:11 25.11.20250531.910796c 6.15.0 * 2025-06-04 17:03:27 -04:00
72200503dd 179 current 2025-06-04 15:50:22 25.11.20250531.910796c 6.15.0 * 2025-06-04 15:50:39 -04:00
7aa46e4b5a 178 current 2025-06-04 15:44:26 25.11.20250531.910796c 6.15.0 * 2025-06-04 15:44:42 -04:00
e3507e9373 177 current 2025-06-04 15:33:25 25.11.20250531.910796c 6.15.0 * 2025-06-04 15:33:41 -04:00
fb9939ef57 176 current 2025-06-04 15:25:48 25.11.20250531.910796c 6.15.0 * 2025-06-04 15:27:46 -04:00
e4e318f501 175 current 2025-06-04 00:10:37 25.11.20250531.910796c 6.15.0 * 2025-06-04 00:10:47 -04:00
e8fb5f33a2 174 current 2025-06-03 23:25:14 25.11.20250531.910796c 6.15.0 * 2025-06-03 23:25:23 -04:00
820027b666 173 current 2025-06-03 19:23:18 25.11.20250531.910796c 6.15.0 * 2025-06-03 19:23:27 -04:00
8c4700ef14 Catppuccin config 2025-06-03 19:18:49 -04:00
e691f57878 171 current 2025-06-03 18:14:20 25.11.20250531.910796c 6.15.0 * 2025-06-03 18:14:28 -04:00
b60a833fe4 Edited nixos rebuild script 2025-06-03 18:09:44 -04:00
d880599c2d 169 current 2025-06-03 17:46:07 25.11.20250531.910796c 6.15.0 * 2025-06-03 17:46:15 -04:00
d2ee3bd961 168 current 2025-06-03 17:35:23 25.11.20250531.910796c 6.15.0 * 2025-06-03 17:43:42 -04:00
5cadb58c81 Catppuccin KDE theme 2025-06-03 17:34:43 -04:00
e00a52d660 167 current 2025-06-03 17:30:50 25.11.20250531.910796c 6.15.0 * 2025-06-03 17:30:59 -04:00
54744cee49 166 current 2025-06-03 17:12:23 25.11.20250531.910796c 6.15.0 * 2025-06-03 17:12:32 -04:00
ceca5e1f18 165 current 2025-06-03 17:09:24 25.11.20250531.910796c 6.15.0 * 2025-06-03 17:09:32 -04:00
09a7793d2e 164 current 2025-06-03 16:37:19 25.11.20250531.910796c 6.15.0 * 2025-06-03 16:37:28 -04:00
267b6a155b edit rmpc 2025-06-03 16:07:21 -04:00
18bede01bd Edit mpd-discord-rpc config 2025-06-03 15:59:25 -04:00
b0bfbf51b1 fix typo 2025-06-03 15:42:26 -04:00
0165bd9af6 add arrpc 2025-06-03 15:25:36 -04:00
5fdd7f104c Add mpd-discord-rpc 2025-06-03 14:46:36 -04:00
f20bd94cc3 159 current 2025-06-03 07:02:37 25.11.20250531.910796c 6.15.0 * 2025-06-03 07:02:52 -04:00
72c1f204ff 158 current 2025-06-03 06:53:41 25.11.20250531.910796c 6.15.0 * 2025-06-03 07:00:52 -04:00
45f52123ad 158 current 2025-06-03 06:53:41 25.11.20250531.910796c 6.15.0 * 2025-06-03 06:59:37 -04:00
7f822cdc94 158 current 2025-06-03 06:53:41 25.11.20250531.910796c 6.15.0 * 2025-06-03 06:53:58 -04:00
923ef537b8 157 current 2025-06-03 06:49:04 25.11.20250531.910796c 6.15.0 * 2025-06-03 06:49:19 -04:00
3d8429c12e 156 current 2025-06-03 06:47:10 25.11.20250531.910796c 6.15.0 * 2025-06-03 06:47:25 -04:00
5554cd85a8 155 current 2025-06-03 06:38:22 25.11.20250531.910796c 6.15.0 * 2025-06-03 06:38:37 -04:00
afd81e18b6 154 current 2025-06-03 06:31:57 25.11.20250531.910796c 6.15.0 * 2025-06-03 06:32:11 -04:00
9cd21b6574 153 current 2025-06-03 06:28:00 25.11.20250531.910796c 6.15.0 * 2025-06-03 06:28:15 -04:00
cddb5a623c 152 current 2025-06-03 06:18:00 25.11.20250531.910796c 6.15.0 * 2025-06-03 06:18:14 -04:00
3e9ce6bd6c 151 current 2025-06-03 06:15:11 25.11.20250531.910796c 6.15.0 * 2025-06-03 06:15:25 -04:00
76456ed033 150 current 2025-06-03 05:57:41 25.11.20250531.910796c 6.15.0 * 2025-06-03 06:14:24 -04:00
b3d3767912 150 current 2025-06-03 05:57:41 25.11.20250531.910796c 6.15.0 * 2025-06-03 06:13:18 -04:00
f7393d1a94 add powerline-go 2025-06-03 05:56:52 -04:00
ed262deb9c 149 current 2025-06-03 05:13:04 25.11.20250531.910796c 6.15.0 * 2025-06-03 05:13:18 -04:00
27b933b014 148 current 2025-06-03 05:10:21 25.11.20250531.910796c 6.15.0 * 2025-06-03 05:10:35 -04:00
b8a0e4c563 Commented out polkit line 2025-06-03 04:53:45 -04:00
6e2130c986 typo 2025-06-03 04:48:25 -04:00
ff5693263b Thinning 2025-06-03 04:46:33 -04:00
3d60f7c462 145 current 2025-06-03 04:32:37 25.11.20250531.910796c 6.15.0 * 2025-06-03 04:32:52 -04:00
74a69941ac Update flake.lock 2025-06-03 04:26:28 -04:00
e8f4bdf156 emacsclient tweaks 2025-06-03 04:18:11 -04:00
380bed59a3 Config fixes 2025-06-03 04:09:58 -04:00
81ae432c3d 142 current 2025-06-02 19:04:45 25.11.20250528.96ec055 6.15.0 * 2025-06-02 19:04:52 -04:00
9161fa65f9 141 current 2025-06-02 19:01:13 25.11.20250528.96ec055 6.15.0 * 2025-06-02 19:01:20 -04:00
6332a15891 Disable helm, add nix lsp 2025-06-02 18:53:21 -04:00
eedb4ddc45 Add nixd configuration 2025-06-02 18:37:47 -04:00
f8050dcf03 Formatting 2025-06-02 16:00:12 -04:00
ce2a59cda4 Fixed typo 2025-06-02 15:51:29 -04:00
200bc2966b Merge branch 'main' of https://git.traphouse.cathoderaytube.net/chase/nixos-config 2025-06-02 15:48:07 -04:00
50a4ac9e9f Added nixd and alejandra, moved emacs config 2025-06-02 15:44:48 -04:00
704c29f6d9 Added vcv rack 2025-06-01 14:14:54 -04:00
bf081f0d28 136 current 2025-05-31 10:43:52 25.11.20250528.96ec055 6.15.0 * 2025-05-31 10:43:58 -04:00
c6d60abe1e 135 current 2025-05-31 01:34:25 25.11.20250528.96ec055 6.15.0 * 2025-05-31 01:34:32 -04:00
2cf0655a58 Add wallpaper and tweak sddm config 2025-05-30 21:54:03 -04:00
43f05897e8 133 current 2025-05-30 19:13:26 25.11.20250528.96ec055 6.15.0 * 2025-05-30 19:13:33 -04:00
2bf5a9a189 132 current 2025-05-30 00:40:53 25.11.20250527.4faa5f5 6.15.0 * 2025-05-30 19:06:59 -04:00
9e6dfa14a7 132 current 2025-05-30 00:40:53 25.11.20250527.4faa5f5 6.15.0 * 2025-05-30 16:26:02 -04:00
e2207d6356 132 current 2025-05-30 00:40:53 25.11.20250527.4faa5f5 6.15.0 * 2025-05-30 16:18:35 -04:00
e352cb9cda Add catppuccin 2025-05-30 16:17:12 -04:00
01448035dd 132 current 2025-05-30 00:40:53 25.11.20250527.4faa5f5 6.15.0 * 2025-05-30 00:41:06 -04:00
c19b9311dd Added picard 2025-05-29 16:21:59 -04:00
3e58f22dff 130 current 2025-05-29 14:48:58 25.11.20250527.4faa5f5 6.15.0 * 2025-05-29 14:49:04 -04:00
d1bd8025c7 129 current 2025-05-29 14:34:43 25.11.20250527.4faa5f5 6.15.0 * 2025-05-29 14:44:29 -04:00
b74cfc1b8f 129 current 2025-05-29 14:34:43 25.11.20250527.4faa5f5 6.15.0 * 2025-05-29 14:43:23 -04:00
98dba270c0 129 current 2025-05-29 14:34:43 25.11.20250527.4faa5f5 6.15.0 * 2025-05-29 14:34:49 -04:00
34f690a0c8 128 current 2025-05-29 14:22:44 25.11.20250527.4faa5f5 6.15.0 * 2025-05-29 14:33:24 -04:00
a6a39ac41b 128 current 2025-05-29 14:22:44 25.11.20250527.4faa5f5 6.15.0 * 2025-05-29 14:22:50 -04:00
c9f11ebe3a 127 current 2025-05-28 23:53:05 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 23:53:11 -04:00
e5b9c994e5 126 current 2025-05-28 23:32:46 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 23:32:52 -04:00
b0e9334d9c 125 current 2025-05-28 23:26:36 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 23:26:42 -04:00
44b92a93d9 124 current 2025-05-28 23:10:48 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 23:10:53 -04:00
4546568c1c 123 current 2025-05-28 23:08:59 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 23:09:05 -04:00
55522ef1a1 122 current 2025-05-28 23:04:29 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 23:04:35 -04:00
899d2f4a43 121 current 2025-05-28 23:00:34 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 23:00:40 -04:00
0f5baea79b 120 current 2025-05-28 22:58:07 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 22:58:12 -04:00
d14929980f 119 current 2025-05-28 22:40:15 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 22:40:21 -04:00
c76b9cc1c4 118 current 2025-05-28 22:34:32 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 22:34:38 -04:00
91cb949210 117 current 2025-05-28 22:12:38 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 22:28:25 -04:00
c61c949102 117 current 2025-05-28 22:12:38 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 22:27:43 -04:00
92200c7120 117 current 2025-05-28 22:12:38 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 22:25:10 -04:00
0cb3c0de65 117 current 2025-05-28 22:12:38 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 22:24:08 -04:00
8cd920aa93 117 current 2025-05-28 22:12:38 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 22:12:44 -04:00
0c46968d37 116 current 2025-05-28 22:10:51 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 22:10:57 -04:00
44ba0a6d5c Started working on rebuild script 2025-05-28 22:06:29 -04:00
5e03459f6e 114 current 2025-05-28 21:39:52 25.11.20250527.4faa5f5 6.15.0 * 2025-05-28 22:01:07 -04:00
4c95bb57b4 Enabled autoscroll in Firefox 2025-05-28 21:38:58 -04:00
5853078930 Edit kitty theme 2025-05-28 17:02:13 -04:00
2f49b097af Add kitty 2025-05-28 16:58:58 -04:00
3a154ce2ff Update rmpc config 2025-05-28 16:52:09 -04:00
31258d2d4e Update rmpc config 2025-05-28 16:51:22 -04:00
e7ee91059c Add ueberzugpp 2025-05-28 16:42:39 -04:00
e5def1b6a5 Added rmpc 2025-05-28 16:37:49 -04:00
00bf6048ba ncmpcpp config updates 2025-05-28 16:21:59 -04:00
3bf1ee4552 Add smb share to anzu, will manage secrets better later 2025-05-28 15:48:49 -04:00
70a90cf707 Updated flake.lock, added bash history ignore 2025-05-28 15:17:12 -04:00
2fd8b4c0bf Added flashrom and logiops 2025-05-28 14:52:40 -04:00
34 changed files with 2446 additions and 754 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
nixos-switch.log

15
.sops.yaml Normal file
View File

@@ -0,0 +1,15 @@
keys:
- &users:
- &chase age19uwxm2gynhjl9m90gckrkh76m9hjut44ak6d8969y4swhz8ypyeqvfcaas
- &hosts:
- &anzu age1wdjujpvc2zd0g592a9gqa7qzz4pcans8m0tyq3m6eq9np9a3lg2s8kxf3h
- &ichigo age1hpcyetyl0yrwxy0geem6z2u2kwl4hmckur7pnaaxwaylf8ata9vsv8j3wh
- &kuromi age1culqt965xgweu5h6menrppf7eatq7at04z0n52t365f0nvlv043su5t2yl
creation_rules:
- path_regex: secrets.yaml$
key_groups:
- age:
- *chase
- *anzu
- *ichigo
- *kuromi

21
LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 chase
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

17
README.org Normal file
View File

@@ -0,0 +1,17 @@
#+TITLE: Nix Config Repository
#+AUTHOR: chase
#+LANGUAGE: en
#+OPTIONS: toc:nil
Welcome to my Nix config repository!
Here you can find my config files. I have only been using NixOS since April 2025, so
this is probably not that great of a reference.
* Some Resources That Have Inspired This Config
- https://nixos-and-flakes.thiscute.world/
- https://github.com/kaleocheng/nix-dots/tree/master
- https://gist.github.com/0atman/1a5133b842f929ba4c1e195ee67599d5
- https://github.com/woioeow/hyprland-dotfiles/tree/main
- https://github.com/HeinzDev/Hyprland-dotfiles

View File

@@ -1,248 +0,0 @@
{ config, pkgs, lib, inputs, ... }:
{
# Bootloader.
boot.loader.systemd-boot = {
enable = true;
configurationLimit = 10;
};
boot.loader.efi.canTouchEfiVariables = true;
# Garbage collection
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 1w";
};
# Optimize store
nix.settings.auto-optimise-store = true;
# Use latest stable kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
# Allow power management
powerManagement.enable = true;
# Firmware updates
services.fwupd.enable = true;
# Enable networking
networking.networkmanager.enable = true;
# Enable Bluetooth
hardware.bluetooth.enable = true;
# Set your time zone.
time.timeZone = "America/New_York";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
# Enable the KDE Plasma Desktop Environment.
services.xserver.enable = true;
services.displayManager.sddm = {
wayland.enable = true;
enableHidpi = true;
};
services.desktopManager.plasma6.enable = true;
# Hyprland
programs.hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
};
# Enable graphics acceleration and AMDVLK
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [
amdvlk
];
extraPackages32 = with pkgs; [
driversi686Linux.amdvlk
];
};
# Configure keymap
console.keyMap = "jp106";
services.xserver.xkb = {
layout = "jp";
variant = "";
};
i18n.inputMethod = {
type = "fcitx5";
enable = true;
fcitx5.addons = with pkgs; [
fcitx5-mozc
kdePackages.fcitx5-qt
];
fcitx5.waylandFrontend = true;
};
# Fonts
fonts.packages = with pkgs; [
ibm-plex
liberation_ttf
nerd-fonts.blex-mono
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
];
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Enable Flakes
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Bash config
programs.bash = {
blesh.enable = true;
};
# Define a user account
users.users.chase = {
isNormalUser = true;
description = "Chase";
extraGroups = [ "networkmanager" "wheel" ];
};
# Install firefox
programs.firefox = {
enable = true;
nativeMessagingHosts.packages = [ pkgs.firefoxpwa ];
policies = {
DisableTelemetry = true;
DisableFirefoxAccounts = true;
DisableFirefoxStudies = true;
DisablePocket = true;
};
};
# Install git and enable cache
programs.git = {
enable = true;
config = {
init = {
defaultBranch = "main";
};
credential = {
helper = "cache --timeout 21600";
};
};
};
# Install Neovim
programs.neovim = {
enable = true;
defaultEditor = true;
configure = {
customRC = ''
set autoindent
set number relativenumber
set tabstop=4
colorscheme catppuccin-mocha
'';
packages.myVimPackage = with pkgs.vimPlugins; {
start = [ catppuccin-nvim ];
};
};
viAlias = true;
vimAlias = true;
};
# Install Steam
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
};
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
bitwarden-cli
bitwarden-desktop
cifs-utils
emacs-pgtk
firefoxpwa
gcc
# nerd-fonts.blex-mono
pciutils
python3
qemu
rustup
usbutils
wget
];
# ssh agent
# programs.mtr.enable = true;
programs.gnupg.agent.enable = true;
programs.ssh = {
enableAskPassword = false;
};
# List services that you want to enable:
services.fprintd.enable = true;
security.polkit.enable = true;
# Enable the OpenSSH daemon.
services.openssh = {
enable = true;
settings = {
PasswordAuthentication = false;
KbdInteractiveAuthentication = false;
};
};
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# 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. It's 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 = "24.11"; # Did you read the comment?
}

415
flake.lock generated
View File

@@ -20,11 +20,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1745357003, "lastModified": 1755946532,
"narHash": "sha256-jYwzQkv1r7HN/4qrAuKp+NR4YYNp2xDrOX5O9YVqkWo=", "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "a19cf76ee1a15c1c12083fa372747ce46387289f", "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -33,7 +33,56 @@
"type": "github" "type": "github"
} }
}, },
"catppuccin": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1756741629,
"narHash": "sha256-n+mgH3NoQf8d1jd8cDp/9Mt++hhyuE3LO3ZAxzjWRZw=",
"owner": "catppuccin",
"repo": "nix",
"rev": "cd22197da06df1eb6fabdaa2fc22c170c4f67382",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "nix",
"type": "github"
}
},
"crane": {
"locked": {
"lastModified": 1731098351,
"narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=",
"owner": "ipetkov",
"repo": "crane",
"rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"flake-compat": { "flake-compat": {
"flake": false,
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1696426674,
@@ -50,6 +99,27 @@
} }
}, },
"flake-parts": { "flake-parts": {
"inputs": {
"nixpkgs-lib": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nur", "nur",
@@ -92,6 +162,28 @@
"type": "github" "type": "github"
} }
}, },
"gitignore_2": {
"inputs": {
"nixpkgs": [
"lanzaboote",
"pre-commit-hooks-nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -99,15 +191,37 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747565775, "lastModified": 1756842514,
"narHash": "sha256-B6jmKHUEX1jxxcdoYHl7RVaeohtAVup8o3nuVkzkloA=", "narHash": "sha256-XbtRMewPGJwTNhBC4pnBu3w/xT1XejvB0HfohC2Kga8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "97118a310eb8e13bc1b9b12d67267e55b7bee6c8", "rev": "30fc1b532645a21e157b6e33e3f8b4c154f86382",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "master",
"repo": "home-manager",
"type": "github"
}
},
"home-manager-stable": {
"inputs": {
"nixpkgs": [
"nixpkgs-stable"
]
},
"locked": {
"lastModified": 1756679287,
"narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
@@ -128,11 +242,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1745948457, "lastModified": 1753964049,
"narHash": "sha256-lzTV10FJTCGNtMdgW5YAhCAqezeAzKOd/97HbQK8GTU=", "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprcursor", "repo": "hyprcursor",
"rev": "ac903e80b33ba6a88df83d02232483d99f327573", "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -157,11 +271,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1745015490, "lastModified": 1755678602,
"narHash": "sha256-apEJ9zoSzmslhJ2vOKFcXTMZLUFYzh1ghfB6Rbw3Low=", "narHash": "sha256-uEC5O/NIUNs1zmc1aH1+G3GRACbODjk2iS0ET5hXtuk=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprgraphics", "repo": "hyprgraphics",
"rev": "60754910946b4e2dc1377b967b7156cb989c5873", "rev": "157cc52065a104fc3b8fa542ae648b992421d1c7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -180,17 +294,17 @@
"hyprlang": "hyprlang", "hyprlang": "hyprlang",
"hyprutils": "hyprutils", "hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"systems": "systems", "systems": "systems",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1747610850, "lastModified": 1756811803,
"narHash": "sha256-b41pc9J8b9fxRFHBQRKoTXZHpAsKW5eJbNsTMris2Mo=", "narHash": "sha256-03zmDvAU+VLPWHv5uxfGVR6bs/SnCYeZ8hbedK/Eb/M=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "eb3b38d40baca5c05ddbc1507b3d3f02a0ccb164", "rev": "127aab815908ecbd3db4d23f127d2e96b79855f9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -211,11 +325,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1743714874, "lastModified": 1749046714,
"narHash": "sha256-yt8F7NhMFCFHUHy/lNjH/pjZyIDFNk52Q4tivQ31WFo=", "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-protocols", "repo": "hyprland-protocols",
"rev": "3a5c2bda1c1a4e55cc1330c782547695a93f05b2", "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -243,11 +357,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737634706, "lastModified": 1749154592,
"narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=", "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-qt-support", "repo": "hyprland-qt-support",
"rev": "8810df502cdee755993cb803eba7b23f189db795", "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -279,11 +393,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1745951494, "lastModified": 1753819801,
"narHash": "sha256-2dModE32doiyQMmd6EDAQeZnz+5LOs6KXyE0qX76WIg=", "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-qtutils", "repo": "hyprland-qtutils",
"rev": "4be1d324faf8d6e82c2be9f8510d299984dfdd2e", "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -308,11 +422,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1746655412, "lastModified": 1753622892,
"narHash": "sha256-kVQ0bHVtX6baYxRWWIh4u3LNJZb9Zcm2xBeDPOGz5BY=", "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprlang", "repo": "hyprlang",
"rev": "557241780c179cf7ef224df392f8e67dab6cef83", "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -333,11 +447,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1746635225, "lastModified": 1756117388,
"narHash": "sha256-W9G9bb0zRYDBRseHbVez0J8qVpD5QbizX67H/vsudhM=", "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "674ea57373f08b7609ce93baff131117a0dfe70d", "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -358,11 +472,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1739870480, "lastModified": 1755184602,
"narHash": "sha256-SiDN5BGxa/1hAsqhgJsS03C3t2QrLgBT8u+ENJ0Qzwc=", "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwayland-scanner", "repo": "hyprwayland-scanner",
"rev": "206367a08dc5ac4ba7ad31bdca391d098082e64b", "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -371,13 +485,39 @@
"type": "github" "type": "github"
} }
}, },
"lanzaboote": {
"inputs": {
"crane": "crane",
"flake-compat": "flake-compat_2",
"flake-parts": "flake-parts",
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1737639419,
"narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=",
"owner": "nix-community",
"repo": "lanzaboote",
"rev": "a65905a09e2c43ff63be8c0e86a93712361f871e",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "v0.4.2",
"repo": "lanzaboote",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1747327360, "lastModified": 1756266583,
"narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=", "narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e06158e58f3adee28b139e9c2bcfcc41f8625b46", "rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -387,13 +527,61 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1747542820, "lastModified": 1730741070,
"narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1756754095,
"narHash": "sha256-9Rsn9XEWINExosFkKEqdp8EI6Mujr1gmQiyrEcts2ls=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7c815e513adbf03c9098b2bd230c1e0525c8a7f9",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1756266583,
"narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1756787288,
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -405,18 +593,17 @@
}, },
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ]
"treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1747676902, "lastModified": 1756875847,
"narHash": "sha256-jksy3fqyf4zUPIrAL8RFIHEECXITHtsyV9hp0VHmlLY=", "narHash": "sha256-2L4kOvvCDUDBBBliCNiEXrYN0VqqkB0YHuOGckpp5X8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "d4ae72a58d239b565c34323f9f02aac91901f9c7", "rev": "bffccde9bd7869ab355b76d53fbc25ac1f7d37eb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -425,6 +612,29 @@
"type": "github" "type": "github"
} }
}, },
"plasma-manager": {
"inputs": {
"home-manager": [
"home-manager"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1756632588,
"narHash": "sha256-ydam6eggXf3ZwRutyCABwSbMAlX+5lW6w1SVZQ+kfSo=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "d47428e5390d6a5a8f764808a4db15929347cd77",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "plasma-manager",
"type": "github"
}
},
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@@ -435,11 +645,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747372754, "lastModified": 1755960406,
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", "narHash": "sha256-RF7j6C1TmSTK9tYWO6CdEMtg6XZaUKcvZwOCD2SICZs=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", "rev": "e891a93b193fcaf2fc8012d890dc7f0befe86ec2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -448,12 +658,86 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks-nix": {
"inputs": {
"flake-compat": [
"lanzaboote",
"flake-compat"
],
"gitignore": "gitignore_2",
"nixpkgs": [
"lanzaboote",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1731363552,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"catppuccin": "catppuccin",
"home-manager": "home-manager", "home-manager": "home-manager",
"home-manager-stable": "home-manager-stable",
"hyprland": "hyprland", "hyprland": "hyprland",
"nixpkgs": "nixpkgs_2", "lanzaboote": "lanzaboote",
"nur": "nur" "nixpkgs": "nixpkgs_3",
"nixpkgs-stable": "nixpkgs-stable_2",
"nur": "nur",
"plasma-manager": "plasma-manager",
"sops-nix": "sops-nix"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731897198,
"narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "0be641045af6d8666c11c2c40e45ffc9667839b5",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"sops-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1754988908,
"narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
"type": "github"
},
"original": {
"owner": "Mic92",
"repo": "sops-nix",
"type": "github"
} }
}, },
"systems": { "systems": {
@@ -471,27 +755,6 @@
"type": "github" "type": "github"
} }
}, },
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"xdph": { "xdph": {
"inputs": { "inputs": {
"hyprland-protocols": [ "hyprland-protocols": [
@@ -520,11 +783,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1745871725, "lastModified": 1755354946,
"narHash": "sha256-M24SNc2flblWGXFkGQfqSlEOzAGZnMc9QG3GH4K/KbE=", "narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "76bbf1a6b1378e4ab5230bad00ad04bc287c969e", "rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0",
"type": "github" "type": "github"
}, },
"original": { "original": {

156
flake.nix
View File

@@ -1,56 +1,128 @@
{ {
description = "A simple NixOS flake"; description = "SecureBoot-enabled NixOS config";
inputs = { inputs = {
# NixOS official package source, using the nixos-24.11 branch here
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nur = { nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05";
url = "github:nix-community/NUR"; home-manager = {
inputs.nixpkgs.follows = "nixpkgs"; url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs";
}; };
home-manager = { home-manager-stable = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs-stable";
};
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.2";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
catppuccin.url = "github:catppuccin/nix";
hyprland.url = "github:hyprwm/Hyprland";
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
}; };
hyprland.url = "github:hyprwm/Hyprland";
}; };
outputs = { self, nixpkgs, nur, home-manager, ... }@inputs: { outputs = {
self,
catppuccin,
lanzaboote,
nur,
plasma-manager,
sops-nix,
...
} @ inputs: let
hosts = import ./hosts/hosts.nix;
# Make config for non-NixOS hosts
mkHomeConfiguration = {
host,
nixpkgs,
home-manager,
modules ? [],
}:
home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
system = host.arch;
config = {
allowUnfree = true;
};
overlays = [
nur.overlay
];
};
modules =
[
./hosts/${host.dir}/home.nix
catppuccin.homeModules.catppuccin
sops-nix.homeManagerModules.sops
]
++ modules;
};
# Make config for NixOS hosts
mkNixOSConfigurations = {
host,
nixpkgs,
home-manager,
modules ? [],
}:
nixpkgs.lib.nixosSystem {
system = host.arch;
specialArgs = {inherit inputs;};
modules =
[
./hosts/${host.dir}/configuration.nix
nur.modules.nixos.default
catppuccin.nixosModules.catppuccin
sops-nix.nixosModules.sops
home-manager.nixosModules.home-manager
{
home-manager.backupFileExtension = "backup";
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.sharedModules = [
plasma-manager.homeManagerModules.plasma-manager
sops-nix.homeManagerModules.sops
];
home-manager.users."${host.user}".imports = [
./hosts/${host.dir}/home.nix
catppuccin.homeModules.catppuccin
];
}
]
++ modules;
};
in {
# Please replace my-nixos with your hostname # Please replace my-nixos with your hostname
nixosConfigurations = { nixosConfigurations = {
anzu = nixpkgs.lib.nixosSystem { anzu = mkNixOSConfigurations {
system = "x86_64-linux"; host = hosts.anzu;
specialArgs = { inherit inputs; }; nixpkgs = inputs.nixpkgs;
modules = [ home-manager = inputs.home-manager;
# Import the previous configuration.nix we used, modules = [lanzaboote.nixosModules.lanzaboote];
# so the old configuration file still takes effect
./configuration.nix
./hosts/anzu/hardware-configuration.nix
# Add NUR overlay
nur.modules.nixos.default
# Add home-manager
home-manager.nixosModules.home-manager
{
home-manager.backupFileExtension = "backup";
home-manager.useGlobalPkgs = true;
home-manager.users.chase = ./home/home.nix;
}
];
}; };
ichigo = nixpkgs.lib.nixosSystem { ichigo = mkNixOSConfigurations {
system = "x86_64-linux"; host = hosts.ichigo;
specialArgs = { inherit inputs; }; nixpkgs = inputs.nixpkgs;
modules = [ home-manager = inputs.home-manager;
./configuration.nix modules = [];
./hosts/ichigo/hardware-configuration.nix };
nur.modules.nixos.default kuromi = mkNixOSConfigurations {
home-manager.nixosModules.home-manager host = hosts.kuromi;
{ nixpkgs = inputs.nixpkgs-stable;
home-manager.backupFileExtension = "backup"; home-manager = inputs.home-manager-stable;
home-manager.useGlobalPkgs = true; modules = [];
home-manager.users.chase = ./home/home.nix;
}
];
}; };
}; };
}; };

7
home/README.org Normal file
View File

@@ -0,0 +1,7 @@
#+TITLE: Home Manager Config
#+AUTHOR: chase
#+LANGUAGE: en
#+OPTIONS: toc:nil
* Wallpaper Source
https://x.com/allwifeman/status/1513766332252098562

243
home/base.nix Normal file
View File

@@ -0,0 +1,243 @@
{
config,
lib,
pkgs,
...
}: {
home = {
username = "chase";
homeDirectory = "/home/chase";
preferXdgDirectories = true;
file = {
"scripts" = {
source = config.lib.file.mkOutOfStoreSymlink ./scripts;
recursive = true;
};
};
sessionPath = [
"$HOME/scripts"
];
sessionVariables = {
# Aspell stuff
ASPELL_CONF = "per-conf $XDG_CONFIG_HOME/aspell/aspell.conf; personal $XDG_DATA_HOME/aspell/en.pws; repl $XDG_DATA_HOME/aspell/en.prepl";
# Bitwarden stuff
BITWARDEN_SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/.bitwarden-ssh-agent.sock";
SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/.bitwarden-ssh-agent.sock";
ELECTRON_OZONE_PLATFORM_HINT = "wayland";
# Java stuff
_JAVA_OPTIONS = "-Djava.util.prefs.userRoot='$XDG_CONFIG_HOME'/java";
# libx11 stuff
XCOMPOSECACHE = "$XDG_CACHE_HOME/X11/xcompose";
XCOMPOSEFILE = "$XDG_CONFIG_HOME/X11/xcompose";
};
shellAliases = {
gs = "git status";
"..." = "cd ../..";
};
};
xdg = {
enable = true;
userDirs.enable = true;
configFile = {
"emacs/early-init.el" = {
source = config.lib.file.mkOutOfStoreSymlink ./emacs/early-init.el;
};
"emacs/init.el" = {
source = config.lib.file.mkOutOfStoreSymlink ./emacs/init.el;
};
};
};
catppuccin = {
enable = true;
flavor = "mocha";
};
programs.bash = {
enable = true;
enableCompletion = true;
historyIgnore = [
"ls"
"ls -a"
"ls -l"
"ls -la"
"cd"
"exit"
];
};
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
history = {
append = true;
extended = true;
ignoreDups = true;
ignorePatterns = [
"ls *"
"cd *"
"gs"
"exit"
];
};
syntaxHighlighting.enable = true;
};
programs.bat.enable = true;
programs.btop.enable = true;
programs.emacs = {
enable = true;
package = lib.mkDefault pkgs.emacs-nox;
};
programs.fastfetch = {
enable = true;
settings = {
logo = {
source = "nixos_small";
};
display = {
size = {
binaryPrefix = "si";
};
color = "blue";
separator = ": ";
};
modules = [
"title"
"separator"
"os"
"host"
"uptime"
"kernel"
"packages"
"lm"
"de"
"wm"
"shell"
"terminal"
"terminalfont"
{
key = "Display";
type = "display";
}
"cpu"
"gpu"
"memory"
"swap"
"disk"
"datetime"
"colors"
"break"
"player"
"media"
];
};
};
programs.fzf = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
};
programs.git = {
enable = true;
userName = "chase";
userEmail = "chase@cathoderaytube.net";
extraConfig = {
init.defaultBranch = "main";
pull.rebase = true;
};
signing = {
format = "ssh";
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFSQX+s8Krl312DcnUtoEWOA2silcUnt5URtyVZz8Yek";
signByDefault = true;
};
};
programs.git-credential-oauth.enable = true;
programs.gpg = {
enable = true;
homedir = "${config.xdg.dataHome}/gnupg";
};
programs.htop.enable = true;
programs.rmpc = {
enable = true;
config = ''
(
enable_config_hot_reload: true,
)
'';
};
programs.starship = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
settings = {
line_break = {
disabled = true;
};
username = {
style_user = "bold blue";
format = "[$user]($style)@";
show_always = true;
};
hostname = {
style = "bold cyan";
format = "[$ssh_symbol$hostname]($style) ";
ssh_only = false;
};
directory = {
style = "bold green";
};
};
};
programs.yazi = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
};
programs.yt-dlp = {
enable = true;
settings = {
cookies-from-browser = "firefox";
write-description = true;
write-info-json = true;
embed-info-json = true;
embed-chapters = true;
embed-metadata = true;
write-subs = true;
embed-subs = true;
sub-langs = "en.*,ja";
write-thumbnail = true;
embed-thumbnail = true;
sponsorblock-mark = "all";
};
};
home.packages = with pkgs; [
aspell
aspellDicts.en
aspellDicts.en-computers
aspellDicts.en-science
ffmpeg
font-awesome
fortune
imagemagick
lm_sensors
lolcat
nerd-fonts.blex-mono
texliveFull
];
}

278
home/desktop.nix Normal file
View File

@@ -0,0 +1,278 @@
{
config,
pkgs,
...
}: {
imports = [
./base.nix
];
programs.emacs = {
enable = true;
package = pkgs.emacs-pgtk;
};
programs.firefox = {
enable = true;
nativeMessagingHosts = [pkgs.firefoxpwa];
profiles = {
default = {
id = 0;
name = "default";
isDefault = true;
containers = {
personal = {
color = "purple";
icon = "fingerprint";
id = 1;
};
work = {
color = "orange";
icon = "briefcase";
id = 2;
};
social = {
color = "blue";
icon = "chill";
id = 3;
};
dev = {
color = "green";
icon = "circle";
id = 4;
};
};
containersForce = true;
extensions = {
force = true;
packages = with pkgs.nur.repos.rycee.firefox-addons; [
awesome-rss
betterttv
bitwarden
blocktube
facebook-container
flagfox
hyperchat
istilldontcareaboutcookies
linkwarden
livetl
return-youtube-dislikes
search-by-image
sponsorblock
tab-session-manager
tampermonkey
ublock-origin
windscribe
ytcfilter
];
settings = {
"uBlock0@raymondhill.net" = {
force = true;
settings = {
selectedFilterLists = [
"ublock-filters"
"ublock-badware"
"ublock-privacy"
"ublock-unbreak"
"ublock-quick-fixes"
"easylist"
"easyprivacy"
"urlhaus-1"
"plowe-0"
"fanboy-cookiemonster"
"ublock-cookies-easylist"
"adguard-cookies"
"ublock-cookies-adguard"
"ublock-annoyances"
"https://git.traphouse.cathoderaytube.net/chase/ublock-filters/raw/branch/main/chase-all.txt"
"user-filters"
];
importedLists = [
"https://git.traphouse.cathoderaytube.net/chase/ublock-filters/raw/branch/main/chase-all.txt"
];
};
};
"Tab-Session-Manager@sienori" = {
settings = {
"startupBehavior" = ["previousSession"];
"Settings" = {
"startupBehavior" = "previousSession";
"openButtonBehavior" = "openInCurrentWindow";
};
};
};
};
};
settings = {
"apz.gtk.touchpad_pinch.enabled" = false;
"browser.formfill.enable" = false;
"browser.ml.chat.enabled" = false;
"browser.ml.chat.shortcuts" = false;
"browser.ml.chat.sidebar" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.feeds.snippets" = false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = false;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.activity-stream.system.showSponsored" = false;
"browser.topsites.contile.enabled" = false;
"browser.urlbar.trimURLs" = false;
"browser.urlbar.unitConversion.enabled" = true;
"dom.security.https_only_mode" = true;
"extensions.formautofill.addresses.enabled" = false;
"extensions.formautofill.creditCards.enabled" = false;
"extensions.pocket.enabled" = false;
"general.autoScroll" = true;
"permissions.default.geo" = 2;
"privacy.bounceTrackingProtection.mode" = 1;
"privacy.fingerprintingProtection" = true;
"privacy.trackingprotection.consentmanager.skip.pbmode.enabled" = false;
"privacy.trackingprotection.emailtracking.enabled" = true;
"privacy.trackingprotection.enabled" = true;
"privacy.trackingprotection.socialtracking.enabled" = true;
"signon.rememberSignons" = false;
"widget.use-xdg-desktop-portal.file-picker" = 1;
};
search = {
force = true;
default = "SearX";
order = ["SearX" "google"];
engines = {
"MELPA" = {
urls = [
{
template = "https://melpa.org/#/?q={searchTerms}";
}
];
definedAliases = ["@m"];
};
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages?channel=unstable";
params = [
{
name = "type";
value = "packages";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["@np"];
};
"SearX" = {
urls = [{template = "https://searx.traphouse.cathoderaytube.net/?q={searchTerms}";}];
definedAliases = ["@searx"];
};
"bing".metaData.hidden = true;
};
};
};
};
};
programs.kitty = {
enable = true;
enableGitIntegration = true;
shellIntegration = {
enableBashIntegration = true;
enableZshIntegration = true;
};
font = {
name = "BlexMono Nerd Font";
size = 11;
};
};
programs.mpv = {
enable = true;
config = {
profile = "gpu-hq";
ytdl-format = "bestvideo+bestaudio";
};
scripts = [
pkgs.mpvScripts.mpris
pkgs.mpvScripts.sponsorblock
];
};
programs.obs-studio.enable = true;
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
};
home.packages = with pkgs; [
anki-bin
gimp
ibm-plex
kdePackages.kdenlive
libnotify
libreoffice
logiops
openutau
picard
protonmail-bridge
(pkgs.python3.withPackages (python-pkgs: [
python-pkgs.python-lsp-server
python-pkgs.python-lsp-ruff
]))
runelite
thunderbird
vcv-rack
waybar
waybar-mpris
];
services.arrpc.enable = true;
services.emacs = {
enable = true;
client = {
enable = true;
arguments = [
"-c"
"-a ''"
"-n"
];
};
defaultEditor = true;
};
services.mpd = {
enable = true;
extraConfig = ''
audio_output {
type "pipewire"
name "Pipewire Output"
}
'';
musicDirectory = "/mnt/share/media/music";
};
services.mpd-discord-rpc = {
enable = true;
settings = {
hosts = ["localhost:6600"];
format = {
details = "$track - $title [$duration]";
state = "$artist / $album ($date)";
timestamp = "elapsed";
};
};
};
services.mpd-mpris = {
enable = true;
mpd.useLocal = true;
};
}

View File

@@ -29,7 +29,10 @@
(setq load-prefer-newer t) (setq load-prefer-newer t)
;; load path ;; load path
(add-to-list 'load-path "~/.emacs.d/work/") ;; (add-to-list 'load-path "~/.emacs.d/work/")
;; set emacs directory
(setq user-emacs-directory "~/.config/emacs")
;; set & load custom file ;; set & load custom file
(setq custom-file (expand-file-name "custom.el" user-emacs-directory)) (setq custom-file (expand-file-name "custom.el" user-emacs-directory))
@@ -37,7 +40,7 @@
(load custom-file)) (load custom-file))
;; backup directory instead of loose files ;; backup directory instead of loose files
(setq backup-directory-alist '(("." . "~/.emacs.d/backups"))) (setq backup-directory-alist '(("." . (expand-file-name "backups/" user-emacs-directory))))
(setq backup-by-copying t) (setq backup-by-copying t)
;; defer package initialize ;; defer package initialize
@@ -46,11 +49,6 @@
;; prevent resizing of the frame ;; prevent resizing of the frame
(setq frame-inhibit-implied-resize t) (setq frame-inhibit-implied-resize t)
;; no bars
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
;; no startup screen ;; no startup screen
(setq inhibit-startup-screen t) (setq inhibit-startup-screen t)

View File

@@ -3,6 +3,10 @@
;;; Commentary: ;;; Commentary:
;;; Code: ;;; Code:
;; Check Emacs version and warn if it is not supported
(when (and (<= emacs-major-version 29) (< emacs-minor-version 4))
(warn (format "This config is designed for Emacs 29+, please upgrade.")))
;; display startup time ;; display startup time
(defun chase/display-startup-time () (defun chase/display-startup-time ()
"Write init time and number of garbage collections to message buffer." "Write init time and number of garbage collections to message buffer."
@@ -11,17 +15,22 @@
(add-hook 'emacs-startup-hook #'chase/display-startup-time) (add-hook 'emacs-startup-hook #'chase/display-startup-time)
;; set repos and bootstrap use-package ;; automatically create missing directories
;; (require 'package) ;; source: https://emacsredux.com/blog/2022/06/12/auto-create-missing-directories/
(defun er-auto-create-missing-dirs ()
"Create missing parent directories automatically when opening a file."
(let ((target-dir (file-name-directory buffer-file-name)))
(unless (file-exists-p target-dir)
(make-directory target-dir t))))
;; (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (add-to-list 'find-file-not-found-functions #'er-auto-create-missing-dirs)
;; (package-initialize) ;; no bars
(add-hook 'window-setup-hook (lambda ()
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)))
;; (eval-when-compile
;; (require 'use-package))
;;
;; bootstrap straight ;; bootstrap straight
(defvar bootstrap-version) (defvar bootstrap-version)
(let ((bootstrap-file (let ((bootstrap-file
@@ -41,13 +50,10 @@
(setq straight-use-package-by-default t) (setq straight-use-package-by-default t)
;; always install missing packages
;; (require 'use-package-ensure)
;; (setq use-package-always-ensure t)
(setq use-package-always-demand t (setq use-package-always-demand t
use-package-compute-statistics t) use-package-compute-statistics t)
(require 'bind-key) (use-package bind-key)
(use-package diminish) (use-package diminish)
@@ -56,16 +62,6 @@
:config :config
(add-hook 'after-init-hook #'benchmark-init/deactivate)) (add-hook 'after-init-hook #'benchmark-init/deactivate))
;; auto-update packages
;; (use-package auto-package-update
;; :custom
;; (setq auto-package-update-delete-old-versions t
;; auto-package-update-hide-results t
;; auto-package-update-interval 7)
;; :config
;; (auto-package-update-maybe)
;; (auto-package-update-at-time "09:30"))
;; set locale ;; set locale
(set-language-environment "UTF-8") (set-language-environment "UTF-8")
(prefer-coding-system 'utf-8-unix) (prefer-coding-system 'utf-8-unix)
@@ -116,6 +112,26 @@
:config :config
(evil-collection-init)) (evil-collection-init))
(use-package evil-surround
:config
(global-evil-surround-mode 1))
(use-package vertico
:custom
(vertico-cycle t)
:init
(vertico-mode))
(use-package savehist
:init
(savehist-mode))
(use-package orderless
:custom
(completion-styles '(orderless basic))
(completion-category-defaults nil)
(completion-category-overrides '((file (styles partial-completion)))))
;; prevent laggy icons ;; prevent laggy icons
(setq inhibit-compacting-font-caches t) (setq inhibit-compacting-font-caches t)
@@ -128,6 +144,11 @@
:config :config
(nerd-icons-completion-mode)) (nerd-icons-completion-mode))
(use-package nerd-icons-corfu
:after corfu
:config
(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))
(use-package nerd-icons-dired (use-package nerd-icons-dired
:hook :hook
(dired-mode . nerd-icons-dired-mode)) (dired-mode . nerd-icons-dired-mode))
@@ -159,14 +180,10 @@
(column-number-mode) (column-number-mode)
;; line numbers, not quite everywhere ;; line numbers, not quite everywhere
(setq-default display-line-numbers-type 'relative)
(add-hook 'prog-mode-hook #'display-line-numbers-mode) (add-hook 'prog-mode-hook #'display-line-numbers-mode)
(add-hook 'text-mode #'display-line-numbers-mode) (add-hook 'text-mode #'display-line-numbers-mode)
;; center cursor
;; (use-package centered-cursor-mode
;; :config
;; (global-centered-cursor-mode))
;; move cursor to new help windows ;; move cursor to new help windows
(setq help-window-select t) (setq help-window-select t)
@@ -196,15 +213,17 @@
(setq ibuffer-saved-filter-groups (setq ibuffer-saved-filter-groups
'(("Default" '(("Default"
("Terminal" (name . "^\\*terminal\\*$")) ("Terminal" (name . "^\\*terminal\\*$"))
("Nix" (mode . nix-ts-mode))
("Code" (or ("Code" (or
(mode . c-ts-mode) (mode . c-ts-mode)
(mode . c++-ts-mode) (mode . c++-ts-mode)
(mode . emacs-lisp-mode)
(mode . js-ts-mode) (mode . js-ts-mode)
(mode . makefile-gmake-mode) (mode . makefile-gmake-mode)
(mode . python-ts-mode) (mode . python-ts-mode)
(mode . rust-ts-mode))) (mode . rust-ts-mode)))
("Dired" (mode . dired-mode))
("Org" (mode . org-mode)) ("Org" (mode . org-mode))
("Dired" (mode . dired-mode))
("Magit" (name . "^magit")) ("Magit" (name . "^magit"))
("Emacs" (or ("Emacs" (or
(name . "^\\*Completions\\*$") (name . "^\\*Completions\\*$")
@@ -215,10 +234,19 @@
(add-hook 'ibuffer-mode-hook (add-hook 'ibuffer-mode-hook
(lambda () (lambda ()
(ibuffer-switch-to-saved-filter-groups "Default"))) (ibuffer-switch-to-saved-filter-groups "Default")
(ibuffer-auto-mode 1)))
;; make dired less messy
(setf dired-kill-when-opening-new-dired-buffer t)
;; kill buffers
(substitute-key-definition 'kill-buffer 'kill-buffer-and-window global-map)
;; git stuff ;; git stuff
(use-package magit) (use-package magit
:config
(setq magit-bury-buffer-function 'kill-buffer))
(use-package magit-todos (use-package magit-todos
:after magit) :after magit)
@@ -254,15 +282,26 @@
:config :config
(treemacs-load-theme "nerd-icons")) (treemacs-load-theme "nerd-icons"))
;; company ;; corfu
(use-package company (use-package corfu
:bind (:map company-active-map :custom
("C-n" . company-select-next) (corfu-cycle t)
("C-p" . company-select-previous)) (corfu-auto t)
(corfu-auto-prefix 2)
(corfu-auto-delay 0.2)
(corfu-quit-at-boundary 'separator)
(corfu-echo-documentation 0.25)
:init :init
(global-company-mode) (when (>= emacs-major-version 30)
:config (global-completion-preview-mode 1))
(setq company-idle-delay 0.1)) ;; faster autocomplete (unless (display-graphic-p)
(when (require 'corfu-terminal nil :noerror)
(corfu-terminal-mode +1)))
(global-corfu-mode 1)
(corfu-history-mode 1))
;; license templates
(use-package license-templates)
;; yasnippet config ;; yasnippet config
(use-package yasnippet (use-package yasnippet
@@ -271,8 +310,8 @@
(prog-mode . yas-minor-mode) (prog-mode . yas-minor-mode)
:config :config
(setq yas-snippet-dirs (setq yas-snippet-dirs
'("~/.emacs.d/snippets" ;; personal '((expand-file-name "snippets/" user-emacs-directory) ;; personal
"~/.emacs.d/work"))) ;; keep em separated (expand-file-name "work/" user-emacs-directory)))) ;; keep em separated
;; nix ;; nix
(use-package nix-ts-mode (use-package nix-ts-mode
@@ -291,18 +330,21 @@
(use-package python (use-package python
:defer t :defer t
:config :config
(setq python-flymake-command '("flake8" "-"))) (setq python-flymake-command '("ruff" "--quiet" "--stdin-filename=stdin" "-")))
;; eglot ;; eglot
(use-package eglot (use-package eglot
:straight nil :straight nil
:hook :hook
(c-ts-mode . eglot-ensure) (c-ts-mode . eglot-ensure)
(nix-ts-mode . eglot-ensure)
(python-ts-mode . eglot-ensure) (python-ts-mode . eglot-ensure)
:config :config
(setq eldoc-echo-area-display-truncation-message nil (setq eldoc-echo-area-display-truncation-message nil
eldoc-echo-area-prefer-doc-buffer t eldoc-echo-area-prefer-doc-buffer t
max-mini-window-height 2)) max-mini-window-height 2)
(dolist (mode '(((nix-mode nix-ts-mode) . ("nixd"))))
(add-to-list 'eglot-server-programs mode)))
;; treesit-auto ;; treesit-auto
(use-package treesit-auto (use-package treesit-auto
@@ -352,15 +394,6 @@
(pdf-tools-install :no-query) (pdf-tools-install :no-query)
(require 'pdf-occur)) (require 'pdf-occur))
;; helm
(use-package helm
:config
(global-set-key (kbd "M-x") #'helm-M-x)
(global-set-key (kbd "C-x r b") #'helm-filtered-bookmarks)
(global-set-key (kbd "C-x C-f") #'helm-find-files)
(setq helm-ff-auto-update-initial-value non-nil)
(helm-mode 1))
;; org stuff ;; org stuff
(use-package org (use-package org
:mode :mode
@@ -384,7 +417,11 @@
;; agenda ;; agenda
(require 'find-lisp) (require 'find-lisp)
(setq org-directory "~/org") (unless (file-exists-p "~/Documents/org")
(make-directory "~/Documents/org" t))
(setq org-directory "~/Documents/org")
(unless (file-exists-p (expand-file-name "gtd/" org-directory))
(make-directory (expand-file-name "gtd/" org-directory) t))
(setq chase/org-agenda-directory (setq chase/org-agenda-directory
(expand-file-name "gtd/" org-directory)) (expand-file-name "gtd/" org-directory))
(setq org-agenda-files (setq org-agenda-files
@@ -393,7 +430,7 @@
(setq org-capture-templates (setq org-capture-templates
'(("i" "Inbox" entry (file "gtd/inbox.org") '(("i" "Inbox" entry (file "gtd/inbox.org")
"* TODO %?\n") "* TODO %?\n")
("n" "Note" entry (file "~/org/inbox.org") ("n" "Note" entry (file "gtd/inbox.org")
"* %? :NOTE:\n"))) "* %? :NOTE:\n")))
;; TODO ;; TODO
@@ -408,7 +445,7 @@
(setq org-refile-allow-creating-parent-nodes 'confirm (setq org-refile-allow-creating-parent-nodes 'confirm
org-refile-targets '(("projects.org" . (:level . 1)))) org-refile-targets '(("projects.org" . (:level . 1))))
;; source blocks ;; source blocks
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp")) (add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
(add-to-list 'org-structure-template-alist '("py" . "src python")) (add-to-list 'org-structure-template-alist '("py" . "src python"))
(add-to-list 'org-structure-template-alist '("sh" . "src shell")) (add-to-list 'org-structure-template-alist '("sh" . "src shell"))
@@ -416,6 +453,9 @@
(add-to-list 'org-structure-template-alist '("json" . "src json")) (add-to-list 'org-structure-template-alist '("json" . "src json"))
(add-to-list 'org-structure-template-alist '("yaml" . "src yaml")) (add-to-list 'org-structure-template-alist '("yaml" . "src yaml"))
;; babel
(add-to-list 'org-babel-load-languages '(shell . t))
;; fix yaml fontify ;; fix yaml fontify
(add-to-list 'org-src-lang-modes '("yaml" . yaml-ts)) (add-to-list 'org-src-lang-modes '("yaml" . yaml-ts))
@@ -424,10 +464,10 @@
org-export-with-section-numbers nil) org-export-with-section-numbers nil)
;; LaTeX ;; LaTeX
(setq org-latex-compiler "xelatex") ;;(setq org-latex-compiler "xelatex")
(setq org-latex-listings 'minted ;;(setq org-latex-listings 'minted
org-latex-pdf-process ;;org-latex-pdf-process
'("latexmk -shell-escape -f -pdf -%latex -interaction=nonstopmode -output-directory=%o %f")) ;;'("latexmk -shell-escape -f -pdf -%latex -interaction=nonstopmode -output-directory=%o %f"))
(use-package evil-org (use-package evil-org
:after org :after org
@@ -443,8 +483,6 @@
(use-package org-roam (use-package org-roam
:after org :after org
:custom
(org-roam-directory "~/org-roam")
:bind :bind
(("C-c n l" . org-roam-buffer-toggle) (("C-c n l" . org-roam-buffer-toggle)
("C-c n f" . org-roam-node-find) ("C-c n f" . org-roam-node-find)
@@ -454,6 +492,10 @@
;; Dailies ;; Dailies
("C-c n j" . org-roam-dailies-capture-today)) ("C-c n j" . org-roam-dailies-capture-today))
:config :config
(unless (file-exists-p (expand-file-name "roam/" org-directory))
(make-directory (expand-file-name "roam/" org-directory) t))
(setq org-roam-directory
(expand-file-name "roam/" org-directory))
(require 'org-roam-protocol) (require 'org-roam-protocol)
(require 'org-roam-export) (require 'org-roam-export)
(org-roam-db-autosync-mode) (org-roam-db-autosync-mode)
@@ -472,10 +514,10 @@
(file+head "reference/${slug}.org" "#+title: ${title}\n${body}\n") (file+head "reference/${slug}.org" "#+title: ${title}\n${body}\n")
:unnarrowed t)))) :unnarrowed t))))
(use-package org-bullets (use-package org-superstar
:after org :after org
:hook :hook
(org-mode . org-bullets-mode)) (org-mode . org-superstar-mode))
(use-package org-appear (use-package org-appear
:after org :after org
@@ -497,11 +539,13 @@
:after org) :after org)
(use-package ox-moderncv (use-package ox-moderncv
:after org :straight nil
:straight :load-path "~/org-cv/"
(org-cv :type git :host gitlab :repo "Titan-C/org-cv")) ;;(org-cv :type git :host gitlab :repo "Titan-C/org-cv"))
:init (require 'ox-moderncv))
(use-package ox-hugocv
(use-package ox-hugocv
:after org :after org
:straight :straight
(org-cv :type git :host gitlab :repo "Titan-C/org-cv"))) (org-cv :type git :host gitlab :repo "Titan-C/org-cv")))
@@ -515,11 +559,19 @@
(use-package flyspell (use-package flyspell
:defer t :defer t
:hook :hook
(markdown-mode . flyspell-mode)
(org-mode . flyspell-mode) (org-mode . flyspell-mode)
:diminish flyspell-mode) :diminish flyspell-mode)
;; enlighten flymake to the load path ;; flymake config
(setq elisp-flymake-byte-compile-load-path load-path) (use-package flymake
:straight nil
:defer t
:init
(setq elisp-flymake-byte-compile-load-path load-path)
:bind (:map global-map
("M-n" . flymake-goto-next-error)
("M-p" . flymake-goto-prev-error)))
;; windows printer ;; windows printer
(setq ps-printer-name t) (setq ps-printer-name t)
@@ -527,24 +579,7 @@
(setq ps-lpr-switches '("-q" "-dNOPAUSE" "-dBATCH" "-sDEVICE=mswinpr2" (setq ps-lpr-switches '("-q" "-dNOPAUSE" "-dBATCH" "-sDEVICE=mswinpr2"
"-sPAPERSIZE=a7")) "-sPAPERSIZE=a7"))
;; exwm (use-package emms)
;; (use-package exwm
;; :config
;; (add-hook 'exwm-update-class-hook
;; (lambda () (exwm-workspace-rename-buffer exwm-class-name)))
;; (setq exwm-input-global-keys
;; `(([?\s-r] . exwm-reset)
;; ([?\s-w] . exwm-workspace-switch)
;; ([?\s-&] . (lambda (cmd)
;; (interactive (list (read-shell-command "$ ")))
;; (start-process-shell-command cmd nil cmd)))
;; ,@(mapcar (lambda (i)
;; `(,(kbd (format "s-%d" i))
;; (lambda ()
;; (interactive)
;; (exwm-workspace-switch-create ,i))))
;; (number-sequence 0 9))))
;; (exwm-enable))
(provide 'init) (provide 'init)
;;; init.el ends here ;;; init.el ends here

View File

@@ -1,237 +0,0 @@
{ config, pkgs, nur, ... }: let
earlyInitPath = "/home/chase/nixos-config/home/emacs/early-init.el";
initPath = "/home/chase/nixos-config/home/emacs/init.el";
in
{
home.username = "chase";
home.homeDirectory = "/home/chase";
home.stateVersion = "24.11";
home.preferXdgDirectories = true;
xdg = {
enable = true;
userDirs.enable = true;
};
xdg.configFile."emacs/early-init.el".source = config.lib.file.mkOutOfStoreSymlink earlyInitPath;
xdg.configFile."emacs/init.el".source = config.lib.file.mkOutOfStoreSymlink initPath;
programs.alacritty = {
enable = true;
settings = {
font = {
normal = {
family = "IBM Plex Mono";
style = "Regular";
};
};
};
theme = "catppuccin_mocha";
};
programs.bash = {
enable = true;
enableCompletion = true;
bashrcExtra = ''
export SSH_AUTH_SOCK=/home/chase/.bitwarden-ssh-agent.sock
'';
};
programs.fastfetch = {
enable = true;
settings = {
logo = {
source = "nixos_small";
};
display = {
size = {
binaryPrefix = "si";
};
color = "blue";
separator = ": ";
};
modules = [
"title"
"separator"
"os"
"host"
"uptime"
"kernel"
"packages"
"lm"
"de"
"wm"
"shell"
"terminal"
"terminalfont"
{
key = "Display";
type = "display";
}
"cpu"
"gpu"
"memory"
"swap"
"disk"
"datetime"
"colors"
"break"
"player"
"media"
];
};
};
programs.firefox = {
enable = true;
nativeMessagingHosts = [ pkgs.firefoxpwa ];
profiles = {
default = {
id = 0;
name = "default";
isDefault = true;
extensions = {
packages = with pkgs.nur.repos.rycee.firefox-addons; [
awesome-rss
betterttv
bitwarden
clearurls
control-panel-for-twitter
enhancer-for-youtube
facebook-container
flagfox
istilldontcareaboutcookies
privacy-badger
return-youtube-dislikes
search-by-image
sponsorblock
tab-session-manager
tampermonkey
ublock-origin
];
};
settings = {
"browser.formfill.enable" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.feeds.snippets" = false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = false;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.activity-stream.system.showSponsored" = false;
"browser.topsites.contile.enabled" = false;
"browser.urlbar.unitConversion.enabled" = true;
"extensions.formautofill.addresses.enabled" = false;
"extensions.formautofill.creditCards.enabled" = false;
"extensions.pocket.enabled" = false;
"widget.use-xdg-desktop-portal.file-picker" = 1;
"signon.rememberSignons" = false;
};
search = {
force = true;
default = "SearX";
order = [ "SearX" "google" ];
engines = {
"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" ];
};
"SearX" = {
urls = [{ template = "https://searx.traphouse.cathoderaytube.net/?q={searchTerms}"; }];
definedAliases = [ "@searx" ];
};
"bing".metaData.hidden = true;
};
};
};
};
};
programs.git = {
enable = true;
userName = "chase";
userEmail = "chase@cathoderaytube.net";
extraConfig = {
init.defaultBranch = "main";
};
};
programs.git-credential-oauth.enable = true;
programs.mpv = {
enable = true;
config = {
profile = "gpu-hq";
ytdl-format = "bestvideo+bestaudio";
};
scripts = [
pkgs.mpvScripts.mpris
];
};
programs.ncmpcpp = {
enable = true;
bindings = [
{ key = "h"; command = "previous_column"; }
{ key = "j"; command = "scroll_down"; }
{ key = "k"; command = "scroll_up"; }
{ key = "l"; command = "next_column"; }
];
};
programs.obs-studio.enable = true;
programs.ranger.enable = true;
programs.texlive.enable = true;
programs.yt-dlp = {
enable = true;
settings = {
embed-thumbnail = true;
};
};
home.packages = with pkgs; [
audacity
anki-bin
ffmpeg
gimp
ibm-plex
imagemagick
kdePackages.kdenlive
libreoffice
nerd-fonts.blex-mono
protonmail-bridge
thunderbird
runelite
];
services.mpd = {
enable = true;
extraConfig = ''
audio_output {
type "pipewire"
name "Pipewire Output"
}
'';
};
services.mpd-mpris = {
enable = true;
mpd.useLocal = true;
};
}

222
home/hypr.nix Normal file
View File

@@ -0,0 +1,222 @@
{
config,
pkgs,
...
}: {
catppuccin = {
waybar = {
enable = false;
# flavor = "mocha";
# mode = "createLink";
};
hyprland = {
enable = false;
};
};
programs.waybar = {
enable = true;
systemd = {
enable = true;
target = "hyprland-session.target";
};
style = ./waybar.css;
settings = [{
"layer" = "top";
"position" = "top";
modules-left = [
"custom/launcher"
"temperature"
"mpd"
];
modules-center = [
"clock"
];
modules-right = [
"pulseaudio"
"backlight"
"memory"
"cpu"
"network"
"custom/powermenu"
"tray"
];
"custom/launcher" = {
"format" = " ";
"on-click" = "pkill rofi || rofi2";
"on-click-middle" = "exec default_wall";
"on-click-right" = "exec wallpaper_random";
"tooltip" = false;
};
"pulseaudio" = {
"scroll-step" = 1;
"format" = "{icon} {volume}%";
"format-muted" = "󰖁 Muted";
"format-icons" = {
"default" = [ "" "" "" ];
};
"on-click" = "pamixer -t";
"tooltip" = false;
};
"clock" = {
"interval" = 1;
"format" = "{:%H:%M}";
"tooltip" = true;
"tooltip-format"= "{:%Y-%m-%d}\n<tt>{calendar}</tt>";
};
"memory" = {
"interval" = 1;
"format" = "󰻠 {percentage}%";
"states" = {
"warning" = 85;
};
};
"cpu" = {
"interval" = 1;
"format" = "󰍛 {usage}%";
};
"mpd" = {
"max-length" = 25;
"format" = "<span foreground='#bb9af7'></span> {title}";
"format-paused" = " {title}";
"format-stopped" = "<span foreground='#bb9af7'></span>";
"format-disconnected" = "";
"on-click" = "rmpc togglepause";
"on-click-right" = "rmpc update";
"on-click-middle" = "kitty --class='rmpc' rmpc ";
"on-scroll-up" = "rmpc prev";
"on-scroll-down" = "rmpc next";
"smooth-scrolling-threshold" = 5;
"tooltip-format" = "{title} - {artist} ({elapsedTime:%M:%S}/{totalTime:%H:%M:%S})";
};
"network" = {
"format-disconnected" = "󰯡";
"format-ethernet" = "󰒢";
"format-linked" = "󰖪 {essid} (No IP)";
"format-wifi" = "󰖩 {essid}";
"interval" = 1;
"tooltip" = false;
};
"custom/powermenu" = {
"format" = "";
"on-click" = "pkill rofi || ~/.config/rofi/powermenu/type-3/powermenu.sh";
"tooltip" = false;
};
"tray" = {
"icon-size" = 15;
"spacing" = 5;
};
}];
};
programs.hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = true;
grace = 3;
hide_cursor = true;
no_fade_in = false;
};
background = [
{
path = "screenshot";
blur_passes = 3;
blur_size = 8;
}
];
input-field = [
{
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_color = "rgb(202, 211, 245)";
inner_color = "rgb(91, 96, 120)";
outer_color = "rgb(24, 25, 38)";
outline_thickness = 5;
placeholder_text = "Enter password...";
shadow_passes = 2;
}
];
};
};
home.packages = with pkgs; [
brightnessctl
helvum
];
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock";
before_sleep_cmd = "loginctl lock-session";
after_sleep_cmd = "hyprctl dispatch dpms on";
ignore_dbus_inhibit = false;
};
listener = [
{
timeout = 600;
on-timeout = "loginctl lock-session";
}
{
timeout = 900;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
};
};
services.hyprpolkitagent.enable = true;
services.hyprsunset.enable = true;
services.hyprpaper = {
enable = true;
settings = {
preload = ["/home/chase/nix-config/home/wallpaper.jpg"];
wallpaper = ["/home/chase/nix-config/home/wallpaper.jpg"];
};
};
services.mako = {
enable = true;
settings = {
actions = true;
anchor = "top-right";
background-color = "#1e1e2e";
border-color = "#cba6f7";
border-radius = 0;
default-timeout = 0;
font = "monospace 10";
height = 100;
width = 300;
icons = true;
ignore-timeout = false;
layer = "top";
margin = 10;
markup = true;
# Section example
"actionable=true" = {
anchor = "top-right";
};
};
};
services.network-manager-applet.enable = true;
wayland.windowManager.hyprland = {
enable = false;
# package = null;
# portalPackage = null;
systemd.enable = true;
};
}

140
home/plasma.nix Normal file
View File

@@ -0,0 +1,140 @@
{
programs.plasma = {
enable = true;
fonts = {
fixedWidth = {
family = "BlexMono Nerd Font";
pointSize = 11;
};
general = {
family = "IBM Plex Sans";
pointSize = 11;
};
menu = {
family = "IBM Plex Sans";
pointSize = 11;
};
small = {
family = "IBM Plex Sans";
pointSize = 8;
};
toolbar = {
family = "IBM Plex Sans";
pointSize = 11;
};
windowTitle = {
family = "IBM Plex Sans";
pointSize = 11;
};
};
krunner = {
historyBehavior = "disabled";
position = "center";
shortcuts.launch = "Meta+Space";
};
kscreenlocker = {
appearance.wallpaper = "/home/chase/nix-config/home/wallpaper.jpg";
};
kwin = {
effects = {
desktopSwitching.animation = "slide";
minimization.animation = "squash";
shakeCursor.enable = true;
};
nightLight = {
enable = true;
location = {
latitude = "39.70"; # not my house xD
longitude = "-86.15";
};
mode = "location";
temperature = {
day = null;
night = 4000;
};
transitionTime = 15;
};
virtualDesktops = {
names = [
""
""
""
""
""
];
number = 5;
rows = 1;
};
};
panels = [
{
floating = false;
height = 32;
hiding = "none";
lengthMode = "fill";
location = "top";
opacity = "opaque";
widgets = [
{
name = "org.kde.plasma.pager";
config = {
General = {
displayedText = "name";
showWindowOutlines = false;
};
};
}
"org.kde.plasma.appmenu"
"org.kde.plasma.panelspacer"
{
digitalClock = {
calendar.firstDayOfWeek = "monday";
time.format = "24h";
};
}
"org.kde.plasma.panelspacer"
"org.kde.plasma.systemtray"
];
}
{
floating = true;
height = 48;
hiding = "dodgewindows";
lengthMode = "fit";
location = "bottom";
opacity = "adaptive";
widgets = [
"org.kde.plasma.kicker"
"org.kde.plasma.icontasks"
];
}
];
shortcuts = {
kwin = {
"Switch to Desktop 1" = "Meta+1";
"Switch to Desktop 2" = "Meta+2";
"Switch to Desktop 3" = "Meta+3";
"Switch to Desktop 4" = "Meta+4";
"Switch to Desktop 5" = "Meta+5";
"Window to Desktop 1" = "Meta+!";
"Window to Desktop 2" = "Meta+\"";
"Window to Desktop 3" = "Meta+#";
"Window to Desktop 4" = "Meta+$";
"Window to Desktop 5" = "Meta+%";
};
plasmashell = {
"activate task manager entry 1" = ",none,Activate Task Manager Entry 1";
"activate task manager entry 2" = ",none,Activate Task Manager Entry 2";
"activate task manager entry 3" = ",none,Activate Task Manager Entry 3";
"activate task manager entry 4" = ",none,Activate Task Manager Entry 4";
"activate task manager entry 5" = ",none,Activate Task Manager Entry 5";
"next activity" = ",none,Walk through activities";
"previous activity" = ",none,Walk through activities (Reverse)";
};
"services/kitty.desktop"."_launch" = "Meta+X";
};
workspace = {
wallpaper = "/home/chase/nix-config/home/wallpaper.jpg";
};
};
}

33
home/scripts/nixswitch Executable file
View File

@@ -0,0 +1,33 @@
#!/usr/bin/env bash
#
# NixOS rebuild script
#
# original by 0atman: https://gist.github.com/0atman/1a5133b842f929ba4c1e195ee67599d5
set -e
pushd ~/nix-config
if git diff --quiet; then
echo "No changes detected, exiting."
popd
exit 0
fi
alejandra . &>/dev/null \
|| ( alejandra . ; echo "formatting failed!" && exit 1)
git diff -U0
echo "NixOS rebuilding..."
sudo nixos-rebuild switch --flake . &>nixos-switch.log \
|| (cat nixos-switch.log | grep --color error && exit 1)
current=$(nixos-rebuild list-generations | grep current)
git commit -am "$current"
popd
notify-send -e "NixOS Rebuilt OK!" --icon=software-update-available

36
home/scripts/nixupdate Executable file
View File

@@ -0,0 +1,36 @@
#!/usr/bin/env bash
#
# NixOS update and rebuild script
#
# original by 0atman: https://gist.github.com/0atman/1a5133b842f929ba4c1e195ee67599d5
set -e
pushd ~/nix-config
nix flake update
if git diff --quiet; then
echo "No changes detected, exiting."
popd
exit 0
fi
alejandra . &>/dev/null \
|| ( alejandra . ; echo "formatting failed!" && exit 1)
git diff -U0
echo "NixOS rebuilding..."
sudo nixos-rebuild switch --flake . &>nixos-switch.log \
|| (cat nixos-switch.log | grep --color error && exit 1)
current=$(nixos-rebuild list-generations | grep current)
git commit -am "$current"
popd
notify-send -e "NixOS Rebuilt OK!" --icon=software-update-available

BIN
home/wallpaper.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 MiB

123
home/waybar.css Normal file
View File

@@ -0,0 +1,123 @@
* {
font-family: "JetBrainsMono Nerd Font";
font-size: 12pt;
font-weight: bold;
border-radius: 8px;
transition-property: background-color;
transition-duration: 0.5s;
}
@keyframes blink_red {
to {
background-color: rgb(242, 143, 173);
color: rgb(26, 24, 38);
}
}
.warning, .critical, .urgent {
animation-name: blink_red;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
window#waybar {
background-color: transparent;
}
window > box {
margin-left: 5px;
margin-right: 5px;
margin-top: 5px;
background-color: #1e1e2a;
padding: 3px;
padding-left:8px;
border: 2px none #33ccff;
}
#workspaces {
padding-left: 0px;
padding-right: 4px;
}
#workspaces button {
padding-top: 5px;
padding-bottom: 5px;
padding-left: 6px;
padding-right: 6px;
}
#workspaces button.active {
background-color: rgb(181, 232, 224);
color: rgb(26, 24, 38);
}
#workspaces button.urgent {
color: rgb(26, 24, 38);
}
#workspaces button:hover {
background-color: rgb(248, 189, 150);
color: rgb(26, 24, 38);
}
tooltip {
background: rgb(48, 45, 65);
}
tooltip label {
color: rgb(217, 224, 238);
}
#custom-launcher {
font-size: 20px;
padding-left: 8px;
padding-right: 6px;
color: #7ebae4;
}
#mode, #clock, #memory, #temperature,#cpu,#mpd, #custom-wall, #temperature, #backlight, #pulseaudio, #network, #battery, #custom-powermenu, #custom-cava-internal {
padding-left: 10px;
padding-right: 10px;
}
/* #mode { */
/* margin-left: 10px; */
/* background-color: rgb(248, 189, 150); */
/* color: rgb(26, 24, 38); */
/* } */
#memory {
color: rgb(181, 232, 224);
}
#cpu {
color: rgb(245, 194, 231);
}
#clock {
color: rgb(217, 224, 238);
}
/* #idle_inhibitor {
color: rgb(221, 182, 242);
}*/
#custom-wall {
color: #33ccff;
}
#temperature {
color: rgb(150, 205, 251);
}
#backlight {
color: rgb(248, 189, 150);
}
#pulseaudio {
color: rgb(245, 224, 220);
}
#network {
color: #ABE9B3;
}
#network.disconnected {
color: rgb(255, 255, 255);
}
#custom-powermenu {
color: rgb(242, 143, 173);
padding-right: 8px;
}
#tray {
padding-right: 8px;
padding-left: 10px;
}
#mpd.paused {
color: #414868;
font-style: italic;
}
#mpd.stopped {
background: transparent;
}
#mpd {
color: #c0caf5;
}

View File

@@ -0,0 +1,49 @@
{
config,
lib,
pkgs,
...
}: {
imports = [
./hardware-configuration.nix
../../nixos/desktop.nix
../../nixos/plasma.nix
../../nixos/hypr.nix
];
hardware.graphics = {
extraPackages = with pkgs; [
amdvlk
];
extraPackages32 = with pkgs; [
driversi686Linux.amdvlk
];
};
services.xserver.videoDrivers = [ "amdgpu" ];
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.lanzaboote = {
enable = true;
pkiBundle = "/var/lib/sbctl";
};
# Mount SMB share
fileSystems."/mnt/share" = {
device = "//haruko/share";
fsType = "cifs";
options = let
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,user,users";
credentials = "${config.sops.templates."smb-credentials".path}";
in ["${automount_opts},credentials=${credentials},uid=1000,gid=100"];
};
networking.wg-quick.interfaces = {
wg0 = {
configFile = "/home/chase/wg0.conf";
};
};
system.stateVersion = "24.11";
}

View File

@@ -1,40 +1,43 @@
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
### this machine ### ### this machine ###
networking.hostName = "anzu"; networking.hostName = "anzu";
### hardware config ### ### hardware config ###
# encrypted root # encrypted root
boot.initrd.luks.devices."luks-b03a8b46-6a1b-4855-9cf9-304d884f50ae".device = "/dev/disk/by-uuid/b03a8b46-6a1b-4855-9cf9-304d884f50ae"; boot.initrd.luks.devices."luks-b03a8b46-6a1b-4855-9cf9-304d884f50ae".device = "/dev/disk/by-uuid/b03a8b46-6a1b-4855-9cf9-304d884f50ae";
# encrypted swap # encrypted swap
boot.initrd.luks.devices."luks-9527937d-2d02-4feb-9a16-c9c417b33d0d".device = "/dev/disk/by-uuid/9527937d-2d02-4feb-9a16-c9c417b33d0d"; boot.initrd.luks.devices."luks-9527937d-2d02-4feb-9a16-c9c417b33d0d".device = "/dev/disk/by-uuid/9527937d-2d02-4feb-9a16-c9c417b33d0d";
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = ["amdgpu"];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/1518dbe1-8322-48d3-9fc9-cd0478ccbf43"; device = "/dev/disk/by-uuid/1518dbe1-8322-48d3-9fc9-cd0478ccbf43";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/1FCD-5A26"; device = "/dev/disk/by-uuid/1FCD-5A26";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = ["fmask=0077" "dmask=0077"];
}; };
swapDevices = swapDevices = [
[ { device = "/dev/disk/by-uuid/dd48a14e-2c90-465b-81a3-661d31ebf39f"; } {device = "/dev/disk/by-uuid/dd48a14e-2c90-465b-81a3-661d31ebf39f";}
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's
@@ -46,4 +49,6 @@
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
services.xserver.xkb.options = "ctrl:swapcaps";
} }

13
hosts/anzu/home.nix Normal file
View File

@@ -0,0 +1,13 @@
{
config,
pkgs,
...
}: {
imports = [
../../home/desktop.nix
../../home/hypr.nix
../../home/plasma.nix
];
home.stateVersion = "24.11";
}

22
hosts/hosts.nix Normal file
View File

@@ -0,0 +1,22 @@
let
user = "chase";
in {
anzu = {
hostname = "anzu";
dir = "anzu";
arch = "x86_64-Linux";
user = user;
};
ichigo = {
hostname = "ichigo";
dir = "ichigo";
arch = "x86_64-Linux";
user = user;
};
kuromi = {
hostname = "kuromi";
dir = "kuromi";
arch = "x86_64-Linux";
user = user;
};
}

View File

@@ -0,0 +1,35 @@
{
config,
pkgs,
...
}: {
imports = [
./hardware-configuration.nix
../../nixos/desktop.nix
../../nixos/plasma.nix
../../nixos/hypr.nix
];
hardware.graphics = {
extraPackages = with pkgs; [
amdvlk
];
extraPackages32 = with pkgs; [
driversi686Linux.amdvlk
];
};
services.xserver.videoDrivers = [ "amdgpu" ];
# Mount SMB share
fileSystems."/mnt/share" = {
device = "//haruko/share";
fsType = "cifs";
options = let
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,user,users";
credentials = "${config.sops.templates."smb-credentials".path}";
in ["${automount_opts},credentials=${credentials},uid=1000,gid=100"];
};
system.stateVersion = "24.11";
}

View File

@@ -1,50 +1,43 @@
# 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 = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
### this machine ### ### this machine ###
networking.hostName = "ichigo"; networking.hostName = "ichigo";
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; ### hardware config ###
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/d248b616-bdb7-463d-94a6-9718de8dc85a";
fsType = "ext4";
};
# encrypted root and swap
boot.initrd.luks.devices."luks-d90b3a3d-bb12-4a29-a2b4-99487f0ff1ca".device = "/dev/disk/by-uuid/d90b3a3d-bb12-4a29-a2b4-99487f0ff1ca"; boot.initrd.luks.devices."luks-d90b3a3d-bb12-4a29-a2b4-99487f0ff1ca".device = "/dev/disk/by-uuid/d90b3a3d-bb12-4a29-a2b4-99487f0ff1ca";
boot.initrd.luks.devices."luks-877310a4-b495-4060-9ee6-e7a841862f22".device = "/dev/disk/by-uuid/877310a4-b495-4060-9ee6-e7a841862f22"; boot.initrd.luks.devices."luks-877310a4-b495-4060-9ee6-e7a841862f22".device = "/dev/disk/by-uuid/877310a4-b495-4060-9ee6-e7a841862f22";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/AA5A-18AD";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
[ { device = "/dev/disk/by-uuid/752114b2-c304-4670-aba8-7288954605bc"; } boot.initrd.kernelModules = ["amdgpu"];
]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
# Mount SMB share
fileSystems."/mnt/share" = {
device = "//haruko/share";
fsType = "cifs";
options = let
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,user,users";
in ["${automount_opts},credentials=/etc/nixos/smb-secrets,uid=1000,gid=100"]; fileSystems."/" = {
device = "/dev/disk/by-uuid/d248b616-bdb7-463d-94a6-9718de8dc85a";
fsType = "ext4";
}; };
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/AA5A-18AD";
fsType = "vfat";
options = ["fmask=0077" "dmask=0077"];
};
swapDevices = [
{device = "/dev/disk/by-uuid/752114b2-c304-4670-aba8-7288954605bc";}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (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 # still possible to use this option, but it's recommended to use it in conjunction

13
hosts/ichigo/home.nix Normal file
View File

@@ -0,0 +1,13 @@
{
config,
pkgs,
...
}: {
imports = [
../../home/desktop.nix
../../home/hypr.nix
../../home/plasma.nix
];
home.stateVersion = "24.11";
}

View File

@@ -0,0 +1,18 @@
# 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
../../nixos/base.nix
];
networking.hostName = "kuromi";
system.stateVersion = "25.05";
}

View File

@@ -0,0 +1,44 @@
# 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" "sdhci_pci"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
fileSystems."/" = {
device = "/dev/disk/by-uuid/612f8704-c020-4188-85a7-27127e9b9ff2";
fsType = "btrfs";
options = ["subvol=@"];
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/2211-57BE";
fsType = "vfat";
options = ["fmask=0077" "dmask=0077"];
};
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.eno0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

11
hosts/kuromi/home.nix Normal file
View File

@@ -0,0 +1,11 @@
{
config,
pkgs,
...
}: {
imports = [
../../home/base.nix
];
home.stateVersion = "25.05";
}

244
nixos/base.nix Normal file
View File

@@ -0,0 +1,244 @@
{
config,
pkgs,
lib,
inputs,
...
}: {
# Bootloader.
boot.loader = {
efi.canTouchEfiVariables = true;
systemd-boot = {
enable = true;
configurationLimit = 5;
};
};
# Garbage collection
nix = {
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 1w";
};
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
settings = {
auto-optimise-store = true;
download-buffer-size = 524288000;
experimental-features = ["nix-command" "flakes"];
};
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Set your time zone.
time.timeZone = "America/New_York";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_GB.UTF-8";
};
# Configure keymap
console.keyMap = lib.mkDefault "jp106";
services.xserver.xkb = {
layout = lib.mkDefault "jp";
model = lib.mkDefault "jp106";
};
# Allow power management
powerManagement.enable = true;
# NetworkManager
networking.networkmanager.enable = true;
# Catppuccin
catppuccin = {
enable = true;
flavor = "mocha";
};
# Android debug tools
programs.adb.enable = true;
# Bash config
programs.bash = {
blesh.enable = true;
};
# zsh config
programs.zsh = {
enable = true;
enableCompletion = true;
enableBashCompletion = true;
autosuggestions.enable = true;
syntaxHighlighting.enable = true;
};
# Define a user account
users.users.chase = {
isNormalUser = true;
description = "Chase";
extraGroups = [
"adbusers"
"audio"
"cdrom"
"dialout"
"kvm"
"networkmanager"
"tss"
"video"
"wheel"
];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFSQX+s8Krl312DcnUtoEWOA2silcUnt5URtyVZz8Yek"
];
shell = pkgs.zsh;
};
# Install git and enable cache
programs.git = {
enable = true;
config = {
init = {
defaultBranch = "main";
};
credential = {
helper = "cache --timeout 21600";
};
};
};
# Install Neovim
programs.neovim = {
enable = true;
defaultEditor = true;
configure = {
customRC = ''
set autoindent
set number relativenumber
set tabstop=4
colorscheme catppuccin-mocha
'';
packages.myVimPackage = with pkgs.vimPlugins; {
start = [catppuccin-nvim];
};
};
viAlias = true;
vimAlias = true;
};
# ssh agent
programs.gnupg.agent.enable = true;
programs.ssh = {
enableAskPassword = false;
};
sops = {
defaultSopsFile = ../secrets.yaml;
validateSopsFiles = false;
age = {
sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];
keyFile = "/var/lib/sops-nix/key.txt";
generateKey = true;
};
secrets = {
"smb-username" = {};
"smb-password" = {};
};
templates = {
"smb-credentials".content = ''
username=${config.sops.placeholder.smb-username}
password=${config.sops.placeholder.smb-password}
'';
};
};
# List packages installed in system profile.
environment.systemPackages = with pkgs; [
alejandra
bitwarden-cli
cifs-utils
flashrom
gcc
nixd
pam_u2f
pciutils
python3
qemu
rustup
sbctl
sops
usbutils
wget
wireguard-tools
yubikey-manager
];
security.pam = lib.optionalAttrs pkgs.stdenv.isLinux {
sshAgentAuth.enable = true;
u2f = {
enable = true;
settings = {
cue = false;
authFile = "~/.config/Yubico/u2f_keys";
};
};
services = {
login.u2fAuth = true;
sudo = {
u2fAuth = true;
};
};
};
security.tpm2 = {
enable = true;
pkcs11.enable = true;
tctiEnvironment.enable = true;
};
services.fstrim.enable = lib.mkDefault true;
# Firmware updates
services.fwupd.enable = true;
# Enable the OpenSSH daemon.
services.openssh = {
enable = true;
settings = {
PermitRootLogin = "no";
PasswordAuthentication = false;
KbdInteractiveAuthentication = false;
};
};
services.pcscd.enable = true;
# Enable CUPS to print documents.
services.printing.enable = true;
services.udev = {
packages = with pkgs; [
yubikey-personalization
];
extraRules = ''
SUBSYSTEM=="usb", ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0202", MODE="0666", GROUP="dialout"
'';
};
services.yubikey-agent.enable = true;
}

119
nixos/desktop.nix Normal file
View File

@@ -0,0 +1,119 @@
{
config,
lib,
pkgs,
inputs,
...
}: {
imports = [
./base.nix
];
# Use latest stable kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
# Enable Bluetooth
hardware.bluetooth.enable = true;
# Enable SDDM
services.xserver.enable = true;
services.displayManager.sddm = {
enable = true;
package = lib.mkDefault pkgs.kdePackages.sddm;
extraPackages = [pkgs.kdePackages.sddm-kcm];
wayland.enable = true;
enableHidpi = true;
};
# Catppuccin
catppuccin = {
sddm = {
enable = true;
background = "/home/chase/nix-config/home/wallpaper.jpg";
flavor = "mocha";
font = "IBM Plex Sans";
fontSize = "11";
};
};
# Enable graphics
hardware.graphics = {
enable = true;
enable32Bit = true;
};
i18n.inputMethod = {
type = "fcitx5";
enable = true;
fcitx5.addons = with pkgs; [
fcitx5-mozc
kdePackages.fcitx5-qt
];
fcitx5.waylandFrontend = true;
};
# Fonts
fonts = {
packages = with pkgs; [
corefonts
font-awesome
hachimarupop
ibm-plex
kanji-stroke-order-font
liberation_ttf
nerd-fonts.blex-mono
nerd-fonts.jetbrains-mono
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
];
fontconfig = {
defaultFonts = {
serif = ["IBM Plex Serif"];
sansSerif = ["IBM Plex Sans"];
monospace = ["BlexMono Nerd Font"];
};
};
};
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Install firefox
programs.firefox = {
enable = true;
nativeMessagingHosts.packages = [pkgs.firefoxpwa];
policies = {
DisableTelemetry = true;
DisableFirefoxAccounts = true;
DisableFirefoxStudies = true;
DisablePocket = true;
};
};
# Install Steam
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
};
# List packages installed in system profile.
environment.systemPackages = with pkgs; [
bitwarden-desktop
firefoxpwa
kdePackages.dolphin
protonup-qt
qpwgraph
yubioath-flutter
];
services.fprintd.enable = true;
}

39
nixos/hypr.nix Normal file
View File

@@ -0,0 +1,39 @@
{
config,
pkgs,
inputs,
...
}: {
# Cachix for Hyprland
nix.settings = {
substituters = ["https://hyprland.cachix.org"];
trusted-substituters = ["https://hyprland.cachix.org"];
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
};
# Hyprland
programs.hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
withUWSM = true;
xwayland.enable = true;
};
programs.hyprlock.enable = true;
programs.uwsm = {
enable = true;
waylandCompositors = {
hyprland = {
prettyName = "Hyprland";
comment = "Hyprland compositor managed by UWSM";
binPath = "/run/current-system/sw/bin/Hyprland";
};
};
};
security.pam.services.hyprlock = {};
services.hypridle.enable = true;
}

24
nixos/plasma.nix Normal file
View File

@@ -0,0 +1,24 @@
{
pkgs,
...
}: {
services.desktopManager.plasma6.enable = true;
environment.plasma6.excludePackages = with pkgs.kdePackages; [
elisa
kate
];
# List packages installed in system profile.
environment.systemPackages = with pkgs; [
(catppuccin-kde.override {
flavour = ["mocha"];
accents = [
"blue"
"lavender"
"pink"
"sapphire"
];
winDecStyles = ["classic"];
})
];
}

44
secrets.yaml Normal file
View File

@@ -0,0 +1,44 @@
smb-username: ENC[AES256_GCM,data:pFkBi+c=,iv:JSRlBHBGMNZVZZuQaSHj/cpXOaxRV3xkG/OaTOjFDZc=,tag:ALMWCi+gAqt2HtSKGGaS5Q==,type:str]
smb-password: ENC[AES256_GCM,data:LgxYSOZhj5DwvTwAoF0cLJezxYQ=,iv:is3PWEgvWmbFc39npdjD9qYrMo76wWAczZlo7LCoNf0=,tag:vanjCeI01KaL5STCSwxM/g==,type:str]
sops:
age:
- recipient: age19uwxm2gynhjl9m90gckrkh76m9hjut44ak6d8969y4swhz8ypyeqvfcaas
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvT1pKc1VrVllURWozOXd1
NURBT1haRlBkeHB3eTVabmhWMEI0a1JySDFjCkU3Ry9QaEpRTllaZlRZUllJOUtF
U0ZtOFJRbmEwYnFwK1JRNkJQQXlVVnMKLS0tIGRBZTloenV2YkhGMllUSEx5UGlk
emcvaGhuRStCRFBPY29UdmhPeUhqWDQKkabWErK0qtwVnWza7UfhmX9yfIZJC1XV
MOsdxHryfilLFHhzOI2UGM2dzKlukNvHwAuJmoRkwjIj8Ugj1sU3nA==
-----END AGE ENCRYPTED FILE-----
- recipient: age1wdjujpvc2zd0g592a9gqa7qzz4pcans8m0tyq3m6eq9np9a3lg2s8kxf3h
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQbDBPVUFTcERIaEh4ZHp3
aW1GQXlVQThyeDdVYzNYNHlqcFRIYVNpa2xNCmpMeml4REpsRDl1SU1pSm92SU1V
OXNhUklhTGxRMTRTV3dlbENsTVlXTVEKLS0tICtzU3ZteFNCOEo3NmVwNE1ydHVM
dFpJMXowc3h1MHdBYVZLc0Y5bXZoTUkKFs67JKeHhZiK2tAu7Poh4Fou5QYm8HXK
r09HeCuiIfxjRuT1t8nRvRALdzOG6xNuPULs6aCdjpa/d0EvnXyw+w==
-----END AGE ENCRYPTED FILE-----
- recipient: age1hpcyetyl0yrwxy0geem6z2u2kwl4hmckur7pnaaxwaylf8ata9vsv8j3wh
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmb3oyWFBvdXIxRkNtL0xs
aGNzQ0RERXB3TGFUOVBTQm5wOUlodkZiMXlvClFXR1Z0ZHpFa2RyUlYzL01Bb2RN
UGZNREVqRU9ZRVhMQ3VMYUNKcUI4WTgKLS0tIDB5RmkzSTdwSTVUQjJMbklxeFM5
M0s3QmI4MzNiVy8yNGE2TG01Z1paOWcKIGj+ofrO443CiK1n3J291KwnKqmG99+M
1mYfFrvpx/yVTzt2Pk5ioTC+hzDWUHy1gR8vQTVTjGkhU8cBCzNR/w==
-----END AGE ENCRYPTED FILE-----
- recipient: age1culqt965xgweu5h6menrppf7eatq7at04z0n52t365f0nvlv043su5t2yl
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWOVQ2ZzhZT0pqZjIzQXp1
dzBuVEcyYS9MSW8vdnFPT2p4NzJBZ3g2K0c4CmpqSC9XRFBsdUJsM1phckQ4aW5D
RFZmTFJMSkR5VE9idzJMZGZzajFBWFEKLS0tIElnTXg5aUNQVE5qOGlxd00zY0NX
ZGRES0oyeGZSRHBQU0RQNzNZd1VBZTAKhRXixVaTXhZrTmntLGaC9WIm/Ylm3tp7
xQxZA8n5PRtqENa5Cj3jqJQS2gmwy5kixO9U6IHzMWntBE7zr/hKrQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-06-08T19:43:47Z"
mac: ENC[AES256_GCM,data:9YpgBrJwWhz2utNPldpIU/ylaN2QfkSj1LvWa8sISSnuXvsBsZ8a+oNzuGDd5+Q1pSYtoiBt6viqZn65wp8x+kb9ZMJdsWoZZG2U1b3rHUsadOYarvwMVDoQ5TZFFjEOyzyCgT7ln6v1rfAKwL5LJ3Kjv6SRIb9dK51sDsVijhQ=,iv:yTlxgZoOdB7pu5iZKP+q1cXbDsTT5HgsWo4tkix8948=,tag:qJbiq+Fayx5L9V7to1ijvQ==,type:str]
unencrypted_suffix: _unencrypted
version: 3.10.2