| 1 |
# 11. Appearance |
| 2 |
|
| 3 |
Alloy ships one design language, Akari, in two renders: **Akari Dawn** for day |
| 4 |
and **Akari Night** for dark. Everything the system draws is themed from it, |
| 5 |
including the terminal, the editor, the bar, the lock screen, notifications, |
| 6 |
the console, GTK dialogs, and even the virtual consoles. |
| 7 |
|
| 8 |
## Switching between day and night |
| 9 |
|
| 10 |
alloy settings |
| 11 |
|
| 12 |
then the theme row on the System tab. Two things happen when you set it: the |
| 13 |
console re-themes immediately, and a mode file at `~/.config/alloy/mode` records |
| 14 |
your choice. |
| 15 |
|
| 16 |
The rest of the desktop follows **at your next login**. The reason is sway: it |
| 17 |
reads its config once at start, and the config is one of the themed files, so |
| 18 |
applying mid-session would need a reload and would still leave everything |
| 19 |
already running on the old palette. |
| 20 |
|
| 21 |
Under the hood, the login wrapper runs: |
| 22 |
|
| 23 |
alloy theme apply |
| 24 |
|
| 25 |
which copies the matching render of every themed config into your home |
| 26 |
directory. You can run it by hand: |
| 27 |
|
| 28 |
|
| 29 |
|
| 30 |
| `alloy theme apply --dry-run` | Report what would change, write nothing | |
| 31 |
| `alloy theme apply --mode night` | Apply the night render for this run without changing your saved choice | |
| 32 |
| `alloy theme apply --verbose` | Name every file, including unchanged ones | |
| 33 |
| `alloy theme apply --force` | Overwrite files you have edited, keeping a `.alloy-bak` | |
| 34 |
|
| 35 |
**Files you have edited are never replaced.** If a config matches neither the |
| 36 |
day nor the night render, `alloy theme apply` treats it as yours, keeps it, and |
| 37 |
names it in its output. `--force` is the only way past that, and it leaves a |
| 38 |
backup. |
| 39 |
|
| 40 |
Swapping the theme in place, without logging out, is filed as `alloy theme |
| 41 |
<name>` and is not built yet. |
| 42 |
|
| 43 |
## What the greeter does |
| 44 |
|
| 45 |
The login screen and every virtual console carry the Akari palette, applied as |
| 46 |
the kernel's console colour table plus a small unit at boot. There is one |
| 47 |
limitation worth knowing: boot and login are always Dawn, whatever your session |
| 48 |
is set to. Choosing between the two tables needs a system-wide setting that |
| 49 |
does not exist yet, since the greeter runs before any user is known. |
| 50 |
|
| 51 |
## The background |
| 52 |
|
| 53 |
The default is a panel: a terminal surface behind your windows that prints the |
| 54 |
`alloy` verbs and the sway keybindings, so the reference is on screen without |
| 55 |
being asked for. It takes no input, so clicking or typing goes to whatever is in |
| 56 |
front of it. |
| 57 |
|
| 58 |
Both lists are read off the machine at login rather than written down, so a verb |
| 59 |
the console gains or a keybinding you add to `~/.config/sway/config` is on the |
| 60 |
panel the next time you log in. Bindings that belong to a mode carry the mode |
| 61 |
name, since `h` in resize mode is not the same key as `Super+h`. |
| 62 |
|
| 63 |
To read it without moving your windows out of the way: |
| 64 |
|
| 65 |
alloy-backdrop --once | less -R |
| 66 |
|
| 67 |
Where the compositor has no `wlr-layer-shell` the panel cannot open, and the |
| 68 |
background falls back to a flat colour from the palette. It follows your theme |
| 69 |
the same way the terminal does, so `alloy theme apply` moves both. |
| 70 |
|
| 71 |
Alloy ships **swww** if you would rather have a picture. It starts no daemon and |
| 72 |
provisions no images: |
| 73 |
|
| 74 |
swww-daemon & |
| 75 |
swww img ~/Pictures/wallpaper.jpg |
| 76 |
|
| 77 |
Add those to `~/.config/sway/config` if you want them at login. Alloy does not |
| 78 |
ship a wallpaper collection and does not plan to; the picture is yours to pick. |
| 79 |
|
| 80 |
## Night colour temperature |
| 81 |
|
| 82 |
**gammastep** is installed and not enabled. Its config at |
| 83 |
`~/.config/gammastep/config.ini` is set to 3700K at night and 6500K by day with |
| 84 |
a fade, and carries a placeholder location you have to fill in: |
| 85 |
|
| 86 |
systemctl --user enable --now gammastep |
| 87 |
|
| 88 |
This is separate from the light and dark theme. One changes what colours the |
| 89 |
system draws; the other changes the colour temperature of the whole display. |
| 90 |
|
| 91 |
## Fonts |
| 92 |
|
| 93 |
|
| 94 |
|
| 95 |
| Monospace | Quasi Mono | |
| 96 |
| Sans | Quasi Body | |
| 97 |
| Serif | Not shipped; falls through to Fedora's default | |
| 98 |
| Emoji | Not shipped | |
| 99 |
|
| 100 |
Both are Atkinson Hyperlegible, which is designed by the Braille Institute to |
| 101 |
make letters as distinguishable from each other as possible — the most literal |
| 102 |
answer to "make UI text readable" — with one difference: Alloy builds its own |
| 103 |
copies rather than installing the upstream files, and draws the symbols a |
| 104 |
terminal needs into them. Box drawing, block elements, arrows and a handful of |
| 105 |
marks, all missing from the upstream faces and all needed to draw a table |
| 106 |
border in a TUI. |
| 107 |
|
| 108 |
They are variable fonts, so any weight from 200 to 800 is available to anything |
| 109 |
that asks for one; unweighted requests get Regular. |
| 110 |
|
| 111 |
If you want something more conventional, Inter is a one-line swap in |
| 112 |
`~/.config/fontconfig/fonts.conf` and the GTK settings. |
| 113 |
|
| 114 |
CJK, Arabic, Hebrew, Indic and Thai coverage comes from Fedora's font |
| 115 |
metapackages, so web pages in those scripts render. **Emoji do not.** No emoji |
| 116 |
font is installed and the fontconfig alias for them was removed rather than |
| 117 |
left pointing at something absent. Emoji show as missing glyphs. Installing any |
| 118 |
emoji font makes them work with no further configuration. |
| 119 |
|
| 120 |
## Cursor |
| 121 |
|
| 122 |
Bibata Modern Classic at size 24, set three ways because different apps read |
| 123 |
the cursor from different places: `~/.icons/default/index.theme`, the GTK |
| 124 |
settings files, and `XCURSOR_THEME` in the nushell environment. Change all |
| 125 |
three if you change it at all. |
| 126 |
|
| 127 |
## GTK apps |
| 128 |
|
| 129 |
GTK 3 and 4 apps get the Akari palette layered over adw-gtk3, through |
| 130 |
`~/.config/gtk-3.0/gtk.css` and `~/.config/gtk-4.0/gtk.css`. That covers the |
| 131 |
portal file dialogs, swayosd's overlays, and most modern GTK apps. |
| 132 |
|
| 133 |
Two gaps, stated rather than discovered: there is no dark-mode variant of the |
| 134 |
GTK patch yet (it is light-first), and Qt apps are not themed at all. |
| 135 |
|
| 136 |
## Terminal, editor, and everything else |
| 137 |
|
| 138 |
Each adopted tool has its own themed config under `~/.config/`, rendered from |
| 139 |
the same palette: shop, helix, yazi, mako, swaylock, satty, bottom, zathura, |
| 140 |
imv, mpv, swayosd, and the sway config itself. Editing one is fine; the theme |
| 141 |
system will notice and stop overwriting it. |
| 142 |
|