A curated list of Wayland resources. Please investigate these projects on your own before fully committing to them!
This repository is a hard fork of natpen/awesome-wayland since it was archived on Oct. 17, 2023.
There are no current plans to apply to the project for inclusion.
Note
If you want to contribute, please read this.
Important
The scope of this repository aims to capture applications, libraries, etc. that are designed to support the Wayland ecosystem. This does not include existing applications that have implemented support for Wayland. That list is being maintained at mpsq/arewewaylandyet which is the repository for arewewaylandyet.com.
- SCOPE
- TABLE OF CONTENTS
- BINDINGS
- BREAK NOTIFIERS
- BRIGHTNESS CONTROL
- CLIPBOARD MANAGERS
- COMPOSITORS
- DISPLAY CONFIGURATION
- EMULATION
- IMAGE VIEWING
- LAUNCHERS
- LIBRARIES
- NOTIFICATIONS
- ON-SCREEN KEYBOARDS
- REFERENCE APPLICATIONS
- SCREEN LOCKING
- SCREENCASTS
- SCREENSHOTS
- SESSION MANAGEMENT
- THEMING
- TOOLS
- WALLPAPER
- WIDGETS (BARS, PANELS, ETC.)
These are language-specific bindings for use with Wayland development.
pywayland - A wrapper to the libwayland library
Ianny - Periodically informs user to take breaks by keeping track of usage patterns
No Wayland-specific requirements, so you can use your Xorg solution of choice to control screen brightness, like brightnessctl, brillo, or just directly manipulate /sys/class/backlight
.
Clight - Day/night gamma adjustments for Wayland compositors supporting
wlr-gamma-control-unstable-v1
; automatic screen backlight calibration to match ambient brightness using either webcam or ambient light sensor devices; screen dimmingGammastep - A day/night gamma modifier that adjusts the color temperature of the screen
Luminance - A simple GTK application to control brightness of displays including external displays supporting DDC/CI
wl-gammactl - A GTK application to set contrast, brightness, and gamma using the
wlr-gamma-control
protocolwlsunset - A day/night gamma adjustments for Wayland compositors supporting
wlr-gamma-control-unstable-v1
andxdg-output-unstable-v1
protocolswluma - A tool for wlroots-based compositors that automatically adjust screen brightness based on screen contents and ambient light
yabd - A simple brightness daemon compatible with Wayland compositors
clapboard - A clipboard manager with support for images and saved entries
cliphist - A clipboard history manager for Wayland
clipman - A simple clipboard manager implementing the
wlr-data-control-unstable-v1
protocolgemclip - A simple clipboard utility for Wayland implementing the
wlr-data-control-unstable-v1
protocolwayclip - A Wayland clipboard utility implementing the
wlr-data-control-unstable-v1
protocolwl-clipboard - Command-line copy/paste utilities for Wayland
wlsnarf - A highly scriptable clipboard tool for wlroots-based compositors implementing the
wlr-data-control-unstable-v1
protocol; includes a filesystem-based clipboard manager daemon with persistence
Cagebreak - A Wayland tiling compositor inspired by Ratpoison
croissant - A wlroots-based stacking Wayland compositor
dwl - A wlroots-based rewrite of DWM for Wayland
foxwhale - A tiling Wayland compositor based on wlroots
gamescope - A wlroots-based Wayland compositor designed for SteamOS
Greenfield - An HTML5 Wayland compositor that runs directly in the browser
hikari - A hybrid stacking/tiling Wayland compositor based on wlroots
Hopalong - A simple Wayland compositor with a feature set comparable to XFWM
Hyprland - A dynamic tiling Wayland compositor that doesn't sacrifice on its looks
japokwm - A wlroots-based dynamic tiling Wayland compositor based around creating layouts
Jay - A tiling Wayland compositor inspired by i3wm
kiwmi - A fully programmable Wayland compositor
labwc - A wlroots-based stacking compositor for Wayland, inspired by openbox
LaikaWM - A lightweight compositor for Wayland inspired by IceWM and Fluxbox
Liri Shell - A convergent shell for desktops, phones, and tablets
Magpie v1 - A wlroots-based Wayland compositor designed for the Budgie desktop environment
mahogany - A StumpWM-like Wayland compositor
miracle-wm - A Mir-based tiling Wayland compositor
Miriway - A Mir-based Wayland compositor
newm-atha - A Wayland compositor written with laptops and touchpads in mind
niri - A scrollable tiling Wayland compositor
phoc - A wlroots-based Wayland compositor mostly used on mobile phones
pinnacle - A wlroots-based Wayland compositor inspired by AwesomeWM
river - A dynamic tiling Wayland compositor
stagen - An experimental wlroots-based Wayland compositor
SwayFX - Sway, but with eye candy
sway - An i3-compatible Wayland compositor
tinybox - A window manager based on tinywl inspired by Blackbox, Fluxbox, and Openbox
tinywl+ - A stacking Wayland compositor based on tinywl and a great starting place for compositor development
velox - A simple window manager based on swc, inspired by dwm and xmonad
Vivarium - A dynamic tiling Wayland compositor using wlroots, with desktop semantics inspired by xmonad
volare - A tiling, tabbed Wayland compositor
Waybox - An openbox clone on Wayland
Wayfire - A 3D wlroots-based Wayland compositor inspired by Compiz
Weston - A Wayland compositor designed for correctness, reliability, predictability, and performance
wlmaker - A Wayland compositor inspired by Window Maker
Woodland - A minimal and lightweight wlroots-based stacking compositor, inspired by Wayfire and TinyWL
Kanshi - A dynamic display configuration tool for Wayland similar to autorandr, usable on Wayland compositors supporting the
wlr-output-management
protocolnwg-displays - An output management utility for sway and Hyprland, inspired by wdisplays and wlay
Wallutils - A set of utilities to handle monitors, resolutions, wallpapers, and timed wallpapers
wayland-displays - A GUI and CLI tool for managing display outputs on wlroots-based Wayland compositors implementing the
wlr-output-management-unstable-v1
protocolwayout - A simple output management tool for wlroots-based compositors implementing
wlr-output-management-unstable-v1
wdisplays - A GUI application for configuring displays in wlroots-based compositors implementing the
wlr-output-management-unstable-v1
protocolwlay - Graphical output management for Wayland
wlr-randr - A utility to manage outputs of wlroots-based Wayland compositors, inspired by xrandr
Waydroid - A container-based approach to boot a full Android system on GNU/Linux
Swayimg - An image viewer for Sway/Wayland
Anyrun - A GTK-based Wayland-native launcher, customizable via CSS
basket - A minimal application launcher for Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolbemenu - A dynamic menu library and client program inspired by dmenu
diowapplauncher - A simple application launcher for Wayland compositors implementing the
xdg-shell
protocoldiowmenu - A simple quick launch menu for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocoldmenu-wayland - A wlroots-based dynamic menu for Wayland
emenu - An efficient menu for wlroots-based Wayland compositors
fuzzel - An application launcher for wlroots-based Wayland compositors, similar to rofi's
drun
modegmenu - A desktop application launcher
kickoff - A wlroots-based application launcher
LavaLauncher - A simple launcher panel for Wayland desktops
Mauncher - A GTK-based alternative to dmenu for Wayland which supports display scaling
mew - A dmenu-like dynamic menu for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolmounch - A simple wofi/rofi launcher configured via YAML
nwg-launchers - A GTK-based application grid launcher, button bar, and dmenu for Sway with a best effort for other Wayland environments
rofi - A fork of rofi with Wayland support
sirula - A simple application launcher for Wayland
sysmenu - A simple program launcher for wlroots-based Wayland compositors, implementing the
gtk4-layer-shell
protocoltofi - A dynamic menu replacement for dmenu or rofi for wlroots-based Wayland compositors
walker - A GTK-based Wayland-native application runner
waypiedock - A launcher dock, in the shape of a pie, under the mouse
wldash - A dashboard, launcher, or control panel for Wayland, using the
wlr-layer-shell-unstable-v1
protocolwmenu - A dynamic menu for Sway and wlroots-based compositors inspired by dmenu
yofi - A minimalistic menu for Wayland-based compositors
client-toolkit - A toolkit for writing Wayland clients in Rust
gtk4-layer-shell - A library to create panels and other desktop components for Wayland using GTK 4 and the
wlr-layer-shell-unstable-v1
protocolgtk-layer-shell - A library to create panels and other desktop components for Wayland using GTK 3 and the
wlr-layer-shell-unstable-v1
protocollayer-shell-qt - A Qt-based library to allow applications to use the
wlr-layer-shell-unstable-v1
protocolLouvre - A library designed for building Wayland compositors in C++
Mir - A set of libraries for building Wayland-based shells
ocaml-wayland - An implementation of the Wayland protocol in OCaml
smithay - A compositor library for Wayland
swc - A small Wayland compositor implemented as a library
Swingby - A small GUI library for Wayland client programming
wayland-dart - A Dart implementation of the Wayland client protocols
way-z - A client library and widget toolkit for wlroots-based Wayland applications written in Zig
wld - A drawing library that targets Wayland
wlroots - Pluggable, composable, and unopinionated modules for building a Wayland compositor
Wrapland - A Qt-based wrapper library for the libwayland client and server APIs
zig-wlroots - Bindings to wlroots for Zig for developing Wayland compositors and clients
Avizo - A simple notification daemon, mainly intended to be used for multimedia keys
dunst - A highly configurable and lightweight notification daemon
fnott - A keyboard-driven and lightweight notification daemon for wlroots-based Wayland compositors
luft - A lightweight notification daemon for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolmako - A lightweight notification daemon for Wayland implementing the
wlr-layer-shell-unstable-v1
protocolSwayNotificationCenter - A simple notification daemon with a GTK GUI for notifications and the control center implementing the
wlr-layer-shell-unstable-v1
protocolSwayOSD - A GTK-based OSD window for common actions like volume and Caps Lock
wf-osk - A very, very basic on-screen keyboard using gtkmm and the
virtual-keyboard-unstable-v1
andwlr-layer-shell-unstable-v1
protocolswkeys - An on-screen keyboard featuring a configurable layout and style for Wayland compositors supporting the
gtk4-layer-shell
protocolwshowkeys - Displays keypresses on screen on Wayland compositors supporting the
wlr-layer-shell-unstable-v1
protocolwvkbd - An on-screen keyboard for wlroots-based compositors
These are mainly for developers looking for example implementations.
go-wayland - A basic implementation of the Wayland protocol
vkwayland - A reference application for Vulkan and Wayland
wayland-py - A pure Python implementation of a Wayland client
zig-wayland - A basic implementation of the Wayland protocol for developing Wayland compositors and clients, including examples
chayang - A screen dimmer that can be used to implement a grace period before locking the session
cthulock - A Slint-based customizable screen-locker for Wayland compositors implementing the
ext-session-lock-v1
protocolgtklock - A GTK-based lockscreen for wlroots-based Wayland compositors using the
wlr-layer-shell-unstable-v1
andwlr-input-inhibitor
Wayland protocolshypridle - A wlroots-based idle management daemon implementing the
ext-idle-notify-v1
protocolhyprlock - A multi-threaded and GPU-accelerated wlroots-based screen locking utility implementing the
ext-session-lock-v1
andwlr-screencopy-unstable-v1
protocolsShaderlock - A wlroots-based screen-locker for Wayland utilizing GPU shaders
swayidle - An idle management daemon for Wayland which implements the
ext-idle-notify-v1
protocolswaylock-effects - A fork of swaylock which adds, built-in screenshots, image manipulation, and various other effects like blurring
swaylock - A screen locking utility for Wayland which implements the
ext-idle-notify-v1
protocol protocolwaylock - A small screen-locker for Wayland compositors implementing the
ext-session-lock-v1
protocolwlock - A simple screen-locker for Wayland compositors that support the
ext-session-lock-v1
protocol
Kooha - Minimalistic screen recorder for Wayland sessions implementing the
org.freedesktop.impl.portal.ScreenCast
protocolssr-wlroots - A fork of SimpleScreenRecorder with support for wlroots-based compositors (more specifically, those that support
wlr-screencopy-unstable-v1
andxdg-output-unstable-v1
) - doesn't support recording area selection and has issues with multiple screenswayfarer - A screen recorder for GNOME/Wayland/PipeWire implementing the
org.freedesktop.impl.portal.ScreenCast
protocolwayrec - A simple screen recorder using the
org.freedesktop.impl.portal.ScreenCast
protocolwf-recorder - A utility program for screen recording of wlroots-based compositors (more specifically, those that support
wlr-screencopy-unstable-v1
andxdg-output-unstable-v1
)wl-mirror - A simple Wayland output mirror client
wlrobs - A plugin for OBS Studio that allows screen capture on wlroots-based Wayland compositors
wl-screenrec - A screen recorder for wlroots-based Wayland compositors leveraging DMA-BUF and the DRM and implementing the
wlr-output-management-unstable-v1
andwlr-screencopy-unstable-v1
protocols
dulcepan - A screenshot tool for wlroots-based Wayland compositors, implementing the
wlr-layer-shell-unstable-v1
andwlr-screencopy-unstable-v1
protocolsgrim - Grab images from a Wayland compositor
haruhishot - A screenshot utility for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
andwlr-screencopy-unstable-v1
protocolssamurai-select - A screen selection tool for wlroots-based Wayland compositors implementing
wlr-layer-shell-unstable-v1
Satty - A screenshot annotation tool inspired by Swappy and Flameshot
Seto - A hardware-accelerated and keyboard-driven screen selection tool implementing the
wlr-layer-shell-unstable-v1
protocolshotman - A screenshot GUI for Wayland compositors implementing
wlr-layer-shell-unstable-v1
,wlr-screencopy-unstable-v1
, andsingle-pixel-buffer-v1
protocolsslurp - Select a region in a Wayland compositor and print it to the standard output
swappy - A Wayland-native snapshot editing tool, inspired by Snappy on macOS
Taiga - An animated screenshot program for wlroots-based Wayland compositors
Watershot - A simple Wayland-native screenshot tool inspired by Flameshot
Wayshot - A screenshot tool for wlroots-based compositors implementing
wlr-screencopy-unstable-v1
waysip - An area selector for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolWeye - A lightweight screenshot tool for sway users
nwg-bar - A Wayland-based logout menu implementing the
gtk3-layer-shell
protocolpwrmenu - A Wayland-based logout menu implementing the
gtk4-layer-shell
protocolSwayAudioIdleInhibit - Prevents swayidle from sleeping while any application is outputting or receiving audio, implementing the
idle-inhibit-unstable-v1
protocolwleave - A Wayland-based logout menu implementing the
gtk3-layer-shell
protocolwlogout - A Wayland-based logout menu
nwg-look - A GTK 3 settings editor designed to work properly in a wlroots-based environment
clipcell - A clipboard manager with support for text and image preview for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolDoor Knocker - A simple tool to check the availability of XDG portals in a running session
hyprpicker - A wlroots-compatible Wayland color picker
lan-mouse - A mouse and keyboard sharing software
lswt - List Wayland toplevels in both human readable and machine parsable formats via the
wlr-foreign-toplevel-management-unstable-v1
protocolscenefx - A drop-in replacement for the wlroots scene-graph API that allows Wayland compositors to render surfaces with eye-candy effects
sway-fader - A tool that can be used to control transparency for focus and window events
Vigiland - An application implementing the
idle-inhibit-unstable-v1
protocolWaycheck - A simple application that displays all of the Wayland protocols supported and unsupported by the running compositor
waycorner - Hot corners for wlroots-based Wayland compositors implementing the
xdg-output-unstable-v1
protocolwaylevel - A simple debugging tool which prints Wayland toplevels and other compositor specific information
waynergy - An implementation of a synergy client for Wayland compositors
waypipe - A proxy for Wayland clients enabling application forwarding similar to
ssh -X
wayprompt - A multi-purpose prompt tool for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolwayvnc - A VNC server for wlroots-based Wayland compositors
wev - A tool for debugging events on a Wayland window, analogous to the X11 tool
xev
whisper-overlay - A tool providing speech-to-text functionality for Wayland compositors implementing
virtual-keyboard-unstable-v1
andwlr-layer-shell-unstable-v1
protocolswlcs - A protocol-conformance-verifying test suite usable by Wayland compositor implementors
wlinhibit - A simple idle inhibitor implementing the
idle-inhibit-unstable-v1
protocolwl-kbptr - A utility to help move the mouse pointer with the keyboard implementing the
wlr-layer-shell-unstable-v1
andwlr-virtual-pointer-unstable-v1
protocolswlopm - A Wayland output power management tool implementing the
wlr-output-power-management-unstable-v1
protocolwlrctl - A command line utility for miscellaneous wlroots-based Wayland extensions, supporting the
wlr-foreign-toplevel-management-unstable-v1
,virtual-keyboard-unstable-v1
, andwlr-virtual-pointer-unstable-v1
protocolswlr-which-key - A keymap manager for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolwtw - A simple text widget for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolwtype - A Wayland tool that allows keyboard input simulation like
xdotool
xwayland-run - A set of utilities revolving around running
Xwayland
and various Wayland compositors headlessydotool - A generic Linux command-line automation tool
Azote - A GTK 3-based picture browser and background setter supporting all wlroots-based Wayland compositors
beanbag - A lightweight wallpaper application designed for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolglshell - A shader display implementing the
wlr-layer-shell-unstable-v1
protocol that can be used to create a simple overlay for a Wayland compositor, a status bar, or a wallpaperHyprpaper - A wallpaper utility with the ability to dynamically change wallpapers supporting all wlroots-based compositors
mpvpaper - A video wallpaper program for wlroots-based Wayland compositors
rwpspread - A multi-monitor wallpaper utility spanning input wallpapers across all monitors, supporting Wayland compositors implementing
xdg-output-unstable-v1
with integrations forwpaperd
,swaybg
,hyprpaper
,swaylock
, andhyprlock
swaybg - A wallpaper utility for Wayland compositors implementing the
wl_output
version 4 andwlr-layer-shell-unstable-v1
protocolsswww - An animated wallpaper daemon for Wayland, controlled at runtime and implementing the
wlr-layer-shell-unstable-v1
andxdg-output-unstable-v1
protocolsWallutils - A set of utilities to manage monitors, resolutions, wallpapers and timed wallpapers
Waypaper - A GUI frontend for swaybg/swww to switch wallpapers
wbg - A simple wallpaper application for Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolwpaperd - A wallpaper daemon that shows random wallpapers from a directory and changes them after some time
ags - A standalone library for creating GTK-based widgets
beanclock - A simple clock overlay for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolchocobar - A simple status bar for wlroots-based Wayland compositors
creek - A dwm-inspired fork of levee and minimalist status bar for the River compositor designed to be more malleable by allowing arbitrary text rather than built-in modules
dam - A small status bar designed for River and wlroots-based Wayland compositors
deburr - A dwm-like status bar for wlroots-based Wayland compositors
diowpanel - A simple panel for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocoldiowwindowlist - A simple GUI application for listing and activating the currently opened toplevels (application windows) in wlroots-based Wayland compositors implementing the
wlr-foreign-toplevel-management-unstable-v1
andwlr-layer-shell-unstable-v1
protocolsDvvidget - A widget system for Wayland compositors implementing the
wlr-layer-shell-unstable-v1
andgtk4-layer-shell
protocolsdynisland - An extensible bar for wlroots-based Wayland compositors implementing the
gtk4-layer-shell
protocolEww - A standalone widget system that allows for implementing custom widgets in any window manager
fabric - A GTK-based desktop widget framework
gBar - A status bar written with GTK
Hybridbar - A top panel forked from wingpanel for Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocoli3status-rust - A resource-friendly and feature-rich replacement for i3status
ignis - A widget system based on GTK 4 for Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolIronbar - A customizable and feature-rich GTK bar for wlroots-based compositors
kitshell - A Flutter-based panel for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocollevee - A status bar for the river Wayland compositor, providing support for workspace tags, volume, battery capacity, and screen brightness via built-in modules
nwg-panel - A GTK 3-based panel for Wayland compositors
Root Bar - A bar for wlroots-based Wayland compositors such as sway
SFWBar - A flexible taskbar application for Wayland compositors, designed with a stacking layout in mind
sysbar - A modular status bar for wlroots-based Wayland compositors, implementing the
gtk4-layer-shell
protocolsyshud - A system status indicator for wlroots-based Wayland compositors, implementing the
gtk4-layer-shell
protocolwalrus-bar - A status bar for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolWapanel - A simple panel/status bar/task bar for stacking Wayland-based desktops
Waybar - A highly customizable bar for Sway and wlroots-based compositors
way-edges - A lightweight application providing off-screen widgets hidden along the edges of the screen
wayloadmon - A load monitor widget for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolwlclock - An analog clock for wlroots-based Wayland compositors, implementing the
wlr-layer-shell-unstable-v1
protocolwob - A lightweight overlay volume/backlight/progress/anything bar for wlroots-based Wayland compositors implementing the
wlr-layer-shell-unstable-v1
protocolYaGoStatus - A replacement for i3status
yambar - A lightweight and configurable status panel, inspired by polybar
zenway - A sway bar alternative that overlays on top of workspaces