58 lines
2 KiB
Markdown
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).
|