Compare commits

..

1 commit

Author SHA1 Message Date
51e77b05f5 flake.lock: Update
Some checks failed
/ test (push) Has been cancelled
Flake lock file updates:

• Updated input 'catppuccin':
    'github:catppuccin/nix/a5db9e41a4dccfa5ffe38e6f1841a5f9ad5c5c04' (2025-05-02)
  → 'github:catppuccin/nix/7a6ccdeba6e761bec9601e2192983e6b9dff630c' (2025-05-15)
• Updated input 'disko':
    'github:nix-community/disko/d0c543d740fad42fe2c035b43c9d41127e073c78' (2025-04-28)
  → 'github:nix-community/disko/ec7c109a4f794fce09aad87239eab7f66540b888' (2025-05-15)
• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/66bb2d7a4df96d0c1e63648850b7aed1b2e8d683' (2025-05-03)
  → 'github:nix-community/emacs-overlay/d8949f8c77eadcc7b268f994361fd2055cfbf2cb' (2025-05-15)
• Updated input 'emacs-overlay/nixpkgs':
    'github:NixOS/nixpkgs/f02fddb8acef29a8b32f10a335d44828d7825b78' (2025-05-01)
  → 'github:NixOS/nixpkgs/adaa24fbf46737f3f1b5497bf64bae750f82942e' (2025-05-13)
• Updated input 'emacs-overlay/nixpkgs-stable':
    'github:NixOS/nixpkgs/bf3287dac860542719fe7554e21e686108716879' (2025-05-02)
  → 'github:NixOS/nixpkgs/a39ed32a651fdee6842ec930761e31d1f242cb94' (2025-05-11)
• Updated input 'git-hooks-nix':
    'github:cachix/git-hooks.nix/dcf5072734cb576d2b0c59b2ac44f5050b5eac82' (2025-03-22)
  → 'github:cachix/git-hooks.nix/fa466640195d38ec97cf0493d6d6882bc4d14969' (2025-05-06)
• Updated input 'homeManager':
    'github:nix-community/home-manager/c0962eeeabfb8127713f859ec8a5f0e86dead0f2' (2025-05-03)
  → 'github:nix-community/home-manager/954615c510c9faa3ee7fb6607ff72e55905e69f2' (2025-05-15)
• Updated input 'lanzaboote':
    'github:nix-community/lanzaboote/995637eb3ab78eac33f8ee6b45cc2ecd5ede12ba' (2025-04-21)
  → 'github:nix-community/lanzaboote/2e425f3da6ce7f5b34fa6eaf7a2a7f78dbabcc85' (2025-05-12)
• Updated input 'lanzaboote/crane':
    'github:ipetkov/crane/bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5' (2025-03-09)
  → 'github:ipetkov/crane/dfd9a8dfd09db9aad544c4d3b6c47b12562544a5' (2025-05-03)
• Updated input 'lanzaboote/flake-parts':
    'github:hercules-ci/flake-parts/f4330d22f1c5d2ba72d3d22df5597d123fdb60a9' (2025-03-07)
  → 'github:hercules-ci/flake-parts/c621e8422220273271f52058f618c94e405bb0f5' (2025-04-01)
• Updated input 'lanzaboote/pre-commit-hooks-nix':
    'github:cachix/pre-commit-hooks.nix/b5a62751225b2f62ff3147d0a334055ebadcd5cc' (2025-03-07)
  → 'github:cachix/pre-commit-hooks.nix/fa466640195d38ec97cf0493d6d6882bc4d14969' (2025-05-06)
• Updated input 'lanzaboote/rust-overlay':
    'github:oxalica/rust-overlay/c777dc8a1e35407b0e80ec89817fe69970f4e81a' (2025-03-10)
  → 'github:oxalica/rust-overlay/5b07506ae89b025b14de91f697eba23b48654c52' (2025-05-12)
• Updated input 'lix':
    'git+https://git@git.lix.systems/lix-project/lix?ref=refs/heads/main&rev=4e84fd9a0061a04627ec6962c0ed08c2ad0b8a7f' (2025-05-02)
  → 'git+https://git@git.lix.systems/lix-project/lix?ref=refs/heads/main&rev=b7ce00fc55dea4fa1e282921beebff25e6b2d1f0' (2025-05-15)
• Updated input 'lix-module':
    'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=fa69ae26cc32dda178117b46487c2165c0e08316' (2025-03-25)
  → 'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=58baedd53f9da81fd728a4f3b08c378e5ba9ae58' (2025-05-10)
• Updated input 'nix-on-droid':
    'github:nix-community/nix-on-droid/5d88ff2519e4952f8d22472b52c531bb5f1635fc' (2024-09-06)
  → 'github:nix-community/nix-on-droid/7f68d674b30997434868c9e93784724fdbf37367' (2025-05-13)
