Compare commits
21 commits
7119b8321c
...
33175c5757
Author | SHA1 | Date | |
---|---|---|---|
33175c5757 | |||
81da82c1fb | |||
7188dbf665 | |||
959016455f | |||
ddfb93214f | |||
c8e32b689b | |||
8e28001eab | |||
6cd58095e4 | |||
146eee5abe | |||
1fd1c845e8 | |||
7e92d09299 | |||
9b907264c2 | |||
24a80896a8 | |||
6d715d8878 | |||
a7f927516e | |||
fd793b791d | |||
5692a37c88 | |||
ff5359cd50 | |||
22b1484026 | |||
839cf0df5f | |||
251266db4c |
16 changed files with 331 additions and 246 deletions
130
flake.lock
generated
130
flake.lock
generated
|
@ -8,11 +8,11 @@
|
|||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745630506,
|
||||
"narHash": "sha256-bHCFgGeu8XjWlVuaWzi3QONjDW3coZDqSHvnd4l7xus=",
|
||||
"lastModified": 1747575206,
|
||||
"narHash": "sha256-NwmAFuDUO/PFcgaGGr4j3ozG9Pe5hZ/ogitWhY+D81k=",
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"rev": "96e078c646b711aee04b82ba01aefbff87004ded",
|
||||
"rev": "4835b1dc898959d8547a871ef484930675cb47f1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -26,11 +26,11 @@
|
|||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746175539,
|
||||
"narHash": "sha256-/wjcn1CDQqOhwOoYKS8Xp0KejrdXSJZQMF1CbbrVtMw=",
|
||||
"lastModified": 1748080874,
|
||||
"narHash": "sha256-sUebEzAkrY8Aq5G0GHFyRddmRNGP/a2iTtV7ISNvi/c=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "a5db9e41a4dccfa5ffe38e6f1841a5f9ad5c5c04",
|
||||
"rev": "0ba11b12be81f0849a89ed17ab635164ea8f0112",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -41,11 +41,11 @@
|
|||
},
|
||||
"crane": {
|
||||
"locked": {
|
||||
"lastModified": 1741481578,
|
||||
"narHash": "sha256-JBTSyJFQdO3V8cgcL08VaBUByEU6P5kXbTJN6R0PFQo=",
|
||||
"lastModified": 1746291859,
|
||||
"narHash": "sha256-DdWJLA+D5tcmrRSg5Y7tp/qWaD05ATI4Z7h22gd1h7Q=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5",
|
||||
"rev": "dfd9a8dfd09db9aad544c4d3b6c47b12562544a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -83,11 +83,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745812220,
|
||||
"narHash": "sha256-hotBG0EJ9VmAHJYF0yhWuTVZpENHvwcJ2SxvIPrXm+g=",
|
||||
"lastModified": 1748225455,
|
||||
"narHash": "sha256-AzlJCKaM4wbEyEpV3I/PUq5mHnib2ryEy32c+qfj6xk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "d0c543d740fad42fe2c035b43c9d41127e073c78",
|
||||
"rev": "a894f2811e1ee8d10c50560551e50d6ab3c392ba",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -103,11 +103,11 @@
|
|||
"pyproject-nix": "pyproject-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735160684,
|
||||
"narHash": "sha256-n5CwhmqKxifuD4Sq4WuRP/h5LO6f23cGnSAuJemnd/4=",
|
||||
"lastModified": 1747658429,
|
||||
"narHash": "sha256-qZWuEdxmPx818qR61t3mMozJOvZSmTRUDPU4L3JeGgE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "dream2nix",
|
||||
"rev": "8ce6284ff58208ed8961681276f82c2f8f978ef4",
|
||||
"rev": "6fd6d9188f32efd1e1656b3c3e63a67f9df7b636",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -122,11 +122,11 @@
|
|||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746240489,
|
||||
"narHash": "sha256-DWMG7jkpxrEGzTZZerDqaxT8X983tibFGfNeoWtX1yU=",
|
||||
"lastModified": 1748248657,
|
||||
"narHash": "sha256-zqhc7qyoRmgZpkvjocYEui9xYlzL90nqPf40zADGruM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "emacs-overlay",
|
||||
"rev": "66bb2d7a4df96d0c1e63648850b7aed1b2e8d683",
|
||||
"rev": "e048433838750a5fd9036e56dd8f59affa6d676b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -191,11 +191,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741352980,
|
||||
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
|
||||
"lastModified": 1743550720,
|
||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
|
||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -282,11 +282,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742649964,
|
||||
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
|
||||
"lastModified": 1747372754,
|
||||
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
|
||||
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -387,11 +387,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746243165,
|
||||
"narHash": "sha256-DQycVmlyLQNLjLJ/FzpokVmbxGQ8HjQQ4zN4nyq2vII=",
|
||||
"lastModified": 1748227609,
|
||||
"narHash": "sha256-SaSdslyo6UGDpPUlmrPA4dWOEuxCy2ihRN9K6BnqYsA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "c0962eeeabfb8127713f859ec8a5f0e86dead0f2",
|
||||
"rev": "d23d20f55d49d8818ac1f1b2783671e8a6725022",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -448,11 +448,11 @@
|
|||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745271491,
|
||||
"narHash": "sha256-4GAHjus6JRpYHVROMIhFIz/sgLDF/klBM3UHulbSK9s=",
|
||||
"lastModified": 1747056319,
|
||||
"narHash": "sha256-qSKcBaISBozadtPq6BomnD+wIYTZIkiua3UuHLaD52c=",
|
||||
"owner": "nix-community",
|
||||
"repo": "lanzaboote",
|
||||
"rev": "995637eb3ab78eac33f8ee6b45cc2ecd5ede12ba",
|
||||
"rev": "2e425f3da6ce7f5b34fa6eaf7a2a7f78dbabcc85",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -464,11 +464,11 @@
|
|||
"lix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1746186329,
|
||||
"narHash": "sha256-MLz0MjeVCaqvIvf5szUwNwYEiXC/lKWL0I2VS+6V/e0=",
|
||||
"lastModified": 1748182888,
|
||||
"narHash": "sha256-tm3yi3KL+KjMnLZFXKR1ioI/Rk8DIa2n1NNE6I99BpU=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "4e84fd9a0061a04627ec6962c0ed08c2ad0b8a7f",
|
||||
"revCount": 17824,
|
||||
"rev": "dbff52bfbc48ead789888bf24422d0ef6f7ba9a8",
|
||||
"revCount": 17946,
|
||||
"type": "git",
|
||||
"url": "https://git@git.lix.systems/lix-project/lix"
|
||||
},
|
||||
|
@ -489,11 +489,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742945498,
|
||||
"narHash": "sha256-MB/b/xcDKqaVBxJIIxwb81r8ZiGLeKEcqokATRRroo8=",
|
||||
"lastModified": 1747667424,
|
||||
"narHash": "sha256-7EICjbmG6lApWKhFtwvZovdcdORY1CEe6/K7JwtpYfs=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "fa69ae26cc32dda178117b46487c2165c0e08316",
|
||||
"revCount": 138,
|
||||
"rev": "3c23c6ae2aecc1f76ae7993efe1a78b5316f0700",
|
||||
"revCount": 144,
|
||||
"type": "git",
|
||||
"url": "https://git.lix.systems/lix-project/nixos-module"
|
||||
},
|
||||
|
@ -505,11 +505,11 @@
|
|||
"mobile-nixos": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1743812405,
|
||||
"narHash": "sha256-BedQ9Z3+nqtp9BRjHjJNPUeLIMVbTsP3Udbz0b1cUn0=",
|
||||
"lastModified": 1748200777,
|
||||
"narHash": "sha256-ELbQ7Apk0QzfhO8WjQIqEBuN2bEnGQHNxeiOSx/mU38=",
|
||||
"owner": "NixOS",
|
||||
"repo": "mobile-nixos",
|
||||
"rev": "6679fd7a8dd4ccf4aa538b82216723861cfe61a2",
|
||||
"rev": "6e249e58b5d8166738ebcfd401f05f7496049dd3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -554,11 +554,11 @@
|
|||
"nmd": "nmd"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1725658585,
|
||||
"narHash": "sha256-P29z4Gt89n5ps1U7+qmIrj0BuRXGZQSIaOe2+tsPgfw=",
|
||||
"lastModified": 1747382160,
|
||||
"narHash": "sha256-nlHPjA5GH4wdwnAoOzCt7BVLUKtIAAW2ClNGz2OxTrs=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-on-droid",
|
||||
"rev": "5d88ff2519e4952f8d22472b52c531bb5f1635fc",
|
||||
"rev": "40b8c7465f78887279a0a3c743094fa6ea671ab1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -569,11 +569,11 @@
|
|||
},
|
||||
"nixosHardware": {
|
||||
"locked": {
|
||||
"lastModified": 1745955289,
|
||||
"narHash": "sha256-mmV2oPhQN+YF2wmnJzXX8tqgYmUYXUj3uUUBSTmYN5o=",
|
||||
"lastModified": 1747900541,
|
||||
"narHash": "sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "72081c9fbbef63765ae82bff9727ea79cc86bd5b",
|
||||
"rev": "11f2d9ea49c3e964315215d6baa73a8d42672f06",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -647,11 +647,11 @@
|
|||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1746183838,
|
||||
"narHash": "sha256-kwaaguGkAqTZ1oK0yXeQ3ayYjs8u/W7eEfrFpFfIDFA=",
|
||||
"lastModified": 1748037224,
|
||||
"narHash": "sha256-92vihpZr6dwEMV6g98M5kHZIttrWahb9iRPBm1atcPk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "bf3287dac860542719fe7554e21e686108716879",
|
||||
"rev": "f09dede81861f3a83f7f06641ead34f02f37597f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -711,11 +711,11 @@
|
|||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1746141548,
|
||||
"narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=",
|
||||
"lastModified": 1748026106,
|
||||
"narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f02fddb8acef29a8b32f10a335d44828d7825b78",
|
||||
"rev": "063f43f2dbdef86376cc29ad646c45c46e93234c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -742,11 +742,11 @@
|
|||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1746141548,
|
||||
"narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=",
|
||||
"lastModified": 1748026106,
|
||||
"narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f02fddb8acef29a8b32f10a335d44828d7825b78",
|
||||
"rev": "063f43f2dbdef86376cc29ad646c45c46e93234c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -821,11 +821,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741379162,
|
||||
"narHash": "sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc=",
|
||||
"lastModified": 1746537231,
|
||||
"narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "b5a62751225b2f62ff3147d0a334055ebadcd5cc",
|
||||
"rev": "fa466640195d38ec97cf0493d6d6882bc4d14969",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -906,11 +906,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741573199,
|
||||
"narHash": "sha256-A2sln1GdCf+uZ8yrERSCZUCqZ3JUlOv1WE2VFqqfaLQ=",
|
||||
"lastModified": 1747017456,
|
||||
"narHash": "sha256-C/U12fcO+HEF071b5mK65lt4XtAIZyJSSJAg9hdlvTk=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "c777dc8a1e35407b0e80ec89817fe69970f4e81a",
|
||||
"rev": "5b07506ae89b025b14de91f697eba23b48654c52",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -1009,11 +1009,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746216483,
|
||||
"narHash": "sha256-4h3s1L/kKqt3gMDcVfN8/4v2jqHrgLIe4qok4ApH5x4=",
|
||||
"lastModified": 1748243702,
|
||||
"narHash": "sha256-9YzfeN8CB6SzNPyPm2XjRRqSixDopTapaRsnTpXUEY8=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "29ec5026372e0dec56f890e50dbe4f45930320fd",
|
||||
"rev": "1f3f7b784643d488ba4bf315638b2b0a4c5fb007",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
(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
|
||||
|
@ -163,8 +164,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))
|
||||
|
@ -208,7 +209,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
|
||||
|
@ -219,8 +220,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))
|
||||
|
@ -331,44 +332,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 <up>" . windmove-up)
|
||||
("C-c w <right>" . windmove-right)
|
||||
("C-c w <down>" . windmove-down)
|
||||
("C-c w <left>" . 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 <up>" . windmove-up)
|
||||
("C-c w <right>" . windmove-right)
|
||||
("C-c w <down>" . windmove-down)
|
||||
("C-c w <left>" . 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
|
||||
|
@ -379,10 +380,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
|
||||
|
@ -417,7 +418,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)
|
||||
|
@ -445,9 +446,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))
|
||||
|
||||
|
@ -458,7 +459,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)
|
||||
|
@ -500,28 +501,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\\'"
|
||||
)
|
||||
|
||||
|
@ -533,33 +534,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))
|
||||
|
@ -581,11 +582,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))
|
||||
|
@ -629,7 +630,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)
|
||||
|
@ -679,8 +680,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)
|
||||
|
@ -694,17 +695,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 ()
|
||||
|
@ -712,35 +713,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-<return>" . corfu-send)
|
||||
))) ;; i.e. just C-r in semi-char-mode
|
||||
(:map eshell-mode-map
|
||||
("C-r" . ccr/eshell-history)
|
||||
("C-<return>" . 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"))
|
||||
|
@ -757,7 +758,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
|
||||
|
@ -786,35 +787,36 @@
|
|||
|
||||
(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-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)
|
||||
)
|
||||
: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.
|
||||
|
@ -927,8 +929,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 "~/org"))
|
||||
(org-roam-complete-everywhere 't)
|
||||
(org-roam-directory (file-truename "~/roam"))
|
||||
(org-roam-completion-everywhere 't)
|
||||
(org-roam-dailies-capture-templates
|
||||
'(
|
||||
("d" "Generic entry" entry
|
||||
|
@ -943,20 +945,14 @@ This is meant to be an helper to be called from the window manager."
|
|||
(org-roam-capture-ref-templates
|
||||
'(
|
||||
("r" "Web entry" entry
|
||||
"* ${Title} \n:PROPERTIES:\n:URL: ${ref}\n:END:\n %i"
|
||||
:target (file+head "daily/%<%Y-%m-%d>.org" "#+TITLE: %<%Y-%m-%d>")
|
||||
"** %i \n:PROPERTIES:\n:URL: ${ref}\n:END:"
|
||||
:target (file+olp "inbox.org" ("Web entries"))
|
||||
: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"
|
||||
|
@ -970,24 +966,26 @@ This is meant to be an helper to be called from the window manager."
|
|||
"Check if node was created in given time range"
|
||||
#'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))))))
|
||||
(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)))
|
||||
|
||||
(use-package org-roam-ql
|
||||
:after org-roam
|
||||
|
@ -1027,6 +1025,13 @@ This is meant to be an helper to be called from the window manager."
|
|||
org-roam-ui-update-on-save t
|
||||
org-roam-ui-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)
|
||||
|
@ -1057,7 +1062,7 @@ This is meant to be an helper to be called from the window manager."
|
|||
(defun ccr/edit-buffer (buffer-name old-string new-string)
|
||||
"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))
|
||||
|
@ -1152,6 +1157,23 @@ 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
|
||||
|
@ -1185,6 +1207,22 @@ This is meant to be an helper to be called from the window manager."
|
|||
:description "Content to write to the buffer"
|
||||
: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")
|
||||
))
|
||||
|
||||
|
||||
|
|
24
hmModules/unison/default.nix
Normal file
24
hmModules/unison/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
|||
{ pkgs, lib, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.unison ];
|
||||
services.unison = {
|
||||
enable = true;
|
||||
pairs = {
|
||||
"roam" = {
|
||||
roots = [
|
||||
# Pair of roots to synchronize
|
||||
"/home/ccr/roam"
|
||||
"ssh://root@sisko.wg.aciceri.dev//mnt/hd/roam"
|
||||
];
|
||||
commandOptions = {
|
||||
auto = "true";
|
||||
batch = "true";
|
||||
log = "false";
|
||||
repeat = "watch";
|
||||
sshcmd = lib.getExe pkgs.openssh;
|
||||
ui = "text";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -59,6 +59,7 @@
|
|||
"git-workspace-tokens".owner = "ccr";
|
||||
"autistici-password".owner = "ccr";
|
||||
"restic-hetzner-password" = { };
|
||||
"nix-netrc" = { };
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -87,6 +88,7 @@
|
|||
"restic-hetzner-password" = { };
|
||||
"forgejo-runners-token".owner = "nixuser";
|
||||
"forgejo-nix-access-tokens".owner = "nixuser";
|
||||
"nix-netrc" = { };
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -119,6 +121,8 @@
|
|||
group = "forgejo";
|
||||
};
|
||||
"matrix-registration-shared-secret".owner = "matrix-synapse";
|
||||
"arbi-config".owner = "arbi";
|
||||
"nix-netrc" = { };
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -142,9 +146,7 @@
|
|||
"cachix-personal-token".owner = "ccr";
|
||||
"git-workspace-tokens".owner = "ccr";
|
||||
"autistici-password".owner = "ccr";
|
||||
"restic-hetzner-password" = { };
|
||||
"forgejo-runners-token".owner = "nixuser";
|
||||
"forgejo-nix-access-tokens".owner = "nixuser";
|
||||
"nix-netrc" = { };
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -28,13 +28,11 @@
|
|||
"pam"
|
||||
"wireguard-client"
|
||||
"greetd"
|
||||
"syncthing"
|
||||
"mount-sisko"
|
||||
"adb"
|
||||
"binfmt"
|
||||
"prometheus-exporters"
|
||||
"alloy"
|
||||
"syncthing"
|
||||
"zerotier"
|
||||
]
|
||||
++ [ ./disko.nix ];
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
"wireguard-client"
|
||||
"binfmt"
|
||||
"greetd"
|
||||
"syncthing"
|
||||
"hass-poweroff"
|
||||
"forgejo-runners"
|
||||
"teamviewer"
|
||||
|
@ -99,6 +98,7 @@
|
|||
"pantalaimon"
|
||||
"moonlight"
|
||||
"gimp"
|
||||
"unison"
|
||||
];
|
||||
extraGroups = [ "plugdev" ];
|
||||
backupPaths = [ ];
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
"wireguard-client"
|
||||
"binfmt"
|
||||
"greetd"
|
||||
# "syncthing"
|
||||
"teamviewer"
|
||||
"sunshine"
|
||||
"mount-sisko"
|
||||
|
@ -169,4 +168,16 @@
|
|||
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";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
"atuin"
|
||||
"immich"
|
||||
"paperless"
|
||||
"syncthing"
|
||||
"atticd"
|
||||
"jellyfin"
|
||||
"matrix"
|
||||
|
@ -114,6 +113,7 @@
|
|||
|
||||
environment.systemPackages = with pkgs; [
|
||||
cifs-utils
|
||||
unison
|
||||
];
|
||||
|
||||
powerManagement.scsiLinkPolicy = "med_power_with_dipm";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ config, ... }:
|
||||
let
|
||||
rev = "d531730d9640160f0519ef4b3640f8da49dd96f8";
|
||||
arbi-flake = builtins.getFlake "git+ssh://git@github.com/aciceri/arbi.git?rev=${rev}";
|
||||
|
@ -9,11 +9,7 @@ in
|
|||
services.arbi = {
|
||||
enable = true;
|
||||
log_level = "debug";
|
||||
configFile = pkgs.writeText "arbi-config.kdl" ''
|
||||
endpoint "wss://eth-mainnet.g.alchemy.com/v2/<REDACTED>"
|
||||
pairs_file "pairs.json"
|
||||
concurrency 4
|
||||
'';
|
||||
configFile = config.age.secrets.arbi-config.path;
|
||||
};
|
||||
|
||||
environment.persistence."/persist".directories = [
|
||||
|
|
|
@ -5,7 +5,10 @@
|
|||
openFirewall = true;
|
||||
};
|
||||
|
||||
users.users.jellyfin.extraGroups = [ "transmission" ];
|
||||
users.users.jellyfin.extraGroups = [
|
||||
"transmission"
|
||||
"amule"
|
||||
];
|
||||
|
||||
environment.persistence."/persist".directories = [
|
||||
config.services.jellyfin.dataDir
|
||||
|
|
|
@ -20,20 +20,20 @@
|
|||
"root"
|
||||
"@wheel"
|
||||
];
|
||||
netrc-file = "/etc/nix/netrc";
|
||||
netrc-file = config.age.secrets.nix-netrc.path;
|
||||
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"
|
||||
# "https://mlabs.cachix.org"
|
||||
"http://sisko.wg.aciceri.dev:8081/nixfleet"
|
||||
];
|
||||
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="
|
||||
# "mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M="
|
||||
"nixfleet:Bud23440n6mMTmgq/7U+mk91zlLjnx2X3lQQrCBCCU4="
|
||||
];
|
||||
deprecated-features = [ "url-literals" ];
|
||||
};
|
||||
|
|
|
@ -42,6 +42,7 @@ in
|
|||
"/persist"
|
||||
"/mnt/hd/immich"
|
||||
"/mnt/hd/paperless"
|
||||
"/mnt/hd/roam"
|
||||
];
|
||||
exclude = [ " /persist/var/lib/containers" ];
|
||||
passwordFile = config.age.secrets.SISKO_RESTIC_PASSWORD.path;
|
||||
|
|
|
@ -188,6 +188,7 @@ let
|
|||
org-roam
|
||||
org-roam-ql
|
||||
org-roam-ui
|
||||
org-download
|
||||
visual-fill-column
|
||||
consult-org-roam
|
||||
pass
|
||||
|
|
BIN
secrets/arbi-config.age
Normal file
BIN
secrets/arbi-config.age
Normal file
Binary file not shown.
BIN
secrets/nix-netrc.age
Normal file
BIN
secrets/nix-netrc.age
Normal file
Binary file not shown.
|
@ -153,6 +153,17 @@ 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 = [
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue