Skip to main content

max / alloy

5.9 KB · 142 lines History Blame Raw
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 | Command | Effect |
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 | Role | Font |
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