Compare commits

..

21 commits

Author SHA1 Message Date
33175c5757 flake.lock: Update
Some checks failed
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
BUILD aarch64-linux.sisko
/ test (push) Successful in 29m29s
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/96e078c646b711aee04b82ba01aefbff87004ded' (2025-04-26)
  → 'github:ryantm/agenix/4835b1dc898959d8547a871ef484930675cb47f1' (2025-05-18)
• Updated input 'catppuccin':
    'github:catppuccin/nix/a5db9e41a4dccfa5ffe38e6f1841a5f9ad5c5c04' (2025-05-02)
  → 'github:catppuccin/nix/0ba11b12be81f0849a89ed17ab635164ea8f0112' (2025-05-24)
• Updated input 'disko':
    'github:nix-community/disko/d0c543d740fad42fe2c035b43c9d41127e073c78' (2025-04-28)
  → 'github:nix-community/disko/a894f2811e1ee8d10c50560551e50d6ab3c392ba' (2025-05-26)
• Updated input 'dream2nix':
    'github:nix-community/dream2nix/8ce6284ff58208ed8961681276f82c2f8f978ef4' (2024-12-25)
  → 'github:nix-community/dream2nix/6fd6d9188f32efd1e1656b3c3e63a67f9df7b636' (2025-05-19)
• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/66bb2d7a4df96d0c1e63648850b7aed1b2e8d683' (2025-05-03)
  → 'github:nix-community/emacs-overlay/e048433838750a5fd9036e56dd8f59affa6d676b' (2025-05-26)
• Updated input 'emacs-overlay/nixpkgs':
    'github:NixOS/nixpkgs/f02fddb8acef29a8b32f10a335d44828d7825b78' (2025-05-01)
  → 'github:NixOS/nixpkgs/063f43f2dbdef86376cc29ad646c45c46e93234c' (2025-05-23)
• Updated input 'emacs-overlay/nixpkgs-stable':
    'github:NixOS/nixpkgs/bf3287dac860542719fe7554e21e686108716879' (2025-05-02)
  → 'github:NixOS/nixpkgs/f09dede81861f3a83f7f06641ead34f02f37597f' (2025-05-23)
• Updated input 'git-hooks-nix':
    'github:cachix/git-hooks.nix/dcf5072734cb576d2b0c59b2ac44f5050b5eac82' (2025-03-22)
  → 'github:cachix/git-hooks.nix/80479b6ec16fefd9c1db3ea13aeb038c60530f46' (2025-05-16)
• Updated input 'homeManager':
    'github:nix-community/home-manager/c0962eeeabfb8127713f859ec8a5f0e86dead0f2' (2025-05-03)
  → 'github:nix-community/home-manager/d23d20f55d49d8818ac1f1b2783671e8a6725022' (2025-05-26)
• Updated input 'lanzaboote':
    'github:nix-community/lanzaboote/995637eb3ab78eac33f8ee6b45cc2ecd5ede12ba' (2025-04-21)
  → 'github:nix-community/lanzaboote/2e425f3da6ce7f5b34fa6eaf7a2a7f78dbabcc85' (2025-05-12)
• Updated input 'lanzaboote/crane':
    'github:ipetkov/crane/bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5' (2025-03-09)
  → 'github:ipetkov/crane/dfd9a8dfd09db9aad544c4d3b6c47b12562544a5' (2025-05-03)
• Updated input 'lanzaboote/flake-parts':
    'github:hercules-ci/flake-parts/f4330d22f1c5d2ba72d3d22df5597d123fdb60a9' (2025-03-07)
  → 'github:hercules-ci/flake-parts/c621e8422220273271f52058f618c94e405bb0f5' (2025-04-01)
• Updated input 'lanzaboote/pre-commit-hooks-nix':
    'github:cachix/pre-commit-hooks.nix/b5a62751225b2f62ff3147d0a334055ebadcd5cc' (2025-03-07)
  → 'github:cachix/pre-commit-hooks.nix/fa466640195d38ec97cf0493d6d6882bc4d14969' (2025-05-06)
• Updated input 'lanzaboote/rust-overlay':
    'github:oxalica/rust-overlay/c777dc8a1e35407b0e80ec89817fe69970f4e81a' (2025-03-10)
  → 'github:oxalica/rust-overlay/5b07506ae89b025b14de91f697eba23b48654c52' (2025-05-12)
• Updated input 'lix':
    'git+https://git@git.lix.systems/lix-project/lix?ref=refs/heads/main&rev=4e84fd9a0061a04627ec6962c0ed08c2ad0b8a7f' (2025-05-02)
  → 'git+https://git@git.lix.systems/lix-project/lix?ref=refs/heads/main&rev=dbff52bfbc48ead789888bf24422d0ef6f7ba9a8' (2025-05-25)
• Updated input 'lix-module':
    'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=fa69ae26cc32dda178117b46487c2165c0e08316' (2025-03-25)
  → 'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=3c23c6ae2aecc1f76ae7993efe1a78b5316f0700' (2025-05-19)
• Updated input 'mobile-nixos':
    'github:NixOS/mobile-nixos/6679fd7a8dd4ccf4aa538b82216723861cfe61a2' (2025-04-05)
  → 'github:NixOS/mobile-nixos/6e249e58b5d8166738ebcfd401f05f7496049dd3' (2025-05-25)
• Updated input 'nix-on-droid':
    'github:nix-community/nix-on-droid/5d88ff2519e4952f8d22472b52c531bb5f1635fc' (2024-09-06)
  → 'github:nix-community/nix-on-droid/40b8c7465f78887279a0a3c743094fa6ea671ab1' (2025-05-16)
• Updated input 'nixosHardware':
    'github:NixOS/nixos-hardware/72081c9fbbef63765ae82bff9727ea79cc86bd5b' (2025-04-29)
  → 'github:NixOS/nixos-hardware/11f2d9ea49c3e964315215d6baa73a8d42672f06' (2025-05-22)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f02fddb8acef29a8b32f10a335d44828d7825b78' (2025-05-01)
  → 'github:NixOS/nixpkgs/063f43f2dbdef86376cc29ad646c45c46e93234c' (2025-05-23)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/29ec5026372e0dec56f890e50dbe4f45930320fd' (2025-05-02)
  → 'github:numtide/treefmt-nix/1f3f7b784643d488ba4bf315638b2b0a4c5fb007' (2025-05-26)
2025-05-26 15:02:07 +00:00
81da82c1fb
Backup /mnt/hd/roam directory with restic
All checks were successful
/ test (push) Successful in -45s
2025-05-24 10:12:20 +02:00
7188dbf665
Add nix-netrc secret to picard, pike, kirk and sisko
All checks were successful
EVAL aarch64-linux.sisko
/ test (push) Successful in -2s
2025-05-23 21:34:13 +02:00
959016455f
Remove unused caches 2025-05-23 21:32:48 +02:00
ddfb93214f
Use netrc provided by agenix 2025-05-23 21:32:34 +02:00
c8e32b689b
Add netrc secret 2025-05-23 21:32:11 +02:00
8e28001eab
Org-roam changes
Some checks are pending
/ test (push) Waiting to run
2025-05-23 21:08:53 +02:00
6cd58095e4
Keybinding for quick fixes 2025-05-23 21:08:37 +02:00
146eee5abe
Fix typo 2025-05-23 21:08:32 +02:00
1fd1c845e8
Move arbi configuration file to secrets
Some checks failed
/ test (push) Has been cancelled
2025-05-21 21:04:04 +02:00
7e92d09299
Format 2025-05-21 21:03:54 +02:00
9b907264c2
Disable subscript after _ 2025-05-21 21:03:24 +02:00
24a80896a8
New gptel tools
All checks were successful
EVAL aarch64-linux.sisko
/ test (push) Successful in 10s
2025-05-21 17:59:56 +02:00
6d715d8878
Rename org-roam directory 2025-05-21 17:59:27 +02:00
a7f927516e
Format 2025-05-21 17:59:21 +02:00
fd793b791d
Backup roam directory with unison 2025-05-21 17:58:55 +02:00
5692a37c88
Add org-roam-download 2025-05-21 17:58:22 +02:00
ff5359cd50
Disable syncthing 2025-05-21 17:58:04 +02:00
22b1484026
Allow jellyfin access amule downloads
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 40m25s
2025-05-20 09:41:29 +02:00
839cf0df5f
Use NVidia GPU 2025-05-20 09:40:48 +02:00
251266db4c
Remove unused secrets 2025-05-20 09:40:33 +02:00
16 changed files with 304 additions and 219 deletions

76
flake.lock generated
View file

@ -26,11 +26,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1747519437, "lastModified": 1748080874,
"narHash": "sha256-uv9Wv59d+mckS2CkorOF484wp2G5TNGijdoBZ5RkAk0=", "narHash": "sha256-sUebEzAkrY8Aq5G0GHFyRddmRNGP/a2iTtV7ISNvi/c=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "3ba714046ee32373e88166e6e9474d6ae6a5b734", "rev": "0ba11b12be81f0849a89ed17ab635164ea8f0112",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -83,11 +83,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747621015, "lastModified": 1748225455,
"narHash": "sha256-j0fo1rNxZvmFLMaE945UrbLJZAHTlQmq0/QMgOP4GTs=", "narHash": "sha256-AzlJCKaM4wbEyEpV3I/PUq5mHnib2ryEy32c+qfj6xk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "cec44d77d9dacf0c91d3d51aff128fefabce06ee", "rev": "a894f2811e1ee8d10c50560551e50d6ab3c392ba",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -122,11 +122,11 @@
"nixpkgs-stable": "nixpkgs-stable" "nixpkgs-stable": "nixpkgs-stable"
}, },
"locked": { "locked": {
"lastModified": 1747618089, "lastModified": 1748248657,
"narHash": "sha256-mbzwxQlxNamIMErEfwWRZ+ECmlQzxJ4eJvOM6/fxV5s=", "narHash": "sha256-zqhc7qyoRmgZpkvjocYEui9xYlzL90nqPf40zADGruM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "emacs-overlay", "repo": "emacs-overlay",
"rev": "1b2bc802bbac29f4695e39fbf982944c0999b45d", "rev": "e048433838750a5fd9036e56dd8f59affa6d676b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -387,11 +387,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747565775, "lastModified": 1748227609,
"narHash": "sha256-B6jmKHUEX1jxxcdoYHl7RVaeohtAVup8o3nuVkzkloA=", "narHash": "sha256-SaSdslyo6UGDpPUlmrPA4dWOEuxCy2ihRN9K6BnqYsA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "97118a310eb8e13bc1b9b12d67267e55b7bee6c8", "rev": "d23d20f55d49d8818ac1f1b2783671e8a6725022",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -464,11 +464,11 @@
"lix": { "lix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1747664434, "lastModified": 1748182888,
"narHash": "sha256-ph9fCCvzgZ1PNOu82SSoceX/tYZ5MfmX3PkBxBiNxwA=", "narHash": "sha256-tm3yi3KL+KjMnLZFXKR1ioI/Rk8DIa2n1NNE6I99BpU=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "eb18a90afbe0ade000d957cda344a5bcb3d565d4", "rev": "dbff52bfbc48ead789888bf24422d0ef6f7ba9a8",
"revCount": 17900, "revCount": 17946,
"type": "git", "type": "git",
"url": "https://git@git.lix.systems/lix-project/lix" "url": "https://git@git.lix.systems/lix-project/lix"
}, },
@ -489,11 +489,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1746839253, "lastModified": 1747667424,
"narHash": "sha256-pRwi8Wn8Yofj459gq+3oIRy8F3SXeEJ6mzfIAUgM9nA=", "narHash": "sha256-7EICjbmG6lApWKhFtwvZovdcdORY1CEe6/K7JwtpYfs=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "58baedd53f9da81fd728a4f3b08c378e5ba9ae58", "rev": "3c23c6ae2aecc1f76ae7993efe1a78b5316f0700",
"revCount": 142, "revCount": 144,
"type": "git", "type": "git",
"url": "https://git.lix.systems/lix-project/nixos-module" "url": "https://git.lix.systems/lix-project/nixos-module"
}, },
@ -505,11 +505,11 @@
"mobile-nixos": { "mobile-nixos": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1743812405, "lastModified": 1748200777,
"narHash": "sha256-BedQ9Z3+nqtp9BRjHjJNPUeLIMVbTsP3Udbz0b1cUn0=", "narHash": "sha256-ELbQ7Apk0QzfhO8WjQIqEBuN2bEnGQHNxeiOSx/mU38=",
"owner": "NixOS", "owner": "NixOS",
"repo": "mobile-nixos", "repo": "mobile-nixos",
"rev": "6679fd7a8dd4ccf4aa538b82216723861cfe61a2", "rev": "6e249e58b5d8166738ebcfd401f05f7496049dd3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -569,11 +569,11 @@
}, },
"nixosHardware": { "nixosHardware": {
"locked": { "locked": {
"lastModified": 1747129300, "lastModified": 1747900541,
"narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", "narHash": "sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "e81fd167b33121269149c57806599045fd33eeed", "rev": "11f2d9ea49c3e964315215d6baa73a8d42672f06",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -647,11 +647,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1747485343, "lastModified": 1748037224,
"narHash": "sha256-YbsZyuRE1tobO9sv0PUwg81QryYo3L1F3R3rF9bcG38=", "narHash": "sha256-92vihpZr6dwEMV6g98M5kHZIttrWahb9iRPBm1atcPk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9b5ac7ad45298d58640540d0323ca217f32a6762", "rev": "f09dede81861f3a83f7f06641ead34f02f37597f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -711,11 +711,11 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1747542820, "lastModified": 1748026106,
"narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", "narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "rev": "063f43f2dbdef86376cc29ad646c45c46e93234c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -742,11 +742,11 @@
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1747542820, "lastModified": 1748026106,
"narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", "narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "rev": "063f43f2dbdef86376cc29ad646c45c46e93234c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1009,11 +1009,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747469671, "lastModified": 1748243702,
"narHash": "sha256-bo1ptiFoNqm6m1B2iAhJmWCBmqveLVvxom6xKmtuzjg=", "narHash": "sha256-9YzfeN8CB6SzNPyPm2XjRRqSixDopTapaRsnTpXUEY8=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "ab0378b61b0d85e73a8ab05d5c6029b5bd58c9fb", "rev": "1f3f7b784643d488ba4bf315638b2b0a4c5fb007",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -28,6 +28,7 @@
(eglot-events-buffer-size 0) ; disable events logging, it should be enabled only when debuggigng LSP servers (eglot-events-buffer-size 0) ; disable events logging, it should be enabled only when debuggigng LSP servers
(eglot-sync-connect-nil 0) ; disable UI freeze when opening big files (eglot-sync-connect-nil 0) ; disable UI freeze when opening big files
(eglot-connect-timeout nil) ; never timeout (eglot-connect-timeout nil) ; never timeout
:bind (("C-q" . eglot-code-action-quickfix))
) )
(use-package consult-eglot (use-package consult-eglot
@ -163,8 +164,8 @@
:after marginalia :after marginalia
:config (nerd-icons-completion-mode +1) :config (nerd-icons-completion-mode +1)
:hook ( :hook (
(marginalia-mode . nerd-icons-completion-marginalia-setup) (marginalia-mode . nerd-icons-completion-marginalia-setup)
(ibuffer-mode . nerd-icons-completion-marginalia-setup))) (ibuffer-mode . nerd-icons-completion-marginalia-setup)))
(use-package nerd-icons-ibuffer (use-package nerd-icons-ibuffer
:hook (ibuffer-mode . nerd-icons-ibuffer-mode)) :hook (ibuffer-mode . nerd-icons-ibuffer-mode))
@ -208,7 +209,7 @@
(treemacs-display-current-project-exclusively t) (treemacs-display-current-project-exclusively t)
(treemacs-git-mode 'deferred) (treemacs-git-mode 'deferred)
:bind (("C-c w t" . treemacs-select-window) :bind (("C-c w t" . treemacs-select-window)
("C-c o T" . treemacs)) ("C-c o T" . treemacs))
) )
(use-package meow (use-package meow
@ -219,8 +220,8 @@
(require 'meow-tree-sitter) (require 'meow-tree-sitter)
(meow-tree-sitter-register-defaults) (meow-tree-sitter-register-defaults)
(add-hook 'after-make-frame-functions (defun ccr/meow--prepare-face (_) (add-hook 'after-make-frame-functions (defun ccr/meow--prepare-face (_)
(meow--prepare-face) (meow--prepare-face)
(remove-hook 'after-make-frame-functions 'ccr/meow--prepare-face))) (remove-hook 'after-make-frame-functions 'ccr/meow--prepare-face)))
(add-to-list 'meow-mode-state-list '(eshell-mode . insert)) (add-to-list 'meow-mode-state-list '(eshell-mode . insert))
(add-to-list 'meow-mode-state-list '(eat-mode . insert)) (add-to-list 'meow-mode-state-list '(eat-mode . insert))
(add-to-list 'meow-mode-state-list '(notmuch-hello-mode . insert)) (add-to-list 'meow-mode-state-list '(notmuch-hello-mode . insert))
@ -331,44 +332,44 @@
"Interactively vertically resize the window" "Interactively vertically resize the window"
(interactive "cHit >/< to enlarge/shrink") (interactive "cHit >/< to enlarge/shrink")
(cond ((eq key (string-to-char ">")) (cond ((eq key (string-to-char ">"))
(enlarge-window-horizontally ccr/v-resize-amount) (enlarge-window-horizontally ccr/v-resize-amount)
(call-interactively 'ccr/v-resize)) (call-interactively 'ccr/v-resize))
((eq key (string-to-char "<")) ((eq key (string-to-char "<"))
(enlarge-window-horizontally (- ccr/v-resize-amount)) (enlarge-window-horizontally (- ccr/v-resize-amount))
(call-interactively 'ccr/v-resize)) (call-interactively 'ccr/v-resize))
(t (push key unread-command-events)))) (t (push key unread-command-events))))
(defun ccr/h-resize (key) (defun ccr/h-resize (key)
"Interactively horizontally resize the window" "Interactively horizontally resize the window"
(interactive "cHit >/< to enlarge/shrink") (interactive "cHit >/< to enlarge/shrink")
(cond ((eq key (string-to-char ">")) (cond ((eq key (string-to-char ">"))
(enlarge-window ccr/h-resize-amount) (enlarge-window ccr/h-resize-amount)
(call-interactively 'ccr/h-resize)) (call-interactively 'ccr/h-resize))
((eq key (string-to-char "<")) ((eq key (string-to-char "<"))
(enlarge-window (- ccr/h-resize-amount)) (enlarge-window (- ccr/h-resize-amount))
(call-interactively 'ccr/h-resize)) (call-interactively 'ccr/h-resize))
(t (push key unread-command-events)))) (t (push key unread-command-events))))
:bind (("C-c w k" . windmove-up) :bind (("C-c w k" . windmove-up)
("C-c w l" . windmove-right) ("C-c w l" . windmove-right)
("C-c w j" . windmove-down) ("C-c w j" . windmove-down)
("C-c w h" . windmove-left) ("C-c w h" . windmove-left)
("M-k" . windmove-up) ("M-k" . windmove-up)
("M-l" . windmove-right) ("M-l" . windmove-right)
("M-j" . windmove-down) ("M-j" . windmove-down)
("M-h" . windmove-left) ("M-h" . windmove-left)
("C-c w <up>" . windmove-up) ("C-c w <up>" . windmove-up)
("C-c w <right>" . windmove-right) ("C-c w <right>" . windmove-right)
("C-c w <down>" . windmove-down) ("C-c w <down>" . windmove-down)
("C-c w <left>" . windmove-left) ("C-c w <left>" . windmove-left)
("C-c w q" . delete-window) ("C-c w q" . delete-window)
("C-c w K" . windmove-delete-up) ("C-c w K" . windmove-delete-up)
("C-c w L" . windmove-delete-right) ("C-c w L" . windmove-delete-right)
("C-c w J" . windmove-delete-down) ("C-c w J" . windmove-delete-down)
("C-c w H" . windmove-delete-left) ("C-c w H" . windmove-delete-left)
("C-c w x" . kill-buffer-and-window) ("C-c w x" . kill-buffer-and-window)
("C-c w v" . split-window-right) ("C-c w v" . split-window-right)
("C-c w s" . split-window-below) ("C-c w s" . split-window-below)
("C-c w V" . ccr/v-resize) ("C-c w V" . ccr/v-resize)
("C-c w S" . ccr/h-resize))) ("C-c w S" . ccr/h-resize)))
(use-package vertico (use-package vertico
:custom :custom
@ -379,10 +380,10 @@
(vertico-cycle t) (vertico-cycle t)
(vertico-mode t) (vertico-mode t)
:bind (:map vertico-map :bind (:map vertico-map
(("DEL" . vertico-directory-delete-char) (("DEL" . vertico-directory-delete-char)
("C-DEL" . vertico-directory-delete-word) ("C-DEL" . vertico-directory-delete-word)
("M-q" . vertico-quick-insert) ("M-q" . vertico-quick-insert)
("C-q" . vertico-quick-exit)))) ("C-q" . vertico-quick-exit))))
;; (use-package vertico-posframe ;; (use-package vertico-posframe
;; :after vertico ;; :after vertico
@ -417,7 +418,7 @@
("C-c f f" . consult-find) ("C-c f f" . consult-find)
("C-c F" . consult-ripgrep) ("C-c F" . consult-ripgrep)
("C-c f" . consult-find) ("C-c f" . consult-find)
("C-c l" . consult-line) ("C-c l" . consult-line)
("C-c L" . consult-focus-lines) ("C-c L" . consult-focus-lines)
("C-c m" . consult-mark) ("C-c m" . consult-mark)
("C-c o o" . consult-outline) ("C-c o o" . consult-outline)
@ -445,9 +446,9 @@
(tab-always-indent 'complete) (tab-always-indent 'complete)
(kind-icon-default-face 'corfu-default) (kind-icon-default-face 'corfu-default)
:bind (:map corfu-map :bind (:map corfu-map
(("M-d" . corfu-doc-toggle) (("M-d" . corfu-doc-toggle)
("M-l" . corfu-show-location) ("M-l" . corfu-show-location)
("SPC" . corfu-insert-separator))) ("SPC" . corfu-insert-separator)))
:init :init
(global-corfu-mode)) (global-corfu-mode))
@ -458,7 +459,7 @@
(use-package prog-mode (use-package prog-mode
:hook ((prog-mode . hl-line-mode) :hook ((prog-mode . hl-line-mode)
(prog-mode . display-line-numbers-mode))) (prog-mode . display-line-numbers-mode)))
(use-package which-key :delight :config (use-package which-key :delight :config
(which-key-mode) (which-key-mode)
@ -500,28 +501,28 @@
(use-package nix-ts-mode (use-package nix-ts-mode
:hook ( :hook (
(nix-ts-mode . (lambda () (nix-ts-mode . (lambda ()
(require 'eglot) (require 'eglot)
(add-to-list 'eglot-server-programs (add-to-list 'eglot-server-programs
'(nix-ts-mode . ("nixd"))) '(nix-ts-mode . ("nixd")))
(eglot-ensure))) (eglot-ensure)))
(nix-ts-mode . electric-pair-mode) (nix-ts-mode . electric-pair-mode)
(nix-ts-mode . (lambda () (setq-local indent-bars-spacing-override 2) (indent-bars-mode))) (nix-ts-mode . (lambda () (setq-local indent-bars-spacing-override 2) (indent-bars-mode)))
(nix-ts-mode . (lambda () (nix-ts-mode . (lambda ()
(setq-local (setq-local
treesit-font-lock-settings treesit-font-lock-settings
(append treesit-font-lock-settings (append treesit-font-lock-settings
(treesit-font-lock-rules (treesit-font-lock-rules
:language 'nix :language 'nix
:feature 'function :feature 'function
:override t :override t
`((formal) @font-lock-type-face) `((formal) @font-lock-type-face)
:language 'nix :language 'nix
:feature 'function :feature 'function
`((attrpath) @font-lock-function-name-face) `((attrpath) @font-lock-function-name-face)
))))) )))))
) )
:mode "\\.nix\\'" :mode "\\.nix\\'"
) )
@ -533,33 +534,33 @@
(use-package python-ts-mode (use-package python-ts-mode
:hook ((python-ts-mode . (lambda () :hook ((python-ts-mode . (lambda ()
(require 'eglot) (require 'eglot)
(add-to-list 'eglot-server-programs (add-to-list 'eglot-server-programs
'(python-ts-mode . ("jedi-language-server"))) '(python-ts-mode . ("jedi-language-server")))
(eglot-ensure)))) (eglot-ensure))))
:mode "\\.py\\'") :mode "\\.py\\'")
(use-package solidity-mode (use-package solidity-mode
:hook ((solidity-mode . (lambda () :hook ((solidity-mode . (lambda ()
(require 'eglot) (require 'eglot)
(add-to-list 'eglot-server-programs (add-to-list 'eglot-server-programs
'(solidity-mode . ("nomicfoundation-solidity-language-server" "--stdio"))) '(solidity-mode . ("nomicfoundation-solidity-language-server" "--stdio")))
(eglot-ensure)))) (eglot-ensure))))
:mode "\\.sol\\'") :mode "\\.sol\\'")
(use-package typescript-ts-mode (use-package typescript-ts-mode
:hook ((typescript-ts-mode . (lambda () :hook ((typescript-ts-mode . (lambda ()
(require 'eglot) (require 'eglot)
(eglot-ensure)))) (eglot-ensure))))
:mode "\\.ts\\'") :mode "\\.ts\\'")
(use-package rust-mode (use-package rust-mode
:init :init
(setq rust-mode-treesitter-derive t) (setq rust-mode-treesitter-derive t)
:hook ((rust-mode . (lambda () :hook ((rust-mode . (lambda ()
(require 'eglot) (require 'eglot)
(eglot-ensure))))) (eglot-ensure)))))
(use-package haskell-ts-mode (use-package haskell-ts-mode
:hook ((haskell--ts-mode . eglot-ensure)) :hook ((haskell--ts-mode . eglot-ensure))
@ -581,11 +582,11 @@
:after eglot :after eglot
:config :config
(add-to-list 'eglot-server-programs (add-to-list 'eglot-server-programs
'(terraform-mode . ("terraform-lsp"))) '(terraform-mode . ("terraform-lsp")))
:hook ((terraform-mode . eglot-ensure) :hook ((terraform-mode . eglot-ensure)
;; (terraform-mode . tree-sitter-hl-mode) ;; (terraform-mode . tree-sitter-hl-mode)
(terraform-mode . (lambda () (setq indent-bars-spacing-override 2) (indent-bars-mode))) (terraform-mode . (lambda () (setq indent-bars-spacing-override 2) (indent-bars-mode)))
)) ))
(use-package yaml-mode (use-package yaml-mode
:hook (yaml-mode . yaml-ts-mode)) :hook (yaml-mode . yaml-ts-mode))
@ -629,7 +630,7 @@
(use-package aggressive-indent (use-package aggressive-indent
:hook ((lisp-mode . aggressive-indent-mode) :hook ((lisp-mode . aggressive-indent-mode)
(emacs-lisp-mode . aggressive-indent-mode))) (emacs-lisp-mode . aggressive-indent-mode)))
(use-package eldoc (use-package eldoc
:delight) :delight)
@ -679,8 +680,8 @@
(eat-eshell-mode) (eat-eshell-mode)
(eat-eshell-visual-command-mode) (eat-eshell-visual-command-mode)
:custom ((eshell-prefer-lisp-functions t) :custom ((eshell-prefer-lisp-functions t)
(eshell-history-size 10000) (eshell-history-size 10000)
(eshell-banner-message "")) (eshell-banner-message ""))
:config :config
(defun ccr/start-eshell () ;; Used from outside Emacs by emacsclient --eval (defun ccr/start-eshell () ;; Used from outside Emacs by emacsclient --eval
(eshell 'N) (eshell 'N)
@ -694,17 +695,17 @@
;; (add-to-list 'eshell-modules-list 'eshell-smart) ;; plan 9 style ;; (add-to-list 'eshell-modules-list 'eshell-smart) ;; plan 9 style
(setq ccr/eshell-aliases (setq ccr/eshell-aliases
'((g . magit) '((g . magit)
(gl . magit-log) (gl . magit-log)
(d . dired) (d . dired)
(o . find-file) (o . find-file)
(oo . find-file-other-window) (oo . find-file-other-window)
(l . (lambda () (eshell/ls '-la))) (l . (lambda () (eshell/ls '-la)))
(eshell/clear . eshell/clear-scrollback))) (eshell/clear . eshell/clear-scrollback)))
(mapc (lambda (alias) (mapc (lambda (alias)
(defalias (car alias) (cdr alias))) (defalias (car alias) (cdr alias)))
ccr/eshell-aliases) ccr/eshell-aliases)
(defun ccr/eshell-get-current-input () (defun ccr/eshell-get-current-input ()
@ -712,35 +713,35 @@
(when (eq major-mode 'eshell-mode) (when (eq major-mode 'eshell-mode)
(let ((start (save-excursion (eshell-bol) (point))) (let ((start (save-excursion (eshell-bol) (point)))
(end (point-at-eol))) (end (point-at-eol)))
(buffer-substring-no-properties start end)))) (buffer-substring-no-properties start end))))
(defun ccr/eshell-replace-current-input (new-input) (defun ccr/eshell-replace-current-input (new-input)
(when (eq major-mode 'eshell-mode) (when (eq major-mode 'eshell-mode)
(let ((inhibit-read-only t)) (let ((inhibit-read-only t))
(eshell-bol) (eshell-bol)
(delete-region (point) (point-at-eol)) (delete-region (point) (point-at-eol))
(insert new-input) (insert new-input)
(end-of-line)))) (end-of-line))))
(defun ccr/eshell-history () (defun ccr/eshell-history ()
(interactive) (interactive)
(when (eq major-mode 'eshell-mode) (when (eq major-mode 'eshell-mode)
(let* ((current-input (ccr/eshell-get-current-input)) (let* ((current-input (ccr/eshell-get-current-input))
(eshell-history (when (and eshell-history-file-name (eshell-history (when (and eshell-history-file-name
(file-readable-p eshell-history-file-name)) (file-readable-p eshell-history-file-name))
(f-read-text eshell-history-file-name))) (f-read-text eshell-history-file-name)))
(bash-history (when (file-readable-p "~/.bash_history") (bash-history (when (file-readable-p "~/.bash_history")
(f-read-text "~/.bash_history"))) (f-read-text "~/.bash_history")))
(history (split-string (concat (or eshell-history "") "\n" (history (split-string (concat (or eshell-history "") "\n"
(or bash-history "")) "\n" t)) (or bash-history "")) "\n" t))
(selection (completing-read "History: " history nil t current-input))) (selection (completing-read "History: " history nil t current-input)))
(ccr/eshell-replace-current-input selection)))) (ccr/eshell-replace-current-input selection))))
:bind (("C-c o e" . project-eshell) :bind (("C-c o e" . project-eshell)
(:map eshell-mode-map (:map eshell-mode-map
("C-r" . ccr/eshell-history) ("C-r" . ccr/eshell-history)
("C-<return>" . corfu-send) ("C-<return>" . corfu-send)
))) ;; i.e. just C-r in semi-char-mode ))) ;; i.e. just C-r in semi-char-mode
(use-package eshell-command-not-found (use-package eshell-command-not-found
:custom ((eshell-command-not-found-command "command-not-found")) :custom ((eshell-command-not-found-command "command-not-found"))
@ -757,7 +758,7 @@
(use-package eshell-prompt-extras (use-package eshell-prompt-extras
:custom ((eshell-highlight-prompt nil) :custom ((eshell-highlight-prompt nil)
(eshell-prompt-function 'epe-theme-lambda))) (eshell-prompt-function 'epe-theme-lambda)))
(use-package popper (use-package popper
:custom :custom
@ -786,35 +787,36 @@
(use-package org (use-package org
:hook ((org-mode . variable-pitch-mode) :hook ((org-mode . variable-pitch-mode)
(org-mode . visual-line-mode) (org-mode . visual-line-mode)
(org-mode . visual-fill-column-mode)) (org-mode . visual-fill-column-mode))
:custom ((org-log-done nil) :custom ((org-log-done nil)
(org-return-follows-link t) (org-return-follows-link t)
(org-hide-emphasis-markers t) (org-hide-emphasis-markers t)
(visual-fill-column-center-text t) (visual-fill-column-center-text t)
(visual-fill-column-width 100) (visual-fill-column-width 100)
(fill-column 100) (fill-column 100)
(org-capture-templates '( (org-capture-templates '(
("j" "Work Log Entry" ("j" "Work Log Entry"
entry (file+datetree "~/org/work-log.org") entry (file+datetree "~/org/work-log.org")
"* %?" "* %?"
:empty-lines 0) :empty-lines 0)
("n" "Note" ("n" "Note"
entry (file+headline "~/org/notes.org" "Random Notes") entry (file+headline "~/org/notes.org" "Random Notes")
"** %?" "** %?"
:empty-lines 0) :empty-lines 0)
)) ))
(org-auto-align-tags nil) (org-auto-align-tags nil)
(org-tags-column 0) (org-tags-column 0)
(org-catch-invisible-edits 'show-and-error) (org-catch-invisible-edits 'show-and-error)
(org-special-ctrl-a/e t) (org-special-ctrl-a/e t)
(org-insert-heading-respect-content t) (org-insert-heading-respect-content t)
(org-pretty-entities t) (org-pretty-entities t)
(org-ellipsis "") (org-ellipsis "")
) (org-use-sub-superscripts nil)
)
:bind (("C-c o l" . org-store-link) :bind (("C-c o l" . org-store-link)
("C-c o c" . org-capture) ("C-c o c" . org-capture)
("C-c b o" . org-switchb)) ("C-c b o" . org-switchb))
:config :config
(defun ccr/org-capture (key) (defun ccr/org-capture (key)
"Capture a note using the template KEY and close the frame when done. "Capture a note using the template KEY and close the frame when done.
@ -927,8 +929,8 @@ This is meant to be an helper to be called from the window manager."
(require 'org-roam-protocol) (require 'org-roam-protocol)
:custom :custom
(org-roam-v2-ack t) (org-roam-v2-ack t)
(org-roam-directory (file-truename "~/org")) (org-roam-directory (file-truename "~/roam"))
(org-roam-complete-everywhere 't) (org-roam-completion-everywhere 't)
(org-roam-dailies-capture-templates (org-roam-dailies-capture-templates
'( '(
("d" "Generic entry" entry ("d" "Generic entry" entry
@ -943,20 +945,14 @@ This is meant to be an helper to be called from the window manager."
(org-roam-capture-ref-templates (org-roam-capture-ref-templates
'( '(
("r" "Web entry" entry ("r" "Web entry" entry
"* ${Title} \n:PROPERTIES:\n:URL: ${ref}\n:END:\n %i" "** %i \n:PROPERTIES:\n:URL: ${ref}\n:END:"
:target (file+head "daily/%<%Y-%m-%d>.org" "#+TITLE: %<%Y-%m-%d>") :target (file+olp "inbox.org" ("Web entries"))
:create-id t) :create-id t)
) )
) )
:config :config
(org-roam-db-autosync-mode) (org-roam-db-autosync-mode)
;; In order to automatically add an org id for some capture templates (using the :create-id keyword)
(defun ccr/org-capture-maybe-create-id ()
(when (org-capture-get :create-id)
(org-id-get-create)))
(add-hook 'org-capture-mode-hook #'ccr/org-capture-maybe-create-id)
;; The following functions name are relevant because org-roam-ql columns in queries use their suffix ;; The following functions name are relevant because org-roam-ql columns in queries use their suffix
(defun org-roam-node-spent (node) (defun org-roam-node-spent (node)
"Return the hours spent as number" "Return the hours spent as number"
@ -970,24 +966,26 @@ This is meant to be an helper to be called from the window manager."
"Check if node was created in given time range" "Check if node was created in given time range"
#'org-roam-node-date #'org-roam-node-date
#'(lambda (node-date start-date end-date) #'(lambda (node-date start-date end-date)
(let ((node-date (condition-case nil (let ((node-date (condition-case nil
;; if the entry is not from the journal (i.e. the filename is not something like "2024-10-10.org") ;; if the entry is not from the journal (i.e. the filename is not something like "2024-10-10.org")
;; then it's always discarded (the epoch time is given to it) ;; then it's always discarded (the epoch time is given to it)
(encode-time (org-parse-time-string node-date)) (encode-time (org-parse-time-string node-date))
(error (encode-time (org-parse-time-string "<1970-01-01>"))))) (error (encode-time (org-parse-time-string "<1970-01-01>")))))
(start-date (encode-time (org-parse-time-string start-date))) (start-date (encode-time (org-parse-time-string start-date)))
(end-date (encode-time (org-parse-time-string end-date)))) (end-date (encode-time (org-parse-time-string end-date))))
(and (time-less-p start-date node-date) (and (time-less-p start-date node-date)
(time-less-p node-date end-date))) (time-less-p node-date end-date)))
)) ))
(defun ccr/org-roam-spent-hours (client &optional date-start date-end) (defun ccr/org-roam-spent-hours (client &optional date-start date-end)
"Return the total spent hours on something (usually a client)" "Return the total spent hours on something (usually a client)"
(let* ((query-tags `(tags ,client "billable")) (let* ((query-tags `(tags ,client "billable"))
(query (if (and date-start date-end) (query (if (and date-start date-end)
`(and ,query-tags (date-range ,date-start ,date-end)) `(and ,query-tags (date-range ,date-start ,date-end))
query-tags))) query-tags)))
(apply #'+(mapcar #'org-roam-node-spent (org-roam-ql-nodes query)))))) (apply #'+(mapcar #'org-roam-node-spent (org-roam-ql-nodes query)))))
:bind
(("C-c n i" . org-roam-node-insert)))
(use-package org-roam-ql (use-package org-roam-ql
:after org-roam :after org-roam
@ -1027,6 +1025,13 @@ This is meant to be an helper to be called from the window manager."
org-roam-ui-update-on-save t org-roam-ui-update-on-save t
org-roam-ui-open-on-start nil)) org-roam-ui-open-on-start nil))
(use-package org-download
:after org
:custom (org-download-image-dir (concat org-roam-directory "/images"))
:bind
(:map org-mode-map
(("M-p" . org-download-clipboard))))
(use-package gptel (use-package gptel
:custom :custom
(gptel-model 'google/gemini-2.5-flash-preview) (gptel-model 'google/gemini-2.5-flash-preview)
@ -1057,7 +1062,7 @@ This is meant to be an helper to be called from the window manager."
(defun ccr/edit-buffer (buffer-name old-string new-string) (defun ccr/edit-buffer (buffer-name old-string new-string)
"In BUFFER-NAME, replace OLD-STRING with NEW-STRING." "In BUFFER-NAME, replace OLD-STRING with NEW-STRING."
(with-current-buffer buffer-name (with-current-buffer buffer-name
(let ((case-fold-search nil)) ;; Case-sensitive search (let ((case-fold-search nil)) ;; Case-sensitive search
(save-excursion (save-excursion
(goto-char (point-min)) (goto-char (point-min))
(let ((count 0)) (let ((count 0))
@ -1152,6 +1157,23 @@ This is meant to be an helper to be called from the window manager."
:type string :type string
:description "The text to append to the buffer.")) :description "The text to append to the buffer."))
:category "emacs") :category "emacs")
,(gptel-make-tool
:function (lambda (buffer text)
(with-current-buffer (get-buffer-create buffer)
(save-excursion
(goto-char (point-max))
(insert text)))
(format "Appended text to buffer %s" buffer))
:name "append_to_buffer"
:description "Append text to an Emacs buffer. If the buffer does not exist, it will be created."
:confirm t
:args (list '(:name "buffer"
:type string
:description "The name of the buffer to append text to.")
'(:name "text"
:type string
:description "The text to append to the buffer."))
:category "emacs")
,(gptel-make-tool ,(gptel-make-tool
:name "EditBuffer" :name "EditBuffer"
:function #'ccr/edit-buffer :function #'ccr/edit-buffer
@ -1185,6 +1207,22 @@ This is meant to be an helper to be called from the window manager."
:description "Content to write to the buffer" :description "Content to write to the buffer"
:required t)) :required t))
:category "edit") :category "edit")
,(gptel-make-tool
:function (lambda (title body)
(org-roam-capture-
:templates `(("d" "" plain "%?" :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org" ,(concat "#+title: ${title}\n\n" body)))) ; override default template
:node (org-roam-node-create :title title)
:props '(:unnarrowed 't :tags "gptel"))
)
:name "create_org_roam_note"
:description "Create a new org-roam note."
:args (list '(:name "title"
:type string
:description "The name of the note to create. Try to automatically infere it and ask only if dubious.")
'(:name "body"
:type string
:description "The body of the note write in an org language, aovoid starting with an headline as first line. Feel free to exploit the org syntax."))
:category "org-roam")
)) ))

View file

@ -0,0 +1,24 @@
{ pkgs, lib, ... }:
{
home.packages = [ pkgs.unison ];
services.unison = {
enable = true;
pairs = {
"roam" = {
roots = [
# Pair of roots to synchronize
"/home/ccr/roam"
"ssh://root@sisko.wg.aciceri.dev//mnt/hd/roam"
];
commandOptions = {
auto = "true";
batch = "true";
log = "false";
repeat = "watch";
sshcmd = lib.getExe pkgs.openssh;
ui = "text";
};
};
};
};
}

View file

@ -59,6 +59,7 @@
"git-workspace-tokens".owner = "ccr"; "git-workspace-tokens".owner = "ccr";
"autistici-password".owner = "ccr"; "autistici-password".owner = "ccr";
"restic-hetzner-password" = { }; "restic-hetzner-password" = { };
"nix-netrc" = { };
}; };
}; };
@ -87,6 +88,7 @@
"restic-hetzner-password" = { }; "restic-hetzner-password" = { };
"forgejo-runners-token".owner = "nixuser"; "forgejo-runners-token".owner = "nixuser";
"forgejo-nix-access-tokens".owner = "nixuser"; "forgejo-nix-access-tokens".owner = "nixuser";
"nix-netrc" = { };
}; };
}; };
@ -119,6 +121,8 @@
group = "forgejo"; group = "forgejo";
}; };
"matrix-registration-shared-secret".owner = "matrix-synapse"; "matrix-registration-shared-secret".owner = "matrix-synapse";
"arbi-config".owner = "arbi";
"nix-netrc" = { };
}; };
}; };
@ -142,9 +146,7 @@
"cachix-personal-token".owner = "ccr"; "cachix-personal-token".owner = "ccr";
"git-workspace-tokens".owner = "ccr"; "git-workspace-tokens".owner = "ccr";
"autistici-password".owner = "ccr"; "autistici-password".owner = "ccr";
"restic-hetzner-password" = { }; "nix-netrc" = { };
"forgejo-runners-token".owner = "nixuser";
"forgejo-nix-access-tokens".owner = "nixuser";
}; };
}; };

View file

@ -28,13 +28,11 @@
"pam" "pam"
"wireguard-client" "wireguard-client"
"greetd" "greetd"
"syncthing"
"mount-sisko" "mount-sisko"
"adb" "adb"
"binfmt" "binfmt"
"prometheus-exporters" "prometheus-exporters"
"alloy" "alloy"
"syncthing"
"zerotier" "zerotier"
] ]
++ [ ./disko.nix ]; ++ [ ./disko.nix ];

View file

@ -31,7 +31,6 @@
"wireguard-client" "wireguard-client"
"binfmt" "binfmt"
"greetd" "greetd"
"syncthing"
"hass-poweroff" "hass-poweroff"
"forgejo-runners" "forgejo-runners"
"teamviewer" "teamviewer"
@ -99,6 +98,7 @@
"pantalaimon" "pantalaimon"
"moonlight" "moonlight"
"gimp" "gimp"
"unison"
]; ];
extraGroups = [ "plugdev" ]; extraGroups = [ "plugdev" ];
backupPaths = [ ]; backupPaths = [ ];

View file

@ -29,7 +29,6 @@
"wireguard-client" "wireguard-client"
"binfmt" "binfmt"
"greetd" "greetd"
# "syncthing"
"teamviewer" "teamviewer"
"sunshine" "sunshine"
"mount-sisko" "mount-sisko"
@ -169,4 +168,16 @@
enable = true; enable = true;
algorithm = "zstd"; algorithm = "zstd";
}; };
hardware.nvidia-container-toolkit.enable = true;
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia.open = true;
hardware.nvidia.prime = {
offload = {
enable = true;
enableOffloadCmd = true;
};
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
};
} }

View file

@ -26,7 +26,6 @@
"atuin" "atuin"
"immich" "immich"
"paperless" "paperless"
"syncthing"
"atticd" "atticd"
"jellyfin" "jellyfin"
"matrix" "matrix"
@ -114,6 +113,7 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
cifs-utils cifs-utils
unison
]; ];
powerManagement.scsiLinkPolicy = "med_power_with_dipm"; powerManagement.scsiLinkPolicy = "med_power_with_dipm";

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }: { config, ... }:
let let
rev = "d531730d9640160f0519ef4b3640f8da49dd96f8"; rev = "d531730d9640160f0519ef4b3640f8da49dd96f8";
arbi-flake = builtins.getFlake "git+ssh://git@github.com/aciceri/arbi.git?rev=${rev}"; arbi-flake = builtins.getFlake "git+ssh://git@github.com/aciceri/arbi.git?rev=${rev}";
@ -9,11 +9,7 @@ in
services.arbi = { services.arbi = {
enable = true; enable = true;
log_level = "debug"; log_level = "debug";
configFile = pkgs.writeText "arbi-config.kdl" '' configFile = config.age.secrets.arbi-config.path;
endpoint "wss://eth-mainnet.g.alchemy.com/v2/<REDACTED>"
pairs_file "pairs.json"
concurrency 4
'';
}; };
environment.persistence."/persist".directories = [ environment.persistence."/persist".directories = [

View file

@ -5,7 +5,10 @@
openFirewall = true; openFirewall = true;
}; };
users.users.jellyfin.extraGroups = [ "transmission" ]; users.users.jellyfin.extraGroups = [
"transmission"
"amule"
];
environment.persistence."/persist".directories = [ environment.persistence."/persist".directories = [
config.services.jellyfin.dataDir config.services.jellyfin.dataDir

View file

@ -20,20 +20,20 @@
"root" "root"
"@wheel" "@wheel"
]; ];
netrc-file = "/etc/nix/netrc"; netrc-file = config.age.secrets.nix-netrc.path;
substituters = [ substituters = [
# "s3://cache?profile=default&region=eu-south-1&scheme=https&endpoint=cache.aciceri.dev"
"https://cache.iog.io" "https://cache.iog.io"
"https://cache.lix.systems" "https://cache.lix.systems"
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://mlabs.cachix.org" # "https://mlabs.cachix.org"
"http://sisko.wg.aciceri.dev:8081/nixfleet"
]; ];
trusted-public-keys = [ trusted-public-keys = [
# "cache.aciceri.dev~1:nJMfcBnYieY2WMbYDG0s9S5qUhU+V4RPL+X9zcxXxZY="
"hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
"cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M=" # "mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M="
"nixfleet:Bud23440n6mMTmgq/7U+mk91zlLjnx2X3lQQrCBCCU4="
]; ];
deprecated-features = [ "url-literals" ]; deprecated-features = [ "url-literals" ];
}; };

View file

@ -42,6 +42,7 @@ in
"/persist" "/persist"
"/mnt/hd/immich" "/mnt/hd/immich"
"/mnt/hd/paperless" "/mnt/hd/paperless"
"/mnt/hd/roam"
]; ];
exclude = [ " /persist/var/lib/containers" ]; exclude = [ " /persist/var/lib/containers" ];
passwordFile = config.age.secrets.SISKO_RESTIC_PASSWORD.path; passwordFile = config.age.secrets.SISKO_RESTIC_PASSWORD.path;

View file

@ -188,6 +188,7 @@ let
org-roam org-roam
org-roam-ql org-roam-ql
org-roam-ui org-roam-ui
org-download
visual-fill-column visual-fill-column
consult-org-roam consult-org-roam
pass pass

BIN
secrets/arbi-config.age Normal file

Binary file not shown.

BIN
secrets/nix-netrc.age Normal file

Binary file not shown.

View file

@ -153,6 +153,17 @@ with keys.users;
ccr-ssh ccr-ssh
sisko sisko
]; ];
"arbi-config.age".publicKeys = [
ccr-ssh
sisko
];
"nix-netrc.age".publicKeys = [
ccr-ssh
sisko
pike
picard
kirk
];
# WireGuard # WireGuard
"picard-wireguard-private-key.age".publicKeys = [ "picard-wireguard-private-key.age".publicKeys = [