Wayland

From Things and Stuff Wiki
Revision as of 01:05, 15 November 2024 by Milk (talk | contribs) (→‎Hyprland)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


General

  • Wayland is intended as a simpler replacement for X, easier to develop and maintain. GNOME and KDE are expected to be ported to it. Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol. The compositor can be a standalone display server running on Linux kernel modesetting and evdev input devices, an X application, or a wayland client itself. The clients can be traditional applications, X servers (rootless or fullscreen) or other display servers.

Part of the Wayland project is also the Weston reference implementation of a Wayland compositor. Weston can run as an X client or under Linux KMS and ships with a few demo clients. The Weston compositor is a minimal and fast compositor and is suitable for many embedded and mobile use cases.



  • https://en.wikipedia.org/wiki/Wayland_(display_server_protocol) - a computer protocol that specifies the communication between a display server and its clients, as well as a reference implementation of the protocol in the C programming language. A display server using the Wayland protocol is called a Wayland compositor.Wayland is developed by a group of volunteers initially led by Kristian Høgsberg as a free and open community-driven project with the aim of replacing the X Window System with a modern, simpler windowing system in Linux and other Unix-like operating systems. The project's source code is published under the terms of the MIT License, a permissive free software licence


  • Introduction - The Wayland Protocol - Wayland is the next-generation display server for Unix-like systems, designed and built by the alumni of the venerable Xorg server, and is the best way to get your application windows onto your user's screens. Readers who have worked with X11 in the past will be pleasantly surprised by Wayland's improvements, and those who are new to graphics on Unix will find it a flexible and powerful system for building graphical applications and desktops. This book will help you establish a firm understanding of the concepts, design, and implementation of Wayland, and equip you with the tools to build your own Wayland client and server applications. Over the course of your reading, we'll build a mental model of Wayland and establish the rationale that went into its design. Within these pages you should find many "aha!" moments as the intuitive design choices of Wayland become clear, which should help to keep the pages turning. Welcome to the future of open source graphics!












Libraries

wlroots


smithay

  • https://github.com/Smithay/smithay - aims to provide building blocks to create wayland compositors in Rust. While not being a full-blown compositor, it'll provide objects and interfaces implementing common functionnalities that pretty much any compositor will need, in a generic fashion.

Compositors

Weston


sway

  • Sway - tiling Wayland compositor and a drop-in replacement for the i3 window manager for X11. It works with your existing i3 configuration and supports most of i3's features, plus a few extras.




  • https://github.com/ErikReider/SwayAudioIdleInhibit - Prevents swayidle from sleeping while any application is outputting or receiving audio. Should work with all Wayland desktops that support the zwp_idle_inhibit_manager_v1 protocol but only tested in Sway



  • https://github.com/WillPower3309/swayfx - Sway fork that ditches the simple wlr_renderer, and replaces it with our fx_renderer, capable of rendering with fancy GLES2 effects. This, along with a couple of minor changes, expands sway's featureset to include the following:

Way Cooler

2016

Based on Awesome, Lua

Tiny Wayland

2018

adwc

dwl

  • https://github.com/djpohly/dwl - a compact, hackable compositor for Wayland based on wlroots. It is intended to fill the same space in the Wayland world that dwm does in X11, primarily in terms of philosophy, and secondarily in terms of functionality

Waybox

labwc

wayfire

taiwins

  • https://github.com/taiwins/taiwins - a wayland window manager, supports both tiling and floating layout. It is designed to be mordern and modular. It is extensible through lua script and it has built-in shell and widgets implementation through nuklear GUI. It also supports popular tiling window manager features like gapping.

river

Mahogany

  • https://github.com/stumpwm/mahogany - a tiling window manager for Wayland modeled after StumpWM. While it is not a drop-in replacement for stumpwm, stumpwm users should be very comfortable with Mahogany

Orbment

  • https://github.com/Cloudef/orbment - modular compositor for Wayland with flexible plugin architecture where plugins may co-operate with each other. The core consist of small code base which provide plugin management, and hooks api for plugins. Core plugins are used to provide functionality you would expect from bare bones tiling window manager.

