Here’s a GlazeWM config.yaml that mirrors your Sway/i3-style hjkl navigation, move, workspaces 1–10 (0 = 10), split direction, fullscreen, floating, resize mode, plus Firefox on startup.
Note: GlazeWM recommends using
altas the mod because Windows reserves a bunch oflwin+…combos (lock screen, show desktop, etc.). If you really want Super/Win, you can swapalt+→lwin+later, just expect some binds to never fire. (DeepWiki)
# GlazeWM config inspired by your Sway/i3 setup (single monitor, hjkl focus/move, 1–10 workspaces).
# If you want Super/Win as mod: replace "alt+" with "lwin+" (some Win combos are reserved by Windows). :contentReference[oaicite:1]{index=1}
general:
startup_commands:
- shell-exec firefox
shutdown_commands: []
config_reload_commands: []
# Like: focus_follows_mouse yes
focus_follows_cursor: true
toggle_workspace_on_refocus: false
# Single monitor: usually nicer with cursor jump off
cursor_jump:
enabled: false
trigger: monitor_focus
# More "workspace-like" isolation in taskbar
hide_method: "cloak"
show_all_in_taskbar: false
# i3-ish: no gaps by default (tweak if you want breathing room)
gaps:
scale_with_dpi: true
inner_gap: "0px"
outer_gap:
top: "0px"
right: "0px"
bottom: "0px"
left: "0px"
# Optional: subtle focus indication (Windows 11 border effects) :contentReference[oaicite:2]{index=2}
window_effects:
focused_window:
border:
enabled: true
color: "#DDDDDD"
other_windows:
border:
enabled: true
color: "#333333"
window_behavior:
initial_state: "tiling"
state_defaults:
floating:
centered: true
shown_on_top: true
fullscreen:
maximized: true
shown_on_top: false
workspaces:
- name: "1"
- name: "2"
- name: "3"
- name: "4"
- name: "5"
- name: "6"
- name: "7"
- name: "8"
- name: "9"
- name: "10"
keybindings:
# (Optional) terminal launcher — edit/remove if you don't want any app binds
- bindings: ["alt+enter"]
commands: ["shell-exec wt"]
# Firefox (kept, per your request)
- bindings: ["alt+shift+f"]
commands: ["shell-exec firefox"]
# Focus: hjkl + arrows :contentReference[oaicite:3]{index=3}
- bindings: ["alt+h", "alt+left"]
commands: ["focus --direction left"]
- bindings: ["alt+j", "alt+down"]
commands: ["focus --direction down"]
- bindings: ["alt+k", "alt+up"]
commands: ["focus --direction up"]
- bindings: ["alt+l", "alt+right"]
commands: ["focus --direction right"]
# Move window: Shift+hjkl + Shift+arrows :contentReference[oaicite:4]{index=4}
- bindings: ["alt+shift+h", "alt+shift+left"]
commands: ["move --direction left"]
- bindings: ["alt+shift+j", "alt+shift+down"]
commands: ["move --direction down"]
- bindings: ["alt+shift+k", "alt+shift+up"]
commands: ["move --direction up"]
- bindings: ["alt+shift+l", "alt+shift+right"]
commands: ["move --direction right"]
# Workspaces: alt+1..9, alt+0 -> 10
- bindings: ["alt+1"]
commands: ["focus --workspace 1"]
- bindings: ["alt+2"]
commands: ["focus --workspace 2"]
- bindings: ["alt+3"]
commands: ["focus --workspace 3"]
- bindings: ["alt+4"]
commands: ["focus --workspace 4"]
- bindings: ["alt+5"]
commands: ["focus --workspace 5"]
- bindings: ["alt+6"]
commands: ["focus --workspace 6"]
- bindings: ["alt+7"]
commands: ["focus --workspace 7"]
- bindings: ["alt+8"]
commands: ["focus --workspace 8"]
- bindings: ["alt+9"]
commands: ["focus --workspace 9"]
- bindings: ["alt+0"]
commands: ["focus --workspace 10"]
# Move to workspace (no "follow", like your Sway config)
- bindings: ["alt+shift+1"]
commands: ["move --workspace 1"]
- bindings: ["alt+shift+2"]
commands: ["move --workspace 2"]
- bindings: ["alt+shift+3"]
commands: ["move --workspace 3"]
- bindings: ["alt+shift+4"]
commands: ["move --workspace 4"]
- bindings: ["alt+shift+5"]
commands: ["move --workspace 5"]
- bindings: ["alt+shift+6"]
commands: ["move --workspace 6"]
- bindings: ["alt+shift+7"]
commands: ["move --workspace 7"]
- bindings: ["alt+shift+8"]
commands: ["move --workspace 8"]
- bindings: ["alt+shift+9"]
commands: ["move --workspace 9"]
- bindings: ["alt+shift+0"]
commands: ["move --workspace 10"]
# Split direction / layout-ish
- bindings: ["alt+b"]
commands: ["set-tiling-direction --tiling-direction horizontal"]
- bindings: ["alt+v"]
commands: ["set-tiling-direction --tiling-direction vertical"]
- bindings: ["alt+e"]
commands: ["toggle-tiling-direction"]
# Fullscreen / floating / focus cycling :contentReference[oaicite:5]{index=5}
- bindings: ["alt+f"]
commands: ["toggle-fullscreen"]
- bindings: ["alt+space"]
commands: ["wm-cycle-focus"]
- bindings: ["alt+shift+space"]
commands: ["toggle-floating --centered"]
# Scratchpad-ish (closest equivalent): minimize toggle
- bindings: ["alt+oem_minus"]
commands: ["toggle-minimized"]
- bindings: ["alt+shift+oem_minus"]
commands: ["set-minimized"]
# Kill / reload / exit :contentReference[oaicite:6]{index=6}
- bindings: ["alt+shift+q"]
commands: ["close"]
- bindings: ["alt+shift+c"]
commands: ["wm-reload-config"]
- bindings: ["alt+shift+e"]
commands: ["wm-exit"]
# Easy “back to normal WM” toggle (pauses GlazeWM) :contentReference[oaicite:7]{index=7}
- bindings: ["alt+shift+p"]
commands: ["wm-toggle-pause"]
# Resize mode (like i3) :contentReference[oaicite:8]{index=8}
- bindings: ["alt+r"]
commands: ["wm-enable-binding-mode --name resize"]
binding_modes:
- name: resize
keybindings:
- bindings: ["h", "left"]
commands: ["resize --width -10px"]
- bindings: ["l", "right"]
commands: ["resize --width +10px"]
- bindings: ["k", "up"]
commands: ["resize --height -10px"]
- bindings: ["j", "down"]
commands: ["resize --height +10px"]
# exit resize mode
- bindings: ["enter", "escape"]
commands: ["wm-disable-binding-mode --name resize"]
If you want, paste your preferred “mod” choice (Alt vs Win) and whether you want “move-to-workspace also follows” (i3 has both styles), and I’ll adjust the workspace move bindings accordingly.