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 zebar"] # 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" gaps: # Gap between adjacent windows. inner_gap: "20px" # Gap between windows and the screen edge. outer_gap: # top: "100px" top: "20px" 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" # Visual effects to apply to non-focused windows. other_windows: border: enabled: true color: "#a1a1a1" 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: 0 - name: "2" bind_to_monitor: 1 # - 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" } # Task Manager - window_process: { regex: "Taskmgr" } # File Explorer Transfer - window_process: { regex: ".*[Cc]omplete" } # Windows Settings - window_process: { regex: "SystemSettings" } window_class: { regex: "Settings" } - window_process: { regex: "SystemSettings.exe" } window_class: { regex: "Settings" } # Microsoft Management Console (e.g.: Device Manager) - window_process: { regex: "mmc" } - window_process: { regex: "mmc.exe" } # Winutil - window_title: { regex: "Administrator: winutil" } - window_title: { regex: "irm https://christitus.com/win | iex(Admin)" } - window_title: { regex: "Chris Titus Tech's Windows Utility" } # Seelen UI - window_process: { regex: "seelen" } # O&O ShutUp10++ - window_process: { regex: "OOSU10" } # Intel Software Installer - window_process: { regex: "WirelessSetup" } # VLC - window_process: { regex: "vlc" } # 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*" } - window_process: { equals: "Lively" } # Gimp - window_process: { equals: "gimp" } ############### # Games ############### # Deadlock - window_process: { regex: "project8" } - window_process: { regex: "project8.exe" } # Minecraft - window_process: { regex: "Betacraft" } - window_process: { regex: "Betacraft.exe" } - window_process: { regex: "Minecraft" } - window_process: { regex: "prismlauncher" } - window_title: { regex: "Prism Launcher" } # EA FC - window_process: { regex: "FC24" } - window_process: { regex: "FC24.exe" } # Alan Wake - window_process: { regex: "AlanWake" } - window_process: { regex: "AlanWake.exe" } # BeamNG - window_process: { regex: "BeamNG" } # Content Warming - window_process: { regex: "Content Warning" } # Control - window_process: { regex: "Control" } # Crab Champions - window_process: { regex: "CrabChampions" } # Duck Game - window_process: { regex: "DuckGame" } # Easy Anti Cheat - window_process: { regex: "EAAntiCheat" } - window_process: { regex: "EasyAntiCheat" } # Deep Rock Galactic - window_process: { regex: "FSD" } # GTA V - window_process: { regex: "GTA5" } - window_process: { regex: "GTAV" } # Guts and Glory - window_process: { regex: "Guts and Glory" } # Human Fall Flat - window_process: { regex: "Human" } # Lethal Company - window_process: { regex: "Lethal Company" } - window_process: { regex: "Make Way" } - window_process: { regex: "Phasmophobia" } - window_process: { regex: "PlateUp" } - window_process: { regex: "RocketLeague" } - window_process: { regex: "Shadows of Doubt" } - window_process: { regex: "Syx" } - window_process: { regex: "Tabletop Simulator" } - window_process: { regex: "UNO" } - window_process: { regex: "UbisoftConnectInstaller" } - window_process: { regex: "UltimateChickenHorse" } - window_process: { regex: "Wreckfest" } - window_process: { regex: "alan_wakes_american_nightmare" } - window_process: { regex: "bg3" } - window_process: { regex: "iRacing" } - window_process: { regex: "iw3" } # Rockstar Social Club - window_process: { regex: "SocialClubHelper" } - window_process: { regex: "SocialClubHelper.exe" } - window_process: { regex: "Rockstar-Games-Launcher" } - window_process: { regex: "Social-Club-Setup" } # Davinci Resolve - window_process: { regex: "Resolve" } - window_process: { regex: "Resolve.exe" } # Paint.NET - window_process: { regex: "paintdotnet" } - window_process: { regex: "paintdotnet.exe" } # PCSX2 - window_process: { regex: "pcsx2" } - window_process: { regex: "pcsx2-qt" } - window_process: { regex: "pcsx2-qt.exe" } - commands: ["set-floating"] match: - window_process: { equals: "Flow.Launcher" } title: { equals: "Settings" } 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"] # 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: ["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: ["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+;"] # 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: ["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+shift+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 cmd"] 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"]