Skip to content

Instantly share code, notes, and snippets.

@Keshav13142
Created September 16, 2024 11:36
Show Gist options
  • Save Keshav13142/0d52c82507db5817cdee206d6e1438a9 to your computer and use it in GitHub Desktop.
Save Keshav13142/0d52c82507db5817cdee206d6e1438a9 to your computer and use it in GitHub Desktop.
Glazewm config
general:
# Commands to run when the WM has started (e.g. to run a script or launch
# another application). Here we are running a batch script to start Zebar.
startup_commands: ["shell-exec %userprofile%/.glzr/zebar/start.bat"]
focus_follows_cursor: false
toggle_workspace_on_refocus: false
cursor_jump:
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"
gaps:
inner_gap: "0px"
outer_gap:
top: "40px"
right: "0px"
bottom: "0px"
left: "0px"
window_effects:
focused_window:
border:
enabled: false
color: "#0000ff"
other_windows:
border:
enabled: false
window_behavior:
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:
centered: true
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.PowerAccent" }
- 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: ["L", "left"]
- commands: ["resize --width +2%"]
bindings: ["H", "right"]
- commands: ["resize --height +2%"]
bindings: ["J", "up"]
- commands: ["resize --height -2%"]
bindings: ["K", "down"]
# Press enter/escape to return to default keybindings.
- commands: ["wm-disable-binding-mode --name resize"]
bindings: ["escape", "enter"]
# When enabled, all keybindings are disabled except for alt+shift+p which
# returns to default keybindings.
- name: "pause"
keybindings:
- commands: ["wm-disable-binding-mode --name pause"]
bindings: ["alt+shift+p"]
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+shift+h", "alt+shift+left"]
- commands: ["move --direction right"]
bindings: ["alt+shift+l", "alt+shift+right"]
- commands: ["move --direction up"]
bindings: ["alt+shift+k", "alt+shift+up"]
- commands: ["move --direction down"]
bindings: ["alt+shift+j", "alt+shift+down"]
# Resize focused window by a percentage or pixel amount.
- commands: ["resize --width -2%"]
bindings: ["ctrl+alt+l"]
- commands: ["resize --width +2%"]
bindings: ["ctrl+alt+h"]
- commands: ["resize --height +2%"]
bindings: ["ctrl+alt+j"]
- commands: ["resize --height -2%"]
bindings: ["ctrl+alt+k"]
# 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 all keybindings until alt+shift+p is pressed again.
- commands: ["wm-enable-binding-mode --name 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: ["ctrl+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: ["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+shift+e"]
# Re-evaluate configuration file.
- commands: ["wm-reload-config"]
bindings: ["alt+shift+r"]
# Redraw all windows.
- commands: ["wm-redraw"]
bindings: ["alt+shift+w"]
- commands: ["shell-exec explorer"]
bindings: ["alt+e"]
- commands:
[
"shell-exec C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe",
]
bindings: ["alt+w"]
# "C:\Program Files\WindowsApps\MSTeams_24215.1007.3082.1590_x64__8wekyb3d8bbwe\ms-teams.exe"
- commands: ["shell-exec pwsh --nologo"]
bindings: ["alt+enter"]
# Focus the next/previous workspace defined in `workspaces` config.
- commands: ["focus --next-workspace"]
bindings: ["alt+s"]
- commands: ["focus --prev-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"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment