diff --git a/flake.lock b/flake.lock index c3bbb09..5071c58 100644 --- a/flake.lock +++ b/flake.lock @@ -26,11 +26,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1748080874, - "narHash": "sha256-sUebEzAkrY8Aq5G0GHFyRddmRNGP/a2iTtV7ISNvi/c=", + "lastModified": 1747519437, + "narHash": "sha256-uv9Wv59d+mckS2CkorOF484wp2G5TNGijdoBZ5RkAk0=", "owner": "catppuccin", "repo": "nix", - "rev": "0ba11b12be81f0849a89ed17ab635164ea8f0112", + "rev": "3ba714046ee32373e88166e6e9474d6ae6a5b734", "type": "github" }, "original": { @@ -83,11 +83,11 @@ ] }, "locked": { - "lastModified": 1748225455, - "narHash": "sha256-AzlJCKaM4wbEyEpV3I/PUq5mHnib2ryEy32c+qfj6xk=", + "lastModified": 1747621015, + "narHash": "sha256-j0fo1rNxZvmFLMaE945UrbLJZAHTlQmq0/QMgOP4GTs=", "owner": "nix-community", "repo": "disko", - "rev": "a894f2811e1ee8d10c50560551e50d6ab3c392ba", + "rev": "cec44d77d9dacf0c91d3d51aff128fefabce06ee", "type": "github" }, "original": { @@ -122,11 +122,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1748248657, - "narHash": "sha256-zqhc7qyoRmgZpkvjocYEui9xYlzL90nqPf40zADGruM=", + "lastModified": 1747618089, + "narHash": "sha256-mbzwxQlxNamIMErEfwWRZ+ECmlQzxJ4eJvOM6/fxV5s=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "e048433838750a5fd9036e56dd8f59affa6d676b", + "rev": "1b2bc802bbac29f4695e39fbf982944c0999b45d", "type": "github" }, "original": { @@ -387,11 +387,11 @@ ] }, "locked": { - "lastModified": 1748227609, - "narHash": "sha256-SaSdslyo6UGDpPUlmrPA4dWOEuxCy2ihRN9K6BnqYsA=", + "lastModified": 1747565775, + "narHash": "sha256-B6jmKHUEX1jxxcdoYHl7RVaeohtAVup8o3nuVkzkloA=", "owner": "nix-community", "repo": "home-manager", - "rev": "d23d20f55d49d8818ac1f1b2783671e8a6725022", + "rev": "97118a310eb8e13bc1b9b12d67267e55b7bee6c8", "type": "github" }, "original": { @@ -464,11 +464,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1748182888, - "narHash": "sha256-tm3yi3KL+KjMnLZFXKR1ioI/Rk8DIa2n1NNE6I99BpU=", + "lastModified": 1747664434, + "narHash": "sha256-ph9fCCvzgZ1PNOu82SSoceX/tYZ5MfmX3PkBxBiNxwA=", "ref": "refs/heads/main", - "rev": "dbff52bfbc48ead789888bf24422d0ef6f7ba9a8", - "revCount": 17946, + "rev": "eb18a90afbe0ade000d957cda344a5bcb3d565d4", + "revCount": 17900, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -489,11 +489,11 @@ ] }, "locked": { - "lastModified": 1747667424, - "narHash": "sha256-7EICjbmG6lApWKhFtwvZovdcdORY1CEe6/K7JwtpYfs=", + "lastModified": 1746839253, + "narHash": "sha256-pRwi8Wn8Yofj459gq+3oIRy8F3SXeEJ6mzfIAUgM9nA=", "ref": "refs/heads/main", - "rev": "3c23c6ae2aecc1f76ae7993efe1a78b5316f0700", - "revCount": 144, + "rev": "58baedd53f9da81fd728a4f3b08c378e5ba9ae58", + "revCount": 142, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -505,11 +505,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1748200777, - "narHash": "sha256-ELbQ7Apk0QzfhO8WjQIqEBuN2bEnGQHNxeiOSx/mU38=", + "lastModified": 1743812405, + "narHash": "sha256-BedQ9Z3+nqtp9BRjHjJNPUeLIMVbTsP3Udbz0b1cUn0=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "6e249e58b5d8166738ebcfd401f05f7496049dd3", + "rev": "6679fd7a8dd4ccf4aa538b82216723861cfe61a2", "type": "github" }, "original": { @@ -569,11 +569,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1747900541, - "narHash": "sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg=", + "lastModified": 1747129300, + "narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "11f2d9ea49c3e964315215d6baa73a8d42672f06", + "rev": "e81fd167b33121269149c57806599045fd33eeed", "type": "github" }, "original": { @@ -647,11 +647,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1748037224, - "narHash": "sha256-92vihpZr6dwEMV6g98M5kHZIttrWahb9iRPBm1atcPk=", + "lastModified": 1747485343, + "narHash": "sha256-YbsZyuRE1tobO9sv0PUwg81QryYo3L1F3R3rF9bcG38=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f09dede81861f3a83f7f06641ead34f02f37597f", + "rev": "9b5ac7ad45298d58640540d0323ca217f32a6762", "type": "github" }, "original": { @@ -711,11 +711,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1748026106, - "narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=", + "lastModified": 1747542820, + "narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "063f43f2dbdef86376cc29ad646c45c46e93234c", + "rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "type": "github" }, "original": { @@ -742,11 +742,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1748026106, - "narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=", + "lastModified": 1747542820, + "narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "063f43f2dbdef86376cc29ad646c45c46e93234c", + "rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "type": "github" }, "original": { @@ -1009,11 +1009,11 @@ ] }, "locked": { - "lastModified": 1748243702, - "narHash": "sha256-9YzfeN8CB6SzNPyPm2XjRRqSixDopTapaRsnTpXUEY8=", + "lastModified": 1747469671, + "narHash": "sha256-bo1ptiFoNqm6m1B2iAhJmWCBmqveLVvxom6xKmtuzjg=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "1f3f7b784643d488ba4bf315638b2b0a4c5fb007", + "rev": "ab0378b61b0d85e73a8ab05d5c6029b5bd58c9fb", "type": "github" }, "original": { diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 843265a..7959261 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -28,7 +28,6 @@ (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-connect-timeout nil) ; never timeout - :bind (("C-q" . eglot-code-action-quickfix)) ) (use-package consult-eglot @@ -164,8 +163,8 @@ :after marginalia :config (nerd-icons-completion-mode +1) :hook ( - (marginalia-mode . nerd-icons-completion-marginalia-setup) - (ibuffer-mode . nerd-icons-completion-marginalia-setup))) + (marginalia-mode . nerd-icons-completion-marginalia-setup) + (ibuffer-mode . nerd-icons-completion-marginalia-setup))) (use-package nerd-icons-ibuffer :hook (ibuffer-mode . nerd-icons-ibuffer-mode)) @@ -209,7 +208,7 @@ (treemacs-display-current-project-exclusively t) (treemacs-git-mode 'deferred) :bind (("C-c w t" . treemacs-select-window) - ("C-c o T" . treemacs)) + ("C-c o T" . treemacs)) ) (use-package meow @@ -220,8 +219,8 @@ (require 'meow-tree-sitter) (meow-tree-sitter-register-defaults) (add-hook 'after-make-frame-functions (defun ccr/meow--prepare-face (_) - (meow--prepare-face) - (remove-hook 'after-make-frame-functions 'ccr/meow--prepare-face))) + (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 '(eat-mode . insert)) (add-to-list 'meow-mode-state-list '(notmuch-hello-mode . insert)) @@ -332,44 +331,44 @@ "Interactively vertically resize the window" (interactive "cHit >/< to enlarge/shrink") (cond ((eq key (string-to-char ">")) - (enlarge-window-horizontally ccr/v-resize-amount) - (call-interactively 'ccr/v-resize)) - ((eq key (string-to-char "<")) - (enlarge-window-horizontally (- ccr/v-resize-amount)) - (call-interactively 'ccr/v-resize)) - (t (push key unread-command-events)))) + (enlarge-window-horizontally ccr/v-resize-amount) + (call-interactively 'ccr/v-resize)) + ((eq key (string-to-char "<")) + (enlarge-window-horizontally (- ccr/v-resize-amount)) + (call-interactively 'ccr/v-resize)) + (t (push key unread-command-events)))) (defun ccr/h-resize (key) "Interactively horizontally resize the window" (interactive "cHit >/< to enlarge/shrink") (cond ((eq key (string-to-char ">")) - (enlarge-window ccr/h-resize-amount) - (call-interactively 'ccr/h-resize)) - ((eq key (string-to-char "<")) - (enlarge-window (- ccr/h-resize-amount)) - (call-interactively 'ccr/h-resize)) - (t (push key unread-command-events)))) + (enlarge-window ccr/h-resize-amount) + (call-interactively 'ccr/h-resize)) + ((eq key (string-to-char "<")) + (enlarge-window (- ccr/h-resize-amount)) + (call-interactively 'ccr/h-resize)) + (t (push key unread-command-events)))) :bind (("C-c w k" . windmove-up) - ("C-c w l" . windmove-right) - ("C-c w j" . windmove-down) - ("C-c w h" . windmove-left) - ("M-k" . windmove-up) - ("M-l" . windmove-right) - ("M-j" . windmove-down) - ("M-h" . windmove-left) - ("C-c w " . windmove-up) - ("C-c w " . windmove-right) - ("C-c w " . windmove-down) - ("C-c w " . windmove-left) - ("C-c w q" . delete-window) - ("C-c w K" . windmove-delete-up) - ("C-c w L" . windmove-delete-right) - ("C-c w J" . windmove-delete-down) - ("C-c w H" . windmove-delete-left) - ("C-c w x" . kill-buffer-and-window) - ("C-c w v" . split-window-right) - ("C-c w s" . split-window-below) - ("C-c w V" . ccr/v-resize) - ("C-c w S" . ccr/h-resize))) + ("C-c w l" . windmove-right) + ("C-c w j" . windmove-down) + ("C-c w h" . windmove-left) + ("M-k" . windmove-up) + ("M-l" . windmove-right) + ("M-j" . windmove-down) + ("M-h" . windmove-left) + ("C-c w " . windmove-up) + ("C-c w " . windmove-right) + ("C-c w " . windmove-down) + ("C-c w " . windmove-left) + ("C-c w q" . delete-window) + ("C-c w K" . windmove-delete-up) + ("C-c w L" . windmove-delete-right) + ("C-c w J" . windmove-delete-down) + ("C-c w H" . windmove-delete-left) + ("C-c w x" . kill-buffer-and-window) + ("C-c w v" . split-window-right) + ("C-c w s" . split-window-below) + ("C-c w V" . ccr/v-resize) + ("C-c w S" . ccr/h-resize))) (use-package vertico :custom @@ -380,10 +379,10 @@ (vertico-cycle t) (vertico-mode t) :bind (:map vertico-map - (("DEL" . vertico-directory-delete-char) - ("C-DEL" . vertico-directory-delete-word) - ("M-q" . vertico-quick-insert) - ("C-q" . vertico-quick-exit)))) + (("DEL" . vertico-directory-delete-char) + ("C-DEL" . vertico-directory-delete-word) + ("M-q" . vertico-quick-insert) + ("C-q" . vertico-quick-exit)))) ;; (use-package vertico-posframe ;; :after vertico @@ -418,7 +417,7 @@ ("C-c f f" . consult-find) ("C-c F" . consult-ripgrep) ("C-c f" . consult-find) - ("C-c l" . consult-line) + ("C-c l" . consult-line) ("C-c L" . consult-focus-lines) ("C-c m" . consult-mark) ("C-c o o" . consult-outline) @@ -446,9 +445,9 @@ (tab-always-indent 'complete) (kind-icon-default-face 'corfu-default) :bind (:map corfu-map - (("M-d" . corfu-doc-toggle) - ("M-l" . corfu-show-location) - ("SPC" . corfu-insert-separator))) + (("M-d" . corfu-doc-toggle) + ("M-l" . corfu-show-location) + ("SPC" . corfu-insert-separator))) :init (global-corfu-mode)) @@ -459,7 +458,7 @@ (use-package prog-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 (which-key-mode) @@ -501,28 +500,28 @@ (use-package nix-ts-mode :hook ( - (nix-ts-mode . (lambda () - (require 'eglot) - (add-to-list 'eglot-server-programs - '(nix-ts-mode . ("nixd"))) - (eglot-ensure))) - (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 - treesit-font-lock-settings - (append treesit-font-lock-settings - (treesit-font-lock-rules - :language 'nix - :feature 'function - :override t - `((formal) @font-lock-type-face) - - :language 'nix - :feature 'function - `((attrpath) @font-lock-function-name-face) - ))))) - ) + (nix-ts-mode . (lambda () + (require 'eglot) + (add-to-list 'eglot-server-programs + '(nix-ts-mode . ("nixd"))) + (eglot-ensure))) + (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 + treesit-font-lock-settings + (append treesit-font-lock-settings + (treesit-font-lock-rules + :language 'nix + :feature 'function + :override t + `((formal) @font-lock-type-face) + + :language 'nix + :feature 'function + `((attrpath) @font-lock-function-name-face) + ))))) + ) :mode "\\.nix\\'" ) @@ -534,33 +533,33 @@ (use-package python-ts-mode :hook ((python-ts-mode . (lambda () - (require 'eglot) - (add-to-list 'eglot-server-programs - '(python-ts-mode . ("jedi-language-server"))) - (eglot-ensure)))) + (require 'eglot) + (add-to-list 'eglot-server-programs + '(python-ts-mode . ("jedi-language-server"))) + (eglot-ensure)))) :mode "\\.py\\'") (use-package solidity-mode :hook ((solidity-mode . (lambda () - (require 'eglot) - (add-to-list 'eglot-server-programs - '(solidity-mode . ("nomicfoundation-solidity-language-server" "--stdio"))) - (eglot-ensure)))) + (require 'eglot) + (add-to-list 'eglot-server-programs + '(solidity-mode . ("nomicfoundation-solidity-language-server" "--stdio"))) + (eglot-ensure)))) :mode "\\.sol\\'") (use-package typescript-ts-mode :hook ((typescript-ts-mode . (lambda () - (require 'eglot) - (eglot-ensure)))) + (require 'eglot) + (eglot-ensure)))) :mode "\\.ts\\'") (use-package rust-mode :init (setq rust-mode-treesitter-derive t) :hook ((rust-mode . (lambda () - (require 'eglot) - (eglot-ensure))))) + (require 'eglot) + (eglot-ensure))))) (use-package haskell-ts-mode :hook ((haskell--ts-mode . eglot-ensure)) @@ -582,11 +581,11 @@ :after eglot :config (add-to-list 'eglot-server-programs - '(terraform-mode . ("terraform-lsp"))) + '(terraform-mode . ("terraform-lsp"))) :hook ((terraform-mode . eglot-ensure) - ;; (terraform-mode . tree-sitter-hl-mode) - (terraform-mode . (lambda () (setq indent-bars-spacing-override 2) (indent-bars-mode))) - )) + ;; (terraform-mode . tree-sitter-hl-mode) + (terraform-mode . (lambda () (setq indent-bars-spacing-override 2) (indent-bars-mode))) + )) (use-package yaml-mode :hook (yaml-mode . yaml-ts-mode)) @@ -630,7 +629,7 @@ (use-package aggressive-indent :hook ((lisp-mode . aggressive-indent-mode) - (emacs-lisp-mode . aggressive-indent-mode))) + (emacs-lisp-mode . aggressive-indent-mode))) (use-package eldoc :delight) @@ -680,8 +679,8 @@ (eat-eshell-mode) (eat-eshell-visual-command-mode) :custom ((eshell-prefer-lisp-functions t) - (eshell-history-size 10000) - (eshell-banner-message "")) + (eshell-history-size 10000) + (eshell-banner-message "")) :config (defun ccr/start-eshell () ;; Used from outside Emacs by emacsclient --eval (eshell 'N) @@ -695,17 +694,17 @@ ;; (add-to-list 'eshell-modules-list 'eshell-smart) ;; plan 9 style (setq ccr/eshell-aliases - '((g . magit) - (gl . magit-log) - (d . dired) - (o . find-file) - (oo . find-file-other-window) - (l . (lambda () (eshell/ls '-la))) - (eshell/clear . eshell/clear-scrollback))) + '((g . magit) + (gl . magit-log) + (d . dired) + (o . find-file) + (oo . find-file-other-window) + (l . (lambda () (eshell/ls '-la))) + (eshell/clear . eshell/clear-scrollback))) (mapc (lambda (alias) - (defalias (car alias) (cdr alias))) - ccr/eshell-aliases) + (defalias (car alias) (cdr alias))) + ccr/eshell-aliases) (defun ccr/eshell-get-current-input () @@ -713,35 +712,35 @@ (when (eq major-mode 'eshell-mode) (let ((start (save-excursion (eshell-bol) (point))) (end (point-at-eol))) - (buffer-substring-no-properties start end)))) + (buffer-substring-no-properties start end)))) (defun ccr/eshell-replace-current-input (new-input) (when (eq major-mode 'eshell-mode) (let ((inhibit-read-only t)) - (eshell-bol) - (delete-region (point) (point-at-eol)) - (insert new-input) - (end-of-line)))) + (eshell-bol) + (delete-region (point) (point-at-eol)) + (insert new-input) + (end-of-line)))) (defun ccr/eshell-history () (interactive) (when (eq major-mode 'eshell-mode) (let* ((current-input (ccr/eshell-get-current-input)) (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))) (bash-history (when (file-readable-p "~/.bash_history") (f-read-text "~/.bash_history"))) (history (split-string (concat (or eshell-history "") "\n" (or bash-history "")) "\n" t)) (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) - (:map eshell-mode-map - ("C-r" . ccr/eshell-history) - ("C-" . corfu-send) - ))) ;; i.e. just C-r in semi-char-mode + (:map eshell-mode-map + ("C-r" . ccr/eshell-history) + ("C-" . corfu-send) + ))) ;; i.e. just C-r in semi-char-mode (use-package eshell-command-not-found :custom ((eshell-command-not-found-command "command-not-found")) @@ -758,7 +757,7 @@ (use-package eshell-prompt-extras :custom ((eshell-highlight-prompt nil) - (eshell-prompt-function 'epe-theme-lambda))) + (eshell-prompt-function 'epe-theme-lambda))) (use-package popper :custom @@ -787,36 +786,35 @@ (use-package org :hook ((org-mode . variable-pitch-mode) - (org-mode . visual-line-mode) - (org-mode . visual-fill-column-mode)) + (org-mode . visual-line-mode) + (org-mode . visual-fill-column-mode)) :custom ((org-log-done nil) - (org-return-follows-link t) - (org-hide-emphasis-markers t) - (visual-fill-column-center-text t) - (visual-fill-column-width 100) - (fill-column 100) - (org-capture-templates '( - ("j" "Work Log Entry" - entry (file+datetree "~/org/work-log.org") - "* %?" - :empty-lines 0) - ("n" "Note" - entry (file+headline "~/org/notes.org" "Random Notes") - "** %?" - :empty-lines 0) - )) - (org-auto-align-tags nil) - (org-tags-column 0) - (org-catch-invisible-edits 'show-and-error) - (org-special-ctrl-a/e t) - (org-insert-heading-respect-content t) - (org-pretty-entities t) - (org-ellipsis "…") - (org-use-sub-superscripts nil) - ) + (org-return-follows-link t) + (org-hide-emphasis-markers t) + (visual-fill-column-center-text t) + (visual-fill-column-width 100) + (fill-column 100) + (org-capture-templates '( + ("j" "Work Log Entry" + entry (file+datetree "~/org/work-log.org") + "* %?" + :empty-lines 0) + ("n" "Note" + entry (file+headline "~/org/notes.org" "Random Notes") + "** %?" + :empty-lines 0) + )) + (org-auto-align-tags nil) + (org-tags-column 0) + (org-catch-invisible-edits 'show-and-error) + (org-special-ctrl-a/e t) + (org-insert-heading-respect-content t) + (org-pretty-entities t) + (org-ellipsis "…") + ) :bind (("C-c o l" . org-store-link) - ("C-c o c" . org-capture) - ("C-c b o" . org-switchb)) + ("C-c o c" . org-capture) + ("C-c b o" . org-switchb)) :config (defun ccr/org-capture (key) "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) :custom (org-roam-v2-ack t) - (org-roam-directory (file-truename "~/roam")) - (org-roam-completion-everywhere 't) + (org-roam-directory (file-truename "~/org")) + (org-roam-complete-everywhere 't) (org-roam-dailies-capture-templates '( ("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 '( ("r" "Web entry" entry - "** %i \n:PROPERTIES:\n:URL: ${ref}\n:END:" - :target (file+olp "inbox.org" ("Web entries")) + "* ${Title} \n:PROPERTIES:\n:URL: ${ref}\n:END:\n %i" + :target (file+head "daily/%<%Y-%m-%d>.org" "#+TITLE: %<%Y-%m-%d>") :create-id t) ) ) :config (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 (defun org-roam-node-spent (node) "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" #'org-roam-node-date #'(lambda (node-date start-date end-date) - (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") - ;; then it's always discarded (the epoch time is given to it) - (encode-time (org-parse-time-string node-date)) - (error (encode-time (org-parse-time-string "<1970-01-01>"))))) - (start-date (encode-time (org-parse-time-string start-date))) - (end-date (encode-time (org-parse-time-string end-date)))) - (and (time-less-p start-date node-date) - (time-less-p node-date end-date))) - )) + (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") + ;; then it's always discarded (the epoch time is given to it) + (encode-time (org-parse-time-string node-date)) + (error (encode-time (org-parse-time-string "<1970-01-01>"))))) + (start-date (encode-time (org-parse-time-string start-date))) + (end-date (encode-time (org-parse-time-string end-date)))) + (and (time-less-p start-date node-date) + (time-less-p node-date end-date))) + )) (defun ccr/org-roam-spent-hours (client &optional date-start date-end) "Return the total spent hours on something (usually a client)" (let* ((query-tags `(tags ,client "billable")) - (query (if (and date-start date-end) - `(and ,query-tags (date-range ,date-start ,date-end)) - query-tags))) - (apply #'+(mapcar #'org-roam-node-spent (org-roam-ql-nodes query))))) - :bind - (("C-c n i" . org-roam-node-insert))) + (query (if (and date-start date-end) + `(and ,query-tags (date-range ,date-start ,date-end)) + query-tags))) + (apply #'+(mapcar #'org-roam-node-spent (org-roam-ql-nodes query)))))) (use-package org-roam-ql :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-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 :custom (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) "In BUFFER-NAME, replace OLD-STRING with NEW-STRING." (with-current-buffer buffer-name - (let ((case-fold-search nil)) ;; Case-sensitive search + (let ((case-fold-search nil)) ;; Case-sensitive search (save-excursion (goto-char (point-min)) (let ((count 0)) @@ -1157,23 +1152,6 @@ This is meant to be an helper to be called from the window manager." :type string :description "The text to append to the buffer.")) :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 :name "EditBuffer" :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" :required t)) :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") )) diff --git a/hmModules/unison/default.nix b/hmModules/unison/default.nix deleted file mode 100644 index 081f052..0000000 --- a/hmModules/unison/default.nix +++ /dev/null @@ -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"; - }; - }; - }; - }; -} diff --git a/hosts/default.nix b/hosts/default.nix index efdd865..cf4fc6f 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -59,7 +59,6 @@ "git-workspace-tokens".owner = "ccr"; "autistici-password".owner = "ccr"; "restic-hetzner-password" = { }; - "nix-netrc" = { }; }; }; @@ -88,7 +87,6 @@ "restic-hetzner-password" = { }; "forgejo-runners-token".owner = "nixuser"; "forgejo-nix-access-tokens".owner = "nixuser"; - "nix-netrc" = { }; }; }; @@ -121,8 +119,6 @@ group = "forgejo"; }; "matrix-registration-shared-secret".owner = "matrix-synapse"; - "arbi-config".owner = "arbi"; - "nix-netrc" = { }; }; }; @@ -146,7 +142,9 @@ "cachix-personal-token".owner = "ccr"; "git-workspace-tokens".owner = "ccr"; "autistici-password".owner = "ccr"; - "nix-netrc" = { }; + "restic-hetzner-password" = { }; + "forgejo-runners-token".owner = "nixuser"; + "forgejo-nix-access-tokens".owner = "nixuser"; }; }; diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 0ccd677..72cebd5 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -28,11 +28,13 @@ "pam" "wireguard-client" "greetd" + "syncthing" "mount-sisko" "adb" "binfmt" "prometheus-exporters" "alloy" + "syncthing" "zerotier" ] ++ [ ./disko.nix ]; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 02271ff..3cbb5d2 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -31,6 +31,7 @@ "wireguard-client" "binfmt" "greetd" + "syncthing" "hass-poweroff" "forgejo-runners" "teamviewer" @@ -98,7 +99,6 @@ "pantalaimon" "moonlight" "gimp" - "unison" ]; extraGroups = [ "plugdev" ]; backupPaths = [ ]; diff --git a/hosts/pike/default.nix b/hosts/pike/default.nix index c1c2579..2248933 100644 --- a/hosts/pike/default.nix +++ b/hosts/pike/default.nix @@ -29,6 +29,7 @@ "wireguard-client" "binfmt" "greetd" + # "syncthing" "teamviewer" "sunshine" "mount-sisko" @@ -168,16 +169,4 @@ enable = true; 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"; - }; } diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index e4a3c17..13a9b0d 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -26,6 +26,7 @@ "atuin" "immich" "paperless" + "syncthing" "atticd" "jellyfin" "matrix" @@ -113,7 +114,6 @@ environment.systemPackages = with pkgs; [ cifs-utils - unison ]; powerManagement.scsiLinkPolicy = "med_power_with_dipm"; diff --git a/modules/arbi/default.nix b/modules/arbi/default.nix index 3417b51..02ab9e5 100644 --- a/modules/arbi/default.nix +++ b/modules/arbi/default.nix @@ -1,4 +1,4 @@ -{ config, ... }: +{ config, pkgs, ... }: let rev = "d531730d9640160f0519ef4b3640f8da49dd96f8"; arbi-flake = builtins.getFlake "git+ssh://git@github.com/aciceri/arbi.git?rev=${rev}"; @@ -9,7 +9,11 @@ in services.arbi = { enable = true; log_level = "debug"; - configFile = config.age.secrets.arbi-config.path; + configFile = pkgs.writeText "arbi-config.kdl" '' + endpoint "wss://eth-mainnet.g.alchemy.com/v2/" + pairs_file "pairs.json" + concurrency 4 + ''; }; environment.persistence."/persist".directories = [ diff --git a/modules/jellyfin/default.nix b/modules/jellyfin/default.nix index 6586166..c9cdeaa 100644 --- a/modules/jellyfin/default.nix +++ b/modules/jellyfin/default.nix @@ -5,10 +5,7 @@ openFirewall = true; }; - users.users.jellyfin.extraGroups = [ - "transmission" - "amule" - ]; + users.users.jellyfin.extraGroups = [ "transmission" ]; environment.persistence."/persist".directories = [ config.services.jellyfin.dataDir diff --git a/modules/nix/default.nix b/modules/nix/default.nix index ef46e63..000ede4 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -20,20 +20,20 @@ "root" "@wheel" ]; - netrc-file = config.age.secrets.nix-netrc.path; + netrc-file = "/etc/nix/netrc"; substituters = [ + # "s3://cache?profile=default®ion=eu-south-1&scheme=https&endpoint=cache.aciceri.dev" "https://cache.iog.io" "https://cache.lix.systems" "https://nix-community.cachix.org" - # "https://mlabs.cachix.org" - "http://sisko.wg.aciceri.dev:8081/nixfleet" + "https://mlabs.cachix.org" ]; trusted-public-keys = [ + # "cache.aciceri.dev~1:nJMfcBnYieY2WMbYDG0s9S5qUhU+V4RPL+X9zcxXxZY=" "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - # "mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M=" - "nixfleet:Bud23440n6mMTmgq/7U+mk91zlLjnx2X3lQQrCBCCU4=" + "mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M=" ]; deprecated-features = [ "url-literals" ]; }; diff --git a/modules/restic/default.nix b/modules/restic/default.nix index f973ce9..52cd712 100644 --- a/modules/restic/default.nix +++ b/modules/restic/default.nix @@ -42,7 +42,6 @@ in "/persist" "/mnt/hd/immich" "/mnt/hd/paperless" - "/mnt/hd/roam" ]; exclude = [ " /persist/var/lib/containers" ]; passwordFile = config.age.secrets.SISKO_RESTIC_PASSWORD.path; diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 4852658..9ab2c44 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -188,7 +188,6 @@ let org-roam org-roam-ql org-roam-ui - org-download visual-fill-column consult-org-roam pass diff --git a/secrets/arbi-config.age b/secrets/arbi-config.age deleted file mode 100644 index 0e31ccf..0000000 Binary files a/secrets/arbi-config.age and /dev/null differ diff --git a/secrets/nix-netrc.age b/secrets/nix-netrc.age deleted file mode 100644 index 7b0438f..0000000 Binary files a/secrets/nix-netrc.age and /dev/null differ diff --git a/secrets/secrets.nix b/secrets/secrets.nix index fd1bca9..7b341b1 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -153,17 +153,6 @@ with keys.users; ccr-ssh sisko ]; - "arbi-config.age".publicKeys = [ - ccr-ssh - sisko - ]; - "nix-netrc.age".publicKeys = [ - ccr-ssh - sisko - pike - picard - kirk - ]; # WireGuard "picard-wireguard-private-key.age".publicKeys = [