kiwmi

  • https://github.com/buffet/kiwmi - a work-in-progress extensive user-configurable Wayland Compositor. kiwmi specifically does not enforce any logic, allowing for the creation of Lua-scripted behaviors, making arduous tasks such as modal window management become a breeze. New users should be aware of the steep learning curve present, however this will be reduced as the project matures.

xuake

Grefsen

Cage

  • Cage - a kiosk compositor for Wayland. A kiosk is a window manager (in the X11 world) or compositor (in the Wayland world) that is designed for a user experience wherein user interaction and activities outside the scope of the running application are prevented. That is, a kiosk compositor displays a single maximized application at a time and prevents the user from interacting with anything but this application.

Wio

Taiwins

  • https://github.com/taiwins/taiwins - dynamic wayland window manager, supports both tiling and floating layout. It is designed to be modern and modular. It is extensible through lua script and it has built-in shell and widgets implementation through nuklear GUI. It also supports popular tiling window manager features like gapping.

Greenfield

waymonad

  • https://github.com/waymonad/waymonad - We all love tiling window managers and most of all we love xmonad. As you may know, wayland is trying to replace X11. This brings problems for us, since xmonad will not work with the new architecture. This project is intended to provide a wayland based desktop which shares the ideals and experience from xmonad.

hikari

  • hikari - a stacking Wayland compositor which is actively developed on FreeBSD but also supports Linux. [5]

Cagebreak

Cardboard

labwc

  • https://github.com/labwc/labwc - a wlroots-based stacking compositor aiming to be lightweight and independent, with a focus on simply stacking windows well and rendering some window decorations. It relies on clients for wallpaper, panels, screenshots, and so on to create a full desktop environment.Labwc tries to stay in keeping with wlroots and sway in terms of general approach and coding style.In order to avoid reinventing configuration and theme syntax, the openbox-3.4 specification is used. This does not mean that labwc is an openbox clone but rather that configuration files will look and feel familiar.

Strata

  • https://github.com/StrataWM/stratawm - a dynamic and sleek Wayland compositor and window manager for GNU/Linux systems. Its written completely in Rust using the Smithay library. Strata is made to be modular. It is done this way so that you, the user can mix'n'match different components to make Strata work the way you want, inspired by BSPWM. This makes it possible so that you can interchange components, for example, instead of using Kagi, the official Strata hotkey daemon, you can use SWHKD or even make your own. As Strata grows in complexity, this architecture will, hopefully, prove to be useful.


Hyprland





Veshell

  • https://github.com/free-explorers/veshell - a Wayland compositor providing an innovative workflow that utilizes humans natural spatial cognition to enhance navigation and organization in the digital environment.

niri

  • https://github.com/YaLTeR/niri - A scrollable-tiling Wayland compositor. Windows are arranged in columns on an infinite strip going to the right. Opening a new window never causes existing windows to resize. Every monitor has its own separate window strip. Windows can never "overflow" onto an adjacent monitor. Workspaces are dynamic and arranged vertically. Every monitor has an independent set of workspaces, and there's always one empty workspace present all the way down. The workspace arrangement is preserved across disconnecting and connecting monitors where it makes sense. When a monitor disconnects, its workspaces will move to another monitor, but upon reconnection they will move back to the original monitor.

Utilities

wlogout

wtype

ydotool

wdisplays

wayland-debug


yatbfw

wob

wofi

MPVPaper

SWHKD

  • https://git.sr.ht/~shinyzenith/swhkd - Simple Wayland HotKey Daemon. a display protocol-independent hotkey daemon made in Rust. swhkd uses an easy-to-use configuration system inspired by sxhkd, so you can easily add or remove hotkeys. It also attempts to be a drop-in replacement for sxhkd, meaning your sxhkd config file is also compatible with swhkd. Because swhkd can be used anywhere, the same swhkd config can be used across Xorg or Wayland desktops, and you can even use swhkd in a TTY.

hyprpicker

lxqt-labwc-session


kanshi

  • https://git.sr.ht/~emersion/kanshi - allows you to define output profiles that are automatically enabled and disabled on hotplug. For instance, this can be used to turn a laptop's internal screen off when docked. This is a Wayland equivalent for tools like autorandr. kanshi can be used on Wayland compositors supporting the wlr-output-management protocol.

Extra

Screenshots