Make Hyprland tile binding contextual

This commit is contained in:
2026-06-03 12:22:33 -07:00
parent aee236e532
commit c368f98e9f
2 changed files with 17 additions and 2 deletions

View File

@@ -241,8 +241,7 @@ function M.setup(ctx)
bind(main_mod .. " + bracketleft", monocle_prev, desc("Focus previous monocle window"))
bind(main_mod .. " + F", toggle_active_window_real_fullscreen, desc("Toggle active window real fullscreen"))
bind(main_mod .. " + SHIFT + F", toggle_active_window_gaming_mode, desc("Toggle active window gaming fullscreen"))
bind(main_mod .. " + T", hl.dsp.window.float({ action = "disable" }), desc("Tile active window"))
bind(main_mod .. " + SHIFT + T", float_active_window_to_default_scratchpad_geometry, desc("Float active window to scratchpad size"))
bind(main_mod .. " + T", tile_or_float_active_window, desc("Tile or float active window"))
bind(main_mod .. " + O", toggle_pinned_active_window, desc("Toggle pinned active window"))
bind(main_mod .. " + M", minimize_active_window, desc("Minimize active window"))
bind(main_mod .. " + SHIFT + M", restore_last_minimized, desc("Restore last minimized window"))

View File

@@ -145,6 +145,21 @@ function M.setup(ctx)
dispatch(hl.dsp.window.move({ x = geometry.x, y = geometry.y, relative = false, window = selector }))
end
local function tile_or_float_active_window()
local window = hl.get_active_window()
local selector = window_selector(window)
if not selector then
return
end
if window.floating then
dispatch(hl.dsp.window.float({ action = "disable", window = selector }))
return
end
float_active_window_to_default_scratchpad_geometry()
end
local function toggle_pinned_active_window()
local window = hl.get_active_window()
local selector = window_selector(window)
@@ -607,6 +622,7 @@ function M.setup(ctx)
ctx.float_and_drag_active_window = float_and_drag_active_window
ctx.float_and_resize_active_window = float_and_resize_active_window
ctx.float_active_window_to_default_scratchpad_geometry = float_active_window_to_default_scratchpad_geometry
ctx.tile_or_float_active_window = tile_or_float_active_window
ctx.toggle_pinned_active_window = toggle_pinned_active_window
ctx.current_minimized_windows = current_minimized_windows
ctx.restore_minimized_window = restore_minimized_window