Compare commits

..

536 commits

Author SHA1 Message Date
c0004409d7
alyssum/samba: bind music
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-06-19 09:12:52 +10:00
004832fc06
containers/emerald: bind music directory
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-06-19 09:03:39 +10:00
83371117d4
containers/emerald: change mounts
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-19 08:57:22 +10:00
e1c02d7a91
containers/emerald: move to alyssum
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-19 08:01:17 +10:00
4dfc898140
user/neovim: switch to nixd 2026-06-19 07:36:13 +10:00
21dc584199
alyssum/home.syncthing: don't override devices and folders
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-06-17 21:22:03 +10:00
6c80606b7e
alyssum/home.syncthing: fixup conf
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-17 21:15:22 +10:00
907f2cabca
alyssum/home.syncthing: set proper defaults
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-17 21:14:47 +10:00
5c13051b4b
alyssum/samba: bind some directories 2026-06-17 21:05:38 +10:00
bc3269a814
alyssum/home.syncthing: create another instance
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-17 20:29:22 +10:00
63d9d6b004
alyssum/home.syncthing: add host to gui address
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-17 19:58:03 +10:00
9a821fda94
alyssum/home.syncthing: fixup hm config
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-17 19:50:02 +10:00
8157d0d561
alyssum/home.syncthing: init
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-17 19:49:10 +10:00
024a6bdbe2
alyssum/samba: relax hosts
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-17 18:47:15 +10:00
4bb20124a7
alyssum/samba: use full package for discovery
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-17 18:34:34 +10:00
509684d0bd
alyssum/samba: use proper smbpasswd path
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-17 18:28:39 +10:00
c782bd5e53
hosts/alyssum: add passwd age
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-17 18:23:10 +10:00
4f8249b780
alyssum/samba: use proper credentials
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-17 18:16:21 +10:00
d1a8e7222f
alyssum/samba: init 2026-06-17 18:11:09 +10:00
402c847f3c
dandelion/filesystem: reduce rootfs from 12G to 6G 2026-06-14 20:32:32 +10:00
2a9e8e6c03
containers/garnet: extend token expiration
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-06-13 23:44:29 +10:00
e98a71cd1e
containers/garnet: config nginx to avoid errors
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-13 22:12:32 +10:00
6fc74bd778
hosts/hyacinth: add docker 2026-06-13 22:10:19 +10:00
37f271bed8
containers/citrine: enable push to create
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-06-10 16:05:24 +10:00
2990972989
user/git: set default branch name 2026-06-10 16:01:23 +10:00
b705a21478
system/tailscale: fix syntax
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-10 15:06:38 +10:00
75f9cc9d2b
system/tailscale: open port 123 on headless
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-10 15:05:05 +10:00
ea17ef30c6
system/input: map esc to capslock 2026-06-10 15:03:24 +10:00
8a85e25d72
system/input: don't overload capslock
input delay :p
2026-06-10 15:03:24 +10:00
9a6a29831b
system/security: reenable doas persist 2026-06-10 15:03:24 +10:00
8ca9e393ea
system/input: swap esc using keyd 2026-06-10 15:03:24 +10:00
9a87dc63c3
rin/packages: move prism back to shared gui 2026-06-10 15:03:19 +10:00
1ad05857b7
services/syncthing: setup correct guiAddress
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-06-06 20:35:10 +10:00
72078aad6c
services/syncthing: listen on all ports for headless
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-06 20:33:19 +10:00
abe0027e5d
hosts/alyssum: add syncthing
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-06 20:23:56 +10:00
ee3e0868a8
system/tailscale: loosen firewall for tailnet 2026-06-06 20:14:37 +10:00
91abcbed19
services/banksia: redirect to lab
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-06-02 19:54:09 +10:00
93354e6419
containers/citrine: garden -> lab
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-06-02 19:50:01 +10:00
cc2e9d1a90
user/eww: use iwd tools instead of nmcli
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-05-31 02:15:37 +10:00
e7588e0be0
{system,rin}/packages: cleanup
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-05-30 21:24:30 +10:00
4851369098
containers/garnet: add hosts and correct bind mounts
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-05-29 00:44:13 +10:00
34e649e621
alyssum/filesystem: add myosotis 2026-05-29 00:43:32 +10:00
f622d5f577
containers/garnet: try removing host header 2026-05-28 23:43:07 +10:00
c4bedfd86e
containers/garnet: move back to listen addrs 2026-05-28 23:34:25 +10:00
011ceee498
containers/garnet: use ipv4 for proxy 2026-05-28 23:27:19 +10:00
0735ffdb69
containers/garnet: remove stray sv and set address to local ip 2026-05-28 23:22:19 +10:00
a25d214b82
hosts/alyssum: enable nginx 2026-05-28 23:10:40 +10:00
27e9546327
containers/garnet: better ip filtering 2026-05-28 23:04:35 +10:00
140b12fa5d
hosts/alyssum: enable garnet 2026-05-28 23:02:40 +10:00
babc27c8be
containers/garnet: init 2026-05-28 23:01:43 +10:00
939d0cc861
system/tailscale: persist tailscale state
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-05-30 20:37:42 +10:00
0edeac9f4c
user/neovim: remove lsp.with 2026-05-30 19:38:31 +10:00
10fbeac140
user/eww: manually set configDir
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
why was this changed???
2026-05-30 01:57:08 +10:00
github-actions[bot]
1d9f9f4927
packages/linux-lava: bump to 7.0.10 2026-05-30 01:51:28 +10:00
github-actions[bot]
1941deb004
flake: bump inputs 2026-05-30 01:51:28 +10:00
4a82035d82
hosts/hyacinth: enable tailscale 2026-05-30 01:45:45 +10:00
604983800f
hyacinth/packages: add discord 2026-05-30 01:27:12 +10:00
81c17720eb
containers/{d,e,f}: listen on tailscale
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-05-28 22:40:19 +10:00
b8a7dfa8a8
system/tailscale: enable routing features
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-05-28 22:19:54 +10:00
d0e090bb68
hosts/alyssum: enable tailscale
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-05-28 22:10:44 +10:00
e5e608c580
services/unbound: allow access from tailscale
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-05-28 21:56:34 +10:00
69717ef92b
hosts/dandelion: enable tailscale
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-05-28 21:33:57 +10:00
d13f18a189
user/neovim{,-minimal}: set defaults to suppress warning 2026-05-28 21:21:49 +10:00
de857dcfbf
services/nginx: credentialsFile -> environmentFile 2026-05-28 21:20:27 +10:00
5680e29cd2
services/unbound: add google to dns 2026-05-28 21:17:50 +10:00
4a91f8a165
system/wireguard: also forward udp 2026-05-28 21:17:50 +10:00
52e53ba5b3
containers/amethyst: use ipv4 proxy 2026-05-28 21:17:49 +10:00
218da08936
containers/beryllium: use ipv4 2026-05-28 21:17:49 +10:00
724d30a092
containers/fluorite: change slskd env 2026-05-28 21:17:46 +10:00
c8c6fb1b5e
system/tailscale: init 2026-05-28 20:55:11 +10:00
59f5913b68
hosts/alyssum: disable insecure ssh 2026-05-28 20:19:04 +10:00
0d99bd6015
alyssum/networking: point to wpa_conf correctly, attempt 3 2026-05-28 20:16:59 +10:00
865b473df7
alyssum/networking: point to wpa_conf correctly, attempt 2
why was this changed?????
2026-05-28 20:13:54 +10:00
c323f004f1
alyssum/networking: point to wpa_conf correctly 2026-05-28 20:06:36 +10:00
220af6cf15
alyssum/networking: enable wpa_supplicant 2026-05-28 18:59:38 +10:00
ae707d33ea
alyssum/networking: use wpa_conf 2026-05-28 18:55:41 +10:00
880316173f
hosts/alyssum: (temporarily) allow password login 2026-05-28 18:43:52 +10:00
0638cf6f5f
alyssum/kernel: update 2026-05-28 18:19:13 +10:00
0f7393714f
hosts/alyssum: init 2026-05-28 18:08:15 +10:00
cc43450dd1
system/security: enable pam_u2f 2026-05-28 17:43:08 +10:00
4c28a3eecb
overlays/openldap: skip failing checks for 32-bit 2026-05-11 01:05:27 +10:00
575a0e9610
treewide: remove nodePackages 2026-05-10 22:44:46 +10:00
github-actions[bot]
58d4b60f5b
packages/linux-lava: bump to 7.0.5 2026-05-10 22:35:04 +10:00
github-actions[bot]
75e0c8f6ac
flake: bump inputs 2026-05-10 22:35:00 +10:00
27ba1aaede
anemone/networking: switch to iwd 2026-04-26 15:47:39 +10:00
087ed1c323
user/neovim: fix logs opening on tex save 2026-04-18 15:10:44 +10:00
e303fee58d
system/wireguard: change port to 51801
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-04-06 23:16:57 +10:00
d11d080c94
system/packages-gui: move light to brightnessctl in home
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-03-24 13:53:28 +11:00
github-actions[bot]
2239c1cc64
packages/linux-lava: bump to 6.19.9 2026-03-24 13:53:27 +11:00
github-actions[bot]
576fd7604f
flake: bump inputs 2026-03-24 13:53:27 +11:00
9fd117c50c
rin/packages: add temurin-25 to prismlauncher 2026-03-24 13:52:02 +11:00
d8c016e933
containers/fluorite: move desc and pic to secrets
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-03-23 02:38:48 +11:00
f8312bc6f2
user/neovim-minimal: fix treesitter errors
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-03-19 20:42:32 +11:00
2d15fb3a5e
containers/fluorite: use jpg picture
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-03-18 22:09:04 +11:00
b06c782850
containers/fluorite: use png picture
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-03-18 22:08:23 +11:00
6c7393228e
containers/fluorite: add description and picture
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-03-18 21:54:43 +11:00
36a161d1df
containers/fluorite: store all data 2026-03-18 21:39:02 +11:00
3e56c780dd
services/website: redirect cdn.lava.moe to sh.lava.moe
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-03-18 20:43:04 +11:00
c9c6ef4a16
rin/packages: add feishin 2026-03-18 20:21:33 +11:00
3a612d3e90
containers/diamond: remove stray templates
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-03-18 20:11:21 +11:00
3381630a7a
containers/emerald: bind music media dir
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-03-18 03:45:26 +11:00
5eef477e0b
containers/fluorite: forward ports 2026-03-18 03:43:35 +11:00
de7402576d
secrets/slskd_env: update
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-03-18 03:25:06 +11:00
ecdd594a1b
containers/{emerald,fluorite}: fix dns
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-03-18 03:14:59 +11:00
465ec6f2fc
hosts/dandelion: add fluorite
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-03-18 03:10:34 +11:00
7d479007d9
containers/emerald: add navidrome env for lastfm and spotify
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-03-18 03:08:18 +11:00
48db46051d
containers/emerald: enable ipv4 and provide internet access 2026-03-18 02:59:12 +11:00
b3ffc41b76
containers/fluorite: provide internet access 2026-03-18 02:25:27 +11:00
215e017cd3
containers/fluorite: use correct share directory config name
oops tehee
2026-03-18 02:20:08 +11:00
4932dad23f
containers/fluorite: ensure music folder exists 2026-03-18 02:12:41 +11:00
dd076fab3c
containers/fluorite: setup env file 2026-03-18 02:09:54 +11:00
3419ab4b77
containers/fluorite: set domain to null 2026-03-18 01:55:53 +11:00
d3ab001222
containers/fluorite: init 2026-03-18 01:52:34 +11:00
68ae736c2c
containers/emerald: return 404 on / 2026-03-18 01:22:07 +11:00
52fbdfe8cf
containers/emerald: only allow urls under /share 2026-03-18 01:11:20 +11:00
ccafbd8ae0
containers/emerald: use correct shareurl format
navidrome always add /share at the end :(
2026-03-18 00:07:52 +11:00
4aaeefa97a
containers/emerald: use alternative share fqdn
insane, ssl cert extra domains' wildcard only goes one level deep
2026-03-17 23:43:23 +11:00
75c7e7b193
hosts/dandelion: add emerald 2026-03-17 18:58:49 +11:00
8cf7c1815e
containers/emerald: enable sharing 2026-03-17 18:57:18 +11:00
0567313fa2
containers/emerald: init 2026-03-17 18:13:53 +11:00
b7665d9bd5
containers/diamond: only listen on local addresses
TIL nginx will only route via amethyst if it's on local address, even if
hostname doesn't match
2026-03-17 17:25:35 +11:00
55e0d25251
containers/diamond: listen on ipv6 2026-03-17 17:06:49 +11:00
518c718a5d
containers: clean up domain names 2026-03-17 17:01:15 +11:00
66332a980a
containers/diamond: init 2026-03-17 14:37:36 +11:00
3a45f85c37
dandelion/networking: disable dhcp on enp2s0
Some checks are pending
CI / Build linux-lava for x86_64-linux (push) Waiting to run
2026-03-17 02:10:11 +11:00
c4bd8d3fa1
containers/citrine: use pq kex algorithms for ssh
Some checks failed
CI / Build linux-lava for x86_64-linux (push) Has been cancelled
2026-03-16 16:36:46 +11:00
7226266c30
containers/citrine: enable ipv4
bc ipv6 is broken and i cba 😭
2026-03-16 16:31:58 +11:00
1936294ea4
containers/citrine: oops 2026-03-16 16:25:25 +11:00
a7afbda109
containers/citrine: refactor networking and use proper nameservers 2026-03-16 16:24:12 +11:00
ffcd5c93d2
containers/citrine: enable nat 2026-03-16 16:18:41 +11:00
27cf526c47
containers/citrine: fix forwarding 2026-03-16 16:07:08 +11:00
49c161e8ab
hosts/anemone: remove citrine 2026-03-16 03:43:07 +11:00
fa3872647d
containers/citrine: forward ssh 2026-03-16 03:40:35 +11:00
15c4e4fc51
containers/citrine: catppuccin theming 2026-03-16 02:49:08 +11:00
d577030892
containers/citrine: customise homepage and disable registrations 2026-03-16 02:04:31 +11:00
2a27838974
hosts/dandelion: move citrine from anemone 2026-03-16 01:13:36 +11:00
fd3e877d3d
containers/citrine: simplify networking 2026-03-16 01:12:40 +11:00
18c6cb6773
containers/citrine: add cli to packages 2026-03-16 01:02:28 +11:00
36f214f2a4
containers/citrine: init 2026-03-16 00:48:51 +11:00
249942280d
containers: don't use wildcard nat interfaces 2026-03-16 00:45:05 +11:00
5722249dd2
services/unbound: open firewall for dns from containers 2026-03-15 23:34:58 +11:00
a2f82bc7d5
containers/beryllium: don't use host resolvconf 2026-03-15 23:31:20 +11:00
a06d0d86fc
containers/beryllium: properly set dns resolver 2026-03-15 23:23:16 +11:00
3bbaf8785c
containers/beryllium: add missing semicolon 2026-03-15 23:01:21 +11:00
a2337566da
containers/beryllium: redirect root to website 2026-03-15 22:57:49 +11:00
d02d1dbb33
containers/beryllium: listen on all addresses 2026-03-15 22:54:24 +11:00
1486058b90
containers/beryllium: configure proper delegation 2026-03-15 22:48:04 +11:00
16703bade1
containers/beryllium: open firewall 2026-03-15 22:38:53 +11:00
c42fdb7940
containers/beryllium: add nginx configuration 2026-03-15 22:33:23 +11:00
52a3e8557e
containers/amethyst: use ipv6 for proxy 2026-03-15 22:27:47 +11:00
2a4a4c5d47
containers/amethyst: enable ssl 2026-03-15 21:38:10 +11:00
d4768ea7bf
users/hana: add nh flake path 2026-03-15 21:34:04 +11:00
f8d4e05080
containers/amethyst: fix nginx ipv6 listenaddr 2026-03-15 21:31:54 +11:00
42eeba3a9f
system/nix-stable: use latest nix 2026-03-15 21:18:24 +11:00
e0f1482511
containers/amethyst: fix nginx listen address 2026-03-15 21:17:35 +11:00
2f4cbd382c
user/comma: init 2026-03-15 21:06:20 +11:00
54fd3373d0
system/nix-stable: enable nh 2026-03-15 20:53:08 +11:00
a9e9ae41ac
containers/amethyst: expose under local nginx 2026-03-15 20:52:24 +11:00
dfd00aad38
hosts/dandelion: use new containers 2026-03-15 20:03:07 +11:00
c0679f7e79
hosts/dandelion: remove postgres
not sure why it's still there, hopefully nothing breaks :)
2026-03-15 19:53:38 +11:00
e78c666635
system/home-manager-stable: remove 2026-03-15 19:50:47 +11:00
1a8e042be5
flake: lock 2026-03-15 19:48:37 +11:00
f84e8c1013
hosts/hazel: decommission 2026-03-15 19:48:08 +11:00
5c55793134
hosts/dandelion: follow unstable nixpkgs 2026-03-15 19:47:08 +11:00
6bea391858
hosts/dandelion: pull changes 2026-03-15 19:41:44 +11:00
5a24bf690f
containers/amethyst: refactor 2026-03-15 19:32:34 +11:00
acc4d31f46
containers/beryllium: init 2026-03-15 19:27:29 +11:00
e2832de968
containers/amethyst: init 2026-03-15 15:53:14 +11:00
12681f2087
system/docker: disable rootless 2026-03-09 00:39:07 +11:00
2baffcb7a5
hosts/anemone: enable kde connect 2026-03-08 23:58:32 +11:00
2f1ca64025
user/zsh: update nix abbrs 2026-03-08 18:12:59 +11:00
12a1843587
system/docker: init 2026-03-08 18:12:28 +11:00
09aceb18f4
user/eww: display multiple bluetooth devices in one line 2026-03-06 21:07:12 +11:00
e73f9d612c
rin/packages: use dotnet10 2026-03-03 13:37:03 +11:00
1fd2ebedb0
anemone/networking: disable wpa_supplicant hardening 2026-03-02 13:17:36 +11:00
cf47ffc526
workflow: remove check job
SHUTUPSHUTUPSHUTUPSHOUSHTOSHTOUSTHSROUTSHJSBUJFSBHIDh
2026-02-24 17:26:26 +11:00
3b73bd8f14
overlays/jetbrains: init 2026-02-16 16:00:25 +11:00
4e49291a40
rin/packages: add jetbrains gateway 2026-02-16 15:43:23 +11:00
github-actions[bot]
4c933a598c packages/linux-lava: bump to 6.19 2026-02-12 02:40:17 +00:00
github-actions[bot]
83b68d3034 flake: bump inputs 2026-02-12 02:40:14 +00:00
bada516463
user/neovim: update nvim-treesitter import 2026-02-09 21:56:30 +11:00
85f53fbc85
rin/packages: remove wine-osu 2026-02-06 22:31:16 +11:00
0772dca431
system/packages: remove ecryptfs 2026-02-06 21:25:40 +11:00
adea95e039
hyacinth/packages: use new idea package name 2026-02-06 21:22:10 +11:00
2b9a772959
rin/packages: remove tetrio plus (marked as broken) 2026-02-06 21:20:48 +11:00
c76de11041
user/mpv: update config after breaking change 2026-02-06 21:19:54 +11:00
0245b680ef
system: remove deleted options 2026-02-06 21:16:56 +11:00
github-actions[bot]
0c882eb783
packages/linux-lava: bump to 6.18.8 2026-02-06 21:16:19 +11:00
github-actions[bot]
bcbebb0d46
flake: bump inputs 2026-02-06 21:16:19 +11:00
3af1ad12fd
system/nix: add nh 2026-02-06 21:08:21 +11:00
58efa5527c
user/git: update git email 2026-02-03 23:18:45 +11:00
57afed24ed
anemone/kernel: disable swapfile and hibernation 2026-01-29 00:37:01 +11:00
4bd188cc64
workflows/cachix: bump cachix action
fixes a bug where the latest store path doesn't get pushed (so all the
kernel builds never gets pushed)
2025-11-21 23:15:01 +11:00
c5dd3e4f5e
treewide: change deprecated and renamed option and package names 2025-11-21 23:14:31 +11:00
8ae384686c
packages/linux-lava: bump to 6.17.8 2025-11-21 22:43:53 +11:00
b4e6a9bc04
flake: bump inputs 2025-11-21 22:43:52 +11:00
45a8eadeda
user/neovim: migrate to new lsp config syntax 2025-11-03 13:43:06 +11:00
892f9bfe73
hosts/hazel: hardware.opengl -> hardware.graphics 2025-10-25 18:54:03 +11:00
6d356be1f0
services/nginx: acme.email -> acme.defaults.email 2025-10-25 18:53:12 +11:00
03bfa7da93
system/greed: greetd.tuigreet -> tuigreet 2025-10-25 18:50:34 +11:00
84ddc3b6ec
user/rofi: switch to upstream rofi from wayland fork 2025-10-25 18:50:01 +11:00
github-actions[bot]
a9f5d4da4d packages/linux-lava: bump to 6.17.5 2025-10-25 01:45:00 +00:00
github-actions[bot]
c85d5d2150 flake: bump inputs 2025-10-25 01:44:58 +00:00
480208b718
user/neovim: autosave tex, and autosave while in insert 2025-09-05 23:53:39 +10:00
870fc4e2d7
hyacinth/networking: enable wakeonlan 2025-09-05 23:47:39 +10:00
c17c9873b9
user/catppuccin: fix theme script
it just kept reusing old generations because nix/profiles/home-manager
isn't.. consistently updated? idk how long this has been happening or if
they changed something ughhhhhh
2025-09-02 14:39:38 +10:00
6a3e5c147b
user/neovim: add clangd 2025-09-02 14:30:50 +10:00
c4bf653e14
user/neovim: add texlab 2025-08-27 17:28:29 +10:00
2d85d6635b
overlays/linux-lava: get rid of --target warning 2025-08-18 17:46:13 +10:00
e7d5efd169
packages/linux-lava: bump to 6.16.1 2025-08-18 17:26:33 +10:00
c9520a5bc8
packages/linux-lava: add bluetooth patch 2025-08-18 17:25:21 +10:00
d0fdbe8822
hyacinth/filesystem: increase tmpfs size to 24G 2025-08-18 17:23:37 +10:00
f8dc09565f
user/neovim: use virtual color highlight 2025-08-18 01:36:36 +10:00
6fabeecd1d
user/neovim: add auto-save.nvim 2025-08-18 00:11:28 +10:00
5989fc4e70
user/neovim: add bindings for commenting 2025-08-17 23:50:52 +10:00
240ff86538
user/neovim: add nvim-ts-autotag 2025-08-17 23:32:23 +10:00
b06bb7009c
user/neovim: add autoclose-nvim and update lualine config 2025-08-17 23:25:30 +10:00
d9df212560
user/neovim: add nvim-highlight-colors 2025-08-17 23:09:58 +10:00
633d781a25
user/neovim: add astro and tailwind 2025-08-17 23:06:33 +10:00
1cfcd112e8
hosts/hyacinth: remove jenkins, and enable bluetooth 2025-08-17 22:24:54 +10:00
1c2f3eb1c6
system/wireguard: add local-only peer 2025-08-14 11:18:11 +10:00
f140929d9c
packages/linux-lava: bump to 6.16 2025-08-12 12:17:43 +10:00
e94d04ab1f
flake: bump inputs 2025-08-12 12:17:36 +10:00
c0b9ed6b00
user/git: change name 2025-08-08 22:35:28 +10:00
3ef987f8d9
system/wireguard: use port 123 2025-08-08 22:34:56 +10:00
fdf6a3ce62
packages/linux-lava: bump to 6.15.7 2025-07-19 21:34:30 +10:00
cc066cd0f0
flake: bump inputs 2025-07-19 21:33:30 +10:00
ed43feb5b6
overlays/android-studio: remove 2025-07-17 19:53:39 +10:00
92a7023ba0
overlays/oci-cli: remove, patch merged 2025-07-17 18:06:16 +10:00
843aacb6d3
hosts/anemone: remove cisco packet tracer
uses an old insecure library. also cpt is cursed
2025-07-17 17:49:13 +10:00
09830a0aa8
user/neovim: setup tex 2025-07-17 17:42:43 +10:00
c556f63ebe
user/spicetify: remove skipStats extension 2025-07-17 17:41:55 +10:00
github-actions[bot]
b05012d8c9
packages/linux-lava: bump to 6.15.6 2025-07-17 17:41:03 +10:00
github-actions[bot]
0b138f3148
flake: bump inputs 2025-07-17 17:41:00 +10:00
ea07a839ae
packages/spotify-adblock: update cargo hash 2025-06-29 14:13:35 +10:00
718de94655
system/base: fix locale 2025-06-29 14:13:35 +10:00
72eca4fb05
packages/linux-lava: remove deleted patch, and switch to bore 2025-06-29 14:13:35 +10:00
github-actions[bot]
38e624851b packages/linux-lava: bump to 6.15.4 2025-06-29 02:07:17 +00:00
github-actions[bot]
b04c649e53 flake: bump inputs 2025-06-29 02:07:15 +00:00
e801f91435
workflows/cachix: fix run command 2025-05-31 23:29:36 +10:00
83ac77b864
workflows/cachix: cd out and in, to hopefully fix git-crypt problem 2025-05-26 17:36:16 +10:00
3ead5d12c5
hosts/hyacinth: enable wireguard 2025-05-26 17:22:24 +10:00
071fad3bcb
hosts/hyacinth: remove virtualisation and binfmt 2025-05-26 15:30:52 +10:00
c66e8d7307
rin/packages: move cisco packet tracer to anemone 2025-05-26 15:22:29 +10:00
a0053fe9ee
hyacinth/networking: enable wakeOnLan 2025-05-26 14:34:48 +10:00
0f1271badb
hyacinth/networking: update ip address 2025-05-24 20:22:32 +10:00
18b66630d0
workflows/cachix: wait after nix is installed 2025-05-23 01:35:59 +10:00
efb2a24118
workflows/cachix: fix syntax again 2025-05-23 01:35:10 +10:00
c2cf093a72
workflows/cachix: fix syntax 2025-05-23 01:33:29 +10:00
fe8d26a860
workflows/cachix: some more advanced waiting
i hope this works i have no idea why git-crypt does this it also happens
on local computers sometimes jalsdfjasoigrjoi
2025-05-23 01:31:42 +10:00
3f52fc1e81
workflows/cachix: lengthen sleep 2025-05-23 01:15:55 +10:00
8cb9905098
hosts/hazel: add wg_hazel secret
aaaaaaaaaaaa
2025-05-23 01:09:46 +10:00
74e7f5435f
system/wireguard: use new keys for hazel 2025-05-23 01:08:14 +10:00
adf5409e32
workflows/cachix: fix script, again.. 2025-05-23 01:06:18 +10:00
1fadd257f3
workflows/cachix: fix script 2025-05-23 01:04:57 +10:00
0253d64b96
hosts/hazel: use wireguard 2025-05-23 01:03:32 +10:00
3061733e46
workflows/cachix: try to make secret unlocking more consistent 2025-05-23 01:03:12 +10:00
9512dd2e41
system/wireguard: actually fix it this time.. 2025-05-23 00:48:36 +10:00
5ef6a68587
system/wireguard: fix dandelion again 2025-05-23 00:47:27 +10:00
93c91d5a6b
system/wireguard: fix dandelion config 2025-05-23 00:30:41 +10:00
817371bf01
workflows/cachix: unlock git crypt secrets 2025-05-23 00:21:09 +10:00
b8ad7638ef
hazel/networking: move address to secrets 2025-05-23 00:13:30 +10:00
bd4affdea0
system/wireguard: use local dns for hazel 2025-05-23 00:07:28 +10:00
616db33773
hosts/hazel: add unbound 2025-05-23 00:06:27 +10:00
7aa3a988fe
system/wireguard: refactor, and add hazel 2025-05-23 00:03:52 +10:00
718437153f
hosts/hyacinth: fix wg filepath 2025-05-22 23:43:56 +10:00
93279eb6e6
services/website: init 2025-05-22 23:42:08 +10:00
f35d104f84
services/unbound: allow wireguard clients 2025-05-22 23:38:50 +10:00
a6348c833e
system/wireguard: cleanup, create local ipv6 subnet, and use unbound dns 2025-05-22 23:38:13 +10:00
945eb34e60
hazel/networking: add ipv6 address 2025-05-22 23:27:40 +10:00
19ed50cc9d
users/hana: add hibiscus to authorized keys 2025-05-22 23:27:40 +10:00
69c13bc50e
users/hana: add dandelion to authorized keys 2025-05-22 23:27:40 +10:00
5f5aa86ce2
hosts/hazel: move services data to /flower 2025-05-22 23:27:39 +10:00
e7a7b39d41
hosts/hazel: init immich 2025-05-22 23:27:17 +10:00
e90ebf6220
hosts/hazel: enable https 2025-05-22 23:27:17 +10:00
cc76cdf00d
hosts/hazel: add acme_dns secret 2025-05-22 23:27:16 +10:00
5f5412f433
services/nginx: remove hosts 2025-05-22 23:27:13 +10:00
1db10b5b9d
services/unbound: fix subnet ip 2025-05-22 23:11:05 +10:00
44a3d4473f
services/unbound: fix syntax error 2025-05-22 23:09:50 +10:00
f87dfa314e
system/unbound: remove first line of stevenblack hosts 2025-05-22 23:03:17 +10:00
17164b05b9
services/unbound: bring back 2025-05-22 22:57:47 +10:00
1ecec11727
system/wireguard: add and default to an ipv6-only tunnel 2025-05-22 22:10:52 +10:00
bdbb5fe0de
dandelion/transmission-container: fix systemd container issues 2025-05-20 14:11:47 +10:00
203bc2ab53
system/wireguard: use cloudflare dns 2025-05-20 12:50:02 +10:00
3ebd082be2
system/wireguard: use wg-quick for clients 2025-05-20 12:50:02 +10:00
0fe62078fa
system/wireguard: use new anemone key 2025-05-20 12:50:02 +10:00
eb91ab1540
hosts/anemone: wg 2025-05-20 12:50:02 +10:00
d86285cdf9
secrets: fix wireguard json 2025-05-20 12:50:02 +10:00
ffa71a694a
hosts/dandelion: add wg secret 2025-05-20 12:50:02 +10:00
9217ce6e91
system/wireguard: bring back, with ipv6 support 2025-05-20 12:50:01 +10:00
8b0dfd5661
system/packages: add oci-cli 2025-05-20 01:17:17 +10:00
a915e57d34
overlays/oci-cli: init 2025-05-20 01:16:15 +10:00
315d480601
system/packages: add git-crypt, and move fd and rg from rin/packages 2025-05-19 23:04:39 +10:00
b1f4fcc223
system/base: use extraLocales 2025-05-19 20:46:50 +10:00
9787ed2636
system/base: fix locale name 2025-05-19 20:43:18 +10:00
37f2453f17
system/base: add en_GB to locales for postgres 2025-05-19 20:41:41 +10:00
4bc19ed87e
dandelion/kernel: remove duplicate sysctl 2025-05-19 20:24:01 +10:00
b2ae6493d9
dandelion/transmission-container: force config 2025-05-19 20:22:39 +10:00
a3bb553f14
system/transmission: move to services 2025-05-19 20:21:16 +10:00
7f4d9a5e69
flake: re-add website input for dandelion 2025-05-19 20:20:09 +10:00
ccf3fa2f4a
flake: bump stable to 25.05
required because of home-manager zsh changes
2025-05-19 20:17:58 +10:00
d0895da153
secrets: rekey for dandelion 2025-05-19 20:04:38 +10:00
3bacc817a2
hosts/dandelion: re-init 2025-05-19 19:43:57 +10:00
ee0a768c03
flake: bump stable nixpkgs and hm 2025-05-19 19:51:05 +10:00
5ea27ceb6b
Merge branch 'dev/server' 2025-05-19 19:45:44 +10:00
03859cf8c7
git-crypt: init 2025-05-19 18:41:33 +10:00
ba2c4f9f33
rin/packages,system/packages-gui: remove bitwarden
couldn't get polkit working, remove for now
2025-05-19 13:21:01 +10:00
23693d7268
overlays/steam: remove openssl 1.1.1 2025-05-19 13:19:42 +10:00
2b6b616dbf
overlays/rofi: remove 2025-05-19 13:18:06 +10:00
github-actions[bot]
88b4fca28a
packages/linux-lava: bump to 6.14.7 2025-05-19 13:08:45 +10:00
github-actions[bot]
e82fcc0c4c
flake: bump inputs 2025-05-19 13:08:45 +10:00
631d340887
anemone: add syncthing 2025-05-13 10:00:22 +10:00
f85f39f7fa
rin/packages: switch to gimp3 2025-05-10 14:59:25 +10:00
cc2adb3aa8
services/syncthing: use tmpfile rules to create data directories 2025-05-05 17:26:44 +10:00
f957be17d0
user/zsh: switch to new initcontent 2025-04-29 20:28:32 +10:00
dfdb1afe39
rin/packages: use latest nodejs, 18 is eol 2025-04-29 20:23:13 +10:00
github-actions[bot]
cc57b59ff2
packages/linux-lava: bump to 6.14.4 2025-04-29 01:49:46 +00:00
github-actions[bot]
ed5e0e405d
flake: bump inputs 2025-04-29 01:49:45 +00:00
16a8c3e186
services/syncthing: init 2025-04-24 22:40:09 +10:00
95b3116fa8
user/neovim: add ts-groovy 2025-04-25 00:02:55 +10:00
5a834de1dd
hosts/hyacinth: enable jenkins 2025-04-24 23:49:37 +10:00
a224191007
hyacinth/packages: remove android-studio 2025-04-10 23:27:40 +10:00
27edd08727
hosts/hazel: fix nginx module 2025-04-05 14:11:08 +11:00
28cca81e69
hazel: add nextcloud 2025-04-05 14:10:13 +11:00
7a6aa37647
secrets: rekey 2025-04-05 14:09:28 +11:00
dbbd96c274
hazel/filesystem: remove noauto 2025-04-05 13:42:08 +11:00
a411469b2b
system/packages: add kitty.terminfo 2025-04-05 13:39:00 +11:00
7f3df40afe
system/base: remove nixpkgs registry 2025-04-05 13:24:31 +11:00
7d50fa4b75
hazel/filesystem: fix empty option 2025-04-05 13:22:12 +11:00
9212de3ab2
hosts/hazel: set env to headless 2025-04-05 13:21:09 +11:00
e6f0a356af
hosts/hazel: use hm-stable 2025-04-05 13:19:34 +11:00
f535775b77
hazel/filesystem: fix syntax 2025-04-05 13:18:05 +11:00
548c2f868f
hosts/hazel: remove packages module 2025-04-05 13:16:08 +11:00
5be539a686
flake: lock inputs 2025-04-05 13:14:43 +11:00
4d751d72b3
hosts/hazel: init 2025-04-05 13:05:59 +11:00
3502a31065
user/neovim-minimal: further minimise 2025-04-05 12:13:19 +11:00
a4a38b4a8b
system/nix: use nixVersions.latest 2025-04-03 22:20:16 +11:00
github-actions[bot]
1e2850dd38 flake: bump inputs 2025-04-03 01:44:45 +00:00
21b7184b65
user/neovim: remove prisma 2025-03-29 13:09:33 +11:00
cffbc858f7
packages/linux-lava: remove ntsync patch
now upstreamed as part of 6.14
2025-03-28 00:42:19 +11:00
github-actions[bot]
74501e3c39 packages/linux-lava: bump to 6.14 2025-03-27 13:15:47 +00:00
github-actions[bot]
ba15ebcf4c flake: bump inputs 2025-03-27 13:15:46 +00:00
fd14625074
packages/linux-lava: use alternative logic to fix error 2025-03-28 00:13:47 +11:00
04d695c77a
packages/linux-lava: ignore patch when it's a new release 2025-03-28 00:06:56 +11:00
b9681ed925
overlays/wpa-supplicant: init, makes it not spam journal 2025-03-25 22:17:23 +11:00
c8f4410d94
user/eww: use lighter text for shadow 2025-03-25 21:59:14 +11:00
cdae556af4
user/hyprlock: scale based on new hidpi option 2025-03-23 19:15:35 +11:00
78c578b7ca
hosts/hyacinth: remove postgres 2025-03-23 19:11:58 +11:00
c3368f7ec5
system/nix: try out nixos-rebuild-ng 2025-04-24 01:32:02 +10:00
a6b826f089
system/packages-gui: add bitwarden for polkit actions 2025-04-23 18:15:18 +10:00
b310b4e691
rin/packages: add bitwarden messaginghost to firefox 2025-04-23 17:56:28 +10:00
c54fa3c517
rin/packages: add bitwarden-desktop 2025-04-23 17:56:28 +10:00
9f525a8756
anemone/kernel: fix hibernation not shutting down 2025-04-21 00:49:22 +10:00
ffb3659357
rin/packages: add cisco packet tracer 2025-04-21 00:48:09 +10:00
e7724c0212
anemone/kernel: disable suspend-then-hibernate
really buggy, couldn't ever get it working properly

