Compare commits
1 commit
33175c5757
...
7119b8321c
Author | SHA1 | Date | |
---|---|---|---|
7119b8321c |
16 changed files with 219 additions and 304 deletions
76
flake.lock
generated
76
flake.lock
generated
|
@ -26,11 +26,11 @@
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748080874,
|
"lastModified": 1747519437,
|
||||||
"narHash": "sha256-sUebEzAkrY8Aq5G0GHFyRddmRNGP/a2iTtV7ISNvi/c=",
|
"narHash": "sha256-uv9Wv59d+mckS2CkorOF484wp2G5TNGijdoBZ5RkAk0=",
|
||||||
"owner": "catppuccin",
|
"owner": "catppuccin",
|
||||||
"repo": "nix",
|
"repo": "nix",
|
||||||
"rev": "0ba11b12be81f0849a89ed17ab635164ea8f0112",
|
"rev": "3ba714046ee32373e88166e6e9474d6ae6a5b734",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -83,11 +83,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748225455,
|
"lastModified": 1747621015,
|
||||||
"narHash": "sha256-AzlJCKaM4wbEyEpV3I/PUq5mHnib2ryEy32c+qfj6xk=",
|
"narHash": "sha256-j0fo1rNxZvmFLMaE945UrbLJZAHTlQmq0/QMgOP4GTs=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "a894f2811e1ee8d10c50560551e50d6ab3c392ba",
|
"rev": "cec44d77d9dacf0c91d3d51aff128fefabce06ee",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -122,11 +122,11 @@
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748248657,
|
"lastModified": 1747618089,
|
||||||
"narHash": "sha256-zqhc7qyoRmgZpkvjocYEui9xYlzL90nqPf40zADGruM=",
|
"narHash": "sha256-mbzwxQlxNamIMErEfwWRZ+ECmlQzxJ4eJvOM6/fxV5s=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "e048433838750a5fd9036e56dd8f59affa6d676b",
|
"rev": "1b2bc802bbac29f4695e39fbf982944c0999b45d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -387,11 +387,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748227609,
|
"lastModified": 1747565775,
|
||||||
"narHash": "sha256-SaSdslyo6UGDpPUlmrPA4dWOEuxCy2ihRN9K6BnqYsA=",
|
"narHash": "sha256-B6jmKHUEX1jxxcdoYHl7RVaeohtAVup8o3nuVkzkloA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "d23d20f55d49d8818ac1f1b2783671e8a6725022",
|
"rev": "97118a310eb8e13bc1b9b12d67267e55b7bee6c8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -464,11 +464,11 @@
|
||||||
"lix": {
|
"lix": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748182888,
|
"lastModified": 1747664434,
|
||||||
"narHash": "sha256-tm3yi3KL+KjMnLZFXKR1ioI/Rk8DIa2n1NNE6I99BpU=",
|
"narHash": "sha256-ph9fCCvzgZ1PNOu82SSoceX/tYZ5MfmX3PkBxBiNxwA=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "dbff52bfbc48ead789888bf24422d0ef6f7ba9a8",
|
"rev": "eb18a90afbe0ade000d957cda344a5bcb3d565d4",
|
||||||
"revCount": 17946,
|
"revCount": 17900,
|
||||||
"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": 1747667424,
|
"lastModified": 1746839253,
|
||||||
"narHash": "sha256-7EICjbmG6lApWKhFtwvZovdcdORY1CEe6/K7JwtpYfs=",
|
"narHash": "sha256-pRwi8Wn8Yofj459gq+3oIRy8F3SXeEJ6mzfIAUgM9nA=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "3c23c6ae2aecc1f76ae7993efe1a78b5316f0700",
|
"rev": "58baedd53f9da81fd728a4f3b08c378e5ba9ae58",
|
||||||
"revCount": 144,
|
"revCount": 142,
|
||||||
"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": 1748200777,
|
"lastModified": 1743812405,
|
||||||
"narHash": "sha256-ELbQ7Apk0QzfhO8WjQIqEBuN2bEnGQHNxeiOSx/mU38=",
|
"narHash": "sha256-BedQ9Z3+nqtp9BRjHjJNPUeLIMVbTsP3Udbz0b1cUn0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "mobile-nixos",
|
"repo": "mobile-nixos",
|
||||||
"rev": "6e249e58b5d8166738ebcfd401f05f7496049dd3",
|
"rev": "6679fd7a8dd4ccf4aa538b82216723861cfe61a2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -569,11 +569,11 @@
|
||||||
},
|
},
|
||||||
"nixosHardware": {
|
"nixosHardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747900541,
|
"lastModified": 1747129300,
|
||||||
"narHash": "sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg=",
|
"narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "11f2d9ea49c3e964315215d6baa73a8d42672f06",
|
"rev": "e81fd167b33121269149c57806599045fd33eeed",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -647,11 +647,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748037224,
|
"lastModified": 1747485343,
|
||||||
"narHash": "sha256-92vihpZr6dwEMV6g98M5kHZIttrWahb9iRPBm1atcPk=",
|
"narHash": "sha256-YbsZyuRE1tobO9sv0PUwg81QryYo3L1F3R3rF9bcG38=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "f09dede81861f3a83f7f06641ead34f02f37597f",
|
"rev": "9b5ac7ad45298d58640540d0323ca217f32a6762",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -711,11 +711,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748026106,
|
"lastModified": 1747542820,
|
||||||
"narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=",
|
"narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "063f43f2dbdef86376cc29ad646c45c46e93234c",
|
"rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -742,11 +742,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
"nixpkgs_6": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748026106,
|
"lastModified": 1747542820,
|
||||||
"narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=",
|
"narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "063f43f2dbdef86376cc29ad646c45c46e93234c",
|
"rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1009,11 +1009,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748243702,
|
"lastModified": 1747469671,
|
||||||
"narHash": "sha256-9YzfeN8CB6SzNPyPm2XjRRqSixDopTapaRsnTpXUEY8=",
|
"narHash": "sha256-bo1ptiFoNqm6m1B2iAhJmWCBmqveLVvxom6xKmtuzjg=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "1f3f7b784643d488ba4bf315638b2b0a4c5fb007",
|
"rev": "ab0378b61b0d85e73a8ab05d5c6029b5bd58c9fb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
(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
|
||||||
|
@ -164,8 +163,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))
|
||||||
|
@ -209,7 +208,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
|
||||||
|
@ -220,8 +219,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))
|
||||||
|
@ -332,44 +331,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
|
||||||
|
@ -380,10 +379,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
|
||||||
|
@ -418,7 +417,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)
|
||||||
|
@ -446,9 +445,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))
|
||||||
|
|
||||||
|
@ -459,7 +458,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)
|
||||||
|
@ -501,28 +500,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\\'"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -534,33 +533,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))
|
||||||
|
@ -582,11 +581,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))
|
||||||
|
@ -630,7 +629,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)
|
||||||
|
@ -680,8 +679,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)
|
||||||
|
@ -695,17 +694,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 ()
|
||||||
|
@ -713,35 +712,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"))
|
||||||
|
@ -758,7 +757,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
|
||||||
|
@ -787,36 +786,35 @@
|
||||||
|
|
||||||
(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.
|
||||||
|
@ -929,8 +927,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 "~/roam"))
|
(org-roam-directory (file-truename "~/org"))
|
||||||
(org-roam-completion-everywhere 't)
|
(org-roam-complete-everywhere 't)
|
||||||
(org-roam-dailies-capture-templates
|
(org-roam-dailies-capture-templates
|
||||||
'(
|
'(
|
||||||
("d" "Generic entry" entry
|
("d" "Generic entry" entry
|
||||||
|
@ -945,14 +943,20 @@ 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
|
||||||
"** %i \n:PROPERTIES:\n:URL: ${ref}\n:END:"
|
"* ${Title} \n:PROPERTIES:\n:URL: ${ref}\n:END:\n %i"
|
||||||
:target (file+olp "inbox.org" ("Web entries"))
|
:target (file+head "daily/%<%Y-%m-%d>.org" "#+TITLE: %<%Y-%m-%d>")
|
||||||
: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"
|
||||||
|
@ -966,26 +970,24 @@ 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
|
||||||
|
@ -1025,13 +1027,6 @@ 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)
|
||||||
|
@ -1062,7 +1057,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))
|
||||||
|
@ -1157,23 +1152,6 @@ 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
|
||||||
|
@ -1207,22 +1185,6 @@ 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")
|
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
{ 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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -59,7 +59,6 @@
|
||||||
"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" = { };
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -88,7 +87,6 @@
|
||||||
"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" = { };
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -121,8 +119,6 @@
|
||||||
group = "forgejo";
|
group = "forgejo";
|
||||||
};
|
};
|
||||||
"matrix-registration-shared-secret".owner = "matrix-synapse";
|
"matrix-registration-shared-secret".owner = "matrix-synapse";
|
||||||
"arbi-config".owner = "arbi";
|
|
||||||
"nix-netrc" = { };
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -146,7 +142,9 @@
|
||||||
"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";
|
||||||
"nix-netrc" = { };
|
"restic-hetzner-password" = { };
|
||||||
|
"forgejo-runners-token".owner = "nixuser";
|
||||||
|
"forgejo-nix-access-tokens".owner = "nixuser";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -28,11 +28,13 @@
|
||||||
"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 ];
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
"wireguard-client"
|
"wireguard-client"
|
||||||
"binfmt"
|
"binfmt"
|
||||||
"greetd"
|
"greetd"
|
||||||
|
"syncthing"
|
||||||
"hass-poweroff"
|
"hass-poweroff"
|
||||||
"forgejo-runners"
|
"forgejo-runners"
|
||||||
"teamviewer"
|
"teamviewer"
|
||||||
|
@ -98,7 +99,6 @@
|
||||||
"pantalaimon"
|
"pantalaimon"
|
||||||
"moonlight"
|
"moonlight"
|
||||||
"gimp"
|
"gimp"
|
||||||
"unison"
|
|
||||||
];
|
];
|
||||||
extraGroups = [ "plugdev" ];
|
extraGroups = [ "plugdev" ];
|
||||||
backupPaths = [ ];
|
backupPaths = [ ];
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
"wireguard-client"
|
"wireguard-client"
|
||||||
"binfmt"
|
"binfmt"
|
||||||
"greetd"
|
"greetd"
|
||||||
|
# "syncthing"
|
||||||
"teamviewer"
|
"teamviewer"
|
||||||
"sunshine"
|
"sunshine"
|
||||||
"mount-sisko"
|
"mount-sisko"
|
||||||
|
@ -168,16 +169,4 @@
|
||||||
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";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
"atuin"
|
"atuin"
|
||||||
"immich"
|
"immich"
|
||||||
"paperless"
|
"paperless"
|
||||||
|
"syncthing"
|
||||||
"atticd"
|
"atticd"
|
||||||
"jellyfin"
|
"jellyfin"
|
||||||
"matrix"
|
"matrix"
|
||||||
|
@ -113,7 +114,6 @@
|
||||||
|
|
||||||
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";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, ... }:
|
{ config, pkgs, ... }:
|
||||||
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,7 +9,11 @@ in
|
||||||
services.arbi = {
|
services.arbi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
log_level = "debug";
|
log_level = "debug";
|
||||||
configFile = config.age.secrets.arbi-config.path;
|
configFile = pkgs.writeText "arbi-config.kdl" ''
|
||||||
|
endpoint "wss://eth-mainnet.g.alchemy.com/v2/<REDACTED>"
|
||||||
|
pairs_file "pairs.json"
|
||||||
|
concurrency 4
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.persistence."/persist".directories = [
|
environment.persistence."/persist".directories = [
|
||||||
|
|
|
@ -5,10 +5,7 @@
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.jellyfin.extraGroups = [
|
users.users.jellyfin.extraGroups = [ "transmission" ];
|
||||||
"transmission"
|
|
||||||
"amule"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.persistence."/persist".directories = [
|
environment.persistence."/persist".directories = [
|
||||||
config.services.jellyfin.dataDir
|
config.services.jellyfin.dataDir
|
||||||
|
|
|
@ -20,20 +20,20 @@
|
||||||
"root"
|
"root"
|
||||||
"@wheel"
|
"@wheel"
|
||||||
];
|
];
|
||||||
netrc-file = config.age.secrets.nix-netrc.path;
|
netrc-file = "/etc/nix/netrc";
|
||||||
substituters = [
|
substituters = [
|
||||||
|
# "s3://cache?profile=default®ion=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" ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -42,7 +42,6 @@ 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;
|
||||||
|
|
|
@ -188,7 +188,6 @@ 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
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -153,17 +153,6 @@ 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 = [
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue