Vellum

Quickshell · Hyprland

Vellum Shell

An ink-inspired desktop shell: a multi-monitor top bar, launcher, notification centre, media dashboard, system controls and a Wayland lock screen, all coloured by one palette.

Arch Linux, CachyOS and Fedora · Hyprland 0.55 or newer

Drawn live in the site theme. Pick another one in the top bar and the whole page follows, as the shell does.

Features

A whole desktop surface, not a bar

Every overlay opens on the focused monitor and closes the others. Popups are loaded on demand, so nothing costs memory until it is used.

Launcher

One field searches applications, shell actions and emoji, ranks results by frecency and evaluates anything that looks like maths. > switches to projects.

Notification centre

Toasts, actions and history grouped per application with unread counts. History and Do Not Disturb survive a shell restart.

Media dashboard

An album-art player above a calendar with Google Calendar events, Open-Meteo weather and live CPU, memory and disk.

Appearance Studio

Wallpapers and themes in a skewed carousel. Themes preview live on the running shell and are written out only when you press Enter.

Lock and login screen

A multi-monitor WlSessionLock with PAM that locks before suspend. The same QML runs as a greetd greeter.

Settings application

A real window for displays with a 12-second auto-revert, tiling, input, sound, default apps, services, keybindings and a drag-and-drop bar editor.

Clipboard history

Text and image entries recorded by the daemon, with pinning and previews. Anything a password manager marks as secret is never stored.

System controls

PipeWire mixer, NetworkManager with its own password dialog, Bluetooth, VPN, removable drives, Polkit agent and volume OSD.

Rust backend

One daemon speaking newline-delimited JSON over a Unix socket. Topics are lazy, so an idle daemon uses about 7 MB and no CPU.

Vellum Shell on a 1920 by 1080 desktop: the top bar and the media dashboard with calendar, weather and system cards over a wallpaper
The media dashboard on a real desktop, in Varnished Horizon.

Themes

One palette, everywhere

A theme is a short theme.conf. Switching it recolours the shell and, in one transaction, GTK, Qt, kitty, btop, Neovim, Hyprland borders, Zen Browser, Fastfetch and the login screen.

Screensaver

ASCII scenes, drawn by shaders

After a chosen idle time every monitor gets an ASCII scene, picked by hand or by season. It costs nothing until it starts and steps aside for the lock screen.

Shapes: a morphing 3D form drawn in ASCII
Shapes in the active theme's colours
Christmas: a turning ASCII fir tree in falling snow
Christmas 1 – 26 December
New Year's Eve: ASCII fireworks over a city skyline
New Year's Eve 27 December – 6 January
Summer: an ASCII sunset over the sea
Summer June – August
Autumn: a glowing carved pumpkin and falling leaves
Autumn September – November
Orbit: one scene spanning two monitors, with a comet crossing from one screen to the other
Orbit across monitors one picture over every screen

Previews play about three times faster than real time.

Install

From clone to desktop

The setup checks every prerequisite first and stops before touching the system if something is missing. --dry-run prints the plan without changing anything.

Shell

git clone https://github.com/cucu0628/vellum_shell.git \
  "$HOME/.config/quickshell/vellum_shell"
cd "$HOME/.config/quickshell/vellum_shell"

./setup.sh --dry-run   # show the plan
./setup.sh             # install it
./setup.sh --with-greeter   # optional: greetd login screen

Hyprland bindings

local shell = [[quickshell ipc --path "$HOME/.config/quickshell/vellum_shell/shell.qml" call]]
hl.bind("SUPER + SPACE", hl.dsp.exec_cmd(shell .. " launcher toggle"))
hl.bind("SUPER + V", hl.dsp.exec_cmd(shell .. " clipboard toggle"))
hl.bind("SUPER + N", hl.dsp.exec_cmd(shell .. " notifications toggle"))
hl.bind("SUPER + P", hl.dsp.exec_cmd(shell .. " settings toggle"))