system goes to sleep, but never wakes up to hibernate

when waking up from sleep after the specified time, only then will it
start to hibernate, which takes like a minute that I have to wait for

not to mention it has a bug where after hibernation the machine stays
on, so i have to force it off and restart it..... bruh
2025-04-15 21:15:16 +10:00
90febfba6e
user/neovim: add ts-java, kotlin, swift, xml 2025-04-15 12:51:55 +10:00
c0a054c937
overlays/android-studio: unpatch 2025-04-08 16:37:23 +10:00
f724467c76
hosts/anemone: add android-studio 2025-04-08 16:35:29 +10:00
github-actions[bot]
fd45845bdf
packages/linux-lava: bump to 6.14.1 2025-04-08 16:35:29 +10:00
github-actions[bot]
2421602b88
flake: bump inputs 2025-04-08 16:35:29 +10:00
7284f81fd4
users/rin: add to dialout group 2025-04-08 16:04:19 +10:00
ae26fd9a09
user/catppuccin: use pink accent for both schemes 2025-03-23 16:58:28 +11:00
0ae63f2c72
user/eww: add box-shadow around widgets 2025-03-23 16:53:26 +11:00
7c36f87860
user/catppuccin: use pink accent for latte 2025-03-23 14:47:35 +11:00
a5538535c2
user/eww: fix null coercion 2025-03-23 13:29:25 +11:00
29a5866f90
user/rin: hack, include all gui imports to avoid inf recursion 2025-03-23 13:26:42 +11:00
f1e9e140d6
system/packages: fix infinite recursion 2025-03-23 13:21:46 +11:00
571f0f6f3e
treewide: replace enableGUI with config.me.gui 2025-03-23 12:57:20 +11:00
3ccf85aa9e
options: rename fprint to hasFingerprint 2025-03-23 12:47:02 +11:00
095d24b797
options: use types.str instead of types.string 2025-03-23 12:45:59 +11:00
d92455cebf
user/eww: use boolToString 2025-03-23 12:44:10 +11:00
d9269fbb93
user/eww: fix wrong battery config name 2025-03-23 12:41:48 +11:00
cca1730f3f
hosts/anemone: configure me 2025-03-23 12:39:35 +11:00
1a62545c3c
user/{eww,hypridle,hyprlock}: configure based on options.me 2025-03-23 12:36:07 +11:00
f33525f565
options: init 2025-03-23 11:52:43 +11:00
e1e94504e4
users/rin: remove old powercord patch 2025-03-23 11:17:42 +11:00
6c2790cb05
user/rin: remove pass 2025-03-23 00:32:59 +11:00
da47e42111
user/eww-wayland: rename to eww 2025-03-23 00:32:41 +11:00
438eb54cea
user/eww: remove res 2025-03-23 00:32:09 +11:00
2e74aa5f00
treewide: prune more old xorg configs, and rename wayland modules 2025-03-23 00:29:58 +11:00
46c30b9d5d
treewide: prune out xorg 2025-03-23 00:23:58 +11:00
b89253931d
user/kitty: add scrollback pager 2025-03-23 11:12:55 +11:00
94d72b25f0
rin/packages: remove discord-canary 2025-03-21 21:14:21 +11:00
30a59b4be0
user/spicetify: link spicetify to .local/bin
when switching themes using home-manager specialisations, the user
environment in /etc/profiles/per-user is not updated (managed by nixos),
so we create a symlink here to force it to use the current hm config's
spicetify (.local/bin has higher priority)

this is a workaround at best, a hack at worst. should probably somehow
make /etc/profiles irrelevant and use something else user-managed.
2025-03-20 22:28:12 +11:00
5f1b9b17ec
user/spicetify: add custom css for nowplaying menu 2025-03-20 21:54:10 +11:00
54e8025488
user/kitty: set window margin to 5 2025-03-19 15:32:29 +11:00
8cd8e9e3dd
user/catppuccin: add get_last to theme script 2025-03-19 14:06:32 +11:00
f6cc66d75c
user/catppuccin: remove kvantum 2025-03-19 13:53:06 +11:00
f9de112a18
user/catppuccin: persist theme on reboot 2025-03-19 13:52:11 +11:00
3c5d4ba108
anemone/kernel: allow hibernation on ac 2025-03-19 00:36:17 +11:00
bc793316b9
system/greetd_wayland: fix autologin 2025-03-19 00:35:57 +11:00
github-actions[bot]
c826c7f381
packages/linux-lava: bump to 6.13.7 2025-03-18 20:03:22 +11:00
github-actions[bot]
cd1b1da2fc
flake: bump inputs 2025-03-18 20:03:22 +11:00
9ef4231da0
user/hyprlock: styling to match eww 2025-03-18 19:41:03 +11:00
e447adb0ce
system/greetd_wayland: fix and source zshrc 2025-03-18 00:37:15 +11:00
a9e3d8421e
user/eww-wayland: use 'bad wifi' icon for missing net strength 2025-03-18 18:59:47 +11:00
8818d8a1aa
user/catppuccin: create specialisation switcher 2025-03-18 18:01:59 +11:00
7d8dbaef0d
user/catppuccin: create specialisations for more streamlined switching 2025-03-18 17:29:53 +11:00
c0b65cd53b
workflows/cachix: remove packages for more free build space 2025-03-18 11:22:01 +11:00
4ce28a177c
packages/linux-lava: don't use ccache by default 2025-03-18 00:09:46 +11:00
6eda948d6e
workflow: fixup pat token 2025-03-17 23:53:47 +11:00
b6c10e7325
workflow: use pat token to allow for workflow chaining 2025-03-17 23:48:59 +11:00
faad8ea374
workflow: use bash for update.sh
i tried...
2025-03-17 23:32:16 +11:00
21f6b46021
packages/spotify-adblock: change to cargoHash 2025-03-17 23:23:26 +11:00
09041e2ec8
workflow: update, and add update script 2025-03-17 23:16:12 +11:00
cc835da43c
treewide: rename deprecated options 2025-03-17 22:13:11 +11:00
d99a56cd95
anemone/kernel: use suspend-then-hibernate on lid close 2025-03-17 22:02:49 +11:00
79a6b783bc
anemone/kernel: hibernation setup 2025-03-17 21:16:44 +11:00
ef22d9e96c
system/kernel: set zram priority to 100 2025-03-17 21:15:09 +11:00
23fc6fe637
user/hyprlock: custom fingerprint message (removes parantheses) 2025-03-17 20:25:21 +11:00
5e5720a3f7
user/hypridle: pause player on sleep 2025-03-17 20:24:01 +11:00
5b98df2cee
rin/packages: add vesktop 2025-03-17 18:22:47 +11:00
9efcffd0f6
system/base: set locale to en_AU 2025-03-17 18:17:59 +11:00
024a93baf8
user/hyprlock: move date to align with time 2025-03-17 18:02:16 +11:00
e02d908d58
user/catppuccin: switch back to mocha 2025-03-17 17:46:18 +11:00
ffc5a80849
user/hyprlock: more theming! 2025-03-17 17:44:32 +11:00
cde9d8faec
user/hyprlock: proper configuration 2025-03-17 16:35:21 +11:00
77bfc31355
user/catppuccin: theme hyprlock 2025-03-17 16:27:44 +11:00
9d6693a0ae
hosts/anemone: enable fprintd 2025-03-17 16:20:47 +11:00
b288e1c78c
user/hypridle: expose package 2025-03-17 16:07:33 +11:00
282a0ae22d
system/greetd_wayland: setup auto-login 2025-03-17 15:56:47 +11:00
38bcba4756
user/hypridle: init 2025-03-17 15:52:18 +11:00
0fed2f3599
user/eww-wayland: extend battery by default 2025-03-17 15:30:26 +11:00
210addb2a7
user/zsh: disable execute 2025-03-17 15:19:33 +11:00
aa339560b3
user/hyprlock: init 2025-03-17 15:16:11 +11:00
8dc54c3565
user/spicetify: remove gradient 2025-03-17 14:02:06 +11:00
fa2e2c3ce6
user/spicetify: switch to catppuccin theme
i give up with dribbblish
2025-03-17 13:35:53 +11:00
4b45190901
user/spicetify: use custom colour scheme 2025-03-17 13:30:40 +11:00
7f300748af
user/spicetify: enable devtools 2025-03-17 13:13:05 +11:00
0a6ee4cd3d
user/spicetify: change some colours 2025-03-17 13:09:03 +11:00
ae7ead0309
user/catppuccin: theme qt6 2025-03-17 12:51:21 +11:00
eadc1959d0
user/theming: set cursor size to 24 2025-03-17 12:22:29 +11:00
de92335ae5
user/theming: follow catppuccin for dark/light gtk config 2025-03-17 12:07:27 +11:00
ae557b287e
user/catppuccin: switch to latte 2025-03-17 11:57:54 +11:00
716c28a303
user/neovim: disable mouse 2025-03-17 01:48:55 +11:00
b9df2f3a0c
user/spicetify: bring back with updates 2025-03-17 01:33:41 +11:00
017e2bc812
user/{dunst,eww-wayland}: use crust instead of surface for cat. colours 2025-03-17 00:44:46 +11:00
db469ad58f
user/rofi-wayland: use catppuccin colours 2025-03-17 00:41:24 +11:00
06c3f076a4
user/dunst: minor tweaks to layout 2025-03-17 00:22:49 +11:00
606dba7e08
user/eww-wayland: use accent colour 2025-03-17 00:10:48 +11:00
27f73340de
user/dunst: theme with catppuccin 2025-03-17 00:06:11 +11:00
2f37471697
user/catppuccin: enable gtk 2025-03-16 23:59:45 +11:00
76197628bc
anemone/kernel: set min freq to 400MHz 2025-03-16 20:59:32 +11:00
94a89fca4b
hosts/anemone: enable tlp 2025-03-16 01:19:23 +11:00
4326568b66
rin/packages: add tetrio (plus) 2025-03-16 00:29:48 +11:00
43573ebf99
user/eww-wayland: use surface1 for background 2025-03-15 22:46:20 +11:00
70caf4cd4b
user/eww-wayland: more widgets!!
includes widgets for bluetooth, wifi, and battery

also sets a margin for the title widget
2025-03-15 22:37:47 +11:00
91a993a8f7
user/eww-wayland: fix title script to truncate properly 2025-03-15 22:36:14 +11:00
88196824f6
user/eww-wayland: use catppuccin colours 2025-03-15 20:20:13 +11:00
6d49e2b75d
system/gui: remove font-awesome 2025-03-15 19:43:09 +11:00
9eb196ea3a
overlays/cascadia-code: init to remove NF icons 2025-03-15 17:39:47 +11:00
b0d7064ca3
system/gui: prioritise material icons 2025-03-15 17:24:04 +11:00
a66544d92f
system/gui: add material-symbols 2025-03-15 16:32:38 +11:00
27d1c31e35
treewide: prune packages and various unused fluff
- removed shells, broken for like 2 years now
- removed discord mods and spicetify
- removed inputs for services
- removed various unused inputs
- removed various unused packages
2025-03-15 23:07:42 +11:00
bebaa0c14f
hosts/{caramel,dandelion}: decommission 2025-03-15 22:50:44 +11:00
4a71a4cb79
rin/packages: use vscode.fhs, and include dotnet 2025-03-15 01:59:10 +11:00
4b1ea1f571
rin/packages: move some heavy packages to hyacinth only 2025-03-15 01:59:10 +11:00
920fb1971a
hosts/anemone: add wireshark 2025-03-15 01:43:48 +11:00
c1c6c0102f
user/eww-wayland: bring back shortened time 2025-03-15 01:43:48 +11:00
b362462905
system/packages: add ecryptfs 2025-03-15 01:43:48 +11:00
c5079d7909
system/home-manager: move imports into module and follow new name 2025-03-15 01:43:48 +11:00
f071579f58
rin/packages: remove firefox messaging hosts
mfw I don't pay attention to the deprecation notice

pass was never quite used anyway
2025-03-15 01:43:48 +11:00
82839373bf
packages/linux-lava: hack further to only overlay for linux-lava specifically
wowie wowzers, this is a terrible hack. All this is needed only because
I couldn't for the life of me find a way to override rust-bindgen from
buildLinux.

Simply including the overlay would require rebuilding a crapton of
things that depend on rust-bindgen, so well, this'll have to do for now.
2025-03-15 01:40:19 +11:00
24aa8d0174
packages/linux-lava: fix clang build issues after nixpkgs changes 2025-03-15 00:28:46 +11:00
80be3da7fc
packages/linux-lava: bump to 6.13.6 2025-03-08 23:44:45 +11:00
228123e2c7
flake: bump inputs
• Updated input 'aagl':
    'github:ezKEa/aagl-gtk-on-nix/00df3ad02364a6fb8f1105dc72ae770b748c62eb?narHash=sha256-msxbnOw/nh8GJ87YtBEDT1jhVldOBtxHRF2KgvYPeDA%3D' (2024-12-18)
  → 'github:ezKEa/aagl-gtk-on-nix/5505af25160f16ad26f9107aebee9ea7713b59d9?narHash=sha256-u695YUS3R5HI1VQp7feCifWYOn3Gh6yGde1vp5rKqTg%3D' (2025-03-02)
• Updated input 'aagl/nixpkgs':
    'github:nixos/nixpkgs/d3c42f187194c26d9f0309a8ecc469d6c878ce33?narHash=sha256-cHar1vqHOOyC7f1%2BtVycPoWTfKIaqkoe1Q6TnKzuti4%3D' (2024-12-17)
  → 'github:nixos/nixpkgs/5135c59491985879812717f4c9fea69604e7f26f?narHash=sha256-Vr3Qi346M%2B8CjedtbyUevIGDZW8LcA1fTG0ugPY/Hic%3D' (2025-02-26)
• Updated input 'agenix':
    'github:ryantm/agenix/f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41?narHash=sha256-b%2Buqzj%2BWa6xgMS9aNbX4I%2BsXeb5biPDi39VgvSFqFvU%3D' (2024-08-10)
  → 'github:ryantm/agenix/e600439ec4c273cf11e06fe4d9d906fb98fa097c?narHash=sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA%3D' (2025-01-15)
• Updated input 'catppuccin/catppuccin-v1_2':
    'https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.1/0193e646-1107-7f69-a402-f2a3988ecf1d/source.tar.gz?narHash=sha256-CFX4diEQHKvZYjnhf7TLg20m3ge1O4vqgplsk/Kuaek%3D' (2024-12-20)
  → 'https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.0/0193e5e0-33b7-7149-a362-bfe56b20f64e/source.tar.gz?narHash=sha256-Let3uJo4YDyfqbqaw66dpZxhJB2TrDyZWSFd5rpPLJA%3D' (2024-12-20)
• Updated input 'catppuccin/home-manager':
    'github:nix-community/home-manager/7b9ece1bf3c8780cde9b975b28c2d9ccd7e9cdb9?narHash=sha256-v9WQ3c4ctwPMfdBZMZxpdM9xXev4uChce4BxOpvsu0E%3D' (2025-01-23)
  → 'github:nix-community/home-manager/1395379a7a36e40f2a76e7b9936cc52950baa1be?narHash=sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI%3D' (2024-12-19)
• Updated input 'catppuccin/home-manager-stable':
    'github:nix-community/home-manager/bd65bc3cde04c16755955630b344bc9e35272c56?narHash=sha256-dinzAqCjenWDxuy%2BMqUQq0I4zUSfaCvN9rzuCmgMZJY%3D' (2025-01-08)
  → 'github:nix-community/home-manager/80b0fdf483c5d1cb75aaad909bd390d48673857f?narHash=sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw%3D' (2024-12-16)
• Updated input 'catppuccin/nixpkgs-stable':
    'github:NixOS/nixpkgs/47addd76727f42d351590c905d9d1905ca895b82?narHash=sha256-6qY0pk2QmUtBT9Mywdvif0i/CLVgpCjMUn6g9vB%2Bf3M%3D' (2025-01-22)
  → 'github:NixOS/nixpkgs/b47fd6fa00c6afca88b8ee46cfdb00e104f50bca?narHash=sha256-nbG9TijTMcfr%2Bau7ZVbKpAhMJzzE2nQBYmRvSdXUD8g%3D' (2024-12-19)
• Updated input 'catppuccin/nuscht-search':
    'github:NuschtOS/search/570cc17bbc25650eb7d69e4fcda8cfd2f1656922?narHash=sha256-nH3zK2ki0fd5o5qvbGHxukE4qnOLJa1uCzoDObG5vrE%3D' (2025-01-20)
  → 'github:NuschtOS/search/3051be7f403bff1d1d380e4612f0c70675b44fc9?narHash=sha256-Y47y%2BLesOCkJaLvj%2BdI/Oa6FAKj/T9sKVKDXLNsViPw%3D' (2024-12-09)
• Updated input 'catppuccin-palette':
    'github:catppuccin/palette/b85d36adec22631684ae64ced0a5cdd15462de3b?narHash=sha256-8AZVLJq5fKbMd/YFbqwgpHB7p4iTPTIMmC39R%2B3ZZ80%3D' (2024-11-07)
  → 'github:catppuccin/palette/5bb0420add3b61e4c7e32549e014f06e03dfbc42?narHash=sha256-aIIwnSRJPQGaAwprYIRQ7Bp5MtpAhJS8Y007cBi0UsI%3D' (2025-03-07)
• Updated input 'discover':
    'github:trigg/Discover/c083f0b38309a0989a9562864110195a91933eb4?narHash=sha256-0b0uZDa9Q3pQ6X65C%2BE31dMpdTPt4vvHDEqFEtRoedg%3D' (2024-08-16)
  → 'github:trigg/Discover/e7992e015212bdaaf36c9800cfcba1000cea0f65?narHash=sha256-GMbkCB70Rp18fk3mUIfYEQlqibDWtMg74ejxecT75mA%3D' (2024-12-16)
• Updated input 'home-manager':
    'github:nix-community/home-manager/d00c6f6d0ad16d598bf7e2956f52c1d9d5de3c3a?narHash=sha256-i5ay20XsvpW91N4URET/nOc0VQWOAd4c4vbqYtcH8Rc%3D' (2024-12-06)
  → 'github:nix-community/home-manager/26f6b862645ff281f3bada5d406e8c20de8d837c?narHash=sha256-iqRxCsRxE/Q/3W1RHxQMthPKEda0hhY65uxEpE5TNk4%3D' (2025-03-08)
• Updated input 'linux-tkg':
    'github:Frogging-Family/linux-tkg/bab5159471a507bfe9842149e80f4929f6be5dd4?narHash=sha256-G375M%2BkgIE%2BwqYI8sZkfEtgOXP7RKzX2CU3HaN3IM%2BA%3D' (2024-12-05)
  → 'github:Frogging-Family/linux-tkg/1146bf0623e06befb70e2905f42f033351fbd19f?narHash=sha256-39zEl8F5HUOHdVaMeo%2B0jYs056w3vDmjdPhK/GzbqBU%3D' (2025-03-08)
• Updated input 'neovim-nightly':
    'github:nix-community/neovim-nightly-overlay/3930a71f90bacc656e8bdf19cc0faa9ebf10353a?narHash=sha256-x8slAzUe1gopASFNhnHO9DmWXvnF7u27YMSwTmIY8bU%3D' (2024-12-07)
  → 'github:nix-community/neovim-nightly-overlay/c1855b306b8eeb70118b3ba70471188a65e694e7?narHash=sha256-qaDw0TyUceZBLntPBOdd1642T/mBGMNtK5NBuv2gWiY%3D' (2025-03-07)
• Updated input 'neovim-nightly/flake-parts':
    'github:hercules-ci/flake-parts/205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9?narHash=sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c%3D' (2024-12-04)
  → 'github:hercules-ci/flake-parts/3876f6b87db82f33775b1ef5ea343986105db764?narHash=sha256-ZaMw0pdoUKigLpv9HiNDH2Pjnosg7NBYMJlHTIsHEUo%3D' (2025-03-01)
• Updated input 'neovim-nightly/git-hooks':
    'github:cachix/git-hooks.nix/6f4e2a2112050951a314d2733a994fbab94864c6?narHash=sha256-SVQVsbafSM1dJ4fpgyBqLZ%2BLft%2BjcQuMtEL3lQWx2Sk%3D' (2024-12-04)
  → 'github:cachix/git-hooks.nix/42b1ba089d2034d910566bf6b40830af6b8ec732?narHash=sha256-JvQvtaphZNmeeV%2BIpHgNdiNePsIpHD5U/7QN5AeY44A%3D' (2025-03-02)
• Removed input 'neovim-nightly/git-hooks/nixpkgs-stable'
• Updated input 'neovim-nightly/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/56f8ea8d502c87cf62444bec4ee04512e8ea24ea?narHash=sha256-nMMQXREGvLOLvUa0ByhYFdaL0Jov0t1wzLbKjr05P2w%3D' (2024-12-04)
  → 'github:hercules-ci/hercules-ci-effects/06519cec8fb32d219006da6eacd255504a9996af?narHash=sha256-0CjCfbq0yHWexOrpO06e2WU1r5JAqR6ffy1zgM3NksI%3D' (2025-02-15)
• Updated input 'neovim-nightly/hercules-ci-effects/flake-parts':
    'github:hercules-ci/flake-parts/205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9?narHash=sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c%3D' (2024-12-04)
  → 'github:hercules-ci/flake-parts/32ea77a06711b758da0ad9bd6a844c5740a87abd?narHash=sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm%2BzmZ7vxbJdo%3D' (2025-02-01)
• Updated input 'neovim-nightly/neovim-src':
    'github:neovim/neovim/517ecb85f58ed6ac8b4d5443931612e75e7c7dc2?narHash=sha256-QjFVx/zMyutuW1TWzOKEe5cY7YGqvPkRhi9wQHY52Yo%3D' (2024-12-06)
  → 'github:neovim/neovim/e46f07b1d2942c7b5c08fca9a4cac735ee2c0c71?narHash=sha256-zcgucpL/rgEC/IIii6R4NvmtJsYT%2B/F0ub1FQOWVv0Q%3D' (2025-03-06)
• Added input 'neovim-nightly/treefmt-nix':
    'github:numtide/treefmt-nix/3d0579f5cc93436052d94b73925b48973a104204?narHash=sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU%3D' (2025-02-17)
• Added input 'neovim-nightly/treefmt-nix/nixpkgs':
    follows 'neovim-nightly/nixpkgs'
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/094b2c4ee459dd5d3d1611c919d59f26110053b0?narHash=sha256-mkyyBVPj8SIc01zEBX3gZ2ATJj8Fb06nxDME7pDxYQo%3D' (2024-12-02)
  → 'github:fufexan/nix-gaming/0e78e723bdf5a13dc45f3a6b994715b871c3f650?narHash=sha256-M/ppn20it9Ru2hoYoWIYzEWyTfBVxQiAQ7SvRws%2BluY%3D' (2025-03-07)
• Updated input 'nix-gaming/flake-parts':
    'github:hercules-ci/flake-parts/506278e768c2a08bec68eb62932193e341f55c90?narHash=sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS%2Bb4tfNFCwE%3D' (2024-11-01)
  → 'github:hercules-ci/flake-parts/3876f6b87db82f33775b1ef5ea343986105db764?narHash=sha256-ZaMw0pdoUKigLpv9HiNDH2Pjnosg7NBYMJlHTIsHEUo%3D' (2025-03-01)
• Updated input 'nix-gaming/flake-parts/nixpkgs-lib':
    'https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz?narHash=sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s%3D' (2024-11-01)
  → 'https://github.com/NixOS/nixpkgs/archive/6d3702243441165a03f699f64416f635220f4f15.tar.gz?narHash=sha256-3wHafybyRfpUCLoE8M%2BuPVZinImg3xX%2BNm6gEfN3G8I%3D' (2025-03-01)
• Updated input 'nix-gaming/nixpkgs':
    'github:NixOS/nixpkgs/33b9d57c656e65a9c88c5f34e4eb00b83e2b0ca9?narHash=sha256-9Vvu3a1ep1LB6F/kVE2hHH2HQzhSFtUyJYiJRkUkC4Q%3D' (2024-11-30)
  → 'github:NixOS/nixpkgs/199169a2135e6b864a888e89a2ace345703c025d?narHash=sha256-igS2Z4tVw5W/x3lCZeeadt0vcU9fxtetZ/RyrqsCRQ0%3D' (2025-03-01)
• Removed input 'nix-gaming/umu'
• Removed input 'nix-gaming/umu/nixpkgs'
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/8cdaf8885c9c85d9d27b594dbe882406aadfe00e?narHash=sha256-bNXO%2BOGxrOjAxv/Lnyj84tNDicJ/FdLyLJHzOKSzYU8%3D' (2024-12-05)
  → 'github:nix-community/nixos-generators/507911df8c35939050ae324caccc7cf4ffb76565?narHash=sha256-Co2kAD2SZalOm%2B5zoxmzEVZNvZ17TyafuFsD46BwSdY%3D' (2025-03-02)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/0e4fdd4a0ab733276b6d2274ff84ae353f17129e?narHash=sha256-qiyO0GrTvbp869U4VGX5GhAZ00fSiPXszvosY1AgKQ8%3D' (2024-12-01)
  → 'github:nix-community/nixpkgs.lib/1418bc28a52126761c02dd3d89b2d8ca0f521181?narHash=sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s%3D' (2025-01-12)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/e563803af3526852b6b1d77107a81908c66a9fcf?narHash=sha256-IS3bxa4N1VMSh3/P6vhEAHQZecQ3oAlKCDvzCQSO5Is%3D' (2024-12-06)
  → 'github:NixOS/nixos-hardware/b48cc4dab0f9711af296fc367b6108cf7b8ccb16?narHash=sha256-RUAdT8dZ6k/486vnu3tiNRrNW6%2BQ8uSD2Mq7gTX4jlo%3D' (2025-03-07)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d0797a04b81caeae77bcff10a9dde78bc17f5661?narHash=sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG%2BcBns%3D' (2024-12-05)
  → 'github:NixOS/nixpkgs/10069ef4cf863633f57238f179a0297de84bd8d3?narHash=sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U%3D' (2025-03-06)
• Updated input 'nvim-treesitter':
    'github:nvim-treesitter/nvim-treesitter/894cb3cebbad0535fb4e319ada5d875dbc48d8b9?narHash=sha256-ehWBEM7OAEsUPmIf2dNfiALh%2BX9hSABqw7xU8SBaSBY%3D' (2024-12-07)
  → 'github:nvim-treesitter/nvim-treesitter/ee8e149a4ff75ebd5f1b065831746ddaf0e480ec?narHash=sha256-nnnCrsOFm82/Oa6/ipbRQiy7K4f5o9bw4G6qGaYNGIU%3D' (2025-03-08)
• Updated input 'packwiz':
    'github:comp500/packwiz/0626c00149a8d9a5e9f76e5640e7b8b95c064350?narHash=sha256-eAGfLUcyjDR2oJjLK3%2BDiuICTqoOcIwO5wL350w6vGw%3D' (2024-10-14)
  → 'github:comp500/packwiz/241f24b550f6fe838913a56bdd58bac2fc53254a?narHash=sha256-VmNsWzsFVNRciNIPUXUVos4cBdpawgN1/nPwMjNpx%2B0%3D' (2025-01-19)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/66526479b295ad238843a8a7367d2da7ec102757?narHash=sha256-FEDfBpM82XGdHDbLDJC4lV%2BQXSVN1rERt1MqtBGJZds%3D' (2024-12-07)
  → 'github:oxalica/rust-overlay/16b6045a232fea0e9e4c69e55a6e269607dd8e3f?narHash=sha256-tEpgT%2Bq5KlGjHSm8MnINgTPErEl8YDzX3Eps8PVc09g%3D' (2025-03-08)
• Updated input 'spicetify-themes':
    'github:spicetify/spicetify-themes/ca4264263a51800a119fa0bea231f25f58857d5f?narHash=sha256-f1oqEKH594LTACGzw6ZUQpgZqyHLeMz8HBvAfY5ub00%3D' (2024-12-03)
  → 'github:spicetify/spicetify-themes/10431678bd682547a2afdff855e8d26a3007f2c8?narHash=sha256-%2BlcRYilVK3cp5Ii6Q3/d00udTsq%2BUGqD%2ByKv2e2e6eA%3D' (2025-03-03)
• Updated input 'spotify-adblock':
    'github:abba23/spotify-adblock/7391666109c8f9d0ccc8254dc0ff7e28139c663b?narHash=sha256-OjbJAn/QWXxaARyiKDBLdxCRscC%2BZdaCRoBhINkmfHM%3D' (2024-09-15)
  → 'github:abba23/spotify-adblock/8e0312d6085a6e4f9afeb7c2457517a75e8b8f9d?narHash=sha256-nwiX2wCZBKRTNPhmrurWQWISQdxgomdNwcIKG2kSQsE%3D' (2025-02-10)
• Updated input 'zsh-abbr':
    'git+https://github.com/olets/zsh-abbr?ref=refs/heads/main&rev=510cf85ce7c1a3a0cf8e81aefe83b8c79c2ae09c&submodules=1' (2024-11-12)
  → 'git+https://github.com/olets/zsh-abbr?ref=refs/heads/main&rev=f9e43d78110db0a8bf8ec75ca5b101a06b1d5ce8&submodules=1' (2025-02-21)
2025-03-08 23:41:14 +11:00
c464b40e6a
rin/packages: add obsidian 2025-03-08 23:30:15 +11:00
4423adbd61
system/packages: add comma 2025-03-08 23:25:08 +11:00
4c08dd9171
user/catppuccin: add a palette attribute 2025-03-06 22:38:08 +11:00
496274c0a5
user/neovim: use correct colors for signify 2025-03-06 22:12:46 +11:00
2631a1fadc
rin/packages: add jetbrains idea 2025-02-23 20:34:18 +11:00
c3e83989a7
rin/packages: add android-studio 2025-02-13 19:28:15 +11:00
9a85f90699
user/catppuccin: init 2025-02-13 19:28:15 +11:00
ee430bd7d0
user/neovim: setup latex 2025-01-15 23:21:25 +11:00
a4e71dcbd3
rin/wayland: add wl-clipboard 2025-01-15 23:04:23 +11:00
bedb4544cc
user/eww-wayland: add ext mainbar 2025-01-12 13:07:16 +11:00
1e6f7a3676
hosts/hyacinth: switch to wayland 2025-01-12 12:10:30 +11:00
aeb5b7e9a0
user/theming: use default gtk themes 2025-01-03 19:15:22 +11:00
7d79d605d3
system/aagl: init, and enable on hyacinth 2025-01-03 18:39:05 +11:00
ec14782c77
workflow: add .gitignore to ignore result 2025-01-03 18:38:36 +11:00
2e21312570
rin/packages: add osu-lazer and osu-wine 2024-12-19 23:04:56 +11:00
df3866ba66
hosts/hyacinth: enable bluetooth 2024-12-07 22:58:14 +11:00
367901821a
user/neovim: rename tsserver to ts_ls 2024-12-07 22:44:36 +11:00
53541504ec
system/audio: remove alsa persistence 2024-12-07 22:43:33 +11:00
87b1632ae2
flake: include submodules for zsh-abbr 2024-12-07 22:39:40 +11:00
0785ab9bcd
overlays/{discord,picom}: remove 2024-12-07 21:09:59 +11:00
cb168182b3
system/packages: remove rocm 2024-12-07 20:36:09 +11:00
484ed2e926
rin/packages: update to new gnome package names 2024-12-07 20:35:30 +11:00
7cebea5535
overlays/corectrl: remove 2024-12-07 20:33:19 +11:00
882e1455cd
system/printing: remove epson driver 2024-12-07 20:33:19 +11:00
7e8d0a59ee
rin/packages: remove osu 2024-12-07 20:33:19 +11:00
b2b9c08d73
system/gui: rename changed font package name 2024-12-07 20:33:19 +11:00
b72afdf856
overlays/utillinux: init to alias 2024-12-07 20:33:19 +11:00
a669c4519b
packages/psensor: bring back 2024-12-07 20:33:19 +11:00
7b3b9354de
system/audio: update after removal of sound.enable 2024-12-07 20:33:19 +11:00
c57a76dd03
packages/linux-lava: bump to 6.12.3 2024-12-07 20:29:14 +11:00
b4f8e18398
flake: bump inputs
Warbler!

• Updated input 'agenix':
    'github:ryantm/agenix/c2fc0762bbe8feb06a2e59a364fa81b3a57671c9' (2024-05-24)
  → 'github:ryantm/agenix/f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41' (2024-08-10)
• Updated input 'discover':
    'github:trigg/Discover/bbd1a08d54c37db48970d1c7312f1fc3a893e728' (2024-06-10)
  → 'github:trigg/Discover/c083f0b38309a0989a9562864110195a91933eb4' (2024-08-16)
• Updated input 'home-manager':
    'github:nix-community/home-manager/3d65009effd77cb0d6e7520b68b039836a7606cf' (2024-06-09)
  → 'github:nix-community/home-manager/d00c6f6d0ad16d598bf7e2956f52c1d9d5de3c3a' (2024-12-06)
• Updated input 'home-manager-stable':
    'github:nix-community/home-manager/095ef64aa3b2ab4a4f1bf07f29997e21e3a5576a' (2024-06-04)
  → 'github:nix-community/home-manager/f2e3c19867262dbe84fdfab42467fc8dd83a2005' (2024-07-01)
• Updated input 'linux-tkg':
    'github:Frogging-Family/linux-tkg/9c28c505bffe42093e4b4b6385a1b1ff16c0d7a2' (2024-06-11)
  → 'github:Frogging-Family/linux-tkg/bab5159471a507bfe9842149e80f4929f6be5dd4' (2024-12-05)
• Updated input 'neovim-nightly':
    'github:nix-community/neovim-nightly-overlay/60a8a1b221308566c51aa9a66e11145a3f141fc8' (2024-06-11)
  → 'github:nix-community/neovim-nightly-overlay/3930a71f90bacc656e8bdf19cc0faa9ebf10353a' (2024-12-07)
• Updated input 'neovim-nightly/flake-compat':
    'github:edolstra/flake-compat/0f9255e01c2351cc7d116c072cb317785dd33b33' (2023-10-04)
  → 'github:edolstra/flake-compat/ff81ac966bb2cae68946d5ed5fc4994f96d0ffec' (2024-12-04)
• Updated input 'neovim-nightly/flake-parts':
    'github:hercules-ci/flake-parts/2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8' (2024-06-01)
  → 'github:hercules-ci/flake-parts/205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9' (2024-12-04)
• Updated input 'neovim-nightly/git-hooks':
    'github:cachix/git-hooks.nix/cc4d466cb1254af050ff7bdf47f6d404a7c646d1' (2024-06-06)
  → 'github:cachix/git-hooks.nix/6f4e2a2112050951a314d2733a994fbab94864c6' (2024-12-04)
• Updated input 'neovim-nightly/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/0ab08b23ce3c3f75fe9a5598756b6fb8bcf0b414' (2024-06-10)
  → 'github:hercules-ci/hercules-ci-effects/56f8ea8d502c87cf62444bec4ee04512e8ea24ea' (2024-12-04)
• Updated input 'neovim-nightly/hercules-ci-effects/flake-parts':
    'github:hercules-ci/flake-parts/9126214d0a59633752a136528f5f3b9aa8565b7d' (2024-04-01)
  → 'github:hercules-ci/flake-parts/205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9' (2024-12-04)
• Updated input 'neovim-nightly/neovim-src':
    'github:neovim/neovim/37bf4c572a8fa20dc4a8433524ecc8c8d68fe53c' (2024-06-10)
  → 'github:neovim/neovim/517ecb85f58ed6ac8b4d5443931612e75e7c7dc2' (2024-12-06)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/58f43669b808e4a2679ce0e5ff12665e7082cc85' (2024-06-11)
  → 'github:fufexan/nix-gaming/094b2c4ee459dd5d3d1611c919d59f26110053b0' (2024-12-02)
• Updated input 'nix-gaming/flake-parts':
    'github:hercules-ci/flake-parts/2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8' (2024-06-01)
  → 'github:hercules-ci/flake-parts/506278e768c2a08bec68eb62932193e341f55c90' (2024-11-01)
• Updated input 'nix-gaming/flake-parts/nixpkgs-lib':
    'https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz?narHash=sha256-lIbdfCsf8LMFloheeE6N31%2BBMIeixqyQWbSr2vk79EQ%3D' (2024-06-01)
  → 'https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz?narHash=sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s%3D' (2024-11-01)
• Updated input 'nix-gaming/nixpkgs':
    'github:NixOS/nixpkgs/d226935fd75012939397c83f6c385e4d6d832288' (2024-06-07)
  → 'github:NixOS/nixpkgs/33b9d57c656e65a9c88c5f34e4eb00b83e2b0ca9' (2024-11-30)
• Added input 'nix-gaming/umu':
    'git+https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix&ref=refs/heads/main&rev=562e3900eebde0fb276dd2f425c097c8b44ccb92' (2024-12-06)
• Added input 'nix-gaming/umu/nixpkgs':
    follows 'nix-gaming/nixpkgs'
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/35c20ba421dfa5059e20e0ef2343c875372bdcf3' (2024-06-10)
  → 'github:nix-community/nixos-generators/8cdaf8885c9c85d9d27b594dbe882406aadfe00e' (2024-12-05)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/3c62b6a12571c9a7f65ab037173ee153d539905f' (2024-04-07)
  → 'github:nix-community/nixpkgs.lib/0e4fdd4a0ab733276b6d2274ff84ae353f17129e' (2024-12-01)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/58b52b0dd191af70f538c707c66c682331cfdffc' (2024-06-10)
  → 'github:NixOS/nixos-hardware/e563803af3526852b6b1d77107a81908c66a9fcf' (2024-12-06)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c7b821ba2e1e635ba5a76d299af62821cbcb09f3' (2024-06-09)
  → 'github:NixOS/nixpkgs/d0797a04b81caeae77bcff10a9dde78bc17f5661' (2024-12-05)
• Updated input 'nixpkgs-stable':
    'github:NixOS/nixpkgs/4913a7c3d8b8d00cb9476a6bd730ff57777f740c' (2024-06-08)
  → 'github:NixOS/nixpkgs/205fd4226592cc83fd4c0885a3e4c9c400efabb5' (2024-07-09)
• Updated input 'nvim-treesitter':
    'github:nvim-treesitter/nvim-treesitter/9a7ad2ff7a7ea81016aca2fc89c9b2c1a5365421' (2024-06-11)
  → 'github:nvim-treesitter/nvim-treesitter/894cb3cebbad0535fb4e319ada5d875dbc48d8b9' (2024-12-07)
• Updated input 'packwiz':
    'github:comp500/packwiz/7b4be47578151c36e784306b36d251ec2590e50c' (2024-05-27)
  → 'github:comp500/packwiz/0626c00149a8d9a5e9f76e5640e7b8b95c064350' (2024-10-14)
• Updated input 'pure':
    'github:sindresorhus/pure/da1a722238febb9a4b97c77628fae753d1817490' (2024-04-29)
  → 'github:sindresorhus/pure/92b8e9057988566b37ff695e70e2e9bbeb7196c8' (2024-08-07)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/bedc47af18fc41bb7d2edc2b212d59ca36253f59' (2024-06-11)
  → 'github:oxalica/rust-overlay/66526479b295ad238843a8a7367d2da7ec102757' (2024-12-07)
• Removed input 'rust-overlay/flake-utils'
• Removed input 'rust-overlay/flake-utils/systems'
• Updated input 'spicetify-nix':
    'github:the-argus/spicetify-nix/1325416f951d6a82cfddb1289864ad782e2b87c4' (2024-01-02)
  → 'github:the-argus/spicetify-nix/6cce28acab7d9ec26188ed71295f6b4306e0a7f5' (2024-09-27)
• Updated input 'spicetify-themes':
    'github:spicetify/spicetify-themes/dfdd89ad84d5c68915c65e4a83580047349c49b4' (2024-05-17)
  → 'github:spicetify/spicetify-themes/ca4264263a51800a119fa0bea231f25f58857d5f' (2024-12-03)
• Updated input 'spotify-adblock':
    'github:abba23/spotify-adblock/5a3281dee9f889afdeea7263558e7a715dcf5aab' (2023-07-21)
  → 'github:abba23/spotify-adblock/7391666109c8f9d0ccc8254dc0ff7e28139c663b' (2024-09-15)
• Updated input 'tree-sitter-glimmer':
    'github:alexlafroscia/tree-sitter-glimmer/6b25d265c990139353e1f7f97baf84987ebb7bf0' (2024-03-19)
  → 'github:alexlafroscia/tree-sitter-glimmer/da605af8c5999b43e6839b575eae5e6cafabb06f' (2024-08-20)
• Updated input 'wine-discord-ipc-bridge':
    'github:0e4ef622/wine-discord-ipc-bridge/f8198c9d52e708143301017a296f7557c4387127' (2023-08-09)
  → 'github:0e4ef622/wine-discord-ipc-bridge/86fcbddaf654aec40c6fe6a8293f627340331b0c' (2024-10-28)
• Updated input 'zsh-abbr':
    'github:olets/zsh-abbr/84f18ab195547324c3addd735688f78909df61d4' (2024-06-05)
  → 'github:olets/zsh-abbr/510cf85ce7c1a3a0cf8e81aefe83b8c79c2ae09c' (2024-11-12)
2024-12-07 20:26:32 +11:00
d14c02bb83
dandelion/filesystem: persist /boot in subvol 2024-07-24 13:58:26 +10:00
2b3d6fb3d7
hosts/dandelion: store esp in boot/efi to allow for kernel files 2024-07-24 13:35:59 +10:00
ef15c4ca20
hosts/dandelion: add acme_dns secret 2024-07-24 13:28:29 +10:00
ac2b215ad6
secrets: rekey acme_dns 2024-07-24 13:26:54 +10:00
d4b9c485b6
services/nginx: enable for dandelion 2024-07-24 13:23:12 +10:00
ef9c4f3a08
system/greetd: fix module paths 2024-07-24 13:15:10 +10:00
1d051e34ed
readme: update 2024-07-08 18:26:00 +10:00
ed4062b85b
hosts/{blossom,sugarcane}: decommission 2024-07-08 18:21:48 +10:00
f191d4bb1e
hyacinth/kernel: use 1440p modeline 2024-07-08 18:17:17 +10:00
0df212398f
system/greetd,users/rin: split into xorg and wayland 2024-07-08 18:16:56 +10:00
11847ae180
hosts/hyacinth: set tmpdir 2024-06-11 21:15:56 +10:00
8c54c332c3
hosts/hyacinth: remove wireguard and enable hyprland 2024-03-24 14:23:20 +11:00
1cf9f6e564
hyacinth/networking: configure for new ethernet 2024-03-24 14:19:49 +11:00
361aa3cddd
hosts/hyacinth: set timezone to Melbourne 2024-03-24 14:18:13 +11:00
217ef21de8
system/security: don't log refused connections 2024-07-07 12:57:18 +10:00
2da3206a93
hosts/dandelion: add postgres, and lock to v13 2024-07-07 12:57:18 +10:00
b3a285c3d5
users/hana: change hashed password and enable zsh 2024-07-07 12:57:17 +10:00
da89b77f68
dandelion/filesystem: fix missing lib 2024-07-07 12:57:17 +10:00
602a475e7d
user/eww-wayland: fix hypr socket paths 2024-07-07 12:14:48 +10:00
1c6ac8c834
anemone/networking: disable wg-quick 2024-07-07 12:14:48 +10:00
49acaadbf7
user/git: set safe directory 2024-07-07 12:14:48 +10:00
7445e14865
rin/packages: remove tetrio 2024-07-07 12:14:48 +10:00
1015dbdb31
anemone/kernel: remove removed firmware 2024-07-07 12:14:48 +10:00
2c6a7690a4
user/mpv: use new mpv wrapper 2024-07-07 12:14:08 +10:00
9637bd72f6
overlays/eww: remove withWayland 2024-07-07 12:14:08 +10:00
9bd61c9b6a
user/neovim: switch from rnix-lsp to nil 2024-07-07 12:14:08 +10:00
d9e8c2bd34
user/gpg: fix pinentry 2024-07-07 12:14:08 +10:00
4765663295
system/audio: fix pipewire config 2024-07-07 12:14:08 +10:00
54f0700ef7
system/nix: fix new nix package name 2024-07-07 12:11:19 +10:00
8a598f86f5
hosts/{anemone,hyacinth}: fix neovim nightly overlay 2024-07-07 12:11:19 +10:00
b6f4f1942d
packages/linux-lava: bump to 6.9.3 2024-06-11 19:44:49 +10:00
32a7b148a5
flake: bump inputs
• Updated input 'agenix':
    'github:ryantm/agenix/13ac9ac6d68b9a0896e3d43a082947233189e247' (2023-11-29)
  → 'github:ryantm/agenix/c2fc0762bbe8feb06a2e59a364fa81b3a57671c9' (2024-05-24)
• Updated input 'agenix/darwin':
    'github:lnl7/nix-darwin/87b9d090ad39b25b2400029c64825fc2a8868943' (2023-01-09)
  → 'github:lnl7/nix-darwin/4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d' (2023-11-24)
• Updated input 'agenix/home-manager':
    'github:nix-community/home-manager/32d3e39c491e2f91152c84f8ad8b003420eab0a1' (2023-04-22)
  → 'github:nix-community/home-manager/3bfaacf46133c037bb356193bd2f1765d9dc82c1' (2023-12-20)
• Added input 'agenix/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09)
• Updated input 'discover':
    'github:trigg/Discover/14069fbd722156c3a3abce70e7a912941556d4ab' (2023-11-15)
  → 'github:trigg/Discover/bbd1a08d54c37db48970d1c7312f1fc3a893e728' (2024-06-10)
• Updated input 'home-manager':
    'github:nix-community/home-manager/0e2e443ff24f9d75925e91b89d1da44b863734af' (2023-12-14)
  → 'github:nix-community/home-manager/3d65009effd77cb0d6e7520b68b039836a7606cf' (2024-06-09)
• Updated input 'home-manager-stable':
    'github:nix-community/home-manager/652fda4ca6dafeb090943422c34ae9145787af37' (2024-02-03)
  → 'github:nix-community/home-manager/095ef64aa3b2ab4a4f1bf07f29997e21e3a5576a' (2024-06-04)
• Updated input 'linux-tkg':
    'github:Frogging-Family/linux-tkg/80fdc82a9a76b81d9fcc4a321566f285fb956e76' (2024-01-10)
  → 'github:Frogging-Family/linux-tkg/9c28c505bffe42093e4b4b6385a1b1ff16c0d7a2' (2024-06-11)
• Updated input 'neovim-nightly':
    'github:nix-community/neovim-nightly-overlay/21a2bc2a9f18c49d4c9ba811ab6c6746b8d62580' (2023-12-15)
  → 'github:nix-community/neovim-nightly-overlay/60a8a1b221308566c51aa9a66e11145a3f141fc8' (2024-06-11)
• Updated input 'neovim-nightly/flake-parts':
    'github:hercules-ci/flake-parts/34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5' (2023-12-01)
  → 'github:hercules-ci/flake-parts/2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8' (2024-06-01)
• Added input 'neovim-nightly/git-hooks':
    'github:cachix/git-hooks.nix/cc4d466cb1254af050ff7bdf47f6d404a7c646d1' (2024-06-06)
• Added input 'neovim-nightly/git-hooks/flake-compat':
    'github:edolstra/flake-compat/0f9255e01c2351cc7d116c072cb317785dd33b33' (2023-10-04)
• Added input 'neovim-nightly/git-hooks/gitignore':
    'github:hercules-ci/gitignore.nix/637db329424fd7e46cf4185293b9cc8c88c95394' (2024-02-28)
• Added input 'neovim-nightly/git-hooks/gitignore/nixpkgs':
    follows 'neovim-nightly/git-hooks/nixpkgs'
• Added input 'neovim-nightly/git-hooks/nixpkgs':
    follows 'neovim-nightly/nixpkgs'
• Added input 'neovim-nightly/git-hooks/nixpkgs-stable':
    follows 'neovim-nightly/nixpkgs'
• Updated input 'neovim-nightly/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/31b6cd7569191bfcd0a548575b0e2ef953ed7d09' (2023-11-26)
  → 'github:hercules-ci/hercules-ci-effects/0ab08b23ce3c3f75fe9a5598756b6fb8bcf0b414' (2024-06-10)
• Updated input 'neovim-nightly/hercules-ci-effects/flake-parts':
    'github:hercules-ci/flake-parts/c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4' (2023-10-03)
  → 'github:hercules-ci/flake-parts/9126214d0a59633752a136528f5f3b9aa8565b7d' (2024-04-01)
• Removed input 'neovim-nightly/neovim-flake'
• Removed input 'neovim-nightly/neovim-flake/flake-utils'
• Removed input 'neovim-nightly/neovim-flake/flake-utils/systems'
• Removed input 'neovim-nightly/neovim-flake/nixpkgs'
• Added input 'neovim-nightly/neovim-src':
    'github:neovim/neovim/37bf4c572a8fa20dc4a8433524ecc8c8d68fe53c' (2024-06-10)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/e2abe296c5fb4673207e0c2b45b12507629970e5' (2024-01-16)
  → 'github:fufexan/nix-gaming/58f43669b808e4a2679ce0e5ff12665e7082cc85' (2024-06-11)
• Updated input 'nix-gaming/flake-parts':
    'github:hercules-ci/flake-parts/34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5' (2023-12-01)
  → 'github:hercules-ci/flake-parts/2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8' (2024-06-01)
• Updated input 'nix-gaming/flake-parts/nixpkgs-lib':
    'github:NixOS/nixpkgs/e92039b55bcd58469325ded85d4f58dd5a4eaf58?dir=lib' (2023-11-29)
  → 'https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz?narHash=sha256-lIbdfCsf8LMFloheeE6N31%2BBMIeixqyQWbSr2vk79EQ%3D' (2024-06-01)
• Updated input 'nix-gaming/nixpkgs':
    'github:NixOS/nixpkgs/e9ef8a102c555da4f8f417fe5cf5bd539d8a38b7' (2023-12-08)
  → 'github:NixOS/nixpkgs/d226935fd75012939397c83f6c385e4d6d832288' (2024-06-07)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/246219bc21b943c6f6812bb7744218ba0df08600' (2023-12-04)
  → 'github:nix-community/nixos-generators/35c20ba421dfa5059e20e0ef2343c875372bdcf3' (2024-06-10)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/f5af57d3ef9947a70ac86e42695231ac1ad00c25' (2023-09-03)
  → 'github:nix-community/nixpkgs.lib/3c62b6a12571c9a7f65ab037173ee153d539905f' (2024-04-07)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/7763c6fd1f299cb9361ff2abf755ed9619ef01d6' (2023-12-13)
  → 'github:NixOS/nixos-hardware/58b52b0dd191af70f538c707c66c682331cfdffc' (2024-06-10)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9b19f5e77dd906cb52dade0b7bd280339d2a1f3d' (2024-01-13)
  → 'github:NixOS/nixpkgs/c7b821ba2e1e635ba5a76d299af62821cbcb09f3' (2024-06-09)
• Updated input 'nixpkgs-stable':
    'github:NixOS/nixpkgs/51063ed4f2343a59fdeebb279bb81d87d453942b' (2024-03-12)
  → 'github:NixOS/nixpkgs/4913a7c3d8b8d00cb9476a6bd730ff57777f740c' (2024-06-08)
• Updated input 'nvim-treesitter':
    'github:nvim-treesitter/nvim-treesitter/194b3f0047816132b08bcc2857b23a49fa967d04' (2023-12-15)
  → 'github:nvim-treesitter/nvim-treesitter/9a7ad2ff7a7ea81016aca2fc89c9b2c1a5365421' (2024-06-11)
• Updated input 'packwiz':
    'github:comp500/packwiz/7e3ca8d9d54ec56d0ceaaca293e502c39d824422' (2023-10-22)
  → 'github:comp500/packwiz/7b4be47578151c36e784306b36d251ec2590e50c' (2024-05-27)
• Updated input 'pure':
    'github:sindresorhus/pure/87e6f5dd4c793f6d980532205aaefe196780606f' (2023-06-25)
  → 'github:sindresorhus/pure/da1a722238febb9a4b97c77628fae753d1817490' (2024-04-29)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/d7aaf97c7c5ea7b4198ef85d3d66b3dfe5c6ce57' (2023-12-15)
  → 'github:oxalica/rust-overlay/bedc47af18fc41bb7d2edc2b212d59ca36253f59' (2024-06-11)
• Updated input 'rust-overlay/flake-utils':
    'github:numtide/flake-utils/cfacdce06f30d2b68473a46042957675eebb3401' (2023-04-11)
  → 'github:numtide/flake-utils/1ef2e671c3b0c19053962c07dbda38332dcebf26' (2024-01-15)
• Updated input 'spicetify-nix':
    'github:the-argus/spicetify-nix/3c702af1f717b7876fac08809201b1368d0d956c' (2023-11-14)
  → 'github:the-argus/spicetify-nix/1325416f951d6a82cfddb1289864ad782e2b87c4' (2024-01-02)
• Updated input 'spicetify-themes':
    'github:spicetify/spicetify-themes/8b6a8010359914b3c8fdaf810705c754ce69c2a4' (2023-11-30)
  → 'github:spicetify/spicetify-themes/dfdd89ad84d5c68915c65e4a83580047349c49b4' (2024-05-17)
• Updated input 'tree-sitter-glimmer':
    'github:alexlafroscia/tree-sitter-glimmer/f9746dc1d0707717fbba84cb5c22a71586af23e1' (2023-10-05)
  → 'github:alexlafroscia/tree-sitter-glimmer/6b25d265c990139353e1f7f97baf84987ebb7bf0' (2024-03-19)
• Updated input 'zsh-abbr':
    'github:olets/zsh-abbr/6802d7353b2422d7a82134ce655aff97367eefa0' (2023-10-19)
  → 'github:olets/zsh-abbr/84f18ab195547324c3addd735688f78909df61d4' (2024-06-05)
• Updated input 'zsh-history-substring-search':
    'github:zsh-users/zsh-history-substring-search/8dd05bfcc12b0cd1ee9ea64be725b3d9f713cf64' (2023-11-23)
  → 'github:zsh-users/zsh-history-substring-search/87ce96b1862928d84b1afe7c173316614b30e301' (2024-06-05)
2024-06-11 19:16:50 +10:00
909ea3e2c4
anemone/networking: persist networkmanager 2024-03-24 14:12:05 +11:00
c04568cc85
anemone/networking: let nm manage dns 2024-03-14 14:22:04 +11:00
ab18a8d0a2
rin/packages: add drawio 2024-03-14 14:03:39 +11:00
19e9865e8a
anemone/networking: remove networking.wireless 2024-03-14 13:56:05 +11:00
fb9bedc940
anemone/networking: use wg-quick 2024-03-14 13:55:31 +11:00
a45a0bbcb5
flake: expose spotify-adblock 2024-03-14 13:55:04 +11:00
81f935d842
flake: lock inputs 2024-03-14 13:54:52 +11:00
204 changed files with 3732 additions and 2937 deletions

4
.git-crypt/.gitattributes vendored Normal file
View file

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

1
.gitattributes vendored Normal file
View file

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

50
.github/workflows/autoupdate.yml vendored Normal file
View file

@ -0,0 +1,50 @@
name: Auto update
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
update:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ secrets.PAT_TOKEN }}
- name: Check for updates
id: check
run: |
local=$(cat flake.lock | jq ".nodes.nixpkgs.locked.rev")
remote=$(curl "https://api.github.com/repos/NixOS/nixpkgs/branches/nixos-unstable/commits?per_page=1" | jq ".commit.sha")
if [[ $local == $remote ]]; then
echo "skip=1" >> "$GITHUB_OUTPUT"
else
echo "skip=0" >> "$GITHUB_OUTPUT"
branch=$(TZ='Australia/Melbourne' date '+staging_auto/%Y%m%d')
echo "branch_name=${branch}" >> "$GITHUB_OUTPUT"
fi
- name: Install nix
if: steps.check.outputs.skip == 0
uses: cachix/install-nix-action@v31
- name: Configure git
if: steps.check.outputs.skip == 0
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
- name: Update
if: steps.check.outputs.skip == 0
run: ./update.sh
- name: Push
if: steps.check.outputs.skip == 0
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.PAT_TOKEN }}
branch: ${{ steps.check.outputs.branch_name }}

View file

@ -1,38 +1,27 @@
name: CI name: CI
on: on:
push:
workflow_dispatch: workflow_dispatch:
jobs: jobs:
check:
name: Check flake
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: cachix/install-nix-action@v17
with:
install_url: https://github.com/numtide/nix-unstable-installer/releases/download/nix-2.12.0pre20220930_89ca75c/install
extra_nix_config: experimental-features = nix-command flakes
- uses: cachix/cachix-action@v10
with:
name: lava
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix flake check --keep-going --verbose
build: build:
name: Build linux-lava for x86_64-linux name: Build linux-lava for x86_64-linux
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 # credits to https://github.com/easimon/maximize-build-space/issues/45
- name: Remove unneeded packages to maximise build space
shell: bash
run: |
df -h
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
df -h
- uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
- uses: cachix/install-nix-action@v17 - uses: cachix/install-nix-action@v31
with: - uses: cachix/cachix-action@v16
install_url: https://github.com/numtide/nix-unstable-installer/releases/download/nix-2.12.0pre20220930_89ca75c/install
extra_nix_config: experimental-features = nix-command flakes
- uses: cachix/cachix-action@v10
with: with:
name: lava name: lava
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
result

View file

@ -14,17 +14,18 @@ to your liking. Open up `flake.nix`, add your new host config at the bottom, and
## Hosts ## Hosts
| Name | Description | | Name | Description |
| ------- | ----------- | | ------- | ----------- |
| blossom | Laptop and main PC | | hyacinth | Main Desktop PC |
| anemone | Main Laptop |
| caramel | Raspberry Pi 400, stateless | | caramel | Raspberry Pi 400, stateless |
| sugarcane | OVHCloud VPS, stateless | | dandelion | ARM OCI VPS, stateless |
## Users ## Users
| Name | Description | | Name | Description |
| ---- | ----------- | | ---- | ----------- |
| rin | Main user for usage | | rin | Main user for general usage |
| hana | Lightweight user intended for inspecting stateless hosts | | hana | Lightweight user intended for inspecting stateless hosts |
## License ## License
Licensed under CC0; basically you can fork, modify, redistribute, or do whatever you want I don't really care. Licensed under CC0
Credit is appreciated but not necessary Credit is appreciated but not necessary

View file

@ -0,0 +1,47 @@
{ lib, pkgs, ... }: {
system.stateVersion = "23.11";
systemd.tmpfiles.rules = [
"d /persist/transmission 755 transmission transmission"
"d /persist/transmission/.config/transmission-daemon 750 transmission transmission"
"d /persist/transmission/.incomplete 750 transmission transmission"
"d /persist/transmission/Downloads 755 transmission transmission"
"d /persist/transmission/watchdir 755 transmission transmission"
];
networking.wg-quick.interfaces.wg0 = {
configFile = "/persist/vpn.conf";
preUp = ''
# Try to access the DNS for up to 300s
for i in {1..60}; do
${pkgs.iputils}/bin/ping -c1 'google.com' && break
echo "Attempt $i: DNS still not available"
sleep 5s
done
'';
};
# https://github.com/NixOS/nixpkgs/issues/258793
systemd.services.transmission.serviceConfig = {
BindReadOnlyPaths = lib.mkForce [ builtins.storeDir "/etc" ];
RootDirectoryStartOnly = lib.mkForce false;
RootDirectory = lib.mkForce "";
PrivateMounts = lib.mkForce false;
PrivateUsers = lib.mkForce false;
};
networking.firewall.allowedTCPPorts = [ 9091 ];
services.transmission = {
enable = true;
package = pkgs.transmission_4;
downloadDirPermissions = "775";
openFirewall = true;
home = "/persist/transmission";
settings = {
ratio-limit-enabled = true;
rpc-bind-address = "0.0.0.0";
rpc-enabled = true;
rpc-port = 9091;
rpc-host-whitelist-enabled = false;
rpc-whitelist-enabled = false;
};
};
}

27
containers/amethyst/flake.lock generated Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1773282481,
"narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

View file

