Move binds around and add multimonitor rules
This commit is contained in:
@@ -87,9 +87,10 @@ bind("SUPER + mouse:272", hl.dsp.window.drag(), ({mouse = true}))
|
|||||||
bind("SUPER + mouse:273", hl.dsp.window.resize(), ({mouse = true}))
|
bind("SUPER + mouse:273", hl.dsp.window.resize(), ({mouse = true}))
|
||||||
|
|
||||||
-- Window management
|
-- Window management
|
||||||
bind('SUPER + SEMICOLON', hl.dsp.window.fullscreen())
|
bind('SUPER + APOSTROPHE', hl.dsp.window.close())
|
||||||
bind('SUPER + Q', hl.dsp.window.close())
|
bind('SUPER + COMMA', hl.dsp.window.fullscreen())
|
||||||
bind('SUPER + J', function()
|
bind('SUPER + PERIOD', function()
|
||||||
|
-- Float window, resize to 90%, and center it
|
||||||
hl.dispatch(hl.dsp.window.float())
|
hl.dispatch(hl.dsp.window.float())
|
||||||
local monitor = hl.get_active_monitor()
|
local monitor = hl.get_active_monitor()
|
||||||
local window = hl.get_active_window()
|
local window = hl.get_active_window()
|
||||||
@@ -101,22 +102,23 @@ bind('SUPER + J', function()
|
|||||||
}))
|
}))
|
||||||
hl.dispatch(hl.dsp.window.center())
|
hl.dispatch(hl.dsp.window.center())
|
||||||
end)
|
end)
|
||||||
bind('SUPER + K', hl.dsp.layout('togglesplit'))
|
bind('SUPER + P', hl.dsp.layout('togglesplit'))
|
||||||
bind('SUPER + X', hl.dsp.layout('swapsplit'))
|
bind('SUPER + Y', hl.dsp.layout('swapsplit'))
|
||||||
|
|
||||||
-- Special workspace
|
-- Special workspace
|
||||||
bind("SUPER + APOSTROPHE", function ()
|
bind("SUPER + SEMICOLON", function ()
|
||||||
if hl.get_active_special_workspace() == nil then
|
if hl.get_active_special_workspace() == nil then
|
||||||
hl.dispatch(hl.dsp.window.move({workspace = "special"}))
|
hl.dispatch(hl.dsp.window.move({workspace = "special"}))
|
||||||
else
|
else
|
||||||
hl.dispatch(hl.dsp.window.move({workspace = hl.get_active_workspace()}))
|
hl.dispatch(hl.dsp.window.move({workspace = hl.get_active_workspace()}))
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
bind('SUPER + COMMA', hl.dsp.workspace.toggle_special())
|
bind('SUPER + Q', hl.dsp.workspace.toggle_special())
|
||||||
|
|
||||||
-- Multi monitor
|
-- Multi monitor
|
||||||
bind("SUPER + PERIOD", hl.dsp.focus({monitor = -1}))
|
bind("SUPER + J", hl.dsp.focus({monitor = -1}))
|
||||||
bind("SUPER + SHIFT + PERIOD", hl.dsp.window.move({monitor = -1}))
|
bind("SUPER + SHIFT + J", hl.dsp.window.move({monitor = -1}))
|
||||||
|
bind('SUPER + K', hl.dsp.workspace.move({monitor = -1}))
|
||||||
|
|
||||||
-- Screen locking
|
-- Screen locking
|
||||||
bind("SUPER + ESCAPE", hl.dsp.exec_cmd("~/.config/scripts/lock.sh"), {locked = true})
|
bind("SUPER + ESCAPE", hl.dsp.exec_cmd("~/.config/scripts/lock.sh"), {locked = true})
|
||||||
@@ -132,15 +134,14 @@ bind("SUPER + R", hl.dsp.exec_cmd("keepassxc"))
|
|||||||
bind("SUPER + L", hl.dsp.exec_cmd("kitty"))
|
bind("SUPER + L", hl.dsp.exec_cmd("kitty"))
|
||||||
|
|
||||||
-- Screen capturing
|
-- Screen capturing
|
||||||
local zoom = false
|
local zoom = 1
|
||||||
bind("SUPER + Z", function()
|
bind("SUPER + Z", function()
|
||||||
if zoom then
|
zoom = zoom + 1
|
||||||
hl.config({cursor = {zoom_factor = 1.0, invisible = false}})
|
hl.config({cursor = {zoom_factor = zoom, invisible = true}})
|
||||||
zoom = false
|
end)
|
||||||
else
|
bind ("SUPER + SHIFT + Z", function()
|
||||||
hl.config({cursor = {zoom_factor = 3.0, invisible = true}})
|
zoom = 1
|
||||||
zoom = true
|
hl.config({cursor = {zoom_factor = 1, invisible = false}})
|
||||||
end
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
bind('SUPER + V', hl.dsp.exec_cmd(
|
bind('SUPER + V', hl.dsp.exec_cmd(
|
||||||
@@ -191,3 +192,7 @@ bind("SUPER + SPACE", hl.dsp.global("quickshell:peek_bar"))
|
|||||||
bind("SUPER + SPACE", hl.dsp.global("quickshell:peek_bar"), {release = true})
|
bind("SUPER + SPACE", hl.dsp.global("quickshell:peek_bar"), {release = true})
|
||||||
bind("SUPER + SUPER_L", hl.dsp.exec_cmd("quickshell ipc call topbar toggle"), {device = {inclusive = false, list = {"zikway-hid-gamepad-keyboard"}}})
|
bind("SUPER + SUPER_L", hl.dsp.exec_cmd("quickshell ipc call topbar toggle"), {device = {inclusive = false, list = {"zikway-hid-gamepad-keyboard"}}})
|
||||||
bind("SUPER + SUPER_R", hl.dsp.workspace.toggle_special(), {device = {inclusive = true, list = {"zikway-hid-gamepad-keyboard"}}})
|
bind("SUPER + SUPER_R", hl.dsp.workspace.toggle_special(), {device = {inclusive = true, list = {"zikway-hid-gamepad-keyboard"}}})
|
||||||
|
|
||||||
|
-- Global back and forward binds
|
||||||
|
bind('ALT + SLASH', hl.dsp.send_shortcut({mods = 'ALT', key = 'LEFT'}))
|
||||||
|
bind('ALT + EQUAL', hl.dsp.send_shortcut({mods = 'ALT', key = 'RIGHT'}))
|
||||||
|
|||||||
@@ -4,6 +4,32 @@ hl.workspace_rule({ workspace = "f[1]s[false]", gaps_out = 0, gaps_in = 0 })
|
|||||||
hl.window_rule({ match = { float = false, workspace = "w[tv1]s[false]" }, border_size = 0 })
|
hl.window_rule({ match = { float = false, workspace = "w[tv1]s[false]" }, border_size = 0 })
|
||||||
hl.window_rule({ match = { float = false, workspace = "f[1]s[false]" }, border_size = 0 })
|
hl.window_rule({ match = { float = false, workspace = "f[1]s[false]" }, border_size = 0 })
|
||||||
|
|
||||||
|
-- For multiple monitors
|
||||||
|
function map_monitors()
|
||||||
|
local monitor_priority = {
|
||||||
|
["eDP-1"] = -1
|
||||||
|
}
|
||||||
|
local monitors = hl.get_monitors()
|
||||||
|
local nmonitors = #monitors
|
||||||
|
table.sort(monitors, function(a, b)
|
||||||
|
return (monitor_priority[a.name] or 0) > (monitor_priority[b.name] or 0)
|
||||||
|
end)
|
||||||
|
local workspace = 9
|
||||||
|
for i, monitor in ipairs(monitors) do
|
||||||
|
local lower_workspace = workspace + 1 - math.floor(9/nmonitors)
|
||||||
|
if i == nmonitors then
|
||||||
|
lower_workspace = 1
|
||||||
|
end
|
||||||
|
for j = workspace, lower_workspace, -1 do
|
||||||
|
hl.workspace_rule({workspace = tostring(j), monitor = monitor.name})
|
||||||
|
end
|
||||||
|
workspace = lower_workspace - 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
map_monitors()
|
||||||
|
hl.on('monitor.added', map_monitors)
|
||||||
|
hl.on('monitor.removed', map_monitors)
|
||||||
|
|
||||||
-- Special workspace
|
-- Special workspace
|
||||||
hl.workspace_rule({ workspace = "s[true]", gaps_out = 64, gaps_in = 12})
|
hl.workspace_rule({ workspace = "s[true]", gaps_out = 64, gaps_in = 12})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user