Compare commits

..

485 commits
test ... master

Author SHA1 Message Date
197af4cb55
Bump inputs
Some checks failed
EVAL x86_64-linux.picard
BUILD aarch64-linux.sisko
/ test (push) Successful in 24m18s
2025-05-03 19:42:28 +02:00
7a50d8e8d1
Enable Video Download helper companion app
All checks were successful
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 34s
2025-05-03 11:43:49 +02:00
8d1023a4a2
Always use spaces instead of tabs
All checks were successful
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 5m31s
2025-05-03 11:20:58 +02:00
65299f9f1f
Migrate Immich from Docker to the NixOS module
All checks were successful
/ test (push) Successful in -19s
2025-04-30 23:00:40 +02:00
11618adc76
Enable garmin-grafana on sisko
Some checks failed
/ test (push) Failing after 14m31s
2025-04-30 21:20:56 +02:00
4290a4d45a
Add garmin-grafana module 2025-04-30 21:20:31 +02:00
2e20dabf06
Add (disabled) restic Prometheus exporter
All checks were successful
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 48s
2025-04-29 20:56:07 +02:00
baac8eed23
Scaps Prometheus exporters from pike 2025-04-29 20:55:25 +02:00
b2bb18f583
Disable pushgateway 2025-04-29 20:54:53 +02:00
3b9e5cf5c6
Enable prometheus exporters on pike 2025-04-29 20:54:36 +02:00
4f293981f8
Update planimetry 2025-04-29 20:53:11 +02:00
60dce8e681
Use alloy on all the most used devices
All checks were successful
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 54s
2025-04-29 12:21:31 +02:00
70b61a74ae
New alloy module 2025-04-29 12:21:20 +02:00
84e19cb236
Fix DNS 2025-04-29 12:21:12 +02:00
599690ede5
Fix DHCP server
All checks were successful
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 2m19s
2025-04-29 11:06:59 +02:00
ddd85e4830
Disable promtail on sisko 2025-04-29 11:06:45 +02:00
350c745cf1
Enable adguard-home on sisko
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 14m20s
2025-04-28 22:22:17 +02:00
af7de46bf5
Fix adguard-home and use both for DNS and DHCP 2025-04-28 22:22:02 +02:00
2390d2fe82
Merge branch 'master' of git.aciceri.dev:aciceri/nixfleet
Some checks failed
/ test (push) Failing after 26m23s
2025-04-28 21:09:59 +02:00
7792eead8d
Update ccr-ssh key 2025-04-28 21:06:40 +02:00
8609d63413
Enable power-profiles-daemon for pike
Some checks failed
/ test (push) Has been cancelled
2025-04-28 20:52:22 +02:00
c745986ef4
amarr module WIP
Some checks failed
/ test (push) Failing after 14m23s
2025-04-28 20:20:57 +02:00
29734b6bd7
Add amule and enable on sisko 2025-04-28 20:20:46 +02:00
b82994c914
Deprecated option
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 35m49s
2025-04-28 14:58:19 +02:00
ae8bad7a03
Bump inputs 2025-04-28 14:58:11 +02:00
40fd5e3035
Disasble gptel tools
Some checks failed
/ test (push) Failing after 31m28s
2025-04-28 13:10:01 +02:00
663b2c4eb4
Use gemini-2.5-flash-preview 2025-04-28 13:09:50 +02:00
dabe148755
Add vertico-quick keybinds 2025-04-28 13:09:34 +02:00
9b47d50dc6
Add moonlight to kirk 2025-04-28 13:09:22 +02:00
cbd5408e45
Add gimp to pike and picard 2025-04-28 13:09:12 +02:00
1216292c4c
Add gimp module 2025-04-28 13:08:59 +02:00
8cf062885e
Fix ccr/eshell-history function
Some checks failed
/ test (push) Failing after 57m57s
2025-04-24 14:54:55 +02:00
10946e39ae
History completion in eshell
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 7m53s
2025-04-24 14:06:15 +02:00
11efc745e3
Unused 2025-04-24 14:06:07 +02:00
f889c8fdda
Unused (was causing eval error with the new home-manager revision) 2025-04-24 14:05:43 +02:00
79fd28061b
Use sdrangel from an old commit (it's broken) 2025-04-24 14:05:29 +02:00
403029e478
Unused comments 2025-04-24 14:05:20 +02:00
44c45c48a1
Bump inputs 2025-04-24 14:05:13 +02:00
a32c23d474
Useless comment and args
Some checks failed
/ test (push) Failing after 37m55s
2025-04-24 11:55:01 +02:00
652fbe4026
Add moonlight to picard 2025-04-24 11:54:51 +02:00
f7b386e25a
Rename catppuccin flake attribute
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 1h5m27s
2025-04-16 13:54:45 +02:00
3a88101b04
Remove hass-poweroff and forgejo-runners from pike
Some checks failed
/ test (push) Has been cancelled
2025-04-16 13:52:38 +02:00
7d8736ecad
Disable promtail 2025-04-16 13:51:47 +02:00
f5ab3abe76
Floating rule 2025-04-16 13:51:20 +02:00
5823811700
Fix
Some checks failed
/ test (push) Failing after 14m55s
2025-04-16 13:19:43 +02:00
a53626d5c3
Unused module 2025-04-16 13:19:37 +02:00
5a107254d2
Use upstream cura-appimage
All checks were successful
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 3m47s
2025-04-16 12:39:16 +02:00
73814bfa47
New pike host
Some checks failed
BUILD aarch64-linux.pre-commit
UPLOAD aarch64-linux.pre-commit
DOWNLOAD aarch64-linux.pre-commit
CACHIX aarch64-linux.pre-commit
ATTIC aarch64-linux.pre-commit
EVAL aarch64-linux.sisko
/ test (push) Successful in 2h1m31s
2025-04-11 11:08:47 +02:00
ca6f5e6919
New wireguard private key for pike 2025-04-11 11:07:54 +02:00
205311a514
Allow home-manager modules to use impermanence 2025-04-11 11:07:37 +02:00
25425b6b7c
Use copilot-language-server 2025-04-11 11:07:19 +02:00
035540b33e
Avoid error in recursive let 2025-04-11 11:06:47 +02:00
e3849773fd
Fix samba 2025-04-11 11:06:33 +02:00
d9fad9be8d
Rekey secrets 2025-04-11 11:06:13 +02:00
1f41b9642a
New pike's key 2025-04-11 11:05:58 +02:00
27fcf24a80
Bump inputs 2025-04-11 11:05:48 +02:00
72782ebb87
Use gptel tools
All checks were successful
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 15m7s
2025-04-06 17:23:36 +02:00
b58c3c4d31
Use gemini 2025-04-06 17:23:00 +02:00
dc30a6a437
gptel shortcuts 2025-04-06 17:22:11 +02:00
8f73eca404
Disable eshell-atuin 2025-04-06 17:21:58 +02:00
f546beea17
Use meow-tree-sitter 2025-04-06 17:21:45 +02:00
d0e16f75f7
Sign git commits with id_ed25519 instead of id_rsa 2025-04-06 17:21:17 +02:00
df2ab41246
Disable atuin
All checks were successful
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 7m14s
2025-03-28 15:52:41 +01:00
4ba43fb647
Configure gptel
Some checks failed
/ test (push) Has been cancelled
2025-03-28 15:48:08 +01:00
fc79fba781
Remove emacs' fish-completion 2025-03-28 15:47:58 +01:00
4f02f4bd7f
Disable zulip on kirk 2025-03-28 15:47:45 +01:00
a74f230db3
Use nixpkgs' mediatomb and change served directories 2025-03-28 15:46:51 +01:00
dedea5399a
Use enter_accept in atuin 2025-03-28 15:46:32 +01:00
72ea5f7086
Lock nixpkgs revision 2025-03-28 15:45:47 +01:00
e2ac562d31
Default kernel is finally recent enough for Rock5B
Some checks failed
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
/ test (push) Successful in 23m58s
2025-03-27 16:06:21 +01:00
5d4b19d217
Ignore result links produced by nix-fast-build 2025-03-27 16:05:57 +01:00
abf32ff426
Bump inputs
Some checks failed
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
EVAL x86_64-linux.picard
/ test (push) Successful in 28s
2025-03-27 15:53:17 +01:00
c1e155988d
Disable Hyprland 2025-03-27 15:53:08 +01:00
e69a26f77f
Completely disable fish 2025-03-27 15:53:02 +01:00
af4e08b5af
Use sonarr from nixpkgs
Some checks failed
/ test (push) Has been cancelled
2025-03-27 15:35:15 +01:00
c65c53cf73
Fix screen sharing 2025-03-27 15:34:51 +01:00
a5fb079c06
fish -> bash 2025-03-27 15:34:37 +01:00
0016d20633
Enable shadows 2025-03-27 15:34:07 +01:00
982b0ccc48
Fix search engine name 2025-03-27 15:33:50 +01:00
a731e61c09
New corfu-send keybinding 2025-03-27 15:33:31 +01:00
3b4c75121a
Remove eshell banner message 2025-03-27 15:33:18 +01:00
e556401bac
Disable zulip 2025-03-27 15:33:02 +01:00
84ba8bf7cc
Emacs' rust-mode 2025-03-27 15:32:49 +01:00
05078468af
Bump nixpkgs 2025-03-27 15:32:08 +01:00
7163022eda
Create dupms on the hd
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 2m8s
2025-03-20 11:52:16 +01:00
a6ec1cf879
ncdu is very handy 2025-03-20 11:52:08 +01:00
79ab4ca237
Back to Google 😖 2025-03-20 11:51:41 +01:00
e03c4d07ec
Bump emacs-overlay
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 16m46s
2025-03-17 17:17:51 +01:00
30cc84fbda
Complete arr suite 2025-03-17 17:17:51 +01:00
43f0f9b028
Fix floating btop window size on kirk
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Failing after 13m8s
2025-03-15 10:00:19 +01:00
8ffe055df8
Use new domain
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 1m5s
2025-03-14 18:48:35 +01:00
6067499083
Make zerotier work on all hosts 2025-03-14 18:48:26 +01:00
2809c01b20
Unused option
Some checks failed
/ test (push) Has been cancelled
2025-03-14 18:35:10 +01:00
bce8fbbb78
Correctly use mkMerge
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 11m35s
2025-03-14 18:09:29 +01:00
c327895c6b
Re-add vpn.aciceri.dev 2025-03-14 18:09:13 +01:00
37ae2afef6
Enable mosh on sisko 2025-03-14 18:09:05 +01:00
9d4b2b4b7f
Remove useless generated /etc/hosts
Some checks failed
EVAL x86_64-linux.pre-commit
BUILD x86_64-linux.pre-commit
UPLOAD x86_64-linux.pre-commit
DOWNLOAD x86_64-linux.pre-commit
CACHIX x86_64-linux.pre-commit
ATTIC x86_64-linux.pre-commit
/ test (push) Successful in 2m47s
2025-03-14 17:18:47 +01:00
83e191134a
Persist zerotierone state 2025-03-14 17:18:34 +01:00
cba0555c38
{host}.fleet -> {host}.wg.aciceri.dev
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 1m17s
2025-03-14 16:07:32 +01:00
9677a6ca77
Use aciceri.dev domains for VPNs too
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 2m9s
2025-03-14 15:56:29 +01:00
a8b1fed384
Unused secret 2025-03-14 15:56:05 +01:00
fb87eabdce
New cloudflare token 2025-03-14 15:55:58 +01:00
7717317840
Enable zerotier 2025-03-14 15:54:48 +01:00
5fb4292e1c
Enable radarr on sisko
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 1m41s
2025-03-14 10:00:25 +01:00
9d8b575f3a
Disable transmission queue 2025-03-14 10:00:17 +01:00
54e15511e8
Package mali-panthor-g610-firmware
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 44s
2025-03-10 19:02:19 +01:00
db2143289c
Package ffmpeg-rockchip 2025-03-10 19:02:08 +01:00
82ac0622aa
Various
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 5m7s
2025-03-06 13:08:29 +01:00
f819c3bad6
gnome-keyring portal 2025-03-06 13:08:04 +01:00
1ba8ff0100
Lock nixpkgs commit 2025-03-06 13:07:59 +01:00
dd900e9377
Play with org agenda 2025-03-06 13:07:44 +01:00
c7dce3ab4c
Prepare for next niri release 2025-03-06 13:07:22 +01:00
25ce495599
Use pantalaimon 2025-03-06 13:07:17 +01:00
d5a1912ced
Re-enable personal Matrix home server 2025-03-06 13:06:44 +01:00
3c12cbec24
Comment out unsuded WMs 2025-03-06 13:06:09 +01:00
ff47e7ba4b
Refactor 2025-03-06 13:05:59 +01:00
75ab653451
Change syncthing id for sisko 2025-03-06 13:05:46 +01:00
9d6d17f2cf
Add org-super-agenda 2025-03-06 13:05:38 +01:00
f9e5be5864
Fix magit-delta build 2025-03-06 13:05:27 +01:00
a3c722e9f8
Fix ddcci
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 2m19s
2025-02-27 15:24:14 +01:00
9601ff024b
Format
Some checks failed
/ test (push) Failing after 27m3s
2025-02-27 09:52:42 +01:00
74ff7d0cff
Option renamed 2025-02-27 09:52:15 +01:00
aa63b0d3e0
Unused module 2025-02-27 09:52:10 +01:00
e86705a8b7
Flake output renamed 2025-02-27 09:52:02 +01:00
0bef8299c2
Unused arg 2025-02-27 09:51:56 +01:00
fb21aab2e3
ddcci-driver patch no more needed 2025-02-27 09:51:35 +01:00
52d0f2ad8d
Disable macos-ventura module 2025-02-27 09:51:14 +01:00
6d8bbd3b94
Custom overlay for Lix's nix-eval-jobs no more needed 2025-02-27 09:50:56 +01:00
3171475f90
Reanme services.pulseaudio 2025-02-27 09:50:46 +01:00
866af533ef
Rename kdePackages.xdg-desktop-portal-kde 2025-02-27 09:50:33 +01:00
52109a6671
Use useFetchCargoVendor 2025-02-27 09:50:23 +01:00
e583ab81e4
Update inputs and remove lix-eval-jobs, nixThePlanet and nix-darwin 2025-02-27 09:50:07 +01:00
820fda70aa
Disable custom dump1090 nixos Module
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 46s
A PR on nixpkgs is now open
2025-02-27 08:48:48 +01:00
fccbf30dd3
Customize Gptel and bTop floating windows sizes for each host 2025-02-27 08:48:42 +01:00
e1ebdc68e9
Improve Discord 2025-02-27 14:06:04 +07:00
e35ba5af34
Make ssh better/faster? 2025-02-27 14:05:52 +07:00
6a7a16807d
Disable spotify on sisko 2025-02-27 14:05:40 +07:00
f358b8e5e9
Change sisko NFS mountpoint 2025-02-27 14:05:23 +07:00
88ada5d28d
Enable emacs-lsp-booster 2025-02-27 14:05:13 +07:00
d8f1e5318a
WIP dump1090-fa service
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 45s
2025-02-09 12:03:04 +01:00
895c257573
Merge branch 'master' of git.aciceri.dev:aciceri/nixfleet
Some checks failed
/ test (push) Failing after 13m2s
2025-02-08 07:18:56 +01:00
0999370e2d
Use OpenRouter 2025-02-08 07:18:03 +01:00
9fa9338f7a
Add zoom on picard 2025-02-08 07:17:42 +01:00
66308177ed
Merge branch 'master' of git.aciceri.dev:aciceri/nixfleet
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 54s
2025-02-02 12:32:32 +01:00
e2bfa81b10
Force session variables
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 14m25s
2025-01-31 14:39:59 +01:00
3130e4ee19
Hide commands help at startup 2025-01-31 14:39:50 +01:00
e92a899c87
Add ib-tws on picard 2025-01-31 14:39:44 +01:00
0d1a446ab4
Add ccr to plugdev group on kirk
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 44s
2025-01-21 20:33:51 +01:00
dba7a5ac50
Enable zmkbatx on kirk
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 43s
2025-01-21 20:04:31 +01:00
f742129d4d
Scale up niri on kirk 2025-01-21 20:04:22 +01:00
6128c1a1e3
gptel floating windows in niri
Some checks failed
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 47s
2025-01-21 20:01:27 +01:00
ee15e3823e
Enable rtl-sdr on picard 2025-01-21 20:01:14 +01:00
f6fd747fb3
Add visual-replace 2025-01-21 20:01:10 +01:00
62bd8fb899
tree-sitter-grammars-kdl has been merged 2025-01-17 09:48:48 +01:00
bcdcabc5c4
Re-enable magit-todos 2025-01-17 09:48:36 +01:00
988000655b
Use Catppuccin GTK theme and use a more idiomatic poiner configuration
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 1m33s
2025-01-15 16:16:45 +01:00
5a7309b5d3
Keybinding for spawning a floating btop 2025-01-15 14:20:02 +01:00
95ee537f03
Refactor keybinding 2025-01-15 14:19:33 +01:00
4df523437a
Remove nix-fast-build input
All checks were successful
EVAL x86_64-linux.picard
/ test (push) Successful in 51s
A version including attic support was released in nixpkgs
2025-01-14 17:53:53 +01:00
3788823072
Simplify pinentry-rofi usage
Some checks failed
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
EVAL x86_64-linux.picard
/ test (push) Successful in 48s
2025-01-14 17:39:03 +01:00
bfa2f177d3
Niri floating rule for the experimental Emacs selector 2025-01-14 17:38:55 +01:00
e21a61c360
Bump all inputs 2025-01-14 17:38:27 +01:00
a98b467d26
Fix swayidle
My workaround is not needed anymore and it was preventing it to work
2025-01-13 16:43:47 +01:00
6849194702
Update deltaflyer config
Still not working
2025-01-13 16:43:32 +01:00
e0d5144389
Re-style waybar
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 30m25s
2025-01-10 20:51:00 +01:00
37de97df46
Use rofi-power-menu 2025-01-10 20:50:46 +01:00
66fd1c3066
Format 2025-01-10 20:43:25 +01:00
12f1800aed
Emacs experiments 2025-01-10 20:42:58 +01:00
0c4a52f6ec
Emacs default frame title 2025-01-10 20:42:46 +01:00
1411269c58
Move out the waybar config 2025-01-10 10:41:05 +01:00
8c18115208
Add math-preview executable used by the math-preview Emacs package 2025-01-10 10:40:37 +01:00
ba9775666b
Re-enable Sway Notification Center 2025-01-10 10:39:29 +01:00
12698af186
Add math-preview Emacs package 2025-01-10 10:39:18 +01:00
8fb56c0005
Explicit niri config for picard's external monitor
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 4m59s
2025-01-09 11:58:32 +01:00
a38be99ea0
Fix niri config for kirk's monitor
Some checks failed
/ test (push) Has been cancelled
2025-01-09 11:55:02 +01:00
db2dc67e47
Add ultra-scroll to Emacs
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 29m11s
2025-01-09 11:17:38 +01:00
8b8ce6baa3
Disable swayvnc 2025-01-09 11:17:19 +01:00
a313be12ea
Bump inputs 2025-01-09 11:17:06 +01:00
ea612479a0
Add niri as window manager
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 20m31s
2025-01-08 15:25:39 +01:00
c8717806ab
Enable discord on picard 2025-01-08 15:24:55 +01:00
7bff0e57e2
Useless comment 2025-01-08 15:24:46 +01:00
0caf77129f
Simplify Emacs activation script for linking the config 2025-01-08 15:24:23 +01:00
cd543e02ce
Emacs experiments 2025-01-08 15:24:08 +01:00
267185f176
Make pinentry use rofi-wayland instead of classic rofi 2025-01-08 15:23:46 +01:00
55fa0214cb
Fix cursor size on Hyprland 2025-01-08 15:23:37 +01:00
5b9fd51586
catppuccin.nix option renamed 2025-01-08 15:22:31 +01:00
b7c77998f3
Emacs kdl-ts-mode 2025-01-08 15:22:05 +01:00
b67be71d21
lean4-mode in Emacs 2025-01-08 15:19:13 +01:00
042e3e787c
Fix tremotesf start
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 2m14s
2025-01-02 17:16:39 +01:00
55a3807844
Move nginx paperless proxy configuration to relative module 2025-01-02 17:16:23 +01:00
61fecf3bdb
Add firefly to sisko
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 2m48s
2025-01-01 17:04:05 +01:00
9590b879ed
Add firefly-app-key agenix secret 2025-01-01 17:02:29 +01:00
a3d1233ad1
Torrents readable by everybody by default
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 2m13s
2024-12-31 14:36:58 +01:00
37e55bb342
Expose webdav both on the LAN and the VPN 2024-12-31 14:36:38 +01:00
64425bd447
Fix permissions before starting nfs-server 2024-12-31 14:36:15 +01:00
3df87b1a12
Format
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 10m26s
2024-12-31 10:26:34 +01:00
1b24f5f065
element-desktop-wayland -> element-desktop
Some checks failed
/ test (push) Has been cancelled
2024-12-31 10:25:00 +01:00
cae8bb47ce
Try fixing tremotesf start when booting 2024-12-31 10:24:23 +01:00
7ffbe8ac24
Disable guix 2024-12-31 10:24:16 +01:00
3c92306ca3
Downgrade to Gerbera from Nixpkgs Stable (unstable is broken for aarch64-linux) 2024-12-31 10:23:54 +01:00
d0efa40c63
Downgrade to Emacs Unstable from Emacs Git (master) 2024-12-31 10:23:34 +01:00
9116e95a03
Remove pkgsStable argument 2024-12-31 10:23:18 +01:00
57be38c32f
Update flake inputs 2024-12-31 10:23:00 +01:00
6b795f7557
Enable jellyfin on sisko
Some checks failed
/ test (push) Failing after 1h51m2s
2024-12-30 17:06:24 +01:00
16bcd5e813
Enable solidity-mode on Emacs 2024-12-30 17:05:58 +01:00
49c94bcd62
Re-install copilot on emacs 2024-12-30 17:05:53 +01:00
23e3c53693
Add copilot-node-server to global shell 2024-12-30 17:04:50 +01:00
d2237c0a12
Format
Some checks failed
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
EVAL x86_64-linux.picard
/ test (push) Successful in 20s
2024-12-18 14:58:39 +01:00
a45c032180
Improve automatic formatting 2024-12-18 14:58:20 +01:00
62ed33c82c
Trigger CI
All checks were successful
EVAL x86_64-linux.picard
/ test (push) Successful in 23s
2024-12-17 11:41:59 +01:00
0057fb3378
Typo
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 1m50s
2024-12-17 11:37:59 +01:00
0a403bb9e2
Change attic directory 2024-12-17 11:37:49 +01:00
891c8a1f8d
Disable attic compression 2024-12-17 11:37:38 +01:00
47f54d5d6f
Change SCSI Link policity
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 1m43s
Is it really useful?
2024-12-17 11:35:18 +01:00
cb89698fec
CI test
Some checks failed
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
EVAL x86_64-linux.picard
/ test (push) Successful in 25s
2024-12-17 11:33:10 +01:00
e9d20e9453
org-roam template for capturing from the browser
Some checks failed
/ test (push) Has been cancelled
2024-12-13 19:29:22 +01:00
6d01ccf480
Enable p-search 2024-12-13 19:29:11 +01:00
47b0ffed69
Add root password for sisko
Useful when connecting through the serial cable
2024-12-13 19:28:44 +01:00
6f9886d43f
Add p-search to Emacs packages 2024-12-13 19:28:33 +01:00
0f94246609
Enable the hackrf hardware on picard
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 3m48s
2024-12-10 10:25:25 +01:00
d5582a3371
Fix missing ip attrset 2024-12-10 10:24:54 +01:00
cc66970484
Add openai_conversation to home-assistant 2024-12-10 10:24:40 +01:00
42cdcd29c1
Enable git's credential manager 2024-12-10 10:24:28 +01:00
31b758d884
Disable gptel-org-branching-context 2024-12-10 10:23:56 +01:00
2b2326a65c
Emacs stuff
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 1m22s
2024-12-06 11:44:46 +01:00
e8e1f8e7ce
Format 2024-12-06 11:44:30 +01:00
cec92da687
Add ccr to plugdev user group 2024-12-06 11:44:00 +01:00
4c6ecb05bd
Add sdrangel home-manager module 2024-12-06 11:43:15 +01:00
9191b17bff
Mara's laptop 2024-12-06 11:43:08 +01:00
26187a521b
nerdfonts became nerd-fonts 2024-12-06 11:41:56 +01:00
984ba9267d
Enable rtl-sdr on kirk 2024-12-06 11:40:00 +01:00
017b19cd17
Add chirp and sdrangel modules to kirk 2024-12-06 11:39:46 +01:00
796ecadf90
Do not use hardcoded ccr username 2024-12-06 11:39:30 +01:00
8ee594e06b
Disable autologin for kirk 2024-12-06 11:39:16 +01:00
72461214d8
Format sisko's hd to xfs 2024-12-06 11:38:59 +01:00
8efbd6f577
Enable binfmt also for armv6l-linux 2024-12-06 11:38:42 +01:00
9dfb48ba0c
Set networkmanager group in the ccr module 2024-12-06 11:38:21 +01:00
73449da88f
Options renamed 2024-12-06 11:37:35 +01:00
9dbc963840
Add mixed-pitch to Emacs packages 2024-12-06 11:37:22 +01:00
4d8da4b646
Argument renamed 2024-12-06 11:37:08 +01:00
b25018e39e
Update some inputs 2024-12-06 11:36:59 +01:00
54d97e55d9
CI script to report checks to forgejo
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 2m2s
2024-11-29 11:21:00 +01:00
45a78e44b4
Use home assistant local tuya integrations 2024-11-29 11:20:41 +01:00
4da58e8adc
Update garmin-connect home assistant integration 2024-11-29 11:20:28 +01:00
96bca1f669
Catpuccin theme for forgejo 2024-11-29 11:20:08 +01:00
d7000927a3
Enable chirp on picard 2024-11-29 11:19:47 +01:00
f4feb18c9a
Add vundo, pulsar and aggressive-indent emacs packages 2024-11-29 11:19:15 +01:00
49f2ada271
Persist adguard-home state 2024-11-29 11:18:55 +01:00
a121569f84
Do not use gpg for ssh keys anymore 2024-11-29 11:18:32 +01:00
da236805f5
Add chirp home-manager module 2024-11-29 11:17:35 +01:00
6efc109f1c
Format 2024-11-29 11:16:06 +01:00
ff2c16e55e
Enable aggressive-indent for lisps 2024-11-29 11:14:45 +01:00
5938a873b3
Try orderless partial-completion for files 2024-11-29 11:14:28 +01:00
b676b70273
Try vundo 2024-11-29 11:14:17 +01:00
1bbd87d36e
Try consult-focus-lines 2024-11-29 11:13:44 +01:00
d6d6498ee9
Enable pulsar on Emacs 2024-11-29 11:12:57 +01:00
389eb3d497
Remove --skip-cached
Some checks failed
EVAL x86_64-linux.picard
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
/ test (push) Successful in 1m32s
2024-11-25 10:38:44 +01:00
7a2dbc4a41
kirk mirrors screen
Some checks failed
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
EVAL x86_64-linux.picard
/ test (push) Successful in 27s
2024-11-24 14:28:29 +01:00
4c3b506937
Test CI
Some checks failed
BUILD x86_64-linux.picard
UPLOAD x86_64-linux.picard
DOWNLOAD x86_64-linux.picard
CACHIX x86_64-linux.picard
ATTIC x86_64-linux.picard
EVAL x86_64-linux.picard
/ test (push) Successful in 26s
2024-11-22 17:24:28 +01:00
f4364c6398
Enable webdav in LAN for Kodi on the TV
Some checks failed
/ test (push) Successful in 27s
mondo
test ciao
BUILD x86_64-linux.pre-commit
UPLOAD x86_64-linux.pre-commit
DOWNLOAD x86_64-linux.pre-commit
CACHIX x86_64-linux.pre-commit
ATTIC x86_64-linux.pre-commit
EVAL aarch64-linux.sisko
2024-11-21 10:14:58 +01:00
0fc04a3b18
Clean home-assistant configuration 2024-11-21 10:11:40 +01:00
0610fc96e9
Use nix-fast-build from flake (it supports native attic pushing) 2024-11-21 10:10:38 +01:00
312d1801f0
Add attic-client to the Forgejo runner 2024-11-21 10:10:06 +01:00
24201d0db6
Install attic on sisko 2024-11-21 10:09:26 +01:00
fa3a5e4ac4
Test attic
All checks were successful
/ test (push) Successful in 26s
2024-11-18 15:24:11 +01:00
442c3cec92
Remove kanshi
All checks were successful
/ test (push) Successful in 28s
2024-11-15 10:35:48 +01:00
fb18de26a0
These Hyprland options don't exist anymore? 2024-11-15 10:35:48 +01:00
2fcd6ed271
Re-enable swaync
It's not a VNC client 😖
2024-11-15 10:35:41 +01:00
2a10090d56 Merge pull request 'Update flake's lockfile' (#4) from update-flake-lock into master
All checks were successful
/ test (push) Successful in 23s
Reviewed-on: #4
2024-11-15 10:13:48 +01:00
457f369587 flake.lock: Update
All checks were successful
/ test (push) Successful in 1m1s
Flake lock file updates:

• Updated input 'catppuccin':
    'github:catppuccin/nix/191fbf2d81a63fad8f62f1233c0051f09b75d0ad' (2024-11-01)
  → 'github:catppuccin/nix/32359bf226fe874d3b7a0a5753d291a4da9616fe' (2024-11-10)
• Updated input 'disko':
    'github:nix-community/disko/856a2902156ba304efebd4c1096dbf7465569454' (2024-11-04)
  → 'github:nix-community/disko/5fd852c4155a689098095406500d0ae3d04654a8' (2024-11-14)
• Updated input 'dream2nix':
    'github:nix-community/dream2nix/51943fca6b95cb9649236bacf5d7c8d9af4c3bec' (2024-11-04)
  → 'github:nix-community/dream2nix/44d41411686bc798876bd6d9f36a4c1143138d85' (2024-11-12)
• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/1febd5c1ad7e798543c886756c598e0fb8d473fd' (2024-11-05)
  → 'github:nix-community/emacs-overlay/4639038b0f5e66e7d0f3d103b8e44ded3ab7e337' (2024-11-14)
• Updated input 'emacs-overlay/nixpkgs':
    'github:NixOS/nixpkgs/7ffd9ae656aec493492b44d0ddfb28e79a1ea25d' (2024-11-02)
  → 'github:NixOS/nixpkgs/dc460ec76cbff0e66e269457d7b728432263166c' (2024-11-11)
• Updated input 'emacs-overlay/nixpkgs-stable':
    'github:NixOS/nixpkgs/d063c1dd113c91ab27959ba540c0d9753409edf3' (2024-11-04)
  → 'github:NixOS/nixpkgs/689fed12a013f56d4c4d3f612489634267d86529' (2024-11-12)
• Updated input 'git-hooks-nix':
    'github:cachix/git-hooks.nix/d70155fdc00df4628446352fc58adc640cd705c2' (2024-11-05)
  → 'github:cachix/git-hooks.nix/cd1af27aa85026ac759d5d3fccf650abe7e1bbf0' (2024-11-11)
• Updated input 'homeManager':
    'github:nix-community/home-manager/8f6ca7855d409aeebe2a582c6fd6b6a8d0bf5661' (2024-11-03)
  → 'github:nix-community/home-manager/35b055009afd0107b69c286fca34d2ad98940d57' (2024-11-13)
• Updated input 'impermanence':
    'github:nix-community/impermanence/0d09341beeaa2367bac5d718df1404bf2ce45e6f' (2024-10-31)
  → 'github:nix-community/impermanence/3ed3f0eaae9fcc0a8331e77e9319c8a4abd8a71a' (2024-11-10)
• Updated input 'lix-eval-jobs':
    'git+https://git.lix.systems/lix-project/nix-eval-jobs?ref=refs/heads/main&rev=42a160bce2fd9ffebc3809746bc80cc7208f9b08' (2024-08-13)
  → 'git+https://git.lix.systems/lix-project/nix-eval-jobs?ref=refs/heads/main&rev=57ddb99e781d19704f8a84036f9890e6ca554c41' (2024-11-09)
• Updated input 'lix-eval-jobs/flake-parts':
    'github:hercules-ci/flake-parts/506278e768c2a08bec68eb62932193e341f55c90' (2024-11-01)
  → 'github:hercules-ci/flake-parts/3d04084d54bedc3d6b8b736c70ef449225c361b1' (2024-10-01)
• Updated input 'lix-eval-jobs/treefmt-nix':
    'github:numtide/treefmt-nix/746901bb8dba96d154b66492a29f5db0693dbfcc' (2024-10-30)
  → 'github:numtide/treefmt-nix/aac86347fb5063960eccb19493e0cadcdb4205ca' (2024-10-22)
• Updated input 'lix-module':
    'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=fd186f535a4ac7ae35d98c1dd5d79f0a81b7976d' (2024-10-01)
  → 'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=691193879d96bdfd1e6ab5ebcca2fadc7604cf34' (2024-11-09)
• Updated input 'mobile-nixos':
    'github:NixOS/mobile-nixos/0516be85630befa2c1e8042ac873342ce186b2f6' (2024-10-30)
  → 'github:NixOS/mobile-nixos/2268e358ed407d9c0a4499ae767d105eeaeec586' (2024-11-06)
• Updated input 'nixDarwin':
    'github:LnL7/nix-darwin/0e3f3f017c14467085f15d42343a3aaaacd89bcb' (2024-11-05)
  → 'github:LnL7/nix-darwin/6c71c49e2448e51ad830ed211024e6d0edc50116' (2024-11-12)
• Updated input 'nixThePlanet':
    'github:MatthewCroughan/NixThePlanet/2f622af217807da78e44a5a15f620743dac57f46' (2024-09-23)
  → 'github:MatthewCroughan/NixThePlanet/ef5fad336a55fcbb0680ad21aa58812b2f826435' (2024-11-09)
• Updated input 'nixosHardware':
    'github:NixOS/nixos-hardware/2e78b1af8025108ecd6edaa3ab09695b8a4d3d55' (2024-11-05)
  → 'github:NixOS/nixos-hardware/f6581f1c3b137086e42a08a906bdada63045f991' (2024-11-12)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/7ffd9ae656aec493492b44d0ddfb28e79a1ea25d' (2024-11-02)
  → 'github:NixOS/nixpkgs/dc460ec76cbff0e66e269457d7b728432263166c' (2024-11-11)
2024-11-15 10:07:25 +01:00
159e7a7c72
Make pre-commit re-use the same config for treefmt
All checks were successful
/ test (push) Successful in 1m23s
2024-11-15 10:06:16 +01:00
827f1d16d9
Trying to fix nix-on-droid 2024-11-15 10:06:11 +01:00
ef177f1293
tree-sitter-hl-mode doesn't exist anymore 2024-11-15 10:05:43 +01:00
a031de90f4
Enable gptsript-mode for .gpt files 2024-11-15 10:05:12 +01:00
c71d2715a3
Otherwise a firefox window pop up every time Emacs starts 2024-11-15 10:04:32 +01:00
e66b6653db
Typo 2024-11-15 10:04:20 +01:00
bcbbe82906
This has to be a symbol now apparently 2024-11-15 10:04:00 +01:00
0f3d872faf
Fix org capture template 2024-11-15 10:03:39 +01:00
392e10d5c4
Use external (not committed) custom file 2024-11-15 10:03:25 +01:00
8f46975d54
Remove rock5b input 2024-11-15 10:03:02 +01:00
0eff21231b
Packages renamed 2024-11-15 10:02:50 +01:00
fb1244edcf
Tridactyl uses emacsclient as external editor 2024-11-15 10:02:22 +01:00
00f6fd9f6e
Proof of concept work in progress darwin deployment script 2024-11-15 10:02:04 +01:00
f13e48aaaf
Not using swayvnc anymore (sunshine is better) 2024-11-15 10:01:41 +01:00
9f1eeca6b4
New default name 2024-11-15 10:01:29 +01:00
13a40b624d
Add gptscript to Emacs packages 2024-11-15 10:01:01 +01:00
9e4694d115
Add telega to Emacs packages 2024-11-15 10:00:24 +01:00
0175810b04
Not relevant anymore 2024-11-15 09:59:52 +01:00
3451b47e6a
Format 2024-11-15 09:58:47 +01:00
75bbfc22a1
Add note on how to restore snapshots
All checks were successful
/ test (push) Successful in 30s
2024-11-08 18:27:03 +01:00
8b7d68b296
Format
All checks were successful
/ test (push) Successful in 1m25s
2024-11-08 10:24:16 +01:00
43c06ae4c4
pre-commit still refers to the new formatter as nixfmt-rfc-style 2024-11-08 10:22:50 +01:00
a0f97d1a10
Support extra packages again 2024-11-08 10:21:49 +01:00
e671f7a375
Update TODO list 2024-11-08 10:21:36 +01:00
6554122847
Forgot colon 2024-11-08 10:21:25 +01:00
83aad01227
Improve prompt 2024-11-08 10:21:17 +01:00
2114a9037f
Track org attached files 2024-11-08 10:20:59 +01:00
59e1329644
New Hyprland keybinding, disable wayvnc and fix cursor 2024-11-08 10:20:22 +01:00
795b5a05ce
nixfmt-rf-style is now called just nixfmt 2024-11-08 10:17:57 +01:00
2a213c6b28
Move back to linux LTS (remove ddcci workaround) 2024-11-08 10:17:30 +01:00
8af20e204a
Bump inputs and fix nix-eval-jobs 2024-11-08 10:15:31 +01:00
e58e5439d8
GPTel hyprland keybinding
All checks were successful
/ test (push) Successful in 31s
2024-11-05 22:18:49 +01:00
b740fa3e93
Enable macos-ventura 2024-11-05 22:18:43 +01:00
4061273bab
Add org-roam-ui 2024-11-05 22:18:36 +01:00
dd626c2fc0
Formatting
All checks were successful
/ test (push) Successful in 19m3s
2024-11-04 21:19:55 +01:00
939f79f04d
Force search.json recreation 2024-11-04 21:13:58 +01:00
9dea0100c9
Disable zellij and Emacs Notmuch instead of aerc 2024-11-04 21:13:30 +01:00
f30f235f19
Disable VI mode for Fish 2024-11-04 21:11:57 +01:00
115aa92ddd
Workaround for when atuind is not well stopped 2024-11-04 21:10:56 +01:00
bd8e6a0715
Fix ddcci workaround on picard 2024-11-04 21:07:33 +01:00
e23c78fdb5
Disable logseq 2024-11-04 21:07:23 +01:00
d5cf98310f
Add ement.el (matrix client) 2024-11-04 21:07:11 +01:00
5fe4764f01
Stop and restart services during restic backups
Some checks failed
/ test (push) Failing after 16s
2024-11-04 11:22:37 +01:00
aa3ccc9a9d
Fix serial for sisko 2024-11-04 11:22:25 +01:00
c4a7c09930
New syncthing id for sisko 2024-11-04 11:21:39 +01:00
04d19cb17d
Disabling garmin-collector 2024-11-04 11:21:24 +01:00
b97907ebcd
Fix atuin when the system doesn't power off properly 2024-11-04 11:20:28 +01:00
f92a7d0bc9
Use xterm-direct in foot (emacs in shell works well now) 2024-11-04 11:20:03 +01:00
45aa2c98fd
Remove aerc stuff 2024-11-04 11:19:54 +01:00
22d7205413
New org-roam-ql predicate 2024-11-04 11:19:09 +01:00
9034479a24
Fix CI
Some checks failed
/ test (push) Failing after 31m8s
2024-10-30 15:14:49 +01:00
b584274633
Use EAT as main terminal emulator (again)
Some checks failed
/ test (push) Failing after 13s
2024-10-30 14:52:08 +01:00
eae3b152d8
Enable emacs directly from nixfleet 2024-10-30 14:51:53 +01:00
f81c7ce648
Update OpenAI token 2024-10-30 14:49:29 +01:00
e226364c3f
Using Emacs again :) 2024-10-30 14:49:21 +01:00
4c6a9fc358
Enable vial on picard
Some checks failed
/ test (push) Failing after 13s
2024-10-28 12:13:16 +01:00
0026a64c7c
Add vial home-manager module 2024-10-28 12:13:03 +01:00
911cc18e65
Vendor emacs
Some checks failed
/ test (push) Failing after 14s
2024-10-17 23:32:16 +02:00
87b886bfb0
Disable deadnix check
It's too annoying
2024-10-17 23:32:00 +02:00
74880599ea
Update inputs 2024-10-17 23:27:41 +02:00
7e210d325f
Add emacs-overlay flake input 2024-10-17 23:26:58 +02:00
6ead1cbc6e
New modules used on sisko and picard 2024-10-17 23:26:52 +02:00
a0f9a2b55d
Improve email 2024-10-17 23:25:19 +02:00
ce07329417
Re-enable shortcut for Emacs 2024-10-17 23:24:58 +02:00
00580c2c1f
Remove warning about missing meta attribute 2024-10-17 23:24:36 +02:00
5edc79b504
Remove unused domains add new ones 2024-10-17 23:23:48 +02:00
13ac723ec0
Reminder to migrate forgejo to a postgres backend
It's easier to backup
2024-10-17 23:23:26 +02:00
688ec82caf
Migrate CIFS to NFS 2024-10-17 23:23:13 +02:00
494542e1d2
Re-enable paperless on sisko 2024-10-17 23:22:34 +02:00
4ffc922419
Backup also the postgres db and paperless 2024-10-17 23:21:58 +02:00
a8cc32d0e0
Enable syncthing on sisko 2024-10-17 23:20:28 +02:00
2874437ab9
Remove unused pkgsStable argument and add a more useful inputs 2024-10-17 23:17:41 +02:00
9dabfa7771
Delete/rename modules 2024-10-17 23:16:22 +02:00
3add3c5d49
Logseq as wayland app
Some checks failed
/ test (push) Failing after 13s
2024-10-11 10:52:17 +02:00
d7189f1d82
Rename MediaTomb server
Some checks failed
/ test (push) Failing after 14s
2024-10-11 00:54:19 +02:00
56caaa4112
Forgot to remove
Some checks failed
/ test (push) Failing after 14s
2024-10-10 17:57:32 +02:00
f774f4b674
Bump flake inputs
Some checks failed
/ test (push) Failing after 13s
2024-10-10 17:09:14 +02:00
a0307ebb97
Don't follow the nixpkgs input for nix-darwin, otherwise it rebuilds the vm every time 2024-10-10 17:08:29 +02:00
d710638278
Decrease torrents ratio (probably the old disk died because of this) 2024-10-10 17:07:38 +02:00
72f21229f3
Trying to fix samba 2024-10-10 17:07:12 +02:00
d122f9061a
Enable reverse proxy for immich 2024-10-10 17:07:04 +02:00
f5091547bb
Update nextcloud module 2024-10-10 17:06:54 +02:00
c35c00bf75
Still doesn't work 2024-10-10 17:06:42 +02:00
eb09394470
Install restic on sisko 2024-10-10 17:06:33 +02:00
180e5743cc
Use new hard disk on sisko 2024-10-10 17:05:46 +02:00
34b7c07297
Use linux 6.11 on sisko (cpufreq e thermal support) 2024-10-10 17:05:32 +02:00
cad15d88fd
Remove empty line 2024-10-10 17:05:01 +02:00
7fcc87b549
Install logseq and enable it on picard 2024-10-10 16:56:37 +02:00
bc88e102b6
Install libreoffice on picard 2024-10-10 16:55:35 +02:00
72a1d720a7
Things
Some checks failed
/ test (push) Failing after 13s
2024-10-03 21:54:27 +02:00
5658f13955
Remove test settings
Some checks failed
/ test (push) Has been cancelled
2024-10-03 21:53:40 +02:00
916cc95918
Fix zmkBATx at startup 2024-10-03 21:53:22 +02:00
1d4f9fecdc
Improve virtualized macos-ventura settings
Allow ssh into it on the standard port
2024-10-03 21:53:05 +02:00
9c9cc992b8
Do not use home-manager on sisko 2024-10-03 21:52:16 +02:00
af395cafcb
Custom emails watcher 2024-09-28 23:59:59 +02:00
60b8c06011
Bump NixThePlanet flake input 2024-09-28 23:59:38 +02:00
9df249c52d
Improve firefox
Some checks failed
/ test (push) Failing after 23m35s
2024-09-26 22:19:16 +02:00
243f5b5607
Improve shell 2024-09-26 22:19:05 +02:00
ad844d9266
Add fzf-pass custom util 2024-09-26 22:18:45 +02:00
7d3c774e4e
Add padding
Some checks failed
/ test (push) Failing after 40m17s
2024-09-25 14:23:33 +02:00
516f3a3d3e
Add generic utils 2024-09-25 14:23:20 +02:00
db480ac857
Remove unused stuff 2024-09-25 14:23:20 +02:00
6cab6c0bf1
Use VI keybindings in fish shell 2024-09-25 14:23:20 +02:00
ec10309491
Remove unused stuff 2024-09-25 14:23:20 +02:00
df27f03c62
Use lsd instead of exa 2024-09-25 14:23:20 +02:00
f0698e809b
Enable ripgrep 2024-09-25 14:23:20 +02:00
404f022701
Enable fzf 2024-09-25 14:23:20 +02:00
c17fb32a28
Enable ranger 2024-09-25 14:23:20 +02:00
5ec6b664bf
Use default editor in the EDITOR env variable 2024-09-25 14:23:20 +02:00
d97229fa11
Fix waybar startup latency problem 2024-09-25 14:23:20 +02:00
27fdc7a92e
Enable freecad on picard 2024-09-25 14:23:17 +02:00
08b1521824
Use lix on sisko 2024-09-25 14:18:21 +02:00
7159aa535c
Rename immich container 2024-09-25 14:18:06 +02:00
28afd2dc86
cargoHash256 -> cargoHash 2024-09-25 14:16:41 +02:00
59cc5c791e
Remove impermanence locked revision 2024-09-25 14:15:57 +02:00
2686ad6086
Re-enable url-literals deprecated feature
Some checks failed
/ test (push) Failing after 26m16s
2024-09-23 13:47:34 +02:00
4caa879c4e
Enable catppuccin on picard 2024-09-23 13:47:17 +02:00
7d5c1d1860
Add catppuccin flake input 2024-09-23 13:45:09 +02:00
b1a17f605d
Remove wezterm patch
All checks were successful
/ test (push) Successful in 24m33s
Still doesn't work but at least it starts now
2024-09-23 09:54:40 +02:00
60d5495bed
Removed unused emacs 2024-09-23 09:54:07 +02:00
48ba1729e6
Cleanings
All checks were successful
/ test (push) Successful in 29s
2024-09-22 10:17:42 +02:00
42c594e32e
Enable secure boot on picard 2024-09-22 10:17:30 +02:00
43a76ca3d7
Enable prometheus exporters on kirk
All checks were successful
/ test (push) Successful in 46s
2024-09-20 21:49:45 +02:00
e703451af2
Move LSP servers
All checks were successful
/ test (push) Successful in 36s
2024-09-20 21:27:14 +02:00
3ff06fa2bc
Add zk at home-manager level 2024-09-20 21:26:56 +02:00
a394b9cefd
Reformat everything
All checks were successful
/ test (push) Successful in 32s
2024-09-20 11:37:17 +02:00
5f644d0ccd
Format
Some checks failed
/ test (push) Failing after 37s
2024-09-20 11:27:36 +02:00
4980df6f75
Use newer nixfmt
Some checks failed
/ test (push) Failing after 36s
2024-09-20 11:24:06 +02:00
6c0376da29
Things
All checks were successful
/ test (push) Successful in 1m1s
2024-09-20 11:18:38 +02:00
0889e6a448
Merge branch 'master' of git.aciceri.dev:aciceri/nixfleet
Some checks failed
/ test (push) Failing after 33m26s
2024-09-19 14:35:05 +02:00
2d3e4844b7
Start refactoring
- remove emacs
- remove inputs
- trying to speed up evaluation
- update inputs
2024-09-19 14:34:37 +02:00
691b35c860
Enable binfmt on kirk
All checks were successful
/ test (push) Successful in 2m54s
2024-09-12 16:37:29 +02:00
0ab8805aa5
Home assistant's garminconnect
All checks were successful
/ test (push) Successful in 2m14s
2024-08-07 15:31:57 +02:00
a03283d0d2
Enable smartctl prometheus exporter for picard 2024-08-07 15:31:20 +02:00
fc1e93f731
Grafana can send emails 2024-08-07 15:31:05 +02:00
ffd576cf99
New (old) disk 2024-08-07 15:30:26 +02:00
797f8d032d
Enable garmin-collector on sisko
All checks were successful
/ test (push) Successful in 1m33s
2024-07-25 16:44:56 +02:00
dbb15d07ed
Enable promtail on picard 2024-07-25 16:44:37 +02:00
a39a314e4c
Prometheus pushgateway 2024-07-25 16:44:28 +02:00
2871c291bf
Promtail 2024-07-25 16:44:14 +02:00
71a3654e9a
Restic for sisko 2024-07-25 16:43:58 +02:00
865274a2df
Disable photos.aciceri.dev DNS 2024-07-25 16:43:11 +02:00
ff789db499
garmin-collector 2024-07-25 16:43:01 +02:00
a9697956e4
Helix nixd LSP 2024-07-25 16:41:38 +02:00
7f52ad42cd
Enable Prometheus/Grafana/Loki
All checks were successful
/ test (push) Successful in 1m35s
2024-07-21 18:18:24 +02:00
ebc446116c
Re-deploy sisko with impermanence
All checks were successful
/ test (push) Successful in 1m38s
2024-07-20 00:48:48 +02:00
b111910e64
Fix hostname
All checks were successful
/ test (push) Successful in 8m34s
2024-07-13 14:51:18 +02:00
cc2bae9274
Fix
Some checks failed
/ test (push) Failing after 29s
2024-07-11 17:34:03 +02:00
c9951e3774
New oneplus8t SSH key 2024-07-11 12:08:21 +02:00
dc3d14fc76
Bump inputs
Some checks failed
/ test (push) Failing after 29s
2024-07-11 11:52:01 +02:00
1d0d36659a
It's not working 2024-07-11 11:51:53 +02:00
36482dbb45
driSupport doesn't exist anymore 2024-07-11 11:51:44 +02:00
bd015badf8
calibre is an HM module 2024-07-11 11:51:34 +02:00
2ecab054f9
Bought Oneplus 8T 2024-07-11 11:51:20 +02:00
399e02b074
New oneplus6t key 2024-07-11 11:49:55 +02:00
0b5508b94d
Unused secrets 2024-07-11 11:49:28 +02:00
69d4d7a147
reinstall-magisk-on-lineageos
All checks were successful
/ test (push) Successful in 1m29s
2024-07-03 10:56:47 +02:00
6978e1ad5b
Bump flake inputs
All checks were successful
/ test (push) Successful in 25s
2024-06-28 15:35:28 +02:00
9620ca8ca3
Things
All checks were successful
/ test (push) Successful in 18m47s
2024-06-09 09:09:15 +02:00
f7302479b3
Switch to catppuccin
Some checks failed
/ test (push) Has been cancelled
2024-06-01 08:39:18 +02:00
116474d8a8
Add calibre 2024-05-17 16:08:29 +02:00
11c2e5d852
lix-module fixed upstream
Some checks failed
/ test (push) Failing after 39s
2024-05-16 14:48:40 +02:00
ea7579024f
ddcci patch not needed anymore (other workaround still needed)
Some checks failed
/ test (push) Failing after 56s
2024-05-16 13:25:42 +02:00
88307f11d7
Bump inputs 2024-05-16 13:25:29 +02:00
76247f161d
Temporarily force specific commit for NUR 2024-05-16 13:25:18 +02:00
73834fcdb2
Use lix's main branch 2024-05-16 13:24:49 +02:00
b544207c17
Specify wayvnc binary name 2024-05-16 13:18:20 +02:00
b822cce916
Pass hostname as home-manager modules arg 2024-05-15 16:56:15 +02:00
93540ebbea
Enable remmina and zulip modules for kirk 2024-05-15 16:55:52 +02:00
6b492a2c08
Enable guix, teams and obs-studio modules for picard 2024-05-15 16:55:35 +02:00
97162fa355
Enbable latest compatible kernel with ZFS for kirk 2024-05-15 16:55:21 +02:00
409e64b82d
wayvnc module 2024-05-15 16:54:53 +02:00
98d64349ab
Useless 2024-05-15 16:54:17 +02:00
1cee88929a
Use lix fork 2024-05-15 16:54:05 +02:00
c9d18957f1
Module for guix 2024-05-15 16:53:21 +02:00
c68bfb81d3
Fix printing 2024-05-15 16:53:05 +02:00
e0b8b9ce02
Module for teams 2024-05-15 16:52:47 +02:00
d8a874ffa7
Workaround for ddcci-driver on Linux 6.8
Some checks failed
/ test (push) Failing after 31s
2024-05-06 15:28:03 +02:00
e9821d4cf0
nix package renamed
Some checks failed
/ test (push) Failing after 5m48s
2024-05-06 14:41:04 +02:00
7822eb7064
Bump inputs 2024-05-06 14:40:57 +02:00
6b3d0f8971
Remove unused input
All checks were successful
/ test (push) Successful in 31s
2024-05-02 20:41:41 +02:00
75cfaa84ca
New chatgpt token
All checks were successful
/ test (push) Successful in 5m3s
2024-05-01 10:51:48 +02:00
0462eb091c
Disable initrd debugging 2024-05-01 10:51:34 +02:00
5eaac88cd0
Use element-wayland 2024-05-01 10:51:26 +02:00
7abf093ddd
llm-workflow-engine not used anymore 2024-05-01 10:51:14 +02:00
5f27b9df55
Add nixd to PATH 2024-05-01 10:51:05 +02:00
1ef63feb7c
Use latest ZFS compatible kernel on picard 2024-05-01 10:50:47 +02:00
4d57037bd1
Add IOG substituter at system level 2024-05-01 10:50:30 +02:00
c33dc594ec
Update llm-workflow-engine 2024-05-01 10:50:06 +02:00
3db49bbddf
Bump ccrEmacs 2024-05-01 10:45:08 +02:00
f5c18d6902
Add nixd 2024-05-01 10:32:09 +02:00
be02ace030
Bump ccrEmacs
All checks were successful
/ test (push) Successful in 40s
2024-04-17 14:36:01 +02:00
fc65aa5403
Bluetooth fix
Some checks failed
/ test (push) Has been cancelled
Don't know exactly what happened but this fixed it
2024-04-17 13:45:38 +02:00
77f117cc5d
Reformatted hyprland's extraConfig string 2024-04-17 13:45:16 +02:00
25ec5ef86d
[WIP] New headless-hyprlan module 2024-04-17 13:44:56 +02:00
3e1fe36c42
Add new Nix On Droid janeway host
All checks were successful
/ test (push) Successful in 33s
2024-04-11 10:59:42 +02:00
731e2118a5
[CI] typo
All checks were successful
/ test (push) Successful in 37s
2024-04-09 16:58:39 +02:00
53eea2bced
Set MTU to 1200 for the Wireguard interface, seems to mitigate problems when connected through the phone
All checks were successful
/ test (push) Successful in 1m57s
2024-04-08 17:44:05 +02:00
867c475918
Enable adb on kirk 2024-04-08 17:43:53 +02:00
934120a952
Revert "wezterm now works as wayland native application"
All checks were successful
/ test (push) Successful in 38s
This reverts commit ee682fcf30.
2024-04-02 20:56:05 +02:00
a1c1373fc5 flake.lock: Update
Some checks are pending
/ test (push) Has started running
Flake lock file updates:

