4.0 KiB
4.0 KiB
Smithay Changelog
Unreleased
Breaking Changes
Clients & Protocols
- Remove
xdg-shell-unstable-v6
backwards compatibility XdgPositionerState
moved toXdgPopupState
and added toXdgRequest::NewPopup
PopupSurface::send_configure
now checks the protocol version and returns anResult
KeyboardHandle::input
filter closure now receives aKeysymHandle
instead of aKeysym
and returns aFilterResult
.
Additions
Clients & Protocols
xdg_activation_v1
supportwlr-layer-shell-unstable-v1
support- Added public api constants for the roles of
wl_shell_surface
,zxdg_toplevel
andxdg_toplevel
. See theshell::legacy
andshell::xdg
modules for these constants. - Whether a surface is toplevel equivalent can be determined with the new function
shell::is_toplevel_equivalent
. - Setting the parent of a toplevel surface is now possible with the
xdg::ToplevelSurface::set_parent
function. - Add support for the zxdg-foreign-v2 protocol.
- Support for
xdg_wm_base
protocol version 3 - Added the option to initialize the dmabuf global with a client filter
Backends
x11rb
event source integration used in anvil's XWayland implementation is now part of smithay atutils::x11rb
. Enabled through thex11rb_event_source
feature.- New
DrmNode
type in drm backend. This is primarily for use a backend which needs to run as client inside another session.
Bugfixes
- EGLBufferReader now checks if buffers are alive before using them.
- LibSeat no longer panics on seat disable event.
Anvil
- Passing
ANVIL_MUTEX_LOG
in environment variables now uses the slowerMutex
logging drain.
version 0.3.0 (2021-07-25)
Large parts of Smithay were changed with numerous API changes. It is thus recommended to approach version 0.3 as if it was a new crate altogether compared to 0.2.
The most notable changes are:
- Deep refactor of the graphics backends around a workflows centered on allocating graphics buffers, and a Gles2-based renderer abstraction is provided.
- Support for DRM atomic modesetting as well as client-provided DMABUF
- Most backends are now
calloop
event sources generating events. The recommended organization for your smithay-based compositor is thus to centralize most of your logic on a global state struct, and delegate event handling to it via the shared data mechanism ofcalloop
. Most of the callbacks you provide to Smithay are given mutable access to this shared data. - The
wayland::compositor
handling logic now automatically handles state tracking and delayed commit for wayland surfaces.
Many thanks to the new contributors to Smithay, who contributed the following:
- Support for
libseat
as a session backend, by @PolyMeilex - Support for graphics tablets via the
tablet
protocol extension, by @PolyMeilex - Support for running Smithay on
aarch64
architectures, by @cmeissl - A rework of the
xdg-shell
handlers to better fit the protocol logic and correctly track configure events, by @cmeissl - Basic Xwayland support, by @psychon
version 0.2.0 (2019-01-03)
General
- [Breaking] Upgrade to wayland-rs 0.21
- [Breaking] Moving the public dependencies to a
reexports
module - Migrate the codebase to Rust 2018
Backends
- [Breaking] WinitBackend: Upgrade to winit 0.18
- [Breaking] Global refactor of the DRM & Session backends
- [Breaking] Restructuration of the backends around the
calloop
event-loop
Clients & Protocol
- Basic XWayland support
- Data device & Drag'n'Drop support
- Custom client pointers support
version 0.1.0 (2017-10-01)
Protocol handling
- Low-level handling routines for several wayland globals:
wayland::shm
handleswl_shm
wayland::compositor
handleswl_compositor
andwl_subcompositor
wayland::shell
handleswl_shell
andxdg_shell
wayland::seat
handleswl_seat
wayland::output
handleswl_output
Backend
- Winit backend (EGL context & input)
- DRM backend
- libinput backend
- glium integration