dotfiles/.config/gnome-settings/README.md
Alexander Hess 86cce2d9cf
Remove the forge "unfocused-border" patch
The patch rewrote forge's window.js with `sed`/`awk` anchored on
exact upstream lines, making it the most fragile piece of the
repository, for a purely cosmetic hairline on unfocused windows.

This also simplifies a future migration away from forge.
2026-10-06 13:36:43 +02:00

58 lines
2 KiB
Markdown

# GNOME Settings
This folder contains my GNOME settings
split into several `*.ini` files by logical group.
Machine-specific overrides may live in `local/*.ini` and are loaded last.
See this [README.md](./local/README.md) for details and examples.
All paths inside the files are absolute,
anchored at the root of `dconf`.
Therefore, they must always be loaded anchored at the root as well.
The files are machine independent and use `/home/user` as a placeholder,
which must be rewritten to the real home directory before loading:
```bash
sed "s|/home/user|$HOME|g" <file> | dconf load /
```
[`gnome-restore`](../../.local/bin/gnome-restore) automates this upon every login
(via the `gnome-restore.service` systemd user unit).
Process:
1. Back up the current `dconf` state into ~/.local/state/gnome-settings-backups/
2. On a fresh session, remove the temporary background state
written by [`randomize-background`](../../.local/bin/randomize-background)
3. Reset all managed sub-trees,
so that keys removed from the `*.ini` files do not linger in the live state
4. Patch a broken backup path in the installed `forge` extension (`theme.js`)
5. Ensure the enabled GNOME extensions' schemas are imported
6. Load every `*.ini` here, then every `local/*.ini`
[`dconf-load`](../../.local/bin/dconf-load) captures step 6 as an independent utility,
or for just one file given as an argument,
which is handy while iterating on a single `*.ini`:
```bash
dconf-load key-bindings.ini
```
It neither backs up nor resets anything,
so keys removed from the `*.ini` files stay active until the next `gnome-restore`.
Its purpose is to help during development of the `*.ini` files.
[`dconf-verify`](../../.local/bin/dconf-verify) lists keys diverging
between the live state and the `*.ini` files,
and can be used to find live keys worth adopting.
## Color Palette
`COLORS.md` is an untracked, human-readable overview of the palette,
written by [`color-palette`](../../.local/bin/color-palette).