2018-09-30 21:19:48 +00:00
# Smithay Changelog
2017-10-01 20:57:02 +00:00
2021-07-25 09:46:06 +00:00
## Unreleased
2021-08-03 17:52:43 +00:00
### Breaking Changes
#### Clients & Protocols
2021-10-16 16:59:42 +00:00
- Remove `xdg-shell-unstable-v6` backwards compatibility
2021-08-03 17:52:43 +00:00
- `XdgPositionerState` moved to `XdgPopupState` and added to `XdgRequest::NewPopup`
- `PopupSurface::send_configure` now checks the protocol version and returns an `Result`
2021-09-19 15:10:08 +00:00
- `KeyboardHandle::input` filter closure now receives a `KeysymHandle` instead of a `Keysym` and returns a `FilterResult` .
2021-08-03 17:52:43 +00:00
2021-07-31 03:43:59 +00:00
### Additions
#### Clients & Protocols
2021-07-31 18:23:54 +00:00
- `xdg_activation_v1` support
2021-07-31 11:45:38 +00:00
- `wlr-layer-shell-unstable-v1` support
2021-07-31 03:43:59 +00:00
- Added public api constants for the roles of `wl_shell_surface` , `zxdg_toplevel` and `xdg_toplevel` . See the
`shell::legacy` and `shell::xdg` modules for these constants.
2021-07-31 11:45:38 +00:00
- Whether a surface is toplevel equivalent can be determined with the new function `shell::is_toplevel_equivalent` .
2021-07-31 03:43:59 +00:00
- 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.
2021-08-03 17:52:43 +00:00
- Support for `xdg_wm_base` protocol version 3
2021-09-30 16:32:37 +00:00
- Added the option to initialize the dmabuf global with a client filter
2021-07-31 03:43:59 +00:00
2021-10-17 18:41:54 +00:00
#### Backends
2021-10-17 18:46:00 +00:00
- New `x11` backend to run the compositor as an X11 client. Enabled through the `backend_x11` feature.
2021-10-17 07:23:45 +00:00
- `x11rb` event source integration used in anvil's XWayland implementation is now part of smithay at `utils::x11rb` . Enabled through the `x11rb_event_source` feature.
2021-10-17 07:19:39 +00:00
- `KeyState` , `MouseButton` , `ButtonState` and `Axis` in `backend::input` now derive `Hash` .
2021-10-17 18:41:54 +00:00
- New `DrmNode` type in drm backend. This is primarily for use a backend which needs to run as client inside another session.
2021-07-28 21:31:43 +00:00
### Bugfixes
2021-10-18 17:00:42 +00:00
#### Clients & Protocols
- `Multicache::has()` now correctly does what is expected of it
#### Backends
2021-07-28 21:31:43 +00:00
- EGLBufferReader now checks if buffers are alive before using them.
2021-08-18 03:55:38 +00:00
- LibSeat no longer panics on seat disable event.
2021-07-28 21:31:43 +00:00
2021-10-14 15:54:29 +00:00
### Anvil
2021-10-17 18:46:00 +00:00
- Anvil now implements the x11 backend in smithay. Run by passing `--x11` into the arguments when launching.
2021-10-14 15:54:29 +00:00
- Passing `ANVIL_MUTEX_LOG` in environment variables now uses the slower `Mutex` logging drain.
2021-07-25 09:46:06 +00:00
## version 0.3.0 (2021-07-25)
2021-07-21 16:47:44 +00:00
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 of `calloop` . 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` ](https://sr.ht/~kennylevinsen/seatd/ ) 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
2017-10-01 20:57:02 +00:00
2019-01-03 09:52:15 +00:00
## version 0.2.0 (2019-01-03)
2018-09-30 21:19:48 +00:00
### General
- **[Breaking]** Upgrade to wayland-rs 0.21
2018-12-28 16:30:11 +00:00
- **[Breaking]** Moving the public dependencies to a `reexports` module
- Migrate the codebase to Rust 2018
2018-09-30 21:19:48 +00:00
### Backends
2018-11-17 17:01:04 +00:00
- **[Breaking]** WinitBackend: Upgrade to winit 0.18
2018-12-28 16:30:11 +00:00
- **[Breaking]** Global refactor of the DRM & Session backends
- **[Breaking]** Restructuration of the backends around the `calloop` event-loop
2018-09-26 13:42:51 +00:00
2018-09-30 21:19:48 +00:00
### Clients & Protocol
- Basic XWayland support
2018-12-28 16:30:11 +00:00
- Data device & Drag'n'Drop support
- Custom client pointers support
2018-09-30 21:19:48 +00:00
2017-10-01 20:57:02 +00:00
## version 0.1.0 (2017-10-01)
### Protocol handling
- Low-level handling routines for several wayland globals:
- `wayland::shm` handles `wl_shm`
- `wayland::compositor` handles `wl_compositor` and `wl_subcompositor`
- `wayland::shell` handles `wl_shell` and `xdg_shell`
- `wayland::seat` handles `wl_seat`
- `wayland::output` handles `wl_output`
### Backend
- Winit backend (EGL context & input)
- DRM backend
- libinput backend
- glium integration