chore: updated readme, added screenshots 19ba32f1
Steve · 2026-08-22 12:47 3 file(s) · +6 −76
README.md +6 −76
1 1
# Darkmatter
2 2
3 -
A near-black GTK 3 / GTK 4 and xfwm4 theme, built from the Darkmatter WezTerm
4 -
color scheme. Forked from [Nordic](https://github.com/EliverLara/Nordic), whose
5 -
widget stylesheets it keeps almost verbatim — what changed is the palette, the
6 -
window decorations, and the parts of Nordic's derivations that assumed a
7 -
mid-dark base rather than a near-black one.
3 +
A near-black GTK 3 / GTK 4 and xfwm4 theme, built from the [Darkmatter color scheme](https://github.com/stevedylandev/darkmatter-nvim).
8 4
9 -
## Palette
5 +
![screenshot 1](screenshot-1.png)
6 +
![screenshot 2](screenshot-2.png)
10 7
11 -
The terminal scheme gives a background, a foreground, a selection color and
12 -
three accents. A GTK theme needs more surface levels than a terminal does, so
13 -
the intermediate steps are filled in; everything else is taken verbatim. The
14 -
chrome — headerbars, panels and the xfwm4 frame — sits at the window
15 -
background level rather than below it, so a window reads as one surface with
16 -
only its shadow and borders separating it from the desktop.
8 +
## Palette
17 9
18 10
| Role | Color | Source |
19 11
| --- | --- | --- |
34 26
| **Accent** | `#e78a53` | scheme ansi 3 |
35 27
| Error, destructive | `#e75353` | derived |
36 28
37 -
The accent drives selection, focus rings, switches, checkboxes, progress bars,
38 -
links and suggested actions.
39 -
40 -
There is no red in the terminal scheme, and errors need one. `#e75353` is the
41 -
accent rotated to a red hue at identical saturation and lightness, so it reads
42 -
as a sibling of the accent rather than an import from another palette.
43 -
44 -
Nordic spread its UI roles across six hues. Darkmatter has three, so several
45 -
roles collapse: the blues and cyans that upstream used for selection all land
46 -
on the accent, and its greens land on the teal.
47 -
48 -
## What's here
49 -
50 -
- `gtk-3.0/` — GTK 3 stylesheet
51 -
- `gtk-4.0/` — GTK 4 stylesheet
52 -
- `xfwm4/` — window decorations, plus `-hdpi` (1.5x) and `-xhdpi` (2x) variants
53 -
- `assets/` — raster assets shared by both GTK stylesheets
54 -
- `rofi/` — `darkmatter.rasi`, a drop-in theme (`@theme "darkmatter"`) matching
55 -
  the palette above
56 -
- `dunst/` — `dunstrc`, the color and geometry sections themed to match;
57 -
  merge into your own config or run standalone with `dunst -config`
58 -
59 -
Both `gtk.css` and `gtk-dark.css` are built from dark sources. Darkmatter has
60 -
no light variant, so an app asking for the dark stylesheet by name gets the
61 -
same theme rather than falling through to something else.
62 29
63 30
**Icons are untouched.** `index.theme` still names Nordic's `Zafiro-icons`;
64 31
pick an icon theme and change that line.
65 32
66 -
Nordic's GTK 2, GNOME Shell, Cinnamon, KDE and Metacity trees are not carried
67 -
over, and neither is its Inkscape-based asset pipeline.
68 -
69 -
## Window buttons
70 -
71 -
Upstream draws the window controls as macOS-style traffic lights — a colored
72 -
disc per button, with the glyph appearing on hover. Darkmatter keeps that
73 -
geometry but drops the hues: the discs are grey at rest, dim to `#333333` when
74 -
the window loses focus, and brighten on hover. Close is the one button that
75 -
takes the accent.
76 -
77 -
This applies to both the xfwm4 decorations and the GTK client-side ones.
78 -
79 33
## Building
80 34
81 35
Needs `sassc` and `librsvg`:
82 36
83 37
```sh
84 38
doas apk add sassc librsvg      # or your distro's equivalent
85 -
```
86 39
87 -
`sassc` specifically, not dart-sass. Nordic's stylesheets extend compound
88 -
selectors in 24 places (`@extend %selected_items:disabled` and friends), which
89 -
libsass accepts and modern dart-sass rejects outright. Building with dart-sass
90 -
would mean restructuring those extends and changing the generated CSS.
91 -
92 -
```sh
93 40
sh src/build.sh          # compile the stylesheets
94 41
sh src/render-xfwm4.sh   # re-render the window decorations
95 42
sh src/install.sh        # copy into ~/.themes
96 43
```
97 44
98 -
`src/install.sh` installs three themes — `Darkmatter`, `Darkmatter-hdpi` and
99 -
`Darkmatter-xhdpi` — which differ only in decoration scale. Select the GTK
100 -
theme and the window manager theme separately in *Settings → Appearance* and
101 -
*Settings → Window Manager*.
102 45
103 -
### Recoloring
104 -
105 -
The asset recolorers exist so the port can be re-derived rather than
106 -
hand-edited, and they read the palette from `src/lib/darkmatter.py`:
107 -
108 -
- `src/recolor-assets.py` — the GTK raster assets
109 -
- `src/recolor-svgs.py` — the SVG sources
110 -
- `src/recolor-xfwm4-png.py` — the nine frame pieces that have no SVG source
111 -
- `src/recolor-thumbnails.py` — the theme-picker thumbnails
112 -
113 -
They map Nordic's colors to Darkmatter's, so they run **once against pristine
114 -
Nordic assets**. Re-running them over already-converted files will drift.
46 +
## Acknowledgements
115 47
116 -
`src/lib/darkmatter.py` and `gtk-3.0/_darkmatter.scss` hold the same palette
117 -
and are kept in sync by hand — the SCSS is the source of truth for the
118 -
stylesheets, the Python for the assets.
48 +
Main structure and inspiration forked from [Nordic](https://github.com/EliverLara/Nordic)
119 49
120 50
## License
121 51
screenshot-1.png (added) +0 −0

Binary file — no preview.

screenshot-2.png (added) +0 −0

Binary file — no preview.