Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

impasto — the island, become the mark, over a painting of Mount Fuji

A Hyprland shell whose colours come from a painting.
One black island that changes shape, a desk of widgets under the windows,
and every program around it repainted by whatever wallpaper is up.

check Arch Linux Hyprland Quickshell GPL-3.0

Documentation · The island · The bar · The launcher · The desktop · Installation · Keys

The desk: the island with a track playing, widgets down the right, a note deck on the left edge, a terminal with the lava lamp greeting, and the dock

The name is the technique the wallpapers are painted in: paint laid on thick enough to keep the mark of the brush. It is a shell first and a dotfiles repository second — home/.config/quickshell is most of the code, and the rest of home/ is the desk around it: the terminal, the prompt, two editors, two file managers, a browser, a chat client, the login screen. Change the wallpaper and all of it follows.

The island

The island at rest, opening a glance under the pointer, becoming the control centre, then the launcher doing a sum and listing the shell's places, then a notification arriving

The island is one object that changes shape. A black capsule in the middle of the bar rests on the time and turns into everything else: the glance under the pointer, the control centre, the launcher, the overview, a notification, a game — each the size of what is in it, with no title and no close button. What is running sits either side of the time, and every module on the bar opens into the island rather than into a popup of its own.

Module details in the island: the player, the battery, Claude Code's usage, the processor and memory, the recorder, the Wi-Fi list, the weather, the pet, the volume, the month with task dots, the tasks, a countdown and the GitHub wall

The bar

The same bar in its three styles: grouped round the island, spread to the two edges, and everything inside one capsule

Three styles, one layout. Pieces are dragged out of a catalogue onto a picture of the bar, then drawn grouped round the island, spread to the edges, or all inside one capsule. Each shows its symbol or its ring, with its figure always, never or under the pointer — two settings for the whole bar, and any piece can have a look of its own.

The launcher and the dock

The launcher listing applications ranked by use, the clipboard history with an image drawn in its row, and the dock with the terminal's menu open over its windows

The first character says what the field is for. Plain text searches applications, = calculates, @ finds an open window, ! starts a countdown, ' is the clipboard history, and > is the shell itself — every panel and setting by name. Applications are ranked by what you actually launch.

The dock holds what you pinned, then whatever else is open, and the same pins come first in the launcher. Right-click an icon for its windows by name.

The desktop

The same wall of widgets split down the middle: Modern on the left, figures with captions; Analogue on the right, a thermometer, a wall calendar, a battery cell, a knob, gauges, a parcel, a joystick

Any module can live on the wallpaper, on a grid, in four shapes: a square, a card, a large square and a band. Right-click the wallpaper to arrange — a card holds every module, a corner is pulled for another shape, and a click opens that widget's own look — for a photo widget, the picture of your own it holds.

Two themes on the same modules: Modern is a figure with a caption, Analogue draws each one as an object, and either is a choice per widget.

The wallpaper changing three times, and the bar, the widgets, the terminal and the system monitor repainting with each one

The palette comes out of the painting. Pick a wallpaper and its colours reach everything at once: the island and the widgets, the terminal and the prompt, btop, cava, yazi, neovim, VSCodium, the GTK, Qt and KDE windows, Thunar down to its folders, Vesktop, Zen and Spotify. Or pick one of nine palettes instead. The desk comes with forty paintings, in the style it is named after.

In the terminal, the prompt is laid out like the bar, and fa greets you with fastfetch beside an animated scene drawn in pixel art out of the palette.

Notes and tasks

The deck of pastel notes in handwriting, one note open with the island become yellow paper, the kanban board with three lanes, and a task open with its day and lane

A note is paper: a pastel square with a title and the body in handwriting. SUPER + S opens the deck; on the wallpaper a note sits on a square, or stacks with others along an edge as tabs that peek out under the pointer.

A board for what has to be done. SUPER + K is to do, doing, done, with cards dragged between the lanes, and a task's day shows as a dot under the month wherever a month is drawn.

Games and pets

Tetris and Flood Colors played in the island, and the pets' page with Pip out and the rest of the family waiting

Eleven small games, played in the islandSUPER + G opens a shelf, and the island becomes the board. A family of five small creatures lives on the bar: one out at a time, earning levels from being fed and played with, each hatched from an egg. Nothing dies, and a week away costs nothing.

Lock and login

The lock screen over the blurred desk, and the SDDM login screen over a painting of brush strokes — the same clock, the same face, the same field

The shell locks the session itself, over the blurred desk, and the login screen is the same lock with the desk taken away: an SDDM theme with the same clock, the same face and the same field. The face is your initials, or a picture of yours at /var/lib/impasto/faces/<username>.face.icon.

Settings

Two pages of the settings window: the bar arranged on a picture of it, and the appearance with the wallpaper transitions and the greeting scenes

Settings is the one panel that is not the island — an ordinary window where each option is drawn as the thing it changes, and profiles keep whole desks under names: Moon castle, Fuji and Night bay come with it.

