mirror of
https://github.com/js0ny/dotfiles.git
synced 2025-12-21 08:43:00 +00:00
feat(glazewm): Change Windows TWM to GlazeWM
This commit is contained in:
parent
4657765e21
commit
22ca99086c
16 changed files with 999 additions and 253 deletions
314
platforms/win/glzr/glazewm/config.yaml
Normal file
314
platforms/win/glzr/glazewm/config.yaml
Normal file
|
|
@ -0,0 +1,314 @@
|
|||
# $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: "20px"
|
||||
|
||||
# Gap between windows and the screen edge.
|
||||
outer_gap:
|
||||
top: "60px"
|
||||
right: "20px"
|
||||
bottom: "20px"
|
||||
left: "20px"
|
||||
|
||||
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: false
|
||||
# Allowed values: 'square', 'rounded', 'small_rounded'.
|
||||
style: "square"
|
||||
|
||||
# Visual effects to apply to non-focused windows.
|
||||
other_windows:
|
||||
border:
|
||||
enabled: true
|
||||
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: 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"
|
||||
- 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: ["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+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+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+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: ["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 wt"]
|
||||
bindings: ["lwin+r"]
|
||||
|
||||
# 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"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue