dotfiles/home/dot_glzr/glazewm/config.yaml

364 lines
12 KiB
YAML

# $DOTFILES/platforms/win/glzr/glazewm/config.yaml
# Date: 2025-01-05
# Author: js0ny
# Location:
# - %UserProfile%\.glzr\glazewm\config.yaml
# Linking: Link to whole directory
# New-Item -ItemType SymbolicLink -Path $Env:UserProfile\.glzr -Target $DOTFILES\platforms\win\glzr -Force
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: false
# 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: "50px"
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: "#f6a7ba"
# 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: false
# Allowed values: 'square', 'rounded', 'small_rounded'.
style: "square"
# Visual effects to apply to non-focused windows.
other_windows:
border:
enabled: false
color: "#a1a1a1"
hide_title_bar:
enabled: false
corner_style:
enabled: false
style: "square"
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: false
# 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"
- 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" }
# Notion Desktop Popup
- window_process: { equals: "Notion" }
window_class: { regex: "Chrome_WidgetWin_1" }
# PowerToys Tools
- window_process: { equals: "PowerToys" }
window_class: { regex: 'HwndWrapper\[PowerToys\.PowerAccent.*?\]' }
- window_process: { equals: "PowerToys" }
window_title: { regex: ".*? - Peek" }
# PowerToys Command Palette
- window_title: { equals: "Command Palette" }
window_class: { equals: "WinUIDesktopWin32WindowClass" }
# Quake-style consoles.
- window_process: { equals: "WindowsTerminal" }
window_class: { equals: "CASCADIA_HOSTING_WINDOW_CLASS" }
# Misc
- window_process: { equals: "Lively" }
window_class: { regex: "HwndWrapper" }
- commands: ["set-floating"]
match:
# Razer Synapse
- window_process: { equals: "RazerAppEngine" }
# AutoHotKey Window Spy
- window_process: { equals: "AutoHotkeyUX" }
- window_process: { equals: "ApplicationFrameHost" }
window_title: { regex: "Settings|设置" }
## Messenger Picture Preview
# QQ 图片预览
- window_process: { equals: "QQ" }
window_title: { equals: "图片查看器" }
# 微信图片视图
- window_process: { equals: "WeChat" }
window_class: { equals: "ImagePreviewWnd" }
# 微信朋友圈视图
- window_process: { equals: "WeChat" }
window_class: { equals: "SnsWnd" }
- window_process: { equals: "setup" }
window_title: { equals: "Visual Studio Installer" }
# JetBrains IDEs Floating Dialogs
- window_class: { equals: "SunAwtDialog" }
window_process:
{ regex: "rider64|idea64|goland64|rustrover64|clion64|pycharm64" }
## Browser
- window_process: { equals: "vivaldi" }
window_title: { regex: "^Vivaldi 设置.*$" }
- window_process: { equals: "vivaldi" }
window_title: { regex: "^Bitwarden.*$" }
## KDE Apps on Windows, Configure & Keymap Popup
- window_class: { regex: "^Qt681QWindow(Icon)?$" }
window_title: { regex: "^Configure.*$" }
- window_process: { equals: "haruna" }
window_title: { regex: "^Settings.*$" }
- window_process: { equals: "steamwebhelper" }
window_title: { equals: "好友列表" }
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: ["i", "right"]
- commands: ["resize --height +2%"]
bindings: ["e", "up"]
- commands: ["resize --height -2%"]
bindings: ["n", "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+h", "lwin+left"]
- commands: ["focus --direction right"]
bindings: ["lwin+i", "lwin+right"]
- commands: ["focus --direction up"]
bindings: ["lwin+e", "lwin+up"]
- commands: ["focus --direction down"]
bindings: ["lwin+n", "lwin+down"]
# Move focused window in a given direction.
- commands: ["move --direction left"]
bindings: ["lwin+shift+h", "lwin+shift+left"]
- commands: ["move --direction right"]
bindings: ["lwin+shift+i", "lwin+shift+right"]
- commands: ["move --direction up"]
bindings: ["lwin+shift+e", "lwin+shift+up"]
- commands: ["move --direction down"]
bindings: ["lwin+shift+n", "lwin+shift+down"]
# Resize focused window by a percentage or pixel amount.
# - commands: ["resize --width -2%"]
# bindings: ["alt+u"]
# - commands: ["resize --width +2%"]
# bindings: ["alt+p"]
# - commands: ["resize --height +2%"]
# bindings: ["alt+o"]
# - commands: ["resize --height -2%"]
# bindings: ["alt+i"]
# 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: ["lwin+shift+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: ["lwin+x"]
# 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: ["lwin+shift+f"]
# 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+ctrl+f"]
- commands: ["shell-exec dopus.exe"]
bindings: ["lwin+f"]
# Minimize focused window.
- commands: ["toggle-minimized"]
bindings: ["lwin+m"]
# Close focused window.
- commands: ["close"]
bindings: ["lwin+q"]
# Kill GlazeWM process safely.
- commands: ["wm-exit"]
bindings: ["alt+shift+e"]
# Re-evaluate configuration file.
- commands: ["wm-reload-config"]
bindings: ["alt+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 wezterm-gui.exe start"]
bindings: ["lwin+r"]
- commands: ["shell-exec sharex -RectangleRegion"]
bindings: ["lwin+c"]
# 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: ["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 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: ["lwin+shift+1"]
- commands: ["move --workspace 2", "focus --workspace 2"]
bindings: ["lwin+shift+2"]
- commands: ["move --workspace 3", "focus --workspace 3"]
bindings: ["lwin+shift+3"]
- commands: ["move --workspace 4", "focus --workspace 4"]
bindings: ["lwin+shift+4"]
- commands: ["move --workspace 5", "focus --workspace 5"]
bindings: ["lwin+shift+5"]
- commands: ["move --workspace 6", "focus --workspace 6"]
bindings: ["lwin+shift+6"]
- commands: ["move --workspace 7", "focus --workspace 7"]
bindings: ["lwin+shift+7"]
- commands: ["move --workspace 8", "focus --workspace 8"]
bindings: ["lwin+shift+8"]
- commands: ["move --workspace 9", "focus --workspace 9"]
bindings: ["lwin+shift+9"]