Files
Four kinds of file, in four places. What setup copies from the
repository, what the shell writes as you use it, what setup keeps to remember
its copies, and what the palette writes into other programs.
Copied from the repository
Section titled “Copied from the repository”Each tree in the repository is its destination as it is: home/ is $HOME and
system/ is /. home/.config/kitty/kitty.conf lands at
~/.config/kitty/kitty.conf.
Directory~/
- .zshrc
Directory.config/
Directoryhypr/ hyprland.lua, and modules/ for the rest
- …
Directoryquickshell/ the shell
- …
Directorykitty/
- …
Directorynvim/
- …
Directoryfastfetch/
- …
Directorybtop/
- …
Directorycava/
- …
Directoryyazi/
- …
Directorygtk-3.0/ settings.ini
- …
Directorygtk-4.0/ settings.ini
- …
- starship.toml
- .local/bin/impasto the impasto command
Directory.local/share/
- zsh/site-functions/_impasto its completion
Directoryfonts/ GrapeNuts-Regular.ttf, the script face, and its OFL licence
- …
Directoryicons/hicolor/ impasto-files, the file manager’s tile on the dock
- …
- nautilus-python/extensions/impasto.py Nautilus’s right-click menu
Directorywallpapers/ the thirty-three wallpapers
- …
Directoryimpasto/
- palette-board.json
- palette-board.png
Directoryprofiles/ Moon castle, Fuji and Night bay
- …
Directorycamera/ the sample the camera’s effect tiles are drawn on
- …
Directory/
Directoryetc/
- default/grub.d/impasto.cfg the
splashargument, for GRUB - mkinitcpio.conf.d/impasto.conf the boot splash in the initramfs
- pam.d/impasto-face face unlock for the lock screen, beside the password
- sddm.conf.d/10-impasto.conf where faces are kept, and the battery ring’s permission
- systemd/logind.conf.d/10-impasto.conf the power button goes to the shell
- default/grub.d/impasto.cfg the
Directoryusr/share/sddm/themes/impasto/ the login screen
- …
Directoryusr/share/plymouth/themes/impasto/ the boot splash
- …
Directoryvar/lib/impasto/faces/ your picture, created empty
- …
These copies are yours to edit. See Updating for what happens to an edited one.
The shell’s state
Section titled “The shell’s state”Everything the shell writes lives in ~/.local/state/quickshell/, or under
$XDG_STATE_HOME if that is set. None of it comes from the repository, and
setup never touches it.
Directory~/.local/state/quickshell/
- settings.json every preference of the profile in use
- profiles.json the other profiles
- keys.tsv the profile’s keys, handed to Hyprland
- notes.json
- tasks.json
- clipboard.json the clipboard history
Directoryclipboard/ long entries and images
- …
- pet.json
- games.json one best score per game
- launcher-history.json what the launcher ranks by
- state.json the wallpaper and the palette in use
- current-wallpaper a link to the wallpaper in use
- dynamic-colors.json
- kitty-palette.conf
- kitty-font.conf
- kitty-ground.conf the terminal’s ground
- nvim/colors/impasto.lua
- greeting the scene
faplays - greeting-….gif one per scene
- greeting.gif
- claude-usage.json
Directorylyrics/ each track’s lyrics, as lrclib.net answered
- …
Directoryscreentime/ one file per day of screen time
- …
- workspaces shared or per screen, and the screens’ order, read by the number keys
Directorycursor-src/ the cursor’s source, from ./setup cursors
- …
settings.json is the profile in use; the others wait in profiles.json. Your
notes, tasks, clipboard, pet and scores are in no profile, so switching profile
never changes them. To keep a profile somewhere else, export it from Settings →
System → Profiles. profiles.json alone is not a backup of the one in use.
setup’s own state
Section titled “setup’s own state”Directory~/.local/state/impasto/
- home.manifest the hash of every file copied into $HOME
- system.manifest the same for /
- version the version, the branch and the checkout they came from, written by every sync; Settings → System shows them and checks for updates against that checkout
- plugins-pending the checkout, while the Hyprland plugins wait for a session; removed once they build
Directoryapplied/ one file per extra install has set up
- …
Directorybackups/
Directory20260913-101500/ one directory per run that moved something
Directoryhome/ files that were in the way in $HOME
- …
Directorysystem/ files that were in the way in /
- …
uninstall puts the backups back, deletes the directories it empties, and
removes applied/, so an install after it sets the extras up again.
What the palette writes
Section titled “What the palette writes”Every wallpaper or palette change rewrites these. They live where each program
reads its theme, so several are in ~/.config beside the copied files.
| Program | File |
|---|---|
| kitty | ~/.local/state/quickshell/kitty-palette.conf, included by kitty.conf |
| neovim | ~/.local/state/quickshell/nvim/colors/impasto.lua |
| The greeting | ~/.local/state/quickshell/greeting-….gif |
| btop | ~/.config/btop/themes/impasto.theme |
| cava | ~/.config/cava/themes/impasto |
| yazi | ~/.config/yazi/flavors/impasto.yazi/ |
| imv | ~/.config/imv/config, the whole file |
| GTK | ~/.config/gtk-3.0/gtk.css, ~/.config/gtk-4.0/gtk.css |
| Qt | ~/.config/qt6ct/qt6ct.conf, ~/.config/qt6ct/colors/impasto.conf |
| KDE | ~/.config/kdeglobals, merged rather than replaced |
| Folder icons | ~/.local/share/icons/impasto/, which inherits Papirus |
| Vesktop | ~/.config/vesktop/themes/impasto.css |
| Spotify | ~/.config/spicetify/Themes/impasto/color.ini, and the stylesheets inside the patched client |
| VSCodium | ~/.vscode-oss/extensions/impasto/, and the extensions’ colours in ~/.config/VSCodium/User/settings.json |
| Zen | userChrome.css and user.js in the Zen profile under ~/.config/zen/ |
The extras write settings that are not colours, once: ./setup vscodium
merges ~/.config/VSCodium/User/settings.json, ./setup nautilus sets
Nautilus’s preferences with gsettings and adds your folders to
~/.config/gtk-3.0/bookmarks, ./setup vesktop
ticks the theme in ~/.config/vesktop/settings/settings.json, and
./setup defaults names the default applications in
~/.config/mimeapps.list. The vector cursor is built into
~/.local/share/icons/impasto-cursor…. More in Applications.
Elsewhere
Section titled “Elsewhere”| What | Where |
|---|---|
| The face on the lock and login screens | /var/lib/impasto/faces/<username>.face.icon, then ~/.face |
| Screenshots | XDG_SCREENSHOTS_DIR in ~/.config/user-dirs.dirs, else Screenshots in your pictures folder |
| Recordings | XDG_SCREENCASTS_DIR, else Screencasts in your videos folder |
| Wallpapers you add | ~/.local/share/wallpapers, JPEG, PNG or WebP |
| Virtual machines | ~/.local/share/impasto/machines, one quickemu configuration and folder each |
| Camera photos | XDG_CAMERA_DIR, else Camera in your pictures folder |
| The camera’s models | ~/.local/share/impasto/camera, downloaded by ./setup camera |
| The virtual camera’s module options | /etc/modprobe.d/impasto-camera.conf and /etc/modules-load.d/impasto-camera.conf, written by ./setup camera |
| oh-my-zsh | ~/.oh-my-zsh, with its two plugins under custom/plugins |
| Hyprland plugins | /var/cache/hyprpm/<username>/, built by hyprpm |
