|
| 1 | +## Breaking Changes |
| 2 | + |
| 3 | +- Files outside of the shell directory can no longer be referenced with relative paths, e.g. '../../foo.png'. |
| 4 | +- PanelWindow's Automatic exclusion mode now adds an exclusion zone for panels with a single anchor. |
| 5 | +- `QT_QUICK_CONTROLS_STYLE` and `QT_STYLE_OVERRIDE` are ignored unless `//@ pragma RespectSystemStyle` is set. |
| 6 | + |
| 7 | +## New Features |
| 8 | + |
| 9 | +### Root-Relative Imports |
| 10 | + |
| 11 | +Quickshell 0.2 comes with a new method to import QML modules which is supported by QMLLS. |
| 12 | +This replaces "root:/" imports for QML modules. |
| 13 | + |
| 14 | +The new syntax is `import qs.path.to.module`, where `path/to/module` is the path to |
| 15 | +a module/subdirectory relative to the config root (`qs`). |
| 16 | + |
| 17 | +### Better LSP support |
| 18 | + |
| 19 | +LSP support for Singletons and Root-Relative imports can be enabled by creating a file named |
| 20 | +`.qmlls.ini` in the shell root directory. Quickshell will detect this file and automatically |
| 21 | +populate it with an LSP configuration. This file should be gitignored in your configuration, |
| 22 | +as it is system dependent. |
| 23 | + |
| 24 | +The generated configuration also includes QML import paths available to Quickshell, meaning |
| 25 | +QMLLS no longer requires the `-E` flag. |
| 26 | + |
| 27 | +### Bluetooth Module |
| 28 | + |
| 29 | +Quickshell can now manage your bluetooth devices through BlueZ. While authenticated pairing |
| 30 | +has not landed in 0.2, support for connecting and disconnecting devices, basic device information, |
| 31 | +and non-authenticated pairing are now supported. |
| 32 | + |
| 33 | +### Other Features |
| 34 | + |
| 35 | +- Added `HyprlandToplevel` and related toplevel/window management APIs in the Hyprland module. |
| 36 | +- Added `Quickshell.execDetached()`, which spawns a detached process without a `Process` object. |
| 37 | +- Added `Process.exec()` for easier reconfiguration of process commands when starting them. |
| 38 | +- Added `FloatingWindow.title`, which allows changing the title of a floating window. |
| 39 | +- Added `signal QsWindow.closed()`, fired when a window is closed externally. |
| 40 | +- Added support for inline replies in notifications, when supported by applications. |
| 41 | +- Added `DesktopEntry.startupWmClass` and `DesktopEntry.heuristicLookup()` to better identify toplevels. |
| 42 | +- Added `DesktopEntry.command` which can be run as an alternative to `DesktopEntry.execute()`. |
| 43 | +- Added `//@ pragma Internal`, which makes a QML component impossible to import outside of its module. |
| 44 | +- Added dead instance selection for some subcommands, such as `qs log` and `qs list`. |
| 45 | + |
| 46 | +## Other Changes |
| 47 | + |
| 48 | +- `Quickshell.shellRoot` has been renamed to `Quickshell.shellDir`. |
| 49 | +- PanelWindow margins opposite the window's anchorpoint are now added to exclusion zone. |
| 50 | +- stdout/stderr or detached processes and executed desktop entries are now hidden by default. |
| 51 | +- Various warnings caused by other applications Quickshell communicates with over D-BUS have been hidden in logs. |
| 52 | +- Quickshell's new logo is now shown in any floating windows. |
| 53 | + |
| 54 | +## Bug Fixes |
| 55 | + |
| 56 | +- Fixed pipewire device volume and mute states not updating before the device has been used. |
| 57 | +- Fixed a crash when changing the volume of any pipewire device on a sound card another removed device was using. |
| 58 | +- Fixed a crash when accessing a removed previous default pipewire node from the default sink/source changed signals. |
| 59 | +- Fixed session locks crashing if all monitors are disconnected. |
| 60 | +- Fixed session locks crashing if unsupported by the compositor. |
| 61 | +- Fixed a crash when creating a session lock and destroying it before acknowledged by the compositor. |
| 62 | +- Fixed window input masks not updating after a reload. |
| 63 | +- Fixed PanelWindows being unconfigurable unless `screen` was set under X11. |
| 64 | +- Fixed a crash when anchoring a popup to a zero sized `Item`. |
| 65 | +- Fixed `FileView` crashing if `watchChanges` was used. |
| 66 | +- Fixed `SocketServer` sockets disappearing after a reload. |
| 67 | +- Fixed `ScreencopyView` having incorrect rotation when displaying a rotated monitor. |
| 68 | +- Fixed `MarginWrapperManager` breaking pixel alignment of child items when centering. |
| 69 | +- Fixed `IpcHandler`, `NotificationServer` and `GlobalShortcut` not activating with certain QML structures. |
| 70 | +- Fixed tracking of QML incubator destruction and deregistration, which occasionally caused crashes. |
| 71 | +- Fixed FloatingWindows being constrained to the smallest window manager supported size unless max size was set. |
| 72 | +- Fixed `MprisPlayer.lengthSupported` not updating reactively. |
| 73 | +- Fixed normal tray icon being ignored when status is `NeedsAttention` and no attention icon is provided. |
| 74 | +- Fixed `HyprlandWorkspace.activate()` sending invalid commands to Hyprland for named or special workspaces. |
| 75 | +- Fixed file watcher occasionally breaking when using VSCode to edit QML files. |
| 76 | +- Fixed crashes when screencopy buffer creation fails. |
| 77 | +- Fixed a crash when wayland layer surfaces are recreated for the same window. |
| 78 | +- Fixed the `QsWindow` attached object not working when using `WlrLayershell` directly. |
| 79 | +- Fixed a crash when attempting to create a window without available VRAM. |
| 80 | +- Fixed OOM crash when failing to write to detailed log file. |
| 81 | +- Prevented distro logging configurations for Qt from interfering with Quickshell commands. |
| 82 | +- Removed the "QProcess destroyed for running process" warning when destroying `Process` objects. |
| 83 | +- Fixed `ColorQuantizer` printing a pointer to an error message instead of an error message. |
| 84 | +- Fixed notification pixmap rowstride warning showing for correct rowstrides. |
0 commit comments