#1350·glazewm

[Bug] App leaks through workspace

Author: aahan0511Created Apr 3, 2026Updated Aug 13, 2026
Labelstype: bug

Describe the bug

Some apps, for example Screenbox and Devtoys leak through the workspaces and are visible in other workspaces via Alt+Tab and the Taskbar.

https://github.com/user-attachments/assets/a870d637-68d2-4b88-9c68-beef5da0f4d7

Reproduction

You can open apps such as Devtoys or Screenbox, switch to some other workspace and try Alt+Tabing.

Here is my config.yaml

config.yaml
yaml
# https://github.com/glzr-io/glazewm?tab=readme-ov-file#config-documentation

# --- #

general:
# https://github.com/glzr-io/glazewm?tab=readme-ov-file#config-general

  # Commands to run when the WM has started (e.g. to run a script or launch another application).
  startup_commands: []

  # Commands to run just before the WM is shutdown.
  shutdown_commands: []

  # Commands to run after the WM config has 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: false

    # Trigger for cursor jump:
    # - 'monitor_focus': Jump when focus changes between monitors.
    # - 'window_focus': Jump when focus changes between windows.
    trigger: "monitor_focus"

# --- #

keybindings:
# https://github.com/glzr-io/glazewm?tab=readme-ov-file#default-keybindings
# https://github.com/glzr-io/glazewm?tab=readme-ov-file#config-keybindings

  # Shifting Focus
  - commands: ['focus --direction left']
    bindings: ['alt+left']
  - commands: ['focus --direction right']
    bindings: ['alt+right']
  - commands: ['focus --direction up']
    bindings: ['alt+up']
  - commands: ['focus --direction down']
    bindings: ['alt+down']

  - commands: ['focus --prev-workspace']
    bindings: ['alt+control+left']
  - commands: ['focus --next-workspace']
    bindings: ['alt+control+right']

  - 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'] 

  # Moving Around
  - commands: ['move --direction left']
    bindings: ['alt+shift+left']
  - commands: ['move --direction right']
    bindings: ['alt+shift+right']
  - commands: ['move --direction up']
    bindings: ['alt+shift+up']
  - commands: ['move --direction down']
    bindings: ['alt+shift+down']

  - commands: ['move --prev-workspace', 'focus --prev-workspace']
    bindings: ['alt+shift+control+left']
  - commands: ['move --next-workspace', 'focus --next-workspace']
    bindings: ['alt+shift+control+right']

  - 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'] 

  # Modifying Windows  
  - commands: ['resize --width -2%']
    bindings: ['alt+oem_open_brackets']
  - commands: ['resize --width +2%']
    bindings: ['alt+oem_close_brackets']
  - commands: ['resize --height -5%']
    bindings: ['alt+shift+oem_open_brackets']
  - commands: ['resize --height +5%']
    bindings: ['alt+shift+oem_close_brackets']

  - commands: ['close']
    bindings: ['alt+w']
  - commands: ['ignore']
    bindings: ['alt+shift+e']

  - commands: ['toggle-tiling']
    bindings: ['alt+t']
  - commands: ['toggle-minimized']
    bindings: ['alt+m']
  - commands: ['toggle-fullscreen']
    bindings: ['alt+f']
  
  # general
  - commands: ['wm-toggle-pause']
    bindings: ['alt+p']
  - commands: ['wm-reload-config']
    bindings: ['alt+r']
  - commands: ['wm-exit']
    bindings: ['alt+q']

# --- #

gaps:
# https://github.com/glzr-io/glazewm?tab=readme-ov-file#config-gaps

  # Whether to scale the gaps with the DPI of the monitor.
  scale_with_dpi: true

  # Gap between adjacent windows.
  inner_gap: '9px'

  # Gap between windows and the screen edge.
  outer_gap:
    top: '6px'
    right: '6x'
    bottom: '6px'
    left: '6px'

# --- #

workspaces:
# https://github.com/glzr-io/glazewm?tab=readme-ov-file#config-workspaces
  - name: '1'
    keep_alive: true
  - name: '2'
    keep_alive: true
  - name: '3'
    keep_alive: true
  - name: '4'
    keep_alive: false
  - name: '5'
    keep_alive: false
  - name: '6'
    keep_alive: false
  - name: '7'
    keep_alive: false
  - name: '8'
    keep_alive: false
  - name: '9'
    keep_alive: true

# --- #

window_rules:
# https://github.com/glzr-io/glazewm?tab=readme-ov-file#config-window-rules

  - commands: ['set-floating']
    match:
      - window_process: { equals: 'Taskmgr' }
      - window_process: { equals: 'Notepad' }

  - commands: ['ignore']
    match:
      - window_process: { equals: 'yasb' }
      - window_process: { equals: 'Raycast' }

      # 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' }
      - window_process: { equals: 'EXCEL' }
        window_class: { not_regex: 'XLMAIN' }
      - window_process: { equals: 'WINWORD' }
        window_class: { not_regex: 'OpusApp' }
      - window_process: { equals: 'POWERPNT' }
        window_class: { not_regex: 'PPTFrameClass' }

# --- #

window_effects:
# https://github.com/glzr-io/glazewm?tab=readme-ov-file#config-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: '#89b4fa'

    # 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: '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: '100%'

  # Visual effects to apply to non-focused windows.
  other_windows:
    border:
      enabled: true
      color: '#9399b2'
    hide_title_bar:
      enabled: false
    corner_style:
      enabled: true
      style: 'rounded'
    transparency:
      enabled: false
      opacity: '100%'

# --- #

window_behavior:
# https://github.com/glzr-io/glazewm?tab=readme-ov-file#config-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

# --- #

Stack trace or error logs (if applicable)

bash

Version number

glazewm 3.9.1