migrate keybinds to new Lua format
This commit is contained in:
1 parent
e0e7e616cb
commit
755ca204e4
2 files changed
+165
-70
No files matched your search
@@ -0,0 +1,165 @@
|
||||
-- Keep only your personal keybinding overrides here. Add new bindings or
|
||||
-- unbind defaults before replacing them.
|
||||
|
||||
-- See current bindings and descriptions:
|
||||
-- omarchy menu keybindings --print
|
||||
|
||||
-- To disable every Omarchy default binding, set this in
|
||||
-- ~/.config/hypr/hyprland.lua before require("default.hypr.omarchy"), then add
|
||||
-- only the bindings you want below:
|
||||
-- omarchy_default_bindings = false
|
||||
|
||||
-- To disable all preinstalled app/webapp bindings, set:
|
||||
-- omarchy_preinstalled_bindings = false
|
||||
|
||||
-- Add a new binding.
|
||||
-- o.bind("SUPER + SHIFT + R", "SSH", "alacritty -e ssh your-server")
|
||||
|
||||
-- Change an existing binding by unbinding it first, then binding the key again.
|
||||
-- This example changes SUPER+SPACE from the launcher to the Omarchy root menu.
|
||||
-- hl.unbind("SUPER + SPACE")
|
||||
-- o.bind("SUPER + SPACE", "Omarchy menu", "omarchy-menu toggle root")
|
||||
|
||||
-- Disable a default binding without replacing it.
|
||||
-- hl.unbind("SUPER + SHIFT + B")
|
||||
|
||||
-- Logitech MX Keys examples:
|
||||
-- o.bind("SUPER + SHIFT + S", nil, "omarchy-capture-screenshot")
|
||||
-- o.bind("SUPER + H", nil, "voxtype record toggle")
|
||||
-- o.bind("SUPER + PERIOD", nil, "omarchy-shell shell toggle omarchy.emojis")
|
||||
|
||||
|
||||
--- **********************
|
||||
--- WINDOW MANAGEMENT
|
||||
--- **********************
|
||||
--- I prefer `move` over `swap` because it works closer to how I expect
|
||||
hl.unbind("SUPER + SHIFT + LEFT")
|
||||
hl.unbind("SUPER + SHIFT + RIGHT")
|
||||
hl.unbind("SUPER + SHIFT + UP")
|
||||
hl.unbind("SUPER + SHIFT + DOWN")
|
||||
o.bind("SUPER + SHIFT + LEFT", "Move window to the left", hl.dsp.window.move({ direction = "l" }))
|
||||
o.bind("SUPER + SHIFT + RIGHT", "Move window to the right", hl.dsp.window.move({ direction = "r" }))
|
||||
o.bind("SUPER + SHIFT + UP", "Move window up", hl.dsp.window.move({ direction = "u" }))
|
||||
o.bind("SUPER + SHIFT + DOWN", "Move window down", hl.dsp.window.move({ direction = "d" }))
|
||||
|
||||
-- these default to "Move window to group on <direction>"
|
||||
hl.unbind("SUPER + ALT + LEFT")
|
||||
hl.unbind("SUPER + ALT + RIGHT")
|
||||
hl.unbind("SUPER + ALT + UP")
|
||||
hl.unbind("SUPER + ALT + DOWN")
|
||||
o.bind("SUPER + ALT + LEFT", "Move current workspace to the left", hl.dsp.workspace.move({ monitor = "l" }))
|
||||
o.bind("SUPER + ALT + RIGHT", "Move current workspace to the right", hl.dsp.workspace.move({ monitor = "r" }))
|
||||
o.bind("SUPER + ALT + UP", "Move current workspace up", hl.dsp.workspace.move({ monitor = "u" }))
|
||||
o.bind("SUPER + ALT + DOWN", "Move current workspace down", hl.dsp.workspace.move({ monitor = "d" }))
|
||||
|
||||
-- for WHATEVER reason, hyprland refuses to use the numeric symbols for keypad keys,
|
||||
-- so we have to use the navigation symbols instead
|
||||
o.bind("SUPER + KP_End", "Switch to workspace 1", hl.dsp.focus({ workspace = "1" }))
|
||||
o.bind("SUPER + KP_Down", "Switch to workspace 2", hl.dsp.focus({ workspace = "2" }))
|
||||
o.bind("SUPER + KP_Next", "Switch to workspace 3", hl.dsp.focus({ workspace = "3" }))
|
||||
o.bind("SUPER + KP_Left", "Switch to workspace 4", hl.dsp.focus({ workspace = "4" }))
|
||||
o.bind("SUPER + KP_Begin", "Switch to workspace 5", hl.dsp.focus({ workspace = "5" }))
|
||||
o.bind("SUPER + KP_Right", "Switch to workspace 6", hl.dsp.focus({ workspace = "6" }))
|
||||
o.bind("SUPER + KP_Home", "Switch to workspace 7", hl.dsp.focus({ workspace = "7" }))
|
||||
o.bind("SUPER + KP_Up", "Switch to workspace 8", hl.dsp.focus({ workspace = "8" }))
|
||||
o.bind("SUPER + KP_Prior", "Switch to workspace 9", hl.dsp.focus({ workspace = "9" }))
|
||||
|
||||
-- find the numerically-next empty workspace and create it on the current monitor
|
||||
o.bind("SUPER + grave", "Create a new workspace", function()
|
||||
for i = 1, 100 do
|
||||
local workspace = hl.get_workspace(i)
|
||||
if not workspace then
|
||||
hl.dispatch(hl.dsp.focus({ workspace = i }))
|
||||
break
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- I don't fullscreen often, so it's fine if it's less reachable, and I want this for files
|
||||
hl.unbind("SUPER + F")
|
||||
o.bind("SUPER + F11", "Full screen", hl.dsp.window.fullscreen({ mode = "fullscreen" }))
|
||||
|
||||
-- I don't really use window grouping either
|
||||
hl.unbind("SUPER + G")
|
||||
o.bind("SUPER + CTRL + G", "Toggle window grouping", hl.dsp.group.toggle())
|
||||
|
||||
-- I don't want ctrl + alt + delete to affect my special windows
|
||||
hl.unbind("CTRL + ALT + DELETE")
|
||||
o.bind("CTRL + ALT + DELETE", "Close all windows", function()
|
||||
for _, window in pairs(hl.get_windows()) do
|
||||
if not window.workspace.special then
|
||||
hl.dispatch(hl.dsp.window.close({ window = "address:" .. window.address }))
|
||||
end
|
||||
end
|
||||
hl.dispatch(hl.dsp.focus({ workspace = 2 }))
|
||||
end)
|
||||
|
||||
--- **********************
|
||||
--- APPLICATIONS
|
||||
--- **********************
|
||||
|
||||
-- I don't use all the default apps, and I don't like the default super + shift prefix
|
||||
-- so I unbind all default app keybinds (except terminal)
|
||||
hl.unbind("SUPER + SHIFT + RETURN") -- Browser
|
||||
hl.unbind("SUPER + SHIFT + F") -- File manager
|
||||
hl.unbind("SUPER + ALT + SHIFT + F") -- File manager (cwd)
|
||||
hl.unbind("SUPER + SHIFT + B") -- Browser
|
||||
hl.unbind("SUPER + SHIFT + ALT + B") -- Browser (private)
|
||||
hl.unbind("SUPER + SHIFT + N") -- Editor
|
||||
hl.unbind("SUPER + ALT + RETURN") -- Tmux
|
||||
hl.unbind("SUPER + CTRL + RETURN") -- Herdr
|
||||
hl.unbind("SUPER + SHIFT + M") -- Music
|
||||
hl.unbind("SUPER + SHIFT + ALT + M") -- Music TUI
|
||||
hl.unbind("SUPER + SHIFT + D") -- Docker
|
||||
hl.unbind("SUPER + SHIFT + G") -- Signal
|
||||
hl.unbind("SUPER + SHIFT + O") -- Obsidian
|
||||
hl.unbind("SUPER + SHIFT + W") -- Omawrite
|
||||
hl.unbind("SUPER + SHIFT + SLASH") -- Passwords
|
||||
hl.unbind("SUPER + SHIFT + A") -- ChatGPT
|
||||
hl.unbind("SUPER + SHIFT + ALT + A") -- Grok
|
||||
hl.unbind("SUPER + SHIFT + C") -- Calendar
|
||||
hl.unbind("SUPER + SHIFT + E") -- Email
|
||||
hl.unbind("SUPER + SHIFT + ALT + E") -- New email
|
||||
hl.unbind("SUPER + SHIFT + Y") -- YouTube
|
||||
hl.unbind("SUPER + SHIFT + ALT + G") -- WhatsApp
|
||||
hl.unbind("SUPER + SHIFT + CTRL + G") -- Google Messages
|
||||
hl.unbind("SUPER + SHIFT + P") -- Google Photos
|
||||
hl.unbind("SUPER + SHIFT + S") -- Google Maps
|
||||
hl.unbind("SUPER + SHIFT + X") -- X
|
||||
hl.unbind("SUPER + SHIFT + ALT + X") -- X Post
|
||||
|
||||
o.bind("SUPER + B", "Browser", { omarchy = "browser" })
|
||||
o.bind("SUPER + ALT + B", "Browser (private)", { omarchy = "browser --private" })
|
||||
o.bind("SUPER + F", "File manager", { omarchy = "nautilus" })
|
||||
o.bind("SUPER + N", "Notes", { launch = "heynote" })
|
||||
o.bind("SUPER + D", "Launch or focus DataGrip", { launch = "datagrip", focus = "^jetbrains-datagrip$" })
|
||||
|
||||
-- persistent background(-ish) apps
|
||||
hl.unbind("SUPER + S") -- defaults to "scratchpad"
|
||||
o.bind("SUPER + S", "Slack", hl.dsp.workspace.toggle_special("slack"))
|
||||
o.bind("SUPER + period", "1Password Quick Access", "1password --quick-access")
|
||||
hl.unbind("SUPER + CTRL + period") -- defaults to "transcode"
|
||||
o.bind("CTRL + SUPER + period", "1Password", hl.dsp.workspace.toggle_special("1password"))
|
||||
o.bind("SUPER + Z", "Show Creddy", "creddy shortcut show-window")
|
||||
|
||||
-- I don't want to run most webapps as completely standalone windows,
|
||||
-- but it is convenient to have hotkeys for some of them
|
||||
o.bind("SUPER + A", "Claude", "omarchy-launch-browser https://claude.ai/new")
|
||||
o.bind("SUPER + E", "Email", "omarchy-launch-browser https://mail.google.com/mail/u/0")
|
||||
o.bind("SUPER + ALT + E", "Email (personal)", "omarchy-launch-browser https://mail.google.com/mail/u/1")
|
||||
o.bind("SUPER + G", "GitLab", "omarchy-launch-browser https://gitlab.modg.net")
|
||||
|
||||
-- I want to be able to summon a new browser tab from wherever I am
|
||||
o.bind("SUPER + I", "New browser tab", function()
|
||||
-- Omarchy tags any properly-integrated browser with one of these tags
|
||||
local browser = hl.get_window("tag:(chromium|firefox)-based-browser.*")
|
||||
|
||||
if browser then
|
||||
local window = "address:" .. browser.address
|
||||
hl.dispatch(hl.dsp.send_shortcut({ mods = "CTRL", key = "T", window = window }))
|
||||
hl.dispatch(hl.dsp.focus({ window = window }))
|
||||
else
|
||||
hl.exec_cmd("omarchy-launch-browser")
|
||||
end
|
||||
end)
|
||||
|
||||
Reference in new issue
Block a user