Files
dotfiles/hypr/hyprland/mcsr.lua
2026-05-30 21:51:18 -07:00

51 lines
2.4 KiB
Lua

local function remap(from, to)
hl.bind(from, hl.dsp.send_key_state({mods = "", key = to, state = "down"}), {ignore_mods = true, transparent = true})
hl.bind(from, hl.dsp.send_key_state({mods = "", key = to, state = "up"}), {ignore_mods = true, transparent = true, release = true})
end
-- #MCSR
hl.define_submap("mcsr", function()
-- Tall macro
hl.bind("KP_END", hl.dsp.window.fullscreen_state({internal = 0, client = 0}))
hl.bind("KP_END", hl.dsp.window.float({action = "on"}))
hl.bind("KP_END", hl.dsp.window.resize({x = 1920, y = 16384}))
hl.bind("KP_END", hl.dsp.window.move({x = 600, y = -7472}))
hl.bind("KP_END", hl.dsp.exec_cmd("quickshell ipc call boateye open"))
hl.bind("KP_END", hl.dsp.exec_cmd("quickshell ipc call thin close"))
-- Thin macro
hl.bind("KP_DOWN", hl.dsp.window.fullscreen_state({internal = 0, client = 0}))
hl.bind("KP_DOWN", hl.dsp.window.float({action = "on"}))
hl.bind("KP_DOWN", hl.dsp.window.resize({x = 400, y = 1420}))
hl.bind("KP_DOWN", hl.dsp.window.center())
hl.bind("KP_DOWN", hl.dsp.exec_cmd("quickshell ipc call thin open"))
hl.bind("KP_DOWN", hl.dsp.exec_cmd("quickshell ipc call boateye close"))
-- Wide macro
hl.bind("KP_NEXT", hl.dsp.window.fullscreen_state({internal = 0, client = 0}))
hl.bind("KP_NEXT", hl.dsp.window.float({action = "on"}))
hl.bind("KP_NEXT", hl.dsp.window.resize({x = 2540, y = 400}))
hl.bind("KP_NEXT", hl.dsp.window.center())
-- Search crafting mappings
remap("mouse:275", "f3")
remap("1", "apostrophe")
remap("apostrophe", "1")
remap("k", "0")
remap("semicolon", "w")
end)
-- Close boateye
-- FIXME: use hl.on() to couple this to the actions of fullscreening/floating
-- instead of the keybinds
bind("SUPER + F", hl.dsp.exec_cmd("quickshell ipc call boateye close; quickshell ipc call thin close"))
bind("SUPER + M", hl.dsp.exec_cmd("quickshell ipc call boateye close; quickshell ipc call thin close"))
bind("KP_LEFT", hl.dsp.pass({window = "class:ninjabrainbot-Main"}))
bind("KP_LEFT", hl.dsp.pass({window = "class:ninjabrainbot-Main"}), {release = true})
bind("KP_BEGIN", hl.dsp.pass({window = "class:ninjabrainbot-Main"}))
bind("KP_BEGIN", hl.dsp.pass({window = "class:ninjabrainbot-Main"}), {release = true})
bind("KP_RIGHT", hl.dsp.pass({window = "class:ninjabrainbot-Main"}))
bind("KP_RIGHT", hl.dsp.pass({window = "class:ninjabrainbot-Main"}), {release = true})