@ -0,0 +1,51 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs = { nixpkgs, ... }: {
nixosConfigurations.container = nixpkgs.lib.nixosSystem {
modules = [ ./configuration.nix ];
};
nixosModule = { ... }:
let
name = "amethyst";
fqdn = "amethyst.lava.moe";
subnet = "1";
in {
networking.nat = {
enable = true;
enableIPv6 = true;
internalInterfaces = [ "ve-${name}" ];
};
services.nginx.virtualHosts."${fqdn}" = {
useACMEHost = "lava.moe";
forceSSL = true;
#locations."/".proxyPass = "http://[fd0d:1::${subnet}:2]:9091";
locations."/".proxyPass = "http://10.30.${subnet}.2:9091";
listenAddresses = [ "10.0.0.1" "[fd0d::1]" ];
};
systemd.tmpfiles.rules = [ "d /persist/containers/${name} 755 root users" ];
containers.${name} = {
autoStart = true;
privateNetwork = true;
hostAddress = "10.30.${subnet}.1";
localAddress = "10.30.${subnet}.2";
hostAddress6 = "fd0d:1::${subnet}:1";
localAddress6 = "fd0d:1::${subnet}:2";
# privateUsers = "pick";
nixpkgs = nixpkgs;
ephemeral = true;
config = { imports = [ ./configuration.nix ]; };
bindMounts."persist" = {
hostPath = "/persist/containers/${name}";
mountPoint = "/persist";
isReadOnly = false;
};
# flake = "path:" + ./.;
};
};
};
}

View file

@ -0,0 +1,23 @@
{ ... }: {
system.stateVersion = "25.11";
fileSystems."/var/lib/private" = {
device = "/persist";
fsType = "none";
options = [ "bind" ];
};
networking.firewall.allowedTCPPorts = [ 6167 ];
networking.firewall.allowedUDPPorts = [ 6167 ];
# TODO: this should be generically set
networking.useHostResolvConf = false;
networking.nameservers = [ "8.8.8.8" ];
services.matrix-continuwuity = {
enable = true;
settings.global = {
# TODO: link this with outer container's address
address = [ "10.30.2.2" ];
server_name = "lava.moe";
rocksdb_recovery_mode = 2;
};
};
}

27
containers/beryllium/flake.lock generated Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1773282481,
"narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

View file

@ -0,0 +1,69 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs = { nixpkgs, ... }: {
nixosConfigurations.container = nixpkgs.lib.nixosSystem {
modules = [ ./configuration.nix ];
};
nixosModule = { ... }:
let
name = "beryllium";
fqdn = "beryllium.lava.moe";
subnet = "2";
in {
networking.nat = {
enable = true;
enableIPv6 = true;
internalInterfaces = [ "ve-${name}" ];
};
services.nginx.virtualHosts."${fqdn}" = {
useACMEHost = "lava.moe";
forceSSL = true;
locations."/".extraConfig = "return 302 'https://lava.moe';";
locations."/_matrix".proxyPass = "http://10.30.${subnet}.2:6167";
locations."/_conduwuit".proxyPass = "http://10.30.${subnet}.2:6167";
locations."/_continuwuity".proxyPass = "http://10.30.${subnet}.2:6167";
};
services.nginx.virtualHosts."lava.moe" = {
locations."= /.well-known/matrix/server".extraConfig =
let
server = { "m.server" = "${fqdn}:443"; };
in ''
add_header Content-Type application/json;
return 200 '${builtins.toJSON server}';
'';
locations."= /.well-known/matrix/client".extraConfig =
let
client = {
"m.homeserver" = { "base_url" = "https://${fqdn}"; };
# "m.identity_server" = { "base_url" = "https://vector.im"; };
};
in ''
add_header Content-Type application/json;
add_header Access-Control-Allow-Origin *;
return 200 '${builtins.toJSON client}';
'';
};
systemd.tmpfiles.rules = [ "d /persist/containers/${name} 755 root users" ];
containers.${name} = {
autoStart = true;
privateNetwork = true;
hostAddress = "10.30.${subnet}.1";
localAddress = "10.30.${subnet}.2";
nixpkgs = nixpkgs;
ephemeral = true;
config = { imports = [ ./configuration.nix ]; };
bindMounts."persist" = {
hostPath = "/persist/containers/${name}";
mountPoint = "/persist";
isReadOnly = false;
};
};
};
};
}

View file

@ -0,0 +1,53 @@
{ config, fqdn, lib, ... }: {
system.stateVersion = "25.11";
networking.firewall.allowedTCPPorts = [ 22 3000 ];
networking.firewall.allowedUDPPorts = [ 22 3000 ];
systemd.tmpfiles.rules = [
"L+ /persist/forgejo/custom/templates - - - - ${./templates}"
];
services.forgejo = {
enable = true;
lfs.enable = true;
settings = {
DEFAULT.APP_NAME = "cilly's botanical laboratory";
server = {
DOMAIN = fqdn;
ROOT_URL = "https://${fqdn}/";
HTTP_PORT = 3000;
START_SSH_SERVER = true;
BUILTIN_SSH_SERVER_USER = "git";
SSH_DOMAIN = "git.lava.moe";
SSH_SERVER_KEY_EXCHANGES = "mlkem768x25519-sha256,sntrup761x25519-sha512,sntrup761x25519-sha512@openssh.com,curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256";
};
ui = lib.mkForce {
DEFAULT_THEME = "catppuccin-maroon-auto";
THEMES = lib.strings.concatMapStringsSep "," (x: "${x}-auto") [
"catppuccin-pink"
"catppuccin-maroon"
"catppuccin-flamingo"
"catppuccin-rosewater"
"forgejo"
"gitea"
];
};
api.ENABLE_SWAGGER = false;
other.SHOW_FOOTER_TEMPLATE_LOAD_TIME = false;
repository.ENABLE_PUSH_CREATE_USER = true;
repository.ENABLE_PUSH_CREATE_ORG = true;
service.DISABLE_REGISTRATION = true;
};
stateDir = "/persist/forgejo";
};
systemd.services.forgejo.serviceConfig = {
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
PrivateUsers = lib.mkForce false;
};
catppuccin.forgejo.enable = true;
environment.systemPackages = [ config.services.forgejo.package ];
}

62
containers/citrine/flake.lock generated Normal file
View file

@ -0,0 +1,62 @@
{
"nodes": {
"catppuccin": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1773403535,
"narHash": "sha256-47MZaFrHxNO8tVUAmtVnerXUw2WWVluBOiU9MulN/yM=",
"owner": "catppuccin",
"repo": "nix",
"rev": "d45b5665cc638bad1b794350de02f4dd41b0bb47",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "nix",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1773122722,
"narHash": "sha256-FIqHByVqxCprNjor1NqF80F2QQoiiyqanNNefdlvOg4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "62dc67aa6a52b4364dd75994ec00b51fbf474e50",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1773282481,
"narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"catppuccin": "catppuccin",
"nixpkgs": "nixpkgs_2"
}
}
},
"root": "root",
"version": 7
}

View file

@ -0,0 +1,68 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
catppuccin.url = "github:catppuccin/nix";
};
outputs = { nixpkgs, catppuccin, ... }:
let
name = "citrine";
fqdn = "lab.lava.moe";
subnetId = "3";
subnet = x: "fd0d:1::${subnetId}:${toString x}";
host = subnet 1;
client = subnet 2;
subnet4 = x: "10.30.${subnetId}.${toString x}";
host4 = subnet4 1;
client4 = subnet4 2;
modules = [
./configuration.nix
catppuccin.nixosModules.catppuccin
{
networking.useHostResolvConf = false;
networking.nameservers = [ host ];
}
];
in {
nixosConfigurations.container = nixpkgs.lib.nixosSystem {
inherit modules;
};
nixosModule = { ... }: {
networking.nat = {
enable = true;
enableIPv6 = true;
internalInterfaces = [ "ve-${name}" ];
};
services.nginx.virtualHosts."${fqdn}" = {
useACMEHost = "lava.moe";
forceSSL = true;
locations."/".proxyPass = "http://[${client}]:3000";
};
systemd.tmpfiles.rules = [ "d /persist/containers/${name} 755 root users" ];
containers.${name} = {
autoStart = true;
privateNetwork = true;
hostAddress = host4;
localAddress = client4;
hostAddress6 = host;
localAddress6 = client;
# privateUsers = "pick";
nixpkgs = nixpkgs;
ephemeral = true;
config = { imports = modules; };
specialArgs = { inherit fqdn; };
bindMounts."persist" = {
hostPath = "/persist/containers/${name}";
mountPoint = "/persist";
isReadOnly = false;
};
# flake = "path:" + ./.;
};
};
};
}

View file

@ -0,0 +1,31 @@
<footer class="page-footer" role="group" aria-label="{{ctx.Locale.Tr "aria.footer"}}">
<div class="left-links" role="contentinfo" aria-label="{{ctx.Locale.Tr "aria.footer.software"}}">
{{if ShowFooterPoweredBy}}
<a target="_blank" rel="noopener noreferrer" href="https://forgejo.org">Forgejo</a>
{{end}}
{{if (or .ShowFooterVersion .PageIsAdmin)}}
{{if .IsAdmin}}
<a href="{{AppSubUrl}}/admin/config">{{AppVerNoMetadata}}</a>
{{else}}
{{AppVerNoMetadata}}
{{end}}
{{end}}
{{if and .TemplateLoadTimes ShowFooterTemplateLoadTime}}
{{ctx.Locale.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong>
{{ctx.Locale.Tr "template"}}{{if .TemplateName}} {{.TemplateName}}{{end}}: <strong>{{call .TemplateLoadTimes}}</strong>
{{end}}
</div>
<div class="right-links" role="group" aria-label="{{ctx.Locale.Tr "aria.footer.links"}}">
<div class="ui dropdown upward language">
<span class="flex-text-inline">{{svg "octicon-globe" 14}} {{ctx.Locale.LangName}}</span>
<div class="menu language-menu">
{{range .AllLangs}}
<a lang="{{.Lang}}" data-url="{{AppSubUrl}}/?lang={{.Lang}}" class="item {{if eq ctx.Locale.Lang .Lang}}active selected{{end}}">{{.Name}}</a>
{{end}}
</div>
</div>
<a href="{{AssetUrlPrefix}}/licenses.txt">{{ctx.Locale.Tr "licenses"}}</a>
{{if .EnableSwagger}}<a href="{{AppSubUrl}}/api/swagger">API</a>{{end}}
{{template "custom/extra_links_footer" .}}
</div>
</footer>

View file

@ -0,0 +1,19 @@
{{template "base/head" .}}
{{if not .IsSigned}}
<script>window.location.href = "/explore/repos";</script>
{{end}}
<div role="main" aria-label="{{if .IsSigned}}{{ctx.Locale.Tr "dashboard"}}{{else}}{{ctx.Locale.Tr "home"}}{{end}}" class="page-content home">
<div class="tw-mb-8 tw-px-8">
<div class="center">
<img class="logo" width="220" height="220" src="{{AssetUrlPrefix}}/img/logo.svg" alt="{{ctx.Locale.Tr "logo"}}">
<div class="hero">
<h1 class="ui icon header title">
{{AppDisplayName}}
</h1>
<h2>{{ctx.Locale.Tr "startpage.app_desc"}}</h2>
</div>
</div>
</div>
{{template "home_forgejo" .}}
</div>
{{template "base/footer" .}}

View file

@ -0,0 +1,22 @@
{ fqdn, ... }: {
system.stateVersion = "25.11";
systemd.tmpfiles.rules = [
"d /persist/vaultwarden 755 vaultwarden vaultwarden"
];
fileSystems."/var/lib/vaultwarden" = {
device = "/persist/vaultwarden";
fsType = "none";
options = [ "bind" ];
};
networking.firewall.allowedTCPPorts = [ 8000 ];
networking.firewall.allowedUDPPorts = [ 8000 ];
services.vaultwarden = {
enable = true;
domain = fqdn;
config = {
DOMAIN = "https://${fqdn}";
ROCKET_ADDRESS = "::";
};
};
}

27
containers/diamond/flake.lock generated Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1773282481,
"narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

View file

@ -0,0 +1,51 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs = { nixpkgs, ... }:
let
name = "diamond";
fqdn = "astransia.lava.moe";
subnetId = "4";
subnet = x: "fd0d:1::${subnetId}:${toString x}";
host = subnet 1;
client = subnet 2;
modules = [
./configuration.nix
];
in {
nixosConfigurations.container = nixpkgs.lib.nixosSystem {
inherit modules;
};
nixosModule = { ... }: {
services.nginx.virtualHosts."${fqdn}" = {
useACMEHost = "lava.moe";
forceSSL = true;
locations."/".proxyPass = "http://[${client}]:8000";
listenAddresses = [ "10.0.0.1" "[fd0d::1]" "100.67.1.1" ];
};
systemd.tmpfiles.rules = [ "d /persist/containers/${name} 755 root users" ];
containers.${name} = {
autoStart = true;
privateNetwork = true;
hostAddress6 = host;
localAddress6 = client;
# privateUsers = "pick";
nixpkgs = nixpkgs;
ephemeral = true;
config = { imports = modules; };
specialArgs = { inherit fqdn; };
bindMounts."persist" = {
hostPath = "/persist/containers/${name}";
mountPoint = "/persist";
isReadOnly = false;
};
# flake = "path:" + ./.;
};
};
};
}

View file

@ -0,0 +1,23 @@
{ fqdn, shareFqdn, ... }: {
system.stateVersion = "25.11";
systemd.tmpfiles.rules = [
"d /persist/navidrome 755 navidrome navidrome"
];
networking.firewall.allowedTCPPorts = [ 4533 ];
networking.firewall.allowedUDPPorts = [ 4533 ];
services.navidrome = {
enable = true;
environmentFile = "/binds/navidrome_env";
settings = {
Port = 4533;
Address = "[::]";
BaseUrl = "https://${fqdn}/";
ShareURL = "https://${shareFqdn}";
EnableSharing = true;
DataFolder = "/persist/navidrome";
MusicFolder = "/binds/music/main";
};
};
systemd.services.navidrome.serviceConfig.BindReadOnlyPaths = ["/binds/music"];
}

27
containers/emerald/flake.lock generated Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1773282481,
"narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

View file

@ -0,0 +1,78 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs = { nixpkgs, ... }:
let
name = "emerald";
fqdn = "navia.lava.moe";
shareFqdn = "muse.lava.moe";
subnetId = "5";
subnet = x: "fd0d:2::${subnetId}:${toString x}";
host = subnet 1;
client = subnet 2;
subnet4 = x: "10.32.${subnetId}.${toString x}";
host4 = subnet4 1;
client4 = subnet4 2;
modules = [
./configuration.nix
{
networking.useHostResolvConf = false;
networking.nameservers = [ host ];
}
];
in {
nixosConfigurations.container = nixpkgs.lib.nixosSystem {
inherit modules;
};
nixosModule = { config, ... }: {
networking.nat = {
enable = true;
enableIPv6 = true;
internalInterfaces = [ "ve-${name}" ];
};
services.nginx.virtualHosts."${fqdn}" = {
useACMEHost = "lava.moe";
forceSSL = true;
locations."/".proxyPass = "http://[${client}]:4533";
listenAddresses = [ "100.67.2.1" ];
};
systemd.tmpfiles.rules = [ "d /persist/containers/${name} 755 root users" ];
containers.${name} = {
autoStart = true;
privateNetwork = true;
hostAddress = host4;
localAddress = client4;
hostAddress6 = host;
localAddress6 = client;
# privateUsers = "pick";
nixpkgs = nixpkgs;
ephemeral = true;
config = { imports = modules; };
specialArgs = { inherit fqdn shareFqdn; };
bindMounts."persist" = {
hostPath = "/persist/containers/${name}";
mountPoint = "/persist";
isReadOnly = false;
};
bindMounts."music" = {
hostPath = "/flower/media/music";
mountPoint = "/binds/music";
isReadOnly = true;
};
bindMounts."navidrome_env" = {
hostPath = config.age.secrets.navidrome_env.path;
mountPoint = "/binds/navidrome_env";
isReadOnly = true;
};
# flake = "path:" + ./.;
};
};
};
}

View file

@ -0,0 +1,22 @@
{ ... }: {
system.stateVersion = "25.11";
systemd.tmpfiles.rules = [
"d /persist/slskd/Downloads 755 slskd slskd"
];
fileSystems."/var/lib/slskd" = {
device = "/persist/slskd";
fsType = "none";
options = [ "bind" ];
};
networking.firewall.allowedTCPPorts = [ 5030 50300 ];
networking.firewall.allowedUDPPorts = [ 5030 50300 ];
services.slskd = {
enable = true;
domain = null;
environmentFile = "/binds/slskd_env";
settings = {
shares.directories = [ "/binds/music/" ];
};
};
}

27
containers/fluorite/flake.lock generated Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1773282481,
"narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

View file

@ -0,0 +1,89 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs = { nixpkgs, ... }:
let
name = "fluorite";
fqdn = "fluorite.lava.moe";
subnetId = "6";
subnet = x: "fd0d:1::${subnetId}:${toString x}";
host = subnet 1;
client = subnet 2;
subnet4 = x: "10.30.${subnetId}.${toString x}";
host4 = subnet4 1;
client4 = subnet4 2;
modules = [
./configuration.nix
{
networking.useHostResolvConf = false;
networking.nameservers = [ host ];
}
];
in {
nixosConfigurations.container = nixpkgs.lib.nixosSystem {
inherit modules;
};
nixosModule = { config, ... }: {
networking.nat = {
enable = true;
enableIPv6 = true;
internalInterfaces = [ "ve-${name}" ];
};
networking.firewall.allowedTCPPorts = [ 50300 ];
services.nginx.virtualHosts."${fqdn}" = {
useACMEHost = "lava.moe";
forceSSL = true;
locations."/".proxyPass = "http://[${client}]:5030";
listenAddresses = [ "10.0.0.1" "[fd0d::1]" "100.67.1.1" ];
};
systemd.tmpfiles.rules = [
"d /persist/containers/${name} 755 root users"
"d /persist/media/music 075 nobody users"
];
containers.${name} = {
autoStart = true;
privateNetwork = true;
hostAddress = host4;
localAddress = client4;
hostAddress6 = host;
localAddress6 = client;
# privateUsers = "pick";
nixpkgs = nixpkgs;
ephemeral = true;
config = { imports = modules; };
specialArgs = { inherit fqdn; };
forwardPorts = [
{
containerPort = 50300;
hostPort = 50300;
protocol = "tcp";
}
];
bindMounts."persist" = {
hostPath = "/persist/containers/${name}";
mountPoint = "/persist";
isReadOnly = false;
};
bindMounts."music" = {
hostPath = "/persist/media/music";
mountPoint = "/binds/music";
isReadOnly = true;
};
bindMounts."slskd_env" = {
hostPath = config.age.secrets.slskd_env.path;
mountPoint = "/binds/slskd_env";
isReadOnly = true;
};
# flake = "path:" + ./.;
};
};
};
}

View file

@ -0,0 +1,36 @@
{ ... }: {
system.stateVersion = "25.11";
fileSystems."/var/lib/opencloud" = {
device = "/flower/data";
fsType = "none";
options = [ "bind" ];
};
fileSystems."/etc/opencloud" = {
device = "/persist/cfg";
fsType = "none";
options = [ "bind" ];
};
# TODO: hardcoded address
networking.extraHosts = ''
100.67.2.1 cloud.lava.moe
'';
networking.firewall.allowedTCPPorts = [ 9200 ];
networking.firewall.allowedUDPPorts = [ 9200 ];
environment.etc."opencloud-admin-pass".text = ''
IDM_ADMIN_PASSWORD=supersillysecure
'';
services.opencloud = {
enable = true;
url = "https://cloud.lava.moe";
address = "10.30.7.2";
port = 9200;
environment = {
PROXY_TLS = "false";
IDP_ACCESS_TOKEN_EXPIRATION = "2592000";
IDP_ID_TOKEN_EXPIRATION = "2592000";
};
environmentFile = "/etc/opencloud-admin-pass";
};
}

27
containers/garnet/flake.lock generated Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1779560665,
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

View file

@ -0,0 +1,84 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs = { nixpkgs, ... }:
let
name = "garnet";
fqdn = "cloud.lava.moe";
subnetId = "7";
subnet = x: "fd0d:1::${subnetId}:${toString x}";
host = subnet 1;
client = subnet 2;
subnet4 = x: "10.30.${subnetId}.${toString x}";
host4 = subnet4 1;
client4 = subnet4 2;
modules = [
./configuration.nix
{
networking.useHostResolvConf = false;
networking.nameservers = [ host ];
}
];
in {
nixosConfigurations.container = nixpkgs.lib.nixosSystem {
inherit modules;
};
nixosModule = { config, ... }: {
networking.nat = {
enable = true;
enableIPv6 = true;
internalInterfaces = [ "ve-${name}" ];
};
services.nginx.virtualHosts."${fqdn}" = {
useACMEHost = "lava.moe";
forceSSL = true;
locations."/" = {
proxyPass = "http://${client4}:9200";
proxyWebsockets = true;
};
extraConfig = ''
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
keepalive_requests 100000;
keepalive_timeout 5m;
http2_max_concurrent_streams 512;
'';
# TODO: hardcoded address
listenAddresses = [ "100.67.2.1" ];
};
systemd.tmpfiles.rules = [
"d /persist/containers/${name} 755 root users"
];
containers.${name} = {
autoStart = true;
privateNetwork = true;
hostAddress = host4;
localAddress = client4;
hostAddress6 = host;
localAddress6 = client;
# privateUsers = "pick";
nixpkgs = nixpkgs;
ephemeral = true;
config = { imports = modules; };
specialArgs = { inherit fqdn; };
bindMounts."persist" = {
hostPath = "/persist/containers/${name}";
mountPoint = "/persist";
isReadOnly = false;
};
bindMounts."content" = {
hostPath = "/flower/opencloud";
mountPoint = "/flower";
isReadOnly = false;
};
};
};
};
}

1049
flake.lock generated

File diff suppressed because it is too large Load diff

107
flake.nix
View file