Installation

Arch Linux, and Hyprland 0.56 or newer (tested on 0.56.2), configured in Lua. Run it from a terminal inside the Hyprland session — the plugins are built against the compositor that is running:

git clone https://github.com/andreumassanet/impasto.git ~/impasto
cd ~/impasto
./setup install

It installs the packages, oh-my-zsh, everything in home/ into your home and everything in system/ into /, the two Hyprland plugins and the vector cursor, and the login screen, switched on unless your machine already uses another display manager. It sets up Thunar, VSCodium, Vesktop and Spotify, dark GTK applications, and what opens which kind of file — leaving alone any your machine already has an answer for. It asks for your password through sudo for pacman, for the copy into /, and to let spicetify patch Spotify. A program that is open, or a Spotify you have never started, is skipped with the reason and set up by the next update. After that they follow the wallpaper on their own; Spotify from its next start.

Flag
--skip-packagesinstall nothing; copy and build only
--skip-systemleave / alone — no login screen, and no password for it
--skip-pluginsno shake to find, no glass
--aur-helper yay|paruwhich helper builds the AUR half — built from the AUR if you have neither
--noconfirmtake the default at every question
-n, --dry-runsay what would happen, and do none of it
./setup update       # git pull, then install again — the same flags
./setup uninstall    # remove what it installed, and put back what it moved aside
./setup help         # every verb and flag

update follows the branch you cloned: main moves only when a version is released, and work in progress lives on dev. The version installed is under Settings → System.

Nothing is linked: setup copies, and remembers what it wrote. A file of yours already in the way is moved to ~/.local/state/impasto/backups/ first; a file you edit afterwards is left alone, with the new version beside it as <name>.new. Editing the repository itself? ./setup sync copies it onto the desk, and ./setup sync --watch keeps doing it on every save.

Every package is listed in packages/pacman.txt and packages/aur.txt, grouped by what it is for; an optional one that is missing takes its own control away rather than failing.

Components
🪟CompositorHyprland
🖱️Shake to findhypr-dynamic-cursors
🫧Glass on the windowshyprglass
🐚Desktop shellQuickshell
🖼️Wallpaper daemonawww
🖥️Terminalkitty
⌨️Interactive shellzsh · oh-my-zsh
Promptstarship
🎨Greetingfastfetch
📊System monitorbtop
🎵Audio visualisercava
📁File manageryazi
🗂️File manager in a windowThunar
✏️Editorneovim
📝Editor in a windowVSCodium
🖼️Image viewerimv
🪄Annotatorsatty
💬ChatVesktop
🎧PlayerSpotify · spicetify
🌐BrowserZen
🔑Login screenSDDM

Keys

Every key belongs to a profile: Settings → Keys changes any of them, the compositor's included, and switching profile switches them all. A few worth knowing first:

  • SUPER Return a terminal, SUPER Space the launcher, SUPER Q closes the window
  • SUPER 10 a workspace, SUPER TAB all of them at once
  • SUPER X the session menu, SUPER L locks
  • SUPER H every other key, on the island

Credits

These are worth your time whether or not you use this repository. No code was copied from any of them; what carried over from the shells are ideas — one file per island state, one transient signal for every ephemeral event, input debounced to one frame, and a capture that photographs the screen and draws the selection on the photograph.

  • saneAspect — the Hyprland setups on YouTube that started all this
  • Tide-island — the closest thing to a complete dynamic island for Hyprland
  • ChillPill-Shell — a dynamic pill bar built to stay light without a dedicated GPU
  • k4 — a dynamic island bar with a documented plugin API
  • HyprQuickshot and its fork HyprQuickFrame — a capture surface in Quickshell
  • diegoMalagrida/dotfiles — an Arch Linux desk ready to install on a fresh system

Built on Quickshell and Hyprland. The pointer is Bibata, repainted; the folders are Papirus, re-pointed; the type is Inter and JetBrains Mono. Six of the nine palettes are other people's work, carried as they are: Catppuccin Mocha and Latte, Tokyo Night, Gruvbox, Nord and Rosé Pine.

License

Copyright © 2026 Andreu Massanet — released under the GNU GPL-3.0.

You may use, study, change and share any of it. If you build on it and pass the result on, it stays under the GPL and its source stays available. Keep the header at the top of each file, which carries this repository's address, and a line of credit back here is the kind thing to do.

关于 About

Arch Linux + Hyprland desktop: a Quickshell shell with a dynamic island, desktop widgets, notes and tasks, and a one-script installer
arch-linuxarchlinuxdotfilesdynamic-islandhyprlandhyprland-confighyprland-dotfileshyprland-ricelinux-riceqmlquickshellriceunixpornwayland

语言 Languages

QML83.6%
Python12.3%
Lua2.5%
Shell1.5%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
39
Total Commits
峰值: 39次/周
Less
More

核心贡献者 Contributors