aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: c949047547e9440f238e50642d38e18cc6655bb4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# unified-desktop-theme

A single visual identity for a Hyprland desktop: Catppuccin Macchiato as the
fixed base, Noto Sans for UI text, Inconsolata Nerd Font Mono for monospace.

The accent color follows the current wallpaper, but is always snapped to a real
Macchiato accent, so it can never render as unreadable.

Phase 1 covers rofi. Later phases extend the same palette to waybar, dunst,
conky, hyprland and quickshell.

Quickshell reads the palette rather than restating it: `udt-accent` writes
`~/.cache/wal/udt-palette.qml` from `rofi/udt/palette.rasi`, and the
components in the `quickshell` repo watch that file, so editing the palette
here recolours them without a restart.

## Layout

    rofi/udt/          the theme files
    bin/udt-accent     wallpaper accent extractor

Both are installed by symlink, so the repo holds the canonical copies:

    ./install.sh

## Design

See `docs/superpowers/specs/` for the design spec and the reasoning behind
each decision, including why accent extraction is deliberately isolated from
the pywal cache.

## License

GPLv2 only. See `LICENSE`.

## Changing the colour scheme

Edit one line in `~/.config/udt/roles.conf`:

    scheme = macchiato

and run `./install.sh`. That file is yours, not the repo's: `install.sh`
creates it on a first run and never overwrites it, so switching scheme leaves
the working tree clean.

`install.sh` reloads whatever is running (waybar, kitty, Hyprland, dunst,
conky), so the switch is visible immediately. Qt and GTK apps only reread a
theme on startup, so those need restarting by hand. Ships with `macchiato`, `tokyo-night`, `nord` and
`dracula`; rofi, dunst, conky, waybar, kitty, Firefox and quickshell all
follow.

A scheme is two files: `palette/<name>.conf` for the colours under the
scheme's own names, and `palette/roles-<name>.conf` saying what each is for.
Nothing else needs touching, and `bin/udt-palette --selftest` checks that a
scheme can satisfy every role before you switch to it.

## Development Approach

This project is developed using AI-assisted tools. Code is generated with the help of AI based on human-provided specifications, design decisions, and iterative feedback.

All contributions are reviewed, tested, and curated by the maintainer before being included in the codebase. AI is used as a productivity and exploration tool, while human oversight remains central to all decisions.

The goal is to combine the flexibility of AI-assisted development with standard open-source practices such as transparency, review, and accountability.