@ -1,114 +1,101 @@
{ {
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-raccoon.url = "github:NixOS/nixpkgs/nixos-22.11";
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-23.11";
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
home-manager-raccoon.url = "github:nix-community/home-manager/release-22.11";
home-manager-stable.url = "github:nix-community/home-manager/release-23.11";
neovim-nightly.url = "github:nix-community/neovim-nightly-overlay";
nixos-hardware.url = "github:NixOS/nixos-hardware";
agenix.url = "github:ryantm/agenix";
nixos-generators.url = "github:nix-community/nixos-generators";
spicetify-nix.url = "github:the-argus/spicetify-nix";
agenix.inputs.nixpkgs.follows = "nixpkgs";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
home-manager-raccoon.inputs.nixpkgs.follows = "nixpkgs-raccoon";
home-manager-stable.inputs.nixpkgs.follows = "nixpkgs-stable"; agenix.url = "github:ryantm/agenix";
agenix.inputs.nixpkgs.follows = "nixpkgs";
aagl.url = "github:ezKEa/aagl-gtk-on-nix";
catppuccin.url = "github:catppuccin/nix/8eada392fd6571a747e1c5fc358dd61c14c8704e";
catppuccin.inputs.nixpkgs.follows = "nixpkgs";
catppuccin-palette = { url = "github:catppuccin/palette"; flake = false; };
neovim-nightly.url = "github:nix-community/neovim-nightly-overlay";
neovim-nightly.inputs.nixpkgs.follows = "nixpkgs"; neovim-nightly.inputs.nixpkgs.follows = "nixpkgs";
nixos-generators.inputs.nixpkgs.follows = "nixpkgs";
spicetify-nix.inputs.nixpkgs.follows = "nixpkgs";
nix-gaming.url = "github:fufexan/nix-gaming"; nix-gaming.url = "github:fufexan/nix-gaming";
nix-index-database.url = "github:nix-community/nix-index-database";
nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
spicetify-nix.inputs.nixpkgs.follows = "nixpkgs";
# services # services
hosts-blocklists = { url = "github:notracking/hosts-blocklists"; flake = false; }; pastel.url = "github:cillynder/pastel";
website = { url = "github:LavaDesu/lavadesu.github.io/master"; flake = false; }; stevenblack-hosts = { url = "github:StevenBlack/hosts"; flake = false; };
spicetify-themes = { url = "github:spicetify/spicetify-themes"; flake = false; }; website = { url = "github:cillynder/lavadesu.github.io/master"; flake = false; };
# zsh plugins # zsh plugins
zsh-abbr = { url = "github:olets/zsh-abbr"; flake = false; }; zsh-abbr = { url = "git+https://github.com/olets/zsh-abbr?submodules=1"; flake = false; };
zsh-history-substring-search = { url = "github:zsh-users/zsh-history-substring-search"; flake = false; }; zsh-history-substring-search = { url = "github:zsh-users/zsh-history-substring-search"; flake = false; };
fast-syntax-highlighting = { url = "github:zdharma-continuum/fast-syntax-highlighting"; flake = false; }; fast-syntax-highlighting = { url = "github:zdharma-continuum/fast-syntax-highlighting"; flake = false; };
pure = { url = "github:sindresorhus/pure"; flake = false; }; pure = { url = "github:sindresorhus/pure"; flake = false; };
# overlays # overlays
discord-tokyonight = { url = "github:DanisDGK/zelk-customizations"; flake = false; };
discover = { url = "github:trigg/Discover"; flake = false; };
linux-tkg = { url = "github:Frogging-Family/linux-tkg"; flake = false; }; linux-tkg = { url = "github:Frogging-Family/linux-tkg"; flake = false; };
nvim-treesitter = { url = "github:nvim-treesitter/nvim-treesitter"; flake = false; }; nvim-treesitter = { url = "github:nvim-treesitter/nvim-treesitter"; flake = false; };
packwiz = { url = "github:comp500/packwiz"; flake = false; };
spotify-adblock = { url = "github:abba23/spotify-adblock"; flake = false; }; spotify-adblock = { url = "github:abba23/spotify-adblock"; flake = false; };
tree-sitter-glimmer = { url = "github:alexlafroscia/tree-sitter-glimmer"; flake = false; };
tree-sitter-jsonc = { url = "gitlab:WhyNotHugo/tree-sitter-jsonc"; flake = false; }; tree-sitter-jsonc = { url = "gitlab:WhyNotHugo/tree-sitter-jsonc"; flake = false; };
wine-discord-ipc-bridge = { url = "github:0e4ef622/wine-discord-ipc-bridge"; flake = false; }; wine-discord-ipc-bridge = { url = "github:0e4ef622/wine-discord-ipc-bridge"; flake = false; };
# shells # containers
rust-overlay.url = "github:oxalica/rust-overlay"; c-amethyst.url = "path:./containers/amethyst";
rust-overlay.inputs.nixpkgs.follows = "nixpkgs"; c-beryllium.url = "path:./containers/beryllium";
c-citrine.url = "path:./containers/citrine";
c-diamond.url = "path:./containers/diamond";
c-emerald.url = "path:./containers/emerald";
c-fluorite.url = "path:./containers/fluorite";
c-garnet.url = "path:./containers/garnet";
}; };
outputs = { self, agenix, nixos-generators, nixpkgs, nixpkgs-raccoon, nixpkgs-stable, ... } @ inputs: outputs = { self, agenix, catppuccin, nixpkgs, ... } @ inputs:
let let
overlays = (import ./overlays) overlays = (import ./overlays)
++ [(final: prev: { ++ [(final: prev: {
me = prev.callPackage ./packages { inherit inputs; } // { inherit inputs; }; me = prev.callPackage ./packages { inherit inputs; } // { inherit inputs; };
})]; })];
patchOverlaysWithLinuxLava = nixpkgs: arch: ([(self: super: {
linuxLavaNixpkgs = import nixpkgs {
overlays = [ (import ./overlays/linux-lava.nix) ] ++ overlays;
system = arch;
};
})] ++ overlays);
mkSystem = mkSystem =
if !(self ? rev) then throw "Dirty git tree detected." else if !(self ? rev) then throw "Dirty git tree detected." else
nixpkgs: name: arch: enableGUI: extraModules: nixpkgs.lib.nixosSystem { nixpkgs: name: arch: extraModules: nixpkgs.lib.nixosSystem {
system = arch; system = arch;
modules = [ modules = [
{ nixpkgs.overlays = overlays; } ({
nixpkgs.overlays = patchOverlaysWithLinuxLava nixpkgs arch;
})
agenix.nixosModules.age agenix.nixosModules.age
catppuccin.nixosModules.catppuccin
(./hosts + "/${name}") (./hosts + "/${name}")
] ++ extraModules; ] ++ extraModules;
specialArgs = { specialArgs = {
inherit inputs enableGUI; inherit inputs;
modules = import ./modules { lib = nixpkgs.lib; }; modules = import ./modules { lib = nixpkgs.lib; };
gcSecrets = builtins.fromJSON (builtins.readFile "${self}/secrets.gcrypt/shared.json");
}; };
}; };
in in
{ {
nixosConfigurations."anemone" = mkSystem nixpkgs "anemone" "x86_64-linux" true []; nixosConfigurations."alyssum" = mkSystem nixpkgs "alyssum" "x86_64-linux" [];
nixosConfigurations."blossom" = mkSystem nixpkgs "blossom" "x86_64-linux" true []; nixosConfigurations."anemone" = mkSystem nixpkgs "anemone" "x86_64-linux" [];
nixosConfigurations."hyacinth" = mkSystem nixpkgs "hyacinth" "x86_64-linux" true []; nixosConfigurations."dandelion" = mkSystem nixpkgs "dandelion" "aarch64-linux" [];
nixosConfigurations."hyacinth" = mkSystem nixpkgs "hyacinth" "x86_64-linux" [];
nixosConfigurations."caramel" = mkSystem nixpkgs-raccoon "caramel" "aarch64-linux" false [{
nixpkgs.overlays = [
(self: super: {
makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
})
];
}];
nixosConfigurations."sugarcane" = mkSystem nixpkgs-raccoon "sugarcane" "x86_64-linux" false [];
nixosConfigurations."dandelion" = mkSystem nixpkgs-stable "dandelion" "aarch64-linux" false [];
packages."x86_64-linux" = packages."x86_64-linux" =
let let
pkgs = import nixpkgs { pkgs = import nixpkgs rec {
inherit overlays; overlays = patchOverlaysWithLinuxLava nixpkgs system;
system = "x86_64-linux"; system = "x86_64-linux";
}; };
in in
{ {
inherit (pkgs.me) linux-lava; inherit (pkgs.me) linux-lava spotify-adblock;
linux-lava-ccache = pkgs.me.linux-lava.override { useCcache = true; };
}; };
packages."aarch64-linux" =
let
pkgs = import nixpkgs-raccoon {
inherit overlays;
system = "aarch64-linux";
};
in
{
caramel-img = self.nixosConfigurations."caramel".config.system.build.sdImage;
};
# TODO: currently broken
# devShells.x86_64-linux = pkgs.callPackage ./shells { inherit inputs; };
}; };
} }

45
hosts/alyssum/default.nix Normal file
View file

@ -0,0 +1,45 @@
{ inputs, lib, modules, modulesPath, ... }: {
networking.hostName = "alyssum";
system.stateVersion = "25.11";
time.timeZone = "Australia/Melbourne";
age.secrets = {
acme_dns.file = ../../secrets/acme_dns.age;
passwd.file = ../../secrets/passwd.age;
navidrome_env.file = ../../secrets/navidrome_env.age;
wpa_conf = {
file = ../../secrets/wpa_conf.age;
path = "/etc/wpa_supplicant/imperative.conf";
symlink = false;
};
};
imports = with modules.system; [
(modulesPath + "/profiles/qemu-guest.nix")
home-manager
base
kernel
nix-stable
packages
security
tailscale
modules.services.nginx
modules.services.syncthing
inputs.c-emerald.nixosModule
inputs.c-garnet.nixosModule
./filesystem.nix
./kernel.nix
./networking.nix
./home.syncthing.nix
./samba.nix
../../users/hana
];
me.environment = "headless";
services.syncthing.user = lib.mkForce "hana";
}

View file

@ -0,0 +1,35 @@
{ ... }:
let
bind = src: {
depends = [ "/nix" ];
device = src;
fsType = "none";
neededForBoot = true;
options = [ "bind" ];
};
mkLabelMount = label: type: {
device = "/dev/disk/by-label/${label}";
fsType = type;
options = [ "defaults" "relatime" ];
};
mkBtrfsMount = name: subvol: atime: mkLabelMount name "btrfs" // {
options = [ "autodefrag" "compress=zstd:3" "defaults" "discard=async" "space_cache=v2" "ssd" "subvol=${subvol}" (if atime then "relatime" else "noatime") ];
};
submount = mkBtrfsMount "alyssum";
in {
fileSystems = {
"/" = {
device = "rootfs";
fsType = "tmpfs";
options = [ "defaults" "size=8G" "mode=755" ];
};
"/boot" = mkLabelMount "stem" "vfat";
"/flower" = mkBtrfsMount "myosotis" "/@" true;
"/nix" = submount "/@/nix" false;
"/persist" = (submount "/@/persist" true) // { neededForBoot = true; };
"/persist/.snapshots" = submount "/snap/persist" false;
"/var/log/journal" = bind "/persist/journal";
};
}

View file

@ -0,0 +1,39 @@
{ config, lib, ... }:
let
configOn = user: port: {
me.binds."/home/${user}/.config/syncthing" = "${user}/syncthing/config";
me.binds."/home/${user}/.local/state/syncthing" = "${user}/syncthing/state";
systemd.tmpfiles.rules = [ "d /flower/syncthing/${user} 700 ${user} users" ];
users.users.${user} = {
hashedPasswordFile = config.age.secrets.passwd.path;
isNormalUser = true;
linger = true;
};
home-manager.users.${user} = { ... }: {
home = {
username = "${user}";
homeDirectory = "/home/${user}";
stateVersion = "26.05";
};
services.syncthing = {
enable = true;
guiAddress = "[::]:${toString port}";
overrideDevices = false;
overrideFolders = false;
settings = {
options.listenAddresses = [
"tcp://0.0.0.0:2${toString port}"
"quic://0.0.0.0:2${toString port}"
"dynamic+https://relays.syncthing.net/endpoint"
];
defaults.folder.path = "/flower/syncthing/${user}";
};
};
};
};
in lib.mkMerge [
(configOn "kujira" 8385)
(configOn "cilly" 8386)
]

12
hosts/alyssum/kernel.nix Normal file
View file

@ -0,0 +1,12 @@
{ config, lib, ... }: {
boot = {
loader = {
efi.canTouchEfiVariables = true;
systemd-boot.enable = true;
};
initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" "rtsx_usb_sdmmc" ];
initrd.kernelModules = [ ];
kernelModules = [ "kvm-amd" ];
};
hardware.cpu.amd.updateMicrocode = true;
}

View file

@ -0,0 +1,15 @@
{ config, ... }: {
networking = {
useDHCP = true;
wireless.enable = true;
interfaces.wlp1s0.useDHCP = false;
interfaces.wlp1s0.ipv4.addresses = [{
address = "192.168.1.167";
prefixLength = 24;
}];
defaultGateway = "192.168.1.1";
nameservers = [ "8.8.8.8" "8.8.4.4" ];
};
}

View file

@ -1,4 +1,4 @@
{ lib, pkgs, ... }: { { pkgs, ... }: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
git git
htop htop

84
hosts/alyssum/samba.nix Normal file
View file

@ -0,0 +1,84 @@
{ config, lib, pkgs, ... }:
let
configOn = user: let
passwd_fname = "passwd_smb${user}";
in {
age.secrets.${passwd_fname}.file = ../../secrets/${passwd_fname}.age;
me.binds."/flower/smb/${user}/music" = "/flower/media/music/${user}";
me.binds."/flower/smb/${user}/syncthing" = "/flower/syncthing/${user}";
users.users.${user} = {
hashedPasswordFile = config.age.secrets.passwd.path;
isNormalUser = true;
};
system.activationScripts = {
init_smbpasswd.text = let
smbpasswd = "${config.services.samba.package}/bin/smbpasswd";
in ''
printf "$(cat ${config.age.secrets.${passwd_fname}.path})\n$(cat ${config.age.secrets.${passwd_fname}.path})\n" | ${smbpasswd} -sa ${user}
'';
};
services.samba.settings."${user}" = {
"path" = "/flower/smb/${user}";
"browseable" = "yes";
"read only" = "no";
"guest ok" = "no";
"create mask" = "0644";
"directory mask" = "0755";
"force user" = user;
"force group" = "users";
"valid users" = user;
};
};
in lib.mkMerge [
(configOn "cilly")
(configOn "kujira")
{
me.binds."/flower/smb/kujira/opencloud" = "/flower/opencloud/data/storage/users/users/a8e29fc0-673c-4c67-be00-2442904acb43";
networking.firewall.allowPing = true;
services.samba = {
enable = true;
package = pkgs.samba4Full;
openFirewall = true;
settings = {
global = {
"server smb encrypt" = "required";
"workgroup" = "WORKGROUP";
"server string" = "smbnix";
"netbios name" = "smbnix";
"security" = "user";
"hosts allow" = "100.64.0.0/10 127.0.0.1 alyssum localhost";
"hosts deny" = "0.0.0.0/0";
"guest account" = "nobody";
"map to guest" = "bad user";
};
"public" = {
"path" = "/flower/smb/public";
"browseable" = "yes";
"read only" = "no";
"guest ok" = "yes";
"create mask" = "0644";
"directory mask" = "0755";
"force user" = "hana";
"force group" = "users";
};
};
};
services.samba-wsdd = {
enable = true;
openFirewall = true;
};
services.avahi = {
enable = true;
openFirewall = true;
nssmdns4 = true;
publish.enable = true;
publish.userServices = true;
};
}
]

View file

@ -3,13 +3,13 @@
system.stateVersion = "23.11"; system.stateVersion = "23.11";
time.timeZone = "Australia/Melbourne"; time.timeZone = "Australia/Melbourne";
nixpkgs.overlays = [ inputs.neovim-nightly.overlay ]; nixpkgs.overlays = [ inputs.neovim-nightly.overlays.default ];
age.secrets = { age.secrets = {
wg_anemone.file = ../../secrets/wg_anemone.age;
passwd.file = ../../secrets/passwd.age; passwd.file = ../../secrets/passwd.age;
}; };
imports = with modules.system; [ imports = with modules.system; [
inputs.home-manager.nixosModule
home-manager home-manager
audio audio
@ -17,6 +17,7 @@
bluetooth bluetooth
ccache ccache
corectrl corectrl
docker
flatpak flatpak
greetd greetd
gui gui
@ -27,18 +28,33 @@
printing printing
security security
snapper snapper
tailscale
wireguard
./filesystem.nix ./filesystem.nix
./kernel.nix ./kernel.nix
./networking.nix ./networking.nix
../../users/rin ../../users/rin
modules.services.syncthing
]; ];
programs.hyprland.enable = true; me = {
environment = "laptop";
batteryDevice = "BATT";
kbBacklightDevice = "asus::kbd_backlight";
hasFingerprint = true;
hidpi = true;
};
# For steam fhs-env programs.wireshark = {
nixpkgs.config.permittedInsecurePackages = [ enable = true;
"openssl-1.1.1w" package = pkgs.wireshark;
]; };
services.fprintd.enable = true;
services.tlp.enable = true;
programs.kdeconnect.enable = true;
} }

View file

@ -7,6 +7,7 @@
}; };
initrd = { initrd = {
availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
systemd.enable = true;
verbose = false; verbose = false;
}; };
kernelModules = [ "kvm-amd" ]; kernelModules = [ "kvm-amd" ];
@ -22,6 +23,25 @@
]; ];
}; };
# swapDevices = [{
# device = "/persist/swapfile";
# size = 16 * 1024;
# }];
#
# systemd.sleep.extraConfig = ''
# HibernateMode=shutdown
# '';
/*
services.logind.lidSwitch = "suspend-then-hibernate";
systemd.sleep.extraConfig = ''
HibernateDelaySec=14400
SuspendEstimationSec=3600
HibernateOnACPower=true
'';
*/
powerManagement.cpufreq.min = 400000;
hardware.cpu.amd.updateMicrocode = true; hardware.cpu.amd.updateMicrocode = true;
hardware.firmware = let hardware.firmware = let
@ -30,17 +50,12 @@
pkgs.runCommandNoCC "cs35l41-10431683" { } '' pkgs.runCommandNoCC "cs35l41-10431683" { } ''
mkdir -p $out/lib/firmware/cirrus mkdir -p $out/lib/firmware/cirrus
cd $out/lib/firmware/cirrus cd $out/lib/firmware/cirrus
cp ${fw}/cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-cali-10431683-spkid0-l0.bin
cp ${fw}/cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-cali-10431683-spkid0-r0.bin
cp ${fw}/cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-cali-10431683-spkid1-l0.bin
cp ${fw}/cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-cali-10431683-spkid1-r0.bin
cp ${fw}/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-prot-10431683-spkid0-l0.bin cp ${fw}/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-prot-10431683-spkid0-l0.bin
cp ${fw}/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-prot-10431683-spkid0-r0.bin cp ${fw}/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-prot-10431683-spkid0-r0.bin
cp ${fw}/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-prot-10431683-spkid1-l0.bin cp ${fw}/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-prot-10431683-spkid1-l0.bin
cp ${fw}/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-prot-10431683-spkid1-r0.bin cp ${fw}/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-prot-10431683-spkid1-r0.bin
cp ${fw}/cs35l41-dsp1-spk-cali-10431e12.wmfw cs35l41-dsp1-spk-cali-10431683.wmfw
cp ${fw}/cs35l41-dsp1-spk-prot-10431e12.wmfw cs35l41-dsp1-spk-prot-10431683.wmfw cp ${fw}/cs35l41-dsp1-spk-prot-10431e12.wmfw cs35l41-dsp1-spk-prot-10431683.wmfw
'' ''
)]; )];

View file

@ -1,15 +1,4 @@
{ config, ... }: { { config, ... }: {
networking = { networking.wireless.iwd.enable = true;
nameservers = [ "8.8.8.8" "8.8.4.4" ]; environment.etc."NetworkManager/system-connections".source = "/persist/nm_system-connections";
wireless.enable = true;
networkmanager = {
enable = true;
dns = "none";
};
extraHosts = ''
192.168.100.16 hyacinth
'';
};
} }

View file

@ -1,36 +0,0 @@
{ config, inputs, modules, overlays, pkgs, ... }: {
networking.hostName = "blossom";
system.stateVersion = "21.11";
time.timeZone = "Asia/Phnom_Penh";
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
nixpkgs.overlays = [ inputs.neovim-nightly.overlay ];
age.secrets = {
passwd.file = ../../secrets/passwd.age;
wg_blossom.file = ../../secrets/wg_blossom.age;
wpa_conf.file = ../../secrets/wpa_conf.age;
};
imports = with modules.system; [
inputs.home-manager.nixosModule
home-manager
audio
base
greetd
gui
input
kernel
nix
packages
security
snapper
wireguard
./filesystem.nix
./kernel.nix
./networking.nix
../../users/rin
];
}

View file

@ -1,41 +0,0 @@
{ config, ... }:
let
mkMount = uuid: type: {
device = "/dev/disk/by-uuid/${uuid}";
fsType = type;
options = [ "defaults" "relatime" ];
};
mkBtrfsMount = subvolid: atime: mkMount "cf0f4302-f006-46a5-afc7-ada04d17f6f2" "btrfs" // {
options = [ "autodefrag" "compress=zstd:3" "defaults" "discard=async" "space_cache=v2" "ssd" "subvolid=${builtins.toString subvolid}" (if atime then "relatime" else "noatime") ];
};
in
{
fileSystems = {
"/" = {
device = "rootfs";
fsType = "tmpfs";
options = [ "defaults" "size=4G" "mode=755" ];
};
"/boot" = mkMount "186A-A42E" "vfat";
"/mnt/butter" = mkBtrfsMount 5 true;
"/nix" = mkBtrfsMount 257 false;
"/home" = mkBtrfsMount 259 true;
"/home/.snapshots" = mkBtrfsMount 262 false;
"/root" = mkBtrfsMount 260 false;
"/var" = mkBtrfsMount 258 false;
"/persist" = {
depends = [ "/var" ];
device = "/var/persist";
fsType = "none";
options = [ "bind" ];
neededForBoot = true;
};
# "/mnt/nfs" = {
# device = "192.168.100.11:/srv/nfs";
# fsType = "nfs";
# options = [ "defaults" ];
# };
};
}

View file

@ -1,25 +0,0 @@
{ config, lib, pkgs, ... }: {
boot = {
loader = {
efi.canTouchEfiVariables = true;
grub = {
enable = true;
efiSupport = true;
device = "nodev";
useOSProber = lib.mkForce false;
};
};
initrd.kernelModules = [ "i915" ];
kernelParams = [
"amdgpu.gpu_recovery=1"
"amdgpu.si_support=1"
"radeon.si_support=0"
"intel_pstate=passive"
"msr.allow_writes=on"
];
kernelPackages = lib.mkForce (pkgs.linuxPackagesFor pkgs.me.linux-lava);
extraModulePackages = [ config.boot.kernelPackages.v4l2loopback.out ];
kernelModules = [ "v4l2loopback" ];
};
}

View file

@ -1,31 +0,0 @@
{ config, ... }: {
environment.etc."wpa_supplicant.conf".source = config.age.secrets.wpa_conf.path;
networking = {
wireless = {
enable = true;
interfaces = [ "wlp3s0" ];
};
useDHCP = false;
interfaces.eno1.useDHCP = false;
interfaces.wlp3s0.useDHCP = false;
interfaces.eno1.ipv4.addresses = [{
address = "10.0.0.2";
prefixLength = 24;
}];
interfaces.wlp3s0.ipv4.addresses = [{
address = "192.168.100.13";
prefixLength = 24;
}];
defaultGateway = "192.168.100.1";
nameservers = [ "192.168.100.15" ];
extraHosts = ''
192.168.100.12 strawberry
192.168.100.15 caramel
10.100.0.1 sugarcane
'';
};
}

View file

@ -1,43 +0,0 @@
{ config, inputs, modules, modulesPath, overlays, pkgs, ... }: {
networking.hostName = "caramel";
system.stateVersion = "22.11";
time.timeZone = "Asia/Phnom_Penh";
age.secrets = {
acme_dns.file = ../../secrets/acme_dns.age;
passwd.file = ../../secrets/passwd.age;
warden_admin.file = ../../secrets/warden_admin.age;
wpa_conf.file = ../../secrets/wpa_conf.age;
wg_caramel.file = ../../secrets/wg_caramel.age;
};
imports =
(with modules.system; [
"${builtins.toString modulesPath}/installer/sd-card/sd-image-aarch64.nix"
inputs.home-manager-raccoon.nixosModule
base
home-manager
input
nix-stable
security
transmission
wireguard
./filesystem.nix
./kernel.nix
./image.nix
./networking.nix
./packages.nix
../../users/hana
]) ++
(with modules.services; [
# nginx
# postgres
# synapse
jellyfin
sonarr
tmptsync
unbound
]);
}

View file

@ -1,50 +0,0 @@
{ config, lib, ... }:
let
bind = src: {
depends = [ "/persist" ];
device = src;
fsType = "none";
neededForBoot = true;
options = [ "bind" ];
};
in {
fileSystems = {
"/" = lib.mkForce {
device = "rootfs";
fsType = "tmpfs";
options = [ "defaults" "size=1G" "mode=755" ];
};
# "/nix" = {
# device = "overlayfs";
# fsType = "overlay";
# options = [
# "lowerdir=/mnt/image/nix"
# "upperdir=/persist/nix-overlay"
# "workdir=/persist/.overlaytmp"
# ];
# noCheck = true;
# depends = [ "/mnt/image" "/persist" ];
# };
"/nix" = (bind "/mnt/image/nix") // { depends = [ "/mnt/image" ]; };
"/mnt/image" = {
device = "/dev/disk/by-label/NIXOS_SD";
fsType = "ext4";
options = [ "defaults" "noatime" ];
neededForBoot = true;
};
"/persist" = {
device = "/dev/disk/by-label/PI_HDD";
fsType = "ext4";
options = [ "defaults" "relatime" ];
neededForBoot = true;
};
"/var/lib/acme" = bind "/persist/acme";
"/var/log/journal" = bind "/persist/journal";
"/boot" = (bind "/mnt/image/boot") // { depends = [ "/mnt/image" ]; };
};
}

View file

