chore: updated readme, added screenshots
19ba32f1
3 file(s) · +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 | + |  |
|
| 6 | + |  |
|
| 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 | ||
Binary file — no preview.
Binary file — no preview.