• Updated input 'nixosHardware':
    'github:NixOS/nixos-hardware/72081c9fbbef63765ae82bff9727ea79cc86bd5b' (2025-04-29)
  → 'github:NixOS/nixos-hardware/e81fd167b33121269149c57806599045fd33eeed' (2025-05-13)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f02fddb8acef29a8b32f10a335d44828d7825b78' (2025-05-01)
  → 'github:NixOS/nixpkgs/adaa24fbf46737f3f1b5497bf64bae750f82942e' (2025-05-13)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/29ec5026372e0dec56f890e50dbe4f45930320fd' (2025-05-02)
  → 'github:numtide/treefmt-nix/e758f27436367c23bcd63cd973fa5e39254b530e' (2025-05-15)
2025-05-15 15:01:02 +00:00
28 changed files with 196 additions and 442 deletions

View file

@ -9,13 +9,7 @@ jobs:
name: Checkout repository name: Checkout repository
- name: Attic login - name: Attic login
run: attic login nixfleet http://sisko.wg.aciceri.dev:8081 ${{secrets.ATTIC_NIXFLEET_TOKEN}} run: attic login nixfleet http://sisko.wg.aciceri.dev:8081 ${{secrets.ATTIC_NIXFLEET_TOKEN}}
- name: Setup SSH - name: Build with nix
run: |
mkdir -p ~/.ssh
echo "${{secrets.FORGEJO_SSH_KEY}}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan github.com >> ~/.ssh/known_hosts
- name: Build with nix (x86_64-linux)
run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true
- name: Report checks - name: Report checks
run: report-checks run: report-checks

View file

@ -1,7 +1,7 @@
name: update-flake-lock name: update-flake-lock
on: on:
schedule: schedule:
- cron: "0 15 * * 1" # weekly on Monday at 15:00 - cron: "0 15 * * *" # daily at 15:00
jobs: jobs:
lockfile: lockfile:

View file

@ -49,7 +49,7 @@
build = _: nc: nc.config.system.build.toplevel; build = _: nc: nc.config.system.build.toplevel;
in in
{ {
x86_64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) picard pike kirk; }; x86_64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) picard; };
aarch64-linux = lib.mapAttrs build { aarch64-linux = lib.mapAttrs build {
inherit (self.nixosConfigurations) sisko; # pbp; inherit (self.nixosConfigurations) sisko; # pbp;
}; };

88
flake.lock generated
View file

