diff --git a/checks/default.nix b/checks/default.nix index 1ea5427..376d792 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -16,7 +16,7 @@ treefmt.config = { projectRootFile = ".git/config"; programs = { - nixfmt-rfc-style.enable = true; + nixfmt.enable = true; deadnix.enable = false; }; }; @@ -32,9 +32,7 @@ build = _: nc: nc.config.system.build.toplevel; in { - x86_64-linux = lib.mapAttrs build { - inherit (self.nixosConfigurations) picard; - }; + x86_64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) picard; }; aarch64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) sisko; # pbp; }; diff --git a/flake.lock b/flake.lock index 0e843d3..05e2f22 100644 --- a/flake.lock +++ b/flake.lock @@ -80,11 +80,11 @@ ] }, "locked": { - "lastModified": 1730751873, - "narHash": "sha256-sdY29RWz0S7VbaoTwSy6RummdHKf0wUTaBlqPxrtvmQ=", + "lastModified": 1731060864, + "narHash": "sha256-aYE7oAYZ+gPU1mPNhM0JwLAQNgjf0/JK1BF1ln2KBgk=", "owner": "nix-community", "repo": "disko", - "rev": "856a2902156ba304efebd4c1096dbf7465569454", + "rev": "5e40e02978e3bd63c2a6a9fa6fa8ba0e310e747f", "type": "github" }, "original": { @@ -119,11 +119,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1730970854, - "narHash": "sha256-PvStjAOzvb3Ta9lUkPtbXKE3HJ+4/zsWvHJFO/mzD2o=", + "lastModified": 1731057136, + "narHash": "sha256-/E0UgOD6LnDfJPqCwqa1WVEgwDQ6NXXH+Wq89cMUris=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "83b6f9732eaf48f94d8ad6baa5cc2bf82bc3d3ff", + "rev": "2313c4189eaef014d01fb260313f58554ddb5e31", "type": "github" }, "original": { @@ -218,6 +218,27 @@ } }, "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "lix-eval-jobs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722555600, + "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_2" }, @@ -235,7 +256,7 @@ "type": "github" } }, - "flake-parts_3": { + "flake-parts_4": { "inputs": { "nixpkgs-lib": [ "nixThePlanet", @@ -256,7 +277,7 @@ "type": "indirect" } }, - "flake-parts_4": { + "flake-parts_5": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_3" }, @@ -411,7 +432,7 @@ }, "hercules-ci-effects": { "inputs": { - "flake-parts": "flake-parts_3", + "flake-parts": "flake-parts_4", "nixpkgs": "nixpkgs_6" }, "locked": { @@ -571,19 +592,46 @@ "lix": { "flake": false, "locked": { - "lastModified": 1730938523, - "narHash": "sha256-UAh8hocN7Vdl+sXxuToL6Cm1TsMHBpcEmHy+l5xFrMk=", + "lastModified": 1728951119, + "narHash": "sha256-vUBgL8zJBDyj2serxdEVbNqe6pBN4YgWwhtg3XP8mpQ=", "ref": "refs/heads/main", - "rev": "72cce7be3f8031ccf6dc9d3c69ba19068b3bd21f", - "revCount": 16454, + "rev": "f6077314fa6aff862758095bb55fe844e9162a1d", + "revCount": 16344, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, "original": { + "rev": "f6077314fa6aff862758095bb55fe844e9162a1d", "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" } }, + "lix-eval-jobs": { + "inputs": { + "flake-parts": "flake-parts_2", + "lix": [ + "lix" + ], + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1723579251, + "narHash": "sha256-xnHtfw0gRhV+2S9U7hQwvp2klTy1Iv7FlMMO0/WiMVc=", + "ref": "refs/heads/main", + "rev": "42a160bce2fd9ffebc3809746bc80cc7208f9b08", + "revCount": 609, + "type": "git", + "url": "https://git.lix.systems/lix-project/nix-eval-jobs" + }, + "original": { + "type": "git", + "url": "https://git.lix.systems/lix-project/nix-eval-jobs" + } + }, "lix-module": { "inputs": { "flake-utils": "flake-utils", @@ -651,6 +699,27 @@ "type": "github" } }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "lix-eval-jobs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1720066371, + "narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "622f829f5fe69310a866c8a6cd07e747c44ef820", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, "nix-on-droid": { "inputs": { "home-manager": "home-manager_2", @@ -679,11 +748,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1730980823, - "narHash": "sha256-nUSlnYSeg4N18LByLw8luEvrV+8Hwgddh9Bp13mo3wA=", + "lastModified": 1731032247, + "narHash": "sha256-OjLft7fwkmiRLXQsGAudGFZxEYXOT0nHwrQ9GbsBqJ4=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "fa7b46fa7716d0ff1abaa59ee2472ab25ad07188", + "rev": "2fbf4a8417c28cf45bae6e6e97248cbbd9b78632", "type": "github" }, "original": { @@ -694,7 +763,7 @@ }, "nixThePlanet": { "inputs": { - "flake-parts": "flake-parts_2", + "flake-parts": "flake-parts_3", "hercules-ci-effects": "hercules-ci-effects", "nixpkgs": [ "nixpkgs" @@ -1153,13 +1222,13 @@ "rock5b": { "inputs": { "fan-control": "fan-control", - "flake-parts": "flake-parts_4", + "flake-parts": "flake-parts_5", "kernel-src": "kernel-src", "nixpkgs": "nixpkgs_8", "nixpkgs-kernel": "nixpkgs-kernel", "panfork": "panfork", "tow-boot": "tow-boot", - "treefmt-nix": "treefmt-nix" + "treefmt-nix": "treefmt-nix_2" }, "locked": { "lastModified": 1685695782, @@ -1189,6 +1258,7 @@ "impermanence": "impermanence", "lanzaboote": "lanzaboote", "lix": "lix", + "lix-eval-jobs": "lix-eval-jobs", "lix-module": "lix-module", "mobile-nixos": "mobile-nixos", "nix-on-droid": "nix-on-droid", @@ -1197,7 +1267,7 @@ "nixosHardware": "nixosHardware", "nixpkgs": "nixpkgs_7", "rock5b": "rock5b", - "treefmt-nix": "treefmt-nix_2", + "treefmt-nix": "treefmt-nix_3", "vscode-server": "vscode-server" } }, @@ -1323,6 +1393,27 @@ } }, "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "lix-eval-jobs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1723454642, + "narHash": "sha256-S0Gvsenh0II7EAaoc9158ZB4vYyuycvMGKGxIbERNAM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "349de7bc435bdff37785c2466f054ed1766173be", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_2": { "inputs": { "nixpkgs": [ "rock5b", @@ -1343,7 +1434,7 @@ "type": "github" } }, - "treefmt-nix_2": { + "treefmt-nix_3": { "inputs": { "nixpkgs": [ "nixpkgs" diff --git a/flake.nix b/flake.nix index 72b2a1f..e62a744 100644 --- a/flake.nix +++ b/flake.nix @@ -38,7 +38,7 @@ }; nix-on-droid.url = "github:nix-community/nix-on-droid"; lix = { - url = "git+https://git@git.lix.systems/lix-project/lix"; + url = "git+https://git@git.lix.systems/lix-project/lix?rev=f6077314fa6aff862758095bb55fe844e9162a1d"; # FIXME update flake = false; }; lix-module = { @@ -46,6 +46,11 @@ inputs.lix.follows = "lix"; inputs.nixpkgs.follows = "nixpkgs"; }; + lix-eval-jobs = { + url = "git+https://git.lix.systems/lix-project/nix-eval-jobs"; + inputs.lix.follows = "lix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; mobile-nixos = { url = "github:NixOS/mobile-nixos"; flake = false; diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 1dee394..154a4bc 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -1,11 +1,10 @@ ;; package --- My Emacs config -*- lexical-binding:t -*- ;; Author: Andrea Ciceri ;;; Commentary: -;; TODO -;; - org-roam -;; - org goodies -;; - persp-mode? -;; - understand how to configure cape +;; TODO org goodies +;; TODO understand how to configure cape +;; TODO org-roam-protocol to capture notes from the browser +;; TODO attach documents (like PDFs) to my Zettelkasten notes ;;; Code: @@ -720,7 +719,13 @@ This is meant to be an helper to be called from the window manager." (set-face-attribute face nil :inherit 'fixed-pitch)) (org-babel-do-load-languages - 'org-babel-load-languages '((haskell . t)))) + 'org-babel-load-languages '((haskell . t))) + + (defun ccr/org-attach-save-file-list-to-property (dir) + "Save list of attachments to ORG_ATTACH_FILES property." + (when-let* ((files (org-attach-file-list dir))) + (org-set-property "ORG_ATTACH_FILES" (mapconcat #'identity files ", ")))) + (add-hook 'org-attach-after-change-hook #'ccr/org-attach-save-file-list-to-property)) (use-package org-agenda :custom @@ -764,7 +769,7 @@ This is meant to be an helper to be called from the window manager." '( ("d" "Generic entry" entry "* %?" - :target (file+head "%<%Y-%m-%d>.org" "#+title %<%Y-%m-%d>")) + :target (file+head "%<%Y-%m-%d>.org" "#+TITLE: %<%Y-%m-%d>")) ("b" "Billable entry" entry "* TODO ${Entry} :billable:${Client}:\n:PROPERTIES:\n:SPENT: ${Spent}\n:END:\n%?" :target (file+head "%<%Y-%m-%d>.org" "#+title %<%Y-%m-%d>") @@ -869,7 +874,7 @@ This is meant to be an helper to be called from the window manager." (end-pos (line-end-position))) (gptel-request (buffer-substring-no-properties start-pos end-pos) ;the prompt - :system "You are proficient with emacs shell (eshell), translate the following to something I could directly prompt to the shell. Your responses should only be code, without explanation or formatting." + :system "You are proficient with emacs shell (eshell), translate the following to something I could directly prompt to the shell. Your responses should only be code, without explanation or formatting or quoting." :buffer (current-buffer) :context (cons (set-marker (make-marker) start-pos) (set-marker (make-marker) end-pos)) diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 92ffe67..bcc035e 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -1,8 +1,4 @@ -{ - config, - pkgs, - ... -}: +{ config, pkgs, ... }: let screenshotScript = pkgs.writeShellScriptBin "screenshot.sh" '' filename="$HOME/shots/$(date --iso-8601=seconds).png" @@ -28,7 +24,7 @@ in ../swayidle ../gammastep # ../wezterm - ../wayvnc + # ../wayvnc ../swaync ../foot ]; @@ -61,11 +57,11 @@ in name = "Adwaita"; package = pkgs.adwaita-icon-theme; }; - # cursorTheme = { - # name = "catppuccin-mocha-sapphire"; - # package = pkgs.catppuccin-cursors; - # size = 48; - # }; + cursorTheme = { + name = "catppuccin-mocha-sapphire"; + package = pkgs.catppuccin-cursors; + size = 40; + }; }; qt = { diff --git a/hmModules/hyprland/hyprland.conf b/hmModules/hyprland/hyprland.conf index 79ef97a..1243b85 100644 --- a/hmModules/hyprland/hyprland.conf +++ b/hmModules/hyprland/hyprland.conf @@ -5,9 +5,9 @@ cursor { } env = HYPRCURSOR_THEME,catppuccin-mocha-sapphire -env = HYPRCURSOR_SIZE,48 +env = HYPRCURSOR_SIZE,40 env = XCURSOR_THEME,catppuccin-mocha-sapphire -env = XCURSOR_SIZE,48 +env = XCURSOR_SIZE,40 $mod = SUPER @@ -35,6 +35,7 @@ bind = $mod, t, exec, footclient $SHELL bind = $mod, RETURN, exec, emacsclient -c --eval "(ccr/start-eshell)" bind = $mod, m, exec, emacsclient -c --eval '(notmuch-search "tag:new")' bind = $mod, g, exec, emacsclient -c --eval '(switch-to-buffer (gptel "*ChatGPT*"))' +bind = $mod, c, exec, emacsclient -c --eval '(org-roam-dailies-capture-today)' bind = $mod, d, exec, fuzzel --background-color=253559cc --border-radius=5 --border-width=0 bind = $mod, s, exec, screenshot.sh bind = $mod, n, exec, logseq diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index e2321fa..3b17a67 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -36,9 +36,7 @@ "promtail" "syncthing" ] - ++ [ - ./disko.nix - ]; + ++ [ ./disko.nix ]; ccr = { enable = true; @@ -86,11 +84,9 @@ "usb_storage" "sd_mod" ]; - boot.kernelModules = [ - "kvm-intel" - ]; + boot.kernelModules = [ "kvm-intel" ]; - boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_10; + boot.kernelPackages = pkgs.linuxPackages; boot.loader.efi.canTouchEfiVariables = true; boot.loader.systemd-boot = { diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 0501993..fd17130 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -43,9 +43,7 @@ "prometheus-exporters" "promtail" ] - ++ [ - ./disko.nix - ]; + ++ [ ./disko.nix ]; ccr = { enable = true; @@ -126,17 +124,17 @@ })) ]; - systemd.services.ddcci = { - script = '' - echo 'ddcci 0x37' > /sys/bus/i2c/devices/i2c-2/new_device - ''; - wantedBy = [ "graphical.target" ]; - restartIfChanged = false; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - }; - }; + # systemd.services.ddcci = { + # script = '' + # echo 'ddcci 0x37' > /sys/bus/i2c/devices/i2c-2/new_device + # ''; + # wantedBy = [ "graphical.target" ]; + # restartIfChanged = false; + # serviceConfig = { + # Type = "oneshot"; + # RemainAfterExit = true; + # }; + # }; boot.loader.efi.canTouchEfiVariables = true; boot.loader.systemd-boot = { @@ -148,7 +146,7 @@ configurationLimit = 20; }; - boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_10; + boot.kernelPackages = pkgs.linuxPackages; networking.hostId = "5b02e763"; diff --git a/modules/nix/default.nix b/modules/nix/default.nix index cf855e4..84e36c4 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -5,6 +5,14 @@ ... }: { + nixpkgs.overlays = [ + (final: _: { + nix-eval-job = fleetFlake.inputs.lix-eval-jobs.packages.${final.system}.nix-eval-jobs // { + nix = final.nix; + }; + }) + ]; + nix = { optimise.automatic = true; diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index ea483fd..2f30f68 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -2,89 +2,114 @@ pkgs: epkgs: let inherit (epkgs) melpaPackages nongnuPackages elpaPackages; - # *Attrset* containig extra emacs packages from flake inputs + buildEmacsPackage = + args: + epkgs.trivialBuild { + pname = args.name; + inherit (args) src; + version = args.src.rev; + propagatedUserEnvPkgs = args.deps; + buildInputs = args.deps; + }; + + # *Attrset* containig extra emacs packages + extraPackages = { + combobulate = buildEmacsPackage { + name = "combobulate"; + src = pkgs.fetchFromGitHub { + owner = "mickeynp"; + repo = "combobulate"; + rev = "e9c5be84062e8183f556d7133d5a477a57e37e51"; + hash = "sha256-r6jObsYx7RRTJUmrCN5h3+0WcHqJA67emhr4/W3rBrM="; + }; + deps = [ ]; + }; + }; # *List* containing emacs packages from (M)ELPA mainPackages = - # builtins.filter - # if an extra package has the same name then give precedence to it - # (package: ! builtins.elem package.pname (builtins.attrNames extraPackages)) - (with melpaPackages; [ - meow - meow-tree-sitter - dracula-theme - nord-theme - catppuccin-theme - modus-themes - # solaire-mode - nerd-icons - nerd-icons-completion - nerd-icons-ibuffer - nerd-icons-dired - ligature - treemacs-nerd-icons - eshell-syntax-highlighting - fish-completion # fish completion for eshell - eshell-prompt-extras - eshell-atuin - eshell-command-not-found - clipetty - sideline - consult-eglot - # sideline-flymake - rainbow-delimiters - vertico - marginalia - consult - orderless - embark - embark-consult - magit - magit-delta - magit-todos - difftastic - with-editor - diff-hl - corfu - cape - which-key - nix-mode - nix-ts-mode - agenix - zig-mode - unisonlang-mode - purescript-mode - dhall-mode - envrc - inheritenv - popper - paredit - yaml-mode - hl-todo - markdown-mode - haskell-mode - terraform-mode - diredfl - org-modern - org-roam - org-roam-ql - org-roam-ui - visual-fill-column - consult-org-roam - pass - password-store-otp - eldoc-box - go-translate - notmuch - consult-notmuch - poly-org - casual-calc - gptel - agenix - solidity-mode - # org-re-reveal # FIXME very not nice hash mismatch when building - # gptel # TODO uncomment when there will be a new release including GPT-4o - ]) + builtins.filter + # if an extra package has the same name then give precedence to it + (package: !builtins.elem package.pname (builtins.attrNames extraPackages)) + ( + with melpaPackages; + [ + meow + meow-tree-sitter + dracula-theme + nord-theme + catppuccin-theme + modus-themes + # solaire-mode + nerd-icons + nerd-icons-completion + nerd-icons-ibuffer + nerd-icons-dired + ligature + treemacs-nerd-icons + eshell-syntax-highlighting + fish-completion # fish completion for eshell + eshell-prompt-extras + eshell-atuin + eshell-command-not-found + clipetty + sideline + consult-eglot + # sideline-flymake + rainbow-delimiters + vertico + marginalia + consult + orderless + embark + embark-consult + magit + magit-delta + magit-todos + difftastic + with-editor + diff-hl + corfu + cape + which-key + nix-mode + nix-ts-mode + agenix + zig-mode + unisonlang-mode + purescript-mode + dhall-mode + envrc + inheritenv + popper + paredit + yaml-mode + hl-todo + markdown-mode + haskell-mode + terraform-mode + diredfl + org-modern + org-roam + org-roam-ql + org-roam-ui + visual-fill-column + consult-org-roam + pass + password-store-otp + eldoc-box + go-translate + notmuch + consult-notmuch + poly-org + casual + gptel + agenix + solidity-mode + # org-re-reveal # FIXME very not nice hash mismatch when building + # gptel # TODO uncomment when there will be a new release including GPT-4o + ] + ) ++ (with elpaPackages; [ delight kind-icon @@ -98,13 +123,4 @@ let haskell-ts-mode ]); in -mainPackages -# ++ (builtins.attrValues extraPackages) -# Playing with EAF -++ [ - # Disabled because pymupdf was broken - # (pkgs.callPackage ./eaf.nix { - # inherit (epkgs) melpaBuild; - # inherit (melpaPackages) ctable deferred epc s; - # }) -] +mainPackages ++ (builtins.attrValues extraPackages)