@ -1,29 +0,0 @@
{ config, lib, pkgs, ... }: {
sdImage.expandOnBoot = false;
boot.postBootCommands = ''
# On the first boot do some maintenance tasks
if [ -f /mnt/image/nix-path-registration ]; then
set -euo pipefail
set -x
# Figure out device names for the boot device and root filesystem.
rootPart=$(${pkgs.util-linux}/bin/findmnt -n -o SOURCE /mnt/image)
bootDevice=$(lsblk -npo PKNAME $rootPart)
partNum=$(lsblk -npo MAJ:MIN $rootPart | ${pkgs.gawk}/bin/awk -F: '{print $2}')
# Resize the root partition and the filesystem to fit the disk
echo ",+," | sfdisk -N$partNum --no-reread $bootDevice
${pkgs.parted}/bin/partprobe
${pkgs.e2fsprogs}/bin/resize2fs $rootPart
# Register the contents of the initial Nix store
${config.nix.package.out}/bin/nix-store --load-db < /mnt/image/nix-path-registration
# nixos-rebuild also requires a "system" profile and an /etc/NIXOS tag.
touch /etc/NIXOS
${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
# Prevents this from running on later boots.
rm -f /mnt/image/nix-path-registration
fi
'';
}

View file

@ -1,15 +0,0 @@
{ config, inputs, lib, pkgs, ... }: {
imports = [
inputs.nixos-hardware.nixosModules.raspberry-pi-4
];
hardware.raspberry-pi."4".fkms-3d.enable = true;
boot = {
initrd.kernelModules = [ "overlay" ];
supportedFilesystems = lib.mkForce [ "btrfs" "vfat" ];
kernel.sysctl = {
"kernel.core_pattern" = "|/bin/false";
"kernel.sysrq" = 1;
};
};
}

View file

@ -1,35 +0,0 @@
{ config, ... }: {
environment.etc."wpa_supplicant.conf".source = config.age.secrets.wpa_conf.path;
networking = {
firewall.allowedTCPPorts = [ 80 443 ];
wireless = {
enable = true;
interfaces = [ "wlan0" ];
};
useDHCP = false;
interfaces.wlan0.useDHCP = false;
interfaces.wlan0.ipv4.addresses = [{
address = "192.168.100.15";
prefixLength = 24;
}];
defaultGateway = "192.168.100.1";
nameservers = [ "8.8.8.8" ];
extraHosts = ''
192.168.100.12 strawberry
192.168.100.13 blossom
'';
};
# wait for ntp before connecting to wireguard
systemd = {
additionalUpstreamSystemUnits = [ "systemd-time-wait-sync.service" ];
services = {
"systemd-time-wait-sync".wantedBy = [ "multi-user.target" ];
"wireguard-wg0".after = [ "time-sync.target" ];
};
};
}

View file

@ -1,26 +1,44 @@
{ config, inputs, modules, modulesPath, overlays, pkgs, ... }: { { inputs, modules, modulesPath, ... }: {
networking.hostName = "dandelion"; networking.hostName = "dandelion";
system.stateVersion = "23.11"; system.stateVersion = "23.11";
time.timeZone = "Australia/Melbourne"; time.timeZone = "Australia/Melbourne";
age.secrets = {
acme_dns.file = ../../secrets/acme_dns.age;
slskd_env.file = ../../secrets/slskd_env.age;
wg_dandelion.file = ../../secrets/wg_dandelion.age;
};
imports = with modules.system; [ imports = with modules.system; [
(modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
inputs.home-manager-stable.nixosModule home-manager
base base
home-manager kernel
input
nix-stable nix-stable
packages
security security
#wireguard tailscale
wireguard
modules.services.postgres modules.services.banksia
modules.services.nginx
modules.services.unbound
modules.services.website
inputs.c-amethyst.nixosModule
inputs.c-beryllium.nixosModule
inputs.c-citrine.nixosModule
inputs.c-diamond.nixosModule
inputs.c-fluorite.nixosModule
./filesystem.nix ./filesystem.nix
./kernel.nix ./kernel.nix
./networking.nix ./networking.nix
./packages.nix ./nginx.nix
../../users/hana ../../users/hana
]; ];
me.environment = "headless";
} }

View file

@ -1,4 +1,4 @@
{ config, lib, ... }: { ... }:
let let
bind = src: { bind = src: {
depends = [ "/nix" ]; depends = [ "/nix" ];
@ -8,12 +8,12 @@ let
options = [ "bind" ]; options = [ "bind" ];
}; };
mkLabelMount = label: type: lazy: { mkLabelMount = label: type: {
device = "/dev/disk/by-label/${label}"; device = "/dev/disk/by-label/${label}";
fsType = type; fsType = type;
options = [ "defaults" "relatime" ] ++ lib.optionals lazy [ "nofail" ]; options = [ "defaults" "relatime" ];
}; };
mkBtrfsMount = name: subvol: atime: mkLabelMount name "btrfs" false // { mkBtrfsMount = name: subvol: atime: mkLabelMount name "btrfs" // {
options = [ "autodefrag" "compress=zstd:3" "defaults" "discard=async" "space_cache=v2" "ssd" "subvol=${subvol}" (if atime then "relatime" else "noatime") ]; options = [ "autodefrag" "compress=zstd:3" "defaults" "discard=async" "space_cache=v2" "ssd" "subvol=${subvol}" (if atime then "relatime" else "noatime") ];
}; };
submount = mkBtrfsMount "DANDELION"; submount = mkBtrfsMount "DANDELION";
@ -22,10 +22,10 @@ in {
"/" = { "/" = {
device = "rootfs"; device = "rootfs";
fsType = "tmpfs"; fsType = "tmpfs";
options = [ "defaults" "size=12G" "mode=755" ]; options = [ "defaults" "size=6G" "mode=755" ];
}; };
"/boot" = mkLabelMount "UEFI" "vfat";
"/boot" = mkLabelMount "UEFI" "vfat" true;
"/nix" = submount "/@/nix" false; "/nix" = submount "/@/nix" false;
"/persist" = (submount "/@/persist" true) // { neededForBoot = true; }; "/persist" = (submount "/@/persist" true) // { neededForBoot = true; };
"/persist/.snapshots" = submount "/snap/persist" false; "/persist/.snapshots" = submount "/snap/persist" false;

View file

@ -1,18 +1,10 @@
{ config, inputs, pkgs, ... }: { { ... }: {
boot = { boot = {
loader = { loader = {
systemd-boot.enable = false;
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
grub = { systemd-boot.enable = true;
enable = true;
device = "/dev/sda";
};
}; };
initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "xen_blkfront" ]; initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "xen_blkfront" ];
initrd.kernelModules = [ "nvme" ]; initrd.kernelModules = [ "nvme" ];
kernel.sysctl = {
"kernel.core_pattern" = "|/bin/false";
"kernel.sysrq" = 1;
};
}; };
} }

View file

@ -1,10 +1,4 @@
{ config, ... }: { { ... }: {
networking = { networking.useDHCP = true;
useDHCP = true; networking.interfaces.enp2s0.useDHCP = false;
# extraHosts = ''
# 10.100.0.3 blossom
# 10.100.0.4 strawberry
# '';
};
} }

View file

@ -0,0 +1,8 @@
{ ... }: {
services.nginx.virtualHosts."muse.lava.moe" = {
useACMEHost = "lava.moe";
forceSSL = true;
locations."/".return = "404";
locations."/share/".proxyPass = "http://[fd0d:2::5:2]:4533";
};
}

View file

@ -1,4 +1,4 @@
{ lib, pkgs, ... }: { { pkgs, ... }: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
git git
htop htop

View file

@ -1,23 +1,24 @@
{ config, inputs, modules, overlays, pkgs, ... }: { { config, inputs, modules, overlays, pkgs, ... }: {
networking.hostName = "hyacinth"; networking.hostName = "hyacinth";
system.stateVersion = "21.11"; system.stateVersion = "21.11";
time.timeZone = "Asia/Phnom_Penh"; time.timeZone = "Australia/Melbourne";
boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; nixpkgs.overlays = [ inputs.neovim-nightly.overlays.default ];
nixpkgs.overlays = [ inputs.neovim-nightly.overlay ];
age.secrets = { age.secrets = {
passwd.file = ../../secrets/passwd.age; passwd.file = ../../secrets/passwd.age;
wg_hyacinth.file = ../../secrets/wg_blossom.age; wg_hyacinth.file = ../../secrets/wg_hyacinth.age;
wpa_conf.file = ../../secrets/wpa_conf.age; wpa_conf.file = ../../secrets/wpa_conf.age;
}; };
imports = with modules.system; [ imports = with modules.system; [
inputs.home-manager.nixosModule
home-manager home-manager
aagl
audio audio
base base
bluetooth
ccache ccache
corectrl corectrl
docker
flatpak flatpak
greetd greetd
gui gui
@ -28,21 +29,19 @@
printing printing
security security
snapper snapper
virtualisation tailscale
wireguard wireguard
modules.services.postgres modules.services.syncthing
./filesystem.nix ./filesystem.nix
./kernel.nix ./kernel.nix
./networking.nix ./networking.nix
./packages.nix
../../users/rin ../../users/rin
]; ];
services.postgresql.ensureDatabases = [ "barista" "barista-dev" ]; systemd.services.nix-daemon.environment.TMPDIR = "/nix/tmp";
# For steam fhs-env me.hasBluetooth = true;
nixpkgs.config.permittedInsecurePackages = [
"openssl-1.1.1w"
];
} }

View file

@ -15,7 +15,7 @@ in
"/" = { "/" = {
device = "rootfs"; device = "rootfs";
fsType = "tmpfs"; fsType = "tmpfs";
options = [ "defaults" "size=8G" "mode=755" ]; options = [ "defaults" "size=24G" "mode=755" ];
}; };
"/boot" = mkLabelMount "CUP" "vfat"; "/boot" = mkLabelMount "CUP" "vfat";

View file

@ -13,12 +13,8 @@
]; ];
kernelPackages = lib.mkForce (pkgs.linuxPackagesFor pkgs.me.linux-lava); kernelPackages = lib.mkForce (pkgs.linuxPackagesFor pkgs.me.linux-lava);
}; };
services.xserver.xrandrHeads = [{ hardware.amdgpu.overdrive = {
output = "DP-1"; enable = true;
primary = true; ppfeaturemask = "0xffffffff";
monitorConfig = '' };
Modeline "1920x1080_165.00" 525.00 1920 2088 2296 2672 1080 1083 1088 1192 -hsync +vsync
Option "PreferredMode" "1920x1080_165.00"
'';
}];
} }

View file

@ -1,20 +1,18 @@
{ config, ... }: { { config, ... }: {
environment.etc."wpa_supplicant.conf".source = config.age.secrets.wpa_conf.path; environment.etc."wpa_supplicant.conf".source = config.age.secrets.wpa_conf.path;
networking = { networking = {
useDHCP = false; useDHCP = true;
interfaces.enp5s0.useDHCP = false; interfaces.enp5s0.useDHCP = false;
interfaces.enp5s0.wakeOnLan.enable = true;
interfaces.enp5s0.ipv4.addresses = [{ interfaces.enp5s0.ipv4.addresses = [{
address = "192.168.100.16"; address = "192.168.1.201";
prefixLength = 24; prefixLength = 24;
}]; }];
defaultGateway = "192.168.100.1"; defaultGateway = "192.168.1.1";
nameservers = [ "1.1.1.1" ]; nameservers = [ "8.8.8.8" "8.8.4.4" ];
extraHosts = '' extraHosts = ''
192.168.100.12 strawberry
192.168.100.15 caramel
10.100.0.1 sugarcane 10.100.0.1 sugarcane
''; '';
}; };

View file

@ -0,0 +1,7 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
discord
jetbrains.idea
texliveFull
];
}

View file

@ -1,28 +0,0 @@
{ config, inputs, modules, modulesPath, overlays, pkgs, ... }: {
networking.hostName = "sugarcane";
system.stateVersion = "21.11";
time.timeZone = "Asia/Singapore";
age.secrets = {
passwd.file = ../../secrets/passwd.age;
wg_sugarcane.file = ../../secrets/wg_sugarcane.age;
};
imports = with modules.system; [
(modulesPath + "/profiles/qemu-guest.nix")
inputs.home-manager-raccoon.nixosModule
base
home-manager
input
nix-stable
security
wireguard
./filesystem.nix
./kernel.nix
./networking.nix
./packages.nix
../../users/hana
];
}

View file

@ -1,29 +0,0 @@
{ config, ... }:
let
bind = src: {
depends = [ "/nix" ];
device = src;
fsType = "none";
neededForBoot = true;
options = [ "bind" ];
};
in {
fileSystems = {
"/" = {
device = "rootfs";
fsType = "tmpfs";
options = [ "defaults" "size=1G" "mode=755" ];
};
"/nix" = {
device = "/dev/disk/by-uuid/19d572a8-1cf6-4b9c-94c6-3ce6be54f719";
fsType = "ext4";
options = [ "defaults" "noatime" ];
neededForBoot = true;
};
"/persist" = bind "/nix/persist";
"/var/log/journal" = bind "/nix/persist/journal";
"/boot" = bind "/nix/persist/boot";
};
}

View file

@ -1,17 +0,0 @@
{ config, inputs, pkgs, ... }: {
boot = {
loader = {
systemd-boot.enable = false;
efi.canTouchEfiVariables = true;
grub = {
enable = true;
device = "/dev/sda";
};
};
initrd.kernelModules = [ "nvme" ];
kernel.sysctl = {
"kernel.core_pattern" = "|/bin/false";
"kernel.sysrq" = 1;
};
};
}

View file

@ -1,11 +0,0 @@
{ config, ... }: {
networking = {
useDHCP = false;
interfaces.ens3.useDHCP = true;
extraHosts = ''
10.100.0.3 blossom
10.100.0.4 strawberry
'';
};
}

View file

@ -1,14 +0,0 @@
{ lib, pkgs, ... }: {
environment.systemPackages = with pkgs; [
git
htop
jq
neovim
rsync
sshfs
wget
kitty.terminfo
];
environment.variables.EDITOR = "nvim";
}

13
modules/binds.nix Normal file
View file

@ -0,0 +1,13 @@
{ config, lib, ...}: {
imports = [ ./options.nix ];
fileSystems = lib.mapAttrs (dest: key: let
target = if (lib.strings.hasPrefix "/" key)
then key
else "/persist/binds/${key}";
in {
depends = [ "/persist" ];
device = target;
fsType = "none";
options = [ "bind" ];
}) config.me.binds;
}

View file

@ -14,22 +14,30 @@ let
}) paths }) paths
); );
in { in {
binds = ./binds.nix;
options = ./options.nix;
services = mkAttrsFromPaths [ services = mkAttrsFromPaths [
./services/banksia.nix
./services/jellyfin.nix ./services/jellyfin.nix
./services/nginx.nix ./services/nginx.nix
./services/postgres.nix ./services/postgres.nix
./services/sonarr.nix ./services/sonarr.nix
./services/synapse.nix ./services/synapse.nix
./services/syncthing.nix
./services/tmptsync.nix ./services/tmptsync.nix
./services/transmission.nix
./services/unbound.nix ./services/unbound.nix
./services/vaultwarden.nix ./services/vaultwarden.nix
./services/website.nix
]; ];
system = mkAttrsFromPaths [ system = mkAttrsFromPaths [
./system/aagl.nix
./system/audio.nix ./system/audio.nix
./system/base.nix ./system/base.nix
./system/bluetooth.nix ./system/bluetooth.nix
./system/ccache.nix ./system/ccache.nix
./system/corectrl.nix ./system/corectrl.nix
./system/docker.nix
./system/flatpak.nix ./system/flatpak.nix
./system/greetd.nix ./system/greetd.nix
./system/gui.nix ./system/gui.nix
@ -42,36 +50,31 @@ in {
./system/printing.nix ./system/printing.nix
./system/security.nix ./system/security.nix
./system/snapper.nix ./system/snapper.nix
./system/transmission.nix ./system/tailscale.nix
./system/virtualisation.nix ./system/virtualisation.nix
./system/wireguard.nix ./system/wireguard.nix
]; ];
user = mkAttrsFromPaths [ user = mkAttrsFromPaths [
./user/bspwm.nix ./user/catppuccin.nix
./user/comma.nix
./user/direnv.nix ./user/direnv.nix
./user/dunst.nix ./user/dunst.nix
./user/eww.nix ./user/eww.nix
./user/eww-wayland.nix
./user/git.nix ./user/git.nix
./user/gpg.nix ./user/gpg.nix
./user/hypridle.nix
./user/hyprlock.nix
./user/kitty.nix ./user/kitty.nix
./user/mpv.nix ./user/mpv.nix
./user/neovim.nix ./user/neovim.nix
./user/neovim-minimal.nix ./user/neovim-minimal.nix
./user/npm.nix ./user/npm.nix
./user/obs.nix ./user/obs.nix
./user/packages-rin.nix
./user/pass.nix
./user/picom.nix
./user/polybar.nix
./user/rofi.nix ./user/rofi.nix
./user/rofi-wayland.nix
./user/sessionVariables.nix ./user/sessionVariables.nix
./user/spicetify.nix ./user/spicetify.nix
./user/sxhkd.nix
./user/theming.nix ./user/theming.nix
./user/xdg.nix ./user/xdg.nix
./user/xorg.nix
./user/zsh.nix ./user/zsh.nix
]; ];
} }

53
modules/options.nix Normal file
View file

@ -0,0 +1,53 @@
{ config, lib, ... }:
let
inherit (lib)
mkOption
types;
in {
options.me = {
environment = mkOption {
type = types.enum [ "desktop" "laptop" "headless" ];
default = "desktop";
};
hasFingerprint = mkOption {
type = types.bool;
default = false;
};
gui = mkOption {
type = types.bool;
default = config.me.environment != "headless";
};
batteryDevice = mkOption {
type = with types; nullOr (uniq str);
default = null;
};
kbBacklightDevice = mkOption {
type = with types; nullOr (uniq str);
default = null;
};
hasBluetooth = mkOption {
type = types.bool;
default = config.me.environment == "laptop";
};
hasWifi = mkOption {
type = types.bool;
default = config.me.environment == "laptop";
};
hidpi = mkOption {
type = types.bool;
default = false;
};
binds = lib.mkOption {
type = with lib.types; attrsOf str;
default = {};
};
};
}

View file

@ -0,0 +1,11 @@
# TODO ^^
{ ... }: {
services.nginx.virtualHosts = {
"banksia.lava.moe" = {
useACMEHost = "lava.moe";
forceSSL = true;
locations."/".return = "302 https://lab.lava.moe/cilly/Banksia";
locations."/api".proxyPass = "http://localhost:8080/";
};
};
}

View file

@ -1,17 +1,21 @@
{ config, inputs, ... }: { { config, ... }: {
networking.firewall.allowedTCPPorts = [ 80 443 ];
security.acme = { security.acme = {
acceptTerms = true; acceptTerms = true;
defaults = {
email = "me@lava.moe"; email = "me@lava.moe";
certs."lava.moe" = {
group = "nginx"; group = "nginx";
domain = "lava.moe"; dnsProvider = "cloudflare";
environmentFile = config.age.secrets."acme_dns".path;
};
certs."lava.moe" = {
extraDomainNames = [ extraDomainNames = [
"*.lava.moe" "*.lava.moe"
"*.local.lava.moe" "*.local.lava.moe"
]; ];
dnsProvider = "cloudflare";
credentialsFile = config.age.secrets."acme_dns".path;
}; };
certs."cilly.moe" = {};
certs."cilly.dev" = {};
}; };
services.nginx = { services.nginx = {
@ -20,23 +24,5 @@
recommendedOptimisation = true; recommendedOptimisation = true;
recommendedGzipSettings = true; recommendedGzipSettings = true;
recommendedProxySettings = true; recommendedProxySettings = true;
virtualHosts = {
"lava.moe" = {
useACMEHost = "lava.moe";
forceSSL = true;
root = inputs.website.outPath;
};
"_" = {
default = true;
addSSL = true;
# TODO generate this somewhere
sslCertificate = "/persist/fakeCerts/fake.crt";
sslCertificateKey = "/persist/fakeCerts/fake.key";
extraConfig = ''
return 444;
'';
};
};
}; };
} }

View file

@ -8,6 +8,7 @@ in {
services.postgresql = { services.postgresql = {
enable = true; enable = true;
dataDir = dir; dataDir = dir;
# TODO: broken :3
package = pkgs.postgresql_13; package = pkgs.postgresql_13;
authentication = lib.mkOverride 10 '' authentication = lib.mkOverride 10 ''
#type database DBuser origin-address auth-method #type database DBuser origin-address auth-method

View file

@ -0,0 +1,23 @@
{ config, ... }:
let
dir = "/persist/shared/.syncthing";
user = if config.me.gui then "rin" else "hana";
uid = toString config.users.users."${user}".uid;
gid = toString config.users.groups.users.gid;
in
{
systemd.tmpfiles.rules = [
"d ${dir}/config 700 ${uid} ${gid}"
"d ${dir}/data 700 ${uid} ${gid}"
];
systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true";
services.syncthing = {
enable = true;
openDefaultPorts = true;
user = user;
group = "users";
dataDir = "/persist/shared/.syncthing/data";
configDir = "/persist/shared/.syncthing/config";
guiAddress = if config.me.gui then "127.0.0.1:8384" else ":8384";
};
}

View file

@ -5,13 +5,6 @@
downloadDirPermissions = "775"; downloadDirPermissions = "775";
openFirewall = true; openFirewall = true;
settings = { settings = {
alt-speed-down = 512;
alt-speed-enabled = true;
alt-speed-time-begin = 360;
alt-speed-time-day = 127;
alt-speed-time-enabled = true;
alt-speed-time-end = 1380;
alt-speed-up = 256;
download-dir = "/persist/transmission/Downloads"; download-dir = "/persist/transmission/Downloads";
incomplete-dir = "/persist/transmission/.incomplete"; incomplete-dir = "/persist/transmission/.incomplete";
ratio-limit-enabled = true; ratio-limit-enabled = true;

View file

@ -1,8 +1,17 @@
{ inputs, ... }: { inputs, pkgs, gcSecrets, ... }:
let let
dir = "/persist/unbound"; dir = "/persist/unbound";
converted = pkgs.runCommand "stevenblack-hosts-unbound" {} ''
echo "server:" > "$out"
grep '^0\.0\.0\.0' "${inputs.stevenblack-hosts}/hosts" | awk '{print "local-zone: \""$2"\" always_refuse"}' | tail -n +2 >> "$out"
'';
in { in {
networking.firewall.interfaces.wlan0 = { networking.firewall.interfaces."ve-+" = {
allowedUDPPorts = [ 53 853 ];
allowedTCPPorts = [ 53 853 ];
};
networking.firewall.interfaces.wg0 = {
allowedUDPPorts = [ 53 853 ]; allowedUDPPorts = [ 53 853 ];
allowedTCPPorts = [ 53 853 ]; allowedTCPPorts = [ 53 853 ];
}; };
@ -16,17 +25,27 @@ in {
name = "."; name = ".";
forward-tls-upstream = true; forward-tls-upstream = true;
forward-addr = [ forward-addr = [
"2606:4700:4700::1111@853#cloudflare-dns.com"
"2606:4700:4700::1001@853#cloudflare-dns.com"
"2001:4860:4860::8888@853#dns.google"
"2001:4860:4860::8844@853#dns.google"
"1.1.1.1@853#cloudflare-dns.com" "1.1.1.1@853#cloudflare-dns.com"
"1.0.0.1@853#cloudflare-dns.com" "1.0.0.1@853#cloudflare-dns.com"
"8.8.8.8@853#dns.google"
"8.8.4.4@853#dns.google"
]; ];
}]; }];
server = { server = {
interface = [ "0.0.0.0" ]; interface = [ "0.0.0.0" "::0" ];
access-control = [ access-control = [
"127.0.0.1/8 allow" "127.0.0.1/8 allow"
"10.0.0.0/8 allow" "10.0.0.0/8 allow"
"100.64.0.0/10 allow"
"192.168.100.0/24 allow" "192.168.100.0/24 allow"
"fd0d::/16 allow"
"fd7a:115c:a1e0::/48 allow"
"${gcSecrets.wireguard.ipv6Subnet}:/80 allow"
]; ];
domain-insecure = [ "\"local.lava.moe\"" ]; domain-insecure = [ "\"local.lava.moe\"" ];
local-zone = [ "\"warden.local.lava.moe.\" redirect" ]; local-zone = [ "\"warden.local.lava.moe.\" redirect" ];
@ -35,7 +54,7 @@ in {
]; ];
}; };
include = "${inputs.hosts-blocklists}/unbound/unbound.blacklist.conf"; include = "${converted}";
}; };
}; };

View file

@ -0,0 +1,43 @@
{ inputs, pkgs, ... }: let
pastel = inputs.pastel.packages.${pkgs.system}.default;
in {
services.nginx.virtualHosts = {
"cilly.moe" = {
useACMEHost = "cilly.moe";
forceSSL = true;
root = pastel.outPath;
};
"cilly.dev" = {
useACMEHost = "cilly.dev";
forceSSL = true;
root = pastel.outPath;
};
"lava.moe" = {
useACMEHost = "lava.moe";
forceSSL = true;
root = inputs.website.outPath;
};
"cdn.lava.moe" = {
useACMEHost = "lava.moe";
forceSSL = true;
extraConfig = ''
return 301 https://sh.lava.moe$request_uri;
'';
};
"sh.lava.moe" = {
useACMEHost = "lava.moe";
forceSSL = true;
root = "/persist/cdn";
};
"_" = {
default = true;
addSSL = true;
# TODO generate this somewhere
sslCertificate = "/persist/fakeCerts/fake.crt";
sslCertificateKey = "/persist/fakeCerts/fake.key";
extraConfig = ''
return 444;
'';
};
};
}

