Way Cooler Versions Save

Wayland compositor for AwesomeWM

v0.8.1

5 years ago

There is a compliation issue with Rust 1.30+ with the aho-corasick dependency for Way Cooler that uses wlc.

This release fixes that by updating the dependencies.

v0.8.0

6 years ago

Configuration

  • Changed the format for colours in the init.lua file. No longer accepts a number and instead should be a string. This is backwards incompatible.

Thanks to @timo-schmid for providing the patch for this release.

v0.7.0

6 years ago

This is the final release of Way Cooler that will utilize wlc. From this point forward, consider rust-wlc abandoned.

Way Cooler is switching to wlroots. You can follow the porting process on our wlroots-rs bindings repo. Once those bindings are complete, Way Cooler will switch to wlroots for v0.8.0. Once the move is complete, work will begin again on making Way Cooler function as a drop-in replacement for AwesomeWM.

To see all changes in this release, consult this milestone listing.

Distribution

Extension Programs

Note that all of the extension programs (wc-bg, wc-lock, and wc-grab) have backward incompatible changes in this release. Previous versions will not work as expected!

Background

The following changes take effect in this release:

  • The background program binary has been renamed to wc-bg (originally way-cooler-bg).
  • The background program now properly assigns backgrounds to all outputs.
  • A default background is now used when the background program is provided no arguments. Thanks to @platipo for the background contribution! (https://github.com/way-cooler/way-cooler/issues/141)
  • The background program no longer uses a hack in order to render but uses the standard desktop-shell Wayland protocol.
    • As a consequence, you can now use sway-bg on Way Cooler and wc-bg on Sway.

Lockscreen

  • The lockscreen program no longer uses a hack in order to render but uses a modified version of the desktop-shell protocol.
    • It is modified so that we can lock multiple screens using an effect. This may change in the future, but that means we are non-standard compared to e.g Sway.
  • Added a fancy new blur effect that will blur the screen when it locks. (https://github.com/way-cooler/way-cooler-lock/releases/tag/v0.2.0)

Screenshot taker

Way Cooler

Configuration

Dependencies

WLC updates

AwesomeWM Compatibility

Lua

Tiling

Soundness fixes

v0.6.2

6 years ago

Lua

Added the no-op command, this allows the user to register a keybinding but not yet make it do anything. #363

Tiling bugfixes

  • dmenu will no longer render as too tall #355
  • Scrollbars and other small windows no longer have weird visual artifacts #364
  • All popup windows should now be properly focused on the screen #218

Distribution

  • The install page on way-cooler.org should function correctly now
  • Binaries are now statically compiled with wlc by default

v0.6.1

6 years ago

New features

This version introduces two new features: The ability to unbind keybindings and to allow passthrough for keybindings. See #345 for more details.

Changes to existing features

  • Root level containers have always have borders now. #315
  • If XDG_RUNTIME_DIR doesn't exist, an error explaining that is logged. #310

Bugfixes

  • Screen scraping doesn't scrape active output (needs v0.2 of wc-grab) #349

  • Nested sub containers do not render borders properly when using new container command when a new container can't be spawned (e.g when there's one child) #344

  • Popup windows are no longer sized incorrectly #337

  • Popup windows should now be always centered on the screen correctly #218

  • Switching containers to a new workspace will no longer cause it to be invisible on a workspace that is not active. If it is moved to an inactive workspace, that one is made visible instead #333

  • Floating windows now update their focused colour correctly #320

  • Floating sub windows (e.g right click menus) no longer spawn with borders #319

  • Floating windows (such as dmenu) are no longer hidden when spawned in a tabbed/stacked container #317

  • Nested Tabbed/Stacked borders are now rendered correctly #313

v0.6.0

6 years ago

This has been, by far, the biggest release for Way Cooler. I'd lie if I said this was a result of feature creep. There were actually features I removed in favour of a later release (namely #273 and #138) just so I could get this one out of the door.

Way Cooler has come a long way. If you want to learn more about what has changed please read this release, the linked issues, the up-to-date README, look at our fancy new website, and finally look at the fancy pictures I have attached that I took while developing these features.

If you'd like to download Way Cooler, the best way is through the download page on the site: http://way-cooler.org/download

Going forward, more attention is going to be paid to the Lua and D-Bus API. There's going to be some huge changes, but there will be stabilization happening not soon after that in order to encourage the development of client programs for Way Cooler. Once that is done, I will finally get started on writing the last really needed client program for Way Cooler: the top bar.

Redshift support

#201 #285 Contrary to popular belief, you can use Wayland with redshift :wink:. Way Cooler now works with a patched version of redshift. To specify for it to work, simply specify redshift -m wayland and it will work just as it did before.

This is the same way Sway does it, and if you want this to become mainstream I suggest talking to the maintainers of redshift in order to get this merged into upstream.

Multi-head output

#297 #64 Finally, finally Way Cooler now supports multiple monitors. It doesn't yet support hotplugging, due to a bug in wlc, however if you start Way Cooler with multiple monitors plugged in they will properly be assigned and used.

Scrot-like program

#171 There's a new program in the growing repository for Way Cooler, wc-grab. This is a fairly simple program that emulates scrot somewhat. It takes a screenshot of the current active output and dumps it to a file. By default, it dumps it to screenshot.png, but that can be controlled with the -o flag.

See wc-grab --help for more information.

Lockscreen support

#279 Way Cooler now supports lock screens as of #279. In order to lock the screen, in the Lua file you simply specify which program should be used. When the appropriate keybinding is pressed, Way Cooler locks down and puts the client program front and center. Once the client program closes (either gracefully or not), control is returned to the user.

I have made wc-lock as a simple implementation of a lock screen for Way Cooler. It uses PAM to authenticate, so once the program is spawned the user simply has to type in their password and hit enter in order to return to the normal operation.

Basic mode support

#299 Related to lock screen support, basic modes have been added to Way Cooler. There are three so far:

  1. Default - just like before
  2. Locked - when a lockscreen is active
  3. Custom - Everything runs as in default, but for every wlc callback a custom Lua function can be invoked

For more information, see the attached issue #299 .

Tabbed/Stacked tiling support

#301 #163 Way Cooler now has tabbed/stacked tiling support, just like i3/sway does. This is the last i3-related feature that is plan to be added. If more would like to be added, I suggest either sending a patch or letting your voice heard why a certain feature should be ported as well.

Container borders

Related to tabbed/stacked tiling, nested containers now have borders drawn around them, making it much easier to see where nested containers are without guessing from the way the windows are laid out.

Bug fixes

  • Can no longer remove root container in workspaces #280
  • Fixed duplicate active number crash #276
  • Background now uses output geometry #291
  • Fixed issues when gaps were enabled #289

v0.5.2

7 years ago

Resizing

  • There is now an option to select the behaviour of the mouse when resizing (e.g, snap to the window like in Awesome, or don't snap anywhere like in i3). See the updated default configuration for more information. #269
    • This added a new configuration category, mouse. This will be expanded later to provide more options for the mouse, including libinput configuration once #189 is addressed.

Borders

  • Title bars will now update their text to reflect the title of the window #270
  • Gaps and borders can now be used at the same time #263
  • Active border color should now work better (e.g less times when two are highlighted active, or when none of them are even though the user is focused on a window) #263

Windows

  • Popup windows now attempt to focus in the center of the screen, and are never too small than the minimum floating window limit. #264
    • Note that due to limitations in Xwayland, they may not always have their geometry properly set, so they may still sometimes appear in the top left corner.
  • Way Cooler now remembers which view you focused on within in a container. In other words, the algorithm to select the last active window is now one-to-one with i3. #204

Bug Fixes

Sending containers across workspaces will no longer cause a duplicate active number (and a crash) #267

v0.5.1

7 years ago

Bug Fixes

  • Fixed race condition that caused tree instability (e.g a crash)
    • This was normally triggered by closing e.g mpv with the close window command.

Configuration

Backwards incompatible changes

  • Cleaned up util functions
  • Removed spawn_dmenu and spawn_terminal command, please use util.program.spawn_once instead.

v.5.0

7 years ago

This release expands the graphical capabilities of Way Cooler, adding core features such as borders and bar support while also paving the way for more advanced features such as notifications.

This is also the first release with a binary attached. It is an x86_64 ready-to-run version of Way Cooler statically linked to the latest wlc release (0.0.8).

New Configuration format

  • The configuration format has changed significantly. This is a backward incompatible change. Please see the example configuration for more information.
  • In short, values must now be part of a category (e.g, no longer border_size it's way_cooler.windows = { borders = { size = 20 } }, for example).
  • config object has been merged into way_cooler.

X11 Bar support

  • Added support for X11 bars, such as polybar and lemonbar
  • To enable, set the x11_bar variable under the programs category to the name of the window that the bar spawns (e.g, bar when running lemonbar as lemonbar -n "bar"
  • Support for more integrated bars will come in a later version.

Borders

  • Added compositor/server side borders.
  • Size and active/inactive color configurable through configuration option.
    • Color specified as a hexadecimal number
  • Title bars are also independently configurable, e.g they have their own size and colors.

Gaps

  • Added gap support between windows. You can think of these as transparent borders.

D-Bus

  • Commands now block when locking the layout tree. This means that commands should fail much less often especially when in a tight loop.
  • Added ActiveWorkspace command to get the name of the current workspace.

Bug Fixes

  • Context menus should stop disappearing/crashing the program.
    • Note that they may not be positioned correctly, this will be fixed in a later patch.
  • Floating windows will now properly become fullscreen.
  • Defaulting to the pre-compiled configuration file is now much more obvious in the log.
  • Floating windows should now no longer snap back to their position.
  • Lua thread listener should now no longer die when restarting and having a bad config.
  • Floating a window in a sub container should no longer cause a crash.
  • The background should now resize when the output changes resolution.

v0.4.2

7 years ago

Commands / Keybindings

  • Added fullscreen command
    • Default keybinding is mod+f
    • Command is also exposed through the D-Bus command FullScreen
  • Added commands to control the location of the pointer.
    • Absolute positioning (SetPointerPos)
    • Placing the mouse at the corner of a container (GrabAtCorner)
  • Modifier for mouse controls (eg resize and move window) is now configurable
    • The default modifier is now Alt, instead of the previous Ctrl

Tiling

  • Popup windows now automatically are floating.
  • Wayland apps (eg termite, weston-terminal, etc) should no longer have blurry text.
  • Resizing a window while running Way Cooler from a TTY now works correctly.

Logging

  • Way Cooler now log all environment variables in the prelude of the log.
  • When a key is bound to a command that is now logged.

Background

  • Resizing the output / changing the resolution will now properly update the background.

Misc

  • Already existing debug checks have been turned on for release builds.
  • Restart should properly call the user-defined restart callback now.
  • Updated to use the StableGraph of Petgraph, which should improve performance and reliability.