Ferese logo

Ferese

An animation-first scrolling Wayland desktop.

Install · Configure · Try it · Develop

Ferese combines a scrolling window manager with its own menu bar, control center and native Settings app. Built in Rust on Smithay, it brings configurable motion and a cohesive desktop interface to a keyboard-driven workflow.

A desktop that moves with you

  • Scrolling columns: a horizontal window strip with configurable widths and focus behavior. Tree tiling is available per workspace.
  • Coordinated motion: animated focus, resize, workspace transitions and overview, with adjustable speed and reduced-motion support.
  • An integrated shell: workspace selector, status popovers, notification controls and a compact control center.
  • Native Settings: appearance, wallpaper, input, motion and more, with automatic saving, validation and undo.
  • Your own look: solid or translucent shell surfaces, backdrop blur, rounded corners, soft shadows and optional gradient focus rings.
  • Multiple displays: per-output workspaces, fractional scaling, monitor hotplug and laptop-lid workspace migration.
  • Live configuration: update TOML without restarting the desktop. Invalid changes keep the last working configuration.
  • Session locking: ext-session-lock-v1 with swaylock or swaylock-effects through ferese-lock.

Try it

Preview Ferese inside your current Wayland desktop:

cargo build --release --locked -p ferese -p ferese-shell -p ferese-settings -p feresectl
target/release/ferese --backend nested --grant-effects --grant-shell-control -- \
  target/release/ferese-shell

Use a recent Rust toolchain (1.93 or newer for the shell), Smithay's native build dependencies, and foot for the default terminal. Settings wallpaper browsing uses zenity; entering an image path works without it.

For a login-screen session alongside your existing desktop:

./scripts/install.sh

The installer preserves your configuration and keeps previous releases for rollback. Log out and select Ferese at the login screen. An upgrade does not replace the running compositor: log out and back in to activate it. See installation and recovery for prerequisites, session logs and rollback.

Get around

These are built-in defaults; your configuration can override them.

Shortcut Action
Super + Enter Open a terminal
Super + H / J / K / L Focus a window
Super + R Cycle column width
Super + C Center the focused column
Super + F Maximize, keeping the bar and decorations
Super + Shift + F True fullscreen
Super + Tab Open workspace and window overview
Super + M Switch scrolling / tree layout
Super + Shift + E Log out immediately—save your work first

Make it yours

Open Control Center → Settings, or run ferese-settings. Advanced options live in ~/.config/ferese/config.toml (or under $XDG_CONFIG_HOME). Start with the example config.

[scrolling]
default_column_width = 0.5
focus_strategy = "paged"

[[window_rules]]
app_id = "dev.ferese.Settings"
floating = true

Saving the file reloads it automatically. Run feresectl reload-config for an explicit reload with validation feedback. The configuration reference covers themes, window rules, bindings, output profiles, session services and locking.

Development

cargo test --workspace --locked
cargo fmt --all --check

Use release builds when evaluating animation and startup performance. RUST_LOG=ferese=debug enables detailed logs; FERESE_TRACE_PERFORMANCE=1 enables per-output performance summaries. Development probes under tools/ are local-only and are not part of the published Cargo workspace.

Test hardware behavior on your own setup, especially suspend/resume and locking. Keep a working desktop session available while testing changes.

S
Description
No description provided
Readme MIT
146 MiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 91.7%
Python 7.2%
Shell 0.7%
GLSL 0.2%
CSS 0.1%