Skip to content

Releases: glzr-io/glazewm

v3.9.1

18 Jun 17:49
6242f8a
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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 💛

v3.3.0

01 Oct 10:44
c295669
Compare
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 window effects for hiding the title bar and changing corner style (#735).
    • Configurable via window_effects.hide_title_bar and window_effects.corner_style.
    • Add to sample config.

🐛 Bug fixes

  • Fix issue where focus was sometimes not being changed (#749, #754).
    • Remove input simulation to other processes.
  • Fix window border effect flickering (#752).
  • Redraw affected workspaces after move-workspace --direction <DIRECTION> (#755).

🛠️️ Internal changes

  • Fix Winget release workflow (#748).

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

v3.2.0

29 Sep 09:56
cc810e6
Compare
Choose a tag to compare

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

  • Winget support is back (thanks @Dragon1573) via winget install glzr-io.glazewm.
  • Add set-tiling-direction <vertical|horizontal> command (#702).
  • Add focus --monitor <MONITOR_INDEX> command (#683).
  • Add new config options general.shutdown_commands and general.reload_commands(#713).
    • Also update the sample config to kill Zebar when the WM is shut down.
  • Add support for using env variable GLAZEWM_CONFIG_PATH for config path (#696).
  • Improve how tiling windows are moved when dragged via mouse (#673).
  • Change focus between windows without simulating a keypress (#672).
    • Prevents Start Menu from popping up when using lwin in keybindings.
    • Also fixes #674.

🐛 Bug fixes

  • Jump to correct monitor when cursor jump is configured to trigger: 'monitor_focus' (#744).
  • Ensure windows aren't unmanaged when moved to workspace (#727).
  • Fix regression causing certain windows to not be managed (#726).
  • Ignore display change messages when resuming from sleep (#740).
    • Sometimes caused workspaces to get swapped between monitors.
  • Ignore focus events from windows that aren't the foreground window (#725).
  • Remove any empty workspaces after move-workspace command (#743).
  • Update ignore rule in sample config for Powertoys Quick Accent (#745).

Big thanks to @JonasWischeropp, @nikitarevenco, @MoaidHathot, @hiszd, @tmsagarofficial, @LucaCoduriV, @AmineDjeghri, @Dragon1573, and @lars-berger for contributing to this release 💛