impasto is a desktop shell for Hyprland, with the rest of the desk around it.
The shell is written in Quickshell and is most of the
code. The rest is the terminal, the prompt, two editors, two file managers, a
browser, a chat client, the login screen and the boot splash, all configured
to match. One
script, setup, installs all of it on Arch Linux.
The island, the widgets, a note deck on the edge, the terminal and the dock.
The name is the painting technique the wallpapers imitate: paint laid on thick
enough to keep the mark of the brush. The desk comes with thirty-three
wallpapers in that style: photographs somebody else turned into the oil look.
A capsule in the middle of the bar rests on the time and changes shape into
everything else: the glance, the control centre, the launcher, the
overview, a notification, a game. Every module on the bar opens into it,
and nothing has a title or a close button.
A desk under the windows
Any module can sit on the wallpaper as a widget, on a grid, in four shapes.
Right-click the wallpaper to arrange them. Three themes draw the same
modules: Modern as a figure with a caption, Analogue as an object,
Sticker as die-cut stickers.
Colours from the painting
Pick a wallpaper and its palette reaches the island, the widgets, the
terminal, btop, cava, yazi, neovim, VSCodium, the GTK, Qt and KDE windows,
Nautilus down to its folders, Vesktop, Zen and Spotify. Or pick one of
nine fixed palettes instead.
The shell’s own lock screen, which shows what is playing and opens for your face with an infrared camera, and an SDDM theme and a boot splash that match it
Arch Linux. Every package is named in packages/pacman.txt and
packages/aur.txt, and setup installs them with pacman and yay or paru.
For a machine with no Arch yet, a USB stick, built on one
that has it, installs Arch and the desk together.
Hyprland 0.56 or newer, configured in Lua. It is tested on 0.56.2.
Quickshell 0.3, installed with the rest.
A terminal or a console to run the installer from, and your password for
sudo.
Most features rely on packages that are optional. A missing one takes its own
control away rather than failing.
InstallationClone the repository and run ./setup install.