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 `alt` as the mod** because Windows reserves a bunch of `lwin+…` combos (lock screen, show desktop, etc.). If you *really* want Super/Win, you can swap `alt+` → `lwin+` later, just expect some binds to never fire. ([DeepWiki][1]) ```yaml # 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. [1]: https://deepwiki.com/glzr-io/glazewm/2.2.3-keybindings-and-commands "Keybindings and Commands | glzr-io/glazewm | DeepWiki"