• Updated input 'ccrEmacs':
    'git+https://git.aciceri.dev/aciceri/emacs.git?ref=refs/heads/master&rev=845e682dc294373370efd5b6db99c48a65070a89' (2024-03-13)
  → 'git+https://git.aciceri.dev/aciceri/emacs.git?ref=refs/heads/master&rev=d3875adaaa70a52c127f2519a2e86eb4dbcf34b0' (2024-03-26)
• Updated input 'ccrEmacs/emacs-overlay':
    'github:nix-community/emacs-overlay/c68aeff603f1b5c4cc7a57b876cf5e7101f2f21c' (2024-03-13)
  → 'github:nix-community/emacs-overlay/81d4eb044fac45daf51281a046d413a40f05d103' (2024-03-26)
• Updated input 'ccrEmacs/emacs-overlay/nixpkgs':
    'github:NixOS/nixpkgs/0ad13a6833440b8e238947e47bea7f11071dc2b2' (2024-03-12)
  → 'github:NixOS/nixpkgs/44d0940ea560dee511026a53f0e2e2cde489b4d4' (2024-03-23)
• Updated input 'ccrEmacs/emacs-overlay/nixpkgs-stable':
    'github:NixOS/nixpkgs/ddcd7598b2184008c97e6c9c6a21c5f37590b8d2' (2024-03-11)
  → 'github:NixOS/nixpkgs/56528ee42526794d413d6f244648aaee4a7b56c0' (2024-03-22)
