Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Glossary

Wayland Terminology

TermDefinition
WaylandThe display server protocol used by modern Linux desktops, replacing X11
CompositorThe program that manages windows and display output (e.g., Hyprland, Niri)
Layer shellA Wayland protocol (wlr-layer-shell) that allows surfaces to be placed in specific layers (Background, Bottom, Top, Overlay)
Layer surfaceA Wayland surface managed by the layer shell protocol
AnchorEdges of the screen that a layer surface attaches to (top, bottom, left, right)
Exclusive zoneScreen space reserved by a layer surface that other windows won’t overlap
OutputA display/monitor in Wayland terminology
SCTKSmithay Client Toolkit — Rust library for Wayland client development
xdg_popupWayland protocol for creating popup surfaces attached to other surfaces

iced Terminology

TermDefinition
icedThe Rust GUI framework used by ashell
ElementAn iced widget tree node — the return type of view()
TaskA one-shot async effect that produces a message when complete
SubscriptionA long-lived event stream that continuously produces messages
daemoniced’s multi-window mode, where the application manages multiple surfaces
Themeiced’s styling system with palette-based colors
PaletteA set of named colors (background, text, primary, secondary, success, danger)
WidgetA UI component (button, text, row, column, container, etc.)

ashell Terminology

TermDefinition
ModuleA self-contained UI component displayed in the bar (e.g., Clock, Workspaces, Settings)
ServiceA backend integration that communicates with system APIs (e.g., audio, bluetooth, compositor)
IslandsA bar style where each module group has its own rounded background container
SolidA bar style with a continuous flat background
GradientA bar style where the background fades from solid to transparent
MenuA popup panel that appears when clicking certain modules
CenterboxCustom widget providing a three-column layout with true centering
ButtonUIRefPosition and size information of a button, used for menu placement
Hot-reloadAutomatic application of config changes without restarting
TempoThe advanced clock module (replacement for the deprecated Clock module)
Custom moduleA user-defined module that executes shell commands

Architecture Terminology

TermDefinition
MVUModel-View-Update — the Elm Architecture pattern used by iced
MessageAn event type that triggers state changes (the “Update” in MVU)
ActionA module-level return type that communicates side effects to the App
ServiceEventThe standard event enum for services (Init, Update, Error)
ReadOnlyServiceA service that only produces events (no commands)
Service (trait)A service that produces events and accepts commands
BroadcastThe pattern used by the compositor service to share events across multiple subscribers

System Terminology

TermDefinition
D-BusThe standard Linux IPC mechanism for communicating with system services
zbusThe Rust crate used for D-Bus communication
BlueZThe Linux Bluetooth stack
NetworkManagerStandard Linux network management daemon
IWDiNet Wireless Daemon — Intel’s lightweight wireless daemon
UPowerPower management daemon (battery info, power profiles)
MPRISMedia Player Remote Interfacing Specification — D-Bus interface for media player control
StatusNotifierItemD-Bus protocol for system tray icons
logindsystemd’s login manager (handles sleep/wake, power actions)
PulseAudioLinux audio server (also provided as a compatibility layer by PipeWire)
PipeWireModern Linux multimedia framework (replaces PulseAudio and JACK)
Nerd FontA font family patched with programming icons and symbols
cargo-distRust tool for creating distributable binaries and installers
nfpmTool for creating .deb and .rpm packages