first pass of hyprland config
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
local dotwryn = ... -- ../config.lua
|
||||
---------------------------------------------------------------------
|
||||
--
|
||||
-- workspace navigation with per-switch slide direction
|
||||
--
|
||||
|
||||
local VERTICAL_WORKSPACES = {} -- by target ("100", "name:🎧") and display name ("🎮", "🎧")
|
||||
for _, workspace in ipairs(dotwryn.workspaces) do
|
||||
if workspace.vertical then
|
||||
VERTICAL_WORKSPACES[workspace.name] = true
|
||||
VERTICAL_WORKSPACES[workspace.label or (workspace.name:gsub("^name:", ""))] = true
|
||||
end
|
||||
end
|
||||
|
||||
function animate_workspace_focus(name)
|
||||
local active = hl.get_active_workspace()
|
||||
local vertical = VERTICAL_WORKSPACES[name]
|
||||
or (active ~= nil and VERTICAL_WORKSPACES[active.name])
|
||||
|
||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 3, bezier = "easeOutQuint", style = vertical and "slidevert" or "slide" })
|
||||
hl.dispatch(hl.dsp.focus({ workspace = name }))
|
||||
end
|
||||
|
||||
for _, workspace in ipairs(dotwryn.workspaces) do
|
||||
if workspace.name ~= "2" then -- (special case below)
|
||||
hl.bind("SUPER + " .. workspace.key, function() animate_workspace_focus(workspace.name) end)
|
||||
end
|
||||
end
|
||||
|
||||
-- workspace 2 is home to the 'omni' tmux session; open a terminal if nothing is attached
|
||||
hl.bind("SUPER + 2", function()
|
||||
animate_workspace_focus("2")
|
||||
hl.dispatch(hl.dsp.exec_cmd("[[ $(tmux -L omni.socket list-clients 2>/dev/null | wc -l) -eq 0 ]] && $TERMINAL"))
|
||||
end)
|
||||
Reference in New Issue
Block a user