initial commit [141.14.140.180,mike]
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
._*
|
||||||
|
.DocumentRevisions-V100
|
||||||
|
.fseventsd
|
||||||
|
.Spotlight-V100
|
||||||
|
.TemporaryItems
|
||||||
|
.Trashes
|
||||||
@@ -0,0 +1,240 @@
|
|||||||
|
# mwxcol
|
||||||
|
|
||||||
|
Eine Farbpalette und die Themes, die sie auf die benutzten Werkzeuge übertragen.
|
||||||
|
|
||||||
|
Quelle der Wahrheit ist `mwxcol.go` — alles andere ist davon abgeleitet.
|
||||||
|
`go run mwxcol.go` druckt die Palette zur Sichtprüfung ins Terminal.
|
||||||
|
|
||||||
|
## Palette
|
||||||
|
|
||||||
|
| Name | Hex | Dezimal | Rolle |
|
||||||
|
|--------|-----------|---------------|-------|
|
||||||
|
| white | `#F0F0EA` | 240,240,234 | normaler Text, Vordergrund |
|
||||||
|
| yellow | `#F9E2AF` | 249,226,175 | Änderung, Warnung, Build-Dateien |
|
||||||
|
| orange | `#FAB387` | 250,179,135 | Archive, Präprozessor |
|
||||||
|
| red | `#F38BA8` | 243,139,168 | Fehler, Löschung, Strings |
|
||||||
|
| green | `#94E2D5` | 148,226,213 | ausführbar, neu, ok (eigentlich ein Mint/Teal) |
|
||||||
|
| blue | `#B4BEFE` | 180,190,254 | Verzeichnisse, Quelltext, Datum |
|
||||||
|
| pink | `#F5B2F7` | 245,178,247 | Symlinks, Keywords, Treffer |
|
||||||
|
| violet | `#CBA6F7` | 203,166,247 | Typen, Bilder, Sonderdateien |
|
||||||
|
| grey | `#AAAABB` | 170,170,187 | Sekundärtext, Kommentare |
|
||||||
|
| dark | `#777788` | 119,119,136 | Attribute, deaktiviert |
|
||||||
|
| darker | `#444455` | 68,68,85 | Trenner, Rahmen, Hintergrundakzent |
|
||||||
|
|
||||||
|
Die Palette enthält **keine Hintergrundfarbe**. Als Terminal-Hintergrund dient
|
||||||
|
`#252528` (iTerm2-Profil „Default"); wo ein Theme einen Hintergrund braucht,
|
||||||
|
steht dieser Wert oder `darker`.
|
||||||
|
|
||||||
|
## Installation auf einem neuen Rechner
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git clone <repo> ~/src/mwxcol
|
||||||
|
cd ~/src/mwxcol
|
||||||
|
./install.sh --check # zeigt erst, was passieren würde
|
||||||
|
./install.sh # kopiert, sichert Vorhandenes nach .bak
|
||||||
|
exec zsh
|
||||||
|
```
|
||||||
|
|
||||||
|
`./install.sh --link` symlinkt statt zu kopieren. Das ist die bessere Variante,
|
||||||
|
wenn das Repo dauerhaft an seinem Platz bleibt: dann können installierte Datei
|
||||||
|
und Repo-Kopie nicht mehr auseinanderlaufen. `--check` sagt jederzeit, ob sie
|
||||||
|
es doch getan haben.
|
||||||
|
|
||||||
|
Nova muss nach der Installation einmal neu gestartet werden; das Theme steht
|
||||||
|
dann unter *Einstellungen > Themes > mwx*.
|
||||||
|
|
||||||
|
## Was wo landet
|
||||||
|
|
||||||
|
| Werkzeug | Repo | Ziel | Wie es geladen wird |
|
||||||
|
|---|---|---|---|
|
||||||
|
| eza | `themes/eza/theme.yml` | `~/.config/eza/theme.yml` | automatisch aus dem Config-Verzeichnis |
|
||||||
|
| joe | `themes/joe/default.jcf` | `~/.joe/colors/default.jcf` | Schema `default`, verdeckt die System-Version |
|
||||||
|
| fzf | `themes/fzf/colors.zsh` | `~/.config/mwxcol/fzf-colors.zsh` | `source` in `~/.zshrc` → `FZF_DEFAULT_OPTS` |
|
||||||
|
| iTerm2 | `themes/iterm/mwxcol.itermcolors` | `~/.config/mwxcol/mwxcol.itermcolors` | einmalig importieren, siehe unten |
|
||||||
|
| Nova | `themes/nova/mwx.novaextension` | `~/Library/.../Nova/Extensions/org.mwx` | Nova-Extension, Theme `mwx` |
|
||||||
|
| Xcode | `themes/xcode/mwxcol.xccolortheme` | `~/Library/Developer/Xcode/UserData/FontAndColorThemes/` | Theme `mwxcol`, einmal auswählen, siehe unten |
|
||||||
|
| Claude Code | `themes/claude-code/mwxcol.json` | `~/.claude/themes/mwxcol.json` | `"theme": "custom:mwxcol"` in `settings.json` |
|
||||||
|
|
||||||
|
Getestet mit eza 0.23.5, joe 4.6, fzf 0.70.0 (und 0.58.0), iTerm2 3.6.11,
|
||||||
|
Nova, Xcode 26.6 und Claude Code 2.1.220 auf macOS.
|
||||||
|
|
||||||
|
## iTerm2
|
||||||
|
|
||||||
|
Die Palette deckt die 16 ANSI-Slots nicht von sich aus ab: ein Cyan fehlt, und
|
||||||
|
eigene bright-Varianten gibt es auch nicht. Die fehlenden sechs Werte sind
|
||||||
|
**nicht neu erfunden**, sondern wörtlich aus dem Nova-Theme übernommen, das
|
||||||
|
dieselbe Lücke bereits geschlossen hatte — dadurch sehen Novas Terminal und
|
||||||
|
iTerm2 identisch aus. Abgeleitete Werte sind unten mit \* markiert.
|
||||||
|
|
||||||
|
| Slot | Farbe | | Slot | Farbe | |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| 0 black | `#444455` | darker | 8 br-black | `#777788` | dark |
|
||||||
|
| 1 red | `#F38BA8` | red | 9 br-red | `#F7B5C8` | \* |
|
||||||
|
| 2 green | `#94E2D5` | green | 10 br-green | `#B8EAE1` | \* |
|
||||||
|
| 3 yellow | `#F9E2AF` | yellow | 11 br-yellow | `#FCEECB` | \* |
|
||||||
|
| 4 blue | `#B4BEFE` | blue | 12 br-blue | `#CDD4FE` | \* |
|
||||||
|
| 5 magenta | `#CBA6F7` | violet | 13 br-magenta| `#F5B2F7` | pink |
|
||||||
|
| 6 cyan | `#94DAE0` | \* | 14 br-cyan | `#B8E7EB` | \* |
|
||||||
|
| 7 white | `#AAAABB` | grey | 15 br-white | `#F0F0EA` | white |
|
||||||
|
|
||||||
|
Dazu Vordergrund `white`, Hintergrund `#252528` (unverändert), Cursor `red` mit
|
||||||
|
dunklem Cursor-Text, Auswahl `darker`, Links `blue`.
|
||||||
|
|
||||||
|
**Import** — iTerm2 hält seine Einstellungen im Speicher und schreibt sie beim
|
||||||
|
Beenden zurück. Eine direkt bearbeitete Plist wäre also wieder weg; der Import
|
||||||
|
muss durch die Oberfläche:
|
||||||
|
|
||||||
|
Einstellungen > Profiles > Colors > Color Presets… > Import…
|
||||||
|
~/.config/mwxcol/mwxcol.itermcolors
|
||||||
|
|
||||||
|
Danach im selben Menü `mwxcol` auswählen. Der Preset-Name kommt aus dem
|
||||||
|
Dateinamen. Die älteren Presets `mwx` und `mwxdark` bleiben unangetastet — sie
|
||||||
|
tragen noch die grellen Standard-ANSI-Töne und sind *nicht* diese Palette.
|
||||||
|
|
||||||
|
`themes/iterm/preview.sh` setzt die Palette per Escape-Sequenz in der laufenden
|
||||||
|
Session, ohne etwas zu speichern — zum Ansehen vor dem Import. Ein neuer Tab
|
||||||
|
hat wieder die alten Farben.
|
||||||
|
|
||||||
|
## Xcode
|
||||||
|
|
||||||
|
Xcode liest jede `.xccolortheme` aus dem Ordner oben und zeigt sie unter dem
|
||||||
|
Dateinamen an — das Theme heißt also `mwxcol`, wie das iTerm2-Preset. Die
|
||||||
|
älteren Themes `mwx` und `mwxdark` bleiben unangetastet.
|
||||||
|
|
||||||
|
Auswählen: **Einstellungen > Themes > mwxcol**. Xcode führt hell und dunkel
|
||||||
|
getrennt (`XCFontAndColorCurrentTheme` bzw. `…CurrentDarkTheme`), das Theme
|
||||||
|
also in beiden Erscheinungsbildern wählen, wenn es überall gelten soll.
|
||||||
|
`./install.sh --check` liest beide Werte und sagt, was gerade aktiv ist.
|
||||||
|
|
||||||
|
Ein laufendes Xcode sieht die neue Datei erst nach einem Neustart.
|
||||||
|
|
||||||
|
Die Zuordnung folgt dem Nova-Theme, damit beide Editoren gleich aussehen:
|
||||||
|
|
||||||
|
| Xcode-Element | Farbe | | Xcode-Element | Farbe |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| Plain Text, Variablen | white | | Keywords | violet |
|
||||||
|
| Kommentare, Doc-Kommentare | dark | | Strings | green |
|
||||||
|
| Doc-Schlüsselwörter, `MARK:` | grey | | Attribute (`@State`) | green |
|
||||||
|
| Typen und Klassen | yellow | | Zahlen, Zeichen | orange |
|
||||||
|
| Typ-Deklaration | yellow | | Präprozessor, Makros | orange |
|
||||||
|
| Funktionen, andere Deklarationen | blue | | Konstanten | orange |
|
||||||
|
| URLs | blue | | Reguläre Ausdrücke | pink |
|
||||||
|
|
||||||
|
Unsichtbare Zeichen sind `darker`, der Cursor ist `red` wie im iTerm2-Preset,
|
||||||
|
die Zeile mit dem Debugger `green` mit 25 % Deckkraft. Marker im Scrollbalken
|
||||||
|
folgen der Palette: Fehler `red`, Warnung `yellow`, Laufzeitproblem `orange`,
|
||||||
|
Analyzer `violet`, Breakpoint `blue`, Diff `grey`.
|
||||||
|
|
||||||
|
Die Flächen sind die einzigen Werte außerhalb der Palette. Der Editor ist
|
||||||
|
`#15151C` — dunkler als der Terminal-Hintergrund und anders als überall sonst
|
||||||
|
hier, weil er in Xcode so eingestellt wurde; Auswahl und aktuelle Zeile sind
|
||||||
|
`#20202B`, die Konsole behält `#252528` aus dem iTerm2-Profil und der
|
||||||
|
Quick-Help-Kasten `#2E2E35` (`darker` mit 30 % über `#252528`).
|
||||||
|
|
||||||
|
Drei Dinge, die man beim Anpassen wissen muss:
|
||||||
|
|
||||||
|
**Xcode unterscheidet eigene und fremde Symbole, dieses Theme nicht.** Für
|
||||||
|
Klassen, Typen, Funktionen, Variablen, Konstanten und Makros gibt es jeweils
|
||||||
|
einen Schlüssel für Projekt-Symbole und einen mit `.system` für Symbole aus
|
||||||
|
Frameworks. Beide tragen hier denselben Wert, weil die Palette keine freien
|
||||||
|
Farbtöne mehr hat, mit denen die Unterscheidung nicht wie eine zweite Bedeutung
|
||||||
|
aussähe. Wer sie doch will, setzt die sechs `.system`-Schlüssel auf `violet`
|
||||||
|
`#CBA6F7` — dann sind Framework-Symbole durchgehend violett wie in Xcodes
|
||||||
|
eigenem Dark-Theme, kollidieren aber mit den Keywords.
|
||||||
|
|
||||||
|
**Schriften stehen mit im Theme, nicht nur Farben.** Alle Syntax-Schlüssel
|
||||||
|
tragen `HackNFM-Regular - 15.0` (Hack Nerd Font Mono), der Quick-Help-Text
|
||||||
|
`.SFNS-Regular - 14.0`. Andere Schrift gewünscht: die Werte in
|
||||||
|
`DVTSourceTextSyntaxFonts` ersetzen — Xcode erwartet den PostScript-Namen
|
||||||
|
(`HackNFM-Regular`), nicht den Anzeigenamen („Hack Nerd Font Mono"). Fette
|
||||||
|
Schnitte für Keywords und Deklarationen hat das Theme absichtlich nicht mehr:
|
||||||
|
Xcode ebnet sie beim nächsten Zurückschreiben ohnehin ein, siehe unten.
|
||||||
|
|
||||||
|
**Wer das Theme in den Einstellungen anfasst, schreibt die Datei um.** Xcode
|
||||||
|
speichert dann seine eigene Fassung, und die ist nicht nur ohne Kommentare —
|
||||||
|
beobachtet an Xcode 26.6 nach einer Größenänderung in der Oberfläche:
|
||||||
|
|
||||||
|
* `DVTFontSizeModifier` verschwindet und wird in die Schriftgrößen eingerechnet,
|
||||||
|
* die Schnitte werden eingeebnet, `HackNFM-Bold` wird überall zu `-Regular`,
|
||||||
|
* Schlüssel, die Xcodes eigenes Theme-Modell nicht führt, fallen heraus —
|
||||||
|
hier `xcode.syntax.markup.aside.kind` und `DVTDebuggerInstructionPointerColor`
|
||||||
|
(letzterer steht nur im Theme der `SourceEditor.framework`).
|
||||||
|
|
||||||
|
`--check` meldet die installierte Datei danach als „WEICHT AB"; wer die
|
||||||
|
Änderung behalten will, überträgt sie von Hand ins Repo, sonst überschreibt der
|
||||||
|
nächste `./install.sh` sie kommentarlos (das Backup liegt als `.bak` daneben).
|
||||||
|
Bei `--link` ersetzt Xcode womöglich den Symlink durch eine echte Datei, dann
|
||||||
|
ist die Verbindung ganz aufgehoben.
|
||||||
|
|
||||||
|
## Claude Code
|
||||||
|
|
||||||
|
Ab Version 2.1.220 liest Claude Code eigene Themes aus `~/.claude/themes/*.json`
|
||||||
|
(mit `CLAUDE_CONFIG_DIR` verschiebt sich das Verzeichnis mit). Aufbau:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{ "name": "mwxcol", "base": "dark", "overrides": { "text": "#F0F0EA", … } }
|
||||||
|
```
|
||||||
|
|
||||||
|
`base` ist eines der eingebauten Themes, `overrides` überschreibt einzelne
|
||||||
|
Farbschlüssel davon. Erlaubt sind `#RRGGBB`, `#RGB`, `rgb(r,g,b)`, `ansi256(n)`
|
||||||
|
und `ansi:<name>`; unbekannte Schlüssel und ungültige Werte werden still
|
||||||
|
verworfen. Ausgewählt wird das Theme über `/theme` oder direkt mit
|
||||||
|
`"theme": "custom:mwxcol"` in `~/.claude/settings.json` — der Dateiname ist der
|
||||||
|
Slug. Claude Code beobachtet das Verzeichnis, Änderungen greifen sofort.
|
||||||
|
|
||||||
|
Dieses Theme setzt **alle** 72 Schlüssel des `dark`-Themes, damit keine Farbe
|
||||||
|
aus dem Original durchschlägt:
|
||||||
|
|
||||||
|
| Element | Farbe | | Element | Farbe |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| Fließtext | white | | Erfolg, Plan-Modus | green |
|
||||||
|
| Sekundärtext, inaktiv | grey | | Fehler | red |
|
||||||
|
| Prompt-Rahmen | dark | | Warnung | yellow |
|
||||||
|
| Auswahl, Flächen | darker | | Claude selbst, Fast Mode | orange |
|
||||||
|
| Rechte, Vorschläge, IDE | blue | | Bash-Rahmen | pink |
|
||||||
|
| Auto-Accept, Skills | violet | | | |
|
||||||
|
|
||||||
|
Die Shimmer-Varianten (die hellere Farbe der Laufanimation) nehmen, wo es sie
|
||||||
|
gibt, die abgeleiteten Hellwerte aus der iTerm2-Tabelle oben — `blue` schimmert
|
||||||
|
also nach `#CDD4FE`, `violet` nach `pink`.
|
||||||
|
|
||||||
|
Die Diff-Hintergründe sind die einzigen gemischten Werte: `green` bzw. `red`
|
||||||
|
mit 30 % Deckkraft über `#252528` (`#465E5C` / `#63444E`), auf Wortebene mit
|
||||||
|
50 %, für die gedimmte Fassung mit 15 %. Nachrichtenflächen sind `darker` mit
|
||||||
|
30 % über `#252528` (`#2E2E35`).
|
||||||
|
|
||||||
|
**Ein einfacherer Weg, der die Palette nicht braucht:** das eingebaute Theme
|
||||||
|
`dark-ansi` nimmt die 16 ANSI-Farben des Terminals — nach dem iTerm2-Import
|
||||||
|
sind das ohnehin die Farben von hier, dann aber gerundet auf die 16 Slots.
|
||||||
|
`custom:mwxcol` ist genauer und gilt auch in Terminals ohne das Preset.
|
||||||
|
|
||||||
|
## Fallstricke
|
||||||
|
|
||||||
|
Vier Dinge, die beim Übertragen Zeit gekostet haben und beim nächsten Mal Zeit
|
||||||
|
sparen:
|
||||||
|
|
||||||
|
**eza mergt über sein eingebautes Theme, es ersetzt es nicht.** Wer nur
|
||||||
|
`foreground` setzt, erbt `is_bold` und `is_underline` aus eza's Default. Genau
|
||||||
|
so entstand die Unterstreichung bei `README.md` und `Makefile` — die stecken in
|
||||||
|
`file_type: build`, und dessen Default ist *bold + underline*. Deshalb steht im
|
||||||
|
Theme an mehreren Stellen ein explizites `is_underline: false`, das sonst
|
||||||
|
überflüssig aussähe. Beim Ergänzen neuer Klassen daran denken.
|
||||||
|
|
||||||
|
**joes Statuszeile bleibt invers, egal was `-status` sagt.** Das kommt aus dem
|
||||||
|
`\i` (= Inverse, joe(1)) am Anfang von `-lmsg` in `~/.joerc`. Wer dort die
|
||||||
|
Palette sehen will, muss das `\i` entfernen — nicht am Theme drehen.
|
||||||
|
|
||||||
|
**`FZF_DEFAULT_OPTS` hängt an, es überschreibt nicht.** Die Zeile lautet
|
||||||
|
`FZF_DEFAULT_OPTS=$FZF_DEFAULT_OPTS'…'`. Zweimal sourcen hängt den Block zweimal
|
||||||
|
an; funktional gewinnt zwar das letzte `--color`, sauber ist es nicht. Nach
|
||||||
|
Änderungen `exec zsh` statt `source ~/.zshrc`.
|
||||||
|
|
||||||
|
**joe `-term 0..15` reicht auf die Terminal-Palette durch.** Das Theme lässt die
|
||||||
|
16 nummerierten Farben absichtlich auf der Identität (`-term 0 0` …), damit alte
|
||||||
|
Syntax-Dateien, die Farben per Nummer angeben, die Terminal-Palette benutzen.
|
||||||
|
Das ist erst korrekt, *nachdem* das iTerm2-Preset importiert ist — vorher landen
|
||||||
|
solche Dateien auf den grellen Standard-ANSI-Tönen. Auf einem Rechner mit einem
|
||||||
|
anderen, nicht angepassten Terminal gilt dasselbe: dann entweder dort die
|
||||||
|
Palette setzen oder im joe-Theme `-term 1 $F38BA8`, `-term 2 $94E2D5` usw. auf
|
||||||
|
Hex ziehen. Betroffen sind wenige Dateitypen — die mitgelieferten Syntax-Dateien
|
||||||
|
von joe 4.6 benutzen überwiegend Klassennamen statt Nummern.
|
||||||
Executable
BIN
Binary file not shown.
@@ -0,0 +1,10 @@
|
|||||||
|
module mwxcol
|
||||||
|
|
||||||
|
go 1.26.1
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/fatih/color v1.19.0 // indirect
|
||||||
|
github.com/mattn/go-colorable v0.1.14 // indirect
|
||||||
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||||
|
golang.org/x/sys v0.42.0 // indirect
|
||||||
|
)
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
github.com/fatih/color v1.19.0 h1:Zp3PiM21/9Ld6FzSKyL5c/BULoe/ONr9KlbYVOfG8+w=
|
||||||
|
github.com/fatih/color v1.19.0/go.mod h1:zNk67I0ZUT1bEGsSGyCZYZNrHuTkJJB+r6Q9VuMi0LE=
|
||||||
|
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
|
||||||
|
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
|
||||||
|
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||||
|
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||||
|
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=
|
||||||
|
golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
|
||||||
Executable
+214
@@ -0,0 +1,214 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# mwxcol — Farbschema auf diesem Rechner installieren.
|
||||||
|
# Siehe README.md für die Palette und die einzelnen Zuordnungen.
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
REPO=$(cd "$(dirname "$0")" && pwd)
|
||||||
|
MODE=install
|
||||||
|
USE_LINK=0
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
cat <<EOF
|
||||||
|
mwxcol — Farbschema installieren
|
||||||
|
|
||||||
|
./install.sh Themes kopieren (vorhandene Dateien nach .bak sichern)
|
||||||
|
./install.sh --link statt kopieren ins Repo symlinken — dann kann
|
||||||
|
nichts mehr auseinanderlaufen, das Repo muss aber
|
||||||
|
an seinem Platz bleiben ($REPO)
|
||||||
|
./install.sh --check nur vergleichen, nichts verändern
|
||||||
|
./install.sh --help
|
||||||
|
|
||||||
|
Ziele:
|
||||||
|
eza ~/.config/eza/theme.yml
|
||||||
|
joe ~/.joe/colors/default.jcf
|
||||||
|
fzf ~/.config/mwxcol/fzf-colors.zsh (+ eine source-Zeile in ~/.zshrc)
|
||||||
|
iTerm ~/.config/mwxcol/mwxcol.itermcolors (danach einmal importieren)
|
||||||
|
Nova ~/Library/Application Support/Nova/Extensions/org.mwx (nur macOS)
|
||||||
|
Xcode ~/Library/Developer/Xcode/UserData/FontAndColorThemes/mwxcol.xccolortheme
|
||||||
|
cc ~/.claude/themes/mwxcol.json (Claude Code, danach /theme)
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
--link) USE_LINK=1 ;;
|
||||||
|
--check) MODE=check ;;
|
||||||
|
--help|-h) usage; exit 0 ;;
|
||||||
|
*) echo "unbekannte Option: $1" >&2; usage >&2; exit 2 ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
say() { printf ' %-6s %-46s %s\n' "$1" "$2" "$3"; }
|
||||||
|
|
||||||
|
# Kürzt $HOME zu ~ für die Ausgabe.
|
||||||
|
tilde() { printf '%s' "$1" | sed "s|^$HOME|~|"; }
|
||||||
|
|
||||||
|
# install_path <name> <quelle-im-repo> <ziel>
|
||||||
|
# Funktioniert für Dateien und Verzeichnisse.
|
||||||
|
install_path() {
|
||||||
|
name=$1; src=$2; dst=$3
|
||||||
|
short=$(tilde "$dst")
|
||||||
|
|
||||||
|
if [ ! -e "$src" ]; then
|
||||||
|
say "$name" "$short" "QUELLE FEHLT: $src"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -L "$dst" ] && [ "$(readlink "$dst")" = "$src" ]; then
|
||||||
|
say "$name" "$short" "ok (Symlink ins Repo)"
|
||||||
|
[ "$MODE" = check ] && return 0
|
||||||
|
[ "$USE_LINK" = 1 ] && return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e "$dst" ] && diff -r -q "$src" "$dst" >/dev/null 2>&1; then
|
||||||
|
say "$name" "$short" "ok (identisch)"
|
||||||
|
[ "$MODE" = check ] && return 0
|
||||||
|
[ "$USE_LINK" = 0 ] && return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$MODE" = check ]; then
|
||||||
|
if [ -e "$dst" ]; then
|
||||||
|
say "$name" "$short" "WEICHT AB"
|
||||||
|
else
|
||||||
|
say "$name" "$short" "fehlt"
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p "$(dirname "$dst")"
|
||||||
|
|
||||||
|
if [ -e "$dst" ] && [ ! -L "$dst" ]; then
|
||||||
|
rm -rf "$dst.bak"
|
||||||
|
cp -R "$dst" "$dst.bak"
|
||||||
|
note="Backup: $(basename "$dst").bak"
|
||||||
|
else
|
||||||
|
note=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf "$dst"
|
||||||
|
if [ "$USE_LINK" = 1 ]; then
|
||||||
|
ln -sfn "$src" "$dst"
|
||||||
|
say "$name" "$short" "verlinkt $note"
|
||||||
|
else
|
||||||
|
cp -R "$src" "$dst"
|
||||||
|
say "$name" "$short" "kopiert $note"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "mwxcol aus $REPO"
|
||||||
|
[ "$MODE" = check ] && echo "(nur Prüfung — es wird nichts verändert)"
|
||||||
|
echo
|
||||||
|
|
||||||
|
install_path eza "$REPO/themes/eza/theme.yml" "$HOME/.config/eza/theme.yml"
|
||||||
|
install_path joe "$REPO/themes/joe/default.jcf" "$HOME/.joe/colors/default.jcf"
|
||||||
|
install_path fzf "$REPO/themes/fzf/colors.zsh" "$HOME/.config/mwxcol/fzf-colors.zsh"
|
||||||
|
|
||||||
|
if [ "$(uname)" = "Darwin" ]; then
|
||||||
|
install_path iterm "$REPO/themes/iterm/mwxcol.itermcolors" \
|
||||||
|
"$HOME/.config/mwxcol/mwxcol.itermcolors"
|
||||||
|
else
|
||||||
|
say iterm "-" "übersprungen (nur macOS)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$(uname)" = "Darwin" ]; then
|
||||||
|
install_path nova "$REPO/themes/nova/mwx.novaextension" \
|
||||||
|
"$HOME/Library/Application Support/Nova/Extensions/org.mwx"
|
||||||
|
else
|
||||||
|
say nova "-" "übersprungen (nur macOS)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$(uname)" = "Darwin" ]; then
|
||||||
|
install_path xcode "$REPO/themes/xcode/mwxcol.xccolortheme" \
|
||||||
|
"$HOME/Library/Developer/Xcode/UserData/FontAndColorThemes/mwxcol.xccolortheme"
|
||||||
|
else
|
||||||
|
say xcode "-" "übersprungen (nur macOS)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Claude Code liest ~/.claude/themes/*.json und benennt das Theme nach dem
|
||||||
|
# Dateinamen; CLAUDE_CONFIG_DIR verschiebt das Verzeichnis.
|
||||||
|
install_path cc "$REPO/themes/claude-code/mwxcol.json" \
|
||||||
|
"${CLAUDE_CONFIG_DIR:-$HOME/.claude}/themes/mwxcol.json"
|
||||||
|
|
||||||
|
# fzf wird nicht über eine Theme-Datei geladen, sondern über eine Umgebungs-
|
||||||
|
# variable — die Datei oben muss also von der Shell gesourct werden.
|
||||||
|
echo
|
||||||
|
SRC_LINE='[ -f ~/.config/mwxcol/fzf-colors.zsh ] && source ~/.config/mwxcol/fzf-colors.zsh'
|
||||||
|
if [ -f "$HOME/.zshrc" ] && grep -q 'mwxcol/fzf-colors.zsh' "$HOME/.zshrc"; then
|
||||||
|
echo "fzf: ~/.zshrc sourct die Farbdatei bereits."
|
||||||
|
elif [ -f "$HOME/.zshrc" ] && grep -q '# fzf — Palette aus mwxcol.go' "$HOME/.zshrc"; then
|
||||||
|
echo "fzf: ~/.zshrc enthält den Farbblock bereits direkt — nichts zu tun."
|
||||||
|
echo " (Wer stattdessen die Repo-Datei sourcen will: Block löschen und"
|
||||||
|
echo " diese Zeile eintragen)"
|
||||||
|
echo " $SRC_LINE"
|
||||||
|
else
|
||||||
|
echo "fzf: noch nicht in ~/.zshrc verdrahtet. Diese Zeile eintragen:"
|
||||||
|
echo " $SRC_LINE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# iTerm2 hält seine Einstellungen im Speicher und schreibt sie beim Beenden
|
||||||
|
# zurück — eine direkt bearbeitete Plist wäre also wieder weg. Deshalb wird
|
||||||
|
# das Preset nur bereitgelegt und einmalig von Hand importiert.
|
||||||
|
if [ "$(uname)" = "Darwin" ] && [ -e "$HOME/Library/Preferences/com.googlecode.iterm2.plist" ]; then
|
||||||
|
echo
|
||||||
|
themed=$(python3 - <<'PY' 2>/dev/null || true
|
||||||
|
import plistlib, subprocess, os
|
||||||
|
p = os.path.expanduser("~/Library/Preferences/com.googlecode.iterm2.plist")
|
||||||
|
xml = subprocess.run(["plutil","-convert","xml1","-o","-",p],
|
||||||
|
capture_output=True).stdout
|
||||||
|
d = plistlib.loads(xml)
|
||||||
|
for prof in d.get("New Bookmarks", []):
|
||||||
|
if prof.get("Name") != "Default":
|
||||||
|
continue
|
||||||
|
c = prof.get("Ansi 1 Color") or {}
|
||||||
|
hx = "%02X%02X%02X" % tuple(round(c.get(k, 0) * 255)
|
||||||
|
for k in ("Red Component", "Green Component", "Blue Component"))
|
||||||
|
print("ja" if hx == "F38BA8" else "nein")
|
||||||
|
PY
|
||||||
|
)
|
||||||
|
if [ "$themed" = "ja" ]; then
|
||||||
|
echo "iTerm2: Profil \"Default\" trägt die Palette bereits."
|
||||||
|
else
|
||||||
|
echo "iTerm2: Profil \"Default\" trägt noch nicht die Palette. Einmalig:"
|
||||||
|
echo " Einstellungen > Profiles > Colors > Color Presets… > Import…"
|
||||||
|
echo " $(tilde "$HOME/.config/mwxcol/mwxcol.itermcolors")"
|
||||||
|
echo " danach im selben Menü \"mwxcol\" auswählen."
|
||||||
|
echo " Vorher ansehen: $(tilde "$REPO")/themes/iterm/preview.sh"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Claude Code merkt sich das Theme in den Settings, nicht am Dateinamen.
|
||||||
|
CC_SETTINGS="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/settings.json"
|
||||||
|
if [ -f "$CC_SETTINGS" ]; then
|
||||||
|
echo
|
||||||
|
if grep -q '"theme"[[:space:]]*:[[:space:]]*"custom:mwxcol"' "$CC_SETTINGS"; then
|
||||||
|
echo "Claude Code: Theme mwxcol ist gewählt."
|
||||||
|
else
|
||||||
|
echo "Claude Code: Theme noch nicht gewählt — /theme > mwxcol, oder in"
|
||||||
|
echo " $(tilde "$CC_SETTINGS") eintragen: \"theme\": \"custom:mwxcol\""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Xcode führt hell und dunkel getrennt (XCFontAndColorCurrentTheme und
|
||||||
|
# …CurrentDarkTheme). Die Datei bereitzulegen reicht also nicht, sie muss in
|
||||||
|
# den Einstellungen ausgewählt werden — und ein laufendes Xcode sieht eine neu
|
||||||
|
# hinzugekommene Theme-Datei erst nach dem Neustart.
|
||||||
|
if [ "$(uname)" = "Darwin" ] && [ -d "$HOME/Library/Developer/Xcode" ]; then
|
||||||
|
echo
|
||||||
|
light=$(defaults read com.apple.dt.Xcode XCFontAndColorCurrentTheme 2>/dev/null || echo "—")
|
||||||
|
dark=$(defaults read com.apple.dt.Xcode XCFontAndColorCurrentDarkTheme 2>/dev/null || echo "—")
|
||||||
|
if [ "$light" = "mwxcol.xccolortheme" ] && [ "$dark" = "mwxcol.xccolortheme" ]; then
|
||||||
|
echo "Xcode: mwxcol ist gewählt (hell und dunkel)."
|
||||||
|
else
|
||||||
|
echo "Xcode: mwxcol noch nicht überall gewählt."
|
||||||
|
echo " aktuell hell: $light"
|
||||||
|
echo " aktuell dunkel: $dark"
|
||||||
|
echo " Einstellungen > Themes > mwxcol (Xcode ggf. vorher neu starten)."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$MODE" != check ]; then
|
||||||
|
echo
|
||||||
|
echo "Danach: exec zsh — Nova-Theme unter Einstellungen > Themes > mwx wählen."
|
||||||
|
fi
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/fatih/color"
|
||||||
|
)
|
||||||
|
|
||||||
|
type rgb struct{ r, g, b int }
|
||||||
|
|
||||||
|
func (c rgb) hex() string { return fmt.Sprintf("#%02X%02X%02X", c.r, c.g, c.b) }
|
||||||
|
|
||||||
|
func (c rgb) dec() string { return fmt.Sprintf("%d,%d,%d", c.r, c.g, c.b) }
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
|
||||||
|
var white = rgb{0xf0, 0xf0, 0xea}
|
||||||
|
var yellow = rgb{0xf9, 0xe2, 0xaf}
|
||||||
|
var orange = rgb{0xfa, 0xb3, 0x87}
|
||||||
|
var red = rgb{0xf3, 0x8b, 0xa8}
|
||||||
|
var green = rgb{0x94, 0xe2, 0xd5}
|
||||||
|
var blue = rgb{0xb4, 0xbe, 0xfe}
|
||||||
|
var pink = rgb{0xf5, 0xb2, 0xf7}
|
||||||
|
var violet = rgb{0xcb, 0xa6, 0xf7}
|
||||||
|
var grey = rgb{0xaa, 0xaa, 0xbb}
|
||||||
|
var dark = rgb{0x77, 0x77, 0x88}
|
||||||
|
var darker = rgb{0x44, 0x44, 0x55}
|
||||||
|
|
||||||
|
mwxcol(white, "white")
|
||||||
|
mwxcol(yellow, "yellow")
|
||||||
|
mwxcol(orange, "orange")
|
||||||
|
mwxcol(red, "red")
|
||||||
|
mwxcol(green, "green")
|
||||||
|
mwxcol(blue, "blue")
|
||||||
|
mwxcol(pink, "pink")
|
||||||
|
mwxcol(violet, "violet")
|
||||||
|
mwxcol(grey, "grey")
|
||||||
|
mwxcol(dark, "dark")
|
||||||
|
mwxcol(darker, "darker")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func mwxcol(col rgb, txt string) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
c := color.RGB(col.r,col.g,col.b)
|
||||||
|
bc := color.New(color.Bold).AddRGB(col.r,col.g,col.b)
|
||||||
|
|
||||||
|
bc.Printf("%-8s",txt)
|
||||||
|
c.Printf(" %s ", col.hex())
|
||||||
|
c.Printf(" %-11s ", col.dec())
|
||||||
|
|
||||||
|
c.Print(" Hallo World 1234567890._\\/^:|!@#$€π ")
|
||||||
|
bc.Println("BOLD world")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
{
|
||||||
|
"name": "mwxcol",
|
||||||
|
"base": "dark",
|
||||||
|
"overrides": {
|
||||||
|
"autoAccept": "#CBA6F7",
|
||||||
|
"autoAcceptShimmer": "#F5B2F7",
|
||||||
|
"background": "#94DAE0",
|
||||||
|
"bashBorder": "#F5B2F7",
|
||||||
|
"bashMessageBackgroundColor": "#3E3641",
|
||||||
|
"blue_FOR_SUBAGENTS_ONLY": "#B4BEFE",
|
||||||
|
"briefLabelClaude": "#FAB387",
|
||||||
|
"briefLabelYou": "#B4BEFE",
|
||||||
|
"chromeYellow": "#F9E2AF",
|
||||||
|
"claude": "#FAB387",
|
||||||
|
"claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#CDD4FE",
|
||||||
|
"claudeBlue_FOR_SYSTEM_SPINNER": "#B4BEFE",
|
||||||
|
"claudeShimmer": "#F9E2AF",
|
||||||
|
"clawd_background": "#252528",
|
||||||
|
"clawd_body": "#FAB387",
|
||||||
|
"composerSidebarBackground": "#2E2E35",
|
||||||
|
"cyan_FOR_SUBAGENTS_ONLY": "#94DAE0",
|
||||||
|
"diffAdded": "#465E5C",
|
||||||
|
"diffAddedDimmed": "#364142",
|
||||||
|
"diffAddedWord": "#5C847E",
|
||||||
|
"diffRemoved": "#63444E",
|
||||||
|
"diffRemovedDimmed": "#44343B",
|
||||||
|
"diffRemovedWord": "#8C5868",
|
||||||
|
"effortUltra": "#CBA6F7",
|
||||||
|
"error": "#F38BA8",
|
||||||
|
"fastMode": "#FAB387",
|
||||||
|
"fastModeShimmer": "#F9E2AF",
|
||||||
|
"green_FOR_SUBAGENTS_ONLY": "#94E2D5",
|
||||||
|
"ide": "#B4BEFE",
|
||||||
|
"inactive": "#AAAABB",
|
||||||
|
"inactiveShimmer": "#F0F0EA",
|
||||||
|
"inverseText": "#252528",
|
||||||
|
"memoryBackgroundColor": "#363742",
|
||||||
|
"merged": "#CBA6F7",
|
||||||
|
"orange_FOR_SUBAGENTS_ONLY": "#FAB387",
|
||||||
|
"permission": "#B4BEFE",
|
||||||
|
"permissionShimmer": "#CDD4FE",
|
||||||
|
"pink_FOR_SUBAGENTS_ONLY": "#F5B2F7",
|
||||||
|
"planMode": "#94E2D5",
|
||||||
|
"professionalBlue": "#B4BEFE",
|
||||||
|
"promptBorder": "#777788",
|
||||||
|
"promptBorderShimmer": "#AAAABB",
|
||||||
|
"purple_FOR_SUBAGENTS_ONLY": "#CBA6F7",
|
||||||
|
"rainbow_blue": "#B4BEFE",
|
||||||
|
"rainbow_blue_shimmer": "#CDD4FE",
|
||||||
|
"rainbow_green": "#94E2D5",
|
||||||
|
"rainbow_green_shimmer": "#B8EAE1",
|
||||||
|
"rainbow_indigo": "#CBA6F7",
|
||||||
|
"rainbow_indigo_shimmer": "#F5B2F7",
|
||||||
|
"rainbow_orange": "#FAB387",
|
||||||
|
"rainbow_orange_shimmer": "#F9E2AF",
|
||||||
|
"rainbow_red": "#F38BA8",
|
||||||
|
"rainbow_red_shimmer": "#F7B5C8",
|
||||||
|
"rainbow_violet": "#F5B2F7",
|
||||||
|
"rainbow_violet_shimmer": "#F5B2F7",
|
||||||
|
"rainbow_yellow": "#F9E2AF",
|
||||||
|
"rainbow_yellow_shimmer": "#FCEECB",
|
||||||
|
"rate_limit_empty": "#444455",
|
||||||
|
"rate_limit_fill": "#B4BEFE",
|
||||||
|
"red_FOR_SUBAGENTS_ONLY": "#F38BA8",
|
||||||
|
"remember": "#B4BEFE",
|
||||||
|
"selectionBg": "#444455",
|
||||||
|
"skill": "#CBA6F7",
|
||||||
|
"subtle": "#777788",
|
||||||
|
"success": "#94E2D5",
|
||||||
|
"suggestion": "#B4BEFE",
|
||||||
|
"text": "#F0F0EA",
|
||||||
|
"userMessageBackground": "#2E2E35",
|
||||||
|
"userMessageBackgroundHover": "#444455",
|
||||||
|
"warning": "#F9E2AF",
|
||||||
|
"warningShimmer": "#FCEECB",
|
||||||
|
"yellow_FOR_SUBAGENTS_ONLY": "#F9E2AF"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
# eza theme — Palette aus coltest.go
|
||||||
|
#
|
||||||
|
# white #F0F0EA pink #F5B2F7
|
||||||
|
# yellow #F9E2AF violet #CBA6F7
|
||||||
|
# orange #FAB387 grey #AAAABB
|
||||||
|
# red #F38BA8 dark #777788
|
||||||
|
# green #94E2D5 darker #444455
|
||||||
|
# blue #B4BEFE
|
||||||
|
#
|
||||||
|
# Ort: ~/.config/eza/theme.yml (oder $EZA_CONFIG_DIR/theme.yml)
|
||||||
|
# Getestet mit eza 0.23.5.
|
||||||
|
|
||||||
|
colourful: true
|
||||||
|
|
||||||
|
filekinds:
|
||||||
|
normal: {foreground: "#F0F0EA"} # white
|
||||||
|
directory: {foreground: "#B4BEFE", is_bold: true} # blue
|
||||||
|
symlink: {foreground: "#F5B2F7", is_underline: false} # pink
|
||||||
|
pipe: {foreground: "#CBA6F7"} # violet
|
||||||
|
block_device: {foreground: "#FAB387"} # orange
|
||||||
|
char_device: {foreground: "#F9E2AF"} # yellow
|
||||||
|
socket: {foreground: "#F5B2F7", is_bold: true} # pink
|
||||||
|
special: {foreground: "#CBA6F7"} # violet
|
||||||
|
executable: {foreground: "#94E2D5", is_bold: true} # green
|
||||||
|
mount_point: {foreground: "#B4BEFE", is_underline: false}
|
||||||
|
|
||||||
|
perms:
|
||||||
|
user_read: {foreground: "#94E2D5"} # green
|
||||||
|
user_write: {foreground: "#F9E2AF"} # yellow
|
||||||
|
user_execute_file: {foreground: "#F38BA8", is_underline: false} # red
|
||||||
|
user_execute_other: {foreground: "#F38BA8", is_underline: false} # red
|
||||||
|
group_read: {foreground: "#94E2D5"}
|
||||||
|
group_write: {foreground: "#F9E2AF"}
|
||||||
|
group_execute: {foreground: "#F38BA8", is_underline: false}
|
||||||
|
other_read: {foreground: "#94E2D5"}
|
||||||
|
other_write: {foreground: "#F9E2AF"}
|
||||||
|
other_execute: {foreground: "#F38BA8", is_underline: false}
|
||||||
|
special_user_file: {foreground: "#F5B2F7", is_underline: false} # pink — setuid
|
||||||
|
special_other: {foreground: "#F5B2F7", is_underline: false} # pink
|
||||||
|
attribute: {foreground: "#777788"} # dark — @ / xattr
|
||||||
|
|
||||||
|
size:
|
||||||
|
number_byte: {foreground: "#94E2D5"} # green
|
||||||
|
number_kilo: {foreground: "#94E2D5"}
|
||||||
|
number_mega: {foreground: "#F9E2AF"} # yellow
|
||||||
|
number_giga: {foreground: "#FAB387"} # orange
|
||||||
|
number_huge: {foreground: "#F38BA8"} # red
|
||||||
|
unit_byte: {foreground: "#94E2D5"}
|
||||||
|
unit_kilo: {foreground: "#94E2D5"}
|
||||||
|
unit_mega: {foreground: "#F9E2AF"}
|
||||||
|
unit_giga: {foreground: "#FAB387"}
|
||||||
|
unit_huge: {foreground: "#F38BA8"}
|
||||||
|
major: {foreground: "#CBA6F7"} # violet — Device-Nummern
|
||||||
|
minor: {foreground: "#F5B2F7"} # pink
|
||||||
|
|
||||||
|
users:
|
||||||
|
user_you: {foreground: "#F0F0EA"} # white
|
||||||
|
user_root: {foreground: "#F38BA8"} # red
|
||||||
|
user_other: {foreground: "#AAAABB"} # grey
|
||||||
|
group_yours: {foreground: "#AAAABB"} # grey
|
||||||
|
group_other: {foreground: "#777788"} # dark
|
||||||
|
group_root: {foreground: "#F38BA8"} # red
|
||||||
|
|
||||||
|
links:
|
||||||
|
normal: {foreground: "#F5B2F7"} # pink
|
||||||
|
multi_link_file: {foreground: "#CBA6F7"} # violet
|
||||||
|
|
||||||
|
git:
|
||||||
|
new: {foreground: "#94E2D5"} # green
|
||||||
|
modified: {foreground: "#F9E2AF"} # yellow
|
||||||
|
deleted: {foreground: "#F38BA8"} # red
|
||||||
|
renamed: {foreground: "#CBA6F7"} # violet
|
||||||
|
typechange: {foreground: "#FAB387"} # orange
|
||||||
|
ignored: {foreground: "#444455"} # darker
|
||||||
|
conflicted: {foreground: "#F5B2F7"} # pink
|
||||||
|
|
||||||
|
git_repo:
|
||||||
|
branch_main: {foreground: "#94E2D5"} # green
|
||||||
|
branch_other: {foreground: "#CBA6F7"} # violet
|
||||||
|
git_clean: {foreground: "#94E2D5"} # green
|
||||||
|
git_dirty: {foreground: "#F9E2AF"} # yellow
|
||||||
|
|
||||||
|
security_context:
|
||||||
|
none: {foreground: "#777788"} # dark
|
||||||
|
selinux:
|
||||||
|
colon: {foreground: "#444455"}
|
||||||
|
user: {foreground: "#B4BEFE"}
|
||||||
|
role: {foreground: "#CBA6F7"}
|
||||||
|
typ: {foreground: "#F5B2F7"}
|
||||||
|
range: {foreground: "#F9E2AF"}
|
||||||
|
|
||||||
|
file_type:
|
||||||
|
image: {foreground: "#CBA6F7"} # violet
|
||||||
|
video: {foreground: "#F5B2F7"} # pink
|
||||||
|
music: {foreground: "#94E2D5"} # green
|
||||||
|
lossless: {foreground: "#94E2D5"} # green
|
||||||
|
crypto: {foreground: "#F38BA8"} # red
|
||||||
|
document: {foreground: "#F0F0EA"} # white
|
||||||
|
compressed: {foreground: "#FAB387"} # orange
|
||||||
|
temp: {foreground: "#444455"} # darker
|
||||||
|
compiled: {foreground: "#AAAABB"} # grey
|
||||||
|
build: {foreground: "#F9E2AF", is_underline: false} # yellow — README, Makefile, …
|
||||||
|
source: {foreground: "#B4BEFE"} # blue
|
||||||
|
|
||||||
|
punctuation: {foreground: "#444455"} # darker — die - in rwx
|
||||||
|
date: {foreground: "#B4BEFE"} # blue
|
||||||
|
inode: {foreground: "#F5B2F7"} # pink
|
||||||
|
blocks: {foreground: "#777788"} # dark
|
||||||
|
header: {foreground: "#AAAABB", is_underline: false} # grey
|
||||||
|
octal: {foreground: "#777788"} # dark
|
||||||
|
flags: {foreground: "#FAB387"} # orange
|
||||||
|
symlink_path: {foreground: "#CBA6F7", is_underline: false} # violet
|
||||||
|
control_char: {foreground: "#F38BA8"} # red
|
||||||
|
broken_symlink: {foreground: "#F38BA8", is_underline: false} # red
|
||||||
|
broken_path_overlay: {foreground: "#F38BA8", is_underline: false}
|
||||||
|
|
||||||
|
# Eigene Regeln pro Dateiname / Endung — das, was lsd nicht kann:
|
||||||
|
#
|
||||||
|
# filenames:
|
||||||
|
# Makefile: {filename: {foreground: "#F38BA8", is_bold: true}}
|
||||||
|
# extensions:
|
||||||
|
# go: {filename: {foreground: "#94E2D5"}}
|
||||||
|
# md: {filename: {foreground: "#B4BEFE"}}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# fzf — Palette aus mwxcol.go
|
||||||
|
export FZF_DEFAULT_OPTS=$FZF_DEFAULT_OPTS'
|
||||||
|
--color=fg:#AAAABB,bg:#252528,hl:#F5B2F7
|
||||||
|
--color=fg+:#F0F0EA,bg+:#444455,hl+:#F5B2F7
|
||||||
|
--color=info:#94E2D5,prompt:#F38BA8,pointer:#CBA6F7
|
||||||
|
--color=marker:#94E2D5,spinner:#CBA6F7,header:#AAAABB
|
||||||
|
--color=query:#F0F0EA,disabled:#777788,gutter:#252528
|
||||||
|
--color=border:#444455,separator:#444455,scrollbar:#777788
|
||||||
|
--color=label:#AAAABB,preview-fg:#F0F0EA,preview-bg:#252528'
|
||||||
@@ -0,0 +1,357 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Ansi 0 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.3333333333333333</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.26666666666666666</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.26666666666666666</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 1 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.6588235294117647</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.5450980392156862</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.9529411764705882</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 10 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.8823529411764706</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.9176470588235294</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.7215686274509804</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 11 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.796078431372549</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.9333333333333333</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.9882352941176471</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 12 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.996078431372549</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.8313725490196079</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.803921568627451</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 13 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.9686274509803922</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.6980392156862745</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.9607843137254902</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 14 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.9215686274509803</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.9058823529411765</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.7215686274509804</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 15 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.9176470588235294</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.9411764705882353</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.9411764705882353</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 2 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.8352941176470589</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.8862745098039215</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.5803921568627451</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 3 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.6862745098039216</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.8862745098039215</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.9764705882352941</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 4 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.996078431372549</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.7450980392156863</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.7058823529411765</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 5 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.9686274509803922</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.6509803921568628</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.796078431372549</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 6 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.8784313725490196</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.8549019607843137</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.5803921568627451</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 7 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.7333333333333333</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.6666666666666666</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.6666666666666666</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 8 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.5333333333333333</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.4666666666666667</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.4666666666666667</real>
|
||||||
|
</dict>
|
||||||
|
<key>Ansi 9 Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.7843137254901961</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.7098039215686275</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.9686274509803922</real>
|
||||||
|
</dict>
|
||||||
|
<key>Background Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.1568627450980392</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.1450980392156863</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.1450980392156863</real>
|
||||||
|
</dict>
|
||||||
|
<key>Badge Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.6588235294117647</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.5450980392156862</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.9529411764705882</real>
|
||||||
|
</dict>
|
||||||
|
<key>Bold Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.9176470588235294</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.9411764705882353</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.9411764705882353</real>
|
||||||
|
</dict>
|
||||||
|
<key>Cursor Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.6588235294117647</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.5450980392156862</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.9529411764705882</real>
|
||||||
|
</dict>
|
||||||
|
<key>Cursor Guide Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.3333333333333333</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.26666666666666666</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.26666666666666666</real>
|
||||||
|
</dict>
|
||||||
|
<key>Cursor Text Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.1568627450980392</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.1450980392156863</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.1450980392156863</real>
|
||||||
|
</dict>
|
||||||
|
<key>Foreground Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.9176470588235294</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.9411764705882353</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.9411764705882353</real>
|
||||||
|
</dict>
|
||||||
|
<key>Link Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.996078431372549</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.7450980392156863</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.7058823529411765</real>
|
||||||
|
</dict>
|
||||||
|
<key>Selected Text Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.9176470588235294</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.9411764705882353</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.9411764705882353</real>
|
||||||
|
</dict>
|
||||||
|
<key>Selection Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.3333333333333333</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.26666666666666666</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.26666666666666666</real>
|
||||||
|
</dict>
|
||||||
|
<key>Tab Color</key>
|
||||||
|
<dict>
|
||||||
|
<key>Alpha Component</key>
|
||||||
|
<real>1.0</real>
|
||||||
|
<key>Blue Component</key>
|
||||||
|
<real>0.3333333333333333</real>
|
||||||
|
<key>Color Space</key>
|
||||||
|
<string>sRGB</string>
|
||||||
|
<key>Green Component</key>
|
||||||
|
<real>0.26666666666666666</real>
|
||||||
|
<key>Red Component</key>
|
||||||
|
<real>0.26666666666666666</real>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
Executable
+48
@@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Setzt die mwxcol-Palette per Escape-Sequenz in der LAUFENDEN iTerm2-Session.
|
||||||
|
# Nur zum Ansehen: nichts wird gespeichert, ein neuer Tab hat wieder die alten
|
||||||
|
# Farben. Für dauerhaft siehe mwxcol.itermcolors + README.
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
[ "${TERM_PROGRAM:-}" = "iTerm.app" ] || {
|
||||||
|
echo "Das ist keine iTerm2-Session (TERM_PROGRAM=${TERM_PROGRAM:-leer})." >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
set_color() { printf '\033]1337;SetColors=%s=%s\a' "$1" "$2"; }
|
||||||
|
|
||||||
|
set_color black 444455
|
||||||
|
set_color red F38BA8
|
||||||
|
set_color green 94E2D5
|
||||||
|
set_color yellow F9E2AF
|
||||||
|
set_color blue B4BEFE
|
||||||
|
set_color magenta CBA6F7
|
||||||
|
set_color cyan 94DAE0
|
||||||
|
set_color white AAAABB
|
||||||
|
set_color br_black 777788
|
||||||
|
set_color br_red F7B5C8
|
||||||
|
set_color br_green B8EAE1
|
||||||
|
set_color br_yellow FCEECB
|
||||||
|
set_color br_blue CDD4FE
|
||||||
|
set_color br_magenta F5B2F7
|
||||||
|
set_color br_cyan B8E7EB
|
||||||
|
set_color br_white F0F0EA
|
||||||
|
|
||||||
|
set_color fg F0F0EA
|
||||||
|
set_color bg 252528
|
||||||
|
set_color bold F0F0EA
|
||||||
|
set_color link B4BEFE
|
||||||
|
set_color curbg F38BA8
|
||||||
|
set_color curfg 252528
|
||||||
|
set_color selbg 444455
|
||||||
|
set_color selfg F0F0EA
|
||||||
|
|
||||||
|
echo "mwxcol-Vorschau aktiv — nur diese Session."
|
||||||
|
echo
|
||||||
|
i=0
|
||||||
|
while [ $i -lt 8 ]; do printf '\033[4%dm \033[0m' $i; i=$((i+1)); done
|
||||||
|
printf ' normal\n'
|
||||||
|
i=0
|
||||||
|
while [ $i -lt 8 ]; do printf '\033[10%dm \033[0m' $i; i=$((i+1)); done
|
||||||
|
printf ' bright\n'
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
## Version 1.0
|
||||||
|
|
||||||
|
Erste Fassung: dunkles Theme aus der mwxcol-Palette, inkl. Terminal-Farben.
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
# mwx — Nova Theme
|
||||||
|
|
||||||
|
Dunkles Theme für [Nova](https://nova.app) mit der Palette aus `mwxcol.go`
|
||||||
|
(dieselben Farben wie das eza-Theme in `root@eternity`).
|
||||||
|
|
||||||
|
| Name | Hex | Einsatz im Theme |
|
||||||
|
| ------ | --------- | ------------------------------------------------------- |
|
||||||
|
| white | `#F0F0EA` | Fließtext, Variablen, Element-Selektoren |
|
||||||
|
| yellow | `#F9E2AF` | Typen, Attributnamen, CSS-Klassen, `markup.bold` |
|
||||||
|
| orange | `#FAB387` | Zahlen, Konstanten, Listenpunkte, CSS-IDs |
|
||||||
|
| red | `#F38BA8` | `self`/`this`, Argumente, Regex-Escapes, `invalid` |
|
||||||
|
| green | `#94E2D5` | Strings, Dekoratoren, Farbwerte, `markup.italic` |
|
||||||
|
| blue | `#B4BEFE` | Funktionen/Methoden, Tag-Namen, Links |
|
||||||
|
| pink | `#F5B2F7` | Properties/Keys, String-Escapes, Regex, Cursor |
|
||||||
|
| violet | `#CBA6F7` | Schlüsselwörter, Überschriften, `@`-Regeln |
|
||||||
|
| grey | `#AAAABB` | Operatoren, Klammern, Präfixe, Titelleiste |
|
||||||
|
| dark | `#777788` | Kommentare, Zeilennummern, Tag-Klammern |
|
||||||
|
| darker | `#444455` | Unsichtbare Zeichen, Einrückungshilfen, Terminal-Schwarz |
|
||||||
|
|
||||||
|
Hintergründe setzen die Reihe unterhalb von `darker` fort (alle Hue 240):
|
||||||
|
`#33333F` Ränder · `#26262F` Fenster · `#24242E` aktuelle Zeile ·
|
||||||
|
`#1C1C25` Editor · `#14141B` Textfelder · `#35354F` Auswahl.
|
||||||
|
|
||||||
|
Für die 16 Terminal-Slots fehlen der Palette ein Cyan und die hellen
|
||||||
|
Varianten — die sind aus den Palettenfarben abgeleitet (gleicher Farbton,
|
||||||
|
höhere Helligkeit) und in `Themes/mwx.css` als `abgeleitet` markiert.
|
||||||
|
|
||||||
|
## Installieren
|
||||||
|
|
||||||
|
Ordner in Nova öffnen und im Menü **Extensions → Activate Project as Extension**
|
||||||
|
wählen. Danach unter **Settings → Themes** „mwx" auswählen.
|
||||||
|
|
||||||
|
Alternativ dauerhaft ablegen:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cp -R mwx.novaextension ~/Library/"Application Support"/Nova/Extensions/org.mwx
|
||||||
|
```
|
||||||
|
|
||||||
|
(Nova danach neu starten.)
|
||||||
|
|
||||||
|
Achtung: Bezeichner und Zielordner sind identisch mit der bereits installierten
|
||||||
|
Extension `org.mwx` — der Kopierbefehl überschreibt das dortige `Themes/mwx.css`.
|
||||||
|
|
||||||
|
## Anpassen
|
||||||
|
|
||||||
|
Alle Farben stehen direkt als Hex-Werte in `Themes/mwx.css`, gruppiert nach
|
||||||
|
Fenster, Dokument, Syntax und Terminal. Bei aktiviertem „Activate Project as
|
||||||
|
Extension" übernimmt Nova Änderungen an der CSS-Datei sofort.
|
||||||
@@ -0,0 +1,563 @@
|
|||||||
|
/*
|
||||||
|
* mwx — Nova Theme, Palette aus mwxcol.go
|
||||||
|
*
|
||||||
|
* white #F0F0EA pink #F5B2F7
|
||||||
|
* yellow #F9E2AF violet #CBA6F7
|
||||||
|
* orange #FAB387 grey #AAAABB
|
||||||
|
* red #F38BA8 dark #777788
|
||||||
|
* green #94E2D5 darker #444455
|
||||||
|
* blue #B4BEFE
|
||||||
|
*
|
||||||
|
* Hintergrundstufen (aus darker #444455 nach unten fortgesetzt, Hue 240):
|
||||||
|
* #33333F Ränder, Buttons
|
||||||
|
* #26262F Fensterhintergrund (Sidebar, Titelleiste)
|
||||||
|
* #24242E aktuelle Zeile
|
||||||
|
* #1C1C25 Editor / Dokument
|
||||||
|
* #14141B Textfelder
|
||||||
|
* #35354F Auswahl
|
||||||
|
*
|
||||||
|
* Terminal-Slots ohne Entsprechung in der Palette sind als "abgeleitet"
|
||||||
|
* markiert (cyan sowie alle bright-Varianten der Buntfarben).
|
||||||
|
*/
|
||||||
|
|
||||||
|
meta {
|
||||||
|
-theme-display-name: "mwx";
|
||||||
|
-theme-interface-style: dark;
|
||||||
|
-theme-vibrancy: none;
|
||||||
|
-theme-accent-color: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fenster
|
||||||
|
*/
|
||||||
|
meta.window {
|
||||||
|
background-color: #26262F;
|
||||||
|
border-color: #14141B;
|
||||||
|
}
|
||||||
|
|
||||||
|
meta.titlebar {
|
||||||
|
color: #AAAABB;
|
||||||
|
background-color: #26262F;
|
||||||
|
border-color: #14141B;
|
||||||
|
}
|
||||||
|
meta.titlebar.inactive {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
|
||||||
|
meta.divider {
|
||||||
|
border-color: #14141B;
|
||||||
|
}
|
||||||
|
|
||||||
|
meta.button {
|
||||||
|
background: linear-gradient(#33333F, #2B2B36);
|
||||||
|
border: linear-gradient(#191921, #14141B);
|
||||||
|
color: #F0F0EA;
|
||||||
|
}
|
||||||
|
meta.button.highlighted {
|
||||||
|
background: linear-gradient(#3E3E4C, #35354F);
|
||||||
|
color: #F0F0EA;
|
||||||
|
}
|
||||||
|
meta.button.selected {
|
||||||
|
color: #F0F0EA;
|
||||||
|
}
|
||||||
|
meta.button.highlighted.selected {
|
||||||
|
color: #F0F0EA;
|
||||||
|
}
|
||||||
|
meta.button.disabled {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
|
||||||
|
meta.textfield {
|
||||||
|
background-color: #14141B;
|
||||||
|
border-color: #33333F;
|
||||||
|
}
|
||||||
|
meta.textfield.highlighted {
|
||||||
|
background-color: #14141B;
|
||||||
|
border-color: #444455;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dokument
|
||||||
|
*/
|
||||||
|
meta.document {
|
||||||
|
background-color: #1C1C25;
|
||||||
|
border-color: #14141B;
|
||||||
|
}
|
||||||
|
|
||||||
|
meta.document.button {
|
||||||
|
background: linear-gradient(#2B2B36, #24242E);
|
||||||
|
border: linear-gradient(#191921, #14141B);
|
||||||
|
color: #F0F0EA;
|
||||||
|
}
|
||||||
|
meta.document.button.disabled {
|
||||||
|
background: linear-gradient(rgba(43, 43, 54, 0.3), rgba(36, 36, 46, 0.3));
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
meta.document.button.highlighted {
|
||||||
|
background: linear-gradient(#3E3E4C, #33333F);
|
||||||
|
}
|
||||||
|
|
||||||
|
meta.document.textfield {
|
||||||
|
background-color: #14141B;
|
||||||
|
border-color: #33333F;
|
||||||
|
}
|
||||||
|
meta.document.textfield.highlighted {
|
||||||
|
background-color: #14141B;
|
||||||
|
border-color: #444455;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Text */
|
||||||
|
meta.text {
|
||||||
|
color: #F0F0EA;
|
||||||
|
}
|
||||||
|
meta.text.invisible {
|
||||||
|
color: #444455;
|
||||||
|
}
|
||||||
|
meta.text.selected {
|
||||||
|
background-color: #35354F;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Aktuelle Zeile + Cursor */
|
||||||
|
meta.cursor {
|
||||||
|
background-color: #24242E;
|
||||||
|
border-color: #F5B2F7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Einrückungshilfen */
|
||||||
|
meta.indentguide {
|
||||||
|
border-color: rgba(68, 68, 85, 0.7);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Zeilennummern */
|
||||||
|
meta.gutter {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
meta.gutter.selected {
|
||||||
|
background-color: #24242E;
|
||||||
|
color: #F0F0EA;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Syntax
|
||||||
|
*/
|
||||||
|
comment {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
comment.delimiter {
|
||||||
|
color: #444455;
|
||||||
|
}
|
||||||
|
comment.doctag {
|
||||||
|
color: #AAAABB;
|
||||||
|
}
|
||||||
|
processing {
|
||||||
|
color: #FAB387;
|
||||||
|
}
|
||||||
|
processing.argument {
|
||||||
|
color: #F9E2AF;
|
||||||
|
}
|
||||||
|
declaration {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
bracket {
|
||||||
|
color: #AAAABB;
|
||||||
|
}
|
||||||
|
operator {
|
||||||
|
color: #AAAABB;
|
||||||
|
}
|
||||||
|
link {
|
||||||
|
color: #B4BEFE;
|
||||||
|
}
|
||||||
|
invalid {
|
||||||
|
background-color: rgba(243, 139, 168, 0.2);
|
||||||
|
color: #F38BA8;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Schlüsselwörter */
|
||||||
|
keyword {
|
||||||
|
color: #CBA6F7;
|
||||||
|
}
|
||||||
|
keyword.modifier {
|
||||||
|
color: #CBA6F7;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
keyword.condition {
|
||||||
|
color: #CBA6F7;
|
||||||
|
}
|
||||||
|
keyword.construct {
|
||||||
|
color: #CBA6F7;
|
||||||
|
}
|
||||||
|
keyword.statement {
|
||||||
|
color: #CBA6F7;
|
||||||
|
}
|
||||||
|
keyword.self {
|
||||||
|
color: #F38BA8;
|
||||||
|
}
|
||||||
|
keyword.self.prefix {
|
||||||
|
color: #F5B2F7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Werte */
|
||||||
|
value.boolean {
|
||||||
|
color: #FAB387;
|
||||||
|
}
|
||||||
|
value.null {
|
||||||
|
color: #FAB387;
|
||||||
|
}
|
||||||
|
value.number {
|
||||||
|
color: #FAB387;
|
||||||
|
}
|
||||||
|
value.number.prefix {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
value.entity {
|
||||||
|
color: #FAB387;
|
||||||
|
}
|
||||||
|
value.symbol {
|
||||||
|
color: #FAB387;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Bezeichner */
|
||||||
|
identifier.type {
|
||||||
|
color: #F9E2AF;
|
||||||
|
}
|
||||||
|
identifier.type.declare {
|
||||||
|
color: #F9E2AF;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
identifier.variable {
|
||||||
|
color: #F0F0EA;
|
||||||
|
}
|
||||||
|
identifier.variable.prefix {
|
||||||
|
color: #AAAABB;
|
||||||
|
}
|
||||||
|
identifier.constant {
|
||||||
|
color: #FAB387;
|
||||||
|
}
|
||||||
|
identifier.constant.prefix {
|
||||||
|
color: #AAAABB;
|
||||||
|
}
|
||||||
|
identifier.global {
|
||||||
|
color: #F5B2F7;
|
||||||
|
}
|
||||||
|
identifier.global.prefix {
|
||||||
|
color: #AAAABB;
|
||||||
|
}
|
||||||
|
identifier.property {
|
||||||
|
color: #F5B2F7;
|
||||||
|
}
|
||||||
|
identifier.property.prefix {
|
||||||
|
color: #AAAABB;
|
||||||
|
}
|
||||||
|
identifier.key {
|
||||||
|
color: #F5B2F7;
|
||||||
|
}
|
||||||
|
identifier.argument {
|
||||||
|
color: #F38BA8;
|
||||||
|
}
|
||||||
|
identifier.argument.prefix {
|
||||||
|
color: #AAAABB;
|
||||||
|
}
|
||||||
|
identifier.decorator {
|
||||||
|
color: #94E2D5;
|
||||||
|
}
|
||||||
|
identifier.decorator.prefix {
|
||||||
|
color: #94E2D5;
|
||||||
|
}
|
||||||
|
identifier.function,
|
||||||
|
identifier.method {
|
||||||
|
color: #B4BEFE;
|
||||||
|
}
|
||||||
|
identifier.function.prefix,
|
||||||
|
identifier.method.prefix {
|
||||||
|
color: #AAAABB;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Strings */
|
||||||
|
string {
|
||||||
|
color: #94E2D5;
|
||||||
|
}
|
||||||
|
string.delimiter {
|
||||||
|
color: #94E2D5;
|
||||||
|
}
|
||||||
|
string.escape {
|
||||||
|
color: #F5B2F7;
|
||||||
|
}
|
||||||
|
string.key {
|
||||||
|
color: #F5B2F7;
|
||||||
|
}
|
||||||
|
string-keyword {
|
||||||
|
color: #F9E2AF;
|
||||||
|
}
|
||||||
|
string-template {
|
||||||
|
color: #F9E2AF;
|
||||||
|
}
|
||||||
|
regex {
|
||||||
|
color: #F5B2F7;
|
||||||
|
}
|
||||||
|
regex.bracket {
|
||||||
|
color: #CBA6F7;
|
||||||
|
}
|
||||||
|
regex.character {
|
||||||
|
color: #94E2D5;
|
||||||
|
}
|
||||||
|
regex.delimiter {
|
||||||
|
color: #CBA6F7;
|
||||||
|
}
|
||||||
|
regex.escape {
|
||||||
|
color: #F38BA8;
|
||||||
|
}
|
||||||
|
regex.operator {
|
||||||
|
color: #CBA6F7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Markup */
|
||||||
|
markup.heading {
|
||||||
|
color: #CBA6F7;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
markup.heading.prefix {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
markup.line {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
markup.bold {
|
||||||
|
color: #F9E2AF;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
markup.bold.delimiter {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
markup.italic {
|
||||||
|
color: #94E2D5;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
markup.italic.delimiter {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
markup.strikethrough {
|
||||||
|
color: #777788;
|
||||||
|
text-decoration: line-through rgba(119, 119, 136, 0.7);
|
||||||
|
}
|
||||||
|
markup.strikethrough.delimiter {
|
||||||
|
color: #444455;
|
||||||
|
}
|
||||||
|
markup.list.item {
|
||||||
|
color: #FAB387;
|
||||||
|
}
|
||||||
|
markup.code {
|
||||||
|
background-color: rgba(68, 68, 85, 0.5);
|
||||||
|
color: #F0F0EA;
|
||||||
|
}
|
||||||
|
markup.code.delimiter {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
markup.code-block.delimiter {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
markup.code-block.language {
|
||||||
|
color: #CBA6F7;
|
||||||
|
}
|
||||||
|
markup.link {
|
||||||
|
color: #B4BEFE;
|
||||||
|
}
|
||||||
|
markup.link-label {
|
||||||
|
color: #F5B2F7;
|
||||||
|
}
|
||||||
|
markup.link-label.bracket {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
markup.link-label.value.number {
|
||||||
|
color: #FAB387;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Definitionen */
|
||||||
|
definition.class.name,
|
||||||
|
definition.type.name,
|
||||||
|
definition.package.name,
|
||||||
|
definition.enum.name,
|
||||||
|
definition.union.name,
|
||||||
|
definition.struct.name {
|
||||||
|
color: #F9E2AF;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
definition.property.name {
|
||||||
|
color: #F5B2F7;
|
||||||
|
}
|
||||||
|
definition.function.name,
|
||||||
|
definition.method.name {
|
||||||
|
color: #B4BEFE;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tags */
|
||||||
|
tag {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
tag.name {
|
||||||
|
color: #B4BEFE;
|
||||||
|
}
|
||||||
|
tag.attribute.name {
|
||||||
|
color: #F9E2AF;
|
||||||
|
}
|
||||||
|
tag.attribute.operator {
|
||||||
|
color: #AAAABB;
|
||||||
|
}
|
||||||
|
tag.attribute.value {
|
||||||
|
color: #94E2D5;
|
||||||
|
}
|
||||||
|
tag.attribute.value.delimiter {
|
||||||
|
color: #94E2D5;
|
||||||
|
}
|
||||||
|
tag.attribute.value.link {
|
||||||
|
color: #B4BEFE;
|
||||||
|
}
|
||||||
|
tag.framework {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
tag.framework.name {
|
||||||
|
color: #CBA6F7;
|
||||||
|
}
|
||||||
|
tag.framework.name.prefix {
|
||||||
|
color: #F5B2F7;
|
||||||
|
}
|
||||||
|
tag.framework.attribute.name {
|
||||||
|
color: #F5B2F7;
|
||||||
|
}
|
||||||
|
cdata {
|
||||||
|
color: #94E2D5;
|
||||||
|
}
|
||||||
|
cdata.delimiter {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
cdata.label {
|
||||||
|
color: #CBA6F7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Stylesheets */
|
||||||
|
style.at {
|
||||||
|
color: #CBA6F7;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
style.selector.universal {
|
||||||
|
color: #AAAABB;
|
||||||
|
}
|
||||||
|
style.selector.nesting {
|
||||||
|
color: #AAAABB;
|
||||||
|
}
|
||||||
|
style.selector.element {
|
||||||
|
color: #F0F0EA;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
style.selector.id,
|
||||||
|
style.selector.identifier.id {
|
||||||
|
color: #FAB387;
|
||||||
|
}
|
||||||
|
style.selector.id.prefix {
|
||||||
|
color: #FAB387;
|
||||||
|
}
|
||||||
|
style.selector.class,
|
||||||
|
style.selector.identifier.class {
|
||||||
|
color: #F9E2AF;
|
||||||
|
}
|
||||||
|
style.selector.class.prefix {
|
||||||
|
color: #F9E2AF;
|
||||||
|
}
|
||||||
|
style.selector.pseudoclass {
|
||||||
|
color: #F5B2F7;
|
||||||
|
}
|
||||||
|
style.selector.pseudoclass.prefix {
|
||||||
|
color: #F5B2F7;
|
||||||
|
}
|
||||||
|
style.selector.pseudoelement {
|
||||||
|
color: #CBA6F7;
|
||||||
|
}
|
||||||
|
style.selector.pseudoelement.prefix {
|
||||||
|
color: #CBA6F7;
|
||||||
|
}
|
||||||
|
style.selector.placeholder {
|
||||||
|
color: #B4BEFE;
|
||||||
|
}
|
||||||
|
style.selector.placeholder.prefix {
|
||||||
|
color: #B4BEFE;
|
||||||
|
}
|
||||||
|
style.attribute.name {
|
||||||
|
color: #B4BEFE;
|
||||||
|
}
|
||||||
|
style.value.number {
|
||||||
|
color: #FAB387;
|
||||||
|
}
|
||||||
|
style.value.number.unit {
|
||||||
|
color: #777788;
|
||||||
|
}
|
||||||
|
style.value.color.hex {
|
||||||
|
color: #94E2D5;
|
||||||
|
}
|
||||||
|
style.value.color.hex.prefix {
|
||||||
|
color: #94E2D5;
|
||||||
|
}
|
||||||
|
style.value.color.named {
|
||||||
|
color: #94E2D5;
|
||||||
|
}
|
||||||
|
style.value.keyword {
|
||||||
|
color: #CBA6F7;
|
||||||
|
}
|
||||||
|
style.value.identifier.function {
|
||||||
|
color: #B4BEFE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Terminal
|
||||||
|
*/
|
||||||
|
terminal.black {
|
||||||
|
color: #444455; /* darker */
|
||||||
|
}
|
||||||
|
terminal.red {
|
||||||
|
color: #F38BA8; /* red */
|
||||||
|
}
|
||||||
|
terminal.green {
|
||||||
|
color: #94E2D5; /* green */
|
||||||
|
}
|
||||||
|
terminal.yellow {
|
||||||
|
color: #F9E2AF; /* yellow */
|
||||||
|
}
|
||||||
|
terminal.blue {
|
||||||
|
color: #B4BEFE; /* blue */
|
||||||
|
}
|
||||||
|
terminal.magenta {
|
||||||
|
color: #CBA6F7; /* violet */
|
||||||
|
}
|
||||||
|
terminal.cyan {
|
||||||
|
color: #94DAE0; /* abgeleitet: green nach cyan gedreht */
|
||||||
|
}
|
||||||
|
terminal.white {
|
||||||
|
color: #AAAABB; /* grey */
|
||||||
|
}
|
||||||
|
terminal.bright-black {
|
||||||
|
color: #777788; /* dark */
|
||||||
|
}
|
||||||
|
terminal.bright-red {
|
||||||
|
color: #F7B5C8; /* abgeleitet: red heller */
|
||||||
|
}
|
||||||
|
terminal.bright-green {
|
||||||
|
color: #B8EAE1; /* abgeleitet: green heller */
|
||||||
|
}
|
||||||
|
terminal.bright-yellow {
|
||||||
|
color: #FCEECB; /* abgeleitet: yellow heller */
|
||||||
|
}
|
||||||
|
terminal.bright-blue {
|
||||||
|
color: #CDD4FE; /* abgeleitet: blue heller */
|
||||||
|
}
|
||||||
|
terminal.bright-magenta {
|
||||||
|
color: #F5B2F7; /* pink */
|
||||||
|
}
|
||||||
|
terminal.bright-cyan {
|
||||||
|
color: #B8E7EB; /* abgeleitet: cyan heller */
|
||||||
|
}
|
||||||
|
terminal.bright-white {
|
||||||
|
color: #F0F0EA; /* white */
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"identifier": "org.mwx",
|
||||||
|
"name": "mwx",
|
||||||
|
"organization": "mwx",
|
||||||
|
"description": "Dunkles Theme auf Basis der mwxcol-Palette — Fenster, Editor, Syntax und Terminal.",
|
||||||
|
"version": "1.0",
|
||||||
|
"categories": ["themes"]
|
||||||
|
}
|
||||||
@@ -0,0 +1,263 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<!--
|
||||||
|
mwxcol — Xcode-Theme, Palette aus mwxcol.go
|
||||||
|
|
||||||
|
white #F0F0EA 0.941176 0.941176 0.917647
|
||||||
|
yellow #F9E2AF 0.976471 0.886275 0.686275
|
||||||
|
orange #FAB387 0.980392 0.701961 0.529412
|
||||||
|
red #F38BA8 0.952941 0.545098 0.658824
|
||||||
|
green #94E2D5 0.580392 0.886275 0.835294
|
||||||
|
blue #B4BEFE 0.705882 0.745098 0.996078
|
||||||
|
pink #F5B2F7 0.960784 0.698039 0.968627
|
||||||
|
violet #CBA6F7 0.796078 0.65098 0.968627
|
||||||
|
grey #AAAABB 0.666667 0.666667 0.733333
|
||||||
|
dark #777788 0.466667 0.466667 0.533333
|
||||||
|
darker #444455 0.266667 0.266667 0.333333
|
||||||
|
|
||||||
|
Flächen (die einzigen Werte außerhalb der Palette):
|
||||||
|
#15151C Editor — dunkler als der Terminal-Hintergrund, in Xcode gewählt
|
||||||
|
#20202B Auswahl und aktuelle Zeile
|
||||||
|
#252528 Konsole — der Terminal-Hintergrund aus dem iTerm2-Profil
|
||||||
|
#2E2E35 Quick-Help-Kasten (darker mit 30 % über #252528)
|
||||||
|
|
||||||
|
Die Schlüssel stehen alphabetisch, so wie Xcode sie selbst schreibt —
|
||||||
|
wer das Theme in den Einstellungen anfasst, bekommt die Datei ohne diese
|
||||||
|
Kommentare zurückgeschrieben. Siehe README.md, Abschnitt Xcode.
|
||||||
|
-->
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>DVTConsoleDebuggerInputTextColor</key>
|
||||||
|
<string>0.941176 0.941176 0.917647 1</string> <!-- white -->
|
||||||
|
<key>DVTConsoleDebuggerInputTextFont</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>DVTConsoleDebuggerOutputTextColor</key>
|
||||||
|
<string>0.666667 0.666667 0.733333 1</string> <!-- grey -->
|
||||||
|
<key>DVTConsoleDebuggerOutputTextFont</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>DVTConsoleDebuggerPromptTextColor</key>
|
||||||
|
<string>0.580392 0.886275 0.835294 1</string> <!-- green -->
|
||||||
|
<key>DVTConsoleDebuggerPromptTextFont</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>DVTConsoleExectuableInputTextColor</key>
|
||||||
|
<string>0.666667 0.666667 0.733333 1</string> <!-- grey -->
|
||||||
|
<key>DVTConsoleExectuableInputTextFont</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>DVTConsoleExectuableOutputTextColor</key>
|
||||||
|
<string>0.941176 0.941176 0.917647 1</string> <!-- white -->
|
||||||
|
<key>DVTConsoleExectuableOutputTextFont</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>DVTConsoleTextBackgroundColor</key>
|
||||||
|
<string>0.145098 0.145098 0.156863 1</string> <!-- #252528 -->
|
||||||
|
<key>DVTConsoleTextInsertionPointColor</key>
|
||||||
|
<string>0.952941 0.545098 0.658824 1</string> <!-- red -->
|
||||||
|
<key>DVTConsoleTextSelectionColor</key>
|
||||||
|
<string>0.266667 0.266667 0.333333 1</string> <!-- darker -->
|
||||||
|
<key>DVTDebuggerInstructionPointerColor</key>
|
||||||
|
<string>0.580392 0.886275 0.835294 0.25</string> <!-- green, 25 % -->
|
||||||
|
<key>DVTFontAndColorVersion</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>DVTLineSpacing</key>
|
||||||
|
<real>1</real>
|
||||||
|
<key>DVTMarkupTextBackgroundColor</key>
|
||||||
|
<string>0.180392 0.180392 0.207843 1</string> <!-- #2E2E35 -->
|
||||||
|
<key>DVTMarkupTextBorderColor</key>
|
||||||
|
<string>0.266667 0.266667 0.333333 1</string> <!-- darker -->
|
||||||
|
<key>DVTMarkupTextCodeFont</key>
|
||||||
|
<string>HackNFM-Regular - 14.0</string>
|
||||||
|
<key>DVTMarkupTextEmphasisColor</key>
|
||||||
|
<string>0.941176 0.941176 0.917647 1</string> <!-- white -->
|
||||||
|
<key>DVTMarkupTextEmphasisFont</key>
|
||||||
|
<string>.SFNS-RegularItalic - 14.0</string>
|
||||||
|
<key>DVTMarkupTextInlineCodeColor</key>
|
||||||
|
<string>0.666667 0.666667 0.733333 1</string> <!-- grey -->
|
||||||
|
<key>DVTMarkupTextLinkColor</key>
|
||||||
|
<string>0.705882 0.745098 0.996078 1</string> <!-- blue -->
|
||||||
|
<key>DVTMarkupTextLinkFont</key>
|
||||||
|
<string>.SFNS-Regular - 14.0</string>
|
||||||
|
<key>DVTMarkupTextNormalColor</key>
|
||||||
|
<string>0.941176 0.941176 0.917647 1</string> <!-- white -->
|
||||||
|
<key>DVTMarkupTextNormalFont</key>
|
||||||
|
<string>.SFNS-Regular - 14.0</string>
|
||||||
|
<key>DVTMarkupTextOtherHeadingColor</key>
|
||||||
|
<string>0.666667 0.666667 0.733333 1</string> <!-- grey -->
|
||||||
|
<key>DVTMarkupTextOtherHeadingFont</key>
|
||||||
|
<string>.SFNS-Regular - 19.2</string>
|
||||||
|
<key>DVTMarkupTextPrimaryHeadingColor</key>
|
||||||
|
<string>0.941176 0.941176 0.917647 1</string> <!-- white -->
|
||||||
|
<key>DVTMarkupTextPrimaryHeadingFont</key>
|
||||||
|
<string>.SFNS-Regular - 32.2</string>
|
||||||
|
<key>DVTMarkupTextSecondaryHeadingColor</key>
|
||||||
|
<string>0.941176 0.941176 0.917647 1</string> <!-- white -->
|
||||||
|
<key>DVTMarkupTextSecondaryHeadingFont</key>
|
||||||
|
<string>.SFNS-Regular - 24.4</string>
|
||||||
|
<key>DVTMarkupTextStrongColor</key>
|
||||||
|
<string>0.941176 0.941176 0.917647 1</string> <!-- white -->
|
||||||
|
<key>DVTMarkupTextStrongFont</key>
|
||||||
|
<string>.SFNS-Bold - 14.0</string>
|
||||||
|
<key>DVTScrollbarMarkerAnalyzerColor</key>
|
||||||
|
<string>0.796078 0.65098 0.968627 1</string> <!-- violet -->
|
||||||
|
<key>DVTScrollbarMarkerBreakpointColor</key>
|
||||||
|
<string>0.705882 0.745098 0.996078 1</string> <!-- blue -->
|
||||||
|
<key>DVTScrollbarMarkerDiffColor</key>
|
||||||
|
<string>0.666667 0.666667 0.733333 1</string> <!-- grey -->
|
||||||
|
<key>DVTScrollbarMarkerDiffConflictColor</key>
|
||||||
|
<string>0.952941 0.545098 0.658824 1</string> <!-- red -->
|
||||||
|
<key>DVTScrollbarMarkerErrorColor</key>
|
||||||
|
<string>0.952941 0.545098 0.658824 1</string> <!-- red -->
|
||||||
|
<key>DVTScrollbarMarkerRuntimeIssueColor</key>
|
||||||
|
<string>0.980392 0.701961 0.529412 1</string> <!-- orange -->
|
||||||
|
<key>DVTScrollbarMarkerWarningColor</key>
|
||||||
|
<string>0.976471 0.886275 0.686275 1</string> <!-- yellow -->
|
||||||
|
<key>DVTSourceTextBackground</key>
|
||||||
|
<string>0.082353 0.082353 0.109804 1</string> <!-- #15151C -->
|
||||||
|
<key>DVTSourceTextBlockDimBackgroundColor</key>
|
||||||
|
<string>0.466667 0.466667 0.533333 1</string> <!-- dark -->
|
||||||
|
<key>DVTSourceTextCurrentLineHighlightColor</key>
|
||||||
|
<string>0.125490 0.125490 0.168627 1</string> <!-- #20202B -->
|
||||||
|
<key>DVTSourceTextInsertionPointColor</key>
|
||||||
|
<string>0.952941 0.545098 0.658824 1</string> <!-- red -->
|
||||||
|
<key>DVTSourceTextInvisiblesColor</key>
|
||||||
|
<string>0.266667 0.266667 0.333333 1</string> <!-- darker -->
|
||||||
|
<key>DVTSourceTextSelectionColor</key>
|
||||||
|
<string>0.125490 0.125490 0.168627 1</string> <!-- #20202B -->
|
||||||
|
<key>DVTSourceTextSyntaxColors</key>
|
||||||
|
<dict>
|
||||||
|
<key>xcode.syntax.attribute</key>
|
||||||
|
<string>0.580392 0.886275 0.835294 1</string> <!-- green -->
|
||||||
|
<key>xcode.syntax.character</key>
|
||||||
|
<string>0.980392 0.701961 0.529412 1</string> <!-- orange -->
|
||||||
|
<key>xcode.syntax.comment</key>
|
||||||
|
<string>0.466667 0.466667 0.533333 1</string> <!-- dark -->
|
||||||
|
<key>xcode.syntax.comment.doc</key>
|
||||||
|
<string>0.466667 0.466667 0.533333 1</string> <!-- dark -->
|
||||||
|
<key>xcode.syntax.comment.doc.keyword</key>
|
||||||
|
<string>0.666667 0.666667 0.733333 1</string> <!-- grey -->
|
||||||
|
<key>xcode.syntax.declaration.other</key>
|
||||||
|
<string>0.705882 0.745098 0.996078 1</string> <!-- blue -->
|
||||||
|
<key>xcode.syntax.declaration.type</key>
|
||||||
|
<string>0.976471 0.886275 0.686275 1</string> <!-- yellow -->
|
||||||
|
<key>xcode.syntax.identifier.class</key>
|
||||||
|
<string>0.976471 0.886275 0.686275 1</string> <!-- yellow -->
|
||||||
|
<key>xcode.syntax.identifier.class.system</key>
|
||||||
|
<string>0.976471 0.886275 0.686275 1</string> <!-- yellow -->
|
||||||
|
<key>xcode.syntax.identifier.constant</key>
|
||||||
|
<string>0.980392 0.701961 0.529412 1</string> <!-- orange -->
|
||||||
|
<key>xcode.syntax.identifier.constant.system</key>
|
||||||
|
<string>0.980392 0.701961 0.529412 1</string> <!-- orange -->
|
||||||
|
<key>xcode.syntax.identifier.function</key>
|
||||||
|
<string>0.705882 0.745098 0.996078 1</string> <!-- blue -->
|
||||||
|
<key>xcode.syntax.identifier.function.system</key>
|
||||||
|
<string>0.705882 0.745098 0.996078 1</string> <!-- blue -->
|
||||||
|
<key>xcode.syntax.identifier.macro</key>
|
||||||
|
<string>0.980392 0.701961 0.529412 1</string> <!-- orange -->
|
||||||
|
<key>xcode.syntax.identifier.macro.system</key>
|
||||||
|
<string>0.980392 0.701961 0.529412 1</string> <!-- orange -->
|
||||||
|
<key>xcode.syntax.identifier.type</key>
|
||||||
|
<string>0.976471 0.886275 0.686275 1</string> <!-- yellow -->
|
||||||
|
<key>xcode.syntax.identifier.type.system</key>
|
||||||
|
<string>0.976471 0.886275 0.686275 1</string> <!-- yellow -->
|
||||||
|
<key>xcode.syntax.identifier.variable</key>
|
||||||
|
<string>0.941176 0.941176 0.917647 1</string> <!-- white -->
|
||||||
|
<key>xcode.syntax.identifier.variable.system</key>
|
||||||
|
<string>0.941176 0.941176 0.917647 1</string> <!-- white -->
|
||||||
|
<key>xcode.syntax.keyword</key>
|
||||||
|
<string>0.796078 0.65098 0.968627 1</string> <!-- violet -->
|
||||||
|
<key>xcode.syntax.mark</key>
|
||||||
|
<string>0.666667 0.666667 0.733333 1</string> <!-- grey -->
|
||||||
|
<key>xcode.syntax.markup.aside.kind</key>
|
||||||
|
<string>0.976471 0.886275 0.686275 1</string> <!-- yellow -->
|
||||||
|
<key>xcode.syntax.markup.code</key>
|
||||||
|
<string>0.666667 0.666667 0.733333 1</string> <!-- grey -->
|
||||||
|
<key>xcode.syntax.number</key>
|
||||||
|
<string>0.980392 0.701961 0.529412 1</string> <!-- orange -->
|
||||||
|
<key>xcode.syntax.plain</key>
|
||||||
|
<string>0.941176 0.941176 0.917647 1</string> <!-- white -->
|
||||||
|
<key>xcode.syntax.preprocessor</key>
|
||||||
|
<string>0.980392 0.701961 0.529412 1</string> <!-- orange -->
|
||||||
|
<key>xcode.syntax.regex</key>
|
||||||
|
<string>0.960784 0.698039 0.968627 1</string> <!-- pink -->
|
||||||
|
<key>xcode.syntax.regex.capturename</key>
|
||||||
|
<string>0.580392 0.886275 0.835294 1</string> <!-- green -->
|
||||||
|
<key>xcode.syntax.regex.charname</key>
|
||||||
|
<string>0.952941 0.545098 0.658824 1</string> <!-- red -->
|
||||||
|
<key>xcode.syntax.regex.number</key>
|
||||||
|
<string>0.980392 0.701961 0.529412 1</string> <!-- orange -->
|
||||||
|
<key>xcode.syntax.regex.other</key>
|
||||||
|
<string>0.796078 0.65098 0.968627 1</string> <!-- violet -->
|
||||||
|
<key>xcode.syntax.string</key>
|
||||||
|
<string>0.580392 0.886275 0.835294 1</string> <!-- green -->
|
||||||
|
<key>xcode.syntax.url</key>
|
||||||
|
<string>0.705882 0.745098 0.996078 1</string> <!-- blue -->
|
||||||
|
</dict>
|
||||||
|
<key>DVTSourceTextSyntaxFonts</key>
|
||||||
|
<dict>
|
||||||
|
<key>xcode.syntax.attribute</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.character</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.comment</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.comment.doc</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.comment.doc.keyword</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.declaration.other</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.declaration.type</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.identifier.class</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.identifier.class.system</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.identifier.constant</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.identifier.constant.system</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.identifier.function</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.identifier.function.system</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.identifier.macro</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.identifier.macro.system</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.identifier.type</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.identifier.type.system</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.identifier.variable</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.identifier.variable.system</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.keyword</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.mark</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.markup.aside.kind</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.markup.code</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.number</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.plain</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.preprocessor</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.regex</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.regex.capturename</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.regex.charname</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.regex.number</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.regex.other</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.string</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
<key>xcode.syntax.url</key>
|
||||||
|
<string>HackNFM-Regular - 15.0</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
Reference in New Issue
Block a user