6
modules/system/aagl.nix Normal file
View file

@ -0,0 +1,6 @@
{ inputs, ... }: {
imports = [ inputs.aagl.nixosModules.default ];
nix.settings = inputs.aagl.nixConfig;
programs.anime-game-launcher.enable = true;
programs.sleepy-launcher.enable = true;
}

View file

@ -17,7 +17,6 @@ let
rate = toString int.rate; rate = toString int.rate;
}; };
in { in {
sound.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = { services.pipewire = {
enable = true; enable = true;
@ -26,7 +25,7 @@ in {
pulse.enable = true; pulse.enable = true;
jack.enable = true; jack.enable = true;
}; };
environment.etc."pipewire/pipewire.conf.d/99-config.conf".text = builtins.toJSON { services.pipewire.extraConfig.pipewire = {
"context.properties" = { "context.properties" = {
"default.clock.rate" = int.rate; "default.clock.rate" = int.rate;
"default.clock.quantum" = int.quantum.def; "default.clock.quantum" = int.quantum.def;
@ -50,7 +49,7 @@ in {
"resample.quality" = 1; "resample.quality" = 1;
}; };
}; };
environment.etc."pipewire/pipewire-pulse.conf.d/99-config.conf".text = builtins.toJSON { services.pipewire.extraConfig.pipewire-pulse = {
"context.modules" = [ "context.modules" = [
{ {
name = "libpipewire-module-rtkit"; name = "libpipewire-module-rtkit";

View file

@ -1,4 +1,6 @@
{ config, enableGUI, inputs, modules, overlays, ... }: { { config, inputs, modules, ... }: {
imports = [ modules.binds modules.options ];
environment.etc = { environment.etc = {
"machine-id".source = "/persist/machine-id"; "machine-id".source = "/persist/machine-id";
"ssh/ssh_host_rsa_key".source = "/persist/ssh_host_rsa_key"; "ssh/ssh_host_rsa_key".source = "/persist/ssh_host_rsa_key";
@ -8,7 +10,9 @@
}; };
environment.pathsToLink = [ "/share/zsh" ]; environment.pathsToLink = [ "/share/zsh" ];
i18n.defaultLocale = "en_GB.UTF-8"; i18n.defaultLocale = "en_AU.UTF-8";
i18n.extraLocales = [ "en_GB.UTF-8/UTF-8" ];
users.mutableUsers = false; users.mutableUsers = false;
system = { system = {
@ -19,6 +23,5 @@
}; };
}; };
nix.registry.config.flake = inputs.self; nix.registry.config.flake = inputs.self;
nix.registry.nixpkgs.flake = inputs.nixpkgs;
nix.registry.shells.flake = inputs.self; nix.registry.shells.flake = inputs.self;
} }

View file

@ -1,9 +1,5 @@
{ ... }: { { ... }: {
programs.corectrl = { programs.corectrl = {
enable = true; enable = true;
gpuOverclock = {
enable = true;
ppfeaturemask = "0xffffffff";
};
}; };
} }

13
modules/system/docker.nix Normal file
View file

@ -0,0 +1,13 @@
{ pkgs, ... }: {
virtualisation.docker = {
enable = true;
storageDriver = "btrfs";
# rootless = {
# enable = true;
# setSocketVariable = true;
# };
};
environment.systemPackages = [
pkgs.docker-compose
];
}

View file

@ -1,16 +1,18 @@
{ pkgs, lib, ... }: { { pkgs, ... }: {
services.greetd = { services.greetd = {
enable = true; enable = true;
settings = { settings = {
default_session = { default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --remember --asterisks --time --cmd 'zsh -c \"source $HOME/.config/zsh/.zshrc && Hyprland > $XDG_RUNTIME_DIR/Hyprland.out\"'"; command = "${pkgs.tuigreet}/bin/tuigreet --remember --asterisks --time --cmd 'zsh -c \"source $HOME/.config/zsh/.zshrc && Hyprland > $XDG_RUNTIME_DIR/Hyprland.out\"'";
user = "greeter"; user = "greeter";
}; };
};
};
services.xserver = { initial_session = {
autorun = false; command = "${pkgs.writeShellScript "launch.sh" ''
displayManager.startx.enable = true; zsh -c "source $HOME/.config/zsh/.zshrc && Hyprland > \"$XDG_RUNTIME_DIR/Hyprland.out\""
''}";
user = "rin";
};
};
}; };
} }

View file

@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }: { { config, lib, pkgs, ... }: {
fonts = { fonts = {
enableDefaultFonts = true; enableDefaultPackages = true;
fontconfig = { fontconfig = {
defaultFonts = { defaultFonts = {
serif = [ "NotoSerif" ]; serif = [ "NotoSerif" ];
@ -8,15 +8,13 @@
monospace = [ "CascadiaCode" ]; monospace = [ "CascadiaCode" ];
}; };
}; };
fonts = with pkgs; [ packages = with pkgs; [
cascadia-code material-symbols
font-awesome
font-awesome_4
hanazono
material-icons material-icons
cascadia-code
hanazono
noto-fonts noto-fonts
noto-fonts-cjk noto-fonts-cjk-sans
noto-fonts-extra
open-sans open-sans
twemoji-color-font twemoji-color-font
unifont unifont
@ -27,4 +25,7 @@
displayManager.lightdm.enable = lib.mkForce false; displayManager.lightdm.enable = lib.mkForce false;
desktopManager.xterm.enable = false; desktopManager.xterm.enable = false;
}; };
programs.hyprland.enable = true;
security.pam.services.hyprlock = {};
} }

View file

@ -1,10 +1,19 @@
{ config, enableGUI, inputs, modules, ... }: { { config, inputs, modules, ... }: {
imports = [
inputs.home-manager.nixosModules.home-manager
];
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
extraSpecialArgs = { extraSpecialArgs = {
inherit enableGUI inputs modules; inherit inputs modules;
sysConfig = config; sysConfig = config;
}; };
sharedModules = [
{
imports = [ modules.options ];
config.me = config.me;
}
];
}; };
} }

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: { { ... }: {
services.xserver = { services.xserver = {
displayManager = { displayManager = {
xserverArgs = [ xserverArgs = [
@ -6,14 +6,19 @@
"-arinterval 15" "-arinterval 15"
]; ];
}; };
libinput = { };
services.keyd = {
enable = true; enable = true;
mouse = { keyboards = {
accelSpeed = "0"; default = {
accelProfile = "flat"; ids = [ "*" ];
settings = {
main = {
capslock = "esc";
esc = "capslock";
};
};
}; };
}; };
xkbOptions = "caps:escape";
}; };
console.useXkbConfig = true;
} }

View file

@ -11,5 +11,8 @@
}; };
}; };
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;
zramSwap.enable = true; zramSwap = {
enable = true;
priority = 100;
};
} }

View file

@ -1,5 +1,7 @@
{ config, lib, pkgs, ... }: { { config, lib, pkgs, ... }: {
nix = { nix = {
package = pkgs.nixVersions.latest;
settings = rec { settings = rec {
substituters = [ substituters = [
"https://cache.nixos.org?priority=10" "https://cache.nixos.org?priority=10"
@ -17,4 +19,5 @@
''; '';
}; };
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
programs.nh.enable = true;
} }

View file

@ -1,6 +1,7 @@
{ config, lib, pkgs, ... }: { { config, inputs, pkgs, ... }: {
nix = { nix = {
package = pkgs.nixUnstable; nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
package = pkgs.nixVersions.latest;
settings = rec { settings = rec {
extra-sandbox-paths = [ config.programs.ccache.cacheDir ]; extra-sandbox-paths = [ config.programs.ccache.cacheDir ];
@ -23,4 +24,5 @@
''; '';
}; };
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
programs.nh.enable = true;
} }

View file

@ -0,0 +1,26 @@
{ config, lib, pkgs, ... }: {
config = lib.mkIf config.me.gui {
environment.systemPackages = with pkgs; [
android-tools
gparted
nautilus
];
hardware.graphics.extraPackages = with pkgs; [
intel-vaapi-driver
libva-vdpau-driver
libvdpau-va-gl
];
hardware.opentabletdriver.enable = true;
hardware.keyboard.qmk.enable = true;
programs.steam = {
enable = true;
package = pkgs.steam.override {
extraPkgs = pkgs: with pkgs; [
gsettings-desktop-schemas
];
};
};
services.dbus.packages = [ pkgs.dconf pkgs.gcr ];
services.gnome.sushi.enable = true;
};
}

View file

@ -1,9 +1,14 @@
{ config, enableGUI, lib, pkgs, ... }: { { pkgs, ... }: {
imports = [ ./packages-gui.nix ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# ecryptfs
efibootmgr efibootmgr
fd
git git
git-crypt
htop htop
jq jq
kitty.terminfo
libarchive libarchive
lf lf
msr-tools msr-tools
@ -11,35 +16,10 @@
neovim neovim
nfs-utils nfs-utils
ntfs3g ntfs3g
sshfs ripgrep
rsync rsync
sshfs
wget wget
] ++ lib.optionals enableGUI [
gparted
gnome.nautilus
]; ];
environment.variables.EDITOR = "nvim"; environment.variables.EDITOR = "nvim";
} }
// (if !enableGUI then {} else {
programs.adb.enable = true;
hardware.opengl.extraPackages = with pkgs; [
vaapiIntel
vaapiVdpau
libvdpau-va-gl
rocm-opencl-icd
rocm-opencl-runtime
];
programs.light.enable = true;
hardware.opentabletdriver.enable = true;
hardware.keyboard.qmk.enable = true;
programs.steam = {
enable = true;
package = pkgs.steam.override {
extraPkgs = pkgs: with pkgs; [
gsettings-desktop-schemas
];
};
};
services.dbus.packages = [ pkgs.dconf pkgs.gcr ];
services.gnome.sushi.enable = true;
})

View file

@ -3,7 +3,7 @@
enable = true; enable = true;
drivers = with pkgs; [ drivers = with pkgs; [
epson-escpr epson-escpr
me.epson-201112j #me.epson-201112j
]; ];
}; };
} }

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }: { { config, lib, pkgs, ... }: {
networking.firewall = networking.firewall =
let let
iptables = "${pkgs.iptables}/bin/iptables"; iptables = "${pkgs.iptables}/bin/iptables";
@ -53,5 +53,33 @@
} }
]; ];
}; };
pam = lib.mkIf (config.me.environment != "headless") {
u2f = {
enable = true;
settings = {
cue = true;
pinverification = 1;
};
};
services.doas.rules.auth = {
u2f.settings.pinverification = lib.mkForce 0;
u2f_int = lib.mkMerge [
{
enable = true;
order = config.security.pam.services.doas.rules.auth.u2f.order + 1;
control = "sufficient";
modulePath = "${pkgs.pam_u2f}/lib/security/pam_u2f.so";
inherit (config.security.pam.u2f) settings;
}
{
settings = lib.mkForce {
interactive = true;
pinverification = 0;
userpresence = 0;
};
}
];
};
};
}; };
} }

View file

@ -0,0 +1,13 @@
{ config, lib, ... }: {
age.secrets.tailscale_auth.file = ../../secrets/tailscale_auth.age;
me.binds."/var/lib/tailscale" = "tailscale";
networking.firewall.trustedInterfaces = [ "tailscale0" ];
networking.firewall.allowedUDPPorts = lib.mkIf (config.me.environment == "headless") [ 123 ];
services.tailscale = {
enable = true;
authKeyFile = config.age.secrets.tailscale_auth.path;
openFirewall = true;
useRoutingFeatures = if config.me.environment == "headless" then "both" else "client";
};
}

View file

@ -1,13 +1,11 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, gcSecrets, ... }:
let let
port = 51820; port = 51801;
serverName = "sugarcane"; serverName = "dandelion";
serverInterface = "ens3"; serverInterface = "enp0s6";
serverIp = "51.79.240.130"; serverIp = gcSecrets.wireguard.gateway;
forwarding = { forwarding = {
"80" = [ "10.100.0.2" "80" ];
"443" = [ "10.100.0.2" "443" ];
"22727" = [ "10.100.0.3" "7777" ]; "22727" = [ "10.100.0.3" "7777" ];
}; };
@ -20,52 +18,61 @@ let
in '' in ''
${pkgs.iptables}/bin/iptables -${type} PREROUTING -t nat -i ${serverInterface} -p tcp --dport ${sport} -j DNAT --to ${dest}:${dport} ${pkgs.iptables}/bin/iptables -${type} PREROUTING -t nat -i ${serverInterface} -p tcp --dport ${sport} -j DNAT --to ${dest}:${dport}
${pkgs.iptables}/bin/iptables -${type} FORWARD -p tcp -d ${dest} --dport ${dport} -j ACCEPT ${pkgs.iptables}/bin/iptables -${type} FORWARD -p tcp -d ${dest} --dport ${dport} -j ACCEPT
${pkgs.iptables}/bin/iptables -${type} PREROUTING -t nat -i ${serverInterface} -p udp --dport ${sport} -j DNAT --to ${dest}:${dport}
${pkgs.iptables}/bin/iptables -${type} FORWARD -p udp -d ${dest} --dport ${dport} -j ACCEPT
'') forwarding '') forwarding
); );
routeBypass = {
caramel = {
gateway = "192.168.100.1";
interface = "wlan0";
routes = [
serverIp
];
};
hyacinth = {
gateway = "192.168.100.1";
interface = "enp5s0";
routes = [
serverIp
];
};
};
clients = { clients = {
caramel = {
publicKey = "VDqcpS0lJzFgwikj61MJ1xc9P8Cuq0NXa+Hc+etn2iA=";
allowedIPs = [ "10.100.0.2/32" ];
};
hyacinth = { hyacinth = {
publicKey = "6nVhazYdmC15A/nke9VrqIg3sOBVOmqj4GEsyBq7MVo="; publicKey = "6nVhazYdmC15A/nke9VrqIg3sOBVOmqj4GEsyBq7MVo=";
allowedIPs = [ "10.100.0.3/32" ]; allowedIPs = [ "10.100.0.3/32" "${gcSecrets.wireguard.ipv6Subnet}:3" "fd0d::3" ];
interfaces = {
wg0 = { peers = [ server6OnlyPeer ]; };
wg1 = { peers = [ serverPeer ]; autostart = false; };
wg2 = { peers = [ serverLocalOnlyPeer ]; autostart = false; };
};
};
anemone = {
publicKey = "px5+JNdAmqBvUC++DhiJrUBRAr+BYP6iYVt4sbhPTWY=";
allowedIPs = [ "10.100.0.4/32" "${gcSecrets.wireguard.ipv6Subnet}:4" "fd0d::4" ];
interfaces = {
wg0 = { peers = [ server6OnlyPeer ]; };
wg1 = { peers = [ serverPeer ]; autostart = false; };
wg2 = { peers = [ serverLocalOnlyPeer ]; autostart = false; };
};
};
hibiscus = {
publicKey = "vQ5a2KMrwi7RCRsD0yvog+n35vQYFuvwiPn+W4lbRBw=";
allowedIPs = [ "10.100.0.5/32" "${gcSecrets.wireguard.ipv6Subnet}:5" "fd0d::5" ];
interfaces = {
wg0 = { peers = [ server6OnlyPeer ]; };
wg1 = { peers = [ serverPeer ]; autostart = false; };
wg2 = { peers = [ serverLocalOnlyPeer ]; autostart = false; };
};
};
hazel = {
publicKey = "0zruTndObzHo+b1rbOuTsxCU97epygZycxXS/lgUHUc=";
allowedIPs = [ "10.100.0.21/32" "${gcSecrets.wireguard.ipv6Subnet}:21" "fd0d::21" ];
interfaces = {
wg0 = {
dns = [ "::1" "127.0.0.1" ];
peers = [ serverLocalOnlyPeer ];
}; };
strawberry = {
publicKey = "Fkcp/VSN4Dkhly8V4hskF4lnDviA7VZHCnWf7OliFCg=";
allowedIPs = [ "10.100.0.4/32" ];
}; };
maple = {
publicKey = "kPw8hpANygfz83Oi/l+iCVYalV2zfs7fhkccjoGG2Do=";
allowedIPs = [ "10.100.0.5/32" ];
}; };
}; };
clientPeers = builtins.attrValues clients; clientPeers = builtins.map (client: builtins.removeAttrs client [ "interfaces" ]) (builtins.attrValues clients);
serverPeer = { serverPeerWith = ips: {
publicKey = "3ugIk2tQZXjAH9/95s63ld2WNUHQrd4Mz5jzbln6oj0="; publicKey = "3ugIk2tQZXjAH9/95s63ld2WNUHQrd4Mz5jzbln6oj0=";
allowedIPs = [ "0.0.0.0/0" ]; allowedIPs = ips;
endpoint = "${serverIp}:${toString port}"; endpoint = "${serverIp}:${toString port}";
persistentKeepalive = 25; persistentKeepalive = 25;
}; };
serverPeer = serverPeerWith [ "0.0.0.0/0" "::/0" ];
server6OnlyPeer = serverPeerWith [ "10.100.0.0/24" "::/0" ];
serverLocalOnlyPeer = serverPeerWith [ "10.100.0.0/24" "fd0d::/16" ];
serverConfig = { serverConfig = {
nat = { nat = {
@ -79,7 +86,7 @@ let
}; };
wireguard.interfaces.wg0 = { wireguard.interfaces.wg0 = {
ips = [ "10.100.0.1/24" ]; ips = [ "10.100.0.1/24" "${gcSecrets.wireguard.ipv6Subnet}:1" "fd0d::1" ];
listenPort = port; listenPort = port;
postSetup = '' postSetup = ''
@ -97,33 +104,24 @@ let
}; };
clientConfig = { clientConfig = {
wireguard.interfaces.wg0 = wg-quick.interfaces =
let let
client = clients."${config.networking.hostName}"; client = clients."${config.networking.hostName}";
routes = routeBypass."${config.networking.hostName}"; in
mapRoutes = type: lib.concatMapStringsSep "\n" (r: "${pkgs.iproute2}/bin/ip route ${type} ${r} via ${routes.gateway} dev ${routes.interface}") routes.routes; builtins.mapAttrs (interface: conf: {
in { address = client.allowedIPs;
ips = client.allowedIPs; dns = [ "fd0d::1" "10.100.0.1" ];
listenPort = port;
postSetup = ''
${mapRoutes "add"}
${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o ${serverInterface} -j MASQUERADE
'';
postShutdown = ''
${mapRoutes "del"}
${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o ${serverInterface} -j MASQUERADE
'';
privateKeyFile = config.age.secrets."wg_${config.networking.hostName}".path; privateKeyFile = config.age.secrets."wg_${config.networking.hostName}".path;
peers = [ serverPeer ]; } // conf) client.interfaces;
};
}; };
in { in {
boot.kernel.sysctl = lib.mkIf (config.networking.hostName == serverName) ({
"net.ipv6.conf.all.forwarding" = true;
"net.ipv6.conf.default.forwarding" = true;
});
networking = networking =
lib.mkMerge [ lib.mkMerge [
(lib.mkIf (config.networking.hostName == serverName) serverConfig) (lib.mkIf (config.networking.hostName == serverName) serverConfig)
(lib.mkIf (builtins.hasAttr config.networking.hostName clients) clientConfig) (lib.mkIf (config.networking.hostName != serverName) clientConfig)
]; ];
} }

View file

@ -1,19 +0,0 @@
# Depends on eww
{ config, pkgs, ... }: {
xsession.windowManager.bspwm = {
enable = true;
monitors = { "DP-1" = [ "1" "2" "3" "4" "5" "6" "7" "8" "9" "0"]; };
settings = {
window_gap = 10;
border_width = 0;
split_ratio = 0.5;
top_padding = 0;
};
extraConfig = ''
${pkgs.feh}/bin/feh --no-fehbg --bg-fill ~/Pictures/Wallpapers/current
${pkgs.procps}/bin/pkill -SIGINT eww
${pkgs.eww}/bin/eww open linebar
'';
};
}

View file

@ -0,0 +1,75 @@
{ config, inputs, lib, pkgs, ... }: {
imports = [
inputs.catppuccin.homeManagerModules.catppuccin
];
options.catppuccin.colors = lib.mkOption {
type = lib.types.attrs;
default = (builtins.fromJSON (builtins.readFile "${inputs.catppuccin-palette}/palette.json"))."${config.catppuccin.flavor}".colors;
};
options.catppuccin.hexcolors = lib.mkOption {
type = lib.types.attrs;
default = builtins.mapAttrs (name: value: value.hex) config.catppuccin.colors;
};
config = {
catppuccin = {
accent = lib.mkDefault "pink";
flavor = lib.mkDefault "mocha";
kitty.enable = true;
gtk.enable = true;
hyprlock.enable = true;
nvim.enable = true;
};
specialisation = {
light.configuration.catppuccin.flavor = "latte";
dark.configuration.catppuccin.flavor = "mocha";
};
home.packages = [(pkgs.writeShellScriptBin "theme" ''
last_path="$HOME/.local/state/last-theme"
target="$1"
if [ "$target" == "get_last" ]; then
if [ ! -e "$last_path" ]; then
echo "no last theme found; assuming dark" >&2
target="dark"
else
target=$(cat "$last_path" | tr -d "\n")
fi
echo "$target"
exit 0
fi
if [ "$target" == "restore" ]; then
echo "restoring theme"
if [ ! -e "$last_path" ]; then
echo "no last theme found; assuming dark" >&2
target="dark"
else
target=$(cat "$last_path" | tr -d "\n")
fi
fi
if [ "$target" != "dark" ] && [ "$target" != "light" ]; then
echo "invalid theme, valid values: [dark, light, restore]"
exit 1
fi
current="$HOME/.local/state/home-manager/gcroots/current-home/"
cached="$HOME/.local/state/last-parent-specialisation"
if [ -d "$current/specialisation" ]; then
if [ -d "$cached" ]; then
rm -f "$cached"
fi
ln -sf "$(readlink -f $current)" "$cached"
fi
if [ ! -d "$cached/specialisation" ]; then
echo "no specialisations found"
exit 1
fi
"$cached/specialisation/$target/activate"
echo "$target" > "$last_path"
'')];
};
}

7
modules/user/comma.nix Normal file
View file

@ -0,0 +1,7 @@
{ inputs, ... }: {
imports = [
inputs.nix-index-database.homeModules.default
];
programs.nix-index.enable = true;
programs.nix-index-database.comma.enable = true;
}

View file

@ -5,7 +5,7 @@
enable = true; enable = true;
}; };
}; };
programs.git.extraConfig.core.excludesFile = ".envrc"; programs.git.settings.core.excludesFile = ".envrc";
# We can't use .source since hm manages this file too # We can't use .source since hm manages this file too
xdg.configFile."direnv/direnvrc".text = builtins.readFile ../../res/direnvrc; xdg.configFile."direnv/direnvrc".text = builtins.readFile ../../res/direnvrc;
home.activation = { home.activation = {

View file

@ -12,9 +12,9 @@ in {
global = { global = {
monitor = 0; monitor = 0;
follow = "mouse"; follow = "mouse";
width = 460; width = "(100, 450)";
origin = "top-right"; origin = "top-right";
offset = "24x35"; offset = "24x50";
notification_limit = 0; notification_limit = 0;
indicate_hidden = true; indicate_hidden = true;
shrink = true; shrink = true;
@ -36,7 +36,7 @@ in {
hide_duplicate_count = true; hide_duplicate_count = true;
show_indicators = false; show_indicators = false;
icon_position = "left"; icon_position = "left";
max_icon_size = 32; max_icon_size = 40;
sticky_history = true; sticky_history = true;
history_length = 100; history_length = 100;
browser = "${pkgs.firefox}/bin/firefox -new-tab"; browser = "${pkgs.firefox}/bin/firefox -new-tab";
@ -49,21 +49,21 @@ in {
}; };
urgency_low = { urgency_low = {
background = "#12131b"; background = config.catppuccin.hexcolors.crust;
foreground = "#d8dee8"; foreground = config.catppuccin.hexcolors.text;
timeout = 3; timeout = 3;
}; };
urgency_normal = { urgency_normal = {
background = "#12131b"; background = config.catppuccin.hexcolors.crust;
foreground = "#d8dee8"; foreground = config.catppuccin.hexcolors.text;
timeout = 5; timeout = 5;
}; };
urgency_critical = { urgency_critical = {
background = "#12131b"; background = config.catppuccin.hexcolors.crust;
foreground = "#d8dee8"; foreground = config.catppuccin.hexcolors.text;
# frame_color = "#bf616a"; frame_color = config.catppuccin.hexcolors.red;
timeout = 0; timeout = 0;
}; };
}; };

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