5.1 KiB
Breaking Changes
- Files outside of the shell directory can no longer be referenced with relative paths, e.g. '../../foo.png'.
- PanelWindow's Automatic exclusion mode now adds an exclusion zone for panels with a single anchor.
QT_QUICK_CONTROLS_STYLEandQT_STYLE_OVERRIDEare ignored unless//@ pragma RespectSystemStyleis set.
New Features
Root-Relative Imports
Quickshell 0.2 comes with a new method to import QML modules which is supported by QMLLS. This replaces "root:/" imports for QML modules.
The new syntax is import qs.path.to.module, where path/to/module is the path to
a module/subdirectory relative to the config root (qs).
Better LSP support
LSP support for Singletons and Root-Relative imports can be enabled by creating a file named
.qmlls.ini in the shell root directory. Quickshell will detect this file and automatically
populate it with an LSP configuration. This file should be gitignored in your configuration,
as it is system dependent.
The generated configuration also includes QML import paths available to Quickshell, meaning
QMLLS no longer requires the -E flag.
Bluetooth Module
Quickshell can now manage your bluetooth devices through BlueZ. While authenticated pairing has not landed in 0.2, support for connecting and disconnecting devices, basic device information, and non-authenticated pairing are now supported.
Other Features
- Added
HyprlandTopleveland related toplevel/window management APIs in the Hyprland module. - Added
Quickshell.execDetached(), which spawns a detached process without aProcessobject. - Added
Process.exec()for easier reconfiguration of process commands when starting them. - Added
FloatingWindow.title, which allows changing the title of a floating window. - Added
signal QsWindow.closed(), fired when a window is closed externally. - Added support for inline replies in notifications, when supported by applications.
- Added
DesktopEntry.startupWmClassandDesktopEntry.heuristicLookup()to better identify toplevels. - Added
DesktopEntry.commandwhich can be run as an alternative toDesktopEntry.execute(). - Added
//@ pragma Internal, which makes a QML component impossible to import outside of its module. - Added dead instance selection for some subcommands, such as
qs logandqs list.
Other Changes
Quickshell.shellRoothas been renamed toQuickshell.shellDir.- PanelWindow margins opposite the window's anchorpoint are now added to exclusion zone.
- stdout/stderr or detached processes and executed desktop entries are now hidden by default.
- Various warnings caused by other applications Quickshell communicates with over D-BUS have been hidden in logs.
- Quickshell's new logo is now shown in any floating windows.
Bug Fixes
- Fixed pipewire device volume and mute states not updating before the device has been used.
- Fixed a crash when changing the volume of any pipewire device on a sound card another removed device was using.
- Fixed a crash when accessing a removed previous default pipewire node from the default sink/source changed signals.
- Fixed session locks crashing if all monitors are disconnected.
- Fixed session locks crashing if unsupported by the compositor.
- Fixed a crash when creating a session lock and destroying it before acknowledged by the compositor.
- Fixed window input masks not updating after a reload.
- Fixed PanelWindows being unconfigurable unless
screenwas set under X11. - Fixed a crash when anchoring a popup to a zero sized
Item. - Fixed
FileViewcrashing ifwatchChangeswas used. - Fixed
SocketServersockets disappearing after a reload. - Fixed
ScreencopyViewhaving incorrect rotation when displaying a rotated monitor. - Fixed
MarginWrapperManagerbreaking pixel alignment of child items when centering. - Fixed
IpcHandler,NotificationServerandGlobalShortcutnot activating with certain QML structures. - Fixed tracking of QML incubator destruction and deregistration, which occasionally caused crashes.
- Fixed FloatingWindows being constrained to the smallest window manager supported size unless max size was set.
- Fixed
MprisPlayer.lengthSupportednot updating reactively. - Fixed normal tray icon being ignored when status is
NeedsAttentionand no attention icon is provided. - Fixed
HyprlandWorkspace.activate()sending invalid commands to Hyprland for named or special workspaces. - Fixed file watcher occasionally breaking when using VSCode to edit QML files.
- Fixed crashes when screencopy buffer creation fails.
- Fixed a crash when wayland layer surfaces are recreated for the same window.
- Fixed the
QsWindowattached object not working when usingWlrLayershelldirectly. - Fixed a crash when attempting to create a window without available VRAM.
- Fixed OOM crash when failing to write to detailed log file.
- Prevented distro logging configurations for Qt from interfering with Quickshell commands.
- Removed the "QProcess destroyed for running process" warning when destroying
Processobjects. - Fixed
ColorQuantizerprinting a pointer to an error message instead of an error message. - Fixed notification pixmap rowstride warning showing for correct rowstrides.