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_STYLE
andQT_STYLE_OVERRIDE
are ignored unless//@ pragma RespectSystemStyle
is 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
HyprlandToplevel
and related toplevel/window management APIs in the Hyprland module. - Added
Quickshell.execDetached()
, which spawns a detached process without aProcess
object. - 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.startupWmClass
andDesktopEntry.heuristicLookup()
to better identify toplevels. - Added
DesktopEntry.command
which 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 log
andqs list
.
Other Changes
Quickshell.shellRoot
has 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
screen
was set under X11. - Fixed a crash when anchoring a popup to a zero sized
Item
. - Fixed
FileView
crashing ifwatchChanges
was used. - Fixed
SocketServer
sockets disappearing after a reload. - Fixed
ScreencopyView
having incorrect rotation when displaying a rotated monitor. - Fixed
MarginWrapperManager
breaking pixel alignment of child items when centering. - Fixed
IpcHandler
,NotificationServer
andGlobalShortcut
not 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.lengthSupported
not updating reactively. - Fixed normal tray icon being ignored when status is
NeedsAttention
and 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
QsWindow
attached object not working when usingWlrLayershell
directly. - 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
Process
objects. - Fixed
ColorQuantizer
printing a pointer to an error message instead of an error message. - Fixed notification pixmap rowstride warning showing for correct rowstrides.