# 11. Appearance Alloy ships one design language, Akari, in two renders: **Akari Dawn** for day and **Akari Night** for dark. Everything the system draws is themed from it, including the terminal, the editor, the bar, the lock screen, notifications, the console, GTK dialogs, and even the virtual consoles. ## Switching between day and night alloy settings then the theme row on the System tab. Two things happen when you set it: the console re-themes immediately, and a mode file at `~/.config/alloy/mode` records your choice. The rest of the desktop follows **at your next login**. The reason is sway: it reads its config once at start, and the config is one of the themed files, so applying mid-session would need a reload and would still leave everything already running on the old palette. Under the hood, the login wrapper runs: alloy theme apply which copies the matching render of every themed config into your home directory. You can run it by hand: | Command | Effect | |---|---| | `alloy theme apply --dry-run` | Report what would change, write nothing | | `alloy theme apply --mode night` | Apply the night render for this run without changing your saved choice | | `alloy theme apply --verbose` | Name every file, including unchanged ones | | `alloy theme apply --force` | Overwrite files you have edited, keeping a `.alloy-bak` | **Files you have edited are never replaced.** If a config matches neither the day nor the night render, `alloy theme apply` treats it as yours, keeps it, and names it in its output. `--force` is the only way past that, and it leaves a backup. Swapping the theme in place, without logging out, is filed as `alloy theme ` and is not built yet. ## What the greeter does The login screen and every virtual console carry the Akari palette, applied as the kernel's console colour table plus a small unit at boot. There is one limitation worth knowing: boot and login are always Dawn, whatever your session is set to. Choosing between the two tables needs a system-wide setting that does not exist yet, since the greeter runs before any user is known. ## The background The default is a panel: a terminal surface behind your windows that prints the `alloy` verbs and the sway keybindings, so the reference is on screen without being asked for. It takes no input, so clicking or typing goes to whatever is in front of it. Both lists are read off the machine at login rather than written down, so a verb the console gains or a keybinding you add to `~/.config/sway/config` is on the panel the next time you log in. Bindings that belong to a mode carry the mode name, since `h` in resize mode is not the same key as `Super+h`. To read it without moving your windows out of the way: alloy-backdrop --once | less -R Where the compositor has no `wlr-layer-shell` the panel cannot open, and the background falls back to a flat colour from the palette. It follows your theme the same way the terminal does, so `alloy theme apply` moves both. Alloy ships **swww** if you would rather have a picture. It starts no daemon and provisions no images: swww-daemon & swww img ~/Pictures/wallpaper.jpg Add those to `~/.config/sway/config` if you want them at login. Alloy does not ship a wallpaper collection and does not plan to; the picture is yours to pick. ## Night colour temperature **gammastep** is installed and not enabled. Its config at `~/.config/gammastep/config.ini` is set to 3700K at night and 6500K by day with a fade, and carries a placeholder location you have to fill in: systemctl --user enable --now gammastep This is separate from the light and dark theme. One changes what colours the system draws; the other changes the colour temperature of the whole display. ## Fonts | Role | Font | |---|---| | Monospace | Quasi Mono | | Sans | Quasi Body | | Serif | Not shipped; falls through to Fedora's default | | Emoji | Not shipped | Both are Atkinson Hyperlegible, which is designed by the Braille Institute to make letters as distinguishable from each other as possible — the most literal answer to "make UI text readable" — with one difference: Alloy builds its own copies rather than installing the upstream files, and draws the symbols a terminal needs into them. Box drawing, block elements, arrows and a handful of marks, all missing from the upstream faces and all needed to draw a table border in a TUI. They are variable fonts, so any weight from 200 to 800 is available to anything that asks for one; unweighted requests get Regular. If you want something more conventional, Inter is a one-line swap in `~/.config/fontconfig/fonts.conf` and the GTK settings. CJK, Arabic, Hebrew, Indic and Thai coverage comes from Fedora's font metapackages, so web pages in those scripts render. **Emoji do not.** No emoji font is installed and the fontconfig alias for them was removed rather than left pointing at something absent. Emoji show as missing glyphs. Installing any emoji font makes them work with no further configuration. ## Cursor Bibata Modern Classic at size 24, set three ways because different apps read the cursor from different places: `~/.icons/default/index.theme`, the GTK settings files, and `XCURSOR_THEME` in the nushell environment. Change all three if you change it at all. ## GTK apps GTK 3 and 4 apps get the Akari palette layered over adw-gtk3, through `~/.config/gtk-3.0/gtk.css` and `~/.config/gtk-4.0/gtk.css`. That covers the portal file dialogs, swayosd's overlays, and most modern GTK apps. Two gaps, stated rather than discovered: there is no dark-mode variant of the GTK patch yet (it is light-first), and Qt apps are not themed at all. ## Terminal, editor, and everything else Each adopted tool has its own themed config under `~/.config/`, rendered from the same palette: shop, helix, yazi, mako, swaylock, satty, bottom, zathura, imv, mpv, swayosd, and the sway config itself. Editing one is fine; the theme system will notice and stop overwriting it.