From 0efb55f23f9085f0c005062dd91f319f6d8f1e99 Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Thu, 18 Jun 2026 20:28:53 -0700 Subject: [PATCH] Enable hyprtasking workspace overview --- dotfiles/config/hypr/hyprland/binds.lua | 27 +++++++++++----------- dotfiles/config/hypr/hyprland/settings.lua | 1 + dotfiles/config/hypr/hyprland/state.lua | 2 +- nixos/flake.lock | 6 ++--- nixos/flake/hyprland-stuff.nix | 7 ++++-- nixos/hyprland.nix | 7 ++++-- 6 files changed, 29 insertions(+), 21 deletions(-) diff --git a/dotfiles/config/hypr/hyprland/binds.lua b/dotfiles/config/hypr/hyprland/binds.lua index 1ec2fbf3..f390a8e1 100644 --- a/dotfiles/config/hypr/hyprland/binds.lua +++ b/dotfiles/config/hypr/hyprland/binds.lua @@ -88,17 +88,7 @@ function M.setup(ctx) end local function setup_window_overview_bindings() - bind(main_mod .. " + SHIFT + C", hl.dsp.window.close(), desc("Close active window")) - bind(main_mod .. " + SHIFT + Q", hl.dsp.exit(), desc("Exit Hyprland")) - bind(main_mod .. " + Tab", hyprexpo("toggle"), desc("Toggle hyprexpo workspace overview", overview_bind_opts)) - bind(main_mod .. " + SHIFT + Tab", hyprwinview({ - action = "show", - include_current_workspace = false, - start_in_filter_mode = true, - default_action = "bring", - }), desc("Show all-workspace window overview", overview_bind_opts)) - bind(main_mod .. " + SHIFT + slash", hyprwinview({ action = "toggle-filter" }), desc("Toggle window overview filter", overview_bind_opts)) - bind("ALT + Tab", function() + local function toggle_hyprtasking() if hl.plugin and hl.plugin.hyprtasking and hl.plugin.hyprtasking.toggle then hl.plugin.hyprtasking.toggle("cursor") else @@ -110,8 +100,19 @@ function M.setup(ctx) font_size = 13, }) end - end, desc("Toggle hyprtasking workspace overview", overview_bind_opts)) - bind("ALT + SHIFT + Tab", hyprexpo("on"), desc("Open hyprexpo workspace overview", overview_bind_opts)) + end + + bind(main_mod .. " + SHIFT + C", hl.dsp.window.close(), desc("Close active window")) + bind(main_mod .. " + SHIFT + Q", hl.dsp.exit(), desc("Exit Hyprland")) + bind(main_mod .. " + Tab", toggle_hyprtasking, desc("Toggle hyprtasking workspace overview", overview_bind_opts)) + bind(main_mod .. " + SHIFT + Tab", hyprwinview({ + action = "show", + include_current_workspace = false, + start_in_filter_mode = true, + default_action = "bring", + }), desc("Show all-workspace window overview", overview_bind_opts)) + bind(main_mod .. " + SHIFT + slash", hyprwinview({ action = "toggle-filter" }), desc("Toggle window overview filter", overview_bind_opts)) + bind("ALT + Tab", toggle_hyprtasking, desc("Toggle hyprtasking workspace overview", overview_bind_opts)) bind(main_mod .. " + G", hyprwinview({ action = "show", start_in_filter_mode = true, diff --git a/dotfiles/config/hypr/hyprland/settings.lua b/dotfiles/config/hypr/hyprland/settings.lua index 94afe2d3..bd49a55d 100644 --- a/dotfiles/config/hypr/hyprland/settings.lua +++ b/dotfiles/config/hypr/hyprland/settings.lua @@ -89,6 +89,7 @@ function M.setup(ctx) end if enable_hyprtasking and not verify_config then hl.plugin.load("/run/current-system/sw/lib/libhyprtasking.so") + os.execute("hyprctl eval 'hl.config({plugin={hyprtasking={full_render=true}}})' >/dev/null 2>&1 || true") end if enable_hyprexpo and not enable_hyprtasking and not verify_config then hl.plugin.load("/run/current-system/sw/lib/libhyprexpo.so") diff --git a/dotfiles/config/hypr/hyprland/state.lua b/dotfiles/config/hypr/hyprland/state.lua index 52a32111..7cfd6b82 100644 --- a/dotfiles/config/hypr/hyprland/state.lua +++ b/dotfiles/config/hypr/hyprland/state.lua @@ -65,7 +65,7 @@ return { -- hook fires on every popup commit). Re-enable once fixed upstream. enable_hyprexpo = false, enable_hyprwinview = true, - enable_hyprtasking = false, + enable_hyprtasking = true, enable_workspace_history = true, enable_hyprwobbly = true, enable_dynamic_cursors = true, diff --git a/nixos/flake.lock b/nixos/flake.lock index 8fb446d7..749f6b7f 100644 --- a/nixos/flake.lock +++ b/nixos/flake.lock @@ -1149,11 +1149,11 @@ ] }, "locked": { - "lastModified": 1781106993, - "narHash": "sha256-BddvyVeSgLZU34hzI4yaXYILmfQN9n7oQJk4RbSaZM4=", + "lastModified": 1781534922, + "narHash": "sha256-jmzKIyRmpZLpxnR7DsWZ42bMzt+WeYDk+/x3FKSkovM=", "owner": "yerlotic", "repo": "hyprtasking", - "rev": "3b3cb9d0b2fd4f6f4227b5b9539e849a37a17ddd", + "rev": "1a82ca1ac79602e3bfd5ecb0a52c40c2bf818586", "type": "github" }, "original": { diff --git a/nixos/flake/hyprland-stuff.nix b/nixos/flake/hyprland-stuff.nix index 434744fb..7456280d 100644 --- a/nixos/flake/hyprland-stuff.nix +++ b/nixos/flake/hyprland-stuff.nix @@ -198,6 +198,10 @@ src = inputs.hyprtasking; strictDeps = true; + postPatch = '' + substituteInPlace src/layout/layout_base.cpp \ + --replace-fail 'e.element->passName()' 'e->element->passName()' + ''; nativeBuildInputs = [ pkgs.pkg-config @@ -287,10 +291,9 @@ hyprlandPluginPackages = [ hyprNStack - hyprexpo hyprwinview hyprWorkspaceHistory - # hyprtasking # disabled: build failure against current Hyprland API + hyprtasking hyprDynamicCursors hyprwobbly ] diff --git a/nixos/hyprland.nix b/nixos/hyprland.nix index 709802be..535f7826 100644 --- a/nixos/hyprland.nix +++ b/nixos/hyprland.nix @@ -204,6 +204,10 @@ src = inputs.hyprtasking; strictDeps = true; + postPatch = '' + substituteInPlace src/layout/layout_base.cpp \ + --replace-fail 'e.element->passName()' 'e->element->passName()' + ''; nativeBuildInputs = [ pkgs.pkg-config pkgs.meson @@ -291,10 +295,9 @@ hyprlandPluginPackages = [ hyprNStack - hyprexpo hyprwinview hyprWorkspaceHistory - # hyprtasking # disabled: build failure against current Hyprland API + hyprtasking hyprDynamicCursors hyprwobbly ]