@@ -257,6 +257,58 @@ chmod 600 ~/.config/home-assistant/credentials
257257- Never commit credentials to any repository
258258- The token grants full API access to your HA instance - keep it secure
259259
260+ ## Nerd Font Icons (Desktop Profile)
261+
262+ When adding icons to waybar, scripts, or other desktop tools, ** always use Nerd Font icons** (monochrome glyphs) instead of standard Unicode emoji.
263+
264+ ### Resources
265+
266+ - ** Cheat Sheet** : https://www.nerdfonts.com/cheat-sheet
267+ - ** Installed Font** : ` ttf-hack-nerd ` (in packages.yaml)
268+
269+ ### Common Icons
270+
271+ | Purpose | Icon | Codepoint | Name |
272+ | ---------| ------| -----------| ------|
273+ | Volume high | | U+F028 | nf-fa-volume_high |
274+ | Volume low | | U+F027 | nf-fa-volume_low |
275+ | Volume muted | | U+F026 | nf-fa-volume_off |
276+ | Wifi | | U+F1EB | nf-fa-wifi |
277+ | Ethernet | | U+F796 | nf-fa-ethernet |
278+ | Warning | | U+F071 | nf-fa-warning |
279+ | Battery full | | U+F240 | nf-fa-battery_full |
280+ | Battery 3/4 | | U+F241 | nf-fa-battery_three_quarters |
281+ | Battery 1/2 | | U+F242 | nf-fa-battery_half |
282+ | Battery 1/4 | | U+F243 | nf-fa-battery_quarter |
283+ | Battery empty | | U+F244 | nf-fa-battery_empty |
284+ | Charging/bolt | | U+F0E7 | nf-fa-bolt |
285+ | Plug | | U+F1E6 | nf-fa-plug |
286+ | Search/magnify | | U+F002 | nf-fa-search |
287+
288+ ### Writing Nerd Font Icons in Files
289+
290+ ** IMPORTANT** : The Edit/Write tools may strip special Unicode characters. Use ` printf ` with escaped codepoints via Bash instead:
291+
292+ ``` bash
293+ # Single icon
294+ printf ' \uf028' # Volume high
295+
296+ # In a file (e.g., JSON config)
297+ printf ' "format-wifi": "%s {essid}",\n' " $( printf ' \uf1eb' ) " >> config.json
298+
299+ # Multiple icons in an array
300+ printf ' "format-icons": ["%s", "%s", "%s"]\n' \
301+ " $( printf ' \uf244' ) " " $( printf ' \uf243' ) " " $( printf ' \uf240' ) " >> config.json
302+ ```
303+
304+ ### Verifying Icons
305+
306+ Check that bytes were written correctly:
307+ ``` bash
308+ grep " format-wifi" config.json | xxd | head -5
309+ # Should see bytes like: ef87ab (UTF-8 for U+F1EB)
310+ ```
311+
260312## Audio Toggle (Desktop Profile)
261313
262314The ` audio-toggle ` script switches between two audio outputs (e.g., HDMI speakers and USB headphones). Device names are machine-specific and configured locally.
0 commit comments