Skip to content
GitHub

Introduction

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.

One black island

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.

Each new wallpaper repaints everything around it.
PartWhat it isRead more
The island and the barThe bar in four styles, the island at its centre, notifications, the overview; every layer classic, glass or liquidThe island, The bar
The control centreQuick controls and the doors to every other panel, on SUPER AControl centre
The launcher and the dockApplications ranked by use, a calculator, windows, a countdown, the clipboard history; the pinned applicationsLauncher, Dock
The desktopWidgets on a grid, three themes, notes stacked along the edges, a sound spectrum on the grid or along an edgeDesktop
CaptureScreenshots, annotation, text from a region, screen recordingCapture
Notes and tasksA deck of paper notes and a three-lane boardNotes and tasks
Games and petsEleven games played in the island, and five creatures on the barGames and pets
Keys and packagesEvery key on one sheet; pacman and the AUR in one panelKeys and packages
Virtual machinesAny system quickget knows, fetched, run and snapshotted from the islandVirtual machines
Development serversEvery port your projects listen on, opened, copied or stopped from the islandDevelopment servers
Camera effectsEffects and gesture reactions on the webcam, through a virtual camera any call can pickCamera effects
Screen timeThe time spent in each application, by the day, the week or the monthScreen time
Lock and loginThe 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 itLock and login
SettingsThe one ordinary window, with profiles that keep whole desks under namesSettings
The impasto commandThe shell driven from a terminal or a script, answering in JSONThe impasto command
The terminalkitty, zsh with oh-my-zsh, starship, fastfetch, and the programs run in itTerminal
Other windowsGTK, Qt and KDE applications, Nautilus, Zen, Vesktop, Spotify, VSCodium, imvApplications
  • 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.