Compare commits

...

3 commits

Author SHA1 Message Date
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
5 changed files with 144 additions and 142 deletions

View file

@ -163,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))
@ -208,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
@ -219,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))
@ -331,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
@ -379,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
@ -417,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)
@ -445,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))
@ -458,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)
@ -500,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\\'"
) )
@ -533,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))
@ -581,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))
@ -629,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)
@ -679,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)
@ -694,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 ()
@ -712,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"))
@ -757,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
@ -786,35 +786,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.

View file

@ -119,6 +119,7 @@
group = "forgejo"; group = "forgejo";
}; };
"matrix-registration-shared-secret".owner = "matrix-synapse"; "matrix-registration-shared-secret".owner = "matrix-synapse";
"arbi-config".owner = "arbi";
}; };
}; };

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 = [

BIN
secrets/arbi-config.age Normal file

Binary file not shown.

View file

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