• Updated input 'ccrEmacs/extra-package-combobulate':
    'github:mickeynp/combobulate/ee82c568ad639605518f62f82fae4bcc0dfdbb81' (2024-03-11)
  → 'github:mickeynp/combobulate/f6e092d94ab184b3445fe3d6c0a501f9d7df764a' (2024-03-11)
• Updated input 'ccrEmacs/extra-package-copilot':
    'github:zerolfx/copilot.el/57d5e670786ca8156772c6dcb38e6ff67c5efd62' (2024-03-13)
  → 'github:zerolfx/copilot.el/4e203efaa1f4047c800a026ba496d3bda8b67119' (2024-03-09)
• Updated input 'ccrEmacs/extra-package-nix-ts-mode':
    'github:aciceri/nix-ts-mode/8da9a76cd014d56ee734553a32c9e006e375bce4' (2023-09-17)
  → 'github:antifuchs/nix-ts-mode/0ef4e663add03d026a1804f57ac7d5453a635b15' (2024-01-18)
• Updated input 'ccrEmacs/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/9cc7ed20043adf381f1b8354c54ba667b527d538' (2024-03-13)
  → 'github:hercules-ci/hercules-ci-effects/0ca27bd58e4d5be3135a4bef66b582e57abe8f4a' (2024-02-21)
• Updated input 'ccrEmacs/hercules-ci-effects/flake-parts':
    'github:hercules-ci/flake-parts/f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2' (2024-03-01)
  → 'github:hercules-ci/flake-parts/34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5' (2023-12-01)
• Updated input 'ccrEmacs/hercules-ci-effects/nixpkgs':
    'github:NixOS/nixpkgs/3030f185ba6a4bf4f18b87f345f104e6a6961f34' (2024-03-09)
  → 'github:NixOS/nixpkgs/cfc3698c31b1fb9cdcf10f36c9643460264d0ca8' (2023-12-27)
• Updated input 'disko':
    'github:nix-community/disko/c09c3a9639690f94ddff44c3dd25c85602e5aeb2' (2024-03-18)
  → 'github:nix-community/disko/611c9ea53250f7bb22286b3d26872280a0e608f9' (2024-04-01)
• Updated input 'dream2nix':
    'github:nix-community/dream2nix/f017de2de4b78aef8e9d37d1c7ffd61b200c2858' (2024-03-18)
  → 'github:nix-community/dream2nix/26a6c3a3405cdb2c2218cdc4e1e2bcf7a07af7ba' (2024-03-29)
• Updated input 'dream2nix/nixpkgs':
    'github:NixOS/nixpkgs/6af7e814afb3b62171eee1edc31989ee61528d25' (2024-03-17)
  → 'github:NixOS/nixpkgs/72c6ed328aa4e5d9151b1a512f6ad83aca7529fa' (2024-03-28)
• Updated input 'flakeParts':
    'github:hercules-ci/flake-parts/f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2' (2024-03-01)
  → 'github:hercules-ci/flake-parts/9126214d0a59633752a136528f5f3b9aa8565b7d' (2024-04-01)
• Updated input 'flakeParts/nixpkgs-lib':
    'github:NixOS/nixpkgs/1536926ef5621b09bba54035ae2bb6d806d72ac8?dir=lib' (2024-02-29)
  → 'github:NixOS/nixpkgs/d8fe5e6c92d0d190646fb9f1056741a229980089?dir=lib' (2024-03-29)
• Updated input 'hercules-ci-agent':
    'github:hercules-ci/hercules-ci-agent/c3841d842cbe6bf7024b26bb40e44e82bd042273' (2024-03-15)
  → 'github:hercules-ci/hercules-ci-agent/9a031b7c8e376cb46ffcf56aba2350dc6b1dac5b' (2024-03-18)
• Updated input 'homeManager':
    'github:nix-community/home-manager/7b3fca5adcf6c709874a8f2e0c364fe9c58db989' (2024-03-17)
  → 'github:nix-community/home-manager/4be0464472675212654dedf3e021bd5f1d58b92f' (2024-04-02)
• Updated input 'nixDarwin':
    'github:LnL7/nix-darwin/bcc8afd06e237df060c85bad6af7128e05fd61a3' (2024-03-17)
  → 'github:LnL7/nix-darwin/36524adc31566655f2f4d55ad6b875fb5c1a4083' (2024-03-30)
• Updated input 'nixosHardware':
    'github:NixOS/nixos-hardware/968952f950a59dee9ed1e8799dda38c6dfa1bad3' (2024-03-16)
  → 'github:NixOS/nixos-hardware/9a763a7acc4cfbb8603bb0231fec3eda864f81c0' (2024-03-25)
• Updated input 'nixpkgsStable':
    'github:NixOS/nixpkgs/614b4613980a522ba49f0d194531beddbb7220d3' (2024-03-17)
  → 'github:NixOS/nixpkgs/219951b495fc2eac67b1456824cc1ec1fd2ee659' (2024-03-28)
• Updated input 'nixpkgsUnstable':
    'github:NixOS/nixpkgs/c75037bbf9093a2acb617804ee46320d6d1fea5a' (2024-03-16)
  → 'github:NixOS/nixpkgs/d8fe5e6c92d0d190646fb9f1056741a229980089' (2024-03-29)
• Updated input 'nur':
    'github:nix-community/NUR/fc4f9acb61749a12a7ff7ac4020142b121a5dd25' (2024-03-18)
  → 'github:nix-community/NUR/91edd2127f8365f9e96b37370dcba75b769305fe' (2024-04-02)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/5df5a70ad7575f6601d91f0efec95dd9bc619431' (2024-02-15)
  → 'github:cachix/pre-commit-hooks.nix/e35aed5fda3cc79f88ed7f1795021e559582093a' (2024-04-02)
• Updated input 'pre-commit-hooks/flake-utils':
    'github:numtide/flake-utils/4022d587cbbfd70fe950c1e2083a02621806a725' (2023-12-04)
  → 'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a' (2024-03-11)
• Updated input 'pre-commit-hooks/gitignore':
    'github:hercules-ci/gitignore.nix/43e1aa1308018f37118e34d3a9cb4f5e75dc11d5' (2023-12-29)
  → 'github:hercules-ci/gitignore.nix/637db329424fd7e46cf4185293b9cc8c88c95394' (2024-02-28)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/35791f76524086ab4b785a33e4abbedfda64bd22' (2024-03-12)
  → 'github:numtide/treefmt-nix/49dc4a92b02b8e68798abd99184f228243b6e3ac' (2024-04-01)
2024-04-02 20:46:08 +02:00
173f1d32ad
transmission: always enforce speed limit
Some checks failed
/ test (push) Failing after 31m43s
I believe that the disk is too slow
2024-04-02 12:45:06 +02:00
145a7214b2
Disable SSH's controlPersist: was giving problems from mobile through the VPN 2024-04-02 12:44:40 +02:00
57f04d95db
Enable adb on picard 2024-04-02 12:44:29 +02:00
ae0468bf73
syncthing on the OnePlus 6T 2024-04-02 12:44:14 +02:00
d9349d5317
New Android ROM on the OnePlus 6T 2024-04-02 12:43:09 +02:00
458c00e499
btop settings 2024-04-02 12:42:53 +02:00
c9ef45c958
Update ccrEmacs input 2024-04-02 12:42:29 +02:00
ae7d2a3974
Move forgejo state directory to SSD
All checks were successful
/ test (push) Successful in 12m11s
2024-03-26 15:45:14 +01:00
9fb2c6e365
Jellyfin proxy 2024-03-26 15:45:07 +01:00
fe54c2d5ba
Change transmission speeds
Disk is too slow 😭
2024-03-26 15:42:36 +01:00
fc8c1560e3
Jellyfin module
All checks were successful
/ test (push) Successful in 36s
2024-03-26 15:40:28 +01:00
3e1ee94dc9
[CI] Re-enable jobs
All checks were successful
/ test (push) Successful in 32s
2024-03-26 15:28:34 +01:00
3c9a69063f
[CI] Temporarily disable update-flake-lock job 2024-03-26 14:57:08 +01:00
a16c6bd6cc flake.lock: Update
All checks were successful
/ test (push) Successful in 24s
Flake lock file updates:

• Updated input 'ccrEmacs/emacs-overlay':
    'github:nix-community/emacs-overlay/1cdd60ae31faea0bc68251429f64589978415b4b' (2024-03-10)
  → 'github:nix-community/emacs-overlay/c68aeff603f1b5c4cc7a57b876cf5e7101f2f21c' (2024-03-13)
• Updated input 'ccrEmacs/emacs-overlay/flake-utils':
    'github:numtide/flake-utils/d465f4819400de7c8d874d50b982301f28a84605' (2024-02-28)
  → 'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a' (2024-03-11)
• Updated input 'ccrEmacs/emacs-overlay/nixpkgs':
    'github:NixOS/nixpkgs/9df3e30ce24fd28c7b3e2de0d986769db5d6225d' (2024-03-06)
  → 'github:NixOS/nixpkgs/0ad13a6833440b8e238947e47bea7f11071dc2b2' (2024-03-12)
• Updated input 'ccrEmacs/emacs-overlay/nixpkgs-stable':
    'github:NixOS/nixpkgs/b94a96839afcc56de3551aa7472b8d9a3e77e05d' (2024-03-09)
  → 'github:NixOS/nixpkgs/ddcd7598b2184008c97e6c9c6a21c5f37590b8d2' (2024-03-11)
• Updated input 'ccrEmacs/extra-package-combobulate':
    'github:mickeynp/combobulate/abc2be2a47edd2d108ce0dbe1d11e0cd2fe6796d' (2024-03-02)
  → 'github:mickeynp/combobulate/ee82c568ad639605518f62f82fae4bcc0dfdbb81' (2024-03-11)
• Updated input 'ccrEmacs/extra-package-copilot':
    'github:zerolfx/copilot.el/4e203efaa1f4047c800a026ba496d3bda8b67119' (2024-03-09)
  → 'github:zerolfx/copilot.el/57d5e670786ca8156772c6dcb38e6ff67c5efd62' (2024-03-13)
• Updated input 'ccrEmacs/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/0ca27bd58e4d5be3135a4bef66b582e57abe8f4a' (2024-02-21)
  → 'github:hercules-ci/hercules-ci-effects/9cc7ed20043adf381f1b8354c54ba667b527d538' (2024-03-13)
• Updated input 'ccrEmacs/hercules-ci-effects/flake-parts':
    'github:hercules-ci/flake-parts/34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5' (2023-12-01)
  → 'github:hercules-ci/flake-parts/f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2' (2024-03-01)
• Updated input 'ccrEmacs/hercules-ci-effects/nixpkgs':
    'github:NixOS/nixpkgs/cfc3698c31b1fb9cdcf10f36c9643460264d0ca8' (2023-12-27)
  → 'github:NixOS/nixpkgs/3030f185ba6a4bf4f18b87f345f104e6a6961f34' (2024-03-09)
• Updated input 'disko':
    'github:nix-community/disko/fe064a639319ed61cdf12b8f6eded9523abcc498' (2024-03-11)
  → 'github:nix-community/disko/c09c3a9639690f94ddff44c3dd25c85602e5aeb2' (2024-03-18)
• Updated input 'dream2nix':
    'github:nix-community/dream2nix/cd782df677aad08f7193c97376d615943c3cd4c9' (2024-03-12)
  → 'github:nix-community/dream2nix/f017de2de4b78aef8e9d37d1c7ffd61b200c2858' (2024-03-18)
• Updated input 'dream2nix/nixpkgs':
    'github:NixOS/nixpkgs/7eeacecff44e05a9fd61b9e03836b66ecde8a525' (2024-03-12)
  → 'github:NixOS/nixpkgs/6af7e814afb3b62171eee1edc31989ee61528d25' (2024-03-17)
• Updated input 'hercules-ci-agent':
    'github:hercules-ci/hercules-ci-agent/5ac8a664284001c49bd5ab30c2df20d9c6672e31' (2024-03-06)
  → 'github:hercules-ci/hercules-ci-agent/c3841d842cbe6bf7024b26bb40e44e82bd042273' (2024-03-15)
• Updated input 'hercules-ci-agent/nixpkgs':
    'github:NixOS/nixpkgs/b8697e57f10292a6165a20f03d2f42920dfaf973' (2024-03-03)
  → 'github:NixOS/nixpkgs/3030f185ba6a4bf4f18b87f345f104e6a6961f34' (2024-03-09)
• Updated input 'hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/3e81b3a33980f6596aafbe308abd78daea0bfa7d' (2024-03-12)
  → 'github:hercules-ci/hercules-ci-effects/64e7763d72c1e4c1e5e6472640615b6ae2d40fbf' (2024-03-15)
• Updated input 'hercules-ci-effects/flake-parts':
    'github:hercules-ci/flake-parts/34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5' (2023-12-01)
  → 'github:hercules-ci/flake-parts/f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2' (2024-03-01)
• Updated input 'hercules-ci-effects/nixpkgs':
    'github:NixOS/nixpkgs/cfc3698c31b1fb9cdcf10f36c9643460264d0ca8' (2023-12-27)
  → 'github:NixOS/nixpkgs/0ad13a6833440b8e238947e47bea7f11071dc2b2' (2024-03-12)
• Updated input 'homeManager':
    'github:nix-community/home-manager/a500de54b2e3067201a40cefa5f210f719423ddf' (2024-03-12)
  → 'github:nix-community/home-manager/7b3fca5adcf6c709874a8f2e0c364fe9c58db989' (2024-03-17)
• Updated input 'nixDarwin':
    'github:LnL7/nix-darwin/c7ae5dc969b93f3221f5c228f0ec3de3e2b8084e' (2024-03-12)
  → 'github:LnL7/nix-darwin/bcc8afd06e237df060c85bad6af7128e05fd61a3' (2024-03-17)
• Updated input 'nixosHardware':
    'github:NixOS/nixos-hardware/ad2fd7b978d5e462048729a6c635c45d3d33c9ba' (2024-03-11)
  → 'github:NixOS/nixos-hardware/968952f950a59dee9ed1e8799dda38c6dfa1bad3' (2024-03-16)
• Updated input 'nixpkgsStable':
    'github:NixOS/nixpkgs/ddcd7598b2184008c97e6c9c6a21c5f37590b8d2' (2024-03-11)
  → 'github:NixOS/nixpkgs/614b4613980a522ba49f0d194531beddbb7220d3' (2024-03-17)
• Updated input 'nixpkgsUnstable':
    'github:NixOS/nixpkgs/3030f185ba6a4bf4f18b87f345f104e6a6961f34' (2024-03-09)
  → 'github:NixOS/nixpkgs/c75037bbf9093a2acb617804ee46320d6d1fea5a' (2024-03-16)
• Updated input 'nur':
    'github:nix-community/NUR/b221a8e8493458bf33a754d86970bc656fdc43cc' (2024-03-12)
  → 'github:nix-community/NUR/fc4f9acb61749a12a7ff7ac4020142b121a5dd25' (2024-03-18)
2024-03-18 14:02:00 +00:00
265 changed files with 10802 additions and 5008 deletions

View file

@ -7,5 +7,9 @@ jobs:
steps:
- uses: actions/checkout@v4
name: Checkout repository
- name: Attic login
run: attic login nixfleet http://sisko.wg.aciceri.dev:8081 ${{secrets.ATTIC_NIXFLEET_TOKEN}}
- name: Build with nix
run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux"
run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true
- name: Report checks
run: report-checks

View file

@ -1,7 +1,7 @@
name: update-flake-lock
on:
schedule:
- cron: '0 15 * * *' # daily at 15:00
- cron: "0 15 * * *" # daily at 15:00
jobs:
lockfile:

1
.gitignore vendored
View file

@ -2,3 +2,4 @@ result
.direnv
.pre-commit-config.yaml
*.qcow2
result*

View file

@ -3,33 +3,55 @@
self,
lib,
...
}: {
}:
{
imports = [
inputs.treefmt-nix.flakeModule
inputs.pre-commit-hooks.flakeModule
inputs.git-hooks-nix.flakeModule
];
perSystem = _: {
perSystem =
{ config, ... }:
{
treefmt.config = {
projectRootFile = ".git/config";
programs.alejandra.enable = true;
flakeFormatter = true;
flakeCheck = true;
programs = {
nixfmt.enable = true;
prettier.enable = true;
black.enable = true;
shfmt.enable = true;
};
settings.global.excludes = [
"*.age"
"*.svg"
"*.png"
"*.jpg"
"*.bin"
"*.el"
"*.org"
".envrc"
"*.conf"
];
};
pre-commit.settings.hooks = {
alejandra.enable = true;
# deadnix.enable = true;
# statix.enable = true;
pre-commit.settings = {
hooks.treefmt = {
enable = true;
package = config.treefmt.build.wrapper;
};
};
};
flake.checks = let
flake.checks =
let
build = _: nc: nc.config.system.build.toplevel;
in {
x86_64-linux = lib.mapAttrs build {
inherit (self.nixosConfigurations) picard;
};
in
{
x86_64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) picard; };
aarch64-linux = lib.mapAttrs build {
inherit (self.nixosConfigurations) sisko; #pbp;
inherit (self.nixosConfigurations) sisko; # pbp;
};
};
}

View file

@ -1,24 +0,0 @@
{inputs, ...}: {
imports = [
inputs.hercules-ci-effects.flakeModule
];
herculesCI.ciSystems = [
"x86_64-linux"
"aarch64-linux"
];
hercules-ci.flake-update = {
enable = true;
updateBranch = "updated-flake-lock";
createPullRequest = true;
autoMergeMethod = "rebase";
baseMerge = {
enable = true;
method = "rebase";
};
when = {
minute = 45;
hour = 13;
dayOfWeek = ["Mon" "Tue" "Wed" "Thu" "Fri" "Sat" "Sun"];
};
};
}

1305
flake.lock generated

File diff suppressed because it is too large Load diff

View file

@ -3,62 +3,59 @@
inputs = {
flakeParts.url = "github:hercules-ci/flake-parts";
nixpkgsUnstable.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgsUnstableForSisko.url = "github:NixOS/nixpkgs/0e74ca98a74bc7270d28838369593635a5db3260";
nixpkgsStable.url = "github:NixOS/nixpkgs/nixos-23.11";
nixpkgsSisko.url = "github:NixOS/nixpkgs/b6eaf97c6960d97350c584de1b6dcff03c9daf42";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixosHardware.url = "github:NixOS/nixos-hardware";
homeManager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgsUnstable";
inputs.nixpkgs.follows = "nixpkgs";
};
# TODO: remove after https://github.com/nix-community/home-manager/pull/3811
homeManagerGitWorkspace = {
url = "github:aciceri/home-manager/git-workspace";
inputs.nixpkgs.follows = "nixpkgsUnstable";
};
# TODO: remove after https://github.com/nix-community/home-manager/pull/4249
homeManagerSwayNC = {
url = "github:rhoriguchi/home-manager/swaync";
inputs.nixpkgs.follows = "nixpkgsUnstable";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgsUnstable";
inputs.nixpkgs.follows = "nixpkgs";
};
pre-commit-hooks = {
url = "github:cachix/pre-commit-hooks.nix";
inputs = {
nixpkgs.follows = "nixpkgsUnstable";
nixpkgs-stable.follows = "nixpkgsStable";
git-hooks-nix = {
url = "github:cachix/git-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
nur.url = "github:nix-community/NUR";
agenix.url = "github:ryantm/agenix";
rock5b.url = "github:aciceri/rock5b-nixos";
ccrEmacs.url = "git+https://git.aciceri.dev/aciceri/emacs.git";
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgsUnstable";
inputs.nixpkgs.follows = "nixpkgs";
};
hercules-ci-effects.url = "github:hercules-ci/hercules-ci-effects";
dream2nix.url = "github:nix-community/dream2nix";
hercules-ci-agent.url = "github:hercules-ci/hercules-ci-agent";
nix-fast-build = {
url = "github:Mic92/nix-fast-build";
inputs.nixpkgs.follows = "nixpkgsUnstable";
nix-on-droid.url = "github:nix-community/nix-on-droid";
lix = {
url = "git+https://git@git.lix.systems/lix-project/lix"; # FIXME update
flake = false;
};
nixThePlanet = {
url = "github:aciceri/NixThePlanet/nix-in-darwin";
inputs.nixpkgs.follows = "nixpkgsUnstable";
lix-module = {
url = "git+https://git.lix.systems/lix-project/nixos-module";
inputs.lix.follows = "lix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixDarwin = {
url = "github:LnL7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgsUnstable";
mobile-nixos = {
url = "github:NixOS/mobile-nixos";
flake = false;
};
impermanence.url = "github:nix-community/impermanence";
vscode-server.url = "github:nix-community/nixos-vscode-server";
lanzaboote = {
url = "github:nix-community/lanzaboote";
inputs.nixpkgs.follows = "nixpkgs";
};
catppuccin.url = "github:catppuccin/nix";
emacs-overlay.url = "github:nix-community/emacs-overlay";
};
outputs = inputs @ {flakeParts, ...}:
flakeParts.lib.mkFlake {inherit inputs;} {
outputs =
inputs@{ flakeParts, ... }:
flakeParts.lib.mkFlake { inherit inputs; } {
imports = [
# TODO export modules as flake outputs
# ./modules
@ -67,8 +64,10 @@
./packages
./shell
./checks
./ci
];
systems = ["x86_64-linux" "aarch64-linux"];
systems = [
"x86_64-linux"
"aarch64-linux"
];
};
}

View file

@ -1,5 +1,5 @@
{
imports = [../email];
imports = [ ../email ];
config = {
accounts.email.accounts = {
autistici.aerc = {

View file

@ -1,3 +1,4 @@
{pkgs, ...}: {
home.packages = [pkgs.binance];
{ pkgs, ... }:
{
home.packages = [ pkgs.binance ];
}

View file

@ -1,6 +1,9 @@
{
programs.btop = {
enable = true;
settings.update_ms = 100;
settings = {
update_ms = 100;
theme_background = false;
};
};
}

View file

@ -0,0 +1,4 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.calibre ];
}

View file

@ -0,0 +1,13 @@
{ lib, ... }:
{
catppuccin = {
enable = true;
flavor = "mocha";
accent = "sapphire";
};
qt = {
platformTheme.name = lib.mkForce "kvantum";
style.name = lib.mkForce "kvantum";
};
}

View file

@ -0,0 +1,4 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.chirp ];
}

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
programs.chromium = {
enable = true;
package = pkgs.google-chrome;

View file

@ -1,3 +1,6 @@
{pkgs, ...}: {
home.packages = [pkgs.cura];
{ pkgs, ... }:
{
home.packages = [
pkgs.cura-appimage
];
}

View file

@ -1,3 +1,4 @@
{pkgs, ...}: {
home.packages = [pkgs.digikam];
{ pkgs, ... }:
{
home.packages = [ pkgs.digikam ];
}

View file

@ -1,5 +1,11 @@
{pkgs, ...}: {
home.packages = [pkgs.discord];
{ pkgs, ... }:
{
home.packages = [
(pkgs.discord.override {
withOpenASAR = true;
withVencord = true;
})
];
home.file.".config/discord/settings.json".text = builtins.toJSON {
SKIP_HOST_UPDATE = true;
};

View file

@ -1,3 +1,4 @@
{pkgs, ...}: {
home.packages = [pkgs.dolphin-emu];
{ pkgs, ... }:
{
home.packages = [ pkgs.dolphin-emu ];
}

View file

@ -1,18 +1,17 @@
{pkgs, ...}: {
# home.packages = [pkgs.schildichat-desktop];
home.packages = [pkgs.element-desktop];
{ pkgs, lib, ... }:
{
home.packages = [ pkgs.element-desktop ];
systemd.user.services.element-desktop = {
Install.WantedBy = ["graphical-session.target"];
Install.WantedBy = [ "graphical-session.target" ];
Unit = {
Description = "Element";
PartOf = ["graphical-session.target"];
PartOf = [ "graphical-session.target" ];
};
Service = {
# ExecStart = "${pkgs.schildichat-desktop}/bin/schildichat-desktop"; # TODO I preferred SchildiChat but it was removed from nixpkgs becuase unsafe
ExecStart = "${pkgs.element-desktop}/bin/element-desktop";
ExecStart = lib.getExe pkgs.element-desktop;
Restart = "on-failure";
RestartSec = 3;
};

View file

@ -1,11 +1,65 @@
{
lib,
age,
fleetFlake,
pkgs,
age,
...
}: {
ccrEmacs.enable = true;
home.sessionVariables.EDITOR = lib.mkForce "emacsclient";
systemd.user.services.emacs.Service.EnvironmentFile = age.secrets.chatgpt-token.path;
home.packages = lib.lists.optional pkgs.stdenv.isx86_64 pkgs.llm-workflow-engine;
}:
let
emacs = fleetFlake.packages.${pkgs.system}.emacs;
inherit (emacs.passthru) treesitGrammars;
in
{
systemd.user.sessionVariables = {
EDITOR = lib.mkForce "emacsclient -c";
OPENAI_API_KEY_PATH = age.secrets.chatgpt-token.path;
};
programs.emacs = {
enable = true;
package = emacs;
};
services.emacs = {
enable = true;
client.enable = true;
defaultEditor = true;
socketActivation.enable = false;
startWithUserSession = true;
package = emacs;
};
home.packages =
with pkgs;
[
binutils
delta
(ripgrep.override { withPCRE2 = true; })
gnutls
fd
hunspell
python3
imagemagick
ghostscript_headless
mupdf-headless
poppler_utils
ffmpegthumbnailer
mediainfo
unzipNLS
nodejs_20
qadwaitadecorations
kdePackages.qtwayland
copilot-language-server.fhs
math-preview
emacs-lsp-booster
]
++ (with hunspellDicts; [
en_US-large
it_IT
]);
home.activation.linkEmacsConfig = lib.hm.dag.entryAnywhere ''
if [ ! -d "$HOME/.config/emacs" ]; then
$DRY_RUN_CMD mkdir "$HOME/.config/emacs"
$DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/emacs/init.el" "$HOME/.config/emacs/init.el"
$DRY_RUN_CMD ln -s "$HOME/.config/emacs" "$HOME/emacs"
fi
$DRY_RUN_CMD ln -sfn ${treesitGrammars} "$HOME/.config/emacs/tree-sitter"
'';
}

1216
hmModules/emacs/init.el Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,17 +1,271 @@
{
pkgs,
secrets,
fleetFlake,
lib,
...
}: {
}:
{
programs.mbsync.enable = true;
programs.msmtp.enable = true;
services.mbsync = {
enable = true;
postExec = lib.getExe (
pkgs.writeShellScriptBin "mbsync-post-exec" ''
${lib.getExe pkgs.notmuch} new
for _ in _ _
do
afew -C ~/.config/notmuch/default/config --tag --new -vv
afew -C ~/.config/notmuch/default/config --move --new -vv
done
''
);
};
# home.file.".config/aerc/stylesets" =
# let
# catppuccin-aerc = pkgs.fetchFromGitHub {
# owner = "catppuccin";
# repo = "aerc";
# rev = "ca404a9f2d125ef12db40db663d43c9d94116a05";
# hash = "sha256-OWIkHsKFts/zkrDUtbBPXHVSrHL/F0v3LB1rnlFAKmE=";
# };
# in
# {
# source = "${catppuccin-aerc}/dist";
# recursive = true;
# };
# programs.aerc = {
# enable = true;
# extraBinds = {
# global = {
# "<C-p>" = ":prev-tab<Enter>";
# "<C-n>" = ":next-tab<Enter>";
# "?" = ":help keys<Enter>";
# };
# messages = {
# "h" = ":prev-tab<Enter>";
# "l" = ":next-tab<Enter>";
# "j" = ":next<Enter>";
# "<Down>" = ":next<Enter>";
# "<C-d>" = ":next 50%<Enter>";
# "<C-f>" = ":next 100%<Enter>";
# "<PgDn>" = ":next 100%<Enter>";
# "k" = ":prev<Enter>";
# "<Up>" = ":prev<Enter>";
# "<C-u>" = ":prev 50%<Enter>";
# "<C-b>" = ":prev 100%<Enter>";
# "<PgUp>" = ":prev 100%<Enter>";
# "g" = ":select 0<Enter>";
# "G" = ":select -1<Enter>";
# "J" = ":next-folder<Enter>";
# "K" = ":prev-folder<Enter>";
# "H" = ":collapse-folder<Enter>";
# "L" = ":expand-folder<Enter>";
# "v" = ":mark -t<Enter>";
# "x" = ":mark -t<Enter>:next<Enter>";
# "V" = ":mark -v<Enter>";
# "T" = ":toggle-threads<Enter>";
# "<Enter>" = ":view<Enter>";
# "d" = ":prompt 'Really delete this message?' 'delete-message'<Enter>";
# "D" = ":delete<Enter>";
# "A" = ":archive flat<Enter>";
# "C" = ":compose<Enter>";
# "rr" = ":reply -a<Enter>";
# "rq" = ":reply -aq<Enter>";
# "Rr" = ":reply<Enter>";
# "Rq" = ":reply -q<Enter>";
# "c" = ":cf<space>";
# "$" = ":term<space>";
# "!" = ":term<space>";
# "|" = ":pipe<space>";
# "/" = ":search<space>";
# "\\" = ":filter<space>";
# "n" = ":next-result<Enter>";
# "N" = ":prev-result<Enter>";
# "<Esc>" = ":clear<Enter>";
# };
# "messages:folder=Drafts" = {
# "<Enter>" = ":recall<Enter>";
# };
# view = {
# "/" = ":toggle-key-passthrough<Enter>/";
# "q" = ":close<Enter>";
# "O" = ":open<Enter>";
# "S" = ":save<space>";
# "|" = ":pipe<space>";
# "D" = ":delete<Enter>";
# "A" = ":archive flat<Enter>";
# "<C-l>" = ":open-link <space>";
# "f" = ":forward<Enter>";
# "rr" = ":reply -a<Enter>";
# "rq" = ":reply -aq<Enter>";
# "Rr" = ":reply<Enter>";
# "Rq" = ":reply -q<Enter>";
# "H" = ":toggle-headers<Enter>";
# "<C-k>" = ":prev-part<Enter>";
# "<C-j>" = ":next-part<Enter>";
# "J" = ":next<Enter>";
# "K" = ":prev<Enter>";
# };
# "view::passthrough" = {
# "$noinherit" = true;
# "$ex" = "<C-x>";
# "<Esc>" = ":toggle-key-passthrough<Enter>";
# };
# compose = {
# "$noinherit" = "true";
# "$ex" = "<C-x>";
# "<C-k>" = ":prev-field<Enter>";
# "<C-j>" = ":next-field<Enter>";
# "<A-p>" = ":switch-account -p<Enter>";
# "<A-n>" = ":switch-account -n<Enter>";
# "<tab>" = ":next-field<Enter>";
# "<C-p>" = ":prev-tab<Enter>";
# "<C-n>" = ":next-tab<Enter>";
# };
# "compose::editor" = {
# "$noinherit" = "true";
# "$ex" = "<C-x>";
# "<C-k>" = ":prev-field<Enter>";
# "<C-j>" = ":next-field<Enter>";
# "<C-p>" = ":prev-tab<Enter>";
# "<C-n>" = ":next-tab<Enter>";
# };
# "compose::review" = {
# "y" = ":send<Enter>";
# "n" = ":abort<Enter>";
# "p" = ":postpone<Enter>";
# "q" = ":choose -o d discard abort -o p postpone postpone<Enter>";
# "e" = ":edit<Enter>";
# "a" = ":attach<space>";
# "d" = ":detach<space>";
# };
# terminal = {
# "$noinherit" = "true";
# "$ex" = "<C-x>";
# "<C-p>" = ":prev-tab<Enter>";
# "<C-n>" = ":next-tab<Enter>";
# };
# };
# extraConfig = {
# general.unsafe-accounts-conf = true;
# ui = {
# styleset-name = "catppuccin-mocha";
# this-day-time-format = ''" 15:04"'';
# this-year-time-format = "Mon Jan 02 15:04";
# timestamp-format = "2006-01-02 15:04";
# spinner = "[ ⡿ ],[ ⣟ ],[ ⣯ ],[ ⣷ ],[ ⣾ ],[ ⣽ ],[ ⣻ ],[ ⢿ ]";
# border-char-vertical = "┃";
# border-char-horizontal = "━";
# };
# viewer = {
# always-show-mime = true;
# };
# compose = {
# no-attachment-warning = "^[^>]*attach(ed|ment)";
# };
# filters = {
# "text/plain" = "colorize";
# "text/html" = "html";
# "text/calendar" = "calendar";
# "message/delivery-status" = "colorize";
# "message/rfc822" = "colorize";
# "image/*" = "${pkgs.catimg}/bin/catimg -";
# };
# };
# };
programs.notmuch = {
enable = true;
hooks.preNew = "mbsync --all";
new.tags = [ "new" ];
search.excludeTags = [
"trash"
"deleted"
"spam"
];
maildir.synchronizeFlags = true;
};
services.mbsync.enable = true;
programs.afew = {
enable = true;
extraConfig = ''
[Filter.1]
message = "Tag GitHub notifications"
tags = +github
query = from:noreply@github.com OR from:notifications@github.com
[Filter.2]
query = "folder:autistici/Inbox"
tags = +autistici
message = "Tag personal autistici emails"
[Filter.3]
query = "not folder:autistici/Inbox"
tag = -new
message = "Sanity check: remove the new tag for emails moved out from Inbox"
[Filter.4]
query = "not folder:autistici/Inbox"
tag = -new
message = "Sanity check: remove the new tag for emails moved out from Inbox"
[Filter.5]
query = "not folder:autistici/Sent"
tag = +sent
message = "Sanity check: add the sent tag for emails in Sent"
[Filter.6]
query = "not folder:autistici/Drafts"
tag = +draft
message = "Sanity check: add the draft tag for emails in Draft"
[MailMover]
folders = autistici/Inbox
rename = true
autistici/Inbox = 'tag:archive':autistici/Archive 'tag:github':autistici/GitHub 'NOT tag:new':autistici/Trash
'';
};
systemd.user.services.emails-watcher = {
Unit.Description = "Send notifications when new emails arrive";
Install = {
WantedBy = [ "default.target" ];
};
Service = {
ExecStart = "${lib.getExe fleetFlake.packages.${pkgs.system}.emails-watcher}";
Environment = [ "INBOX_NEW=~/Maildir/autistici/Inbox/new" ];
};
};
accounts.email = {
accounts.autistici = {
aerc.enable = true;
address = "andrea.ciceri@autistici.org";
gpg = {
key = "7A66EEA1E6C598D07D361287A1FC89532D1C565";
@ -24,6 +278,8 @@
mbsync = {
enable = true;
create = "maildir";
expunge = "both";
remove = "both";
};
msmtp.enable = true;
notmuch.enable = true;

View file

@ -0,0 +1,193 @@
:root {
/* Catppuccin Colors */
--bg: #1e1e2e;
--currentline: #302d41;
--fg: #d9e0ee;
--comment: #575268;
--flamingo: #f2cdcd;
--mauve: #ddb6f2;
--pink: #f5c2e7;
--maroon: #e8a2af;
--red: #f28fad;
--peach: #f8bd96;
--yellow: #fae3b0;
--green: #abe9b3;
--teal: #b5e8e0;
--blue: #96cdfb;
--sky: #89dceb;
--lavender: #c9cbff;
--rosewater: #f5e0dc;
--font: monospace; /*"FiraCode Nerd Font Mono";*/
/* vimium theme uses colors: flamingo, peach, rosewater, green, blue, lavender */
--tridactyl-fg: var(--fg);
--tridactyl-bg: var(--bg);
--tridactyl-url-fg: var(--rosewater);
--tridactyl-url-bg: var(--bg);
--tridactyl-highlight-box-bg: var(--currentline);
--tridactyl-highlight-box-fg: var(--fg);
--tridactyl-of-fg: var(--fg);
--tridactyl-of-bg: var(--currentline);
--tridactyl-cmdl-fg: var(--bg);
--tridactyl-cmdl-font-family: var(--font);
--tridactyl-cmplt-font-family: var(--font);
--tridactyl-hintspan-font-family: var(--font);
/* Hint character tags */
--tridactyl-hintspan-fg: var(--bg) !important;
--tridactyl-hintspan-bg: var(--green) !important;
/* Element Highlights */
--tridactyl-hint-active-fg: none;
--tridactyl-hint-active-bg: none;
--tridactyl-hint-active-outline: none;
--tridactyl-hint-bg: none;
--tridactyl-hint-outline: none;
}
#command-line-holder {
order: 1;
border: 2px solid var(--lavender);
background: var(--tridactyl-bg);
}
#tridactyl-input {
padding: 1rem;
color: var(--tridactyl-fg);
width: 90%;
font-size: 1.5rem;
line-height: 1.5;
background: var(--tridactyl-bg);
padding-left: unset;
padding: 1rem;
}
#completions table {
font-size: 0.8rem;
font-weight: 200;
border-spacing: 0;
table-layout: fixed;
padding: 1rem 0;
/* padding-top: 1rem; */
/* padding-bottom: 1rem; */
}
#completions > div {
max-height: calc(20 * var(--option-height));
min-height: calc(10 * var(--option-height));
}
/* COMPLETIONS */
#completions {
--option-height: 1.4em;
color: var(--tridactyl-fg);
background: var(--tridactyl-bg);
display: inline-block;
font-size: unset;
font-weight: 200;
overflow: hidden;
width: 100%;
border-top: unset;
order: 2;
}
/* Olie doesn't know how CSS inheritance works */
#completions .HistoryCompletionSource {
max-height: unset;
min-height: unset;
}
#completions .HistoryCompletionSource table {
width: 100%;
font-size: 9pt;
border-spacing: 0;
table-layout: fixed;
}
/* redundancy 2: redundancy 2: more redundancy */
#completions .BmarkCompletionSource {
max-height: unset;
min-height: unset;
}
#completions table tr td.prefix,
#completions table tr td.privatewindow,
#completions table tr td.container,
#completions table tr td.icon {
display: none;
}
#completions .BufferCompletionSource table {
width: unset;
font-size: unset;
border-spacing: unset;
table-layout: unset;
}
#completions table tr .title,
#completions table tr td.excmd {
width: 50%;
padding-left: 1rem;
color: var(--blue);
}
#completions table tr .content,
#completions table tr td.documentation {
padding-right: 1rem;
}
#completions table tr {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
#completions table tr td {
padding: 0.5rem 0;
}
#completions .sectionHeader {
background: unset;
font-weight: bold;
border-bottom: unset;
padding: 1rem 1rem 0 !important;
padding-left: unset;
padding-bottom: 0.2rem;
color: var(--peach);
}
#cmdline_iframe {
position: fixed !important;
bottom: unset;
top: 25% !important;
left: 10% !important;
z-index: 2147483647 !important;
width: 80% !important;
box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 20px !important;
}
.TridactylStatusIndicator {
position: fixed !important;
bottom: 0 !important;
background: var(--tridactyl-bg) !important;
border: unset !important;
border: 1px var(--purple) solid !important;
font-size: 12pt !important;
/*font-weight: 200 !important;*/
padding: 0.8ex !important;
}
#completions .focused {
background: var(--currentline);
/* color: var(--blue); */
font-weight: bold;
}
#completions .focused td.title {
color: var(--pink);
}
#completions .focused .url {
background: var(--currentline);
color: var(--green);
}

View file

@ -1,34 +1,72 @@
{
pkgs,
username,
...
}: {
}:
let
mkExtension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "normal_installed";
};
};
in
{
programs.firefox = {
enable = true;
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies = {
ExtensionSettings = {};
};
nativeMessagingHosts = [pkgs.tridactyl-native pkgs.fx-cast-bridge];
};
profiles.${username} = {
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
privacy-badger
ublock-origin
tridactyl
nativeMessagingHosts = [
pkgs.tridactyl-native
pkgs.vdhcoapp
];
settings = {
"browser.startup.homepage" = "https://google.it";
"browser.search.region" = "IT";
"browser.search.isUS" = false;
"distribution.searchplugins.defaultLocale" = "it-IT";
"general.useragent.locale" = "it-IT";
"browser.bookmarks.showMobileBookmarks" = true;
"browser.download.folderList" = 2;
"browser.download.lastDir" = "/home/${username}/Downloads/";
"browser.shell.checkDefaultBrowser" = false;
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
EmailTracking = true;
};
HardwareAcceleration = true;
FirefoxHome = {
TopSites = false;
SponsoredTopSites = false;
Highlights = false;
Pocket = false;
SponsoredPocket = false;
Snippets = false;
Locked = false;
};
FirefoxSuggest = {
WebSuggestions = true;
SponsoredSuggestions = false;
ImproveSuggest = false;
Locked = true;
};
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
HttpsOnlyMode = "force_enabled";
NoDefaultBookmarks = true;
OfferToSaveLogins = false;
OfferToSaveLoginsDefault = false;
PasswordManagerEnabled = true;
DefaultDownloadDirectory = "\${home}/Downloads";
PromptForDownloadLocation = false;
RequestedLocales = "en-US";
ExtensionSettings = builtins.listToAttrs [
(mkExtension "ublock-origin" "uBlock0@raymondhill.net")
(mkExtension "tridactyl-vim" "tridactyl.vim@cmcaine.co.uk")
(mkExtension "styl-us" "7a7a4a92-a2a0-41d1-9fd7-1e92480d612d")
];
};
profiles.default = {
search.force = true;
search.default = "google";
search.engines = {
"Searx" = {
urls = [
@ -44,11 +82,18 @@
];
};
};
extensions = [ ];
userChrome = builtins.readFile ./userchrome.css;
};
};
home.sessionVariables = {
MOZ_ENABLE_WAYLAND = 1;
XDG_CURRENT_DESKTOP = "sway";
NIXOS_OZONE_WL = 1;
xdg.configFile."tridactyl/tridactylrc".text = ''
set editorcmd emacsclient -c %f
colors catppuccin
'';
xdg.configFile."tridactyl/themes/catppuccin.css" = {
source = ./catppuccin.css;
};
}

View file

@ -0,0 +1,73 @@
/* * Do not remove the @namespace line -- it's required for correct functioning */
/* set default namespace to XUL */
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/* Remove Back button when there's nothing to go Back to */
#back-button[disabled="true"] {
display: none;
}
/* Remove Forward button when there's nothing to go Forward to */
#forward-button[disabled="true"] {
display: none;
}
/* Remove Home button (never use it) */
#home-button {
display: none;
}
.titlebar-spacer {
display: none !important;
}
/* Remove import bookmarks button */
#import-button {
display: none;
}
/* Remove bookmark toolbar */
toolbarbutton.bookmark-item:not(.subviewbutton) {
display: none;
}
/* Remove whitespace in toolbar */
#nav-bar toolbarpaletteitem[id^="wrapper-customizableui-special-spring"],
#nav-bar toolbarspring {
display: none;
}
/* Hide dumb Firefox View button */
#firefox-view-button {
visibility: hidden;
}
/* Hide Firefox tab icon */
.tab-icon-image {
display: none;
}
/* Linux stuff to keep GNOME system theme */
.titlebar-min {
appearance: auto !important;
-moz-default-appearance: -moz-window-button-minimize !important;
}
.titlebar-max {
appearance: auto !important;
-moz-default-appearance: -moz-window-button-maximize !important;
}
.titlebar-restore {
appearance: auto !important;
-moz-default-appearance: -moz-window-button-restore !important;
}
.titlebar-close {
appearance: auto !important;
-moz-default-appearance: -moz-window-button-close !important;
}
.titlebar-button {
list-style-image: none !important;
}

View file

@ -1,31 +1,66 @@
{lib, ...}: {
{
lib,
config,
...
}:
lib.mkMerge [
{
programs.foot = {
enable = true;
server.enable = true;
settings = {
main = {
term = "xterm-256color";
term = "xterm-direct";
login-shell = "yes";
# Using dpi-aware = "yes" font size is too small on my external monitor
# Scaling that output in sway is inefficient and make XWayland apps blurred
dpi-aware = "no";
font = let
size = "12";
horizontal-letter-offset = "1";
pad = "1x1";
font =
let
size = "13";
in
lib.mkForce (
lib.concatStringsSep ", " [
"Fira Code:size=${size}"
"Iosevka Comfy:size=${size}"
"Symbols Nerd Font:size=${size}"
"JoyPixels:size=${size}"
];
]
);
};
cursor = {
blink = true;
};
tweak = {
overflowing-glyphs = true;
};
key-bindings = {
scrollback-up-page = "Control+Shift+k";
scrollback-down-page = "Control+Shift+j";
search-start = "Control+Shift+s";
pipe-command-output = ''[sh -c 'f=$(mktemp); cat - > $f; footclient hx $f; rm $f'] Control+Shift+g'';
};
mouse = {
hide-when-typing = "yes";
};
colors = {
background = "282C34";
};
};
}
(lib.mkIf config.programs.fish.enable {
programs.fish.functions = {
mark_prompt_start = {
body = ''echo -en "\e]133;A\e\\"'';
onEvent = "fish_prompt";
};
}
foot_cmd_start = {
body = ''echo -en "\e]133;C\e\\"'';
onEvent = "fish_preexec";
};
foot_cmd_end = {
body = ''echo -en "\e]133;D\e\\"'';
onEvent = "fish_postexec";
};
};
})
]

View file

@ -0,0 +1,4 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.freecad-wayland ];
}

View file

@ -0,0 +1,4 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.gimp ];
}

View file

@ -2,7 +2,8 @@
age,
username,
...
}: {
}:
{
services.git-workspace = {
enable = true;
frequency = "04:00:00";

View file

@ -2,13 +2,21 @@
pkgs,
username,
...
}: let
}:
let
config = {
name = "Andrea Ciceri";
email = "andrea.ciceri@autistici.org";
};
in {
imports = [../gitui ../lazygit];
in
{
imports = [
../gitui
../lazygit
];
home.packages = [ pkgs.git-credential-manager ];
programs.git = {
enable = true;
package = pkgs.gitAndTools.gitFull;
@ -19,11 +27,18 @@ in {
rebase.autostash = true;
github.user = "aciceri";
user.signingKey = "/home/${username}/.ssh/id_rsa";
user.signingKey = "/home/${username}/.ssh/id_ed25519";
gpg.format = "ssh";
commit.gpgsign = true;
core.editor = "emacsclient";
credential.helper = "libsecret";
credential.credentialStore = "cache";
core = {
fsmonitor = true;
untrackedcache = true;
};
fetch.writeCommitGraph = true;
};
userName = config.name;
@ -32,7 +47,8 @@ in {
extraConfig.url = {
"ssh://git@github.com/".insteadOf = "https://github.com/";
# Workaround for https://github.com/rust-lang/cargo/issues/3381#issuecomment-1193730972
"https://github.com/rust-lang/crates.io-index".insteadOf = "https://github.com/rust-lang/crates.io-index";
"https://github.com/rust-lang/crates.io-index".insteadOf =
"https://github.com/rust-lang/crates.io-index";
"https://github.com/RustSec/advisory-db".insteadOf = "https://github.com/RustSec/advisory-db";
};

View file

@ -1,9 +1,9 @@
{
pkgs,
lib,
config,
...
}: {
}:
{
services.gnome-keyring = {
enable = false; # Is this broken? https://github.com/nix-community/home-manager/issues/1454
components = lib.mkForce [
@ -12,7 +12,7 @@
];
};
home.packages = [pkgs.gcr]; # Needed in PATH
home.packages = [ pkgs.gcr ]; # Needed in PATH
# Workaround
wayland.windowManager.hyprland.extraConfig = ''

View file

@ -1,25 +1,18 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
services.gpg-agent = {
enable = true;
enableSshSupport = true;
sshKeys = ["CE2FD0D9BECBD8876811714925066CC257413416"];
extraConfig = let
pinentryRofi = pkgs.writeShellApplication {
name = "pinentry-rofi-with-env";
runtimeInputs = with pkgs; [coreutils rofi];
text = ''
"${pkgs.pinentry-rofi}/bin/pinentry-rofi" "$@"
'';
pinentryPackage = pkgs.pinentry-rofi.override {
rofi = pkgs.rofi-wayland;
};
in ''
extraConfig = ''
allow-emacs-pinentry
allow-loopback-pinentry
pinentry-program ${pinentryRofi}/bin/pinentry-rofi-with-env
'';
};
programs.gpg = {
enable = true;
settings = {};
settings = { };
};
}

View file

@ -0,0 +1,19 @@
{
lib,
...
}:
let
originalConfig = config.wayland.windowManager.hyprland.extraConfig;
config = builtins.replaceStrings [ "SUPER" ] [ "" ] originalConfig;
in
{
systemd.user.services.headless-hyprland = {
Unit.Description = "Headless Hyprland";
Service = {
Type = "oneshot";
ExecStart = ''
${lib.getExe config.wayland.windowManager.hyprland.package} --config ${config}
'';
};
};
}

View file

@ -1,8 +1,16 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
zk
nixd
terraform-ls
python3Packages.python-lsp-server
nodePackages.typescript-language-server
];
programs.helix = {
enable = true;
settings = {
theme = "dracula";
editor = {
indent-guides.render = true;
cursor-shape = {
@ -10,7 +18,36 @@
normal = "block";
select = "underline";
};
color-modes = true;
true-color = true; # to make colors coherent when in ssh
# inline-diagnostic = {
# cursor-line = "hint";
# other-lines = "error";
# };
};
};
languages = {
language = [
{
name = "nix";
language-servers = [ "nixd" ];
formatter.command = "nixfmt";
}
{
name = "markdown";
language-servers = [ "zk" ];
}
{
name = "typescript";
language-servers = [ "vtsls" ];
}
];
language-server = {
nixd.command = "nixd";
zk = {
command = "zk";
args = [ "lsp" ];
};
};
};
};

View file

@ -3,15 +3,16 @@
pkgs,
lib,
...
}: let
screenshotScript = pkgs.writeShellScript "screenshot.sh" ''
}:
let
screenshotScript = pkgs.writeShellScriptBin "screenshot.sh" ''
filename="$HOME/shots/$(date --iso-8601=seconds).png"
coords="$(${pkgs.slurp}/bin/slurp)"
${pkgs.grim}/bin/grim -t png -g "$coords" "$filename"
wl-copy -t image/png < $filename
'';
hyprland = config.wayland.windowManager.hyprland.package;
switchMonitorScript = pkgs.writeShellScript "switch-monitor.sh" ''
switchMonitorScript = pkgs.writeShellScriptBin "switch-monitor.sh" ''
if [[ "$(${hyprland}/bin/hyprctl monitors) | grep '\sDP-[0-9]+'" ]]; then
if [[ $1 == "open" ]]; then
${hyprland}/bin/hyprctl keyword monitor "eDP-1,1920x1080,3760x230,1"
@ -20,19 +21,26 @@
fi
fi
'';
in {
in
{
imports = [
./hyprpaper.nix
../waybar
../swayidle
# ../mako
../swaync
../gammastep
# ../kitty
../wezterm
../swaync
../foot
];
home.packages = with pkgs; [wl-clipboard waypipe];
home.packages = with pkgs; [
wl-clipboard
waypipe
switchMonitorScript
screenshotScript
hyprpaper
fuzzel
brightnessctl
];
systemd.user.sessionVariables = {
NIXOS_OZONE_WL = "1";
@ -47,162 +55,41 @@ in {
gtk = {
enable = true;
font.name = "Sans,Symbols Nerd Font";
theme = {
name = "Catppuccin-GTK-Purple-Dark-Compact";
package = pkgs.magnetic-catppuccin-gtk.override {
accent = [ "purple" ];
shade = "dark";
size = "compact";
};
};
iconTheme = {
name = "Adwaita";
package = pkgs.gnome.adwaita-icon-theme;
package = pkgs.adwaita-icon-theme;
};
cursorTheme = {
name = "catppuccin-mocha-sapphire";
package = pkgs.catppuccin-cursors;
size = 38;
};
};
services.kanshi = {
home.file.".icons/catppuccin-mocha-sapphire" = {
source = "${pkgs.catppuccin-cursors.mochaSapphire}/share/icons/catppuccin-mocha-sapphire-cursors";
recursive = true;
};
qt = {
enable = true;
systemdTarget = "hyprland-session.target";
profiles = {
undocked = {
outputs = [
{
status = "enable";
criteria = "eDP-1";
}
];
};
docked = {
outputs = [
{
status = "disable";
criteria = "eDP-1";
}
{
status = "enable";
criteria = "DP-1";
}
];
};
};
};
wayland.windowManager.hyprland = {
enable = true;
extraConfig = ''
input {
touchpad {
disable_while_typing = true # set to true while playing
}
}
monitor = HDMI-A-1, 2560x1440, 0x0, 1 # picard
monitor = eDP-1, 1920x1080, 0x0, 1 # kirk
bindl=,switch:off:Lid Switch,exec,${switchMonitorScript} open
bindl=,switch:on:Lid Switch,exec,${switchMonitorScript} close
exec-once = ${pkgs.hyprpaper}/bin/hyprpaper
windowrulev2 = tile, class:^(Spotify)$
windowrulev2 = workspace 9, class:^(Spotify)$
windowrulev2 = tile, class:^(fluffychat)$
windowrulev2 = workspace 8, class:^(fluffychat)$
windowrulev2 = tile, class:^(WhatsApp for Linux)$
windowrulev2 = workspace 7, class:^(WhatsApp for Linux)$
windowrulev2 = float, title:^(floating)$
bind = SUPER, b, exec, firefox
bind = SUPER SHIFT, b , exec, ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet firefox
bind = SUPER SHIFT, RETURN, exec, ${config.programs.wezterm.package}/bin/wezterm ssh mothership.fleet
bind = SUPER, m, exec, ${config.programs.wezterm.package}/bin/wezterm start -- mosh mothership.fleet
bind = SUPER, t, exec, ${config.programs.wezterm.package}/bin/wezterm
bind = SUPER, RETURN, exec, emacsclient -c --eval "(ccr/start-eshell)"
bind = SUPER, x, exec, emacsclient -c
bind = SUPER SHIFT, n, exec, emacsclient --eval '(ccr/org-capture "n")' -c -F '((name . "floating"))'
bind = SUPER SHIFT, w, exec, emacsclient --eval '(ccr/org-capture "j")' -c -F '((name . "floating"))'
bind = SUPER, y, exec, ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh picard.fleet emacsclient -c
bind = SUPER, d, exec, ${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0
bind = SUPER, s, exec, ${screenshotScript}
bind = , XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl s +5%
bind = , XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl s 5%-
bind = SUPER, code:60, exec, ${pkgs.brightnessctl}/bin/brightnessctl s +5%
bind = SUPER, code:59, exec, ${pkgs.brightnessctl}/bin/brightnessctl s 5%-
bind = SUPER SHIFT, t, exec, ${config.services.swaync.package}/bin/swaync-client -t
bind = SUPER SHIFT, q, killactive
bind = SUPER SHIFT, f, fullscreen, 0
bind = SUPER SHIFT, e, exit
bind = SUPER, h, movefocus, l
bind = SUPER, l, movefocus, r
bind = SUPER, k, movefocus, u
bind = SUPER, j, movefocus, d
bind = SUPER SHIFT, h, movewindow, l
bind = SUPER SHIFT, l, movewindow, r
bind = SUPER SHIFT, k, movewindow, u
bind = SUPER SHIFT, j ,movewindow, d
bind = SUPER, p, movecurrentworkspacetomonitor, r
bind = SUPER, o, movecurrentworkspacetomonitor, l
bindm=ALT,mouse:272,movewindow
bind = SUPER, 1, workspace, 1
bind = SUPER, 2, workspace, 2
bind = SUPER, 3, workspace, 3
bind = SUPER, 4, workspace, 4
bind = SUPER, 5, workspace, 5
bind = SUPER, 6, workspace, 6
bind = SUPER, 7, workspace, 7
bind = SUPER, 8, workspace, 8
bind = SUPER, 9, workspace, 9
bind = SUPER, 0, workspace, 10
bind = SUPER SHIFT, 1, movetoworkspace, 1
bind = SUPER SHIFT, 2, movetoworkspace, 2
bind = SUPER SHIFT, 3, movetoworkspace, 3
bind = SUPER SHIFT, 4, movetoworkspace, 4
bind = SUPER SHIFT, 5, movetoworkspace, 5
bind = SUPER SHIFT, 6, movetoworkspace, 6
bind = SUPER SHIFT, 7, movetoworkspace, 7
bind = SUPER SHIFT, 8, movetoworkspace, 8
bind = SUPER SHIFT, 9, movetoworkspace, 9
bind = SUPER SHIFT, 0, movetoworkspace, 10
general {
gaps_in = 0
gaps_out = 0
border_size = 1
col.active_border = rgba(AF8D61FF) rgba(CEB153FF) rgba(7B8387FF) 45deg
col.inactive_border = rgba(AF8D6166)
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 2
# blur = true
# blur_size = 8
# blur_passes = 1
# blur_new_optimizations = true
drop_shadow = true
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(a8cfee11)
}
animations {
enabled = true
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 3, myBezier
animation = windowsOut, 1, 3, default, popin 80%
animation = border, 1, 5, default
animation = borderangle, 1, 4, default
animation = fade, 1, 3, default
animation = workspaces, 1, 3, default
}
'';
enable = false;
plugins = with pkgs.hyprlandPlugins; [
hy3
hyprspace
];
# TODO migrate to structured options
extraConfig = builtins.readFile ./hyprland.conf;
};
}

View file

@ -0,0 +1,190 @@
cursor {
hide_on_key_press = true
enable_hyprcursor = true
zoom_rigid = true
}
env = HYPRCURSOR_THEME,catppuccin-mocha-sapphire
env = HYPRCURSOR_SIZE,40
env = XCURSOR_THEME,catppuccin-mocha-sapphire
env = XCURSOR_SIZE,40
$mod = SUPER
input {
touchpad {
disable_while_typing = true # set to true while playing
}
}
monitor = HDMI-A-1, 2560x1440, 0x0, 1 # picard
monitor = eDP-1, 1920x1080, 0x0, 1, mirror, DP-1 # kirk
bindl=,switch:off:Lid Switch,exec,switch-monitor.sh open
bindl=,switch:on:Lid Switch,exec,switch-monitor.sh close
exec-once = hyprpaper
windowrulev2 = tile, class:^(Spotify)$
windowrulev2 = workspace 9, class:^(Spotify)$
windowrulev2 = float, title:^(floating)$
bind = $mod, b, exec, firefox
# bind = $mod, t, exec, footclient $SHELL -C "zellij"
bind = $mod, t, exec, footclient $SHELL
bind = $mod, RETURN, exec, emacsclient -c --eval "(ccr/start-eshell)"
bind = $mod, m, exec, emacsclient -c --eval '(notmuch-search "tag:new")'
bind = $mod, g, exec, emacsclient -c --eval '(switch-to-buffer (gptel "*ChatGPT*"))'
bind = $mod, c, exec, emacsclient -c --eval '(org-roam-dailies-capture-today)'
bind = $mod, d, exec, fuzzel --background-color=253559cc --border-radius=5 --border-width=0
bind = $mod, s, exec, screenshot.sh
bind = $mod, n, exec, logseq
bind = $mod, x, exec, emacsclient -c
bind = , XF86MonBrightnessUp, exec, brightnessctl s +5%
bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%-
bind = $mod, code:60, exec, brightnessctl s +5%
bind = $mod, code:59, exec, brightnessctl s 5%-
bind = $mod SHIFT, t, hy3:makegroup, tab, ephemeral
bind = $mod SHIFT, q, killactive
bind = $mod SHIFT, f, fullscreen, 0
bind = $mod SHIFT, e, exit
bind = $mod, h, hy3:movefocus, l
bind = $mod, l, hy3:movefocus, r
bind = $mod, k, hy3:movefocus, u
bind = $mod, j, hy3:movefocus, d
bind = $mod SHIFT, h, hy3:movewindow, l
bind = $mod SHIFT, l, hy3:movewindow, r
bind = $mod SHIFT, k, hy3:movewindow, u
bind = $mod SHIFT, j ,hy3:movewindow, d
bind = $mod, v, hy3:makegroup, v
bind = $mod SHIFT, v, hy3:makegroup, h
bind = $mod, p, movecurrentworkspacetomonitor, r
bind = $mod, o, movecurrentworkspacetomonitor, l
bindm=ALT,mouse:272,hy3:movewindow
bind = $mod, 1, workspace, 1
bind = $mod, 2, workspace, 2
bind = $mod, 3, workspace, 3
bind = $mod, 4, workspace, 4
bind = $mod, 5, workspace, 5
bind = $mod, 6, workspace, 6
bind = $mod, 7, workspace, 7
bind = $mod, 8, workspace, 8
bind = $mod, 9, workspace, 9
bind = $mod, 0, workspace, 10
bind = $mod SHIFT, 1, movetoworkspace, 1
bind = $mod SHIFT, 2, movetoworkspace, 2
bind = $mod SHIFT, 3, movetoworkspace, 3
bind = $mod SHIFT, 4, movetoworkspace, 4
bind = $mod SHIFT, 5, movetoworkspace, 5
bind = $mod SHIFT, 6, movetoworkspace, 6
bind = $mod SHIFT, 7, movetoworkspace, 7
bind = $mod SHIFT, 8, movetoworkspace, 8
bind = $mod SHIFT, 9, movetoworkspace, 9
bind = $mod SHIFT, 0, movetoworkspace, 10
general {
layout = hy3
gaps_in = 8
gaps_out = 5
}
decoration {
rounding = 8
# drop_shadow = true
# shadow_range = 4
# shadow_render_power = 3
# col.shadow = rgba(a8cfee11)
}
animations {
enabled = true
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 3, myBezier
animation = windowsOut, 1, 3, default, popin 80%
animation = border, 1, 5, default
animation = borderangle, 1, 4, default
animation = fade, 1, 3, default
animation = workspaces, 1, 3, default
}
plugin {
hy3 {
# disable gaps when only one window is onscreen
# 0 - always show gaps
# 1 - hide gaps with a single window onscreen
# 2 - 1 but also show the window border
no_gaps_when_only = 0 # default: 0
# policy controlling what happens when a node is removed from a group,
# leaving only a group
# 0 = remove the nested group
# 1 = keep the nested group
# 2 = keep the nested group only if its parent is a tab group
node_collapse_policy = 2 # default: 2
# offset from group split direction when only one window is in a group
group_inset = 0 # default: 10
# if a tab group will automatically be created for the first window spawned in a workspace
tab_first_window = false
# tab group settings
tabs {
# height of the tab bar
height = 20
# padding between the tab bar and its focused node
padding = 10
# the tab bar should animate in/out from the top instead of below the window
from_top = false
# rounding of tab bar corners
rounding = 4
# render the window title on the bar
render_text = true
# center the window title
text_center = true
# font to render the window title with
text_font = Fira Code
# height of the window title
text_height = 14
# left padding of the window title
text_padding = 4
# active tab bar segment color
# col.active = <color> # default: 0xff32b4ff
# urgent tab bar segment color
# col.urgent = <color> # default: 0xffff4f4f
# inactive tab bar segment color
# col.inactive = <color> # default: 0x80808080
# active tab bar text color
# col.text.active = <color> # default: 0xff000000
# urgent tab bar text color
# col.text.urgent = <color> # default: 0xff000000
# inactive tab bar text color
# col.text.inactive = <color> # default: 0xff000000
}
}
}

View file

@ -1,7 +1,9 @@
let
wallpaper = ./wallpaper.png;
in {
in
{
xdg.configFile."hypr/hyprpaper.conf".text = ''
splash = false
preload = ${wallpaper}
wallpaper = eDP-1,${wallpaper}
wallpaper = DP-1,${wallpaper}

View file

@ -0,0 +1,4 @@
{ fleetFlake, pkgs, ... }:
{
home.packages = [ fleetFlake.packages.${pkgs.system}.ib-tws ];
}

View file

@ -0,0 +1,3 @@
{
programs.imv.enable = true;
}

View file

@ -1,3 +1,4 @@
{pkgs, ...}: {
home.packages = [pkgs.kicad-small];
{ pkgs, ... }:
{
home.packages = [ pkgs.kicad-small ];
}

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ ... }:
{
programs.kitty = {
enable = true;
font = {

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
programs.lazygit = {
enable = true;
settings = {

View file

@ -0,0 +1,4 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.libreoffice ];
}

View file

@ -0,0 +1,15 @@
{ pkgs, lib, ... }:
let
logseq = pkgs.appimageTools.wrapType2 {
name = "logseq";
version = "nightly-20240909";
src = pkgs.fetchurl {
url = "https://github.com/logseq/logseq/releases/download/nightly/Logseq-linux-x64-0.10.10-alpha+nightly.20240909.AppImage";
hash = "sha256-Hy/zk8ZCkWajsMRUMsewLvkKpMpsBZYnFootPU9y6Z0=";
};
};
logseq-wayland = pkgs.writeScriptBin "logseq" "${lib.getExe' logseq "logseq"} --enable-features=UseOzonePlatform --ozone-platform=wayland";
in
{
home.packages = [ logseq-wayland ];
}

View file

@ -1,3 +1,4 @@
{pkgs, ...}: {
home.packages = [pkgs.lutris];
{ pkgs, ... }:
{
home.packages = [ pkgs.lutris ];
}

View file

@ -1,3 +1,4 @@
{pkgs, ...}: {
home.packages = [pkgs.monero-gui];
{ pkgs, ... }:
{
home.packages = [ pkgs.monero-gui ];
}

View file

@ -1,3 +1,4 @@
{pkgs, ...}: {
home.packages = [pkgs.moonlight-qt];
{ pkgs, ... }:
{
home.packages = [ pkgs.moonlight-qt ];
}

View file

@ -1,5 +1,6 @@
# TODO: use upstream ytmusic when updated: https://github.com/OzymandiasTheGreat/mopidy-ytmusic/issues/68
{pkgs, ...}: let
{ pkgs, ... }:
let
ytmusicapi = pkgs.python310Packages.buildPythonPackage rec {
pname = "ytmusicapi";
version = "0.24.0";
@ -38,14 +39,20 @@
python310Packages.pytube
];
pythonImportsCheck = ["mopidy_ytmusic"];
pythonImportsCheck = [ "mopidy_ytmusic" ];
doCheck = false;
};
in {
in
{
services.mopidy = {
enable = true;
extensionPackages = [mopidy-ytmusic] ++ (with pkgs; [mopidy-mpd mopidy-mpris]);
extensionPackages =
[ mopidy-ytmusic ]
++ (with pkgs; [
mopidy-mpd
mopidy-mpris
]);
settings = {
mpd = {
enabled = true;

View file

@ -1,5 +1,6 @@
{pkgs, ...}: {
home.packages = [pkgs.nheko];
{ pkgs, ... }:
{
home.packages = [ pkgs.nheko ];
# systemd.user.services.nheko = {
# Install.WantedBy = ["graphical-session.target"];

580
hmModules/niri/config.kdl Normal file
View file

@ -0,0 +1,580 @@
// This config is in the KDL format: https://kdl.dev
// "/-" comments out the following node.
// Check the wiki for a full description of the configuration:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Overview
// Input device configuration.
// Find the full list of options on the wiki:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Input
input {
keyboard {
xkb {
layout "us"
// options "grp:win_space_toggle,compose:ralt,ctrl:nocaps"
}
}
// Next sections include libinput settings.
// Omitting settings disables them, or leaves them at their default values.
touchpad {
// off
tap
// dwt
// dwtp
natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "two-finger"
// disabled-on-external-mouse
}
mouse {
// off
// natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "no-scroll"
}
trackpoint {
// off
// natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "on-button-down"
// scroll-button 273
// middle-emulation
}
// Uncomment this to make the mouse warp to the center of newly focused windows.
warp-mouse-to-focus
// Focus windows and outputs automatically when moving the mouse into them.
// Setting max-scroll-amount="0%" makes it work only on windows already fully on screen.
focus-follows-mouse max-scroll-amount="0%"
}
cursor {
xcursor-theme "catppuccin-mocha-sapphire"
xcursor-size 38
hide-when-typing
hide-after-inactive-ms 10000
}
spawn-at-startup "xwayland-satellite"
environment {
QT_QPA_PLATFORM "wayland"
DISPLAY ":0"
}
hotkey-overlay {
skip-at-startup
}
// You can configure outputs by their name, which you can find
// by running `niri msg outputs` while inside a niri instance.
// The built-in laptop monitor is usually called "eDP-1".
// Find more information on the wiki:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs
// Remember to uncomment the node by removing "/-"!
output "eDP-1" {
// Uncomment this line to disable this output.
// off
// Resolution and, optionally, refresh rate of the output.
// The format is "<width>x<height>" or "<width>x<height>@<refresh rate>".
// If the refresh rate is omitted, niri will pick the highest refresh rate
// for the resolution.
// If the mode is omitted altogether or is invalid, niri will pick one automatically.
// Run `niri msg outputs` while inside a niri instance to list all outputs and their modes.
mode "1920x1080@59.999"
// You can use integer or fractional scale, for example use 1.5 for 150% scale.
scale 1.1
// Transform allows to rotate the output counter-clockwise, valid values are:monitor
// normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270.
transform "normal"
// Position of the output in the global coordinate space.
// This affects directional monitor actions like "focus-monitor-left", and cursor movement.
// The cursor can only move between directly adjacent outputs.
// Output scale and rotation has to be taken into account for positioning:
// outputs are sized in logical, or scaled, pixels.
// For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080,
// so to put another output directly adjacent to it on the right, set its x to 1920.
// If the position is unset or results in an overlap, the output is instead placed
// automatically.
// position x=1280 y=0
}
output "Dell Inc. DELL U2515H 9X2VY5170PJL" {
mode "2560x1440@59.951"
scale 1
transform "normal"
}
// Settings that influence how windows are positioned and sized.
// Find more information on the wiki:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Layout
layout {
// Set gaps around windows in logical pixels.
gaps 16
// When to center a column when changing focus, options are:
// - "never", default behavior, focusing an off-screen column will keep at the left
// or right edge of the screen.
// - "always", the focused column will always be centered.
// - "on-overflow", focusing a column will center it if it doesn't fit
// together with the previously focused column.
center-focused-column "never"
// You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
preset-column-widths {
// Proportion sets the width as a fraction of the output width, taking gaps into account.
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
proportion 0.33333
proportion 0.5
proportion 0.66667
// Fixed sets the width in logical pixels exactly.
// fixed 1920
}
// You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between.
// preset-window-heights { }
// You can change the default width of the new windows.
default-column-width { proportion 0.5; }
// If you leave the brackets empty, the windows themselves will decide their initial width.
// default-column-width {}
// By default focus ring and border are rendered as a solid background rectangle
// behind windows. That is, they will show up through semitransparent windows.
// This is because windows using client-side decorations can have an arbitrary shape.
//
// If you don't like that, you should uncomment `prefer-no-csd` below.
// Niri will draw focus ring and border *around* windows that agree to omit their
// client-side decorations.
//
// Alternatively, you can override it with a window rule called
// `draw-border-with-background`.
// You can change how the focus ring looks.
focus-ring {
// Uncomment this line to disable the focus ring.
// off
// How many logical pixels the ring extends out from the windows.
width 2
// Colors can be set in a variety of ways:
// - CSS named colors: "red"
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
// Color of the ring on the active monitor.
active-color "#7fc8ff"
// Color of the ring on inactive monitors.
inactive-color "#505050"
// You can also use gradients. They take precedence over solid colors.
// Gradients are rendered the same as CSS linear-gradient(angle, from, to).
// The angle is the same as in linear-gradient, and is optional,
// defaulting to 180 (top-to-bottom gradient).
// You can use any CSS linear-gradient tool on the web to set these up.
// Changing the color space is also supported, check the wiki for more info.
//
// active-gradient from="#80c8ff" to="#bbddff" angle=45
// You can also color the gradient relative to the entire view
// of the workspace, rather than relative to just the window itself.
// To do that, set relative-to="workspace-view".
//
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
}
// You can also add a border. It's similar to the focus ring, but always visible.
border {
// The settings are the same as for the focus ring.
// If you enable the border, you probably want to disable the focus ring.
off
width 4
active-color "#ffc87f"
inactive-color "#505050"
// active-gradient from="#ffbb66" to="#ffc880" angle=45 relative-to="workspace-view"
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
}
// Struts shrink the area occupied by windows, similarly to layer-shell panels.
// You can think of them as a kind of outer gaps. They are set in logical pixels.
// Left and right struts will cause the next window to the side to always be visible.
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
// layer-shell panels and regular gaps.
struts {
// left 64
// right 64
// top 64
// bottom 64
}
shadow {
on
}
}
layer-rule {
match namespace="^rofi$"
shadow {
on
}
}
// Add lines like this to spawn processes at startup.
// Note that running niri as a session supports xdg-desktop-autostart,
// which may be more convenient to use.
// See the binds section below for more spawn examples.
spawn-at-startup "waypaper" "--wallpaper" "~/.config/niri/wallpaper.png"
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
// If the client will specifically ask for CSD, the request will be honored.
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
// This option will also fix border/focus ring drawing behind some semitransparent windows.
// After enabling or disabling this, you need to restart the apps for this to take effect.
prefer-no-csd
// You can change the path where screenshots are saved.
// A ~ at the front will be expanded to the home directory.
// The path is formatted with strftime(3) to give you the screenshot date and time.
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
// You can also set this to null to disable saving screenshots to disk.
// screenshot-path null
// Animation settings.
// The wiki explains how to configure individual animations:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Animations
animations {
// Uncomment to turn off all animations.
// off
// Slow down all animations by this factor. Values below 1 speed them up instead.
// slowdown 3.0
}
// Window rules let you adjust behavior for individual windows.
// Find more information on the wiki:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules
// Work around WezTerm's initial configure bug
// by setting an empty default-column-width.
window-rule {
// This regular expression is intentionally made as specific as possible,
// since this is the default config, and we want no false positives.
// You can get away with just app-id="wezterm" if you want.
match app-id=r#"^org\.wezfurlong\.wezterm$"#
default-column-width {}
}
// Example: block out two password managers from screen capture.
// (This example rule is commented out with a "/-" in front.)
/-window-rule {
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
match app-id=r#"^org\.gnome\.World\.Secrets$"#
block-out-from "screen-capture"
// Use this instead if you want them visible on third-party screenshot tools.
// block-out-from "screencast"
}
window-rule {
geometry-corner-radius 4
clip-to-geometry true
}
window-rule {
match app-id=r#"^spotify$"#
open-maximized true
open-on-workspace "spotify"
}
window-rule {
match app-id=r#"^Slack$"#
open-maximized true
}
window-rule {
match app-id=r#"^Element"#
open-maximized true
}
window-rule {
match title=r#"^Emacs Selector$"#
opacity 0.95
open-floating true
open-focused true
}
window-rule {
match title=r#"^bTop$"#
opacity 0.95
open-floating true
open-focused true
}
window-rule {
match title=r#"^GPTel - Emacs$"#
opacity 0.95
open-floating true
open-focused true
}
window-rule {
match title=r#"^Authentication Required"#
open-floating true
open-focused true
}
binds {
// Keys consist of modifiers separated by + signs, followed by an XKB key name
// in the end. To find an XKB name for a particular key, you may use a program
// like wev.
//
// "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
// when running as a winit window.
//
// Most actions that you can bind here can also be invoked programmatically with
// `niri msg action do-something`.
// Mod-Shift-/, which is usually the same as Mod-?,
// shows a list of important hotkeys.
Mod+Shift+Slash { show-hotkey-overlay; }
// Suggested binds for running programs: terminal, app launcher, screen locker.
Mod+T { spawn "footclient"; }
Mod+D { spawn "rofi" "-show" "drun"; }
Mod+W { spawn "rofi" "-show" "window"; }
Mod+P { spawn "rofi-pass" "--clip"; }
Mod+X { spawn "emacsclient" "-c"; }
Mod+B { spawn "firefox"; }
Mod+RETURN { spawn "emacsclient" "-c" "--eval" "(ccr/start-eshell)"; }
Mod+M { spawn "emacsclient" "-c" "--eval" "(notmuch-search \"tag:new\")"; }
// Mod+G { spawn "emacsclient" "-c" "--eval" "(switch-to-buffer (gptel \"*ChatGPT*\"))" "-F" "((name . \"GPTel - Emacs\") (width . $NIRI_GPTEL_COLS) (height . $NIRI_GPTEL_ROWS))'"; }
Mod+G { spawn "run-floating-gptel"; }
Mod+Shift+C { spawn "emacsclient" "-c" "--eval" "(org-roam-dailies-capture-today)"; }
Mod+Alt+L { spawn "swaylock"; }
Mod+Space { spawn "rofi" "-show" "menu" "-modi" "menu:rofi-power-menu"; }
// Mod+Ctrl+b { spawn "foot" "--title='bTop'" "-W" "$NIRI_BTOP_COLSx$NIRI_BTOP_ROWS" "btop";}
Mod+Ctrl+b { spawn "run-floating-btop"; }
// Example volume keys mappings for PipeWire & WirePlumber.
// The allow-when-locked=true property makes them work even when the session is locked.
XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; }
XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
Mod+Shift+period { spawn "brightnessctl" "s" "5%+"; }
Mod+Shift+comma { spawn "brightnessctl" "s" "5%-"; }
Mod+XF86MonBrightnessUp { spawn "brightnessctl" "s" "5%+"; }
Mod+XF86MonBrightnessDown { spawn "brightnessctl" "s" "5%-"; }
Mod+Q { close-window; }
Mod+Left { focus-column-left; }
Mod+Down { focus-window-down; }
Mod+Up { focus-window-up; }
Mod+Right { focus-column-right; }
Mod+H { focus-column-left; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
Mod+Ctrl+Left { move-column-left; }
Mod+Ctrl+Down { move-window-down; }
Mod+Ctrl+Up { move-window-up; }
Mod+Ctrl+Right { move-column-right; }
Mod+Ctrl+H { move-column-left; }
Mod+Ctrl+J { move-window-down; }
Mod+Ctrl+K { move-window-up; }
Mod+Ctrl+L { move-column-right; }
// Alternative commands that move across workspaces when reaching
// the first or last window in a column.
// Mod+J { focus-window-or-workspace-down; }
// Mod+K { focus-window-or-workspace-up; }
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
Mod+Home { focus-column-first; }
Mod+End { focus-column-last; }
Mod+Ctrl+Home { move-column-to-first; }
Mod+Ctrl+End { move-column-to-last; }
Mod+Shift+Left { focus-monitor-left; }
Mod+Shift+Down { focus-monitor-down; }
Mod+Shift+Up { focus-monitor-up; }
Mod+Shift+Right { focus-monitor-right; }
Mod+Shift+H { focus-monitor-left; }
Mod+Shift+J { focus-monitor-down; }
Mod+Shift+K { focus-monitor-up; }
Mod+Shift+L { focus-monitor-right; }
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
// Alternatively, there are commands to move just a single window:
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
// ...
// And you can also move a whole workspace to another monitor:
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
// ...
Mod+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+U { focus-workspace-down; }
Mod+I { focus-workspace-up; }
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
Mod+Ctrl+U { move-column-to-workspace-down; }
Mod+Ctrl+I { move-column-to-workspace-up; }
// Alternatively, there are commands to move just a single window:
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
// ...
Mod+Shift+Page_Down { move-workspace-down; }
Mod+Shift+Page_Up { move-workspace-up; }
Mod+Shift+U { move-workspace-down; }
Mod+Shift+I { move-workspace-up; }
// You can bind mouse wheel scroll ticks using the following syntax.
// These binds will change direction based on the natural-scroll setting.
//
// To avoid scrolling through workspaces really fast, you can use
// the cooldown-ms property. The bind will be rate-limited to this value.
// You can set a cooldown on any bind, but it's most useful for the wheel.
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
Mod+WheelScrollRight { focus-column-right; }
Mod+WheelScrollLeft { focus-column-left; }
Mod+Ctrl+WheelScrollRight { move-column-right; }
Mod+Ctrl+WheelScrollLeft { move-column-left; }
// Usually scrolling up and down with Shift in applications results in
// horizontal scrolling; these binds replicate that.
Mod+Shift+WheelScrollDown { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; }
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
// Similarly, you can bind touchpad scroll "ticks".
// Touchpad scrolling is continuous, so for these binds it is split into
// discrete intervals.
// These binds are also affected by touchpad's natural-scroll, so these
// example binds are "inverted", since we have natural-scroll enabled for
// touchpads by default.
// Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; }
// Mod+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; }
// You can refer to workspaces by index. However, keep in mind that
// niri is a dynamic workspace system, so these commands are kind of
// "best effort". Trying to refer to a workspace index bigger than
// the current workspace count will instead refer to the bottommost
// (empty) workspace.
//
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
// will all refer to the 3rd workspace.
Mod+1 { focus-workspace 1; }
Mod+2 { focus-workspace 2; }
Mod+3 { focus-workspace 3; }
Mod+4 { focus-workspace 4; }
Mod+5 { focus-workspace 5; }
Mod+6 { focus-workspace 6; }
Mod+7 { focus-workspace 7; }
Mod+8 { focus-workspace 8; }
Mod+9 { focus-workspace 9; }
Mod+Ctrl+1 { move-column-to-workspace 1; }
Mod+Ctrl+2 { move-column-to-workspace 2; }
Mod+Ctrl+3 { move-column-to-workspace 3; }
Mod+Ctrl+4 { move-column-to-workspace 4; }
Mod+Ctrl+5 { move-column-to-workspace 5; }
Mod+Ctrl+6 { move-column-to-workspace 6; }
Mod+Ctrl+7 { move-column-to-workspace 7; }
Mod+Ctrl+8 { move-column-to-workspace 8; }
Mod+Ctrl+9 { move-column-to-workspace 9; }
// Alternatively, there are commands to move just a single window:
// Mod+Ctrl+1 { move-window-to-workspace 1; }
// Switches focus between the current and the previous workspace.
// Mod+Tab { focus-workspace-previous; }
// Consume one window from the right into the focused column.
Mod+Comma { consume-window-into-column; }
// Expel one window from the focused column to the right.
Mod+Period { expel-window-from-column; }
// There are also commands that consume or expel a single window to the side.
Mod+BracketLeft { consume-or-expel-window-left; }
Mod+BracketRight { consume-or-expel-window-right; }
Mod+R { switch-preset-column-width; }
Mod+Shift+R { switch-preset-window-height; }
Mod+Ctrl+R { reset-window-height; }
Mod+F { maximize-column; }
Mod+Shift+F { fullscreen-window; }
Mod+C { center-column; }
// Finer width adjustments.
// This command can also:
// * set width in pixels: "1000"
// * adjust width in pixels: "-5" or "+5"
// * set width as a percentage of screen width: "25%"
// * adjust width as a percentage of screen width: "-10%" or "+10%"
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
// set-column-width "100" will make the column occupy 200 physical screen pixels.
Mod+Minus { set-column-width "-10%"; }
Mod+Equal { set-column-width "+10%"; }
// Finer height adjustments when in column with other windows.
Mod+Shift+Minus { set-window-height "-10%"; }
Mod+Shift+Equal { set-window-height "+10%"; }
// Actions to switch layouts.
// Note: if you uncomment these, make sure you do NOT have
// a matching layout switch hotkey configured in xkb options above.
// Having both at once on the same hotkey will break the switching,
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
// Mod+Space { switch-layout "next"; }
// Mod+Shift+Space { switch-layout "prev"; }
Mod+S { screenshot; }
Mod+Ctrl+S { screenshot-window; }
// The quit action will show a confirmation dialog to avoid accidental exits.
Mod+Shift+E { quit; }
Ctrl+Alt+Delete { quit; }
// Powers off the monitors. To turn them back on, do any input like
// moving the mouse or pressing any other key.
Mod+Shift+P { power-off-monitors; }
}

284
hmModules/niri/default.nix Normal file
View file

@ -0,0 +1,284 @@
{
pkgs,
lib,
config,
hostname,
...
}:
let
niriVars =
{
picard = {
floating-gptel = {
rows = "60";
cols = "150";
};
floating-btop = {
rows = "60";
cols = "210";
};
};
kirk = {
floating-gptel = {
rows = "40";
cols = "140";
};
floating-btop = {
rows = "40";
cols = "140";
};
};
}
."${hostname}" or {
floating-gptel = {
rows = "40";
cols = "140";
};
floating-btop = {
rows = "40";
cols = "140";
};
};
run-floating-gptel =
with niriVars.floating-gptel;
pkgs.writeScriptBin "run-floating-gptel" ''
emacsclient -c --eval '(switch-to-buffer (gptel "*GptEl*"))' -F '((name . "GPTel - Emacs") (width . ${cols}) (height . ${rows}))'
'';
run-floating-btop =
with niriVars.floating-btop;
pkgs.writeScriptBin "run-floating-btop" ''
foot --title='bTop' -W ${cols}x${rows} btop
'';
in
{
home.packages = with pkgs; [
niri
waypaper
xwayland-satellite
run-floating-gptel
run-floating-btop
];
systemd.user.targets.niri-session = {
Unit = {
Description = "Niri session";
BindsTo = [ "graphical-session.target" ];
Wants = [
"graphical-session-pre.target"
"xdg-desktop-autostart.target"
];
After = [ "graphical-session-pre.target" ];
Before = [ "xdg-desktop-autostart.target" ];
};
};
home.file."${config.xdg.configHome}/niri/wallpaper.png" = {
source = ../hyprland/wallpaper.png;
};
home.activation.linkNiriConfig = lib.hm.dag.entryAnywhere ''
if [ ! -e "$HOME/.config/niri/config.kdl" ]; then
$DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/niri/config.kdl" "$HOME/.config/niri/config.kdl"
fi
'';
home.sessionVariables = {
DISPLAY = ":0";
QT_QPA_PLATFORM = "wayland";
};
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
theme =
let
inherit (config.lib.formats.rasi) mkLiteral;
cfg = config.catppuccin.fzf;
palette = (lib.importJSON "${config.catppuccin.sources.palette}/palette.json").${cfg.flavor}.colors;
selectColor = color: palette.${color}.hex;
in
lib.mkForce {
"*" = {
# blue = mkLiteral "#0000FF";
# white = mkLiteral "#FFFFFF";
# black = mkLiteral "#000000";
# grey = mkLiteral "#eeeeee";
blue = mkLiteral (selectColor "blue");
white = mkLiteral "#FFFFFF";
black = mkLiteral "#000000";
grey = mkLiteral "#eeeeee";
spacing = 2;
background-color = mkLiteral "#00000000";
border-color = mkLiteral "#444444FF";
anchor = mkLiteral "north";
location = mkLiteral "center";
};
"window" = {
transparency = "real";
background-color = mkLiteral "#00000000";
border = 0;
padding = mkLiteral "0% 0% 1em 0%";
x-offset = 0;
y-offset = mkLiteral "-10%";
};
"mainbox" = {
padding = mkLiteral "0px";
border = 0;
spacing = mkLiteral "1%";
};
"message" = {
border = 0;
border-radius = mkLiteral "4px";
padding = mkLiteral "1em";
background-color = mkLiteral "@white";
text-color = mkLiteral "@black";
};
"textbox normal" = {
text-color = mkLiteral "#002B36FF";
padding = 0;
border = 0;
};
"listview" = {
fixed-height = 1;
border = 0;
padding = mkLiteral "1em";
reverse = false;
border-radius = mkLiteral "4px";
columns = 1;
background-color = mkLiteral "@white";
};
"element" = {
border = 0;
padding = mkLiteral "2px";
highlight = mkLiteral "bold";
};
"element-text" = {
background-color = mkLiteral "inherit";
text-color = mkLiteral "inherit";
};
"element normal.normal" = {
text-color = mkLiteral "#002B36FF";
background-color = mkLiteral "#F5F5F500";
};
"element normal.urgent" = {
text-color = mkLiteral "#D75F00FF";
background-color = mkLiteral "#F5F5F5FF";
};
"element normal.active" = {
text-color = mkLiteral "#005F87FF";
background-color = mkLiteral "#F5F5F5FF";
};
"element selected.normal" = {
text-color = mkLiteral "#F5F5F5FF";
background-color = mkLiteral "#4271AEFF";
};
"element selected.urgent" = {
text-color = mkLiteral "#F5F5F5FF";
background-color = mkLiteral "#D75F00FF";
};
"element selected.active" = {
text-color = mkLiteral "#F5F5F5FF";
background-color = mkLiteral "#005F87FF";
};
"element alternate.normal" = {
text-color = mkLiteral "#002B36FF";
background-color = mkLiteral "#D0D0D0FF";
};
"element alternate.urgent" = {
text-color = mkLiteral "#D75F00FF";
background-color = mkLiteral "#D0D0D0FF";
};
"element alternate.active" = {
text-color = mkLiteral "#005F87FF";
background-color = mkLiteral "#D0D0D0FF";
};
"scrollbar" = {
border = 0;
padding = 0;
};
"inputbar" = {
spacing = 0;
border = 0;
padding = mkLiteral "0.5em 1em";
background-color = mkLiteral "@grey";
index = 0;
border-radius = mkLiteral "4px";
children = map mkLiteral [
"prompt"
"textbox-prompt-colon"
"entry"
"case-indicator"
];
};
"inputbar normal" = {
foreground-color = mkLiteral "#002B36FF";
background-color = mkLiteral "#F5F5F500";
};
"mode-switcher" = {
border = 0;
padding = mkLiteral "0.5em 1em";
background-color = mkLiteral "@grey";
index = 10;
};
"button selected" = {
text-color = mkLiteral "#4271AEFF";
};
"textbox-prompt-colon" = {
expand = false;
str = ":";
margin = mkLiteral "0px 0.3em 0em 0em";
text-color = mkLiteral "@black";
};
"error-message" = {
border = 0;
border-radius = mkLiteral "4px";
padding = mkLiteral "1em";
background-color = mkLiteral "#FF8888";
text-color = mkLiteral "@black";
};
};
extraConfig = {
modi = "drun,window,ssh";
combi-modes = [
"drun"
"window"
"ssh"
];
};
font = "Iosevka Comfy 12";
terminal = "footclient";
pass = {
enable = true;
package = pkgs.rofi-pass-wayland;
};
plugins = [ pkgs.rofi-calc ];
};
}

View file

@ -1,24 +1,27 @@
{
config,
pkgs,
fleetFlake,
lib,
...
}: {
}:
{
programs.nix-index.enable = true;
systemd.user.services.nix-index-update = {
Unit = {Description = "Update nix-index";};
Unit = {
Description = "Update nix-index";
};
Service = {
CPUSchedulingPolicy = "idle";
IOSchedulingClass = "idle";
ExecStart = "${pkgs.nix-index}/bin/nix-index --nixpkgs ${fleetFlake.inputs.nixpkgsUnstable}";
ExecStart = "${pkgs.nix-index}/bin/nix-index --nixpkgs ${fleetFlake.inputs.nixpkgs}";
};
};
systemd.user.timers.nix-index-update = {
Unit = {Description = "Update nix-index";};
Unit = {
Description = "Update nix-index";
};
Timer = {
Unit = "nix-index-update.service";
@ -26,6 +29,8 @@
Persistent = true;
};
Install = {WantedBy = ["timers.target"];};
Install = {
WantedBy = [ "timers.target" ];
};
};
}

View file

@ -1,6 +1,10 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
programs.obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [wlrobs input-overlay];
plugins = with pkgs.obs-studio-plugins; [
wlrobs
input-overlay
];
};
}

View file

@ -1,3 +1,4 @@
{pkgs, ...}: {
home.packages = [pkgs.openscad];
{ pkgs, ... }:
{
home.packages = [ pkgs.openscad ];
}

View file

@ -1,13 +1,27 @@
{ pkgs, lib, ... }:
{
services.pantalaimon = {
enable = true;
package = pkgs.pantalaimon.overrideAttrs {
pytestCheckPhase = "echo skip pytest";
};
settings = {
Default = {
LogLevel = "Debug";
SSL = true;
};
local-matrix = {
Homeserver = "https://nixos.dev";
ListenAddress = "127.0.0.1";
Homeserver = "https://matrix.aciceri.dev";
# Homeserver = "https://matrix.nixos.dev/_matrix/client";
# Homeserver = "https://matrix.nixos.dev";
ListenAddress = "localhost";
ListenPort = 8008;
# SSL = false;
UseKeyring = false;
# IgnoreVerification = true;
};
};
};
systemd.user.services.pantalaimon.Unit.Requires = ["dbus.socket"];
systemd.user.services.pantalaimon.Unit.Requires = [ "dbus.socket" ];
}

View file

@ -2,12 +2,22 @@
pkgs,
username,
...
}: {
}:
let
fzfpass = pkgs.writeShellApplication {
name = "fzfpass";
text = ''
find "$PASSWORD_STORE_DIR" -name "*.gpg" | sed "s|$PASSWORD_STORE_DIR/||; s|\.gpg||" | fzf --border --info=inline | xargs pass "$@"
'';
};
in
{
programs.password-store = {
enable = true;
settings = {
PASSWORD_STORE_DIR = "/home/${username}/.password-store";
};
package = pkgs.pass.withExtensions (e: [e.pass-otp]);
package = pkgs.pass.withExtensions (e: [ e.pass-otp ]);
};
home.packages = [ fzfpass ];
}

View file

@ -2,7 +2,8 @@
pkgs,
config,
...
}: let
}:
let
inherit (config.programs.qutebrowser) settings;
websites = {
searx = "https://searx.be";
@ -16,7 +17,8 @@
less-dark-white = "#cccccc";
blue = "#0000ff";
};
in {
in
{
programs.qutebrowser = {
enable = true;
searchEngines = with websites; {
@ -34,14 +36,15 @@ in {
",l" = ''config-cycle spellcheck.languages [" it-IT "] [" en-US "]'';
};
insert = {
"<Ctrl-p>" = ''spawn --userscript qute-pass --dmenu-invocation '${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0 -d' --password-only --unfiltered'';
"<Ctrl-p>" =
''spawn --userscript qute-pass --dmenu-invocation '${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0 -d' --password-only --unfiltered'';
};
};
settings = {
auto_save.session = true;
url = with websites; {
default_page = searx;
start_pages = [searx];
start_pages = [ searx ];
};
editor.command = [
"emacsclient"
@ -108,15 +111,13 @@ in {
};
home.packages = with pkgs; [
fuzzel
(
makeDesktopItem {
(makeDesktopItem {
name = "qutebrowser";
exec = "qutebrowser %u";
comment = "Qutebrowser";
desktopName = "qutebrowser";
type = "Application";
mimeTypes = ["x-scheme-handler/https"];
}
)
mimeTypes = [ "x-scheme-handler/https" ];
})
];
}

View file

@ -0,0 +1,28 @@
{ pkgs, ... }:
let
reinstall-magisk-on-lineage = pkgs.stdenv.mkDerivation {
name = "reinstall-magisk-on-lineage";
version = "git";
src = pkgs.fetchFromGitHub {
owner = "NicolasWebDev";
repo = "reinstall-magisk-on-lineageos";
rev = "1ca911ed555d4badd705c6c71750b78be8962b0b";
hash = "sha256-95LzcWL4efR77i8UlzIT+7wQXp+91K2sUwcjmHvTf+Q=";
};
propagatedBuildInputs = with pkgs; [
android-tools
jq
];
installPhase = ''
mkdir -p $out/bin
cp reinstall-magisk-on-lineageos $out/bin/reinstall-magisk-on-lineageos
'';
patchPhase = ''
substituteInPlace reinstall-magisk-on-lineageos \
--replace-fail "paste_yours_here" "\"\$1\""
'';
};
in
{
home.packages = [ reinstall-magisk-on-lineage ];
}

View file

@ -1,3 +1,4 @@
{pkgs, ...}: {
home.packages = [pkgs.remmina];
{ pkgs, ... }:
{
home.packages = [ pkgs.remmina ];
}

View file

@ -0,0 +1,8 @@
{ pkgs, ... }:
{
home.packages = [
(builtins.getFlake "github:NixOS/nixpkgs/063dece00c5a77e4a0ea24e5e5a5bd75232806f8")
.legacyPackages.${pkgs.system}.sdrangel
pkgs.kdePackages.qtlocation
];
}

View file

@ -1,12 +1,29 @@
{
config,
lib,
pkgs,
age,
hostname,
config,
username,
...
}: {
}:
{
programs.bat.enable = true;
programs.ranger = {
enable = true;
settings = {
"preview_images" = true;
"preview_images_method" = "sixel";
};
};
programs.fzf.enable = true;
programs.ripgrep.enable = true;
programs.fd.enable = true;
programs.direnv = {
enable = true;
config = {
@ -15,103 +32,47 @@
nix-direnv.enable = true;
};
# programs.exa = {
# enable = false;
# enableAliases = true;
# };
# programs.fzf.enable = false;
programs.lsd = {
enable = true;
};
programs.vim.enable = true;
programs.ssh = {
enable = true;
controlMaster = "auto";
controlPersist = "10m";
};
# programs.starship = {
# enable = false;
# settings = {
# character = {
# success_symbol = "[👌](bold green)";
# error_symbol = "[🤌](bold red)";
# };
# nix_shell = {
# symbol = "❄ ";
# };
# };
# };
# Playing with it sometimes
# programs.nushell = {
# enable = false;
# configFile.text = ''
# let carapace_completer = {|spans|
# carapace $spans.0 nushell $spans | from json
# }
# let-env config = {
# show_banner: false
# ls: {
# use_ls_colors: true # use the LS_COLORS environment variable to colorize output
# clickable_links: true # enable or disable clickable links. Your terminal has to support links.
# }
# rm: {
# always_trash: true # always act as if -t was given. Can be overridden with -p
# }
# cd: {
# abbreviations: true # allows `cd s/o/f` to expand to `cd some/other/folder`
# }
# table: {
# mode: compact # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
# index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
# trim: {
# methodology: wrapping # wrapping or truncating
# wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
# truncating_suffix: "..." # A suffix used by the 'truncating' methodology
# }
# }
# history: {
# max_size: 10000 # Session has to be reloaded for this to take effect
# sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
# file_format: "plaintext" # "sqlite" or "plaintext"
# }
# completions: {
# case_sensitive: false # set to true to enable case-sensitive completions
# quick: true # set this to false to prevent auto-selecting completions when only one remains
# partial: true # set this to false to prevent partial filling of the prompt
# algorithm: "fuzzy" # prefix or fuzzy
# external: {
# enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up my be very slow
# max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
# completer: $carapace_completer # check 'carapace_completer' above as an example
# }
# }
# filesize: {
# metric: true # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard)
# format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, zb, zib, auto
# }
# buffer_editor: "${config.programs.helix.package}/bin/helix"
# }
# '';
# };
xdg.configFile."dracula-theme" = {
target = "fish/themes/dracula.theme";
source = let
theme = pkgs.fetchFromGitHub {
owner = "dracula";
repo = "fish";
rev = "269cd7d76d5104fdc2721db7b8848f6224bdf554";
hash = "sha256-Hyq4EfSmWmxwCYhp3O8agr7VWFAflcUe8BUKh50fNfY=";
systemd.user.services.atuind = {
Unit.Description = "Atuin daemon";
Install = {
WantedBy = [ "default.target" ];
};
Service = {
ExecStartPre = "${lib.getExe' pkgs.toybox "rm"} -f ${config.programs.atuin.settings.daemon.socket_path}";
ExecStart = "${lib.getExe pkgs.atuin} daemon";
};
in "${theme}/themes/Dracula\ Official.theme";
};
programs.fish = {
programs.atuin = {
enable = false; # FIXME broken on bash: https://github.com/nix-community/home-manager/issues/5958
settings = {
daemon = {
enabled = true;
socket_path = "/home/${username}/.local/share/atuin/atuin.sock"; # FIXME using ~ or $HOME doesn't work: https://github.com/atuinsh/atuin/issues/2289
};
auto_sync = true;
sync_frequency = "5m";
sync_address = "http://sisko.wg.aciceri.dev:8889";
search_mode = "fuzzy";
style = "compact";
enter_accept = "true";
};
};
programs.bash = {
enable = true;
shellInit = ''
fish_config theme choose "dracula"
initExtra = lib.optionalString (builtins.hasAttr "cachix-personal-token" age.secrets) ''
export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path})
'';
shellAliases = {
@ -119,95 +80,65 @@
};
};
# programs.zsh = {
# enable = false; # Playing xswith fish at the moment
# enableAutosuggestions = true;
# enableCompletion = true;
# enableSyntaxHighlighting = true;
# enableVteIntegration = true;
# autocd = true;
# oh-my-zsh = {
programs.zoxide.enable = true;
programs.thefuck.enable = true;
programs.oh-my-posh = {
enable = true;
useTheme = "catppuccin_mocha";
};
programs.zellij.enableBashIntegration = false;
# programs.fish = {
# enable = true;
# plugins = [
# "ag"
# "cabal"
# "colored-man-pages"
# "colorize"
# "command-not-found"
# "fzf"
# "git"
# "nomad"
# "pass"
# "python"
# "sudo"
# "terraform"
# "thefuck"
# ];
# };
# plugins = [
# # {
# # name = "fifc";
# # src = pkgs.fishPlugins.fifc.src;
# # }
# {
# name = "fzf-tab";
# src = pkgs.fetchFromGitHub {
# owner = "Aloxaf";
# repo = "fzf-tab";
# rev = "c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9";
# sha256 = "sha256-gvZp8P3quOtcy1Xtt1LAW1cfZ/zCtnAmnWqcwrKel6w=";
# };
# }
# {
# name = "fzf-tab";
# src = pkgs.fetchFromGitHub {
# owner = "Aloxaf";
# repo = "fzf-tab";
# rev = "c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9";
# sha256 = "sha256-gvZp8P3quOtcy1Xtt1LAW1cfZ/zCtnAmnWqcwrKel6w=";
# };
# }
# {
# name = "fast-syntax-highlighting";
# src = pkgs.fetchFromGitHub {
# owner = "zdharma-continuum";
# repo = "fast-syntax-highlighting";
# rev = "13d7b4e63468307b6dcb2dadf6150818f242cbff";
# sha256 = "sha256-AmsexwVombgVmRvl4O9Kd/WbnVJHPTXETxBv18PDHz4=";
# };
# name = "z";
# src = pkgs.fishPlugins.z.src;
# }
# ];
# shellInit =
# ''
# # fish_vi_key_bindings
# fish_default_key_bindings
# ''
# + lib.optionalString (builtins.hasAttr "cachix-personal-token" age.secrets) ''
# export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path})
# '';
# shellAliases = {
# "cat" = "bat";
# "em" = "TERM=wezterm emacsclient -nw";
# };
# loginExtra = "[[ -z $DISPLAY && $TTY = /dev/tty1 ]] && exec dbus-run-session Hyprland";
# envExtra = ''
# # [ $TERM = "dumb" ] && unsetopt zle && PS1='$ ' # for Emacs TRAMP mode
# '';
# initExtra = ''
# export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path})
# # Don't enable VIM emulation when in Emacs
# [[ -z $INSIDE_EMACS ]] && source ${pkgs.zsh-vi-mode}/share/zsh-vi-mode/zsh-vi-mode.plugin.zsh
# # When enabling starship, home-manager add an `initExtra` rule to disable it when in Emacs but not with VTerm,
# # since I use also `eat` besides `vterm` the following line is needed
# [[ "$INSIDE_EMACS" =~ "eat" ]] && eval "$(${config.home.profileDirectory}/bin/starship init zsh)"
# '';
# };
home.packages = with pkgs; [
thefuck
htop-vim
bottom
home.packages =
with pkgs;
[
dig.dnsutils
lsof
zsh-completions
nix-zsh-completions
comma
# carapace # used by nushell
nil # TODO probably not best place
terraform-lsp # TODO probably not best place
python3Packages.jedi-language-server # TODO probably not best place
nodePackages.typescript-language-server # TODO probably not best place
ffmpeg-headless
jless
nix-melt
nurl
jq
yq-go
procs
chafa
hexyl
broot
file
]
++ (lib.optionals
(builtins.elem hostname [
"kirk"
"picard"
])
[
cntr # TODO probably not best place
# nom # FIXME disable on aarch64-linux, breaks everything :(
];
]
);
}

View file

@ -1,3 +1,4 @@
{pkgs, ...}: {
home.packages = [pkgs.slack];
{ pkgs, ... }:
{
home.packages = [ pkgs.slack ];
}

View file

@ -1,18 +1,24 @@
{pkgs, ...}: let
spotify-adblock = pkgs.nur.repos.nltch.spotify-adblock;
in {
home.packages = [spotify-adblock];
{
lib,
pkgs,
...
}:
let
spotify-adblocked = pkgs.callPackage ../../packages/spotify-adblocked { };
in
{
home.packages = [ spotify-adblocked ];
systemd.user.services.spotify-adblocked = {
Install.WantedBy = ["graphical-session.target"];
Install.WantedBy = [ "graphical-session.target" ];
Unit = {
Description = "Spotify";
PartOf = ["graphical-session.target"];
PartOf = [ "graphical-session.target" ];
};
Service = {
ExecStart = "${spotify-adblock}/bin/spotify";
ExecStart = lib.getExe spotify-adblocked;
Restart = "on-failure";
RestartSec = 3;
};

View file

@ -1,3 +1,4 @@
{pkgs, ...}: {
home.packages = [pkgs.steam-run];
{ pkgs, ... }:
{
home.packages = [ pkgs.steam-run ];
}

View file

@ -3,7 +3,8 @@
lib,
config,
...
}: {
}:
{
imports = [
../waybar
../swayidle
@ -12,7 +13,7 @@
../kitty
];
config = {
home.packages = with pkgs; [wl-clipboard];
home.packages = with pkgs; [ wl-clipboard ];
systemd.user.sessionVariables = {
NIXOS_OZONE_WL = "1";
@ -27,25 +28,29 @@
gtk = {
enable = true;
font.name = "Sans,Symbols Nerd Font";
font.name = lib.mkForce "Sans,Symbols Nerd Font";
iconTheme = {
name = "Adwaita";
package = pkgs.gnome.adwaita-icon-theme;
package = pkgs.adwaita-icon-theme;
};
};
wayland = {
windowManager.sway = let
windowManager.sway =
let
modifier = "Mod4";
in {
in
{
enable = true;
wrapperFeatures.gtk = true;
config = {
inherit modifier;
menu = "${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0";
output = let
output =
let
bg = "${./wallpaper.svg} fill";
in {
in
{
DP-2 = {
res = "1900x1200";
pos = "0 0";
@ -75,15 +80,18 @@
smartBorders = "on";
};
assigns = {
"1" = [{title = ".*Mozilla Firefox$";} {title = ".*qutebrowser$";}];
"2" = [{title = "^((?!qutebrowser-editor).)*Emacs$";}];
"3" = [{title = "Slack.*";}];
"9" = [{title = "^Element.*";}];
"1" = [
{ title = ".*Mozilla Firefox$"; }
{ title = ".*qutebrowser$"; }
];
"2" = [ { title = "^((?!qutebrowser-editor).)*Emacs$"; } ];
"3" = [ { title = "Slack.*"; } ];
"9" = [ { title = "^Element.*"; } ];
};
floating.criteria = [
{title = "MetaMask Notification.*";}
{title = "Volume Control";} # pavucontrol
{title = "^.*editor - qutebrowser$";} # Emacs opened by qutebrowser
{ title = "MetaMask Notification.*"; }
{ title = "Volume Control"; } # pavucontrol
{ title = "^.*editor - qutebrowser$"; } # Emacs opened by qutebrowser
];
input = {
"*" = {
@ -91,23 +99,19 @@
xkb_variant = "altgr-intl";
};
};
keybindings = let
keybindings =
let
screenshotScript = pkgs.writeShellScript "screenshot.sh" ''
filename="$HOME/shots/$(date --iso-8601=seconds).png"
coords="$(${pkgs.slurp}/bin/slurp)"
${pkgs.grim}/bin/grim -t png -g "$coords" "$filename"
wl-copy -t image/png < $filename
'';
screenrecordingScript = pkgs.writeShellScript "screenrecorder.sh" ''
filename="$HOME/shots/recording-$(date --iso-8601=seconds).mp4"
coords="$(${pkgs.slurp}/bin/slurp)"
${pkgs.wf-recorder}/bin/wf-recorder -g "$coords" -f "$filename"
wl-copy -t video/mp4 < $filename
'';
in
lib.mkOptionDefault {
"${modifier}+x" = "exec emacsclient -c";
"${modifier}+y" = "exec ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet emacsclient -c";
"${modifier}+y" =
"exec ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet emacsclient -c";
"${modifier}+b" = "exec qutebrowser";
"${modifier}+s" = "exec ${screenshotScript}";
# "${modifier}+g" = "exec ${screenrecordingScript}"; # FIXME

View file

@ -2,19 +2,10 @@
pkgs,
lib,
...
}: {
services.swayidle = let
# Downgraded due to
# https://github.com/mortie/swaylock-effects/issues/95
# swaylock-effects = pkgs.swaylock-effects.overrideAttrs (_: {
# version = "jirutka-master";
# src = pkgs.fetchFromGitHub {
# owner = "jirutka";
# repo = "swaylock-effects";
# rev = "7c5681ce96587ce3090c6698501faeccdfdc157d";
# sha256 = "sha256-09Kq90wIIF9lPjiY2anf9MSgi/EqeXKXW1mFmhxA/aM";
# };
# });
}:
{
services.swayidle =
let
swaylockWithArgs = pkgs.writeScriptBin "swaylockWithArgs" ''
${pkgs.swaylock-effects}/bin/swaylock \
--daemonize \
@ -30,11 +21,11 @@
--line-color 00000000 \
--inside-color 00000088 \
--separator-color 00000000 \
--grace 2 \
--fade-in 0.2
'';
swaylockCommand = "${swaylockWithArgs}/bin/swaylockWithArgs";
in {
in
{
enable = true;
events = [
{
@ -57,10 +48,4 @@
}
];
};
# Otherwise it will start only after Sway and will not work with Hyprland
systemd.user.services.swayidle = {
Unit.PartOf = lib.mkForce [];
Install.WantedBy = lib.mkForce ["hyprland-session.target"];
};
}

View file

@ -0,0 +1,4 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.teams-for-linux ];
}

View file

@ -1,14 +1,14 @@
{
imports = [../email];
imports = [ ../email ];
config = {
accounts.email.accounts = {
autistici.thunderbird = {
enable = true;
profiles = ["default"];
profiles = [ "default" ];
};
mlabs.thunderbird = {
enable = true;
profiles = ["default"];
profiles = [ "default" ];
};
};
programs.thunderbird = {

View file

@ -1,3 +1,4 @@
{pkgs, ...}: {
home.packages = [pkgs.tor-browser];
{ pkgs, ... }:
{
home.packages = [ pkgs.tor-browser ];
}

View file

@ -0,0 +1,27 @@
{
pkgs,
lib,
...
}:
{
home.packages = [ pkgs.tremotesf ];
systemd.user.services.tremotesf = {
Install.WantedBy = [
"waybar.service"
];
Unit = {
Description = "tremotesf";
};
Service = {
ExecStart = pkgs.writeShellScript "start-tremotesf.sh" ''
sleep 5
${lib.getExe pkgs.tremotesf} --minimized
'';
Restart = "on-failure";
RestartSec = 3;
};
};
}

View file

@ -0,0 +1,4 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.vial ];
}

View file

@ -0,0 +1,6 @@
{
services.vscode-server = {
enable = true;
enableFHS = true;
};
}

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
programs.vscode = {
enable = true;
# For a few reasons sometimes I'm forced to use VSCode and I don't have time to nixifiy even its configuration.

View file

@ -0,0 +1,78 @@
{
"layer": "top",
"position": "left",
"width": 36,
"margin": "12 0 12 0",
"spacing": 2,
"modules-left": ["clock", "custom/sep", "niri/window"],
"modules-center": ["niri/workspaces"],
"modules-right": [
"tray",
"custom/sep",
"temperature",
"custom/sep",
"pulseaudio",
"custom/powermenu"
],
"custom/sep": {
"format": "──"
// "format": ""
},
"custom/powermenu": {
"on-click": "rofi -show menu -modi menu:rofi-power-menu",
"format": "",
"tooltip": false
},
"niri/workspaces": {
"format": "{icon}",
"on-click": "activate",
"format-icons": {
"active": "",
"urgent": "",
"default": ""
}
},
"niri/window": {
"rotate": 90,
"rewrite": {
"(.*) — Mozilla Firefox": " $1",
"(.*) - Emacs": " $1",
"(.*) - Slack": " $1"
}
},
"clock": {
"tooltip": true,
"format": "{:%H\n%M}",
"tooltip-format": "{:%Y-%m-%d}"
},
"tray": {
"icon-size": 20,
"spacing": 5,
"show-passive-items": "false"
},
"temperature": {
"rotate": 90,
"hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
"format": "{icon} {temperatureC}°C",
"format-icons": ["", "", ""]
},
"pulseaudio": {
"rotate": 90,
"format": "{icon} {volume}%",
"format-bluetooth": "{icon} {volume}%",
"format-muted": "MUTE ",
"format-icons": {
"headphones": "",
"handsfree": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", ""]
},
"scroll-step": 3,
"on-click": "pavucontrol",
"on-click-right": "pactl set-source-mute @DEFAULT_SOURCE@ toggle"
}
}

View file

@ -1,121 +1,25 @@
{
pkgs,
lib,
fleetFlake,
...
}: {
}:
{
programs.waybar = {
enable = true;
systemd.enable = true;
style = builtins.readFile ./style.css;
settings = {
mainBar = {
ipc = true;
layer = "top";
position = "top";
height = 30;
};
modules-left = [
"wlr/mode"
"hyprland/workspaces"
catppuccin.waybar.enable = lib.mkForce false;
home.activation.linkWaybarConfig = lib.hm.dag.entryAnywhere ''
if [ ! -d "$HOME/.config/waybar" ]; then
$DRY_RUN_CMD mkdir -p "$HOME/.config/waybar"
$DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/waybar/config.json" "$HOME/.config/waybar/config"
$DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/waybar/style.css" "$HOME/.config/waybar/style.css"
fi
'';
home.packages = with pkgs; [
rofi-power-menu
];
modules-center = ["wlr/window"];
modules-right = [
"network"
"tray"
"pulseaudio"
"cpu"
"memory"
"temperature"
"backlight"
"battery"
"clock"
];
"hyprland/workspaces" = {
all-outputs = true;
disable-scroll-wraparound = true;
# format = "{icon}";
on-click = "activate";
# format-icons = {
# "1" = "";
# "2" = "";
# "3" = "";
# "9" = "ﬧ";
# urgent = "";
# };
# sort-by-number = true;
};
"wlr/mode" = {tooltip = false;};
"wlr/window" = {max_length = 50;};
tray = {
spacing = 10;
};
battery = {
format = "{capacity}% {icon}";
format-alt = "{time} {icon}";
format-charging = "{capacity}% ";
format-icons = [" " " " " " " " " "];
format-plugged = "{capacity}% ";
states = {
critical = 15;
warning = 30;
};
};
clock = {
format-alt = "{:%Y-%m-%d}";
tooltip-format = "{:%Y-%m-%d | %H:%M}";
};
cpu = {
format = "{usage}% ";
tooltip = false;
};
memory = {format = "{}% ";};
network = {
interval = 1;
format-alt = "{ifname}: {ipaddr}/{cidr}";
format-disconnected = "Disconnected ";
format-ethernet = "{ifname}: {ipaddr}/{cidr} 󰈀 up: {bandwidthUpBits:>4} down: {bandwidthDownBits:>4}";
format-linked = "{ifname} (No IP) ";
format-wifi = "{essid} ({signalStrength}%) {ipaddr}/{cidr} up: {bandwidthUpBits:>4} down: {bandwidthDownBits:>4}";
};
pulseaudio = {
format = "{volume}% {icon} {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-icons = {
car = "";
default = [" " " " " "];
handsfree = "";
headphones = " ";
headset = "";
phone = "";
portable = "";
};
format-muted = " {format_source}";
format-source = "{volume}% ";
format-source-muted = "";
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
};
"wlr/mode" = {format = ''<span style="italic">{}</span>'';};
temperature = {
critical-threshold = 80;
format = "{temperatureC}°C {icon}";
format-icons = ["" "" ""];
hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input"; # picard FIXME
# hwmon-path = "/sys/class/thermal/thermal_zone4/temp"; # thinkpad
};
backlight = {
device = "ddcci2";
format = "{percent}% {icon}";
format-icons = [" " " "];
};
};
};
};
# waybar needs the hyprctl binary in PATH when started in hyprland
systemd.user.services.waybar.Service.Environment = "PATH=${lib.makeBinPath [pkgs.hyprland]}";
}

View file

@ -1,45 +1,71 @@
* {
border: none;
border-radius: 0;
min-height: 0;
font-family: Fira Code;
font-family: "Iosevka Comfy", "FontAwesome", "Nerd Font";
font-size: 1.35rem;
font-weight: 600;
background: none;
}
window#waybar {
background: rgba(255, 255, 255, 0.05);
color: white;
font-size: 1.2rem;
color: #a5adcb;
background-color: #181926;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
}
.modules-left,
.modules-right,
.modules-center {
padding: 12px 4px;
}
tooltip {
color: #a5adcb;
background-color: #181926;
text-shadow: none;
}
tooltip * {
color: #a5adcb;
text-shadow: none;
}
#custom-sep {
color: #494d64;
}
#workspaces button:hover {
box-shadow: inherit;
text-shadow: inherit;
}
#workspaces button {
padding: 0 10px;
background: transparent;
color: white;
font-size: 2rem;
color: #5b6078;
background: none;
padding: 0;
}
#workspaces button:hover {
color: #a6da95;
}
#workspaces button.active {
box-shadow: inset 0 -5px red;
color: #f5bde6;
}
#temperature {
color: #eed49f;
}
#clock {
font-weight: 600;
color: #8bd5ca;
}
#custom-bluetooth_devices {
color: #8aadf4;
}
#pulseaudio {
color: #a6da95;
}
#pulseaudio.muted {
color: #ed8796;
}
#workspaces button.focused, #workspaces button:hover {
box-shadow: inset 0 -5px white;
}
#workspaces button.urgent {
/* background: @theme_fg_color; */
/* color: @theme_selected_bg_color; */
}
#mode {
margin: 0 4px;
padding: 0 4px;
/* background: @theme_fg_color; */
/* color: @unfocused_borders; */
}
#pulseaudio, #network, #cpu, #memory, #disk, #temperature, #battery, #language, #clock, #tray {
margin: 0 4px;
padding: 0 2px;
#custom-powermenu {
margin: 12px 0 0 0;
color: #6e738d;
}

View file

@ -0,0 +1,23 @@
{
pkgs,
lib,
vpn,
hostname,
...
}:
{
systemd.user.services.wayvnc = {
Install.WantedBy = [ "graphical-session.target" ];
Unit = {
Description = "WayVNC";
PartOf = [ "graphical-session.target" ];
};
Service = {
ExecStart = "${lib.getExe' pkgs.wayvnc "wayvnc"} ${vpn.${hostname}.ip} 5900";
Restart = "on-failure";
RestartSec = 3;
};
};
}

View file

@ -1,8 +1,9 @@
{...}: {
{
programs.wezterm = {
enable = true;
extraConfig = ''
return {
-- enable_wayland = false; -- https://github.com/wez/wezterm/issues/4483
font = wezterm.font_with_fallback {
{
family = 'Iosevka Comfy',
@ -13,7 +14,7 @@
};
font_size = 13;
allow_square_glyphs_to_overflow_width = "Always";
color_scheme = "Dracula (Official)";
color_scheme = "Catppuccin Mocha";
window_background_opacity = 1;
enable_tab_bar = false;
hide_mouse_cursor_when_typing = false;

View file

@ -1,12 +1,13 @@
{pkgs, ...}: {
home.packages = [pkgs.whatsapp-for-linux];
{ pkgs, ... }:
{
home.packages = [ pkgs.whatsapp-for-linux ];
systemd.user.services.whatsapp = {
Install.WantedBy = ["graphical-session.target"];
Install.WantedBy = [ "graphical-session.target" ];
Unit = {
Description = "Whatsapp";
PartOf = ["graphical-session.target"];
PartOf = [ "graphical-session.target" ];
};
Service = {

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
home.packages = with pkgs; [
winetricks
wineWowPackages.waylandFull

View file

@ -1,11 +1,12 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
xdg = {
enable = true;
mimeApps.enable = true;
mimeApps.defaultApplications = {
"text/html" = ["firefox.desktop"];
"x-scheme-handler/http" = ["firefox.desktop"];
"x-scheme-handler/https" = ["firefox.desktop"];
"text/html" = [ "firefox.desktop" ];
"x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = [ "firefox.desktop" ];
};
desktopEntries = {
org-protocol = {
@ -13,16 +14,43 @@
genericName = "Org protocol";
exec = "emacsclient -- %u";
terminal = false;
mimeType = ["x-scheme-handler/org-protocol"];
mimeType = [ "x-scheme-handler/org-protocol" ];
};
firefox = {
name = "firefox";
genericName = "Firefox protocol";
exec = "firefox -- %U";
terminal = false;
mimeType = ["text/html" "text/xml" "text/uri"];
mimeType = [
"text/html"
"text/xml"
"text/uri"
];
};
};
portal = {
enable = true;
configPackages = with pkgs; [
# xdg-desktop-portal-wlr
# xdg-desktop-portal-gtk
# xdg-desktop-portal-hyprland
xdg-desktop-portal-gnome
# xdg-desktop-portal
# kdePackages.xdg-desktop-portal-kde
# libsForQt5.xdg-desktop-portal-kde
gnome-keyring
];
extraPortals = with pkgs; [
# xdg-desktop-portal-wlr
# xdg-desktop-portal-gtk
# xdg-desktop-portal-hyprland
xdg-desktop-portal-gnome
# xdg-desktop-portal
# kdePackages.xdg-desktop-portal-kde
gnome-keyring
];
};
home.packages = [pkgs.xdg-utils];
};
home.packages = [ pkgs.xdg-utils ];
}

View file

@ -0,0 +1,107 @@
{
config,
pkgs,
lib,
...
}:
let
zjstatus = pkgs.fetchurl {
url = "https://github.com/dj95/zjstatus/releases/download/v0.17.0/zjstatus.wasm";
hash = "sha256-IgTfSl24Eap+0zhfiwTvmdVy/dryPxfEF7LhVNVXe+U=";
};
cfg = config.catppuccin.fzf;
palette = (lib.importJSON "${config.catppuccin.sources.palette}/palette.json").${cfg.flavor}.colors;
selectColor = color: palette.${color}.hex;
color_fg = selectColor "text";
color_bg = selectColor "mantle";
color_black = selectColor "surface1";
color_red = selectColor "red";
color_green = selectColor "green";
color_yellow = selectColor "yellow";
color_blue = selectColor "blue";
color_magenta = selectColor "pink";
color_cyan = selectColor "teal";
color_white = selectColor "subtext1";
layout = pkgs.writeText "layout.kdl" ''
layout {
default_tab_template {
pane size=1 borderless=true {
plugin location="file:${zjstatus}" {
color_fg "${color_fg}"
color_bg "${color_bg}"
color_black "${color_black}"
color_red "${color_red}"
color_green "${color_green}"
color_yellow "${color_yellow}"
color_blue "${color_blue}"
color_magenta "${color_magenta}"
color_cyan "${color_cyan}"
color_white "${color_white}"
format_left "{mode}#[bg=$bg] {tabs}"
// format_center "#[bg=$bg,fg=$fg] Zellij: #[bg=$bg,fg=$fg]{session}"
// format_right "{datetime}"
format_right "#[bg=$bg,fg=$fg] Zellij: #[bg=$bg,fg=$fg]{session} "
format_space "#[bg=$bg]"
format_hide_on_overlength "true"
format_precedence "crl"
border_enabled "false"
border_char ""
border_format "#[fg=#6C7086]{char}"
border_position "top"
hide_frame_for_single_pane "true"
mode_normal "#[bg=$green,fg=$bg,bold] NORMAL #[bg=$bg,fg=$green]"
mode_locked "#[bg=$red,fg=$bg,bold] LOCKED #[bg=$bg,fg=$red]"
mode_resize "#[bg=$blue,fg=$bg,bold] RESIZE #[bg=$bg,fg=$blue]"
mode_pane "#[bg=$blue,fg=$bg,bold] PANE #[bg=$bg,fg=$blue]"
mode_tab "#[bg=$yellow,fg=$bg,bold] TAB #[bg=$bg,fg=$yellow]"
mode_scroll "#[bg=$blue,fg=$bg,bold] SCROLL #[bg=$bg,fg=$blue]"
mode_enter_search "#[bg=$yellow,fg=$bg,bold] ENT-SEARCH #[bg=$bg,fg=$yellow]"
mode_search "#[bg=$yellow,fg=$bg,bold] SEARCHARCH #[bg=$bg,fg=$yellow]"
mode_rename_tab "#[bg=$yellow,fg=$bg,bold] RENAME-TAB #[bg=$bg,fg=$yellow]"
mode_rename_pane "#[bg=$blue,fg=$bg,bold] RENAME-PANE #[bg=$bg,fg=$blue]"
mode_session "#[bg=$blue,fg=$bg,bold] SESSION #[bg=$bg,fg=$blue]"
mode_move "#[bg=$blue,fg=$bg,bold] MOVE #[bg=$bg,fg=$blue]"
mode_prompt "#[bg=$blue,fg=$bg,bold] PROMPT #[bg=$bg,fg=$blue]"
mode_tmux "#[bg=$magenta,fg=$bg,bold] TMUX #[bg=$bg,fg=$magenta]"
// formatting for inactive tabs
tab_normal "#[bg=$bg,fg=$cyan] #[bg=$cyan,fg=$bg,bold] {index} {floating_indicator}#[bg=$bg,fg=$bg,bold]"
tab_normal_fullscreen "#[bg=$bg,fg=$cyan] #[bg=$cyan,fg=$bg,bold] {index} {fullscreen_indicator}#[bg=$bg,fg=$bg,bold]"
tab_normal_sync "#[bg=$bg,fg=$cyan] #[bg=$cyan,fg=$bg,bold] {index} {sync_indicator}#[bg=$bg,fg=$bg,bold]"
// formatting for the current active tab
tab_active "#[bg=$bg,fg=$yellow] #[bg=$yellow,fg=$bg,bold] {index} {floating_indicator}#[bg=$bg,fg=$bg,bold]"
tab_active_fullscreen "#[bg=$bg,fg=$yellow] #[bg=$yellow,fg=$bg,bold] {index} {fullscreen_indicator}#[bg=$bg,fg=$bg,bold]"
tab_active_sync "#[bg=$bg,fg=$yellow] #[bg=$yellow,fg=$bg,bold] {index} {sync_indicator}#[bg=$bg,fg=$bg,bold]"
// separator between the tabs
tab_separator "#[bg=$bg] "
// indicators
tab_sync_indicator " "
tab_fullscreen_indicator " 󰊓"
tab_floating_indicator " 󰹙"
datetime "#[fg=$fg] {format} "
datetime_format "%Y-%m-%d %H:%M"
datetime_timezone "Europe/Rome"
}
}
children
}
}
'';
in
{
programs.zellij = {
enable = true;
settings = {
default_layout = "${layout}";
pane_frames = false;
};
};
}

42
hmModules/zk/default.nix Normal file
View file

@ -0,0 +1,42 @@
{
programs.bat.enable = true;
programs.fzf.enable = true;
programs.zk = {
enable = true;
settings = {
notebook.dir = "~/notebook";
note = {
language = "en";
default-title = "Untitled";
filename = "{{id}}";
extension = "md";
template = "default.md";
};
group.journal = {
paths = [ "journal" ];
note = {
filename = "{{format-date now}}";
template = "journal.md";
};
};
format.markdown = {
hashtags = false;
colon-tags = true;
multiword-tags = false;
};
tool = {
pager = "less -FIRX";
fzf-preview = "bat --color always {-1}";
};
lsp.diagnostics = {
wiki-title = "hint";
dead-link = "error";
};
lsp.completion = {
note-label = "{{title-or-path}}";
note-filter-text = "{{title}} {{path}}";
note-detail = "{{filename-stem}}";
};
};
};
}

View file

@ -0,0 +1,26 @@
{
pkgs,
lib,
...
}:
{
home.packages = [ pkgs.zmkBATx ];
systemd.user.services.zmkBATx = {
Install.WantedBy = [
"waybar.service"
];
Unit = {
Description = "zmkBATx";
};
Service = {
ExecStart = ''
${pkgs.runtimeShell} -l -c "${lib.getExe' pkgs.busybox "sleep"} 5 && ${lib.getExe pkgs.zmkBATx}"
'';
Restart = "on-failure";
RestartSec = 3;
};
};
}

View file

@ -0,0 +1,4 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.zoom-us ];
}

View file

@ -0,0 +1,4 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.zulip ];
}

View file

@ -1,26 +0,0 @@
{pkgs, ...}: {
# $ nix-env -qaP | grep wget
environment.systemPackages =
[ pkgs.vim
];
# # Auto upgrade nix package and the daemon service.
# services.nix-daemon.enable = true;
# # nix.package = pkgs.nix;
# # Necessary for using flakes on this system.
# nix.settings.experimental-features = "nix-command flakes";
# # Create /etc/zshrc that loads the nix-darwin environment.
# programs.zsh.enable = true; # default shell on catalina
# # programs.fish.enable = true;
# # # Set Git commit hash for darwin-version.
# # system.configurationRevision = self.rev or self.dirtyRev or null;
# # Used for backwards compatibility, please read the changelog before changing.
# # $ darwin-rebuild changelog
# system.stateVersion = 4;
# # The platform the configuration will be used on.
}

View file

@ -1,6 +1,9 @@
{pkgs, ...}: {
environment.systemPackages = [
pkgs.vim
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
helix
vim
git
];
nix.settings.experimental-features = "nix-command flakes";
@ -9,5 +12,5 @@
services.nix-daemon.enable = true;
# nixpkgs.localSystem = "x86_64-darwin";
system.stateVersion = 5;
}

View file

@ -1,9 +1,8 @@
{
fleetModules,
pkgs,
lib,
...
}: {
}:
{
imports =
[
./hardware-configuration.nix

View file

@ -7,15 +7,22 @@
pkgs,
modulesPath,
...
}: {
}:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
boot.initrd.availableKernelModules = [
"ahci"
"xhci_pci"
"usb_storage"
"usbhid"
"sd_mod"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
@ -31,7 +38,7 @@
};
swapDevices = [
{device = "/dev/disk/by-label/swap";}
{ device = "/dev/disk/by-label/swap"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View file

@ -1,76 +1,42 @@
{
self,
lib,
config,
inputs,
...
}: {
imports = [./module.nix];
}:
{
imports = [ ./module.nix ];
fleet = {
darwinHosts.archer = {
};
darwinHosts.archer = { };
nixOnDroidHosts.janeway = { };
hosts = {
# thinkpad = {
# extraModules = with inputs; [
# nixosHardware.nixosModules.lenovo-thinkpad-x1-7th-gen
# buildbot-nix.nixosModules.buildbot-master
# buildbot-nix.nixosModules.buildbot-worker
# ];
# extraHmModules = with inputs; [
# ccrEmacs.hmModules.default
# {
# # TODO: remove after https://github.com/nix-community/home-manager/pull/3811
# imports = let
# hmModules = "${inputs.homeManagerGitWorkspace}/modules";
# in [
# "${hmModules}/services/git-workspace.nix"
# ];
# }
# ];
# overlays = [inputs.nil.overlays.default];
# secrets = {
# "thinkpad-wireguard-private-key" = {};
# "cachix-personal-token".owner = "ccr";
# "autistici-password".owner = "ccr";
# "git-workspace-tokens".owner = "ccr";
# "chatgpt-token".owner = "ccr";
# };
# };
# rock5b = {
# system = "aarch64-linux";
# extraModules = with inputs; [
# disko.nixosModules.disko
# rock5b.nixosModules.default
# ];
# secrets = {
# "rock5b-wireguard-private-key" = {};
# "hercules-ci-join-token".owner = "hercules-ci-agent";
# "hercules-ci-binary-caches".owner = "hercules-ci-agent";
# "cachix-personal-token".owner = "ccr";
# "home-planimetry".owner = "hass";
# "cloudflare-dyndns-api-token" = {};
# # "nextcloud-admin-pass".owner = "nextcloud";
# # "aws-credentials" = {};
# };
# colmena.deployment.buildOnTarget = true;
# };
# pbp = {
# system = "aarch64-linux";
# extraModules = with inputs; [
# nixosHardware.nixosModules.pine64-pinebook-pro
# disko.nixosModules.disko
# ];
# extraHmModules = [
# inputs.ccrEmacs.hmModules.default
# ];
# secrets = {
# "pbp-wireguard-private-key" = {};
# "cachix-personal-token".owner = "ccr";
# "chatgpt-token".owner = "ccr";
# };
# };
deltaflyer = {
nixpkgs =
let
# keep in sync with https://github.com/mobile-nixos/mobile-nixos/blob/development/npins/sources.json
rev = "d3c42f187194c26d9f0309a8ecc469d6c878ce33";
in
builtins.getFlake "github:NixOS/nixpkgs/${rev}";
extraHmModules = [
inputs.catppuccin.homeModules.catppuccin
];
vpn = {
ip = "10.100.0.5";
publicKey = "6bzmBx2b5yzMdW0aK0KapoBesNcxTv5+qdo+pGmG+jc=";
};
# homeManager = builtins.getFlake "github:nix-community/home-manager/670d9ecc3e46a6e3265c203c2d136031a3d3548e";
extraModules = [
(import "${inputs.mobile-nixos}/lib/configuration.nix" { device = "oneplus-fajita"; })
inputs.catppuccin.nixosModules.catppuccin
inputs.lix-module.nixosModules.default
];
secrets = {
"deltaflyer-wireguard-private-key" = { };
"chatgpt-token".owner = "ccr";
};
};
kirk = {
vpn = {
ip = "10.100.0.3";
@ -79,19 +45,20 @@
extraModules = [
inputs.disko.nixosModules.disko
inputs.nixosHardware.nixosModules.lenovo-thinkpad-x1-7th-gen
inputs.lix-module.nixosModules.default
inputs.catppuccin.nixosModules.catppuccin
];
extraHmModules = [
inputs.ccrEmacs.hmModules.default
"${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix"
"${inputs.homeManagerSwayNC}/modules/services/swaync.nix"
inputs.catppuccin.homeModules.catppuccin
];
secrets = {
"kirk-wireguard-private-key" = {};
"kirk-wireguard-private-key" = { };
"chatgpt-token".owner = "ccr";
"cachix-personal-token".owner = "ccr";
"git-workspace-tokens".owner = "ccr";
"autistici-password".owner = "ccr";
"restic-hetzner-password" = {};
"restic-hetzner-password" = { };
};
};
@ -102,25 +69,22 @@
};
extraModules = [
inputs.disko.nixosModules.disko
inputs.nixThePlanet.nixosModules.macos-ventura
# inputs.hercules-ci-agent.nixosModules.agent-service
inputs.lix-module.nixosModules.default
inputs.lanzaboote.nixosModules.lanzaboote
inputs.catppuccin.nixosModules.catppuccin
];
extraHmModules = [
inputs.ccrEmacs.hmModules.default
"${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix"
"${inputs.homeManagerSwayNC}/modules/services/swaync.nix"
inputs.vscode-server.nixosModules.home
inputs.catppuccin.homeModules.catppuccin
];
secrets = {
"picard-wireguard-private-key" = {};
"picard-wireguard-private-key" = { };
"chatgpt-token".owner = "ccr";
"cachix-personal-token".owner = "ccr";
"hercules-ci-join-token".owner = "hercules-ci-agent";
"hercules-ci-binary-caches".owner = "hercules-ci-agent";
"hercules-ci-secrets-json".owner = "hercules-ci-agent";
"git-workspace-tokens".owner = "ccr";
"autistici-password".owner = "ccr";
"restic-hetzner-password" = {};
"aws-credentials".owner = "hercules-ci-agent";
"restic-hetzner-password" = { };
"forgejo-runners-token".owner = "nixuser";
"forgejo-nix-access-tokens".owner = "nixuser";
};
@ -128,50 +92,85 @@
sisko = {
system = "aarch64-linux";
nixpkgs = inputs.nixpkgsUnstableForSisko; # using more recent `nixpkgsUnstable` it fails to restart
nixpkgs = inputs.nixpkgsSisko;
enableHomeManager = false;
vpn = {
ip = "10.100.0.1";
publicKey = "bc5giljukT1+ChbbyTLdOfejfR3c8RZ4XoXmQM54nTY=";
};
extraModules = with inputs; [
disko.nixosModules.disko
# inputs.hercules-ci-agent.nixosModules.agent-service;
# rock5b.nixosModules.default
impermanence.nixosModules.impermanence
lix-module.nixosModules.default
];
secrets = {
"sisko-wireguard-private-key" = {};
"hercules-ci-join-token".owner = "hercules-ci-agent";
"hercules-ci-binary-caches".owner = "hercules-ci-agent";
"hercules-ci-secrets-json".owner = "hercules-ci-agent";
"cachix-personal-token".owner = "ccr";
"sisko-wireguard-private-key" = { };
"home-planimetry".owner = "hass";
"cloudflare-dyndns-api-token" = {};
"restic-hetzner-password" = {};
"minio-credentials".owner = "minio";
"aws-credentials".owner = "hercules-ci-agent";
"home-assistant-token".owner = "prometheus";
"grafana-password".owner = "grafana";
"cloudflare-dyndns-api-token" = { };
"restic-hetzner-password" = { };
"hass-ssh-key".owner = "hass";
"matrix-registration-shared-secret".owner = "matrix-synapse";
"matrix-sliding-sync-secret".owner = "matrix-synapse";
"autistici-password".owner = "forgejo";
"sisko-attic-environment-file".owner = "atticd";
"autistici-password" = {
# FIXME terrible, should create a third ad-hoc group
owner = "grafana";
group = "forgejo";
};
"matrix-registration-shared-secret".owner = "matrix-synapse";
};
};
pike = {
vpn = {
ip = "10.100.0.8";
publicKey = "16ctjunXCXDPLSUhocstJ9z9l45/YuJFxlLkpoxChjI=";
};
extraModules = [
inputs.lix-module.nixosModules.default
inputs.catppuccin.nixosModules.catppuccin
];
extraHmModules = [
"${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix"
inputs.vscode-server.nixosModules.home
inputs.catppuccin.homeModules.catppuccin
];
secrets = {
"pike-wireguard-private-key" = { };
"chatgpt-token".owner = "ccr";
"cachix-personal-token".owner = "ccr";
"git-workspace-tokens".owner = "ccr";
"autistici-password".owner = "ccr";
"restic-hetzner-password" = { };
"forgejo-runners-token".owner = "nixuser";
"forgejo-nix-access-tokens".owner = "nixuser";
};
};
tpol = {
extraModules = with inputs; [
lix-module.nixosModules.default
];
secrets = {
"tpol-wireguard-private-key" = { };
};
vpn = {
ip = "10.100.0.7";
publicKey = "b/Pi7koTFo5CMAAzcL2ulvQ/0dUjKzbmXpvh4Lb/Bgo=";
};
extraHmModulesUser = "mara";
};
};
vpnExtra = {
oneplus6t = {
oneplus8t = {
ip = "10.100.0.4";
publicKey = "O6/tKaA8Hs7OEqi15hV4RwviR6vyCTMYv6ZlhsI+tnI=";
publicKey = "9ccx4C4xvPC6lPgTZAHDSfK4FS2BP2i4D57u9IZjw18=";
};
macos-ventura = {
ip = "10.100.0.6";
publicKey = "/Eee1V0PsjZSzj7un1NxHKtFR+TpUIgJ7VAdIAzmvzQ=";
};
};
};
flake.nixosConfigurations =
lib.mapAttrs
config.fleet._mkNixosConfiguration
config.fleet.hosts;
flake.darwinConfigurations =
lib.mapAttrs
config.fleet._mkDarwinConfiguration
config.fleet.darwinHosts;
}

View file

@ -0,0 +1,166 @@
{
fleetModules,
lib,
pkgs,
...
}:
{
imports =
fleetModules [
"common"
"ssh"
"ccr"
"nix"
"bluetooth"
"dbus"
"networkmanager"
"pam"
"fonts"
"waydroid"
"wireguard-client"
]
++ [
# ./mobile-nixos-branding.nix
./plasma-mobile.nix
];
# options.home-manager.services.kanshi.attrTag = null;
config = lib.mkMerge [
# INSECURE STUFF FIRST
# Users and hardcoded passwords.
{
nixpkgs.overlays = [
(prev: final: {
gcc7 = final.gcc;
gcc8 = final.gcc;
})
];
users.users.root.password = "nixos";
# users.users.ccr.password = "1234";
# Automatically login as defaultUserName.
# services.xserver.displayManager.autoLogin = {
# user = "ccr";
# };
}
# Networking, modem and misc.
{
# Ensures any rndis config from stage-1 is not clobbered by NetworkManager
networking.networkmanager.unmanaged = [
"rndis0"
"usb0"
];
# Setup USB gadget networking in initrd...
mobile.boot.stage-1.networking.enable = lib.mkDefault true;
}
# SSH
{
# Start SSH by default...
# Not a good idea given the fact this config is insecure (well-known password).
services.openssh = {
settings.PermitRootLogin = lib.mkForce "yes";
};
mobile.adbd.enable = true;
ccr = {
enable = true;
autologin = true;
modules = [
"git"
"shell"
"helix"
# "hyprland"
"niri"
"emacs"
"firefox"
"mpv"
"xdg"
"catppuccin"
];
extraGroups = [
"dialout"
"feedbackd"
"networkmanager"
"video"
"wheel"
];
backupPaths = [ ];
};
}
{
system.stateVersion = "24.11";
nixpkgs.config.allowUnfreePredicate =
pkg:
builtins.elem (lib.getName pkg) [
"oneplus-sdm845-firmware-zstd"
"oneplus-sdm845-firmware-xz"
"oneplus-sdm845-firmware"
];
nixpkgs.crossSystem = lib.mkForce null;
nixpkgs.localSystem.system = "aarch64-linux"; # we use an aarch64 nix remote builder or binfmt
# mobile.boot.stage-1.kernel.useStrictKernelConfig = lib.mkDefault true;
ccr.extraModules = [
{
programs.fish.loginShellInit = ''
pgrep niri >/dev/null || exec niri-session
'';
# wayland.windowManager.hyprland.extraConfig = lib.mkAfter ''
# monitor = DSI-1, 1080x2340, 0x0, 2, transform, 1
# input {
# touchdevice {
# transform = 1
# }
# }
# bind = $mod, r, exec, rotate-screen hor
# bind = $mod SHIFT, r, exec, rotate-screen ver
# '';
home.packages =
let
rotateScript = pkgs.writeShellApplication {
name = "rotate-screen";
runtimeInputs = [ pkgs.hyprland ];
text = ''
if [[ "$1" == "hor" ]]; then
hyprctl keyword monitor DSI-1,1080x2340,0x0,2,transform,1
hyprctl keyword input:touchdevice:transform 1
elif [[ "$1" == "ver" ]]; then
hyprctl keyword monitor DSI-1,1080x2340,0x0,2,transform,0
hyprctl keyword input:touchdevice:transform 0
fi
'';
};
in
[ rotateScript ];
services.swayidle.enable = lib.mkForce false;
}
];
environment.systemPackages = [
# (pkgs.writeShellApplication {
# name = "start-win98";
# text = fleetFlake.inputs.nixThePlanet.apps.aarch64-linux.win98.program;
# })
pkgs.libreoffice
pkgs.superTuxKart
pkgs.chromium
pkgs.dolphin-emu
];
zramSwap.enable = lib.mkDefault true;
boot.binfmt.emulatedSystems = lib.mkForce [
"x86_64-linux"
"i686-linux"
"i386-linux"
"i486-linux"
"i586-linux"
];
}
];
}

View file

@ -0,0 +1,55 @@
#
# Minimum config used to enable Plasma Mobile.
#
{
lib,
pkgs,
...
}:
{
mobile.beautification = {
silentBoot = lib.mkDefault false;
splash = lib.mkDefault false;
};
services.xserver = {
enable = true;
# # desktopManager.plasma5.mobile.enable = true;
displayManager.autoLogin = {
enable = true;
user = "ccr";
};
displayManager.session = [
{
manage = "desktop";
name = "niri";
start = ''
${pkgs.niri}/bin/niri-session &
waitPID=$!
'';
}
];
displayManager.defaultSession = "niri";
displayManager.lightdm = {
enable = true;
# Workaround for autologin only working at first launch.
# A logout or session crashing will show the login screen otherwise.
extraSeatDefaults = ''
session-cleanup-script=${pkgs.procps}/bin/pkill -P1 -fx ${pkgs.lightdm}/sbin/lightdm
'';
};
libinput.enable = true;
};
hardware.bluetooth.enable = true;
hardware.pulseaudio.enable = lib.mkDefault false; # mkDefault to help out users wanting pipewire
networking.networkmanager.enable = true;
networking.wireless.enable = false;
powerManagement.enable = true;
}

View file

@ -4,7 +4,8 @@
lib,
pkgs,
...
}: {
}:
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
@ -42,17 +43,29 @@
};
fonts = {
fonts = with pkgs; [powerline-fonts dejavu_fonts fira-code fira-code-symbols emacs-all-the-icons-fonts nerdfonts joypixels etBook];
fonts = with pkgs; [
powerline-fonts
dejavu_fonts
fira-code
fira-code-symbols
emacs-all-the-icons-fonts
nerdfonts
joypixels
etBook
];
fontconfig.defaultFonts = {
monospace = ["DejaVu Sans Mono for Powerline"];
sansSerif = ["DejaVu Sans"];
serif = ["DejaVu Serif"];
monospace = [ "DejaVu Sans Mono for Powerline" ];
sansSerif = [ "DejaVu Sans" ];
serif = [ "DejaVu Serif" ];
};
};
nixpkgs.config.joypixels.acceptLicense = true;
environment.systemPackages = with pkgs; [waypipe firefox];
environment.systemPackages = with pkgs; [
waypipe
firefox
];
programs.mosh.enable = true;
@ -61,7 +74,7 @@
};
boot.loader.grub = {
devices = ["/dev/sda"];
devices = [ "/dev/sda" ];
efiSupport = true;
efiInstallAsRemovable = true;
};

View file

@ -1,9 +1,10 @@
# Example to create a bios compatible gpt partition
{
lib,
disks ? ["/dev/sda"],
disks ? [ "/dev/sda" ],
...
}: {
}:
{
disk = lib.genAttrs disks (dev: {
device = dev;
type = "disk";
@ -17,7 +18,7 @@
start = "0";
end = "1M";
part-type = "primary";
flags = ["bios_grub"];
flags = [ "bios_grub" ];
}
{
type = "partition";

View file

@ -4,7 +4,8 @@
lib,
config,
...
}: {
}:
{
imports =
[
./hardware-configuration.nix
@ -21,7 +22,7 @@
"shell"
"git"
];
packages = [];
packages = [ ];
extraGroups = [
"wheel"
"fuse"
@ -31,7 +32,7 @@
systemd.services.standby-sdb = {
description = "Set spindown time (sleep) for /dev/sdb ";
wantedBy = ["multi-user.target"];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.hdparm}/bin/hdparm -B 127 -S 241 /dev/sdb";
@ -40,7 +41,7 @@
systemd.services.standby-sdc = {
description = "Set spindown time (sleep) for /dev/sdc ";
wantedBy = ["multi-user.target"];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.hdparm}/bin/hdparm -B 127 -S 241 /dev/sdc";
@ -54,7 +55,7 @@
isSystemUser = true;
group = "amule";
};
users.groups."amule" = {};
users.groups."amule" = { };
services = {
samba-wsdd = {
@ -261,7 +262,8 @@
};
};
systemd.services.ydns = let
systemd.services.ydns =
let
ydnsUpdater = pkgs.writeScriptBin "ydnsUpdater" ''
USER="andrea.ciceri@autistici.org"
PASSWORD=$(cat /home/ccr/.ydns-password)
@ -273,10 +275,11 @@
done
${pkgs.curl}/bin/curl --basic -u "$USER:$PASSWORD" --silent https://ydns.io/api/v1/update/?host=$DOMAIN
'';
in {
in
{
description = "YDNS IP updater";
wantedBy = ["multi-user.target"];
after = ["network.target"];
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
User = "root";
Type = "oneshot";
@ -286,8 +289,8 @@
systemd.services.wstunnel = {
description = "WSTunnel";
wantedBy = ["multi-user.target"];
after = ["network.target"];
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
User = "root";
Type = "oneshot";
@ -297,8 +300,8 @@
# TODO It seems to not work
systemd.timers.ydnsUpdater = {
wantedBy = ["timers.target"];
partOf = ["ydnsUpdater.service"];
wantedBy = [ "timers.target" ];
partOf = [ "ydnsUpdater.service" ];
timerConfig = {
OnCalendar = "*-*-* *:00:00"; # hourly
Unit = "ydnsUpdater.service";
@ -330,13 +333,13 @@
networking.nat.enable = true;
networking.nat.externalInterface = "enp0s10";
networking.nat.internalInterfaces = ["wg0"];
networking.nat.internalInterfaces = [ "wg0" ];
networking.wireguard.interfaces = {
# "wg0" is the network interface name. You can name the interface arbitrarily.
wg0 = {
# Determines the IP address and subnet of the server's end of the tunnel interface.
ips = ["10.100.0.1/24"];
ips = [ "10.100.0.1/24" ];
# The port that WireGuard listens to. Must be accessible by the client.
listenPort = 51820;
@ -366,7 +369,7 @@
# Public key of the peer (not a file path).
publicKey = "fCwjd75CefC9A7WqO7s3xfOk2nRcoTKfnAzDT6Lc5AA=";
# List of IPs assigned to this peer within the tunnel subnet. Used to configure routing.
allowedIPs = ["10.100.0.2/32"];
allowedIPs = [ "10.100.0.2/32" ];
}
];
};

View file

@ -1,6 +1,14 @@
{lib, ...}: {
{ lib, ... }:
{
boot = {
initrd.availableKernelModules = ["ohci_pci" "ehci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
initrd.availableKernelModules = [
"ohci_pci"
"ehci_pci"
"ahci"
"usb_storage"
"usbhid"
"sd_mod"
];
loader.grub = lib.mkForce {
enable = true;
version = 2;
@ -23,5 +31,5 @@
};
};
swapDevices = [{device = "/dev/disk/by-label/swap";}];
swapDevices = [ { device = "/dev/disk/by-label/swap"; } ];
}

82
hosts/janeway/default.nix Normal file
View file

@ -0,0 +1,82 @@
{
config,
pkgs,
fleetFlake,
...
}:
let
sshdTmpDirectory = "${config.user.home}/sshd-tmp";
sshdDirectory = "${config.user.home}/sshd";
port = 8022;
in
{
# Backup etc files instead of failing to activate generation if a file already exists in /etc
environment.etcBackupExtension = ".bak";
# Read the changelog before changing this value
system.stateVersion = "24.05";
# Set up nix for flakes
nix.extraOptions = ''
experimental-features = nix-command flakes
'';
# Set your time zone
time.timeZone = "Europe/Rome";
home-manager.config =
{ ... }:
{
home.stateVersion = "24.05";
_module.args = {
hostname = "janeway";
age.secrets = { };
};
imports = [ ../../hmModules/shell ];
};
build.activation.sshd =
let
keys = (builtins.import ../../lib).keys;
inherit (keys) hosts users;
in
''
$DRY_RUN_CMD mkdir $VERBOSE_ARG --parents "${config.user.home}/.ssh"
$DRY_RUN_CMD echo ${hosts.picard} > "${config.user.home}/.ssh/authorized_keys"
$DRY_RUN_CMD echo ${hosts.sisko} >> "${config.user.home}/.ssh/authorized_keys"
$DRY_RUN_CMD echo ${hosts.kirk} >> "${config.user.home}/.ssh/authorized_keys"
$DRY_RUN_CMD echo ${users.ccr-ssh} >> "${config.user.home}/.ssh/authorized_keys"
if [[ ! -d "${sshdDirectory}" ]]; then
$DRY_RUN_CMD rm $VERBOSE_ARG --recursive --force "${sshdTmpDirectory}"
$DRY_RUN_CMD mkdir $VERBOSE_ARG --parents "${sshdTmpDirectory}"
$VERBOSE_ECHO "Generating host keys..."
$DRY_RUN_CMD ${pkgs.openssh}/bin/ssh-keygen -t rsa -b 4096 -f "${sshdTmpDirectory}/ssh_host_rsa_key" -N ""
$VERBOSE_ECHO "Writing sshd_config..."
$DRY_RUN_CMD echo -e "HostKey ${sshdDirectory}/ssh_host_rsa_key\nPort ${toString port}\n" > "${sshdTmpDirectory}/sshd_config"
$DRY_RUN_CMD mv $VERBOSE_ARG "${sshdTmpDirectory}" "${sshdDirectory}"
fi
'';
environment.packages =
let
inherit (fleetFlake.inputs.ccrEmacs.packages.aarch64-linux) ccrEmacs;
in
[
pkgs.bottom
pkgs.helix
pkgs.stress
pkgs.openssh
pkgs.git
pkgs.btop
ccrEmacs
(pkgs.writeScriptBin "sshd-start" ''
#!${pkgs.runtimeShell}
echo "Starting sshd in non-daemonized way on port ${toString port}"
${pkgs.openssh}/bin/sshd -f "${sshdDirectory}/sshd_config" -D
'')
];
}

View file

@ -3,7 +3,8 @@
lib,
pkgs,
...
}: {
}:
{
imports =
fleetModules [
"common"
@ -26,34 +27,37 @@
"printing"
"pam"
"wireguard-client"
"restic"
"greetd"
"syncthing"
"mount-rock5b"
"mount-sisko"
"adb"
"binfmt"
"prometheus-exporters"
"alloy"
"syncthing"
"zerotier"
]
++ [
./disko.nix
];
++ [ ./disko.nix ];
ccr = {
enable = true;
autologin = true;
autologin = false;
modules = [
"git"
"git-workspace"
"helix"
"shell"
"zellij"
"element"
"emacs"
"firefox"
"gpg"
"mpv"
"password-store"
"slack"
"hyprland"
"niri"
"udiskie"
"xdg"
"spotify"
"lutris"
"wine"
"cura"
@ -61,23 +65,33 @@
"email"
"digikam"
"discord"
"remmina"
"calibre"
"zathura"
"imv"
"catppuccin"
"libreoffice"
"emacs"
"chirp"
"sdrangel"
"zmkbatx"
"moonlight"
"gimp"
];
extraGroups = [];
backupPaths = [];
extraGroups = [ "plugdev" ];
backupPaths = [ ];
};
boot.initrd.kernelModules = ["i915"];
boot.initrd.kernelModules = [ "i915" ];
boot.initrd.availableKernelModules = [
"nvme"
"xhci_pci"
"usb_storage"
"sd_mod"
];
boot.kernelModules = [
"kvm-intel"
];
boot.kernelModules = [ "kvm-intel" ];
boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_7;
boot.kernelPackages = pkgs.linuxPackages;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.systemd-boot = {
@ -90,10 +104,15 @@
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "schedutil";
hardware.enableRedistributableFirmware = lib.mkDefault true;
hardware.rtl-sdr.enable = true;
hardware.opengl = {
hardware.graphics = {
enable = true;
driSupport = true;
driSupport32Bit = true;
enable32Bit = true;
};
zramSwap = {
enable = true;
algorithm = "zstd";
};
}

View file

@ -8,12 +8,17 @@
config,
inputs,
...
} @ flakePartsArgs: let
}:
let
cfg = config.fleet;
in {
in
{
options.fleet = {
darwinHosts = lib.mkOption {
type = lib.types.attrsOf (lib.types.submodule ({name, ...}: {
type = lib.types.attrsOf (
lib.types.submodule (
{ name, ... }:
{
options = {
name = lib.mkOption {
description = "Host name";
@ -28,29 +33,79 @@ in {
nixpkgs = lib.mkOption {
description = "Used nixpkgs";
type = lib.types.anything;
default = inputs.nixpkgsUnstable;
default = inputs.nixpkgs;
};
extraModules = lib.mkOption {
description = "Extra NixOS modules";
type = lib.types.listOf lib.types.deferredModule;
default = [];
default = [ ];
};
overlays = lib.mkOption {
description = "Enabled Nixpkgs overlays";
type = lib.types.listOf (lib.mkOptionType {
type = lib.types.listOf (
lib.mkOptionType {
name = "nixpkgs-overlay";
description = "nixpkgs overlay";
check = lib.isFunction;
merge = lib.mergeOneOption;
});
default = [];
}
);
default = [ ];
};
};
}));
}
)
);
};
nixOnDroidHosts = lib.mkOption {
type = lib.types.attrsOf (
lib.types.submodule (
{ name, ... }:
{
options = {
name = lib.mkOption {
description = "Host name";
type = lib.types.strMatching "^$|^[[:alnum:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$";
default = name;
};
system = lib.mkOption {
description = "NixOS architecture (a.k.a. system)";
type = lib.types.str;
default = "aarch64-linux";
};
nixpkgs = lib.mkOption {
description = "Used nixpkgs";
type = lib.types.anything;
default = inputs.nixpkgs;
};
extraModules = lib.mkOption {
description = "Extra NixOS modules";
type = lib.types.listOf lib.types.deferredModule;
default = [ ];
};
overlays = lib.mkOption {
description = "Enabled Nixpkgs overlays";
type = lib.types.listOf (
lib.mkOptionType {
name = "nixpkgs-overlay";
description = "nixpkgs overlay";
check = lib.isFunction;
merge = lib.mergeOneOption;
}
);
default = [ ];
};
};
}
)
);
};
hosts = lib.mkOption {
description = "Host configuration";
type = lib.types.attrsOf (lib.types.submodule ({name, ...}: {
type = lib.types.attrsOf (
lib.types.submodule (
{ name, ... }:
{
options = {
name = lib.mkOption {
description = "Host name";
@ -65,7 +120,12 @@ in {
nixpkgs = lib.mkOption {
description = "Used nixpkgs";
type = lib.types.anything;
default = inputs.nixpkgsUnstable;
default = inputs.nixpkgs;
};
homeManager = lib.mkOption {
description = "Used home-manager";
type = lib.types.anything;
default = inputs.homeManager;
};
vpn = {
ip = lib.mkOption {
@ -79,7 +139,10 @@ in {
};
secrets = lib.mkOption {
description = "List of secrets names in the `secrets` folder";
type = lib.types.attrsOf (lib.types.submodule ({name, ...}: {
type = lib.types.attrsOf (
lib.types.submodule (
{ name, ... }:
{
options = {
owner = lib.mkOption {
type = lib.types.str;
@ -99,8 +162,10 @@ in {
default = "0440";
};
};
}));
default = {};
}
)
);
default = { };
};
enableHomeManager = lib.mkOption {
description = "Enable home-manager module";
@ -109,23 +174,25 @@ in {
};
overlays = lib.mkOption {
description = "Enabled Nixpkgs overlays";
type = lib.types.listOf (lib.mkOptionType {
type = lib.types.listOf (
lib.mkOptionType {
name = "nixpkgs-overlay";
description = "nixpkgs overlay";
check = lib.isFunction;
merge = lib.mergeOneOption;
});
default = [];
}
);
default = [ ];
};
extraModules = lib.mkOption {
description = "Extra NixOS modules";
type = lib.types.listOf lib.types.deferredModule;
default = [];
default = [ ];
};
extraHmModules = lib.mkOption {
description = "Extra home-manager modules";
type = lib.types.listOf lib.types.deferredModule;
default = [];
default = [ ];
};
extraHmModulesUser = lib.mkOption {
description = "User for which to import extraHmModulesUser";
@ -133,16 +200,15 @@ in {
default = "ccr";
};
};
config.overlays = with inputs;
[
nur.overlay
]
++ cfg.overlays;
}));
default = {};
config.overlays = with inputs; cfg.overlays;
}
)
);
default = { };
};
vpnExtra = lib.mkOption {
type = lib.types.attrsOf (lib.types.submodule {
type = lib.types.attrsOf (
lib.types.submodule {
options = {
ip = lib.mkOption {
description = "Wireguard VPN ip";
@ -153,73 +219,85 @@ in {
type = lib.types.str;
};
};
});
default = {};
}
);
default = { };
};
_mkNixosConfiguration = lib.mkOption {
description = "Function returning a proper NixOS configuration";
type = lib.types.functionTo (lib.types.functionTo lib.types.attrs); # TODO improve this type
internal = true;
default = hostname: config:
default =
hostname: config:
config.nixpkgs.lib.nixosSystem {
inherit (config) system;
modules =
[
({lib, ...}: {
(
{ lib, ... }:
{
networking.hostName = lib.mkForce hostname;
nixpkgs.overlays = config.overlays;
})
}
)
"${self.outPath}/hosts/${hostname}"
]
++ (lib.optionals (config.secrets != []) [
++ (lib.optionals (config.secrets != [ ]) [
inputs.agenix.nixosModules.default
({lib, ...}: let
(
{ lib, ... }:
let
allSecrets = lib.mapAttrs' (name: value: {
name = lib.removeSuffix ".age" name;
inherit value;
}) (import "${self.outPath}/secrets/secrets.nix");
filteredSecrets =
lib.filterAttrs
(name: _: builtins.hasAttr name config.secrets)
allSecrets;
in {
age.secrets =
lib.mapAttrs' (name: _: {
filteredSecrets = lib.filterAttrs (name: _: builtins.hasAttr name config.secrets) allSecrets;
in
{
age.secrets = lib.mapAttrs' (name: _: {
name = builtins.baseNameOf name;
value = {
inherit (config.secrets.${name}) owner group file mode;
inherit (config.secrets.${name})
owner
group
file
mode
;
};
})
filteredSecrets;
})
}) filteredSecrets;
}
)
])
++ (lib.optionals config.enableHomeManager (let
++ (lib.optionals config.enableHomeManager (
let
user = config.extraHmModulesUser;
extraHmModules = config.extraHmModules;
in [
inputs.homeManager.nixosModule
({
in
[
config.homeManager.nixosModules.home-manager
(
{
config,
pkgs,
...
}: {
}:
{
home-manager.users."${user}" = {
imports = extraHmModules;
_module.args = {
age = config.age or {};
age = config.age or { };
fleetFlake = self;
pkgsStable = inputs.nixpkgsStable.legacyPackages.${pkgs.system};
};
};
})
]))
}
)
]
))
++ config.extraModules;
specialArgs = {
fleetModules = builtins.map (moduleName: "${self.outPath}/modules/${moduleName}");
fleetHmModules = builtins.map (moduleName: "${self.outPath}/hmModules/${moduleName}");
fleetFlake = self;
vpn = cfg.vpnExtra // (lib.mapAttrs (_: host: host.vpn) cfg.hosts);
inherit (flakePartsArgs.config.allSystems.${config.system}.allModuleArgs.config._module.args) inputs';
};
};
};
@ -227,21 +305,55 @@ in {
description = "Function returning a proper Darwin configuration";
type = lib.types.functionTo (lib.types.functionTo lib.types.attrs); # TODO improve this type
internal = true;
default = hostname: config:
default =
hostname: config:
inputs.nixDarwin.lib.darwinSystem {
modules = [
({
(
{
lib,
pkgs,
...
}: {
}:
{
networking.hostName = lib.mkForce hostname;
nixpkgs.overlays = config.overlays;
nixpkgs.hostPlatform = config.system;
})
}
)
"${self.outPath}/hosts/${hostname}"
];
};
};
_mkNixOnDroidConfiguration = lib.mkOption {
description = "Function returning a proper nix-on-droid configuration";
type = lib.types.functionTo (lib.types.functionTo lib.types.attrs); # TODO improve this type
internal = true;
default =
hostname: config:
inputs.nix-on-droid.lib.nixOnDroidConfiguration {
pkgs = inputs.nixpkgs.legacyPackages.aarch64-linux;
modules = [
(
{
...
}:
{
nixpkgs.overlays = config.overlays;
_module.args.fleetFlake = self;
}
)
"${self.outPath}/hosts/${hostname}"
];
};
};
};
config = {
flake.nixosConfigurations = lib.mapAttrs config.fleet._mkNixosConfiguration config.fleet.hosts;
flake.darwinConfigurations = lib.mapAttrs config.fleet._mkDarwinConfiguration config.fleet.darwinHosts;
flake.nixOnDroidConfigurations = lib.mapAttrs config.fleet._mkNixOnDroidConfiguration config.fleet.nixOnDroidHosts;
};
}

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