From 6849194702ecbd1b7c38f7e14253cd0a8ddfce36 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 13 Jan 2025 16:43:32 +0100 Subject: [PATCH 01/10] Update `deltaflyer` config Still not working --- hosts/default.nix | 10 ++++--- hosts/deltaflyer/default.nix | 33 +++++++++++++-------- hosts/deltaflyer/plasma-mobile.nix | 46 ++++++++++++++++-------------- 3 files changed, 52 insertions(+), 37 deletions(-) diff --git a/hosts/default.nix b/hosts/default.nix index 9b4c7c9..b76a20d 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -14,20 +14,22 @@ deltaflyer = { nixpkgs = let - # keep in sync with https://github.com/NixOS/mobile-nixos/blob/development/pkgs.nix - rev = "44d0940ea560dee511026a53f0e2e2cde489b4d4"; + # keep in sync with https://github.com/mobile-nixos/mobile-nixos/blob/development/npins/sources.json + rev = "d3c42f187194c26d9f0309a8ecc469d6c878ce33"; in builtins.getFlake "github:NixOS/nixpkgs/${rev}"; extraHmModules = [ - # inputs.ccrEmacs.hmModules.default + inputs.catppuccin.homeManagerModules.catppuccin ]; vpn = { ip = "10.100.0.5"; publicKey = "6bzmBx2b5yzMdW0aK0KapoBesNcxTv5+qdo+pGmG+jc="; }; - homeManager = builtins.getFlake "github:nix-community/home-manager/670d9ecc3e46a6e3265c203c2d136031a3d3548e"; + # homeManager = builtins.getFlake "github:nix-community/home-manager/670d9ecc3e46a6e3265c203c2d136031a3d3548e"; extraModules = [ (import "${inputs.mobile-nixos}/lib/configuration.nix" { device = "oneplus-fajita"; }) + inputs.catppuccin.nixosModules.catppuccin + inputs.lix-module.nixosModules.default ]; secrets = { "deltaflyer-wireguard-private-key" = { }; diff --git a/hosts/deltaflyer/default.nix b/hosts/deltaflyer/default.nix index 70f479f..7e68982 100644 --- a/hosts/deltaflyer/default.nix +++ b/hosts/deltaflyer/default.nix @@ -30,6 +30,13 @@ # INSECURE STUFF FIRST # Users and hardcoded passwords. { + nixpkgs.overlays = [ + (prev: final: { + gcc7 = final.gcc; + gcc8 = final.gcc; + }) + ]; + users.users.root.password = "nixos"; # users.users.ccr.password = "1234"; @@ -66,11 +73,13 @@ "git" "shell" "helix" - "hyprland" + # "hyprland" + "niri" "emacs" "firefox" "mpv" "xdg" + "catppuccin" ]; extraGroups = [ "dialout" @@ -99,18 +108,18 @@ ccr.extraModules = [ { programs.fish.loginShellInit = '' - pgrep Hypr >/dev/null || exec dbus-run-session Hyprland - ''; - wayland.windowManager.hyprland.extraConfig = lib.mkAfter '' - monitor = DSI-1, 1080x2340, 0x0, 2, transform, 1 - input { - touchdevice { - transform = 1 - } - } - bind = $mod, r, exec, rotate-screen hor - bind = $mod SHIFT, r, exec, rotate-screen ver + pgrep niri >/dev/null || exec niri-session ''; + # wayland.windowManager.hyprland.extraConfig = lib.mkAfter '' + # monitor = DSI-1, 1080x2340, 0x0, 2, transform, 1 + # input { + # touchdevice { + # transform = 1 + # } + # } + # bind = $mod, r, exec, rotate-screen hor + # bind = $mod SHIFT, r, exec, rotate-screen ver + # ''; home.packages = let rotateScript = pkgs.writeShellApplication { diff --git a/hosts/deltaflyer/plasma-mobile.nix b/hosts/deltaflyer/plasma-mobile.nix index 35c6f86..11eb446 100644 --- a/hosts/deltaflyer/plasma-mobile.nix +++ b/hosts/deltaflyer/plasma-mobile.nix @@ -3,6 +3,7 @@ # { lib, + pkgs, ... }: { @@ -16,35 +17,38 @@ # # desktopManager.plasma5.mobile.enable = true; - # displayManager.autoLogin = { - # enable = true; - # }; + displayManager.autoLogin = { + enable = true; + user = "ccr"; + }; - # displayManager.session = [{ - # manage = "desktop"; - # name = "hyprland"; - # start = '' - # ${pkgs.hyprland}/bin/Hyprland & - # waitPID=$! - # ''; - # }]; + displayManager.session = [ + { + manage = "desktop"; + name = "niri"; + start = '' + ${pkgs.niri}/bin/niri-session & + waitPID=$! + ''; + } + ]; - # displayManager.defaultSession = "hyprland"; + displayManager.defaultSession = "niri"; - # displayManager.lightdm = { - # enable = true; - # # Workaround for autologin only working at first launch. - # # A logout or session crashing will show the login screen otherwise. - # extraSeatDefaults = '' - # session-cleanup-script=${pkgs.procps}/bin/pkill -P1 -fx ${pkgs.lightdm}/sbin/lightdm - # ''; - # }; + displayManager.lightdm = { + enable = true; + # Workaround for autologin only working at first launch. + # A logout or session crashing will show the login screen otherwise. + extraSeatDefaults = '' + session-cleanup-script=${pkgs.procps}/bin/pkill -P1 -fx ${pkgs.lightdm}/sbin/lightdm + ''; + }; libinput.enable = true; }; hardware.bluetooth.enable = true; - hardware.pulseaudio.enable = lib.mkDefault true; # mkDefault to help out users wanting pipewire + hardware.pulseaudio.enable = lib.mkDefault false; # mkDefault to help out users wanting pipewire networking.networkmanager.enable = true; networking.wireless.enable = false; powerManagement.enable = true; From a98b467d26047ef56f07066c203cd8b0e2557591 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 13 Jan 2025 16:43:47 +0100 Subject: [PATCH 02/10] Fix swayidle My workaround is not needed anymore and it was preventing it to work --- hmModules/swayidle/default.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/hmModules/swayidle/default.nix b/hmModules/swayidle/default.nix index ccd150b..4db2310 100644 --- a/hmModules/swayidle/default.nix +++ b/hmModules/swayidle/default.nix @@ -48,10 +48,4 @@ } ]; }; - - # Otherwise it will start only after Sway and will not work with Hyprland - systemd.user.services.swayidle = { - Unit.PartOf = lib.mkForce [ ]; - Install.WantedBy = lib.mkForce [ "graphical-session-pre.target" ]; - }; } From e21a61c360f492467fdadda890d44fa2cfade486 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 14 Jan 2025 17:38:27 +0100 Subject: [PATCH 03/10] Bump all inputs --- flake.lock | 86 +++++++++++++++++++++++++++--------------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/flake.lock b/flake.lock index 7b241b5..0a20f08 100644 --- a/flake.lock +++ b/flake.lock @@ -117,11 +117,11 @@ ] }, "locked": { - "lastModified": 1736199437, - "narHash": "sha256-TdU0a/x8048rbbJmkKWzSY1CtsbbGKNkIJcMdr8Zf4Q=", + "lastModified": 1736711425, + "narHash": "sha256-8hKhPQuMtXfJi+4lPvw3FBk/zSJVHeb726Zo0uF1PP8=", "owner": "nix-community", "repo": "disko", - "rev": "49f8aa791f81ff2402039b3efe0c35b9386c4bcf", + "rev": "f720e64ec37fa16ebba6354eadf310f81555cc07", "type": "github" }, "original": { @@ -156,11 +156,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1736327656, - "narHash": "sha256-vDli473KKyf13uexB4Ja9Jt7KmeUSbHbeuwIDP0M2yM=", + "lastModified": 1736759802, + "narHash": "sha256-XCaIRTC+YlL5nRi9WJHeftyfw2Z0YXwwzEmHThGuR3Q=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "42b7368d193ad1939c32e87b48e970423f22f242", + "rev": "244a2ab1459c72bac32a2db088549f8bc6d7a836", "type": "github" }, "original": { @@ -267,11 +267,11 @@ ] }, "locked": { - "lastModified": 1735774679, - "narHash": "sha256-soePLBazJk0qQdDVhdbM98vYdssfs3WFedcq+raipRI=", + "lastModified": 1736143030, + "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f2f7418ce0ab4a5309a4596161d154cfc877af66", + "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", "type": "github" }, "original": { @@ -582,11 +582,11 @@ ] }, "locked": { - "lastModified": 1736349537, - "narHash": "sha256-jE6CXoJLBmvuq9bWjv+EQusiEtSxPiNasWbD+N4575U=", + "lastModified": 1736781604, + "narHash": "sha256-nIjcN89nxaI5ZnwU/1gzc3rBVQ/te5sHraYeG4cyJX4=", "owner": "nix-community", "repo": "home-manager", - "rev": "456e599f9101ed153dde268b4401c5d294ba6c8c", + "rev": "9616d81f98032d1ee9bec68ab4b6a8c833add88c", "type": "github" }, "original": { @@ -618,11 +618,11 @@ }, "impermanence": { "locked": { - "lastModified": 1734945620, - "narHash": "sha256-olIfsfJK4/GFmPH8mXMmBDAkzVQ1TWJmeGT3wBGfQPY=", + "lastModified": 1736688610, + "narHash": "sha256-1Zl9xahw399UiZSJ9Vxs1W4WRFjO1SsNdVZQD4nghz0=", "owner": "nix-community", "repo": "impermanence", - "rev": "d000479f4f41390ff7cf9204979660ad5dd16176", + "rev": "c64bed13b562fc3bb454b48773d4155023ac31b7", "type": "github" }, "original": { @@ -687,11 +687,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1736275188, - "narHash": "sha256-IWu1aN1MeRCtx0PYIKTvG5iDSOx/JVegm4Y+0lAZGTE=", + "lastModified": 1736680332, + "narHash": "sha256-gwidOezQ6FT5q4GHcpD6y2EwKcrtzjAoxaN/9bTGqQw=", "ref": "refs/heads/main", - "rev": "3413ab56292f12ac03ee49270bcaf16038020cb3", - "revCount": 16605, + "rev": "38dd196b03f4163ae3bbb2a1910b8f0f141ca0e2", + "revCount": 16610, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -754,11 +754,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1735176114, - "narHash": "sha256-PxPYz/EFJDtSVrtca14l7crlASkJG2jVrQNpbMzmAcY=", + "lastModified": 1736638789, + "narHash": "sha256-pkpOkSUNrSf5DePUtYYFt4wGODhY28RlQ4SIJ1e+15M=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "595d359518864a13483fd3f4f4ad740cb3bae825", + "rev": "72a0601f36a1b424e8b72f17ff53509b990ee060", "type": "github" }, "original": { @@ -776,11 +776,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1736168988, - "narHash": "sha256-jqH3cfg98+mRSB59WmJuWnvsSyOUNIOVZxf16Mh9/8s=", + "lastModified": 1736592044, + "narHash": "sha256-HkaJeIFgxncLm8MC1BaWRTkge9b1/+mjPcbzXTRshoM=", "owner": "Mic92", "repo": "nix-fast-build", - "rev": "a06a8b2c079f7b6dab491a12555387bdb737cc44", + "rev": "906af17fcd50c84615a4660d9c08cf89c01cef7d", "type": "github" }, "original": { @@ -864,11 +864,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1736085891, - "narHash": "sha256-bTl9fcUo767VaSx4Q5kFhwiDpFQhBKna7lNbGsqCQiA=", + "lastModified": 1736631212, + "narHash": "sha256-mG9lRZBcPiAGiVJ9B97BJoIGQcSBWIVlBiN30QYCtG0=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "ba9b3173b0f642ada42b78fb9dfc37ca82266f6c", + "rev": "6ace2f2d12bdf74235d5cbf9fbd34a71c9716685", "type": "github" }, "original": { @@ -900,11 +900,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1736283893, - "narHash": "sha256-BG1FfTexFwNty5VhYjaQLMR6CMPfI3QRcaZrFQYu2EM=", + "lastModified": 1736441705, + "narHash": "sha256-OL7leZ6KBhcDF3nEKe4aZVfIm6xQpb1Kb+mxySIP93o=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "4f339f6be2b61662f957c2ee9eda0fa597d8a6d6", + "rev": "8870dcaff63dfc6647fb10648b827e9d40b0a337", "type": "github" }, "original": { @@ -1009,11 +1009,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1736200483, - "narHash": "sha256-JO+lFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I=", + "lastModified": 1736549401, + "narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751", + "rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899", "type": "github" }, "original": { @@ -1087,11 +1087,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1736012469, - "narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=", + "lastModified": 1736523798, + "narHash": "sha256-Xb8mke6UCYjge9kPR9o4P1nVrhk7QBbKv3xQ9cj7h2s=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d", + "rev": "130595eba61081acde9001f43de3248d8888ac4a", "type": "github" }, "original": { @@ -1164,11 +1164,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1736012469, - "narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=", + "lastModified": 1736701207, + "narHash": "sha256-jG/+MvjVY7SlTakzZ2fJ5dC3V1PrKKrUEOEE30jrOKA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d", + "rev": "ed4a395ea001367c1f13d34b1e01aa10290f67d6", "type": "github" }, "original": { @@ -1497,11 +1497,11 @@ ] }, "locked": { - "lastModified": 1735905407, - "narHash": "sha256-1hKMRIT+QZNWX46e4gIovoQ7H8QRb7803ZH4qSKI45o=", + "lastModified": 1736154270, + "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "29806abab803e498df96d82dd6f34b32eb8dd2c8", + "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b", "type": "github" }, "original": { From bfa2f177d35415abd76a09852f1715e93122cb59 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 14 Jan 2025 17:38:32 +0100 Subject: [PATCH 04/10] Niri floating rule for the experimental Emacs selector --- hmModules/emacs/init.el | 49 +++++++++++++++++++++++++-------------- hmModules/niri/config.kdl | 4 +++- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 047e4d3..19ac094 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -1016,26 +1016,41 @@ This is meant to be an helper to be called from the window manager." ;;; Experiments, remove from here - -(defun ccr/test () - "test" +(defun ccr/test (niri-socket) + "Select a window and focus it based on `niri msg` output." (interactive) - (with-selected-frame - (make-frame '((name . "Emacs Selector") - (minibuffer . only) - (fullscreen . 0) ; no fullscreen - (undecorated . t) ; remove title bar - ;;(auto-raise . t) ; focus on this frame - ;;(tool-bar-lines . 0) - ;;(menu-bar-lines . 0) - (internal-border-width . 10) - (width . 50) - (height . 10))) - (unwind-protect - (completing-read "ciao " '("foo" "bar" "pippo") nil t "") - (delete-frame)))) + (let* ((niri-output (ccr/niri-get-windows niri-socket)) + (display-list (mapcar (lambda (entry) + (let ((title (cdr (assoc 'title entry))) + (app-id (cdr (assoc 'app_id entry))) + (id (cdr (assoc 'id entry)))) + (cons (format "%s - %s" title app-id) id))) + niri-output))) + (with-selected-frame + (make-frame '((name . "Emacs Selector") + (minibuffer . only) + (fullscreen . 0) + (undecorated . t) + (internal-border-width . 10) + (width . 120) + (height . 20))) + (unwind-protect + (let* ((entry (completing-read "Select window: " (mapcar #'car display-list) nil t "")) + (entry-id (cdr (assoc entry display-list))) ;; Get the ID associated with the selected entry + (command (format "NIRI_SOCKET=\"%s\" niri msg action focus-window --id %s" niri-socket entry-id))) + (message command) + (shell-command command)) + (delete-frame))))) +(defun ccr/niri-get-windows (niri-socket) + "Esegue `niri msg --json windows` e parse l'output JSON in una alist." + (let* ((command (format "NIRI_SOCKET=\"%s\" niri msg --json windows" niri-socket)) + (output (shell-command-to-string command)) + (json-object-type 'alist) ; Usa alist per rappresentare gli oggetti JSON + (parsed-json (json-read-from-string output))) + parsed-json)) + (provide 'init) ;;; init.el ends here diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index 7d25a06..7fbe4bf 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -301,7 +301,9 @@ window-rule { } window-rule { - match app-id=r#"^Emacs Selector$"# + match title=r#"^Emacs Selector$"# + opacity 0.95 + open-floating true } From 37888230728dc1dfea57754ec5309d9048c49947 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 14 Jan 2025 17:39:03 +0100 Subject: [PATCH 05/10] Simplify `pinentry-rofi` usage --- hmModules/gpg/default.nix | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/hmModules/gpg/default.nix b/hmModules/gpg/default.nix index a894c90..f245f26 100644 --- a/hmModules/gpg/default.nix +++ b/hmModules/gpg/default.nix @@ -2,25 +2,13 @@ { services.gpg-agent = { enable = true; - enableSshSupport = true; - extraConfig = - let - pinentryRofi = pkgs.writeShellApplication { - name = "pinentry-rofi-with-env"; - runtimeInputs = with pkgs; [ - coreutils - rofi-wayland - ]; - text = '' - "${pkgs.pinentry-rofi}/bin/pinentry-rofi" "$@" - ''; - }; - in - '' - allow-emacs-pinentry - allow-loopback-pinentry - pinentry-program ${pinentryRofi}/bin/pinentry-rofi-with-env - ''; + pinentryPackage = pkgs.pinentry-rofi.override { + rofi = pkgs.rofi-wayland; + }; + extraConfig = '' + allow-emacs-pinentry + allow-loopback-pinentry + ''; }; programs.gpg = { From 4df523437a35cab8994d4601952a5ca5399a60c9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 14 Jan 2025 17:53:53 +0100 Subject: [PATCH 06/10] Remove `nix-fast-build` input A version including attic support was released in nixpkgs --- flake.lock | 73 +++-------------------------------------- flake.nix | 4 --- modules/nix/default.nix | 13 ++++---- 3 files changed, 11 insertions(+), 79 deletions(-) diff --git a/flake.lock b/flake.lock index 0a20f08..583d5c1 100644 --- a/flake.lock +++ b/flake.lock @@ -260,27 +260,6 @@ } }, "flake-parts_3": { - "inputs": { - "nixpkgs-lib": [ - "nix-fast-build", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736143030, - "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_4": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_2" }, @@ -298,7 +277,7 @@ "type": "github" } }, - "flake-parts_5": { + "flake-parts_4": { "inputs": { "nixpkgs-lib": [ "nixThePlanet", @@ -473,7 +452,7 @@ }, "hercules-ci-effects": { "inputs": { - "flake-parts": "flake-parts_5", + "flake-parts": "flake-parts_4", "nixpkgs": "nixpkgs_7" }, "locked": { @@ -767,28 +746,6 @@ "type": "github" } }, - "nix-fast-build": { - "inputs": { - "flake-parts": "flake-parts_3", - "nixpkgs": [ - "nixpkgs" - ], - "treefmt-nix": "treefmt-nix_2" - }, - "locked": { - "lastModified": 1736592044, - "narHash": "sha256-HkaJeIFgxncLm8MC1BaWRTkge9b1/+mjPcbzXTRshoM=", - "owner": "Mic92", - "repo": "nix-fast-build", - "rev": "906af17fcd50c84615a4660d9c08cf89c01cef7d", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "nix-fast-build", - "type": "github" - } - }, "nix-formatter-pack": { "inputs": { "nixpkgs": [ @@ -879,7 +836,7 @@ }, "nixThePlanet": { "inputs": { - "flake-parts": "flake-parts_4", + "flake-parts": "flake-parts_3", "hercules-ci-effects": "hercules-ci-effects", "nixpkgs": "nixpkgs_8", "osx-kvm": "osx-kvm" @@ -1339,13 +1296,12 @@ "lix-eval-jobs": "lix-eval-jobs", "lix-module": "lix-module", "mobile-nixos": "mobile-nixos", - "nix-fast-build": "nix-fast-build", "nix-on-droid": "nix-on-droid", "nixDarwin": "nixDarwin", "nixThePlanet": "nixThePlanet", "nixosHardware": "nixosHardware", "nixpkgs": "nixpkgs_9", - "treefmt-nix": "treefmt-nix_3", + "treefmt-nix": "treefmt-nix_2", "vscode-server": "vscode-server" } }, @@ -1490,27 +1446,6 @@ } }, "treefmt-nix_2": { - "inputs": { - "nixpkgs": [ - "nix-fast-build", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736154270, - "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "treefmt-nix_3": { "inputs": { "nixpkgs": [ "nixpkgs" diff --git a/flake.nix b/flake.nix index ff70299..34a3717 100644 --- a/flake.nix +++ b/flake.nix @@ -59,10 +59,6 @@ }; catppuccin.url = "github:catppuccin/nix"; emacs-overlay.url = "github:nix-community/emacs-overlay"; - nix-fast-build = { - url = "github:Mic92/nix-fast-build"; - inputs.nixpkgs.follows = "nixpkgs"; - }; }; outputs = diff --git a/modules/nix/default.nix b/modules/nix/default.nix index a46e84e..49227c9 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -8,12 +8,13 @@ { nixpkgs.overlays = [ (final: _: { - nix-fast-build = fleetFlake.inputs.nix-fast-build.packages.${final.system}.nix-fast-build // { - nix = final.nix; - }; - nix-eval-job = fleetFlake.inputs.lix-eval-jobs.packages.${final.system}.nix-eval-jobs // { - nix = final.nix; - }; + nix-eval-jobs = + (fleetFlake.inputs.lix-eval-jobs.packages.${final.system}.nix-eval-jobs.override { + nix = final.nix; + }) + // { + nix = final.nix; + }; }) ]; From 95ee537f03239447fb3331401414f0a70002e544 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 15 Jan 2025 14:19:33 +0100 Subject: [PATCH 07/10] Refactor keybinding --- hmModules/niri/config.kdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index 7fbe4bf..b7581b5 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -336,7 +336,7 @@ binds { Mod+M { spawn "emacsclient" "-c" "--eval" "(notmuch-search \"tag:new\")"; } Mod+G { spawn "emacsclient" "-c" "--eval" "(switch-to-buffer (gptel \"*ChatGPT*\"))"; } Mod+Shift+C { spawn "emacsclient" "-c" "--eval" "(org-roam-dailies-capture-today)"; } - Super+Alt+L { spawn "swaylock"; } + Mod+Alt+L { spawn "swaylock"; } Mod+Space { spawn "rofi" "-show" "menu" "-modi" "menu:rofi-power-menu"; } From 5a7309b5d359a42d8f94e8e36a73919ed23d0226 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 15 Jan 2025 14:20:02 +0100 Subject: [PATCH 08/10] Keybinding for spawning a floating btop --- hmModules/niri/config.kdl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index b7581b5..43f7a4f 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -304,8 +304,15 @@ window-rule { match title=r#"^Emacs Selector$"# opacity 0.95 open-floating true + open-focused true } +window-rule { + match title=r#"^bTop$"# + opacity 0.95 + open-floating true + open-focused true +} @@ -338,7 +345,7 @@ binds { Mod+Shift+C { spawn "emacsclient" "-c" "--eval" "(org-roam-dailies-capture-today)"; } Mod+Alt+L { spawn "swaylock"; } Mod+Space { spawn "rofi" "-show" "menu" "-modi" "menu:rofi-power-menu"; } - + Mod+Ctrl+b { spawn "foot" "--title='bTop'" "-W" "210x60" "btop";} // Example volume keys mappings for PipeWire & WirePlumber. // The allow-when-locked=true property makes them work even when the session is locked. From 82a9c5be658b61532602d3bfea90404c473167a6 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 15 Jan 2025 14:20:31 +0100 Subject: [PATCH 09/10] Use Catppuccin GTK theme and use a more idiomatic poiner configuration --- hmModules/hyprland/default.nix | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 2596638..1958349 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -1,6 +1,7 @@ { config, pkgs, + lib, ... }: let @@ -52,29 +53,34 @@ in services.udiskie.enable = true; + home.pointerCursor = { + gtk.enable = true; + x11.enable = true; + package = pkgs.catppuccin-cursors; + name = "catppuccin-mocha-sapphire"; + size = 38; + }; + gtk = { enable = true; - # font.name = lib.mkForce "Sans,Symbols Nerd Font"; + theme = { + name = "Catppuccin-GTK-Purple-Dark-Compact"; + package = pkgs.magnetic-catppuccin-gtk.override { + accent = [ "purple" ]; + shade = "dark"; + size = "compact"; + }; + }; iconTheme = { name = "Adwaita"; package = pkgs.adwaita-icon-theme; }; - cursorTheme = { - name = "catppuccin-mocha-sapphire"; - package = pkgs.catppuccin-cursors; - size = 38; - }; }; qt = { enable = true; }; - home.file.".icons/catppuccin-mocha-sapphire" = { - source = "${pkgs.catppuccin-cursors.mochaSapphire}/share/icons/catppuccin-mocha-sapphire-cursors"; - recursive = true; - }; - wayland.windowManager.hyprland = { enable = true; plugins = with pkgs.hyprlandPlugins; [ From f5bc54585bb4b8205187c3b1dbdafda68ce3c5ae Mon Sep 17 00:00:00 2001 From: Seven of Nine Date: Wed, 15 Jan 2025 15:00:54 +0000 Subject: [PATCH 10/10] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'catppuccin': 'github:catppuccin/nix/8eada392fd6571a747e1c5fc358dd61c14c8704e' (2025-01-05) → 'github:catppuccin/nix/4a5ac694d7f8a63dec75cbe0ac1c84c818b6b789' (2025-01-13) • Updated input 'catppuccin/catppuccin-v1_2': 'https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.0/0193e5e0-33b7-7149-a362-bfe56b20f64e/source.tar.gz?narHash=sha256-Let3uJo4YDyfqbqaw66dpZxhJB2TrDyZWSFd5rpPLJA%3D' (2024-12-20) → 'https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.1/0193e646-1107-7f69-a402-f2a3988ecf1d/source.tar.gz?narHash=sha256-CFX4diEQHKvZYjnhf7TLg20m3ge1O4vqgplsk/Kuaek%3D' (2024-12-20) • Updated input 'catppuccin/home-manager': 'github:nix-community/home-manager/1395379a7a36e40f2a76e7b9936cc52950baa1be' (2024-12-19) → 'github:nix-community/home-manager/2532b500c3ed2b8940e831039dcec5a5ea093afc' (2025-01-10) • Updated input 'catppuccin/home-manager-stable': 'github:nix-community/home-manager/80b0fdf483c5d1cb75aaad909bd390d48673857f' (2024-12-16) → 'github:nix-community/home-manager/bd65bc3cde04c16755955630b344bc9e35272c56' (2025-01-08) • Updated input 'catppuccin/nixpkgs': 'github:NixOS/nixpkgs/d3c42f187194c26d9f0309a8ecc469d6c878ce33' (2024-12-17) → 'github:NixOS/nixpkgs/8f3e1f807051e32d8c95cd12b9b421623850a34d' (2025-01-04) • Updated input 'catppuccin/nixpkgs-stable': 'github:NixOS/nixpkgs/b47fd6fa00c6afca88b8ee46cfdb00e104f50bca' (2024-12-19) → 'github:NixOS/nixpkgs/cbd8ec4de4469333c82ff40d057350c30e9f7d36' (2025-01-05) • Updated input 'catppuccin/nuscht-search': 'github:NuschtOS/search/3051be7f403bff1d1d380e4612f0c70675b44fc9' (2024-12-09) → 'github:NuschtOS/search/836908e3bddd837ae0f13e215dd48767aee355f0' (2025-01-02) • Updated input 'emacs-overlay': 'github:nix-community/emacs-overlay/244a2ab1459c72bac32a2db088549f8bc6d7a836' (2025-01-13) → 'github:nix-community/emacs-overlay/4fad271473a3c52568acf39ae3c2e9b9364124dd' (2025-01-15) • Updated input 'emacs-overlay/nixpkgs': 'github:NixOS/nixpkgs/130595eba61081acde9001f43de3248d8888ac4a' (2025-01-10) → 'github:NixOS/nixpkgs/9abb87b552b7f55ac8916b6fc9e5cb486656a2f3' (2025-01-13) • Updated input 'emacs-overlay/nixpkgs-stable': 'github:NixOS/nixpkgs/1dab772dd4a68a7bba5d9460685547ff8e17d899' (2025-01-10) → 'github:NixOS/nixpkgs/9c6b49aeac36e2ed73a8c472f1546f6d9cf1addc' (2025-01-14) • Updated input 'homeManager': 'github:nix-community/home-manager/9616d81f98032d1ee9bec68ab4b6a8c833add88c' (2025-01-13) → 'github:nix-community/home-manager/fc52a210b60f2f52c74eac41a8647c1573d2071d' (2025-01-13) • Updated input 'lix': 'git+https://git@git.lix.systems/lix-project/lix?ref=refs/heads/main&rev=38dd196b03f4163ae3bbb2a1910b8f0f141ca0e2' (2025-01-12) → 'git+https://git@git.lix.systems/lix-project/lix?ref=refs/heads/main&rev=acbb3cff2d1a8b998135dc6f48cdd7fda85a3124' (2025-01-14) • Updated input 'mobile-nixos': 'github:NixOS/mobile-nixos/72a0601f36a1b424e8b72f17ff53509b990ee060' (2025-01-11) → 'github:NixOS/mobile-nixos/43fba7218ebbd450f8b578be10bab2a726f470a0' (2025-01-14) • Updated input 'nixDarwin': 'github:LnL7/nix-darwin/6ace2f2d12bdf74235d5cbf9fbd34a71c9716685' (2025-01-11) → 'github:LnL7/nix-darwin/bd921223ba7cdac346477d7ea5204d6f4736fcc6' (2025-01-14) • Updated input 'nixDarwin/nixpkgs': 'github:NixOS/nixpkgs/e913ae340076bbb73d9f4d3d065c2bca7caafb16' (2024-06-11) → 'github:NixOS/nixpkgs/8c9fd3e564728e90829ee7dbac6edc972971cd0f' (2025-01-07) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/ed4a395ea001367c1f13d34b1e01aa10290f67d6' (2025-01-12) → 'github:NixOS/nixpkgs/9abb87b552b7f55ac8916b6fc9e5cb486656a2f3' (2025-01-13) --- flake.lock | 108 +++++++++++++++++++++++++++-------------------------- 1 file changed, 55 insertions(+), 53 deletions(-) diff --git a/flake.lock b/flake.lock index 583d5c1..2e67993 100644 --- a/flake.lock +++ b/flake.lock @@ -32,11 +32,11 @@ "nuscht-search": "nuscht-search" }, "locked": { - "lastModified": 1736069220, - "narHash": "sha256-76MaB3COao55nlhWmSmq9PKgu2iGIs54C1cAE0E5J6Y=", + "lastModified": 1736785029, + "narHash": "sha256-xHe4X4Je/4WjBL3BPlI1KGqA5N7VQpi4x57YYU9ZOlI=", "owner": "catppuccin", "repo": "nix", - "rev": "8eada392fd6571a747e1c5fc358dd61c14c8704e", + "rev": "4a5ac694d7f8a63dec75cbe0ac1c84c818b6b789", "type": "github" }, "original": { @@ -61,12 +61,12 @@ }, "catppuccin-v1_2": { "locked": { - "lastModified": 1734728407, - "narHash": "sha256-Let3uJo4YDyfqbqaw66dpZxhJB2TrDyZWSFd5rpPLJA=", - "rev": "23ee86dbf4ed347878115a78971d43025362fab1", - "revCount": 341, + "lastModified": 1734734291, + "narHash": "sha256-CFX4diEQHKvZYjnhf7TLg20m3ge1O4vqgplsk/Kuaek=", + "rev": "1e4c3803b8da874ff75224ec8512cb173036bbd8", + "revCount": 344, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.0/0193e5e0-33b7-7149-a362-bfe56b20f64e/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.1/0193e646-1107-7f69-a402-f2a3988ecf1d/source.tar.gz" }, "original": { "type": "tarball", @@ -156,11 +156,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1736759802, - "narHash": "sha256-XCaIRTC+YlL5nRi9WJHeftyfw2Z0YXwwzEmHThGuR3Q=", + "lastModified": 1736931681, + "narHash": "sha256-T3o4mDYmpB2Cbe0qNXjDO1tsQvJeaXP93ocBGflSvho=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "244a2ab1459c72bac32a2db088549f8bc6d7a836", + "rev": "4fad271473a3c52568acf39ae3c2e9b9364124dd", "type": "github" }, "original": { @@ -498,11 +498,11 @@ ] }, "locked": { - "lastModified": 1734366194, - "narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=", + "lastModified": 1736373539, + "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=", "owner": "nix-community", "repo": "home-manager", - "rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f", + "rev": "bd65bc3cde04c16755955630b344bc9e35272c56", "type": "github" }, "original": { @@ -520,11 +520,11 @@ ] }, "locked": { - "lastModified": 1734622215, - "narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=", + "lastModified": 1736508663, + "narHash": "sha256-ZOaGwa+WnB7Zn3YXimqjmIugAnHePdXCmNu+AHkq808=", "owner": "nix-community", "repo": "home-manager", - "rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be", + "rev": "2532b500c3ed2b8940e831039dcec5a5ea093afc", "type": "github" }, "original": { @@ -561,11 +561,11 @@ ] }, "locked": { - "lastModified": 1736781604, - "narHash": "sha256-nIjcN89nxaI5ZnwU/1gzc3rBVQ/te5sHraYeG4cyJX4=", + "lastModified": 1736785676, + "narHash": "sha256-TY0jUwR3EW0fnS0X5wXMAVy6h4Z7Y6a3m+Yq++C9AyE=", "owner": "nix-community", "repo": "home-manager", - "rev": "9616d81f98032d1ee9bec68ab4b6a8c833add88c", + "rev": "fc52a210b60f2f52c74eac41a8647c1573d2071d", "type": "github" }, "original": { @@ -666,11 +666,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1736680332, - "narHash": "sha256-gwidOezQ6FT5q4GHcpD6y2EwKcrtzjAoxaN/9bTGqQw=", + "lastModified": 1736817594, + "narHash": "sha256-3bpgIyL50b/tUj8UQijAL/4LCEJ/dJnfWvSAxHmV/94=", "ref": "refs/heads/main", - "rev": "38dd196b03f4163ae3bbb2a1910b8f0f141ca0e2", - "revCount": 16610, + "rev": "acbb3cff2d1a8b998135dc6f48cdd7fda85a3124", + "revCount": 16621, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -733,11 +733,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1736638789, - "narHash": "sha256-pkpOkSUNrSf5DePUtYYFt4wGODhY28RlQ4SIJ1e+15M=", + "lastModified": 1736893583, + "narHash": "sha256-RMhCd6+Lqlbv4Saw28S92U/8mjWUn3NRLIugyJXlFUw=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "72a0601f36a1b424e8b72f17ff53509b990ee060", + "rev": "43fba7218ebbd450f8b578be10bab2a726f470a0", "type": "github" }, "original": { @@ -821,11 +821,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1736631212, - "narHash": "sha256-mG9lRZBcPiAGiVJ9B97BJoIGQcSBWIVlBiN30QYCtG0=", + "lastModified": 1736819234, + "narHash": "sha256-deQVtIH4UJueELJqluAICUtX7OosD9paTP+5FgbiSwI=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "6ace2f2d12bdf74235d5cbf9fbd34a71c9716685", + "rev": "bd921223ba7cdac346477d7ea5204d6f4736fcc6", "type": "github" }, "original": { @@ -950,11 +950,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1734600368, - "narHash": "sha256-nbG9TijTMcfr+au7ZVbKpAhMJzzE2nQBYmRvSdXUD8g=", + "lastModified": 1736061677, + "narHash": "sha256-DjkQPnkAfd7eB522PwnkGhOMuT9QVCZspDpJJYyOj60=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b47fd6fa00c6afca88b8ee46cfdb00e104f50bca", + "rev": "cbd8ec4de4469333c82ff40d057350c30e9f7d36", "type": "github" }, "original": { @@ -966,11 +966,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1736549401, - "narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=", + "lastModified": 1736867362, + "narHash": "sha256-i/UJ5I7HoqmFMwZEH6vAvBxOrjjOJNU739lnZnhUln8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899", + "rev": "9c6b49aeac36e2ed73a8c472f1546f6d9cf1addc", "type": "github" }, "original": { @@ -1012,11 +1012,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1734424634, - "narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=", + "lastModified": 1736012469, + "narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33", + "rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d", "type": "github" }, "original": { @@ -1044,11 +1044,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1736523798, - "narHash": "sha256-Xb8mke6UCYjge9kPR9o4P1nVrhk7QBbKv3xQ9cj7h2s=", + "lastModified": 1736798957, + "narHash": "sha256-qwpCtZhSsSNQtK4xYGzMiyEDhkNzOCz/Vfu4oL2ETsQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "130595eba61081acde9001f43de3248d8888ac4a", + "rev": "9abb87b552b7f55ac8916b6fc9e5cb486656a2f3", "type": "github" }, "original": { @@ -1075,16 +1075,18 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1718149104, - "narHash": "sha256-Ds1QpobBX2yoUDx9ZruqVGJ/uQPgcXoYuobBguyKEh8=", + "lastModified": 1736241350, + "narHash": "sha256-CHd7yhaDigUuJyDeX0SADbTM9FXfiWaeNyY34FL1wQU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e913ae340076bbb73d9f4d3d065c2bca7caafb16", + "rev": "8c9fd3e564728e90829ee7dbac6edc972971cd0f", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs_7": { @@ -1121,11 +1123,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1736701207, - "narHash": "sha256-jG/+MvjVY7SlTakzZ2fJ5dC3V1PrKKrUEOEE30jrOKA=", + "lastModified": 1736798957, + "narHash": "sha256-qwpCtZhSsSNQtK4xYGzMiyEDhkNzOCz/Vfu4oL2ETsQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ed4a395ea001367c1f13d34b1e01aa10290f67d6", + "rev": "9abb87b552b7f55ac8916b6fc9e5cb486656a2f3", "type": "github" }, "original": { @@ -1183,11 +1185,11 @@ ] }, "locked": { - "lastModified": 1733773348, - "narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=", + "lastModified": 1735854821, + "narHash": "sha256-Iv59gMDZajNfezTO0Fw6LHE7uKAShxbvMidmZREit7c=", "owner": "NuschtOS", "repo": "search", - "rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9", + "rev": "836908e3bddd837ae0f13e215dd48767aee355f0", "type": "github" }, "original": {