diff --git a/flake.lock b/flake.lock index dc0e4bc5..19184329 100644 --- a/flake.lock +++ b/flake.lock @@ -34,11 +34,11 @@ }, "crane": { "locked": { - "lastModified": 1765739568, - "narHash": "sha256-gQYx35Of4UDKUjAYvmxjUEh/DdszYeTtT6MDin4loGE=", + "lastModified": 1769737823, + "narHash": "sha256-DrBaNpZ+sJ4stXm+0nBX7zqZT9t9P22zbk6m5YhQxS4=", "owner": "ipetkov", "repo": "crane", - "rev": "67d2baff0f9f677af35db61b32b5df6863bcc075", + "rev": "b2f45c3830aa96b7456a4c4bc327d04d7a43e1ba", "type": "github" }, "original": { @@ -54,11 +54,11 @@ ] }, "locked": { - "lastModified": 1766150702, - "narHash": "sha256-P0kM+5o+DKnB6raXgFEk3azw8Wqg5FL6wyl9jD+G5a4=", + "lastModified": 1769524058, + "narHash": "sha256-zygdD6X1PcVNR2PsyK4ptzrVEiAdbMqLos7utrMDEWE=", "owner": "nix-community", "repo": "disko", - "rev": "916506443ecd0d0b4a0f4cf9d40a3c22ce39b378", + "rev": "71a3fc97d80881e91710fe721f1158d3b96ae14d", "type": "github" }, "original": { @@ -75,11 +75,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1766203416, - "narHash": "sha256-UrIuqnXvM+73owAiq1zjHNtaWrv72wD1yKO6jTowhTQ=", + "lastModified": 1770177820, + "narHash": "sha256-0iGDl/ct3rW+h6+sLq4RZaze/U/aQo2L5sLLuyjuVTk=", "owner": "rycee", "repo": "nur-expressions", - "rev": "8b55bb199045aa79e2965b7482b04ee4773192e3", + "rev": "c7794d3f46304de5234008c31b5b28a9d5709184", "type": "gitlab" }, "original": { @@ -92,15 +92,15 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1761588595, - "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", - "owner": "edolstra", + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", "repo": "flake-compat", - "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", "type": "github" }, "original": { - "owner": "edolstra", + "owner": "NixOS", "repo": "flake-compat", "type": "github" } @@ -263,11 +263,11 @@ }, "hardware": { "locked": { - "lastModified": 1764440730, - "narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=", + "lastModified": 1769302137, + "narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3", + "rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8", "type": "github" }, "original": { @@ -283,11 +283,11 @@ ] }, "locked": { - "lastModified": 1766171975, - "narHash": "sha256-47Ee0bTidhF/3/sHuYnWRuxcCrrm0mBNDxBkOTd3wWQ=", + "lastModified": 1770164260, + "narHash": "sha256-mQgOAYWlVJyuyXjZN6yxqXWyODvQI5P/UZUCU7IOuYo=", "owner": "nix-community", "repo": "home-manager", - "rev": "bb35f07cc95a73aacbaf1f7f46bb8a3f40f265b5", + "rev": "4fda26500b4539e0a1e3afba9f0e1616bdad4f85", "type": "github" }, "original": { @@ -350,11 +350,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1766225539, - "narHash": "sha256-0Y6o3oUmQCxrzLIvZTcUAQCPEXAc+tU+N3ZjmzdrC28=", + "lastModified": 1770064250, + "narHash": "sha256-3HB6gfnKZnwDoH77lnJktJtQWEZ+D35Oi53pNF6YwO4=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "14455220bef50f8df94f05e5763cdf51bc704acd", + "rev": "9985b98c74dcc7b1c7ccfe8693daf37caa4ed2ea", "type": "github" }, "original": { @@ -435,11 +435,11 @@ ] }, "locked": { - "lastModified": 1766109532, - "narHash": "sha256-WyJmJuH2JHHi0xRHQu+CLoh7LE1Wpnm5V15fEbmnMKI=", + "lastModified": 1766321686, + "narHash": "sha256-icOWbnD977HXhveirqA10zoqvErczVs3NKx8Bj+ikHY=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "616a57af55edaac3bee4343feef116f954de5b2a", + "rev": "7d433bf89882f61621f95082e90a4ab91eb0bdd3", "type": "gitlab" }, "original": { @@ -450,11 +450,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1766070988, - "narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=", + "lastModified": 1770115704, + "narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c6245e83d836d0433170a16eb185cefe0572f8b8", + "rev": "e6eae2ee2110f3d31110d5c222cd395303343b08", "type": "github" }, "original": { @@ -481,11 +481,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1765838191, - "narHash": "sha256-m5KWt1nOm76ILk/JSCxBM4MfK3rYY7Wq9/TZIIeGnT8=", + "lastModified": 1770136044, + "narHash": "sha256-tlFqNG/uzz2++aAmn4v8J0vAkV3z7XngeIIB3rM3650=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c6f52ebd45e5925c188d1a20119978aa4ffd5ef6", + "rev": "e576e3c9cf9bad747afcddd9e34f51d18c855b4e", "type": "github" }, "original": { @@ -544,11 +544,11 @@ ] }, "locked": { - "lastModified": 1765464257, - "narHash": "sha256-dixPWKiHzh80PtD0aLuxYNQ0xP+843dfXG/yM3OzaYQ=", + "lastModified": 1769939035, + "narHash": "sha256-Fok2AmefgVA0+eprw2NDwqKkPGEI5wvR+twiZagBvrg=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "09e45f2598e1a8499c3594fe11ec2943f34fe509", + "rev": "a8ca480175326551d6c4121498316261cbb5b260", "type": "github" }, "original": { @@ -587,11 +587,11 @@ ] }, "locked": { - "lastModified": 1765680428, - "narHash": "sha256-fyPmRof9SZeI14ChPk5rVPOm7ISiiGkwGCunkhM+eUg=", + "lastModified": 1770001842, + "narHash": "sha256-ZAyTeILfdWwDp1nuF0RK3McBduMi49qnJvrS+3Ezpac=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "eb3898d8ef143d4bf0f7f2229105fc51c7731b2f", + "rev": "5018343419ea808f8a413241381976b7e60951f2", "type": "github" }, "original": { @@ -607,11 +607,11 @@ ] }, "locked": { - "lastModified": 1765836173, - "narHash": "sha256-hWRYfdH2ONI7HXbqZqW8Q1y9IRbnXWvtvt/ONZovSNY=", + "lastModified": 1770145881, + "narHash": "sha256-ktjWTq+D5MTXQcL9N6cDZXUf9kX8JBLLBLT0ZyOTSYY=", "owner": "mic92", "repo": "sops-nix", - "rev": "443a7f2e7e118c4fc63b7fae05ab3080dd0e5c63", + "rev": "17eea6f3816ba6568b8c81db8a4e6ca438b30b7c", "type": "github" }, "original": { diff --git a/home/gabriel/features/cli/default.nix b/home/gabriel/features/cli/default.nix index b5b668c0..d47481ea 100644 --- a/home/gabriel/features/cli/default.nix +++ b/home/gabriel/features/cli/default.nix @@ -35,7 +35,7 @@ nixd # Nix LSP alejandra # Nix formatter - nixfmt-rfc-style + nixfmt nvd # Differ nix-diff # Differ, more detailed nix-output-monitor diff --git a/home/gabriel/features/cli/fish/bindings.nix b/home/gabriel/features/cli/fish/bindings.nix index ade67895..fe5943dd 100644 --- a/home/gabriel/features/cli/fish/bindings.nix +++ b/home/gabriel/features/cli/fish/bindings.nix @@ -18,11 +18,18 @@ in ''; plugins = lib.optional useHelix { name = "fish-helix"; - src = pkgs.fetchFromGitHub { - owner = "sshilovsky"; - repo = "fish-helix"; - rev = "8a5c7999ec67ae6d70de11334aa888734b3af8d7"; - hash = "sha256-04cL9/m5v0/5dkqz0tEqurOY+5sDjCB5mMKvqgpV4vM="; + src = pkgs.stdenv.mkDerivation { + pname = "fish-helix"; + version = "unstable"; + src = pkgs.fetchFromGitHub { + owner = "sshilovsky"; + repo = "fish-helix"; + rev = "8a5c7999ec67ae6d70de11334aa888734b3af8d7"; + hash = "sha256-04cL9/m5v0/5dkqz0tEqurOY+5sDjCB5mMKvqgpV4vM="; + }; + patches = [../../../../../overlays/fish-helix-fish43-compat.patch]; + dontBuild = true; + installPhase = "cp -r . $out"; }; }; }; diff --git a/home/gabriel/features/cli/fish/default.nix b/home/gabriel/features/cli/fish/default.nix index 0ae20a66..92e53d9e 100644 --- a/home/gabriel/features/cli/fish/default.nix +++ b/home/gabriel/features/cli/fish/default.nix @@ -57,33 +57,33 @@ in { bind \ee edit_command_buffer # Use terminal colors - set -x fish_color_autosuggestion brblack - set -x fish_color_cancel -r - set -x fish_color_command brgreen - set -x fish_color_comment brmagenta - set -x fish_color_cwd green - set -x fish_color_cwd_root red - set -x fish_color_end brmagenta - set -x fish_color_error brred - set -x fish_color_escape brcyan - set -x fish_color_history_current --bold - set -x fish_color_host normal - set -x fish_color_host_remote yellow - set -x fish_color_match --background=brblue - set -x fish_color_normal normal - set -x fish_color_operator cyan - set -x fish_color_param brblue - set -x fish_color_quote yellow - set -x fish_color_redirection bryellow - set -x fish_color_search_match 'bryellow' '--background=brblack' - set -x fish_color_selection 'white' '--bold' '--background=brblack' - set -x fish_color_status red - set -x fish_color_user brgreen - set -x fish_color_valid_path --underline - set -x fish_pager_color_completion normal - set -x fish_pager_color_description yellow - set -x fish_pager_color_prefix 'white' '--bold' '--underline' - set -x fish_pager_color_progress 'brwhite' '--background=cyan' + set -gx fish_color_autosuggestion brblack + set -gx fish_color_cancel -r + set -gx fish_color_command brgreen + set -gx fish_color_comment brmagenta + set -gx fish_color_cwd green + set -gx fish_color_cwd_root red + set -gx fish_color_end brmagenta + set -gx fish_color_error brred + set -gx fish_color_escape brcyan + set -gx fish_color_history_current --bold + set -gx fish_color_host normal + set -gx fish_color_host_remote yellow + set -gx fish_color_match --background=brblue + set -gx fish_color_normal normal + set -gx fish_color_operator cyan + set -gx fish_color_param brblue + set -gx fish_color_quote yellow + set -gx fish_color_redirection bryellow + set -gx fish_color_search_match 'bryellow' '--background=brblack' + set -gx fish_color_selection 'white' '--bold' '--background=brblack' + set -gx fish_color_status red + set -gx fish_color_user brgreen + set -gx fish_color_valid_path --underline + set -gx fish_pager_color_completion normal + set -gx fish_pager_color_description yellow + set -gx fish_pager_color_prefix 'white' '--bold' '--underline' + set -gx fish_pager_color_progress 'brwhite' '--background=cyan' ''; }; } diff --git a/home/gabriel/features/desktop/hyprland/default.nix b/home/gabriel/features/desktop/hyprland/default.nix index ea4921ba..e7d379d8 100644 --- a/home/gabriel/features/desktop/hyprland/default.nix +++ b/home/gabriel/features/desktop/hyprland/default.nix @@ -114,72 +114,61 @@ in { close_special_on_empty = true; focus_on_activate = true; # Unfullscreen when opening something - new_window_takes_over_fullscreen = 2; + on_focus_under_fullscreen = 2; disable_hyprland_logo = true; disable_splash_rendering = true; disable_hyprland_guiutils_check = true; enable_swallow = true; swallow_regex = "(?i)(${lib.concatMapStringsSep "|" (lib.removeSuffix ".desktop") config.xdg.mimeApps.defaultApplications."x-scheme-handler/terminal"})"; }; - windowrulev2 = let - sweethome3d-tooltips = "title:win[0-9],class:com-eteks-sweethome3d-SweetHome3DBootstrap"; - steamGame = "class:steam_app_[0-9]*"; - kdeconnect-pointer = "class:org.kdeconnect.daemon"; - wineTray = "class:explorer.exe"; - rsiLauncher = "class:rsi launcher.exe"; - steamBigPicture = "title:Steam Big Picture Mode"; - firefoxPictureInPicture = "class:firefox,title:Picture-in-Picture"; - floatingVlc = "floating:1,class:vlc"; + windowrule = let + sweethome3d-tooltips = "match:title win[0-9], match:class com-eteks-sweethome3d-SweetHome3DBootstrap"; + steamGame = "match:class steam_app_[0-9]*"; + wineTray = "match:class explorer.exe"; + rsiLauncher = "match:class rsi launcher.exe"; + steamBigPicture = "match:title Steam Big Picture Mode"; + firefoxPictureInPicture = "match:class firefox, match:title Picture-in-Picture"; + floatingVlc = "match:float 1, match:class vlc"; in [ - "idleinhibit focus, fullscreenstate:2 *" - "nofocus, ${sweethome3d-tooltips}" + "idle_inhibit focus, match:fullscreen_state_internal 2 *" + "no_initial_focus on, ${sweethome3d-tooltips}" - "immediate, ${steamGame}" - - "size 100% 100%, ${kdeconnect-pointer}" - "float, ${kdeconnect-pointer}" - "nofocus, ${kdeconnect-pointer}" - "noblur, ${kdeconnect-pointer}" - "noanim, ${kdeconnect-pointer}" - "noshadow, ${kdeconnect-pointer}" - "noborder, ${kdeconnect-pointer}" - "plugin:hyprbars:nobar, ${kdeconnect-pointer}" - "suppressevent fullscreen, ${kdeconnect-pointer}" + "immediate on, ${steamGame}" "workspace special silent, ${wineTray}" - "tile, ${rsiLauncher}" + "tile on, ${rsiLauncher}" - "fullscreen, ${steamBigPicture}" + "fullscreen on, ${steamBigPicture}" - "float, ${firefoxPictureInPicture}" - "pin, ${firefoxPictureInPicture}" + "float on, ${firefoxPictureInPicture}" + "pin on, ${firefoxPictureInPicture}" - "pin, ${floatingVlc}" + "pin on, ${floatingVlc}" ] ++ (lib.mapAttrsToList ( - name: colors: "bordercolor ${rgba colors.primary "ee"} ${rgba colors.primary_container "aa"}, title:\\[${name}\\].*" + name: colors: "border_color ${rgba colors.primary "ee"} ${rgba colors.primary_container "aa"}, match:title \\[${name}\\].*" ) config.colorscheme.hosts); layerrule = [ - "animation fade,hyprpicker" - "animation fade,selection" - "animation fade,hyprpaper" + "animation fade, match:namespace hyprpicker" + "animation fade, match:namespace selection" + "animation fade, match:namespace hyprpaper" - "animation fade,waybar" - "blur,waybar" - "ignorezero,waybar" + "animation fade, match:namespace waybar" + "blur on, match:namespace waybar" + "ignore_alpha 0, match:namespace waybar" - "blur,notifications" - "ignorezero,notifications" + "blur on, match:namespace notifications" + "ignore_alpha 0, match:namespace notifications" - "blur,wofi" - "ignorezero,wofi" + "blur on, match:namespace wofi" + "ignore_alpha 0, match:namespace wofi" - "noanim,wallpaper" + "no_anim on, match:namespace wallpaper" - "abovelock,swayosd" + "above_lock 2, match:namespace swayosd" ]; decoration = { diff --git a/home/gabriel/features/desktop/hyprland/hyprbars.nix b/home/gabriel/features/desktop/hyprland/hyprbars.nix index c05b584c..a90aba76 100644 --- a/home/gabriel/features/desktop/hyprland/hyprbars.nix +++ b/home/gabriel/features/desktop/hyprland/hyprbars.nix @@ -15,7 +15,7 @@ in { wayland.windowManager.hyprland = { plugins = [hyprbars]; settings = { - "plugin:hyprbars" = { + plugin.hyprbars = { # Local colors bar_color = rgba config.colorscheme.colors.surface "dd"; "col.text" = rgb config.colorscheme.colors.primary; @@ -43,24 +43,24 @@ in { ]; }; - windowrulev2 = [ + windowrule = [ # Disable bars in floating pinned windows - "plugin:hyprbars:nobar, floating:1, pinned:1" + "hyprbars:no_bar on, match:float 1, match:pin 1" # Local colors (this host's colors) - "plugin:hyprbars:bar_color ${rgba config.colorscheme.colors.surface "dd"}, focus:0" - "plugin:hyprbars:title_color ${rgb config.colorscheme.colors.primary}, focus:0" + "hyprbars:bar_color ${rgba config.colorscheme.colors.surface "dd"}, match:focus 0" + "hyprbars:title_color ${rgb config.colorscheme.colors.primary}, match:focus 0" # Local focused colors - "plugin:hyprbars:bar_color ${rgba config.colorscheme.colors.primary "ee"}, focus:1" - "plugin:hyprbars:title_color ${rgb config.colorscheme.colors.on_primary}, focus:1" + "hyprbars:bar_color ${rgba config.colorscheme.colors.primary "ee"}, match:focus 1" + "hyprbars:title_color ${rgb config.colorscheme.colors.on_primary}, match:focus 1" ] ++ (lib.flatten (lib.mapAttrsToList (name: colors: [ # Remote host colors - "plugin:hyprbars:bar_color ${rgba colors.primary_container "dd"}, title:\\[${name}\\].*, focus:0" - "plugin:hyprbars:title_color ${rgb colors.on_primary_container}, title:\\[${name}\\].*, focus:0" + "hyprbars:bar_color ${rgba colors.primary_container "dd"}, match:title \\[${name}\\].*, match:focus 0" + "hyprbars:title_color ${rgb colors.on_primary_container}, match:title \\[${name}\\].*, match:focus 0" # Remote host focused colors - "plugin:hyprbars:bar_color ${rgba colors.primary "ee"}, title:\\[${name}\\].*, focus:1" - "plugin:hyprbars:title_color ${rgb colors.on_primary}, title:\\[${name}\\].*, focus:1" + "hyprbars:bar_color ${rgba colors.primary "ee"}, match:title \\[${name}\\].*, match:focus 1" + "hyprbars:title_color ${rgb colors.on_primary}, match:title \\[${name}\\].*, match:focus 1" ]) config.colorscheme.hosts)); }; }; diff --git a/home/gabriel/features/desktop/hyprland/hyprpaper.nix b/home/gabriel/features/desktop/hyprland/hyprpaper.nix index cb836245..aa4ab267 100644 --- a/home/gabriel/features/desktop/hyprland/hyprpaper.nix +++ b/home/gabriel/features/desktop/hyprland/hyprpaper.nix @@ -2,10 +2,11 @@ services.hyprpaper = { enable = true; settings = { - ipc = true; splash = false; - preload = "${config.wallpaper}"; - wallpaper = ",${config.wallpaper}"; + wallpaper = { + monitor = ""; # All monitors + path = "${config.wallpaper}"; + }; }; }; } diff --git a/hosts/atlas/default.nix b/hosts/atlas/default.nix index b32a78b6..61579bd0 100644 --- a/hosts/atlas/default.nix +++ b/hosts/atlas/default.nix @@ -30,10 +30,7 @@ boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest; powerManagement.powertop.enable = true; - programs = { - adb.enable = true; - dconf.enable = true; - }; + programs.dconf.enable = true; hardware.graphics.enable = true; diff --git a/hosts/common/global/openssh.nix b/hosts/common/global/openssh.nix index e081f985..f28fa863 100644 --- a/hosts/common/global/openssh.nix +++ b/hosts/common/global/openssh.nix @@ -22,7 +22,7 @@ in { # Allow forwarding ports to everywhere GatewayPorts = "clientspecified"; # Let WAYLAND_DISPLAY be forwarded - AcceptEnv = "WAYLAND_DISPLAY"; + AcceptEnv = ["WAYLAND_DISPLAY"]; X11Forwarding = true; }; diff --git a/hosts/maia/default.nix b/hosts/maia/default.nix index fc9e7cb9..2cc89a8b 100644 --- a/hosts/maia/default.nix +++ b/hosts/maia/default.nix @@ -28,10 +28,7 @@ boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest; powerManagement.powertop.enable = true; - programs = { - adb.enable = true; - dconf.enable = true; - }; + programs.dconf.enable = true; system.stateVersion = "22.05"; } diff --git a/hosts/pleione/default.nix b/hosts/pleione/default.nix index 8743fade..cd225c7a 100644 --- a/hosts/pleione/default.nix +++ b/hosts/pleione/default.nix @@ -31,10 +31,7 @@ powerManagement.powertop.enable = true; - programs = { - adb.enable = true; - dconf.enable = true; - }; + programs.dconf.enable = true; services.logind = { powerKey = "suspend"; diff --git a/overlays/automatic-timezoned-async-error-handling.patch b/overlays/automatic-timezoned-async-error-handling.patch index 886b7a66..aaf73552 100644 --- a/overlays/automatic-timezoned-async-error-handling.patch +++ b/overlays/automatic-timezoned-async-error-handling.patch @@ -1,4 +1,4 @@ -From cb8ac85ecc080800de084ca1db769a9b7126cbf9 Mon Sep 17 00:00:00 2001 +From fd9a6a391063839fc67d32f3c53fb8fb6d56667e Mon Sep 17 00:00:00 2001 From: Gabriel Fontes Date: Mon, 9 Mar 2026 23:29:26 -0300 Subject: [PATCH 1/4] chore: switch to async @@ -10,7 +10,7 @@ Subject: [PATCH 1/4] chore: switch to async 3 files changed, 132 insertions(+), 177 deletions(-) diff --git a/Cargo.lock b/Cargo.lock -index 7525de6..803ee3a 100644 +index df5b845..c5616cc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -79,79 +79,6 @@ dependencies = [ @@ -137,7 +137,7 @@ index 7525de6..803ee3a 100644 [[package]] name = "autocfg" version = "1.5.0" -@@ -216,7 +113,9 @@ version = "2.0.105" +@@ -216,7 +113,9 @@ version = "2.0.113" dependencies = [ "clap", "env_logger", @@ -167,7 +167,7 @@ index 7525de6..803ee3a 100644 [[package]] name = "bumpalo" version = "3.19.0" -@@ -544,12 +430,6 @@ version = "0.5.0" +@@ -538,12 +424,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" @@ -180,7 +180,7 @@ index 7525de6..803ee3a 100644 [[package]] name = "hex" version = "0.4.3" -@@ -609,9 +489,9 @@ dependencies = [ +@@ -603,9 +483,9 @@ dependencies = [ [[package]] name = "libc" @@ -192,7 +192,7 @@ index 7525de6..803ee3a 100644 [[package]] name = "libredox" -@@ -630,6 +510,15 @@ version = "0.11.0" +@@ -624,6 +504,15 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" @@ -208,7 +208,7 @@ index 7525de6..803ee3a 100644 [[package]] name = "log" version = "0.4.29" -@@ -651,6 +540,17 @@ dependencies = [ +@@ -645,6 +534,17 @@ dependencies = [ "autocfg", ] @@ -226,7 +226,7 @@ index 7525de6..803ee3a 100644 [[package]] name = "multimap" version = "0.10.1" -@@ -714,6 +614,29 @@ version = "2.2.1" +@@ -695,6 +595,29 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" @@ -256,7 +256,7 @@ index 7525de6..803ee3a 100644 [[package]] name = "petgraph" version = "0.7.1" -@@ -730,31 +653,6 @@ version = "0.2.16" +@@ -711,31 +634,6 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" @@ -288,7 +288,7 @@ index 7525de6..803ee3a 100644 [[package]] name = "prettyplease" version = "0.2.37" -@@ -936,6 +834,12 @@ dependencies = [ +@@ -917,6 +815,12 @@ dependencies = [ "winapi-util", ] @@ -301,7 +301,7 @@ index 7525de6..803ee3a 100644 [[package]] name = "serde" version = "1.0.228" -@@ -1008,10 +912,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" +@@ -989,10 +893,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" [[package]] @@ -315,7 +315,7 @@ index 7525de6..803ee3a 100644 [[package]] name = "snapbox" -@@ -1044,6 +948,16 @@ dependencies = [ +@@ -1025,6 +929,16 @@ dependencies = [ "anstream", ] @@ -330,9 +330,9 @@ index 7525de6..803ee3a 100644 +] + [[package]] - name = "static_assertions" - version = "1.1.0" -@@ -1074,6 +988,35 @@ dependencies = [ + name = "syn" + version = "2.0.111" +@@ -1049,6 +963,35 @@ dependencies = [ "windows-sys 0.61.2", ] @@ -368,7 +368,7 @@ index 7525de6..803ee3a 100644 [[package]] name = "toml_datetime" version = "0.7.3" -@@ -1235,6 +1178,12 @@ dependencies = [ +@@ -1210,6 +1153,12 @@ dependencies = [ "winapi-util", ] @@ -381,8 +381,8 @@ index 7525de6..803ee3a 100644 [[package]] name = "wasip2" version = "1.0.1+wasi-0.2.4" -@@ -1431,14 +1380,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "b622b18155f7a93d1cd2dc8c01d2d6a44e08fb9ebb7b3f9e6ed101488bad6c91" +@@ -1406,14 +1355,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "1bfeff997a0aaa3eb20c4652baf788d2dfa6d2839a0ead0b3ff69ce2f9c4bdd1" dependencies = [ "async-broadcast", - "async-executor", @@ -396,8 +396,8 @@ index 7525de6..803ee3a 100644 "enumflags2", "event-listener", "futures-core", -@@ -1448,6 +1391,7 @@ dependencies = [ - "ordered-stream", +@@ -1424,6 +1367,7 @@ dependencies = [ + "rustix", "serde", "serde_repr", + "tokio", @@ -405,13 +405,13 @@ index 7525de6..803ee3a 100644 "uds_windows", "uuid", diff --git a/Cargo.toml b/Cargo.toml -index 25e66f9..de4bc68 100644 +index 57cac15..868835f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,6 +12,14 @@ env_logger = { version = "=0.11.8", default-features = false } log = { version = "=0.4.29", default-features = false } - tzf-rs = { version = "=1.1.3", default-features = false } - zvariant = { version = "=5.8.0", default-features = false } + tzf-rs = { version = "=1.1.4", default-features = false } + zvariant = { version = "=5.9.2", default-features = false } +futures-lite = { version = "=2.6.1", default-features = false } + +[dependencies.tokio] @@ -422,9 +422,9 @@ index 25e66f9..de4bc68 100644 +] [dependencies.clap] - version = "=4.5.53" + version = "=4.5.54" @@ -29,8 +37,7 @@ features = [ - version = "=5.12.0" + version = "=5.13.2" default-features = false features = [ - "async-io", @@ -518,7 +518,7 @@ index f6342c1..20536b7 100644 2.51.2 -From d3db26e891e6a1fce5b60260eeefaa8caa774d0d Mon Sep 17 00:00:00 2001 +From eb161a61ec87e014985555717852381091624352 Mon Sep 17 00:00:00 2001 From: Gabriel Fontes Date: Mon, 9 Mar 2026 23:37:27 -0300 Subject: [PATCH 2/4] chore: extract location handling to function @@ -600,7 +600,7 @@ index 20536b7..1fdd545 100644 2.51.2 -From 7245894626648101932e6309090105821ea63141 Mon Sep 17 00:00:00 2001 +From 1f5fd2669894aecbf5968852a9941f6eb77bfec6 Mon Sep 17 00:00:00 2001 From: Gabriel Fontes Date: Mon, 9 Mar 2026 23:45:56 -0300 Subject: [PATCH 3/4] chore: use anyhow for error handling @@ -612,19 +612,19 @@ Subject: [PATCH 3/4] chore: use anyhow for error handling 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock -index 803ee3a..b5dfd08 100644 +index c5616cc..e7e4bd3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -111,6 +111,7 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" name = "automatic-timezoned" - version = "2.0.105" + version = "2.0.113" dependencies = [ + "anyhow", "clap", "env_logger", "futures-lite", diff --git a/Cargo.toml b/Cargo.toml -index de4bc68..9c866ed 100644 +index 868835f..98c05f3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,6 +9,7 @@ keywords = ["dbus", "geoclue", "systemd", "timezone", "zoneinfo"] @@ -633,8 +633,8 @@ index de4bc68..9c866ed 100644 env_logger = { version = "=0.11.8", default-features = false } +anyhow = { version = "=1.0.100", default-features = false } log = { version = "=0.4.29", default-features = false } - tzf-rs = { version = "=1.1.3", default-features = false } - zvariant = { version = "=5.8.0", default-features = false } + tzf-rs = { version = "=1.1.4", default-features = false } + zvariant = { version = "=5.9.2", default-features = false } diff --git a/src/main.rs b/src/main.rs index 1fdd545..94a5699 100644 --- a/src/main.rs @@ -670,7 +670,7 @@ index 1fdd545..94a5699 100644 2.51.2 -From e5c23bf3a7c13df345ef542e4e4e0917533c5d5d Mon Sep 17 00:00:00 2001 +From 258958a8e48e4332f8aac6e107a38e532f87a89f Mon Sep 17 00:00:00 2001 From: Gabriel Fontes Date: Mon, 9 Mar 2026 23:45:56 -0300 Subject: [PATCH 4/4] feature: add timeout for geoclue connection and first diff --git a/overlays/default.nix b/overlays/default.nix index 91f0926f..c63542f2 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -113,7 +113,7 @@ in { cargoDeps = old.cargoDeps.overrideAttrs (old: { vendorStaging = old.vendorStaging.overrideAttrs { patches = [./automatic-timezoned-async-error-handling.patch]; - outputHash = "sha256-1Q17ss0HXC4zx5LiJ1xDS6HFs6Xa/9byCxfgMi3Bz0A="; + outputHash = "sha256-iVA4ptzNK7KQcxTPexhQH/RB9Dl0BB93itG123KNOMs="; }; }); }); diff --git a/overlays/fish-helix-fish43-compat.patch b/overlays/fish-helix-fish43-compat.patch new file mode 100644 index 00000000..e895b9d5 --- /dev/null +++ b/overlays/fish-helix-fish43-compat.patch @@ -0,0 +1,259 @@ +From 73315cfff45b1e4f3c611fa4fc1e59c3a11ece98 Mon Sep 17 00:00:00 2001 +From: Gabriel Fontes +Date: Tue, 7 Apr 2026 15:21:18 -0300 +Subject: [PATCH] fix support for fish 4.3 + +--- + functions/fish_helix_key_bindings.fish | 123 +++++++++++-------------- + 1 file changed, 54 insertions(+), 69 deletions(-) + +diff --git a/functions/fish_helix_key_bindings.fish b/functions/fish_helix_key_bindings.fish +index c6aa397..ec98d9b 100644 +--- a/functions/fish_helix_key_bindings.fish ++++ b/functions/fish_helix_key_bindings.fish +@@ -58,8 +58,7 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish + __fish_shared_key_bindings -s -M $mode + end + +- bind -s --preset -M insert \r execute +- bind -s --preset -M insert \n execute ++ bind -s --preset -M insert enter execute + + bind -s --preset -M insert "" self-insert + +@@ -74,13 +73,12 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish + # Closing a command substitution expands abbreviations + bind -s --preset -M insert ")" self-insert expand-abbr + # Ctrl-space inserts space without expanding abbrs +- bind -s --preset -M insert -k nul 'commandline -i " "' ++ bind -s --preset -M insert ctrl-space 'commandline -i " "' + + # Switching to insert mode + for mode in default visual +- bind -s --preset -M $mode -m insert \cc end-selection cancel-commandline repaint-mode +- bind -s --preset -M $mode -m insert \n end-selection execute +- bind -s --preset -M $mode -m insert \r end-selection execute ++ bind -s --preset -M $mode -m insert ctrl-c end-selection cancel-commandline repaint-mode ++ bind -s --preset -M $mode -m insert enter end-selection execute + bind -s --preset -M $mode -m insert o end-selection insert-line-under repaint-mode + bind -s --preset -M $mode -m insert O end-selection insert-line-over repaint-mode + # FIXME i/a should keep selection, maybe +@@ -93,24 +91,23 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish + # Switching from insert mode + # Note if we are paging, we want to stay in insert mode + # See #2871 +- bind -s --preset -M insert \e "if commandline -P; commandline -f cancel; else; set fish_bind_mode default; commandline -f begin-selection repaint-mode; end" ++ bind -s --preset -M insert escape "if commandline -P; commandline -f cancel; else; set fish_bind_mode default; commandline -f begin-selection repaint-mode; end" + + # Switching between normal and visual mode + bind -s --preset -M default -m visual v repaint-mode +- for key in v \e ++ for key in v escape + bind -s --preset -M visual -m default $key repaint-mode + end + +- + # Motion and actions in normal/select mode + for mode in default visual + if test $mode = default +- set -f n_begin_selection "begin-selection" # only begin-selection if current mode is Normal +- set -f ns_move_extend "move" ++ set -f n_begin_selection begin-selection # only begin-selection if current mode is Normal ++ set -f ns_move_extend move + set -f commandline_v_repaint "" + else + set -f n_begin_selection +- set -f ns_move_extend "extend" ++ set -f ns_move_extend extend + set -f commandline_v_repaint "commandline -f repaint-mode" + end + +@@ -119,16 +116,16 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish + # FIXME example to bind 0 + # FIXME backspace to edit count + end +- for key in h \e\[D \eOD "-k left" ++ for key in h left + bind -s --preset -M $mode $key "fish_helix_command "$ns_move_extend"_char_left" + end +- for key in l \e\[C \eOC "-k right" ++ for key in l right + bind -s --preset -M $mode $key "fish_helix_command "$ns_move_extend"_char_right" + end +- for key in k \e\[A \eOA "-k up" ++ for key in k up + bind -s --preset -M $mode $key "fish_helix_command char_up" + end +- for key in j \e\[B \eOB "-k down" ++ for key in j down + bind -s --preset -M $mode $key "fish_helix_command char_down" + end + +@@ -144,32 +141,30 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish + bind -s --preset -M $mode T "fish_helix_command till_prev_char" + bind -s --preset -M $mode F "fish_helix_command find_prev_char" + +- bind -s --preset -M $mode t\e "" +- bind -s --preset -M $mode f\e "" +- bind -s --preset -M $mode T\e "" +- bind -s --preset -M $mode F\e "" ++ bind -s --preset -M $mode t,escape "" ++ bind -s --preset -M $mode f,escape "" ++ bind -s --preset -M $mode T,escape "" ++ bind -s --preset -M $mode F,escape "" + +- for enter in \r \n +- bind -s --preset -M $mode t$enter "fish_helix_command till_next_cr" +- bind -s --preset -M $mode f$enter "fish_helix_command find_next_cr" +- bind -s --preset -M $mode T$enter "fish_helix_command till_prev_cr" +- bind -s --preset -M $mode F$enter "fish_helix_command find_prev_cr" +- end ++ bind -s --preset -M $mode t,enter "fish_helix_command till_next_cr" ++ bind -s --preset -M $mode f,enter "fish_helix_command find_next_cr" ++ bind -s --preset -M $mode T,enter "fish_helix_command till_prev_cr" ++ bind -s --preset -M $mode F,enter "fish_helix_command find_prev_cr" + +- for key in gh \e\[H \eOH "-k home" ++ for key in g,h home + bind -s --preset -M $mode $key "fish_helix_command goto_line_start" + end +- for key in gl \e\[F \eOF "-k end" ++ for key in g,l end + bind -s --preset -M $mode $key "fish_helix_command goto_line_end" + end +- bind -s --preset -M $mode gs "fish_helix_command goto_first_nonwhitespace" +- bind -s --preset -M $mode gg "fish_helix_command goto_file_start" ++ bind -s --preset -M $mode g,s "fish_helix_command goto_first_nonwhitespace" ++ bind -s --preset -M $mode g,g "fish_helix_command goto_file_start" + bind -s --preset -M $mode G "fish_helix_command goto_line" +- bind -s --preset -M $mode ge "fish_helix_command goto_last_line" ++ bind -s --preset -M $mode g,e "fish_helix_command goto_last_line" + + # FIXME alt-. doesn't work with t/T + # FIXME alt-. doesn't work with [ftFT][\n\r] +- bind -s --preset -M $mode \e. repeat-jump ++ bind -s --preset -M $mode escape,. repeat-jump + + # FIXME reselect after undo/redo + bind -s --preset -M $mode u undo begin-selection +@@ -183,22 +178,22 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish + # bind -s --preset -M $mode R kill-selection begin-selection yank-pop yank + + bind -s --preset -M $mode -m default d "fish_helix_command delete_selection; $commandline_v_repaint" +- bind -s --preset -M $mode -m default \ed "fish_helix_command delete_selection_noyank; $commandline_v_repaint" ++ bind -s --preset -M $mode -m default escape,d "fish_helix_command delete_selection_noyank; $commandline_v_repaint" + bind -s --preset -M $mode -m insert c "fish_helix_command delete_selection; commandline -f end-selection repaint-mode" +- bind -s --preset -M $mode -m insert \ec "fish_helix_command delete_selection_noyank; commandline -f end-selection repaint-mode" ++ bind -s --preset -M $mode -m insert escape,c "fish_helix_command delete_selection_noyank; commandline -f end-selection repaint-mode" + + bind -s --preset -M $mode -m default y "fish_helix_command yank" + bind -s --preset -M $mode p "fish_helix_command paste_after" + bind -s --preset -M $mode P "fish_helix_command paste_before" + bind -s --preset -M $mode R "fish_helix_command replace_selection" + +- bind -s --preset -M $mode -m default " y" "fish_clipboard_copy; $commandline_v_repaint" +- bind -s --preset -M $mode " p" "fish_helix_command paste_after_clip" +- bind -s --preset -M $mode " P" "fish_helix_command paste_before_clip" +- bind -s --preset -M $mode " R" "fish_helix_command replace_selection_clip" ++ bind -s --preset -M $mode -m default space,y "fish_clipboard_copy; $commandline_v_repaint" ++ bind -s --preset -M $mode space,p "fish_helix_command paste_after_clip" ++ bind -s --preset -M $mode space,P "fish_helix_command paste_before_clip" ++ bind -s --preset -M $mode space,R "fish_helix_command replace_selection_clip" + + # FIXME keep selection +- bind -s --preset -M $mode ~ togglecase-selection ++ bind -s --preset -M $mode "~" togglecase-selection + # FIXME ` and \e` + + # FIXME . +@@ -215,7 +210,7 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish + # FIXME & _ + + bind -s --preset -M $mode \; begin-selection +- bind -s --preset -M $mode \e\; swap-selection-start-stop ++ bind -s --preset -M $mode escape,\; swap-selection-start-stop + # FIXME \e: + + bind -s --preset -M $mode % "fish_helix_command select_all" +@@ -235,9 +230,8 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish + # FIXME should replace the whole selection + # FIXME should be able to go back to visual mode + bind -s --preset -M replace_one -m default '' delete-char self-insert backward-char repaint-mode +- bind -s --preset -M replace_one -m default \r 'commandline -f delete-char; commandline -i \n; commandline -f backward-char; commandline -f repaint-mode' +- bind -s --preset -M replace_one -m default \e cancel repaint-mode +- ++ bind -s --preset -M replace_one -m default enter 'commandline -f delete-char; commandline -i \n; commandline -f backward-char; commandline -f repaint-mode' ++ bind -s --preset -M replace_one -m default escape cancel repaint-mode + + ## FIXME Insert mode keys + +@@ -246,49 +240,40 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish + # Vi moves the cursor back if, after deleting, it is at EOL. + # To emulate that, move forward, then backward, which will be a NOP + # if there is something to move forward to. +- bind -s --preset -M insert -k dc delete-char forward-single-char backward-char +- bind -s --preset -M default -k dc delete-char forward-single-char backward-char ++ bind -s --preset -M insert delete delete-char forward-single-char backward-char ++ bind -s --preset -M default delete delete-char forward-single-char backward-char + + # Backspace deletes a char in insert mode, but not in normal/default mode. +- bind -s --preset -M insert -k backspace backward-delete-char +- bind -s --preset -M default -k backspace backward-char +- bind -s --preset -M insert \ch backward-delete-char +- bind -s --preset -M default \ch backward-char +- bind -s --preset -M insert \x7f backward-delete-char +- bind -s --preset -M default \x7f backward-char +- bind -s --preset -M insert -k sdc backward-delete-char # shifted delete +- bind -s --preset -M default -k sdc backward-delete-char # shifted delete +- +- +-# bind -s --preset '~' togglecase-char forward-single-char +-# bind -s --preset gu downcase-word +-# bind -s --preset gU upcase-word +-# +-# bind -s --preset J end-of-line delete-char +-# bind -s --preset K 'man (commandline -t) 2>/dev/null; or echo -n \a' +-# +- ++ bind -s --preset -M insert backspace backward-delete-char ++ bind -s --preset -M default backspace backward-char ++ bind -s --preset -M insert ctrl-h backward-delete-char ++ bind -s --preset -M default ctrl-h backward-char ++ bind -s --preset -M insert delete delete-char ++ bind -s --preset -M default delete delete-char ++ # bind -s --preset -M insert shift-delete backward-delete-char # shifted delete ++ # bind -s --preset -M default shift-delete backward-delete-char # shifted delete + ++ # bind -s --preset '~' togglecase-char forward-single-char ++ # bind -s --preset gu downcase-word ++ # bind -s --preset gU upcase-word ++ # ++ # bind -s --preset J end-of-line delete-char ++ # bind -s --preset K 'man (commandline -t) 2>/dev/null; or echo -n \a' ++ # + + # same vim 'pasting' note as upper + bind -s --preset '"*p' forward-char "commandline -i ( xsel -p; echo )[1]" + bind -s --preset '"*P' "commandline -i ( xsel -p; echo )[1]" + +- +- + # + # visual mode + # + +- +- + # bind -s --preset -M visual -m insert c kill-selection end-selection repaint-mode + # bind -s --preset -M visual -m insert s kill-selection end-selection repaint-mode + bind -s --preset -M visual -m default '"*y' "fish_clipboard_copy; commandline -f end-selection repaint-mode" + bind -s --preset -M visual -m default '~' togglecase-selection end-selection repaint-mode + +- +- + # Set the cursor shape + # After executing once, this will have defined functions listening for the variable. + # Therefore it needs to be before setting fish_bind_mode. +-- +2.52.0 + diff --git a/pkgs/hyprbars/default.nix b/pkgs/hyprbars/default.nix index 06564341..bfc3e20e 100644 --- a/pkgs/hyprbars/default.nix +++ b/pkgs/hyprbars/default.nix @@ -1,13 +1,13 @@ {lib, pkg-config, hyprland, cmake, fetchFromGitHub, gnused}: hyprland.stdenv.mkDerivation (final: { pname = "hyprbars"; - version = "0.52.1"; + version = "0.53.3"; src = "${fetchFromGitHub { owner = "hyprwm"; repo = "hyprland-plugins"; - rev = "8c1212e96b81aa5f11fe21ca27defa2aad5b3cf3"; - hash = "sha256-Q5sI25sJRszoPxYv0dhJFip/Wq3wUppwJj8go+oTwu8="; + rev = "64b7c2dff7e5e1fcb4cb7e5db078947744070e1a"; + hash = "sha256-1WYjD66gyjj7PVOe7xbho6030FdrIUjh/XpAtp5+ASo="; }}/hyprbars"; buildInputs = [hyprland] ++ hyprland.buildInputs; nativeBuildInputs = [pkg-config cmake];