general: # Commands to run when the WM has started. This is useful for running a # script or launching another application. # Example: The below command launches Zebar. startup_commands: ['shell-exec zebar'] # Commands to run just before the WM is shutdown. # Example: The below command kills Zebar. shutdown_commands: ['shell-exec taskkill /IM zebar.exe /F'] # Commands to run after the WM config is reloaded. config_reload_commands: [] # Whether to automatically focus windows underneath the cursor. focus_follows_cursor: true # Whether to switch back and forth between the previously focused # workspace when focusing the current workspace. toggle_workspace_on_refocus: false cursor_jump: # Whether to automatically move the cursor on the specified trigger. enabled: true # Trigger for cursor jump: # - 'monitor_focus': Jump when focus changes between monitors. # - 'window_focus': Jump when focus changes between windows. trigger: 'monitor_focus' # How windows should be hidden when switching workspaces. # - 'cloak': Recommended. Hides windows with no animation. # - 'hide': Legacy method (v3.5 and earlier) that has a brief animation, # but has stability issues with some apps. hide_method: 'cloak' # Affects which windows get shown in the native Windows taskbar. Has no # effect if `hide_method: 'hide'`. # - 'true': Show all windows (regardless of workspace). # - 'false': Only show windows from the currently shown workspaces. show_all_in_taskbar: false gaps: # Whether to scale the gaps with the DPI of the monitor. scale_with_dpi: true # Gap between adjacent windows. inner_gap: '5px' # Gap between windows and the screen edge. outer_gap: top: '29px' right: '5px' bottom: '5px' left: '5px' window_effects: # Visual effects to apply to the focused window. focused_window: # Highlight the window with a colored border. # ** Exclusive to Windows 11 due to API limitations. border: enabled: true color: '#89b4fa' # Remove the title bar from the window's frame. Note that this can # cause rendering issues for some applications. hide_title_bar: enabled: false # Change the corner style of the window's frame. # ** Exclusive to Windows 11 due to API limitations. corner_style: enabled: true # Allowed values: 'square', 'rounded', 'small_rounded'. style: 'rounded' # Change the transparency of the window. transparency: enabled: true # Can be something like '95%' or '0.95' for slightly transparent windows. # '0' or '0%' is fully transparent (and, by consequence, unfocusable). opacity: '98%' # Visual effects to apply to non-focused windows. other_windows: border: enabled: true color: '#585b70' hide_title_bar: enabled: false corner_style: enabled: true style: 'rounded' transparency: enabled: true opacity: '98%' window_behavior: # New windows are created in this state whenever possible. # Allowed values: 'tiling', 'floating'. initial_state: 'tiling' # Sets the default options for when a new window is created. This also # changes the defaults for when the state change commands, like # `set-floating`, are used without any flags. state_defaults: floating: # Whether to center floating windows by default. centered: true # Whether to show floating windows as always on top. shown_on_top: false fullscreen: # Maximize the window if possible. If the window doesn't have a # maximize button, then it'll be fullscreen'ed normally instead. maximized: false # Whether to show fullscreen windows as always on top. shown_on_top: false workspaces: - name: '1' bind_to_monitor: 1 - name: '2' - name: '3' - name: '4' - name: '5' - name: '6' - name: '7' - name: '8' - name: '9' bind_to_monitor: 0 window_rules: - commands: ['ignore'] match: # Ignores any Zebar windows. - window_process: { equals: 'zebar' } # Ignores picture-in-picture windows for browsers. - window_title: { regex: '[Pp]icture.in.[Pp]icture' } window_class: { regex: 'Chrome_WidgetWin_1|MozillaDialogClass' } # Ignore rules for various 3rd-party apps. - window_process: { equals: 'PowerToys' } window_class: { regex: 'HwndWrapper\[PowerToys\.PowerAccent.*?\]' } - window_process: { equals: 'PowerToys' } window_title: { regex: '.*? - Peek' } - window_process: { equals: 'Lively' } window_class: { regex: 'HwndWrapper' } - window_process: { equals: 'EXCEL' } window_class: { not_regex: 'XLMAIN' } - window_process: { equals: 'WINWORD' } window_class: { not_regex: 'OpusApp' } - window_process: { equals: 'POWERPNT' } window_class: { not_regex: 'PPTFrameClass' } binding_modes: # When enabled, the focused window can be resized via arrow keys or HJKL. - name: 'resize' keybindings: - commands: ['resize --width -2%'] bindings: ['h', 'left'] - commands: ['resize --width +2%'] bindings: ['l', 'right'] - commands: ['resize --height +2%'] bindings: ['k', 'up'] - commands: ['resize --height -2%'] bindings: ['j', 'down'] # Press enter/escape to return to default keybindings. - commands: ['wm-disable-binding-mode --name resize'] bindings: ['escape', 'enter'] keybindings: # Shift focus in a given direction. - commands: ['focus --direction left'] bindings: ['LWin+left'] - commands: ['focus --direction right'] bindings: ['LWin+right'] - commands: ['focus --direction up'] bindings: ['LWin+up'] - commands: ['focus --direction down'] bindings: ['LWin+down'] # Move focused window in a given direction. - commands: ['move --direction left'] bindings: ['LWin+shift+left'] - commands: ['move --direction right'] bindings: ['LWin+shift+right'] - commands: ['move --direction up'] bindings: ['LWin+shift+up'] - commands: ['move --direction down'] bindings: ['LWin+shift+down'] # As an Winernative to the resize keybindings above, resize mode enables # resizing via arrow keys or HJKL. The binding mode is defined above with # the name 'resize'. - commands: ['wm-enable-binding-mode --name resize'] bindings: ['LWin+r'] # Disables window management and all other keybindings until LWin+shift+p # is pressed again. - commands: ['wm-toggle-pause'] bindings: ['LWin+shift+p'] # Change tiling direction. This determines where new tiling windows will # be inserted. - commands: ['toggle-tiling-direction'] bindings: ['LWin+v'] # Change focus from tiling windows -> floating -> fullscreen. - commands: ['wm-cycle-focus'] bindings: ['LWin+space'] # Change the focused window to be floating. - commands: ['toggle-floating --centered'] bindings: ['LWin+shift+space'] # Change the focused window to be tiling. - commands: ['toggle-tiling'] bindings: ['LWin+t'] # Change the focused window to be fullscreen. - commands: ['toggle-fullscreen'] bindings: ['LWin+f'] # Minimize focused window. - commands: ['toggle-minimized'] bindings: ['LWin+m'] # Close focused window. - commands: ['close'] bindings: ['LWin+shift+q'] # Kill GlazeWM process safely. - commands: ['wm-exit'] bindings: ['LWin+shift+e'] # Re-evaluate configuration file. - commands: ['wm-reload-config'] bindings: ['LWin+shift+r'] # Redraw all windows. - commands: ['wm-redraw'] bindings: ['LWin+shift+w'] # Launch CMD terminal. Alternatively, use `shell-exec wt` or # `shell-exec %ProgramFiles%/Git/git-bash.exe` to start Windows # Terminal and Git Bash respectively. - commands: ['shell-exec wt'] bindings: ['LWin+enter'] - commands: ['shell-exec %ProgramFiles%/LibreWolf/librewolf.exe'] bindings: ['LWin+w'] # Change focus to a workspace defined in `workspaces` config. - commands: ['focus --workspace 1'] bindings: ['LWin+1'] - commands: ['focus --workspace 2'] bindings: ['LWin+2'] - commands: ['focus --workspace 3'] bindings: ['LWin+3'] - commands: ['focus --workspace 4'] bindings: ['LWin+4'] - commands: ['focus --workspace 5'] bindings: ['LWin+5'] - commands: ['focus --workspace 6'] bindings: ['LWin+6'] - commands: ['focus --workspace 7'] bindings: ['LWin+7'] - commands: ['focus --workspace 8'] bindings: ['LWin+8'] - commands: ['focus --workspace 9'] bindings: ['LWin+9'] # Move focused window to a workspace defined in `workspaces` config. - commands: ['move --workspace 1'] bindings: ['LWin+shift+1'] - commands: ['move --workspace 2'] bindings: ['LWin+shift+2'] - commands: ['move --workspace 3'] bindings: ['LWin+shift+3'] - commands: ['move --workspace 4'] bindings: ['LWin+shift+4'] - commands: ['move --workspace 5'] bindings: ['LWin+shift+5'] - commands: ['move --workspace 6'] bindings: ['LWin+shift+6'] - commands: ['move --workspace 7'] bindings: ['LWin+shift+7'] - commands: ['move --workspace 8'] bindings: ['LWin+shift+8'] - commands: ['move --workspace 9'] bindings: ['LWin+shift+9']