Skip to content
nongioPublic

About

A stacking and tiling dekstop built around animation, gesture, and spatial interaction.

Topics

Resources

Stars

101 stars

Watchers

3 watching

Forks

Latest commit

 

History

661 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Otto

CI Matrix Discord

A Wayland desktop that is a pleasure to use.

Otto is a Wayland compositor and stacking window manager, with the apps that make it a desktop: top bar, Dock, file manager, settings, launcher, lock screen and login greeter. It is written in Rust on Smithay, with a Skia renderer and the lay-rs scene graph.

Documentation: User Guide · Developer Guide

Questions and feedback: Discord or Matrix #otto-compositor:matrix.org.

See it

A fresh Otto install: wallpaper, top bar and Dock

A fresh install, set up before you touch anything.

Files in the Photos view, pictures grouped by day with an info panel

Files, with pictures laid out by day.

The side canvas open on the right, with files to ask about and a list of agent sessions

The side canvas, swiped in from the right edge, and files on the desk.

Settings open on the Appearance pane, with wallpaper, background widget and desk options

Settings › Appearance. More looks in Customization.

Try it

Packages need Ubuntu 24.04+, Debian 13+, Fedora 41+ or Arch.

# Debian / Ubuntu
curl -fLO https://github.com/nongio/otto/releases/latest/download/otto-amd64.deb
sudo apt install ./otto-amd64.deb

# Fedora / RHEL
sudo dnf install https://github.com/nongio/otto/releases/latest/download/otto-x86_64.rpm

# Arch
curl -fsSLO https://raw.githubusercontent.com/nongio/otto/main/PKGBUILD && makepkg -si

Log out and pick Otto in your login manager's session menu. To look first, otto --winit runs it in a window inside your current Wayland session.

Getting Started covers nightly builds, building from source, optional dependencies and the first-run checklist (screen sharing, the lock screen's PAM file, lid and power button).

What you get

  • Dock: pinned apps, running apps and minimized windows in one strip, on any edge.
  • Workspaces: several per monitor, each monitor independent.
  • Exposé and app switcher: every window spread out with live previews; Ctrl+Tab across apps and their windows.
  • Window management: snapping, minimize to the Dock, low-overlap placement, server-side title bars.
  • Tiling: any workspace can switch between stacking and tiling; otto-msg speaks i3's command language.
  • Top bar and dynamic island: clock, tray and app menus; notifications, activities and permission dialogs.
  • Multiple monitors: hotplug, per-output scale, and virtual outputs with no screen behind them.
  • Lock screen and login greeter: PAM, fingerprint, idle and lid locking.
  • Screen sharing: an XDG Desktop Portal backend over PipeWire, for an output or a single window.
  • Remote desktop: otto-rdp serves an output to any RDP client.
  • Files: file manager with Peek previews, a command palette and your own scripts as commands; also the desktop's file picker.
  • Settings: changes the running desktop live and writes the same config file you can edit by hand.
  • Launcher and emoji picker.
  • X11 apps, fullscreen games included, through XWayland.
  • Rendering: Skia, with parts of the desktop on their own hardware display planes and blur across them. See DRM planes.
  • Accessibility: the desktop's own surfaces expose an AT-SPI tree.
  • Translated into 11 languages.

Plane scanout is mostly tested on Intel GPUs. If elements go missing or flicker on AMD or NVIDIA, see Troubleshooting.

Not there yet

  • An interactive screenshot UI, and per-window wlr-screencopy
  • Display mirroring
  • Scroll acceleration

Supported protocols

The full list is in Wayland protocols. Otto adds two of its own: otto-surface-style-unstable-v1 (experimental: clients drive layer geometry, blur and shadow with compositor-side springs; the top bar and dynamic island use it) and otto-dock-v1.

Configuration

Otto reads /etc/otto/config.toml, then ~/.config/otto/config.toml. Edit either, or use the Settings app. otto_config.example.toml lists every option; the Configuration guide explains them.

Development

git clone https://github.com/nongio/otto
cd otto
cargo build --release --workspace --exclude otto-rdp
cp otto_config.example.toml otto_config.toml
PATH="$PWD/target/release:$PATH" target/release/otto --winit

Otto is the compositor plus a set of separate programs it starts by name: otto-bar, otto-islands, otto-files, otto-settings and others. A plain cargo build only builds otto, and nothing from target/release is on your PATH, so the top bar, notifications and Settings would not start. The lines above build every program, put the build directory first on PATH for this one run, and copy the example config into the checkout, where Otto reads it as a local override (it is gitignored). That example config is what tells Otto to autostart the top bar and dynamic island. --winit opens Otto as a window in your current session. otto-rdp is left out because it needs the GStreamer development libraries.

Build prerequisites, backends, feature flags and the component crates are in Project Structure. The Developer Guide covers the architecture, rendering and the rest; the same pages live in docs/developer/.

Contributing

Bug reports, testing on your hardware, features and ideas are all welcome: the issue tracker, Discord or Matrix. AGENTS.md and the developer docs are written for human contributors and coding agents alike.

License

MIT. See LICENSE. The packages also ship the MacTahoe icon theme, installed as Otto-MacTahoe, which keeps its own licence, GPL-3.0.

Credits

  • Icons and cursors: MacTahoe by Vince Liuice (GPL-3.0)
  • Font: Inter by Rasmus Andersson (SIL Open Font License 1.1)
  • Wallpaper: Otto's own, under Otto's licence
  • Screenshots use the Fluent icon theme; see Credits for everything else in them

About

A stacking and tiling dekstop built around animation, gesture, and spatial interaction.

Topics

Resources

Stars

101 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages