70 lines
3.5 KiB
Lua
70 lines
3.5 KiB
Lua
-- See https://wiki.hypr.land/Configuring/Basics/Binds/ for more
|
|
|
|
-- Sound through pactl
|
|
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("pactl set-sink-volume @DEFAULT_SINK@ +10%"))
|
|
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("pactl set-sink-volume @DEFAULT_SINK@ -10%"))
|
|
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("pactl set-sink-mute @DEFAULT_SINK@ toggle"))
|
|
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"))
|
|
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"))
|
|
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"))
|
|
|
|
-- Brightness through brightnessctl
|
|
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl set +5%"))
|
|
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl set 5%-"))
|
|
|
|
-- Main modifier binds
|
|
hl.bind(mainMod .. " + T", hl.dsp.exec_cmd(terminal))
|
|
hl.bind(mainMod .. " + B", hl.dsp.exec_cmd(browser))
|
|
hl.bind(mainMod .. " + F", hl.dsp.exec_cmd(fileManager))
|
|
hl.bind(mainMod .. " + C", hl.dsp.window.kill())
|
|
hl.bind(mainMod .. " + M", hl.dsp.exit())
|
|
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
|
|
hl.bind(mainMod .. " + space", hl.dsp.exec_cmd(menu))
|
|
hl.bind(SUPER_SHIFT .. " + L", hl.dsp.exec_cmd("hyprlock"))
|
|
hl.bind(SUPER_SHIFT .. " + R", hl.dsp.exec_cmd("hyprctl reload"))
|
|
hl.bind(SUPER_SHIFT .. " + D", hl.dsp.exec_cmd("hyprctl keyword monitor eDP-1, disable"))
|
|
hl.bind(SUPER_SHIFT .. " + F", hl.dsp.exec_cmd("hyprctl keyword monitor eDP-1, enable"))
|
|
|
|
-- Screenshots
|
|
hl.bind("Print", hl.dsp.exec_cmd("grim -c -o \"$(hyprctl activeworkspace -j | jq -r '.monitor')\" $(xdg-user-dir PICTURES)/Screenshots/$(date +'%s_grim.png')"))
|
|
hl.bind("SHIFT + Print", hl.dsp.exec_cmd("grim -g \"$(slurp)\" $(xdg-user-dir PICTURES)/Screenshots/$(date +'%s_grim.png')"))
|
|
|
|
-- Dwindle layout
|
|
hl.bind(mainMod .. " + P", hl.dsp.window.pseudo()) -- dwindle
|
|
hl.bind(mainMod .. " + E", hl.dsp.layout("togglesplit")) -- dwindle
|
|
hl.bind(mainMod .. " + CTRL + F", hl.dsp.window.fullscreen({ action = "toggle" })) -- dwindle
|
|
hl.bind(mainMod .. " + W", hl.dsp.group.toggle()) -- dwindle
|
|
|
|
-- Move focus with mainMod + vim keys
|
|
hl.bind(mainMod .. " + H", hl.dsp.focus({ direction = "l" }))
|
|
hl.bind(mainMod .. " + L", hl.dsp.focus({ direction = "r" }))
|
|
hl.bind(mainMod .. " + K", hl.dsp.focus({ direction = "u" }))
|
|
hl.bind(mainMod .. " + J", hl.dsp.focus({ direction = "d" }))
|
|
|
|
-- Switch workspaces with mainMod + [0-9]
|
|
for i = 1, 10 do
|
|
local key = i % 10 -- 10 maps to key 0
|
|
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i }))
|
|
end
|
|
|
|
-- Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
for i = 1, 10 do
|
|
local key = i % 10 -- 10 maps to key 0
|
|
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
|
|
end
|
|
|
|
-- Example special workspace (scratchpad)
|
|
hl.bind(mainMod .. " + S", hl.dsp.workspace.toggle_special("magic"))
|
|
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.window.move({ workspace = "special:magic" }))
|
|
|
|
-- Scroll through existing workspaces with mainMod + scroll
|
|
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
|
|
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
|
|
|
|
-- Move/resize windows with mainMod + LMB/RMB and dragging
|
|
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
|
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
|
|
|
-- Laptop lid is handled by hypr-lid.service (clamshell when docked, delayed
|
|
-- lock/suspend otherwise) instead of these binds; see .local/bin/hypr-lid.sh.
|