chore(hyprland): update syntax to lua
Committing as is because otherwise I will never move on
This commit is contained in:
parent
e158449bf3
commit
bdfa3988f9
20 changed files with 1169 additions and 809 deletions
229
stow/hyprland/.config/hypr/keybinds.lua
Normal file
229
stow/hyprland/.config/hypr/keybinds.lua
Normal file
|
|
@ -0,0 +1,229 @@
|
|||
local v = require("variables")
|
||||
|
||||
local notify = "${SCRIPT_DIR}/notify.sh"
|
||||
|
||||
-- Navigation
|
||||
|
||||
-- Focus
|
||||
hl.bind("SUPER + " .. v.up, hl.dsp.focus({ direction = "u" }))
|
||||
hl.bind("SUPER + " .. v.right, hl.dsp.focus({ direction = "r" }))
|
||||
hl.bind("SUPER + " .. v.down, hl.dsp.focus({ direction = "d" }))
|
||||
hl.bind("SUPER + " .. v.left, hl.dsp.focus({ direction = "l" }))
|
||||
|
||||
hl.bind("SUPER + Up", hl.dsp.focus({ direction = "u" }))
|
||||
hl.bind("SUPER + Right", hl.dsp.focus({ direction = "r" }))
|
||||
hl.bind("SUPER + Down", hl.dsp.focus({ direction = "d" }))
|
||||
hl.bind("SUPER + Left", hl.dsp.focus({ direction = "l" }))
|
||||
|
||||
-- Move windows
|
||||
hl.bind("SUPER + SHIFT + " .. v.up, hl.dsp.window.move({ direction = "u" }))
|
||||
hl.bind("SUPER + SHIFT + " .. v.right, hl.dsp.window.move({ direction = "r" }))
|
||||
hl.bind("SUPER + SHIFT + " .. v.down, hl.dsp.window.move({ direction = "d" }))
|
||||
hl.bind("SUPER + SHIFT + " .. v.left, hl.dsp.window.move({ direction = "l" }))
|
||||
|
||||
hl.bind("SUPER + SHIFT + Up", hl.dsp.window.move({ direction = "u" }))
|
||||
hl.bind("SUPER + SHIFT + Right", hl.dsp.window.move({ direction = "r" }))
|
||||
hl.bind("SUPER + SHIFT + Down", hl.dsp.window.move({ direction = "d" }))
|
||||
hl.bind("SUPER + SHIFT + Left", hl.dsp.window.move({ direction = "l" }))
|
||||
|
||||
-- Minimizing
|
||||
-- https://wiki.hypr.land/Configuring/Advanced-and-Cool/Uncommon-tips-and-tricks/#minimize-windows-using-special-workspaces
|
||||
|
||||
local scratchpad = "scratchpad"
|
||||
|
||||
hl.bind("SUPER + End", hl.dsp.window.move({ workspace = "special:" .. scratchpad, follow = false }))
|
||||
hl.bind("SUPER + KP_End", hl.dsp.window.move({ workspace = "special:" .. scratchpad, follow = false }))
|
||||
|
||||
hl.bind("SUPER + SHIFT + End", hl.dsp.window.move({ workspace = "+0", follow = true }))
|
||||
hl.bind("SUPER + SHIFT + KP_End", hl.dsp.window.move({ workspace = "+0", follow = true }))
|
||||
|
||||
hl.bind("SUPER + Home", hl.dsp.workspace.toggle_special(scratchpad))
|
||||
hl.bind("SUPER + KP_Home", hl.dsp.workspace.toggle_special(scratchpad))
|
||||
|
||||
-- Layouts
|
||||
|
||||
hl.bind("SUPER + F", hl.dsp.window.float({ "toggle" }))
|
||||
hl.bind("SUPER + SHIFT + F", hl.dsp.window.float({ "enable" }))
|
||||
|
||||
hl.bind("SUPER + S", function()
|
||||
hl.dsp.window.pin({ "enable" })
|
||||
hl.dsp.window.float({ "enable" })
|
||||
end)
|
||||
hl.bind("SUPER + SHIFT + S", function()
|
||||
hl.dsp.window.pin({ "disable" })
|
||||
hl.dsp.window.float({ "disable" })
|
||||
end)
|
||||
|
||||
hl.bind("SUPER + F11", hl.dsp.window.fullscreen({ "maximized", "toggle" }))
|
||||
hl.bind("SUPER + SHIFT + F11", hl.dsp.window.fullscreen({ "fullscreen", "toggle" }))
|
||||
|
||||
hl.bind("SUPER + " .. v.LMB, hl.dsp.window.float(), { mouse = true, click = true })
|
||||
hl.bind("SUPER + " .. v.LMB, hl.dsp.window.drag(), { mouse = true, drag = true })
|
||||
hl.bind("SUPER + " .. v.RMB, hl.dsp.window.resize(), { mouse = true, drag = true })
|
||||
|
||||
hl.gesture({ fingers = 4, direction = "swipe", action = "resize", mod = "SUPER" })
|
||||
|
||||
-- Switch between layouts
|
||||
hl.bind("SUPER + b", function ()
|
||||
local layouts = { "scrolling", "dwindle", "master", "monocle" }
|
||||
local workspace = hl.get_active_workspace()
|
||||
local next_layout = "dwindle"
|
||||
|
||||
if not workspace then
|
||||
return
|
||||
end
|
||||
|
||||
for i = 1, #layouts do
|
||||
if layouts[i] == workspace.tiled_layout then
|
||||
local next_layout_idx = (i % #layouts) + 1
|
||||
next_layout = layouts[next_layout_idx]
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
hl.workspace_rule({
|
||||
workspace = workspace.name,
|
||||
layout = next_layout
|
||||
})
|
||||
end)
|
||||
|
||||
-- Workspaces
|
||||
|
||||
for i = 1, #v.ws.ids do
|
||||
-- Focus a specific workspace
|
||||
hl.bind("SUPER + " .. v.ws.keys[i], hl.dsp.focus({ workspace = v.ws.ids[i] }))
|
||||
-- Move window to a specific workspace
|
||||
hl.bind("SUPER + SHIFT + " .. v.ws.keys[i], hl.dsp.window.move({ workspace = v.ws.ids[i], switch = true }))
|
||||
end
|
||||
|
||||
-- Go through workspaces in order
|
||||
hl.bind("SUPER + CONTROL + " .. v.left, hl.dsp.focus({ workspace = "e-1" }))
|
||||
hl.bind("SUPER + CONTROL + " .. v.right, hl.dsp.focus({ workspace = "e+1" }))
|
||||
|
||||
hl.bind("SUPER + CONTROL + Left", hl.dsp.focus({ workspace = "e-1" }))
|
||||
hl.bind("SUPER + CONTROL + Right", hl.dsp.focus({ workspace = "e+1" }))
|
||||
|
||||
hl.bind("SUPER + CONTROL + SHIFT + " .. v.left, hl.dsp.window.move({ workspace = "e-1", switch = true }))
|
||||
hl.bind("SUPER + CONTROL + SHIFT + " .. v.right, hl.dsp.window.move({ workspace = "e+1", switch = true }))
|
||||
|
||||
hl.bind("SUPER + CONTROL + SHIFT + Left", hl.dsp.window.move({ workspace = "e-1", switch = true }))
|
||||
hl.bind("SUPER + CONTROL + SHIFT + Right", hl.dsp.window.move({ workspace = "e+1", switch = true }))
|
||||
|
||||
-- Move workspace to the next monitor
|
||||
hl.bind("SUPER + CONTROL + SHIFT + " .. v.up, hl.dsp.workspace.move({ workspace="+0", monitor = "-1" }))
|
||||
hl.bind("SUPER + CONTROL + SHIFT + " .. v.down, hl.dsp.workspace.move({ workspace="+0", monitor = "+1" }))
|
||||
|
||||
hl.bind("SUPER + CONTROL + SHIFT + Up", hl.dsp.workspace.move({ monitor = "-1" }))
|
||||
hl.bind("SUPER + CONTROL + SHIFT + Down", hl.dsp.workspace.move({ monitor = "+1" }))
|
||||
|
||||
-- GNOME-like keybinds
|
||||
hl.bind("SUPER + ALT + " .. v.left, hl.dsp.focus({ workspace = "e-1" }))
|
||||
hl.bind("SUPER + ALT + " .. v.right, hl.dsp.focus({ workspace = "e+1" }))
|
||||
|
||||
hl.bind("SUPER + ALT + Left", hl.dsp.focus({ workspace = "e-1" }))
|
||||
hl.bind("SUPER + ALT + Right", hl.dsp.focus({ workspace = "e+1" }))
|
||||
|
||||
hl.bind("SUPER + ALT + SHIFT + " .. v.left, hl.dsp.window.move({ workspace = "e-1", switch = true }))
|
||||
hl.bind("SUPER + ALT + SHIFT + " .. v.right, hl.dsp.window.move({ workspace = "e+1", switch = true }))
|
||||
|
||||
hl.bind("SUPER + ALT + SHIFT + Left", hl.dsp.window.move({ workspace = "e-1", switch = true }))
|
||||
hl.bind("SUPER + ALT + SHIFT + Right", hl.dsp.window.move({ workspace = "e+1", switch = true }))
|
||||
|
||||
hl.gesture({ fingers = 3, direction = "horizontal", action = "workspace" })
|
||||
|
||||
-- System
|
||||
|
||||
-- Brightness
|
||||
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl -e s 5%- && " .. notify .. " -b"),
|
||||
{ locked = true, repeating = true, submap_universal = true })
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e s +5% && " .. notify .. " -b"),
|
||||
{ locked = true, repeating = true, submap_universal = true })
|
||||
|
||||
-- Audio
|
||||
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 2%+ && " .. notify .. " -v"),
|
||||
{ locked = true, repeating = true, submap_universal = true })
|
||||
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 2%- && " .. notify .. " -v"),
|
||||
{ locked = true, repeating = true, submap_universal = true })
|
||||
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && " .. notify .. " -v"),
|
||||
{ locked = true, submap_universal = true })
|
||||
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle && " .. notify .. " -v"),
|
||||
{ submap_universal = true })
|
||||
|
||||
-- Media
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true, submap_universal = true })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true, submap_universal = true })
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true, submap_universal = true })
|
||||
|
||||
hl.bind("SHIFT + XF86AudioMute", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true, submap_universal = true })
|
||||
hl.bind("SHIFT + XF86AudioLowerVolume", hl.dsp.exec_cmd("playerctl previous"), { locked = true, submap_universal = true })
|
||||
hl.bind("SHIFT + XF86AudioRaiseVolume", hl.dsp.exec_cmd("playerctl next"), { locked = true, submap_universal = true })
|
||||
|
||||
-- Other special keys
|
||||
hl.bind("XF86Calculator", hl.dsp.exec_cmd("qalculate-gtk"))
|
||||
|
||||
-- Shortcuts
|
||||
|
||||
-- Reload
|
||||
hl.bind("ALT + SHIFT + R", hl.dsp.exec_cmd("hyprctl reload"))
|
||||
-- TODO hl.bind("Ctrl + Alt + Shift + R", forcerendererreload)
|
||||
hl.bind("ALT + SHIFT + E", hl.dsp.exit())
|
||||
|
||||
-- Kill a window
|
||||
hl.bind("SUPER + Q", hl.dsp.window.close())
|
||||
hl.bind("SUPER + SHIFT + Q", hl.dsp.window.kill())
|
||||
|
||||
-- Start a terminal
|
||||
hl.bind("SUPER + Return", hl.dsp.exec_cmd(v.term))
|
||||
hl.bind("CONTROL + ALT + T", hl.dsp.exec_cmd(v.term))
|
||||
|
||||
hl.bind("SUPER + SHIFT + Return", hl.dsp.exec_cmd(v.term .. " -e -- zellij a main"))
|
||||
hl.bind("CONTROL + ALT + SHIFT + T", hl.dsp.exec_cmd(v.term .. " -e -- zellij a main"))
|
||||
-- Application menu
|
||||
hl.bind("ALT + Space", hl.dsp.exec_cmd(v.menu))
|
||||
-- TODO hl.bind("Alt + Tab", focuscurrentorlast)
|
||||
-- TODO hl.bind("SUPER + Tab", hl.dsp.exec_cmd(v.windowmenu))
|
||||
|
||||
hl.gesture({ fingers = 3, direction = "up", action = function () hl.exec_cmd("pkill " .. v.menu .. " || " .. v.menu) end })
|
||||
hl.gesture({ fingers = 3, direction = "down", action = function () hl.exec_cmd("pkill " .. v.menu) end })
|
||||
|
||||
hl.bind("SUPER + E", hl.dsp.exec_cmd(v.term .. " -e vifm"))
|
||||
hl.bind("CONTROL + SHIFT + Escape", hl.dsp.exec_cmd(v.term .. " -e zenith"))
|
||||
|
||||
hl.bind("SUPER + mouse_down", hl.dsp.focus({ workspace = "e-1" }))
|
||||
hl.bind("SUPER + mouse_up", hl.dsp.focus({ workspace = "e+1" }))
|
||||
|
||||
hl.bind("SUPER + Delete", hl.dsp.exec_cmd(v.lock))
|
||||
|
||||
-- Glass magnifier zoom
|
||||
|
||||
local MAX_ZOOM = 3
|
||||
local MIN_ZOOM = 1
|
||||
local ZOOM_TOGGLE_FACTOR
|
||||
|
||||
--@param offset number
|
||||
--@return nil
|
||||
local function zoom(offset)
|
||||
local current = hl.get_config("cursor.zoom_factor")
|
||||
if offset ~= nil then
|
||||
current = current + offset
|
||||
elseif current ~= MIN_ZOOM then
|
||||
current = MIN_ZOOM
|
||||
else
|
||||
current = ZOOM_TOGGLE_FACTOR
|
||||
end
|
||||
current = math.max(MIN_ZOOM, math.min(MAX_ZOOM, current))
|
||||
hl.config({
|
||||
cursor = {
|
||||
zoom_factor = current
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
hl.bind("SUPER + SHIFT + Z", zoom)
|
||||
hl.bind("SUPER + SHIFT + Z + KP_Add", function()
|
||||
zoom(0.5)
|
||||
end)
|
||||
hl.bind("SUPER + SHIFT + Z + minus", function()
|
||||
zoom(-0.5)
|
||||
end)
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue