139 lines
7.0 KiB
Lua
139 lines
7.0 KiB
Lua
local mainMod = "SUPER"
|
|||
|
|
local noctCall = "noctalia msg "
|
||
|
|
local launchPrefix = "uwsm app -- " -- if you are not using UWSM, make this empty (e.g. "")
|
||
|
|
|
||
|
|
---------------------------
|
||
|
|
---- WINDOW MANAGEMENT ----
|
||
|
|
---------------------------
|
||
|
|
|
||
|
|
-- Window manipulation
|
||
|
|
hl.bind(mainMod .. " + Escape", hl.dsp.exec_cmd("hyprctl kill"))
|
||
|
|
hl.bind(mainMod .. " + Q", hl.dsp.window.close())
|
||
|
|
hl.bind(mainMod .. " + ALT + Space", hl.dsp.window.float({ action = "toggle" }))
|
||
|
|
hl.bind(mainMod .. " + D", hl.dsp.window.fullscreen({ mode = 1 }))
|
||
|
|
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen())
|
||
|
|
hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit"))
|
||
|
|
|
||
|
|
-- Change focus
|
||
|
|
hl.bind(mainMod .. " + Left", hl.dsp.focus({ direction = "left" }))
|
||
|
|
hl.bind(mainMod .. " + Right", hl.dsp.focus({ direction = "right" }))
|
||
|
|
hl.bind(mainMod .. " + Up", hl.dsp.focus({ direction = "up" }))
|
||
|
|
hl.bind(mainMod .. " + Down", hl.dsp.focus({ direction = "down" }))
|
||
|
|
hl.bind("ALT + Tab", hl.dsp.window.cycle_next())
|
||
|
|
hl.bind(mainMod .. " + Tab", hl.dsp.exec_cmd(noctCall .. "window-switcher"))
|
||
|
|
|
||
|
|
-- Move active window around workspaces & monitors
|
||
|
|
hl.bind(mainMod .. " + SHIFT + Up", hl.dsp.window.move({ direction = "u" }))
|
||
|
|
hl.bind(mainMod .. " + SHIFT + Right", hl.dsp.window.move({ direction = "r" }))
|
||
|
|
hl.bind(mainMod .. " + SHIFT + Left", hl.dsp.window.move({ direction = "l" }))
|
||
|
|
hl.bind(mainMod .. " + SHIFT + Down", hl.dsp.window.move({ direction = "d" }))
|
||
|
|
hl.bind(mainMod .. " + SHIFT + 1", hl.dsp.window.move({ monitor = MONITOR1 }))
|
||
|
|
hl.bind(mainMod .. " + SHIFT + 2", hl.dsp.window.move({ monitor = MONITOR2 }))
|
||
|
|
hl.bind(mainMod .. " + SHIFT + 3", hl.dsp.window.move({ monitor = MONITOR3 }))
|
||
|
|
hl.bind(mainMod .. " + SHIFT + mouse_up", hl.dsp.window.move({ monitor = "-1" }))
|
||
|
|
hl.bind(mainMod .. " + SHIFT + mouse_down", hl.dsp.window.move({ monitor = "+1" }))
|
||
|
|
hl.bind(mainMod .. " + CONTROL + SHIFT + Right", hl.dsp.window.move({ workspace = "m+1" }))
|
||
|
|
hl.bind(mainMod .. " + CONTROL + SHIFT + Left", hl.dsp.window.move({ workspace = "m-1" }))
|
||
|
|
hl.bind(mainMod .. " + CONTROL + SHIFT + mouse_up", hl.dsp.window.move({ workspace = "m-1" }))
|
||
|
|
hl.bind(mainMod .. " + CONTROL + SHIFT + mouse_down", hl.dsp.window.move({ workspace = "m+1" }))
|
||
|
|
for i = 1, NUM_WPM do
|
||
|
|
local key = i % 10
|
||
|
|
hl.bind(mainMod .. " + SHIFT + CONTROL + " .. key, hl.dsp.window.move({ workspace = "m~" .. i }))
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Move & Resize with mouse
|
||
|
|
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag())
|
||
|
|
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize())
|
||
|
|
|
||
|
|
------------------
|
||
|
|
---- LAUNCHER ----
|
||
|
|
------------------
|
||
|
|
|
||
|
|
hl.bind(mainMod .. " + Return", hl.dsp.exec_cmd(launchPrefix .. TERMINAL))
|
||
|
|
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(launchPrefix .. FILE_MANAGER))
|
||
|
|
hl.bind(mainMod .. " + T", hl.dsp.exec_cmd(launchPrefix .. EDITOR))
|
||
|
|
hl.bind(mainMod .. " + C", hl.dsp.exec_cmd(launchPrefix .. CALCULATOR))
|
||
|
|
hl.bind("XF86Calculator", hl.dsp.exec_cmd(launchPrefix .. CALCULATOR))
|
||
|
|
hl.bind(mainMod .. " + W", hl.dsp.exec_cmd(launchPrefix .. BROWSER))
|
||
|
|
hl.bind("CONTROL + SHIFT + Escape", hl.dsp.exec_cmd(launchPrefix .. TERMINAL .. " -e btop"))
|
||
|
|
hl.bind(mainMod .. " + Z", hl.dsp.exec_cmd(noctCall .. "settings-toggle"))
|
||
|
|
hl.bind(mainMod .. " + X", hl.dsp.exec_cmd(noctCall .. "panel-toggle control-center"))
|
||
|
|
hl.bind(mainMod .. " + Space", hl.dsp.exec_cmd(noctCall .. "panel-toggle launcher"))
|
||
|
|
hl.bind(mainMod .. " + period", hl.dsp.exec_cmd(noctCall .. "panel-toggle launcher /emo"))
|
||
|
|
hl.bind(mainMod .. " + L", hl.dsp.exec_cmd(noctCall .. "session lock"))
|
||
|
|
hl.bind(mainMod .. " + ALT + C", hl.dsp.exec_cmd(noctCall .. "panel-toggle session"))
|
||
|
|
|
||
|
|
---------------------------
|
||
|
|
---- HARDWARE CONTROLS ----
|
||
|
|
---------------------------
|
||
|
|
|
||
|
|
-- Audio
|
||
|
|
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd(noctCall .. "volume-up"), { locked = true, repeating = true })
|
||
|
|
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd(noctCall .. "volume-down"), { locked = true, repeating = true })
|
||
|
|
hl.bind("XF86AudioMute", hl.dsp.exec_cmd(noctCall .. "volume-mute"), { locked = true })
|
||
|
|
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd(noctCall .. "mic-mute"), { locked = true })
|
||
|
|
|
||
|
|
-- Media
|
||
|
|
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd(noctCall .. "media toggle"), { locked = true })
|
||
|
|
hl.bind("XF86AudioPause", hl.dsp.exec_cmd(noctCall .. "media toggle"), { locked = true })
|
||
|
|
hl.bind("XF86AudioNext", hl.dsp.exec_cmd(noctCall .. "media next"), { locked = true })
|
||
|
|
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd(noctCall .. "media previous"), { locked = true })
|
||
|
|
|
||
|
|
-- Brightness
|
||
|
|
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd(noctCall .. "brightness-up"), { locked = true, repeating = true })
|
||
|
|
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd(noctCall .. "brightness-down"), { locked = true, repeating = true })
|
||
|
|
|
||
|
|
-------------------
|
||
|
|
---- UTILITIES ----
|
||
|
|
-------------------
|
||
|
|
|
||
|
|
-- Screen Capture
|
||
|
|
hl.bind(mainMod .. " + P", hl.dsp.exec_cmd("hyprpicker -a -n"))
|
||
|
|
hl.bind("Print", hl.dsp.exec_cmd(noctCall .. "screenshot-region"))
|
||
|
|
hl.bind(mainMod .. " + Print", hl.dsp.exec_cmd(noctCall .. "screenshot-fullscreen"))
|
||
|
|
|
||
|
|
-- Theming and Wallpaper
|
||
|
|
hl.bind(mainMod .. " + SHIFT + W", hl.dsp.exec_cmd(noctCall .. "panel-toggle wallpaper"))
|
||
|
|
|
||
|
|
-- Clipboard
|
||
|
|
hl.bind(mainMod .. " + V", hl.dsp.exec_cmd(noctCall .. "panel-toggle clipboard"))
|
||
|
|
|
||
|
|
-- Notifications
|
||
|
|
hl.bind(mainMod .. " + A", hl.dsp.exec_cmd(noctCall .. "panel-toggle control-center notifications"))
|
||
|
|
|
||
|
|
-------------------------------
|
||
|
|
---- WORKSPACES & MONITORS ----
|
||
|
|
-------------------------------
|
||
|
|
|
||
|
|
-- Focus on monitors
|
||
|
|
hl.bind(mainMod .. " + 1", hl.dsp.focus({ monitor = MONITOR1 }))
|
||
|
|
hl.bind(mainMod .. " + 2", hl.dsp.focus({ monitor = MONITOR2 }))
|
||
|
|
hl.bind(mainMod .. " + 3", hl.dsp.focus({ monitor = MONITOR3 }))
|
||
|
|
|
||
|
|
-- Focus on workspace number
|
||
|
|
-- Absolute
|
||
|
|
for i = 1, NUM_WPM do
|
||
|
|
local key = i % 10
|
||
|
|
hl.bind(mainMod .. " + TAB + " .. key, hl.dsp.focus({ workspace = i }))
|
||
|
|
end
|
||
|
|
-- Relative
|
||
|
|
for i = 1, NUM_WPM do
|
||
|
|
local key = i % 10
|
||
|
|
hl.bind(mainMod .. " + CONTROL + " .. key, hl.dsp.focus({ workspace = "m~" .. i }))
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Move to adjacent workspaces and next empty on a given monitor
|
||
|
|
hl.bind(mainMod .. " + CONTROL + Right", hl.dsp.focus({ workspace = "m+1" }))
|
||
|
|
hl.bind(mainMod .. " + CONTROL + Left", hl.dsp.focus({ workspace = "m-1" }))
|
||
|
|
hl.bind(mainMod .. " + CONTROL + Down", hl.dsp.focus({ workspace = "emptym" }))
|
||
|
|
|
||
|
|
-- Scroll through existing workspaces & monitors
|
||
|
|
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "m-1" }))
|
||
|
|
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "m+1" }))
|
||
|
|
hl.bind(mainMod .. " + CONTROL + mouse_up", hl.dsp.focus({ workspace = "m-1" }))
|
||
|
|
hl.bind(mainMod .. " + CONTROL + mouse_down", hl.dsp.focus({ workspace = "m+1" }))
|
||
|
|
|
||
|
|
-- Special workspace (scratchpad)
|
||
|
|
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.window.move({ workspace = "special" }))
|
||
|
|
hl.bind(mainMod .. " + S", hl.dsp.workspace.toggle_special())
|