Skip to content

Releases: AMNatty/wleave

Version 0.7.1

02 Feb 17:59
37e7cac

Choose a tag to compare

What's Changed

  • fixed icon scaling by @p00f in #27
  • fixed a margin parsing regression in the configuration file

Full Changelog: 0.7.0...0.7.1

Version 0.7.0

21 Jan 17:17
f8f68ec

Choose a tag to compare

What's Changed

Wleave 0.7.0 is a large quality-of-life release adding support for running as a background service, better layout customization, and more.

Desktop file

Wleave now has a desktop file, included in the wleave-git AUR package!

Service mode

Add the flag --service to run Wleave as a service, waiting until it is activated by another call to wleave. This allows faster startup at the cost of running in the background.

For example, to run wleave in the background with the Niri compositor, spawn the application on startup:

spawn-at-startup "wleave" "--service"

Currently, the configuration is determined by the background instance, and a restart is necessary to apply configuration changes.

Dynamic layouts

Wleave now supports advanced button layouts, using the --button-layout option. Currently only the "grid" layout is supported, and is equivalent to the old default behavior. Stay tuned for more!

The "grid" layout now automatically tries to the fit the buttons into the available space, instead of being hard 3 buttons per row. You can override this with --buttons-per-row.

Fixed button aspect ratio

Based on a contribution from @marienz, Wleave now supports fixing the button aspect ratio with the --button-aspect-ratio flag. --button-aspect-ratio "1/1" creates perfectly square buttons.

Nicer defaults

The default configuration of Wleave now works with GNOME, works around bugs in SDDM in some compositors, and properly shuts down on Niri, Sway, and Plasma. It also prefers gtklock over swaylock.

High DPI fixes

Thanks to #22 by @p00f, icons should now properly scale on high DPI screens.

Conditional actions

The action field in the button configuration can now be an object with exactly one of shell or executable properties set. The shell action executes the given command in the system shell, while the executable action executes the specified binary, assuming it is in $PATH. executable actions get filtered if the specified executable does not exist, allowing multiple possible options.

Any action that is a plain string is interpreted as a shell command with no conditions set.

Any extra properties in the action objects are interpreted as filters. Currently, only environment variable filtering
is implemented, where the values of fields prefixed with $ are matched as conditions for the given action.

The action field can also be an array where the first matching command is picked. This means command fallbacks are now possible.

For example, in the following example, the loginctl lock-session command is executed on GNOME, while other desktop
environments will try gtklock and then swaylock.

{
    "action": [
        {
            "$DESKTOP_SESSION": "gnome",
            "shell": "loginctl lock-session"
        },
        {
            "executable": "gtklock"
        },
        "swaylock"
    ]
}

Full Changelog: 0.6.2...0.7.0

Version 0.6.2

08 Sep 16:26
e5eb1f6

Choose a tag to compare

