feat: add Nord theme for bat

- .config/bat/themes/Nord.tmTheme — full tmTheme covering comments,
  strings, numbers, keywords, functions, types, tags, CSS, markdown,
  diff markup, decorators, regex, YAML/TOML/JSON, shell
- .config/bat/config — sets Nord as default theme
- arty.yml: bat:build task to rebuild cache after cloning dotfiles
- .gitignore: whitelist bat config and theme

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 19:32:33 +02:00
co-authored by Claude Sonnet 4.6
parent af6beaff1e
commit a403cf68f3
4 changed files with 604 additions and 0 deletions
+598
View File
@@ -0,0 +1,598 @@
<?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>name</key>
<string>Nord</string>
<key>semanticClass</key>
<string>theme.dark.nord</string>
<key>uuid</key>
<string>4d9a8a9e-1b2c-4f3a-8e5d-6c7b0a1f2e3d</string>
<key>author</key>
<string>Arctic Ice Studio</string>
<key>colorSpaceName</key>
<string>sRGB</string>
<key>settings</key>
<array>
<!-- ── Global ─────────────────────────────────────────────────────── -->
<dict>
<key>settings</key>
<dict>
<key>background</key>
<string>#2E3440</string>
<key>foreground</key>
<string>#D8DEE9</string>
<key>caret</key>
<string>#D8DEE9</string>
<key>lineHighlight</key>
<string>#3B4252</string>
<key>selection</key>
<string>#434C5E</string>
<key>selectionForeground</key>
<string>#ECEFF4</string>
<key>activeGuide</key>
<string>#4C566A</string>
<key>gutterForeground</key>
<string>#4C566A</string>
<key>findHighlight</key>
<string>#EBCB8B</string>
<key>findHighlightForeground</key>
<string>#2E3440</string>
<key>misspelling</key>
<string>#BF616A</string>
<key>accent</key>
<string>#88C0D0</string>
</dict>
</dict>
<!-- ── Text & Variables ───────────────────────────────────────────── -->
<dict>
<key>name</key>
<string>Text &amp; variable names</string>
<key>scope</key>
<string>text, source, variable.other.readwrite, punctuation.definition.variable</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D8DEE9</string>
</dict>
</dict>
<!-- ── Comments ──────────────────────────────────────────────────── -->
<dict>
<key>name</key>
<string>Comments</string>
<key>scope</key>
<string>comment, punctuation.definition.comment</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4C566A</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<!-- ── Strings ───────────────────────────────────────────────────── -->
<dict>
<key>name</key>
<string>Strings</string>
<key>scope</key>
<string>string, punctuation.definition.string</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#A3BE8C</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String escape characters</string>
<key>scope</key>
<string>constant.character.escape, constant.character.escape.sequence</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#EBCB8B</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String interpolation / template expressions</string>
<key>scope</key>
<string>punctuation.section.embedded, variable.other.interpolated, meta.interpolation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#88C0D0</string>
</dict>
</dict>
<!-- ── Numbers & Constants ───────────────────────────────────────── -->
<dict>
<key>name</key>
<string>Numbers</string>
<key>scope</key>
<string>constant.numeric</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#B48EAD</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Constants &amp; booleans</string>
<key>scope</key>
<string>constant.language, constant.language.boolean, constant.language.true, constant.language.false, constant.language.null, constant.language.undefined, variable.other.constant, entity.name.constant</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#B48EAD</string>
</dict>
</dict>
<!-- ── Keywords ──────────────────────────────────────────────────── -->
<dict>
<key>name</key>
<string>Keywords</string>
<key>scope</key>
<string>keyword, keyword.control, keyword.other, punctuation.definition.keyword</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81A1C1</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Keyword operators (new, instanceof, typeof, …)</string>
<key>scope</key>
<string>keyword.operator.new, keyword.operator.word, keyword.operator.delete, keyword.operator.typeof, keyword.operator.void</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81A1C1</string>
</dict>
</dict>
<!-- ── Operators & Punctuation ───────────────────────────────────── -->
<dict>
<key>name</key>
<string>Operators</string>
<key>scope</key>
<string>keyword.operator, punctuation.accessor, punctuation.definition.generic, punctuation.separator.key-value, punctuation.definition.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81A1C1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation</string>
<key>scope</key>
<string>punctuation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ECEFF4</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<!-- ── Storage / Types ───────────────────────────────────────────── -->
<dict>
<key>name</key>
<string>Storage types &amp; modifiers</string>
<key>scope</key>
<string>storage, storage.type, storage.modifier, support.type.primitive</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81A1C1</string>
</dict>
</dict>
<!-- ── Functions ─────────────────────────────────────────────────── -->
<dict>
<key>name</key>
<string>Function names</string>
<key>scope</key>
<string>entity.name.function, meta.function-call, meta.function-call.method, variable.function, support.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#88C0D0</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function parameters</string>
<key>scope</key>
<string>variable.parameter, meta.function.parameters variable.other</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D8DEE9</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<!-- ── Classes & Types ───────────────────────────────────────────── -->
<dict>
<key>name</key>
<string>Class &amp; type names</string>
<key>scope</key>
<string>entity.name.class, entity.name.type, entity.other.inherited-class, support.class, support.type</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8FBCBB</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Type annotations &amp; generics</string>
<key>scope</key>
<string>meta.type.annotation, meta.type.parameters, entity.name.type.instance</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8FBCBB</string>
</dict>
</dict>
<!-- ── Namespaces & Modules ──────────────────────────────────────── -->
<dict>
<key>name</key>
<string>Namespaces &amp; modules</string>
<key>scope</key>
<string>entity.name.namespace, entity.name.module, support.module</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8FBCBB</string>
</dict>
</dict>
<!-- ── Tags (HTML / XML / JSX) ──────────────────────────────────── -->
<dict>
<key>name</key>
<string>Tag names</string>
<key>scope</key>
<string>entity.name.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81A1C1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag attributes</string>
<key>scope</key>
<string>entity.other.attribute-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8FBCBB</string>
</dict>
</dict>
<!-- ── CSS ───────────────────────────────────────────────────────── -->
<dict>
<key>name</key>
<string>CSS property names</string>
<key>scope</key>
<string>support.type.property-name.css, support.type.property-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8FBCBB</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS property values</string>
<key>scope</key>
<string>support.constant.property-value, meta.property-value</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D8DEE9</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS selectors</string>
<key>scope</key>
<string>entity.other.attribute-name.class.css, entity.other.attribute-name.id.css, entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.pseudo-element.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D08770</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS units &amp; numeric values</string>
<key>scope</key>
<string>keyword.other.unit, constant.numeric.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#B48EAD</string>
</dict>
</dict>
<!-- ── Markup (Markdown / RST) ──────────────────────────────────── -->
<dict>
<key>name</key>
<string>Markdown headings</string>
<key>scope</key>
<string>markup.heading, entity.name.section, punctuation.definition.heading</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#88C0D0</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown bold</string>
<key>scope</key>
<string>markup.bold</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ECEFF4</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown italic</string>
<key>scope</key>
<string>markup.italic</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ECEFF4</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown inline code</string>
<key>scope</key>
<string>markup.inline.raw, markup.raw.inline</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#A3BE8C</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown code blocks</string>
<key>scope</key>
<string>markup.fenced_code.block, markup.raw.block</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#A3BE8C</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown links</string>
<key>scope</key>
<string>markup.underline.link, string.other.link</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#88C0D0</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown link text</string>
<key>scope</key>
<string>meta.link.inline, meta.link.reference</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81A1C1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown list punctuation</string>
<key>scope</key>
<string>punctuation.definition.list.begin.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D08770</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown blockquote</string>
<key>scope</key>
<string>markup.quote, punctuation.definition.blockquote</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4C566A</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markup inserted (diff +)</string>
<key>scope</key>
<string>markup.inserted</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#A3BE8C</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markup deleted (diff -)</string>
<key>scope</key>
<string>markup.deleted</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#BF616A</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markup changed (diff ~)</string>
<key>scope</key>
<string>markup.changed</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#EBCB8B</string>
</dict>
</dict>
<!-- ── Errors & Invalid ──────────────────────────────────────────── -->
<dict>
<key>name</key>
<string>Invalid / deprecated</string>
<key>scope</key>
<string>invalid, invalid.illegal, invalid.deprecated</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#BF616A</string>
</dict>
</dict>
<!-- ── Language-specific ─────────────────────────────────────────── -->
<dict>
<key>name</key>
<string>Decorators &amp; annotations</string>
<key>scope</key>
<string>meta.decorator, punctuation.decorator, entity.name.function.decorator, support.type.decorator</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D08770</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regular expressions</string>
<key>scope</key>
<string>string.regexp, constant.other.character-class.regexp, constant.character.escape.backslash.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#EBCB8B</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>YAML keys</string>
<key>scope</key>
<string>entity.name.tag.yaml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8FBCBB</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>TOML keys</string>
<key>scope</key>
<string>keyword.key.toml, support.type.property-name.toml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8FBCBB</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JSON keys</string>
<key>scope</key>
<string>support.type.property-name.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8FBCBB</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell variables</string>
<key>scope</key>
<string>variable.other.normal.shell, variable.other.bracket.shell, punctuation.definition.variable.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D8DEE9</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell built-ins</string>
<key>scope</key>
<string>support.function.builtin.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81A1C1</string>
</dict>
</dict>
</array>
</dict>
</plist>