Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: glzr-io/glazewm

v3.10.1

21 Mar 12:17
56a8bde

Choose a tag to compare

Getting started on macOS? Install via Homebrew:

# For glazewm + zebar (the top bar):
brew install --cask glzr-io/tap/glazewm glzr-io/tap/zebar

🐛 Bug fixes

  • Fixed regression for lwin/rwin/win keybindings not working. (#1318 by @freddiehaddad)
  • Fixed parse error when using keybindings with ` and ' (#1324)
  • Fixed Display device not found error during sleep/wake on Windows. (#1311 by @durdn)
  • Fixed "Run on system startup" tray option not working. (#1333)
  • Fixed "Show config folder" tray option not opening the correct path. (#1332)
  • Fixed windows on macOS being unmanaged after sleep/wake. (#1329, #1331)
  • Fixed cleanup on IPC send failure. (#1309 by @durdn)
  • Updated dependencies for macOS 26 compatibility. (#1320 by @lohrm-spf)

Big thanks to @durdn, @freddiehaddad, @lohrm-spf for contributing to this release 💛

/ @lars-berger

v3.10.0

16 Mar 15:54
aa488b4

Choose a tag to compare

GlazeWM is now cross-platform! 🥳

This release introduces macOS support alongside a bunch of Windows fixes and QOL improvements from the community.

Getting started on macOS? Install via Homebrew:

# For glazewm + zebar (the top bar):
brew install --cask glzr-io/tap/glazewm glzr-io/tap/zebar
macos-demo.mp4

Using @mushfikurr's overline widget for zebar.

🎉 New features

  • macOS support - GlazeWM now runs on macOS. (#1272)
  • Auto-launch on startup - a new tray menu option to launch GlazeWM on system startup. (#1116 by @AntoineGS)
  • update-workspace-config command - rename and update workspace configs at runtime. (#1042 by @mzhu-zx)
  • Added support for henkan and muhenkan keys on JP keyboards. (#1182 by @tanitta)
  • Improved shell-exec error messages. (#1289)
  • Errors in startup commands are no longer fatal. (#1290)

🐛 Bug fixes

  • Fixed "ghost" windows that occupied space after a window had been closed. (#1220 by @HeyItsGilbert)
  • Fixed No displayed workspace after waking from sleep. (#1184 by @vantm)
  • Fixed incorrect monitor-bound workspaces after disconnecting and reconnecting a monitor. (#1185 by @vantm)
  • Fixed window cloaking no longer working restarting Explorer. (#1273 by @Video-Nomad)
  • Fixed cursor jump not working with wm-cycle-focus and window minimize. (#1188 by @Ma-Shell)
  • Fixed manually placed floating windows being recentering e.g. when unplugging USBs. (#1121 by @Ciuriya, #1304 by @babysnakes)
  • Fixed dragged windows not always dropping into the workspace under the cursor. (#1156 by @Miitto)
  • Fixed window misalignment after restoring from maximize. (#1297)
  • Improved handling of fullscreen & maximized windows. (#1298)
  • Added ignore rule for PowerToys Command Palette to the sample config. (#1140 by @Lubieerror)
  • Fixed windows being minimized via toggle commands or when restoring from fullscreen. (#1071 by @imrs776)
  • Regression fixes after macOS changes + extras (#1295 by @Video-Nomad, #1302, #1291, #1301, #1305, #1299, #1292)

🛠️ Internal changes

📝 Documentation


Big thanks to all the contributors who made this release possible 💛

@AntoineGS, @babysnakes, @Ciuriya, @HeyItsGilbert, @imrs776, @Lubieerror, @Ma-Shell, @Miitto, @mzhu-zx, @tanitta, @vantm, @Video-Nomad, @xiaomizhou2

/ @lars-berger

v3.9.1

18 Jun 17:49
6242f8a

Choose a tag to compare

🐛 Bug fixes

  • Fixed error with keep_alive workspaces that were bound to a specific monitor (#1102).
  • Reverted rule for initializing WS_POPUP windows as floating (#1101). This was causing common apps like Steam, Telegram, and more to initialize as floating instead of tiling correctly.

🛠️️ Internal changes

  • Updated winget-releaser in Winget release workflow (#1098).

Big thanks to @vikingnope for contributing to this release 💛

/ @lars-berger

v3.9.0

17 Jun 10:15
22b9d17

Choose a tag to compare

🎉 New features

  • Customizable outer gap for when a workspace has only one window (#933).
     gaps:
       # Standard gap between windows and screen edges
       outer_gap:
         top: '60px'
         right: '20px'
         bottom: '20px'
         left: '20px'
    
      # Overrides `outer_gap` when there is just one window on a workspace.
      single_window_outer_gap:
        top: '80px'
        right: '15%'
        bottom: '40px'
        left: '15%'
  • keep_alive workspaces now activate automatically on their bound monitor (#998).
  • The focus follows cursor feature (enabled via general.focus_follows_cursor) now also automatically changes focus between monitors (#959).
  • New targets added to focus and move commands (#990, #981, #985, #963).
    • --next-active-workspace-on-monitor - Target the next active workspace on the current monitor.
    • --prev-active-workspace-on-monitor - Target the previous active workspace on the current monitor.
    • --workspace-in-direction <direction> - Target the workspace in a given direction.
    • --container-id <id> - Target a specific container (window/workspace) by its ID (only for focus command).
  • Added new filtering options to the wm-cycle-focus command (#964):
    • --omit-floating - Skip floating windows during focus cycling.
    • --omit-tiling - Skip tiled windows during focus cycling.

🐛 Bug fixes

  • Fixed channel closed error and improved overall error handling (#1087).
  • Fixed invalid window handle error and improved checks for whether a window is manageable (#1083, #1091).
  • Added ignore rules for Microsoft 365 popups to sample config (#1051).
  • Fixed a regression where focus events weren't being broadcast when focus was changed manually (#1047).
  • Float windows by default if they have a WS_POPUP style (#941).
  • Improved reliability of window z-order updates (#1090).

📘 Docs improvements

  • Added Chocolatey and Scoop installation instructions to README (#961).
  • Updated README with maintained GLA-ALT fork reference (#1024) and current project board link (#1035).

🛠️️ Internal changes

  • Clippy fixes for latest nightly builds (#1088, #967) and updated cargo dependencies (#1089).
  • Added VSCode settings file for code formatting (#962).

🌟 Zebar v3 launch

I'm excited to announce that Zebar v3 is now officially available! Zebar, our companion app for top bars and desktop widgets, has received a massive update with marketplace support, system tray integration, and other big improvements. Full details here

The new Zebar version is optionally available via the standard GlazeWM installer below.

🏠 New homepage

A new homepage is now live at glzr.io! It's pretty bare bones at the moment, but sometime soon it'll be the home for docs for GlazeWM and Zebar.


Big thanks to @Miitto, @themegaxandy, @wrapperup, @dillontkh, @HolbyFPV, @jsfr, @Dinesh-58, @jackssrt, @Im-shamo, and @ChichiMsdk for contributing to this release 💛

/ @lars-berger

v3.8.1

28 Jan 18:19
0e4a5aa

Choose a tag to compare

🐛 Bug fixes

  • Crash when logging window titles with non-English characters (#947).
  • Ensure COM interfaces are cleaned up on shutdown (#948).
  • Running glazewm CLI command without arguments causes recursive self-launching (#949).

Thanks for all the help with diagnosing the issues above - especially @Video-Nomad!

/ @lars-berger

v3.8.0

28 Jan 10:04
d574060

Choose a tag to compare

🎉 New features

  • Add window transparency effect (#864, #939).
window_effects:
  focused_window:
    # Add the following to the config file:
    transparency:
      enabled: true
      opacity: "90%"
transparency.mp4
  • Bring windows of the same state to the top of z-order (#923).
show-on-top.mp4
  • Fullscreen now consistently overlaps the Windows taskbar (#940 - fixes #881, #732).
  • Improve handling of missing fields in config file (#926 - fixes #900).

🐛 Bug fixes

  • Fix CLI not working. It's also possible to call glazewm as a shell command now (e.g. via AutoHotKey as shown below) (#908 - fixes #861, #902).
; Working commands in AHK! e.g. bind alt+h to focus left:
!h::{
  Run "glazewm command focus --direction left", , "Hide"
}
  • Fixes to pause state - prevent commands from still being run while paused (#889, #927 - fixes #882, #913).
  • Several fixes to focus-related issues (#929, #930, #931, #932).

📘 Docs improvements

🛠️️ Internal changes

  • Add clippy lint check on opened PR's and fix all the current 200+ warnings (#910, #915).
  • Several large changes to the codebase structure, see details here (#908, #928, #924).
  • Updated to newer winget release workflow (#921).

Big thanks to @vikingnope, @jackssrt, and @michidk for contributing to this release 💛

/ @lars-berger,

v3.7.0

03 Dec 08:49
ac4ae08

Choose a tag to compare

🎉 New features

  • Add new wm-toggle-pause command for fully pausing the WM (#828, #870).
    • Replaced the alt+shift+p keybinding in the default config with this new command.
  • Configure whether to show all windows in the native Windows taskbar (#873, resolves #848).
    • The previous release changed windows to be hidden/shown via a new method called cloaking. Cloaking causes all windows to be shown in the taskbar, which is now configurable with general.show_all_in_taskbar.
  • Improve --centered flag behavior for set-floating and toggle-floating (#842).
  • Revert alt+s and alt+a in the default config to switch focus between prev/next active workspace (#865).

🐛 Bug fixes

  • Restore to previous tiling size from minimized/fullscreen (#876, fixes #506 #782).
  • move-workspace moves cursor if cursor_jump is enabled (#874, fixes #859).
  • Fix focus_follows_cursor on touchpads (#875, fixes #799).
  • Prevent moving tiling windows with mouse from affecting hidden workspaces (#877, fixes #829).
  • Fix path delimiters to CLI directory in PATH env variable (#872).

Big thanks to @DreamMaoMao and @michidk for contributing to this release 💛

/ @lars-berger

v3.6.0

14 Nov 20:38
382c8a1

Choose a tag to compare

Join the Discord server

🦀 New method of switching between workspaces (#792)

We've implemented "cloaking" as the new default method for hiding/showing windows during workspace switches. This brings a few big improvements:

  • Instant transitions when switching between workspaces.
  • Better stability and compatibility with third-party apps (resolving issues like #250).
  • Consistency in which windows are shown in the taskbar.

Note: With cloaking enabled, windows from all workspaces appear in the Windows taskbar. The new method should hopefully feel much nicer, but the legacy method remains available via general.hide_method set to hide.

🎉 Other new features

  • New --hide-window flag for shell-exec to run commands in background (#819).
    • Makes it possible to run scripts without any terminal popup windows.
  • Add new position --x-pos <POS> --y-pos <POS> command for repositioning floating windows (#817).
    • e.g. position --x-pos 0 --y-pos 0.
  • Size and position can now be set with the set-floating command (#817)
    • e.g. set-floating --x-pos 0 --y-pos 0 --width 500px --height 500px.
  • Smoother restore from maximize into tiling/floating position (#852).

🐛 Bug fixes

  • Fix regression from v3.4.0 where some taskbar positions cause incorrect working area (#850, fixes #790).
  • Persist window animations setting across restarts (#832, fixes #651).
  • Prevent window flicker when toggling between fullscreen states (#851, fixes #640).
  • Set focus to valid desktop window in an empty workspace (#821).

🛠️️ Internal changes

  • Change cargo lib and bin path to enable build on WSL (#827).
  • Linting fixes and working doctests (#834, #831).

Big thanks to @rpop0, @DreamMaoMao, @Miitto, @veryard, @Dovias and @michidk for contributing to this release 💛

/ @lars-berger

v3.5.0

27 Oct 08:35
940bb4c

Choose a tag to compare

In case anyone missed it from the last release:

Zebar update & startup change

  • Zebar, which can optionally be installed through the standard installer below, has officially been updated to V2 ⚡For full details, check out the V2 release notes.
    • This new version is now included in the standard GlazeWM installer.
    • Existing installs can be updated by leaving "Install Zebar" checked.
    • Zebar start script has been removed - update your existing GlazeWM config (%userprofile%/.glzr/glazewm/config.yaml) as follows:
-  startup_commands: ['shell-exec %userprofile%/.glzr/zebar/start.bat']
+  startup_commands: ['shell-exec zebar']

Join the Discord server

🎉 New features

  • Add not_equals and not_regex window rule match types (#798).
  • Destroy empty workspaces when a window was killed while its workspace was not displayed (e.g. via task manager) (#801).
  • Change focus --next-workspace and focus --prev-workspace to focus by config order (#783).
    • Add new focus —next-active-workspace and focus —prev-active-workspace commands with the old behavior of focus --next-workspace and focus --prev-workspace.

🐛 Bug fixes

  • Prevent focus requests from being lost from windows on inactive workspaces (#797).

📘 Docs improvements

  • Fix link to "Config documentation" heading in readme (#811).

Big thanks to @DreamMaoMao, @RiceaRaul, and @azarmadr for contributing to this release 💛

v3.4.0

04 Oct 20:00
cc4952e

Choose a tag to compare

In case anyone missed it from the last release:

Zebar update & startup change

  • Zebar, which can optionally be installed through the standard installer below, has officially been updated to V2 ⚡For full details, check out the V2 release notes.
    • This new version is now included in the standard GlazeWM installer.
    • Existing installs can be updated by leaving "Install Zebar" checked.
    • Zebar start script has been removed - update your existing GlazeWM config (%userprofile%/.glzr/glazewm/config.yaml) as follows:
-  startup_commands: ['shell-exec %userprofile%/.glzr/zebar/start.bat']
+  startup_commands: ['shell-exec zebar']

Join the Discord server

🎉 New features

  • Scale inner and outer gaps by monitor DPI (#756, #768).
    • Add new gaps.scale_with_dpi option to toggle whether gaps should be scaled. This is enabled by default - no config changes necessary.
  • Add new scaleFactor property to monitors in IPC responses. Fix dpi property not returning a valid DPI (#769).

🐛 Bug fixes

  • Fix focus commands not working with focus_follows_cursor: true (#767).
  • Fix not being able to disable cursor jump (#763).
  • Add window rule to sample config for floating PowerToys Peek (#757).

🛠️️ Internal changes

  • Fix regex for detecting latest version in Winget release workflow (#758).

Big thanks to @JonasWischeropp, @vikingnope, and @lars-berger for contributing to this release 💛