@ -8,11 +8,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1747575206, "lastModified": 1745630506,
"narHash": "sha256-NwmAFuDUO/PFcgaGGr4j3ozG9Pe5hZ/ogitWhY+D81k=", "narHash": "sha256-bHCFgGeu8XjWlVuaWzi3QONjDW3coZDqSHvnd4l7xus=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "4835b1dc898959d8547a871ef484930675cb47f1", "rev": "96e078c646b711aee04b82ba01aefbff87004ded",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -26,11 +26,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1747519437, "lastModified": 1747268376,
"narHash": "sha256-uv9Wv59d+mckS2CkorOF484wp2G5TNGijdoBZ5RkAk0=", "narHash": "sha256-JDcdINnB1bfbUAy1eEgwIXLrfZeuntxuxTu7UWcQrQY=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "3ba714046ee32373e88166e6e9474d6ae6a5b734", "rev": "7a6ccdeba6e761bec9601e2192983e6b9dff630c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -83,11 +83,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747621015, "lastModified": 1747274630,
"narHash": "sha256-j0fo1rNxZvmFLMaE945UrbLJZAHTlQmq0/QMgOP4GTs=", "narHash": "sha256-87RJwXbfOHyzTB9LYagAQ6vOZhszCvd8Gvudu+gf3qo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "cec44d77d9dacf0c91d3d51aff128fefabce06ee", "rev": "ec7c109a4f794fce09aad87239eab7f66540b888",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -103,11 +103,11 @@
"pyproject-nix": "pyproject-nix" "pyproject-nix": "pyproject-nix"
}, },
"locked": { "locked": {
"lastModified": 1747658429, "lastModified": 1735160684,
"narHash": "sha256-qZWuEdxmPx818qR61t3mMozJOvZSmTRUDPU4L3JeGgE=", "narHash": "sha256-n5CwhmqKxifuD4Sq4WuRP/h5LO6f23cGnSAuJemnd/4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "dream2nix", "repo": "dream2nix",
"rev": "6fd6d9188f32efd1e1656b3c3e63a67f9df7b636", "rev": "8ce6284ff58208ed8961681276f82c2f8f978ef4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -122,11 +122,11 @@
"nixpkgs-stable": "nixpkgs-stable" "nixpkgs-stable": "nixpkgs-stable"
}, },
"locked": { "locked": {
"lastModified": 1747618089, "lastModified": 1747300110,
"narHash": "sha256-mbzwxQlxNamIMErEfwWRZ+ECmlQzxJ4eJvOM6/fxV5s=", "narHash": "sha256-mHePt7oDQepKT5jm4ZCjvohAIO0QPVVYZIIIn7VARKo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "emacs-overlay", "repo": "emacs-overlay",
"rev": "1b2bc802bbac29f4695e39fbf982944c0999b45d", "rev": "d8949f8c77eadcc7b268f994361fd2055cfbf2cb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -282,11 +282,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747372754, "lastModified": 1746537231,
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -387,11 +387,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747565775, "lastModified": 1747279714,
"narHash": "sha256-B6jmKHUEX1jxxcdoYHl7RVaeohtAVup8o3nuVkzkloA=", "narHash": "sha256-UdxlE8yyrKiGq3bgGyJ78AdFwh+fuRAruKtyFY5Zq5I=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "97118a310eb8e13bc1b9b12d67267e55b7bee6c8", "rev": "954615c510c9faa3ee7fb6607ff72e55905e69f2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -464,11 +464,11 @@
"lix": { "lix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1747664434, "lastModified": 1747273354,
"narHash": "sha256-ph9fCCvzgZ1PNOu82SSoceX/tYZ5MfmX3PkBxBiNxwA=", "narHash": "sha256-LUzJQ0T6XtlZLuFZ9ovLLCdzaCc4YhotPlMLoMcGD5w=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "eb18a90afbe0ade000d957cda344a5bcb3d565d4", "rev": "b7ce00fc55dea4fa1e282921beebff25e6b2d1f0",
"revCount": 17900, "revCount": 17889,
"type": "git", "type": "git",
"url": "https://git@git.lix.systems/lix-project/lix" "url": "https://git@git.lix.systems/lix-project/lix"
}, },
@ -554,11 +554,11 @@
"nmd": "nmd" "nmd": "nmd"
}, },
"locked": { "locked": {
"lastModified": 1747382160, "lastModified": 1747158007,
"narHash": "sha256-nlHPjA5GH4wdwnAoOzCt7BVLUKtIAAW2ClNGz2OxTrs=", "narHash": "sha256-uwRCd2RAAdMOvReceeaWHGp8RoGjFyIouQN053MsMSk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-on-droid", "repo": "nix-on-droid",
"rev": "40b8c7465f78887279a0a3c743094fa6ea671ab1", "rev": "7f68d674b30997434868c9e93784724fdbf37367",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -647,11 +647,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1747485343, "lastModified": 1746957726,
"narHash": "sha256-YbsZyuRE1tobO9sv0PUwg81QryYo3L1F3R3rF9bcG38=", "narHash": "sha256-k9ut1LSfHCr0AW82ttEQzXVCqmyWVA5+SHJkS5ID/Jo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9b5ac7ad45298d58640540d0323ca217f32a6762", "rev": "a39ed32a651fdee6842ec930761e31d1f242cb94",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -663,17 +663,17 @@
}, },
"nixpkgsSisko": { "nixpkgsSisko": {
"locked": { "locked": {
"lastModified": 1747542820, "lastModified": 1742288794,
"narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42",
"type": "github" "type": "github"
} }
}, },
@ -711,11 +711,11 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1747542820, "lastModified": 1747179050,
"narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", "narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -742,11 +742,11 @@
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1747542820, "lastModified": 1747179050,
"narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", "narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1009,11 +1009,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747469671, "lastModified": 1747299117,
"narHash": "sha256-bo1ptiFoNqm6m1B2iAhJmWCBmqveLVvxom6xKmtuzjg=", "narHash": "sha256-JGjCVbxS+9t3tZ2IlPQ7sdqSM4c+KmIJOXVJPfWmVOU=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "ab0378b61b0d85e73a8ab05d5c6029b5bd58c9fb", "rev": "e758f27436367c23bcd63cd973fa5e39254b530e",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -3,7 +3,7 @@
inputs = { inputs = {
flakeParts.url = "github:hercules-ci/flake-parts"; flakeParts.url = "github:hercules-ci/flake-parts";
nixpkgsSisko.url = "github:NixOS/nixpkgs/292fa7d4f6519c074f0a50394dbbe69859bb6043"; nixpkgsSisko.url = "github:NixOS/nixpkgs/b6eaf97c6960d97350c584de1b6dcff03c9daf42";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixosHardware.url = "github:NixOS/nixos-hardware"; nixosHardware.url = "github:NixOS/nixos-hardware";
homeManager = { homeManager = {

View file

@ -566,10 +566,7 @@
:mode "\\.hs\\'" :mode "\\.hs\\'"
:config :config
(add-to-list 'eglot-server-programs (add-to-list 'eglot-server-programs
'(haskell-ts-mode . ("haskell-language-server" "--lsp")))) '(haskell-ts-mode . ("haskell-language-server-wrapper" "--lsp"))))
(use-package tidal
:custom ((tidal-interpreter "tidal")))
(use-package purescript-mode (use-package purescript-mode
:custom ((project-vc-extra-root-markers '("spago.dhall"))) :custom ((project-vc-extra-root-markers '("spago.dhall")))
@ -599,15 +596,6 @@
(use-package gptscript-mode (use-package gptscript-mode
:mode "\\.gpt\\'") :mode "\\.gpt\\'")
(use-package gptscript-mode
:mode "\\.gpt\\'")
(use-package typst-ts-mode
:config
(add-to-list 'eglot-server-programs
'(typst-ts-mode . ("tinymist" "lsp")))
:mode "\\.typ\\'")
;; FIXME ;; FIXME
;; (use-package mmm-mode ;; (use-package mmm-mode
;; :config ;; :config
@ -1039,7 +1027,7 @@ This is meant to be an helper to be called from the window manager."
) )
(gptel-default-mode 'org-mode) (gptel-default-mode 'org-mode)
(gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it (gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it
(gptel-use-tools 't) (gptel-use-tools nil)
:bind :bind
("C-c a a" . gptel-add) ("C-c a a" . gptel-add)
@ -1054,139 +1042,56 @@ This is meant to be an helper to be called from the window manager."
;; (add-hook 'gptel-post-response-functions 'gptel-end-of-response) ;; (add-hook 'gptel-post-response-functions 'gptel-end-of-response)
;; (add-hook 'gptel-post-stream-hook 'gptel-auto-scroll) ;; (add-hook 'gptel-post-stream-hook 'gptel-auto-scroll)
(defun ccr/edit-buffer (buffer-name old-string new-string) (setq gptel-tools (mapcar (lambda (tool) (apply #'gptel-make-tool tool))
"In BUFFER-NAME, replace OLD-STRING with NEW-STRING." '((
(with-current-buffer buffer-name :name "create_file"
(let ((case-fold-search nil)) ;; Case-sensitive search :function (lambda (path filename content)
(save-excursion (let ((full-path (expand-file-name filename path)))
(goto-char (point-min)) (with-temp-buffer
(let ((count 0))
(while (search-forward old-string nil t)
(setq count (1+ count)))
(if (= count 0)
(format "Error: Could not find text to replace in buffer %s" buffer-name)
(if (> count 1)
(format "Error: Found %d matches for the text to replace in buffer %s" count buffer-name)
(goto-char (point-min))
(search-forward old-string)
(replace-match new-string t t)
(format "Successfully edited buffer %s" buffer-name))))))))
(defun ccr/replace-buffer (buffer-name content)
"Completely replace contents of BUFFER-NAME with CONTENT."
(with-current-buffer buffer-name
(erase-buffer)
(insert content) (insert content)
(format "Buffer replaced: %s" buffer-name))) (write-file full-path))
(format-read "Created file %s in %s" filename path)))
(setq gptel-tools `( :description "Create a new file with the specified content"
,(gptel-make-tool :args (list '(:name "path"
:function (lambda (url)
(with-current-buffer (url-retrieve-synchronously url)
(goto-char (point-min))
(forward-paragraph)
(let ((dom (libxml-parse-html-region (point) (point-max))))
(run-at-time 0 nil #'kill-buffer (current-buffer))
(with-temp-buffer
(shr-insert-document dom)
(buffer-substring-no-properties (point-min) (point-max))))))
:name "read_url"
:description "Fetch and read the contents of a URL"
:args (list '(:name "url"
:type string :type string
:description "The URL to read")) :description "The directory where to create the file")
:category "web") '(:name "filename"
,(gptel-make-tool
:function (lambda (filepath)
(with-temp-buffer
(insert-file-contents (expand-file-name filepath))
(buffer-string)))
:name "read_file"
:description "Read and display the contents of a file"
:args (list '(:name "filepath"
:type string :type string
:description "Path to the file to read. Supports relative paths and ~.")) :description "The name of the file to create")
:category "filesystem") '(:name "content"
,(gptel-make-tool
:function (lambda (directory)
(mapconcat #'identity
(directory-files directory)
"\n"))
:name "list_directory"
:description "List the contents of a given directory"
:args (list '(:name "directory"
:type string :type string
:description "The path to the directory to list")) :description "The content to write to the file"))
:category "filesystem") :category "filesystem"
,(gptel-make-tool )
:function (lambda () (mapcar 'buffer-name (buffer-list))) ;; (
:name "list_buffers" ;; :name "run_command"
:description "Return a list containing all the Emacs buffers" ;; :confirm 't
:category "emacs") ;; :function (lambda (command)
,(gptel-make-tool ;; (shell-command-to-string command))
:function (lambda (buffer) ;; :description "Run arbitrary commands"
(unless (buffer-live-p (get-buffer buffer)) ;; :args (list '(:name "command"
(error "Error: buffer %s is not live." buffer)) ;; :type string
(with-current-buffer buffer ;; :description "The content to run e.g. 'ls *' or 'fd <pattern> <path>'"))
(buffer-substring-no-properties (point-min) (point-max)))) ;; )
:name "read_buffer" (
:description "Return the contents of an Emacs buffer" :name "get_weather"
:args (list '(:name "buffer" :function (lambda (location)
(url-retrieve-synchronously "api.weather.com/..."
location unit))
:description "Get the current weather in a given location"
:args (list '(:name "location"
:type string :type string
:description "The name of the buffer whose contents are to be retrieved")) :description "The city and state, e.g. San Francisco, CA")
:category "emacs") '(:name "unit"
,(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 :type string
:description "The name of the buffer to append text to.") :enum ["celsius" "farenheit"]
'(:name "text" :description
:type string "The unit of temperature, either 'celsius' or 'fahrenheit"
:description "The text to append to the buffer.")) :optional t
:category "emacs")
,(gptel-make-tool
:name "EditBuffer"
:function #'ccr/edit-buffer
:description "Edits Emacs buffers"
:confirm t
:args '((:name "buffer_name"
:type string
:description "Name of the buffer to modify"
:required t)
(:name "old_string"
:type string
:description "Text to replace (must match exactly)"
:required t)
(:name "new_string"
:type string
:description "Text to replace old_string with"
:required t))
:category "edit")
,
(gptel-make-tool
:name "ReplaceBuffer"
:function #'ccr/replace-buffer
:description "Completely overwrites buffer contents"
:confirm t
:args '((:name "buffer_name"
:type string
:description "Name of the buffer to overwrite"
:required t)
(:name "content"
:type string
:description "Content to write to the buffer"
:required t))
:category "edit")
)) ))
)
))
)
(defun ccr/suggest-eshell-command () (defun ccr/suggest-eshell-command ()
(interactive) (interactive)

View file

@ -2,7 +2,7 @@
{ {
services.gpg-agent = { services.gpg-agent = {
enable = true; enable = true;
pinentry.package = pkgs.pinentry-rofi.override { pinentryPackage = pkgs.pinentry-rofi.override {
rofi = pkgs.rofi-wayland; rofi = pkgs.rofi-wayland;
}; };
extraConfig = '' extraConfig = ''

View file

@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.jellyfin-media-player ];
}

View file

@ -19,7 +19,7 @@ input {
touchpad { touchpad {
// off // off
tap tap
dwt // dwt
// dwtp // dwtp
natural-scroll natural-scroll
// accel-speed 0.2 // accel-speed 0.2

View file

@ -1,61 +0,0 @@
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"palette": {
"os": "#ACB0BE",
"closer": "p:os",
"pink": "#F5C2E7",
"lavender": "#B4BEFE",
"blue": "#89B4FA"
},
"blocks": [
{
"alignment": "left",
"segments": [
{
"foreground": "p:blue",
"style": "plain",
"template": "{{ .UserName }}@{{ .HostName }} ",
"type": "session"
},
{
"foreground": "p:pink",
"properties": {
"folder_icon": "..\ue5fe..",
"home_icon": "~",
"style": "agnoster_short"
},
"style": "plain",
"template": "{{ .Path }} ",
"type": "path"
},
{
"foreground": "p:lavender",
"properties": {
"branch_icon": "\ue725 ",
"cherry_pick_icon": "\ue29b ",
"commit_icon": "\uf417 ",
"fetch_status": false,
"fetch_upstream_icon": false,
"merge_icon": "\ue727 ",
"no_commits_icon": "\uf0c3 ",
"rebase_icon": "\ue728 ",
"revert_icon": "\uf0e2 ",
"tag_icon": "\uf412 "
},
"template": "{{ .HEAD }} ",
"style": "plain",
"type": "git"
},
{
"style": "plain",
"foreground": "p:closer",
"template": "\uf105",
"type": "text"
}
],
"type": "prompt"
}
],
"final_space": true,
"version": 3
}

View file

@ -84,12 +84,7 @@
programs.thefuck.enable = true; programs.thefuck.enable = true;
programs.oh-my-posh = { programs.oh-my-posh = {
enable = true; enable = true;
# same as "captuccin_mocha" but without the OS logo useTheme = "catppuccin_mocha";
settings = lib.mkForce (
builtins.fromJSON (
builtins.unsafeDiscardStringContext (builtins.readFile ./catppuccin_mocha.omp.json)
)
);
}; };
programs.zellij.enableBashIntegration = false; programs.zellij.enableBashIntegration = false;

View file

@ -9,18 +9,18 @@ in
{ {
home.packages = [ spotify-adblocked ]; home.packages = [ spotify-adblocked ];
# systemd.user.services.spotify-adblocked = { systemd.user.services.spotify-adblocked = {
# Install.WantedBy = [ "graphical-session.target" ]; Install.WantedBy = [ "graphical-session.target" ];
# Unit = { Unit = {
# Description = "Spotify"; Description = "Spotify";
# PartOf = [ "graphical-session.target" ]; PartOf = [ "graphical-session.target" ];
# }; };
# Service = { Service = {
# ExecStart = lib.getExe spotify-adblocked; ExecStart = lib.getExe spotify-adblocked;
# Restart = "on-failure"; Restart = "on-failure";
# RestartSec = 3; RestartSec = 3;
# }; };
# }; };
} }

View file

@ -109,7 +109,6 @@
"home-assistant-token".owner = "prometheus"; "home-assistant-token".owner = "prometheus";
"grafana-password".owner = "grafana"; "grafana-password".owner = "grafana";
"cloudflare-dyndns-api-token" = { }; "cloudflare-dyndns-api-token" = { };
"cloudflare-api-tokens" = { };
"restic-hetzner-password" = { }; "restic-hetzner-password" = { };
"hass-ssh-key".owner = "hass"; "hass-ssh-key".owner = "hass";
"sisko-attic-environment-file".owner = "atticd"; "sisko-attic-environment-file".owner = "atticd";

View file

@ -89,7 +89,6 @@
"zoom" "zoom"
"pantalaimon" "pantalaimon"
"gimp" "gimp"
"jellyfin"
]; ];
extraGroups = [ "plugdev" ]; extraGroups = [ "plugdev" ];
backupPaths = [ ]; backupPaths = [ ];

View file

@ -36,8 +36,6 @@
"amule" "amule"
"adguard-home" "adguard-home"
"garmin-grafana" "garmin-grafana"
# "dump1090"
"arbi"
] ]
++ [ ++ [
./disko.nix ./disko.nix

View file

@ -4,7 +4,6 @@
ccr-ssh = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIm9Sl/I+5G4g4f6iE4oCUJteP58v+wMIew9ZuLB+Gea"; ccr-ssh = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIm9Sl/I+5G4g4f6iE4oCUJteP58v+wMIew9ZuLB+Gea";
oneplus8t = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO8da1Mf11vXFF0kVDgxocVoGwpHHMEs9emS9T+v8hLb oneplus8t"; oneplus8t = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO8da1Mf11vXFF0kVDgxocVoGwpHHMEs9emS9T+v8hLb oneplus8t";
hercules-ci-agent = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGPupm00BiveTIYF6CNwuMijF5VvEaPDMjvt+vMlAy+N hercules-ci-agent"; hercules-ci-agent = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGPupm00BiveTIYF6CNwuMijF5VvEaPDMjvt+vMlAy+N hercules-ci-agent";
forgejo-ci = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH5mbqLoZ/0J45J7J+17XMGv/dXs3DGABJsnvDv4rgC9 forgjeo-ci";
}; };
hosts = { hosts = {
kirk = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAH49KzayIro3L1bteR7nwupMM/vKlDh05t5/DFD9/uz"; kirk = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAH49KzayIro3L1bteR7nwupMM/vKlDh05t5/DFD9/uz";

View file

@ -1,46 +1,34 @@
{ config, pkgs, ... }: { config, lib, ... }:
let
rev = "966199fe1dccc9c6c7016bdb1d9582f27797bc02";
amule-flake = builtins.getFlake "github:NixOS/nixpkgs/${rev}";
inherit (amule-flake.legacyPackages.${pkgs.system}) amule-daemon amule-web;
in
{ {
disabledModules = [ "services/networking/amuled.nix" ]; users.users.amule = {
documentation.nixos.enable = false; isSystemUser = true;
group = "amule";
imports = [ "${amule-flake}/nixos/modules/services/networking/amuled.nix" ]; extraGroups = [ "amule" ];
home = config.services.amule.dataDir;
};
users.groups.amule = { };
services.amule = { services.amule = {
dataDir = "/mnt/hd/amule";
enable = true; enable = true;
package = amule-daemon; user = "amule";
amuleWebPackage = amule-web;
openPeerPorts = true;
openWebServerPort = true;
# TODO the service is accessible only from the VPN
# however better using agenix
ExternalConnectPasswordFile = pkgs.writeText "password" "pippo";
WebServerPasswordFile = pkgs.writeText "password" "pippo";
settings = {
eMule = {
IncomingDir = "/mnt/hd/amule";
TempDir = "/mnt/hd/amule/Temp";
};
WebServer = {
Enabled = 1;
};
};
}; };
# sometimes the service crashes with a segfeault without any reason...
systemd.services.amuled.serviceConfig.Restart = lib.mkForce "always";
environment.persistence."/persist".directories = [ environment.persistence."/persist".directories = [
config.services.amule.dataDir config.services.amule.dataDir
]; ];
services.nginx.virtualHosts."amule.sisko.wg.aciceri.dev" = { networking.firewall = {
forceSSL = true; allowedTCPPorts = [ 4662 ];
useACMEHost = "aciceri.dev"; allowedUDPPortRanges = [
locations."/" = { {
proxyPass = "http://localhost:${builtins.toString config.services.amule.settings.WebServer.Port}"; from = 4665;
}; to = 4672;
serverAliases = [ "amule.sisko.zt.aciceri.dev" ]; }
}; ];
};
} }

View file

@ -1,22 +0,0 @@
{ config, pkgs, ... }:
let
rev = "d531730d9640160f0519ef4b3640f8da49dd96f8";
arbi-flake = builtins.getFlake "git+ssh://git@github.com/aciceri/arbi.git?rev=${rev}";
in
{
imports = [ arbi-flake.nixosModules.arbi ];
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
'';
};
environment.persistence."/persist".directories = [
config.services.arbi.dataDir
];
}

View file

@ -18,10 +18,9 @@
nixpkgs.config.allowUnfree = true; # Forgive me Mr. Stallman :( nixpkgs.config.allowUnfree = true; # Forgive me Mr. Stallman :(
system.switch.enableNg = true; system.switch.enableNg = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = [
btop pkgs.btop
ncdu pkgs.ncdu
git
]; ];
# FIXME not the best place # FIXME not the best place

View file

@ -1,31 +0,0 @@
{
pkgs,
...
}:
let
dump1090-flake = builtins.getFlake "github:NixOS/nixpkgs/541f05042033467730fb8cedb08355dc91b94c74";
inherit (dump1090-flake.legacyPackages.${pkgs.system}) dump1090-fa;
in
{
imports = [ "${dump1090-flake}/nixos/modules/services/misc/dump1090-fa.nix" ];
hardware.rtl-sdr.enable = true;
disabledModules = [ "services/misc/dump10190-fa.nix" ];
documentation.nixos.enable = false;
services.dump1090-fa = {
enable = true;
package = dump1090-fa;
};
services.nginx.virtualHosts."dump1090.sisko.wg.aciceri.dev" = {
forceSSL = true;
useACMEHost = "aciceri.dev";
locations = {
"/".alias = "${dump1090-fa}/share/dump1090/";
"/data/".alias = "/run/dump1090-fa/";
};
serverAliases = [ "dump1090.sisko.zt.aciceri.dev" ];
};
}

View file

@ -17,7 +17,6 @@ let
gnugrep gnugrep
gawk gawk
git git
openssh
nix nix
bash bash
jq jq
@ -39,6 +38,15 @@ let
cp -a "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt" $out/etc/ssl/certs/ca-bundle.crt cp -a "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt" $out/etc/ssl/certs/ca-bundle.crt
''; '';
numInstances = 1; numInstances = 1;
pushToCache = pkgs.writeScript "push-to-cache.sh" ''
#!/bin/sh
set -eu
set -f # disable globbing
export IFS=' '
echo "Uploading paths" $OUT_PATHS
exec nix copy --to "s3://cache?profile=default&region=eu-south-1&scheme=https&endpoint=cache.aciceri.dev" $OUT_PATHS
'';
in in
lib.mkMerge [ lib.mkMerge [
{ {
@ -72,6 +80,7 @@ lib.mkMerge [
cat <<NIX_CONFIG > etc/nix/nix.conf cat <<NIX_CONFIG > etc/nix/nix.conf
accept-flake-config = true accept-flake-config = true
experimental-features = nix-command flakes experimental-features = nix-command flakes
post-build-hook = ${pushToCache}
include access-tokens include access-tokens
NIX_CONFIG NIX_CONFIG
@ -112,9 +121,22 @@ lib.mkMerge [
nix.settings.trusted-users = [ "nixuser" ]; nix.settings.trusted-users = [ "nixuser" ];
} }
{ {
# Format of the token file:
virtualisation = { virtualisation = {
podman.enable = true; podman.enable = true;
}; };
# virtualisation.containers.storage.settings = {
# storage.driver = "zfs";
# storage.graphroot = "/var/lib/containers/storage";
# storage.runroot = "/run/containers/storage";
# storage.options.zfs.fsname = "zroot/root/podman";
# };
# virtualisation.containers.containersConf.settings = {
# # podman seems to not work with systemd-resolved
# containers.dns_servers = [ "8.8.8.8" "8.8.4.4" ];
# };
} }
{ {
systemd.services = systemd.services =

View file

@ -5,8 +5,7 @@
... ...
}: }:
let let
rev = "f24579d13ee035af96d4a68b765af2aa4b1018b6"; garmin-grafana-flake = builtins.getFlake "github:NixOS/nixpkgs/1f03fefb44665cd2377912033de22ffaba2be48d";
garmin-grafana-flake = builtins.getFlake "github:NixOS/nixpkgs/${rev}";
inherit (garmin-grafana-flake.legacyPackages.${pkgs.system}) garmin-grafana; inherit (garmin-grafana-flake.legacyPackages.${pkgs.system}) garmin-grafana;
in in
{ {

View file

@ -14,7 +14,7 @@
dnsProvider = "cloudflare"; dnsProvider = "cloudflare";
dnsPropagationCheck = true; dnsPropagationCheck = true;
group = config.services.nginx.group; group = config.services.nginx.group;
environmentFile = config.age.secrets.cloudflare-api-tokens.path; environmentFile = config.age.secrets.cloudflare-dyndns-api-token.path;
}; };
}; };
}; };

View file

@ -92,7 +92,7 @@
]; ];
protocol = "ssh-ng"; protocol = "ssh-ng";
sshUser = "root"; sshUser = "root";
sshKey = "/home/${config.ccr.username}/.ssh/id_ed25519"; sshKey = "/home/${config.ccr.username}/.ssh/id_rsa";
} }
++ (lib.lists.optional (config.networking.hostName == "picard") { ++ (lib.lists.optional (config.networking.hostName == "picard") {
hostName = "mac.staging.mlabs.city?remote-program=/run/current-system/sw/bin/nix-store"; hostName = "mac.staging.mlabs.city?remote-program=/run/current-system/sw/bin/nix-store";

View file

@ -206,7 +206,6 @@ let
mixed-pitch mixed-pitch
visual-replace visual-replace
org-super-agenda org-super-agenda
tidal
# org-re-reveal # FIXME very not nice hash mismatch when building # org-re-reveal # FIXME very not nice hash mismatch when building
] ]
) )
@ -223,9 +222,6 @@ let
eat eat
corfu-terminal corfu-terminal
haskell-ts-mode haskell-ts-mode
])
++ (with epkgs; [
typst-ts-mode # why this doesn't seem to be in elpaPackages?
]); ]);
in in
mainPackages ++ (builtins.attrValues extraPackages) mainPackages ++ (builtins.attrValues extraPackages)

View file

@ -1,17 +0,0 @@
age-encryption.org/v1
-> ssh-rsa /AagBw
hD7PDjueXimBVI/rjcYxN77LHV2eGytKcUbmh17aSL1CNM+eriURFao3tj52Hiaz
3VMB6FxWUk9kzgjMPvf5WZukuZ2WbpPH8xlDV+6ZH7e/IzmjIfx8Ny14Mr1IF/Rx
TBiCIAM19/1/mR9MiIBW85bb+Bb/waWIZAgxW3N1RpqH5+vAVqx0iY3XRF5+0gOq
blP3yEw3QaL6FuY0+a+d/TnCsrz2Gi1Rba9oCUmkzOP96TsJYdN58Ut6nrHFkURK
mShL2xBMLmfA8Z5ep+D8ueyQbcYpeU3KHcIcRM6dRTwQKvWXAVkRt1nUGasKrO9Y
oJT9BrcxjtqgF/xhHRjWpamjFSI3mlJnJNEbruddDwQUccrJOvEzvqZ7GK0WoFX2
HmhdDOiocMGWFeBPAKlNtU3+QmtZvhvOIgbjKhNxmCt1A/qxfvRk7Y2IDIBo+CFo
sKMrT1tCo4UYaJdZYl64XYNCQb3C2EfO7Exrq3d2urNidzUbr9OBx7CCI1nu375c
Qol9Kr28fLtxRuSZlrqIe9vKVYyLDPznrRlh6TmgqmMLIW70Y8cZwMtT8L8sOkcm
A8MoxpWFzK4BKo0Iqmw6eZ3nx/0LAzkz005ZEwrmi2W/XxOWJgBiaLmu7YwnoGq0
gzwwvA5V5MT6Iy7FzkQpMi0h/H4MZ0mcbihKdPun85Q
-> ssh-ed25519 +vdRnA 23Gviu8hfWCEBPHP7xYIaOx34kFsxJJgJ/BNUDlb9Cg
ROiMY2gw/rpNBmJnlRVb7Qhi5+8TY3Velj8gEZcaedI
--- dhmvfQoCjuRUJtvXNI/eCjH0W+IeJm8bFRvYk1JihD0
qMCÐ,݈½Ô<C2BD>êì9-\K<E28098>J¡ã]Á­ÿJ ð½(¡SnŸ°.ñQpá~Z$ó±eØ"êí”’\ù£'rSl‰ÿuÜ +UD <äÕ<C3A4>ÚáÓ]|/g[† W_“È>-fl•8|w­ÊÙŠÈlš¢ÜõB•[\òá.k(W±{=w 3N}¤qGÏ-w´Mb^‰ŒQ{

View file

@ -92,10 +92,6 @@ with keys.users;
deltaflyer deltaflyer
pike pike
]; ];
"cloudflare-api-tokens.age".publicKeys = [
ccr-ssh
sisko
];
"cloudflare-dyndns-api-token.age".publicKeys = [ "cloudflare-dyndns-api-token.age".publicKeys = [
ccr-ssh ccr-ssh
sisko sisko