Compare commits

..

2 Commits

4 changed files with 69 additions and 29 deletions
+56 -16
View File
@@ -93,41 +93,81 @@ hl.config({
**Legacy:** **Legacy:**
```hyprlang ```hyprlang
bind = SUPER, Q, killactive, bind = SUPER, Q, killactive,
bind = SUPER SHIFT ALT, Q, exit,
bindd = SUPER, B, Launch Browser, exec, firefox bindd = SUPER, B, Launch Browser, exec, firefox
bind = SUPER, left, movefocus, l bind = SUPER, left, movefocus, l
bind = SUPER, 1, workspace, 1 bind = SUPER, 1, workspace, 1
bind = SUPER SHIFT, 1, movetoworkspace, 1
bind = SUPER SHIFT, left, swapwindow, l
bind = SUPER, mouse_down, workspace, e+1
bindm = SUPER, mouse:272, movewindow bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bind = SUPER, code:10, workspace, 1 bind = SUPER, code:10, workspace, 1
bind = SUPER SHIFT, S, swapwindow, l bind = SUPER, code:20, resizeactive, -100 0
bind = SUPER, BACKSPACE, setprop, opaque toggle
``` ```
**Lua:** **Lua:**
Flags from the legacy format (`e` for repeat, `l` for locked, `m` for mouse) become booleans in the options table. Dispatchers must use the `hl.dsp.*` API. **If a dispatcher isn't listed below, fall back to `hl.dsp.exec_cmd("hyprctl dispatch <dispatcher> <args>")`**. Flags from the legacy format (`e` for repeat, `l` for locked, `m` for mouse) become booleans in the options table. Dispatchers must use the native `hl.dsp.*` API functions.
```lua ```lua
hl.bind("SUPER + Q", hl.dsp.window.close()) -- Session & Window Lifecycle
hl.bind("SUPER + Q", hl.dsp.window.close(), { description = "Close active window" })
hl.bind("SUPER + SHIFT + ALT + Q", hl.dsp.exit(), { description = "Exit Hyprland" })
-- Applications / Commands
hl.bind("SUPER + B", hl.dsp.exec_cmd("firefox"), { description = "Launch Browser" }) hl.bind("SUPER + B", hl.dsp.exec_cmd("firefox"), { description = "Launch Browser" })
-- Focus & Workspaces
hl.bind("SUPER + left", hl.dsp.focus({ direction = "left" })) hl.bind("SUPER + left", hl.dsp.focus({ direction = "left" }))
hl.bind("SUPER + 1", hl.dsp.focus({ workspace = 1 })) hl.bind("SUPER + 1", hl.dsp.focus({ workspace = 1 }))
hl.bind("SUPER + TAB", hl.dsp.focus({ workspace = "e+1" }))
hl.bind("SUPER + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
-- Moving Windows
hl.bind("SUPER + SHIFT + 1", hl.dsp.window.move({ workspace = 1 }))
hl.bind("SUPER + SHIFT + left", hl.dsp.window.swap({ direction = "left" }))
-- Window States
hl.bind("SUPER + V", hl.dsp.window.float({ action = "toggle" }))
hl.bind("SUPER + P", hl.dsp.window.pseudo())
hl.bind("SHIFT + F11", hl.dsp.window.fullscreen({ mode = "fullscreen" }))
hl.bind("ALT + F11", hl.dsp.window.fullscreen({ mode = "maximized" }))
hl.bind("SUPER + BACKSPACE", hl.dsp.window.set_prop({ prop = "opaque", value = "toggle" }))
-- Window Cycling & Stacking
hl.bind("ALT + TAB", hl.dsp.window.cycle_next())
hl.bind("ALT + SHIFT + TAB", hl.dsp.window.cycle_next({ next = false }))
hl.bind("ALT + TAB", hl.dsp.window.bring_to_top())
-- Resizing & Dragging
hl.bind("SUPER + code:20", hl.dsp.window.resize({ x = -100, y = 0, relative = true }))
hl.bind("SUPER + mouse:272", hl.dsp.window.drag(), { mouse = true }) hl.bind("SUPER + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind("SUPER + mouse:273", hl.dsp.window.resize(), { mouse = true })
-- Repeating & Locked (e.g. Media Keys)
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"), { repeating = true, locked = true }) hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"), { repeating = true, locked = true })
-- Keycodes use the `code:` prefix directly in the string
hl.bind("SUPER + code:10", hl.dsp.focus({ workspace = 1 }))
-- Fallback for undocumented or complex dispatchers
hl.bind("SUPER + SHIFT + S", hl.dsp.exec_cmd("hyprctl dispatch swapwindow l"))
``` ```
*Note: Key combinations are joined by ` + `.* *Note: Key combinations are joined by ` + `.*
*Common Dispatchers translation:*
#### Complete Dispatcher Reference:
- `exit` -> `hl.dsp.exit()`
- `killactive` -> `hl.dsp.window.close()` - `killactive` -> `hl.dsp.window.close()`
- `togglefloating` -> `hl.dsp.window.float({ action = "toggle" })` - `togglefloating` -> `hl.dsp.window.float({ action = "toggle" })`
- `fullscreen, 0` -> `hl.dsp.window.fullscreen(0)` - `pseudo` -> `hl.dsp.window.pseudo()`
- `togglesplit` -> `hl.dsp.layout("togglesplit")` - `fullscreen, 0` -> `hl.dsp.window.fullscreen({ mode = "fullscreen" })`
- `movefocus, l` -> `hl.dsp.focus({ direction = "left" })` - `fullscreen, 1` -> `hl.dsp.window.fullscreen({ mode = "maximized" })`
- `workspace, 1` -> `hl.dsp.focus({ workspace = 1 })` - `togglesplit` / `layoutmsg, <cmd>` -> `hl.dsp.layout("<cmd>")`
- `movetoworkspace, 1` -> `hl.dsp.window.move({ workspace = 1 })` - `movefocus, <l|r|u|d>` -> `hl.dsp.focus({ direction = "left" | "right" | "up" | "down" })`
- `cyclenext` -> `hl.dsp.exec_cmd("hyprctl dispatch cyclenext")` - `workspace, <ws>` -> `hl.dsp.focus({ workspace = <number or string like "e+1"> })`
- `movetoworkspace, <ws>` -> `hl.dsp.window.move({ workspace = <number or string> })`
- `swapwindow, <l|r|u|d>` -> `hl.dsp.window.swap({ direction = "left" | "right" | "up" | "down" })`
- `cyclenext` -> `hl.dsp.window.cycle_next()`
- `cyclenext, prev` -> `hl.dsp.window.cycle_next({ next = false })`
- `bringactivetotop` -> `hl.dsp.window.bring_to_top()`
- `resizeactive, <x> <y>` -> `hl.dsp.window.resize({ x = <x>, y = <y>, relative = true })`
- `setprop, <prop> <val>` -> `hl.dsp.window.set_prop({ prop = "<prop>", value = "<val>" })`
- `togglespecialworkspace, <name>` -> `hl.dsp.workspace.toggle_special("<name>")`
- `exec, <command>` -> `hl.dsp.exec_cmd("<command>")`
### 6. Window and Layer Rules ### 6. Window and Layer Rules
**Legacy:** **Legacy:**
+1 -1
View File
@@ -23,7 +23,7 @@ hl.bind("SUPER + S", hl.dsp.exec_cmd(terminal .. " wiremix --tab configuration")
hl.bind("SUPER + return", hl.dsp.exec_cmd(terminal)) hl.bind("SUPER + return", hl.dsp.exec_cmd(terminal))
hl.bind("SUPER + Q", hl.dsp.window.close()) hl.bind("SUPER + Q", hl.dsp.window.close())
hl.bind("SUPER + SHIFT + ALT + Q", hl.dsp.exec_cmd("hyprctl dispatch exit")) hl.bind("SUPER + SHIFT + ALT + Q", hl.dsp.exit(), { description = "Exit Hyprland" })
hl.bind("SUPER + E", hl.dsp.exec_cmd(fileManager)) hl.bind("SUPER + E", hl.dsp.exec_cmd(fileManager))
hl.bind("SUPER + R", hl.dsp.exec_cmd(menu)) hl.bind("SUPER + R", hl.dsp.exec_cmd(menu))
hl.bind("SUPER + P", hl.dsp.window.pseudo()) hl.bind("SUPER + P", hl.dsp.window.pseudo())
+11 -11
View File
@@ -3,9 +3,9 @@ hl.bind("SUPER + Q", hl.dsp.window.close(), { description = "Close active window
hl.bind("SUPER + J", hl.dsp.layout("togglesplit"), { description = "Toggle split" }) hl.bind("SUPER + J", hl.dsp.layout("togglesplit"), { description = "Toggle split" })
hl.bind("SUPER + P", hl.dsp.window.pseudo(), { description = "Pseudo window" }) hl.bind("SUPER + P", hl.dsp.window.pseudo(), { description = "Pseudo window" })
hl.bind("SUPER + V", hl.dsp.window.float({ action = "toggle" }), { description = "Toggle floating" }) hl.bind("SUPER + V", hl.dsp.window.float({ action = "toggle" }), { description = "Toggle floating" })
hl.bind("SHIFT + F11", hl.dsp.window.fullscreen(0), { description = "Force full screen" }) hl.bind("SHIFT + F11", hl.dsp.window.fullscreen({ mode = "fullscreen" }), { description = "Force full screen" })
hl.bind("ALT + F11", hl.dsp.window.fullscreen(1), { description = "Full width" }) hl.bind("ALT + F11", hl.dsp.window.fullscreen({ mode = "maximized" }), { description = "Full width" })
hl.bind("SUPER + SHIFT + RETURN", hl.dsp.window.fullscreen(1), { description = "Full width" }) hl.bind("SUPER + SHIFT + RETURN", hl.dsp.window.fullscreen({ mode = "maximized" }), { description = "Full width" })
hl.bind("SUPER + numbersign", hl.dsp.layout("splitratio -2"), { description = "1:1 split" }) hl.bind("SUPER + numbersign", hl.dsp.layout("splitratio -2"), { description = "1:1 split" })
hl.bind("SUPER + numbersign", hl.dsp.layout("splitratio 0.9"), { description = "1:1 split" }) hl.bind("SUPER + numbersign", hl.dsp.layout("splitratio 0.9"), { description = "1:1 split" })
@@ -29,15 +29,15 @@ hl.bind("SUPER + SHIFT + right", hl.dsp.window.swap({ direction = "right" }), {
hl.bind("SUPER + SHIFT + up", hl.dsp.window.swap({ direction = "up" }), { description = "Swap window up" }) hl.bind("SUPER + SHIFT + up", hl.dsp.window.swap({ direction = "up" }), { description = "Swap window up" })
hl.bind("SUPER + SHIFT + down", hl.dsp.window.swap({ direction = "down" }), { description = "Swap window down" }) hl.bind("SUPER + SHIFT + down", hl.dsp.window.swap({ direction = "down" }), { description = "Swap window down" })
hl.bind("ALT + TAB", hl.dsp.exec_cmd("hyprctl dispatch cyclenext"), { description = "Cycle to next window" }) hl.bind("ALT + TAB", hl.dsp.window.cycle_next(), { description = "Cycle to next window" })
hl.bind("ALT + SHIFT + TAB", hl.dsp.exec_cmd("hyprctl dispatch cyclenext prev"), { description = "Cycle to prev window" }) hl.bind("ALT + SHIFT + TAB", hl.dsp.window.cycle_next({ next = false }), { description = "Cycle to prev window" })
hl.bind("ALT + TAB", hl.dsp.exec_cmd("hyprctl dispatch bringactivetotop"), { description = "Reveal active window on top" }) hl.bind("ALT + TAB", hl.dsp.window.bring_to_top(), { description = "Reveal active window on top" })
hl.bind("ALT + SHIFT + TAB", hl.dsp.exec_cmd("hyprctl dispatch bringactivetotop"), { description = "Reveal active window on top" }) hl.bind("ALT + SHIFT + TAB", hl.dsp.window.bring_to_top(), { description = "Reveal active window on top" })
hl.bind("SUPER + code:20", hl.dsp.window.resize({ x = -100, y = 0 }), { description = "Expand window left" }) hl.bind("SUPER + code:20", hl.dsp.window.resize({ x = -100, y = 0, relative = true }), { description = "Expand window left" })
hl.bind("SUPER + code:21", hl.dsp.window.resize({ x = 100, y = 0 }), { description = "Shrink window left" }) hl.bind("SUPER + code:21", hl.dsp.window.resize({ x = 100, y = 0, relative = true }), { description = "Shrink window left" })
hl.bind("SUPER + SHIFT + code:20", hl.dsp.window.resize({ x = 0, y = -100 }), { description = "Shrink window up" }) hl.bind("SUPER + SHIFT + code:20", hl.dsp.window.resize({ x = 0, y = -100, relative = true }), { description = "Shrink window up" })
hl.bind("SUPER + SHIFT + code:21", hl.dsp.window.resize({ x = 0, y = 100 }), { description = "Expand window down" }) hl.bind("SUPER + SHIFT + code:21", hl.dsp.window.resize({ x = 0, y = 100, relative = true }), { description = "Expand window down" })
hl.bind("SUPER + mouse_down", hl.dsp.focus({ workspace = "e+1" }), { description = "Scroll active workspace forward" }) hl.bind("SUPER + mouse_down", hl.dsp.focus({ workspace = "e+1" }), { description = "Scroll active workspace forward" })
hl.bind("SUPER + mouse_up", hl.dsp.focus({ workspace = "e-1" }), { description = "Scroll active workspace backward" }) hl.bind("SUPER + mouse_up", hl.dsp.focus({ workspace = "e-1" }), { description = "Scroll active workspace backward" })
+1 -1
View File
@@ -11,7 +11,7 @@ hl.bind("SUPER + N", hl.dsp.exec_cmd("swaync-client -op"), { description = "Noti
hl.bind("SUPER + SHIFT + SPACE", hl.dsp.exec_cmd("omarchy-toggle-waybar"), { description = "Toggle top bar" }) hl.bind("SUPER + SHIFT + SPACE", hl.dsp.exec_cmd("omarchy-toggle-waybar"), { description = "Toggle top bar" })
hl.bind("SUPER + CTRL + SPACE", hl.dsp.exec_cmd("omarchy-theme-bg-next"), { description = "Next background in theme" }) hl.bind("SUPER + CTRL + SPACE", hl.dsp.exec_cmd("omarchy-theme-bg-next"), { description = "Next background in theme" })
hl.bind("SUPER + SHIFT + CTRL + SPACE", hl.dsp.exec_cmd("omarchy-menu theme"), { description = "Pick new theme" }) hl.bind("SUPER + SHIFT + CTRL + SPACE", hl.dsp.exec_cmd("omarchy-menu theme"), { description = "Pick new theme" })
hl.bind("SUPER + BACKSPACE", hl.dsp.exec_cmd("hyprctl dispatch setprop \"address:$(hyprctl activewindow -j | jq -r '.address')\" opaque toggle"), { description = "Toggle window transparency" }) hl.bind("SUPER + BACKSPACE", hl.dsp.window.set_prop({ prop = "opaque", value = "toggle" }), { description = "Toggle window transparency" })
hl.bind("SUPER + COMMA", hl.dsp.exec_cmd("makoctl dismiss"), { description = "Dismiss last notification" }) hl.bind("SUPER + COMMA", hl.dsp.exec_cmd("makoctl dismiss"), { description = "Dismiss last notification" })
hl.bind("SUPER + SHIFT + COMMA", hl.dsp.exec_cmd("makoctl dismiss --all"), { description = "Dismiss all notifications" }) hl.bind("SUPER + SHIFT + COMMA", hl.dsp.exec_cmd("makoctl dismiss --all"), { description = "Dismiss all notifications" })