configs/windoof/.glzr/glazewm/config.yaml
2025-02-17 20:35:53 +00:00

324 lines
10 KiB
YAML

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: 'window_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: '2px'
# Gap between windows and the screen edge.
outer_gap:
top: '42px'
right: '2px'
bottom: '4px'
left: '2px'
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: '#8dbcff'
# 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: 'small_rounded'
# Change the transparency of the window.
transparency:
enabled: false
# Can be something like '95%' or '0.95' for slightly transparent windows.
# '0' or '0%' is fully transparent (and, by consequence, unfocusable).
opacity: '95%'
# Visual effects to apply to non-focused windows.
other_windows:
border:
enabled: true
color: '#a1a1a1'
hide_title_bar:
enabled: false
corner_style:
enabled: true
style: 'small_rounded'
transparency:
enabled: true
opacity: '85%'
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: true
fullscreen:
# Maximize the window if possible. If the window doesn't have a
# maximize button, then it'll be fullscreen'ed normally instead.
maximized: true
# Whether to show fullscreen windows as always on top.
shown_on_top: true
workspaces:
- name: '1'
- name: '2'
- name: '3'
- name: '4'
- name: '5'
- name: '6'
- name: '7'
- name: '8'
- name: '9'
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' }
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: ['alt+h', 'alt+left']
- commands: ['focus --direction right']
bindings: ['alt+l', 'alt+right']
- commands: ['focus --direction up']
bindings: ['alt+k', 'alt+up']
- commands: ['focus --direction down']
bindings: ['alt+j', 'alt+down']
# Move focused window in a given direction.
- commands: ['move --direction left']
bindings: ['alt+ctrl+h', 'alt+ctrl+left']
- commands: ['move --direction right']
bindings: ['alt+ctrl+l', 'alt+ctrl+right']
- commands: ['move --direction up']
bindings: ['alt+ctrl+k', 'alt+ctrl+up']
- commands: ['move --direction down']
bindings: ['alt+ctrl+j', 'alt+ctrl+down']
# Resize focused window by a percentage or pixel amount.
- commands: ['resize --width -2%']
bindings: ['alt+shift+h']
- commands: ['resize --width +2%']
bindings: ['alt+shift+l']
- commands: ['resize --height +2%']
bindings: ['alt+shift+k']
- commands: ['resize --height -2%']
bindings: ['alt+shift+j']
# As an alternative 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: ['alt+r']
# Disables window management and all other keybindings until alt+shift+p
# is pressed again.
- commands: ['wm-toggle-pause']
bindings: ['alt+shift+p']
# Change tiling direction. This determines where new tiling windows will
# be inserted.
# - commands: ['toggle-tiling-direction']
# bindings: ['alt+v']
# Change focus from tiling windows -> floating -> fullscreen.
- commands: ['wm-cycle-focus']
bindings: ['alt+space']
# Change the focused window to be floating.
- commands: ['toggle-floating --centered']
bindings: ['alt+shift+t']
# Change the focused window to be tiling.
# - commands: ['toggle-tiling']
# bindings: ['alt+t']
# Change the focused window to be fullscreen.
- commands: ['toggle-fullscreen']
bindings: ['alt+f']
# Minimize focused window.
- commands: ['toggle-minimized']
bindings: ['alt+m']
# Close focused window.
- commands: ['close']
bindings: ['alt+q']
# Kill GlazeWM process safely.
- commands: ['wm-exit']
bindings: ['alt+m']
# Re-evaluate configuration file.
- commands: ['wm-reload-config']
bindings: ['alt+shift+r']
# Redraw all windows.
- commands: ['wm-redraw']
bindings: ['alt+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 pwsh']
bindings: ['alt+enter']
- commands: ['shell-exec wt ubuntu']
bindings: ['alt+t']
- commands: ['shell-exec explorer.exe']
bindings: ['alt+e']
- commands: ['shell-exec steam.exe']
bindings: ['alt+shift+s']
# Focus the next/previous active workspace defined in `workspaces` config.
- commands: ['focus --next-active-workspace']
bindings: ['alt+s']
- commands: ['focus --prev-active-workspace']
bindings: ['alt+a']
# Focus the workspace that last had focus.
- commands: ['focus --recent-workspace']
bindings: ['alt+d']
# Change focus to a workspace defined in `workspaces` config.
- commands: ['focus --workspace 1']
bindings: ['alt+1']
- commands: ['focus --workspace 2']
bindings: ['alt+2']
- commands: ['focus --workspace 3']
bindings: ['alt+3']
- commands: ['focus --workspace 4']
bindings: ['alt+4']
- commands: ['focus --workspace 5']
bindings: ['alt+5']
- commands: ['focus --workspace 6']
bindings: ['alt+6']
- commands: ['focus --workspace 7']
bindings: ['alt+7']
- commands: ['focus --workspace 8']
bindings: ['alt+8']
- commands: ['focus --workspace 9']
bindings: ['alt+9']
# Move the focused window's parent workspace to a monitor in a given
# direction.
# - commands: ['move-workspace --direction left']
# bindings: ['alt+shift+a']
# - commands: ['move-workspace --direction right']
# bindings: ['alt+shift+f']
# - commands: ['move-workspace --direction up']
# bindings: ['alt+shift+d']
# - commands: ['move-workspace --direction down']
# bindings: ['alt+shift+s']
# Move focused window to a workspace defined in `workspaces` config.
- commands: ['move --workspace 1', 'focus --workspace 1']
bindings: ['alt+shift+1']
- commands: ['move --workspace 2', 'focus --workspace 2']
bindings: ['alt+shift+2']
- commands: ['move --workspace 3', 'focus --workspace 3']
bindings: ['alt+shift+3']
- commands: ['move --workspace 4', 'focus --workspace 4']
bindings: ['alt+shift+4']
- commands: ['move --workspace 5', 'focus --workspace 5']
bindings: ['alt+shift+5']
- commands: ['move --workspace 6', 'focus --workspace 6']
bindings: ['alt+shift+6']
- commands: ['move --workspace 7', 'focus --workspace 7']
bindings: ['alt+shift+7']
- commands: ['move --workspace 8', 'focus --workspace 8']
bindings: ['alt+shift+8']
- commands: ['move --workspace 9', 'focus --workspace 9']
bindings: ['alt+shift+9']