What's changed:

  • Fixed protocol names in the config file being CamelCase instead of kebab-case (#19)
  • Icons are always colorized by default with the SVG handling being rewritten

Full Changelog: 0.6.1...0.6.2

Version 0.6.1

30 Aug 20:49
9822de9

Choose a tag to compare

What's Changed

Hotfixed some critical issues from 0.6.0, mainly CLI API breakage and actions not triggering because of the application exiting before it could do so.

Full Changelog: 0.6.0...0.6.1

Version 0.6.0

30 Aug 19:43
5376c6a

Choose a tag to compare

What's Changed

Wleave 0.6.0 brings improvements in styling and configuration. Updating your configuration might be necessary to use these new features. This release also adds a small version label with a link to this changelog to avoid confusion about styling changes, it can be hidden with -x.

The configuration file is now a JSON

The default configuration file has been moved to layout.json and has a new structure. Any command line option except --help and --layout can be used within layout.json as a config file option. See man 5 wleave.json for a full reference. Old wleave and wlogout files will keep working.

Example file:

{
    "close-on-lost-focus": true,
    "show-keybinds": true,
    "buttons": [
        {
            "label": "lock",
            "action": "swaylock",
            "text": "Lock",
            "keybind": "l",
            "icon": "/usr/share/wleave/icons/lock.svg"
        }
    ]
}

Icon configuration has moved!

Since 0.6.0, the icons for buttons are now specified in the layout file. While older configurations should keep working, it is recommended to move your icon settings from style.css to the layout.json file. The buttons can still have background-image, but it is not a necessary step to use icons anymore.

This change also removes the need for the width and height options in the layout.json file as they are not necessary to keep button labels from overlapping the icons anymore. They will keep working, however they have no effect when omitted (unless no icon is specified to preserve backwards-compatibility).

For example:

{
    "label" : "lock",
    "action" : "swaylock",
    "text" : "Lock",
    "keybind" : "l",
    "icon": "/usr/share/wleave/icons/lock-symbolic.svg"
}

The keybind labels (the -k/--show-keybinds option) are now also separate and can be styled with the button label.keybind CSS selector. Action labels can be selected with button label.action-name.

Automatic light/dark theme out of the box!

Wleave now uses the org.gnome.desktop.interface/color-scheme setting to automatically choose either the light or dark theme based on preference. This corresponds to the GNOME settings options. On other window managers, use the the gsettings set org.gnome.desktop.interface color-scheme \'prefer-dark\' command to switch to the dark theme.

Accent colors!

Wleave now uses libadwaita to fetch the accent color preference. This can be changed in GNOME settings or with the gsettings set org.gnome.desktop.interface accent-color \'COLOR\' command where COLOR can be any of blue, orange, purple, slate, yellow, green, pink, red, teal.

Default icons now follow the text color!

Any SVG file with currentColor as its fill/stroke color can be used with recoloring. To activate colored icons, see the default style.css file.

Automatic button layout

The --buttons-per-row now supports fractional values like 1/5 to specify how buttons should be distributed over multiple rows. For example, 1/5 means each row should have 20% of all buttons (therefore there will be 5 rows total). The value 1/1 will always put all buttons in one row.

Other changes

  • Librsvg is now an explicit dependency, which should prevent issues where icons don't load on some installations
  • Libadwaita is now required, ideally version 1.7+

Full Changelog: 0.5.1...0.6.0

Version 0.5.1

05 Feb 19:37
c43e8c7

Choose a tag to compare

What's Changed

  • Better logging and error reporting
  • Moved some finer logging under the debug level (they can be shown using RUST_LOG=debug)
  • The layout config can now be read from stdin, using --layout -
  • Fixed "click-away to close" to properly bubble events

Full Changelog: 0.5.0...0.5.1

Version 0.5.0

05 Feb 19:31
a34cf6f

Choose a tag to compare

What's Changed

  • (Breaking) Retargeted to GTK4
  • (Breaking) The layer-shell backend for full screen is now the default (should work on most Wayland WMs except GNOME)
  • Major refactoring
  • The buttons now have a pointer cursor
  • It is now possible to "click-away" to close the application

Full Changelog: 0.4.1...0.5.0

Version 0.4.1

15 Mar 15:56
a44c38b

Choose a tag to compare

What's Changed

  • Fixed --close-on-lost-focus destroying the window without executing a command

Full Changelog: 0.4.0...0.4.1

Version 0.4.0

14 Mar 18:14
60c6070

Choose a tag to compare

What's Changed

  • Added a delay between hiding a window and executing a command, as well
    as adding a CLI option to configure the delay using --delay-command-ms
  • #4 Label content now supports Pango markup, thanks @bvr-yr
  • #3 The window now has a layer shell namespace: wleave

Full Changelog: 0.3.2...0.4.0

Version 0.3.2

31 Dec 21:07
619730e

Choose a tag to compare

What's Changed

  • Fixed keyboard navigation regression from 0.3.1

Full Changelog: 0.3.1...0.3.2