summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
m---------mac/.config/yazi/flavors0
-rw-r--r--mac/.config/yazi/flavors.bak/.gitignore1
m---------mac/.config/yazi/flavors.bak/ayu-dark.yazi0
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE21
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE-tmtheme21
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/README.md36
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/flavor.toml189
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/preview.pngbin0 -> 587309 bytes
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/tmtheme.xml2112
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/LICENSE21
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/LICENSE-tmtheme21
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/README.md36
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/flavor.toml189
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/preview.pngbin0 -> 734865 bytes
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/tmtheme.xml2112
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/LICENSE21
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/LICENSE-tmtheme21
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/README.md36
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/flavor.toml189
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/preview.pngbin0 -> 690459 bytes
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/tmtheme.xml2112
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/LICENSE21
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/LICENSE-tmtheme21
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/README.md36
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/flavor.toml189
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/preview.pngbin0 -> 675868 bytes
-rw-r--r--mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/tmtheme.xml2112
-rw-r--r--mac/.config/yazi/flavors.bak/dracula.yazi/LICENSE21
-rw-r--r--mac/.config/yazi/flavors.bak/dracula.yazi/LICENSE-tmtheme21
-rw-r--r--mac/.config/yazi/flavors.bak/dracula.yazi/README.md36
-rw-r--r--mac/.config/yazi/flavors.bak/dracula.yazi/flavor.toml189
-rw-r--r--mac/.config/yazi/flavors.bak/dracula.yazi/preview.pngbin0 -> 855046 bytes
-rw-r--r--mac/.config/yazi/flavors.bak/dracula.yazi/tmtheme.xml940
m---------mac/.config/yazi/flavors.bak/everforest-medium.yazi0
m---------mac/.config/yazi/flavors.bak/gruvbox-dark.yazi0
m---------mac/.config/yazi/flavors.bak/kanagawa-dragon.yazi0
m---------mac/.config/yazi/flavors.bak/kanagawa-lotus.yazi0
m---------mac/.config/yazi/flavors.bak/kanagawa.yazi0
m---------mac/.config/yazi/flavors.bak/rose-pine-moon.yazi0
m---------mac/.config/yazi/flavors.bak/rose-pine.yazi0
-rw-r--r--mac/.config/yazi/flavors.bak/scripts/README.md36
-rw-r--r--mac/.config/yazi/flavors.bak/scripts/generate.js169
-rw-r--r--mac/.config/yazi/flavors.bak/scripts/template.toml189
m---------mac/.config/yazi/flavors.bak/tokyo-night.yazi0
m---------mac/.config/yazi/flavors.bak/vscode-dark-modern.yazi0
m---------mac/.config/yazi/flavors.bak/vscode-dark-plus.yazi0
m---------mac/.config/yazi/flavors.bak/vscode-light-modern.yazi0
m---------mac/.config/yazi/flavors.bak/vscode-light-plus.yazi0
m---------mac/.config/yazi/plugins0
-rw-r--r--mac/.config/yazi/plugins.bak/chmod.yazi/README.md28
-rw-r--r--mac/.config/yazi/plugins.bak/chmod.yazi/main.lua42
-rw-r--r--mac/.config/yazi/plugins.bak/diff.yazi/README.md28
-rw-r--r--mac/.config/yazi/plugins.bak/diff.yazi/main.lua41
-rw-r--r--mac/.config/yazi/plugins.bak/full-border.yazi/README.md32
-rw-r--r--mac/.config/yazi/plugins.bak/full-border.yazi/main.lua43
-rw-r--r--mac/.config/yazi/plugins.bak/git.yazi/README.md78
-rw-r--r--mac/.config/yazi/plugins.bak/git.yazi/main.lua261
-rw-r--r--mac/.config/yazi/plugins.bak/git.yazi/types.lua12
-rw-r--r--mac/.config/yazi/plugins.bak/jump-to-char.yazi/README.md28
-rw-r--r--mac/.config/yazi/plugins.bak/jump-to-char.yazi/main.lua32
-rw-r--r--mac/.config/yazi/plugins.bak/lsar.yazi/README.md43
-rw-r--r--mac/.config/yazi/plugins.bak/lsar.yazi/main.lua43
-rw-r--r--mac/.config/yazi/plugins.bak/mactag.yazi/README.md79
-rw-r--r--mac/.config/yazi/plugins.bak/mactag.yazi/main.lua105
-rw-r--r--mac/.config/yazi/plugins.bak/mime-ext.yazi/README.md56
-rw-r--r--mac/.config/yazi/plugins.bak/mime-ext.yazi/main.lua1126
-rw-r--r--mac/.config/yazi/plugins.bak/mount.yazi/README.md48
-rw-r--r--mac/.config/yazi/plugins.bak/mount.yazi/main.lua304
-rw-r--r--mac/.config/yazi/plugins.bak/piper.yazi/README.md90
-rw-r--r--mac/.config/yazi/plugins.bak/piper.yazi/main.lua70
-rw-r--r--mac/.config/yazi/plugins.bak/smart-enter.yazi/README.md40
-rw-r--r--mac/.config/yazi/plugins.bak/smart-enter.yazi/main.lua11
-rw-r--r--mac/.config/yazi/plugins.bak/smart-filter.yazi/README.md28
-rw-r--r--mac/.config/yazi/plugins.bak/smart-filter.yazi/main.lua51
-rw-r--r--mac/.config/yazi/plugins.bak/smart-paste.yazi/LICENSE1
-rw-r--r--mac/.config/yazi/plugins.bak/smart-paste.yazi/README.md26
-rw-r--r--mac/.config/yazi/plugins.bak/smart-paste.yazi/main.lua14
-rw-r--r--mac/.config/yazi/plugins.bak/sudo-demo.yazi/README.md25
-rw-r--r--mac/.config/yazi/plugins.bak/sudo-demo.yazi/main.lua45
-rw-r--r--mac/.config/yazi/plugins.bak/toggle-pane.yazi/README.md78
-rw-r--r--mac/.config/yazi/plugins.bak/toggle-pane.yazi/main.lua45
-rw-r--r--mac/.config/yazi/plugins.bak/zoom.yazi/README.md56
-rw-r--r--mac/.config/yazi/plugins.bak/zoom.yazi/main.lua119
83 files changed, 14246 insertions, 0 deletions
diff --git a/mac/.config/yazi/flavors b/mac/.config/yazi/flavors
deleted file mode 160000
-Subproject 4296a380570399e3c36aec054f37aa48f35cf6b
diff --git a/mac/.config/yazi/flavors.bak/.gitignore b/mac/.config/yazi/flavors.bak/.gitignore
new file mode 100644
index 0000000..40b878d
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/.gitignore
@@ -0,0 +1 @@
+node_modules/ \ No newline at end of file
diff --git a/mac/.config/yazi/flavors.bak/ayu-dark.yazi b/mac/.config/yazi/flavors.bak/ayu-dark.yazi
new file mode 160000
+Subproject 648a178cad2bc83f9c3f6340ab30f54a67f36ea
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE b/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE
new file mode 100644
index 0000000..fb5b1d6
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 yazi-rs
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE-tmtheme b/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE-tmtheme
new file mode 100644
index 0000000..006383b
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE-tmtheme
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 Catppuccin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/README.md b/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/README.md
new file mode 100644
index 0000000..737a6aa
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/README.md
@@ -0,0 +1,36 @@
+<div align="center">
+ <img src="https://github.com/sxyazi/yazi/blob/main/assets/logo.png?raw=true" alt="Yazi logo" width="20%">
+</div>
+
+<h3 align="center">
+ Catppuccin Frappe Flavor for <a href="https://github.com/sxyazi/yazi">Yazi</a>
+</h3>
+
+## 👀 Preview
+
+<img src="preview.png" width="600" />
+
+## 🎨 Installation
+
+```sh
+ya pkg add yazi-rs/flavors:catppuccin-frappe
+```
+
+## ⚙️ Usage
+
+Set the content of your `theme.toml` to enable it as your _dark_ flavor:
+
+```toml
+[flavor]
+dark = "catppuccin-frappe"
+```
+
+Make sure your `theme.toml` doesn't contain anything other than `[flavor]`, unless you want to override certain styles of this flavor.
+
+See the [Yazi flavor documentation](https://yazi-rs.github.io/docs/flavors/overview) for more details.
+
+## 📜 License
+
+The flavor is MIT-licensed, and the included tmTheme is also MIT-licensed.
+
+Check the [LICENSE](LICENSE) and [LICENSE-tmtheme](LICENSE-tmtheme) file for more details.
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/flavor.toml b/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/flavor.toml
new file mode 100644
index 0000000..bb32478
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/flavor.toml
@@ -0,0 +1,189 @@
+# vim:fileencoding=utf-8:foldmethod=marker
+
+# : Manager {{{
+
+[mgr]
+cwd = { fg = "#81c8be" }
+
+# Hovered
+hovered = { reversed = true }
+preview_hovered = { underline = true }
+
+# Find
+find_keyword = { fg = "#e5c890", bold = true, italic = true, underline = true }
+find_position = { fg = "#f4b8e4", bg = "reset", bold = true, italic = true }
+
+# Marker
+marker_copied = { fg = "#a6d189", bg = "#a6d189" }
+marker_cut = { fg = "#e78284", bg = "#e78284" }
+marker_marked = { fg = "#81c8be", bg = "#81c8be" }
+marker_selected = { fg = "#e5c890", bg = "#e5c890" }
+
+# Count
+count_copied = { fg = "#303446", bg = "#a6d189" }
+count_cut = { fg = "#303446", bg = "#e78284" }
+count_selected = { fg = "#303446", bg = "#e5c890" }
+
+# Border
+border_symbol = "│"
+border_style = { fg = "#838ba7" }
+
+# : }}}
+
+
+# : Tabs {{{
+
+[tabs]
+active = { fg = "#303446", bg = "#8caaee", bold = true }
+inactive = { fg = "#8caaee", bg = "#414559" }
+
+# : }}}
+
+
+# : Mode {{{
+
+[mode]
+
+normal_main = { fg = "#303446", bg = "#8caaee", bold = true }
+normal_alt = { fg = "#8caaee", bg = "#414559" }
+
+# Select mode
+select_main = { fg = "#303446", bg = "#81c8be", bold = true }
+select_alt = { fg = "#81c8be", bg = "#414559" }
+
+# Unset mode
+unset_main = { fg = "#303446", bg = "#eebebe", bold = true }
+unset_alt = { fg = "#eebebe", bg = "#414559" }
+
+# : }}}
+
+
+# : Status bar {{{
+
+[status]
+# Permissions
+perm_sep = { fg = "#838ba7" }
+perm_type = { fg = "#8caaee" }
+perm_read = { fg = "#e5c890" }
+perm_write = { fg = "#e78284" }
+perm_exec = { fg = "#a6d189" }
+
+# Progress
+progress_label = { fg = "#ffffff", bold = true }
+progress_normal = { fg = "#8caaee", bg = "#51576d" }
+progress_error = { fg = "#8caaee", bg = "#e78284" }
+
+# : }}}
+
+
+# : Pick {{{
+
+[pick]
+border = { fg = "#8caaee" }
+active = { fg = "#f4b8e4", bold = true }
+inactive = {}
+
+# : }}}
+
+
+# : Input {{{
+
+[input]
+border = { fg = "#8caaee" }
+title = {}
+value = {}
+selected = { reversed = true }
+
+# : }}}
+
+
+# : Completion {{{
+
+[cmp]
+border = { fg = "#8caaee" }
+
+# : }}}
+
+
+# : Tasks {{{
+
+[tasks]
+border = { fg = "#8caaee" }
+title = {}
+hovered = { fg = "#f4b8e4", bold = true }
+
+# : }}}
+
+
+# : Which {{{
+
+[which]
+mask = { bg = "#414559" }
+cand = { fg = "#81c8be" }
+rest = { fg = "#949cbb" }
+desc = { fg = "#f4b8e4" }
+separator = "  "
+separator_style = { fg = "#626880" }
+
+# : }}}
+
+
+# : Help {{{
+
+[help]
+on = { fg = "#81c8be" }
+run = { fg = "#f4b8e4" }
+hovered = { reversed = true, bold = true }
+footer = { fg = "#414559", bg = "#c6d0f5" }
+
+# : }}}
+
+
+# : Spotter {{{
+
+[spot]
+border = { fg = "#8caaee" }
+title = { fg = "#8caaee" }
+tbl_col = { fg = "#81c8be" }
+tbl_cell = { fg = "#f4b8e4", bg = "#51576d" }
+
+# : }}}
+
+
+# : Notification {{{
+
+[notify]
+title_info = { fg = "#a6d189" }
+title_warn = { fg = "#e5c890" }
+title_error = { fg = "#e78284" }
+
+# : }}}
+
+
+# : File-specific styles {{{
+
+[filetype]
+
+rules = [
+ # Images
+ { mime = "image/*", fg = "#81c8be" },
+
+ # Media
+ { mime = "{audio,video}/*", fg = "#e5c890" },
+
+ # Archives
+ { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "#f4b8e4" },
+
+ # Documents
+ { mime = "application/{pdf,doc,rtf}", fg = "#a6d189" },
+
+ # Fallback
+ { url = "*", fg = "#c6d0f5" },
+ { url = "*/", fg = "#8caaee" },
+
+ # TODO: remove
+ { name = "*", fg = "#c6d0f5" },
+ { name = "*/", fg = "#8caaee" }
+]
+
+# : }}}
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/preview.png b/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/preview.png
new file mode 100644
index 0000000..03203c9
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/preview.png
Binary files differ
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/tmtheme.xml b/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/tmtheme.xml
new file mode 100644
index 0000000..6d0a97f
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/tmtheme.xml
@@ -0,0 +1,2112 @@
+<?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>Catppuccin Frappé</string>
+ <key>semanticClass</key>
+ <string>theme.dark.catppuccin-frappé</string>
+ <key>uuid</key>
+ <string>e0ada983-8938-490c-86f0-97a1a0ec58e4</string>
+ <key>author</key>
+ <string>Catppuccin Org</string>
+ <key>colorSpaceName</key>
+ <string>sRGB</string>
+ <key>settings</key>
+ <array>
+ <dict>
+ <key>settings</key>
+ <dict>
+ <key>background</key>
+ <string>#303446</string>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ <key>caret</key>
+ <string>#f2d5cf</string>
+ <key>lineHighlight</key>
+ <string>#414559</string>
+ <key>misspelling</key>
+ <string>#e78284</string>
+ <key>accent</key>
+ <string>#ca9ee6</string>
+ <key>selection</key>
+ <string>#949cbb40</string>
+ <key>activeGuide</key>
+ <string>#51576d</string>
+ <key>findHighlight</key>
+ <string>#506373</string>
+ <key>gutterForeground</key>
+ <string>#838ba7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Basic text &amp; variable names (incl. leading punctuation)</string>
+ <key>scope</key>
+ <string>text, source, variable.other.readwrite, punctuation.definition.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Parentheses, Brackets, Braces</string>
+ <key>scope</key>
+ <string>punctuation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#949cbb</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Comments</string>
+ <key>scope</key>
+ <string>comment, punctuation.definition.comment</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#949cbb</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>string, punctuation.definition.string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6d189</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>constant.character.escape</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Booleans, constants, numbers</string>
+ <key>scope</key>
+ <string>constant.numeric, variable.other.constant, entity.name.constant, constant.language.boolean, constant.language.false, constant.language.true, keyword.other.unit.user-defined, keyword.other.unit.suffix.floating-point</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.name.tag.documentation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Punctuation</string>
+ <key>scope</key>
+ <string>keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Classes</string>
+ <key>scope</key>
+ <string>entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Enum</string>
+ <key>scope</key>
+ <string>entity.name.enum</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Enum member</string>
+ <key>scope</key>
+ <string>meta.enum variable.other.readwrite, variable.other.enummember</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Object properties</string>
+ <key>scope</key>
+ <string>meta.property.object</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Types</string>
+ <key>scope</key>
+ <string>meta.type, meta.type-alias, support.type, entity.name.type</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Decorators</string>
+ <key>scope</key>
+ <string>meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>variable.parameter, meta.function.parameters</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea999c</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Built-ins</string>
+ <key>scope</key>
+ <string>constant.language, support.function.builtin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e78284</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.other.attribute-name.documentation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e78284</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Preprocessor directives</string>
+ <key>scope</key>
+ <string>keyword.control.directive, punctuation.definition.directive</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Type parameters</string>
+ <key>scope</key>
+ <string>punctuation.definition.typeparameters</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#99d1db</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Namespaces</string>
+ <key>scope</key>
+ <string>entity.name.namespace</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Property names (left hand assignments in json/yaml/css)</string>
+ <key>scope</key>
+ <string>support.type.property-name.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>This/Self keyword</string>
+ <key>scope</key>
+ <string>variable.language.this, variable.language.this punctuation.definition.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e78284</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Object properties</string>
+ <key>scope</key>
+ <string>variable.object.property</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>String template interpolation</string>
+ <key>scope</key>
+ <string>string.template variable, string variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>`new` as bold</string>
+ <key>scope</key>
+ <string>keyword.operator.new</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ extern keyword</string>
+ <key>scope</key>
+ <string>storage.modifier.specifier.extern.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ scope resolution</string>
+ <key>scope</key>
+ <string>entity.name.scope-resolution.template.call.cpp, entity.name.scope-resolution.parameter.cpp, entity.name.scope-resolution.cpp, entity.name.scope-resolution.function.definition.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ doc keywords</string>
+ <key>scope</key>
+ <string>storage.type.class.doxygen</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ operators</string>
+ <key>scope</key>
+ <string>storage.modifier.reference.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C# Interpolated Strings</string>
+ <key>scope</key>
+ <string>meta.interpolation.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C# xml-style docs</string>
+ <key>scope</key>
+ <string>comment.block.documentation.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Classes, reflecting the className color in JSX</string>
+ <key>scope</key>
+ <string>source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Operators</string>
+ <key>scope</key>
+ <string>punctuation.separator.operator.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Pseudo classes</string>
+ <key>scope</key>
+ <string>source.css entity.other.attribute-name.pseudo-class</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.css constant.other.unicode-range</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.css variable.parameter.url</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6d189</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS vendored property names</string>
+ <key>scope</key>
+ <string>support.type.vendored.property-name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#99d1db</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Less/SCSS right-hand variables (@/$-prefixed)</string>
+ <key>scope</key>
+ <string>source.css meta.property-value variable, source.css meta.property-value variable.other.less, source.css meta.property-value variable.other.less punctuation.definition.variable.less, meta.definition.variable.scss</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea999c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS variables (--prefixed)</string>
+ <key>scope</key>
+ <string>source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS Percentage values, styled the same as numbers</string>
+ <key>scope</key>
+ <string>keyword.other.unit.percentage.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS Attribute selectors, styled the same as strings</string>
+ <key>scope</key>
+ <string>source.css meta.attribute-selector</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6d189</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON/YAML keys, other left-hand assignments</string>
+ <key>scope</key>
+ <string>keyword.other.definition.ini, punctuation.support.type.property-name.json, support.type.property-name.json, punctuation.support.type.property-name.toml, support.type.property-name.toml, entity.name.tag.yaml, punctuation.support.type.property-name.yaml, support.type.property-name.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON/YAML constants</string>
+ <key>scope</key>
+ <string>constant.language.json, constant.language.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML anchors</string>
+ <key>scope</key>
+ <string>entity.name.type.anchor.yaml, variable.other.alias.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TOML tables / ini groups</string>
+ <key>scope</key>
+ <string>support.type.property-name.table, entity.name.section.group-title.ini</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TOML dates</string>
+ <key>scope</key>
+ <string>constant.other.time.datetime.offset.toml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML anchor puctuation</string>
+ <key>scope</key>
+ <string>punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML triple dashes</string>
+ <key>scope</key>
+ <string>entity.other.document.begin.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markup Diff</string>
+ <key>scope</key>
+ <string>markup.changed.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff</string>
+ <key>scope</key>
+ <string>meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff Inserted</string>
+ <key>scope</key>
+ <string>markup.inserted.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6d189</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff Deleted</string>
+ <key>scope</key>
+ <string>markup.deleted.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e78284</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>dotenv left-hand side assignments</string>
+ <key>scope</key>
+ <string>variable.other.env</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>dotenv reference to existing env variable</string>
+ <key>scope</key>
+ <string>string.quoted variable.other.env</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GDScript functions</string>
+ <key>scope</key>
+ <string>support.function.builtin.gdscript</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GDScript constants</string>
+ <key>scope</key>
+ <string>constant.language.gdscript</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Comment keywords</string>
+ <key>scope</key>
+ <string>comment meta.annotation.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea999c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>go:embed, go:build, etc.</string>
+ <key>scope</key>
+ <string>comment meta.annotation.parameters.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Go constants (nil, true, false)</string>
+ <key>scope</key>
+ <string>constant.language.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL variables</string>
+ <key>scope</key>
+ <string>variable.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL aliases</string>
+ <key>scope</key>
+ <string>string.unquoted.alias.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eebebe</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL enum members</string>
+ <key>scope</key>
+ <string>constant.character.enum.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL field in types</string>
+ <key>scope</key>
+ <string>meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eebebe</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML DOCTYPE as keyword</string>
+ <key>scope</key>
+ <string>keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML-like &lt;tags/&gt;</string>
+ <key>scope</key>
+ <string>entity.name.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Special characters like &amp;amp;</string>
+ <key>scope</key>
+ <string>text.html constant.character.entity, text.html constant.character.entity punctuation, constant.character.entity.xml, constant.character.entity.xml punctuation, constant.character.entity.js.jsx, constant.charactger.entity.js.jsx punctuation, constant.character.entity.tsx, constant.character.entity.tsx punctuation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e78284</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML tag attribute values</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Components</string>
+ <key>scope</key>
+ <string>support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Annotations</string>
+ <key>scope</key>
+ <string>punctuation.definition.annotation, storage.type.annotation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Java enums</string>
+ <key>scope</key>
+ <string>constant.other.enum.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Java imports</string>
+ <key>scope</key>
+ <string>storage.modifier.import.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Javadoc</string>
+ <key>scope</key>
+ <string>comment.block.javadoc.java keyword.other.documentation.javadoc.java</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Exported Variable</string>
+ <key>scope</key>
+ <string>meta.export variable.other.readwrite.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea999c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JS/TS constants &amp; properties</string>
+ <key>scope</key>
+ <string>variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSDoc; these are mainly params, so styled as such</string>
+ <key>scope</key>
+ <string>variable.other.jsdoc, comment.block.documentation variable.other</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea999c</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSDoc keywords</string>
+ <key>scope</key>
+ <string>storage.type.class.jsdoc</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>support.type.object.console.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Node constants as keywords (module, etc.)</string>
+ <key>scope</key>
+ <string>support.constant.node, support.type.object.module.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>implements as keyword</string>
+ <key>scope</key>
+ <string>storage.modifier.implements</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Builtin types</string>
+ <key>scope</key>
+ <string>constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>variable.parameter.generic</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Arrow functions</string>
+ <key>scope</key>
+ <string>keyword.declaration.function.arrow.js, storage.type.function.arrow.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)</string>
+ <key>scope</key>
+ <string>punctuation.decorator.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Extra JS/TS keywords</string>
+ <key>scope</key>
+ <string>keyword.operator.expression.in.js, keyword.operator.expression.in.ts, keyword.operator.expression.infer.ts, keyword.operator.expression.instanceof.js, keyword.operator.expression.instanceof.ts, keyword.operator.expression.is, keyword.operator.expression.keyof.ts, keyword.operator.expression.of.js, keyword.operator.expression.of.ts, keyword.operator.expression.typeof.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia macros</string>
+ <key>scope</key>
+ <string>support.function.macro.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia language constants (true, false)</string>
+ <key>scope</key>
+ <string>constant.language.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia other constants (these seem to be arguments inside arrays)</string>
+ <key>scope</key>
+ <string>constant.other.symbol.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea999c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX preamble</string>
+ <key>scope</key>
+ <string>text.tex keyword.control.preamble</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX be functions</string>
+ <key>scope</key>
+ <string>text.tex support.function.be</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#99d1db</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX math</string>
+ <key>scope</key>
+ <string>constant.other.general.math.tex</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eebebe</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Liquid Builtin Objects &amp; User Defined Variables</string>
+ <key>scope</key>
+ <string>variable.language.liquid</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Lua docstring keywords</string>
+ <key>scope</key>
+ <string>comment.line.double-dash.documentation.lua storage.type.annotation.lua</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Lua docstring variables</string>
+ <key>scope</key>
+ <string>comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.1.markdown punctuation.definition.heading.markdown, heading.1.markdown, heading.1.quarto punctuation.definition.heading.quarto, heading.1.quarto, markup.heading.atx.1.mdx, markup.heading.atx.1.mdx punctuation.definition.heading.mdx, markup.heading.setext.1.markdown, markup.heading.heading-0.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e78284</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.2.markdown punctuation.definition.heading.markdown, heading.2.markdown, heading.2.quarto punctuation.definition.heading.quarto, heading.2.quarto, markup.heading.atx.2.mdx, markup.heading.atx.2.mdx punctuation.definition.heading.mdx, markup.heading.setext.2.markdown, markup.heading.heading-1.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.3.markdown punctuation.definition.heading.markdown, heading.3.markdown, heading.3.quarto punctuation.definition.heading.quarto, heading.3.quarto, markup.heading.atx.3.mdx, markup.heading.atx.3.mdx punctuation.definition.heading.mdx, markup.heading.heading-2.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.4.markdown punctuation.definition.heading.markdown, heading.4.markdown, heading.4.quarto punctuation.definition.heading.quarto, heading.4.quarto, markup.heading.atx.4.mdx, markup.heading.atx.4.mdx punctuation.definition.heading.mdx, markup.heading.heading-3.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6d189</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.5.markdown punctuation.definition.heading.markdown, heading.5.markdown, heading.5.quarto punctuation.definition.heading.quarto, heading.5.quarto, markup.heading.atx.5.mdx, markup.heading.atx.5.mdx punctuation.definition.heading.mdx, markup.heading.heading-4.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#85c1dc</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.6.markdown punctuation.definition.heading.markdown, heading.6.markdown, heading.6.quarto punctuation.definition.heading.quarto, heading.6.quarto, markup.heading.atx.6.mdx, markup.heading.atx.6.mdx punctuation.definition.heading.mdx, markup.heading.heading-5.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#babbf1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.bold</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e78284</string>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.italic</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e78284</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.strikethrough</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a5adce</string>
+ <key>fontStyle</key>
+ <string>strikethrough</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown auto links</string>
+ <key>scope</key>
+ <string>punctuation.definition.link, markup.underline.link</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown links</string>
+ <key>scope</key>
+ <string>text.html.markdown punctuation.definition.link.title, text.html.quarto punctuation.definition.link.title, string.other.link.title.markdown, string.other.link.title.quarto, markup.link, punctuation.definition.constant.markdown, punctuation.definition.constant.quarto, constant.other.reference.link.markdown, constant.other.reference.link.quarto, markup.substitution.attribute-reference</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#babbf1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown code spans</string>
+ <key>scope</key>
+ <string>punctuation.definition.raw.markdown, punctuation.definition.raw.quarto, markup.inline.raw.string.markdown, markup.inline.raw.string.quarto, markup.raw.block.markdown, markup.raw.block.quarto</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6d189</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown triple backtick language identifier</string>
+ <key>scope</key>
+ <string>fenced_code.block.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#99d1db</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown triple backticks</string>
+ <key>scope</key>
+ <string>markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#949cbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown quotes</string>
+ <key>scope</key>
+ <string>markup.quote, punctuation.definition.quote.begin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown separators</string>
+ <key>scope</key>
+ <string>meta.separator.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown list bullets</string>
+ <key>scope</key>
+ <string>punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Quarto headings</string>
+ <key>scope</key>
+ <string>markup.heading.quarto</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix attribute names</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix parameter names</string>
+ <key>scope</key>
+ <string>variable.parameter.name.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix interpolated parameter names</string>
+ <key>scope</key>
+ <string>meta.embedded variable.parameter.name.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#babbf1</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix paths</string>
+ <key>scope</key>
+ <string>string.unquoted.path.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Attributes</string>
+ <key>scope</key>
+ <string>support.attribute.builtin, meta.attribute.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Parameters (needed for the leading dollar sign)</string>
+ <key>scope</key>
+ <string>meta.function.parameters.php punctuation.definition.variable.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea999c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Constants (null, __FILE__, etc.)</string>
+ <key>scope</key>
+ <string>constant.language.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP functions</string>
+ <key>scope</key>
+ <string>text.html.php support.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#99d1db</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHPdoc keywords</string>
+ <key>scope</key>
+ <string>keyword.other.phpdoc.php</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python argument functions reset to text, otherwise they inherit blue from function-call</string>
+ <key>scope</key>
+ <string>support.variable.magic.python, meta.function-call.arguments.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python double underscore functions</string>
+ <key>scope</key>
+ <string>support.function.magic.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#99d1db</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python `self` keyword</string>
+ <key>scope</key>
+ <string>variable.parameter.function.language.special.self.python, variable.language.special.self.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e78284</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python keyword flow/logical (for ... in)</string>
+ <key>scope</key>
+ <string>keyword.control.flow.python, keyword.operator.logical.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python storage type</string>
+ <key>scope</key>
+ <string>storage.type.function.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function support</string>
+ <key>scope</key>
+ <string>support.token.decorator.python, meta.function.decorator.identifier.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#99d1db</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function calls</string>
+ <key>scope</key>
+ <string>meta.function-call.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function decorators</string>
+ <key>scope</key>
+ <string>entity.name.function.decorator.python, punctuation.definition.decorator.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python placeholder reset to normal string</string>
+ <key>scope</key>
+ <string>constant.character.format.placeholder.other.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python exception &amp; builtins such as exit()</string>
+ <key>scope</key>
+ <string>support.type.exception.python, support.function.builtin.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>entity.name.type</string>
+ <key>scope</key>
+ <string>support.type.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python constants (True/False)</string>
+ <key>scope</key>
+ <string>constant.language.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Arguments accessed later in the function body</string>
+ <key>scope</key>
+ <string>meta.indexed-name.python, meta.item-access.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea999c</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python f-strings/binary/unicode storage types</string>
+ <key>scope</key>
+ <string>storage.type.string.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6d189</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python type hints</string>
+ <key>scope</key>
+ <string>meta.function.parameters.python</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex string begin/end in JS/TS</string>
+ <key>scope</key>
+ <string>string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex anchors (^, $)</string>
+ <key>scope</key>
+ <string>keyword.control.anchor.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex regular string match</string>
+ <key>scope</key>
+ <string>string.regexp.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex group parenthesis &amp; backreference (\1, \2, \3, ...)</string>
+ <key>scope</key>
+ <string>punctuation.definition.group.regexp, keyword.other.back-reference.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6d189</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex character class []</string>
+ <key>scope</key>
+ <string>punctuation.definition.character-class.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex character classes (\d, \w, \s)</string>
+ <key>scope</key>
+ <string>constant.other.character-class.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex range</string>
+ <key>scope</key>
+ <string>constant.other.character-class.range.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f2d5cf</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex quantifier</string>
+ <key>scope</key>
+ <string>keyword.operator.quantifier.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex constant/numeric</string>
+ <key>scope</key>
+ <string>constant.character.numeric.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds</string>
+ <key>scope</key>
+ <string>punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust attribute</string>
+ <key>scope</key>
+ <string>meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust attribute strings</string>
+ <key>scope</key>
+ <string>meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust keyword</string>
+ <key>scope</key>
+ <string>entity.name.function.macro.rules.rust, storage.type.module.rust, storage.modifier.rust, storage.type.struct.rust, storage.type.enum.rust, storage.type.trait.rust, storage.type.union.rust, storage.type.impl.rust, storage.type.rust, storage.type.function.rust, storage.type.type.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust u/i32, u/i64, etc.</string>
+ <key>scope</key>
+ <string>entity.name.type.numeric.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust generic</string>
+ <key>scope</key>
+ <string>meta.generic.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust impl</string>
+ <key>scope</key>
+ <string>entity.name.impl.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust module</string>
+ <key>scope</key>
+ <string>entity.name.module.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust trait</string>
+ <key>scope</key>
+ <string>entity.name.trait.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust struct</string>
+ <key>scope</key>
+ <string>storage.type.source.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust union</string>
+ <key>scope</key>
+ <string>entity.name.union.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust enum member</string>
+ <key>scope</key>
+ <string>meta.enum.rust storage.type.source.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust macro</string>
+ <key>scope</key>
+ <string>support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust lifetime</string>
+ <key>scope</key>
+ <string>storage.modifier.lifetime.rust, entity.name.type.lifetime</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust string formatting</string>
+ <key>scope</key>
+ <string>string.quoted.double.rust constant.other.placeholder.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust return type generic</string>
+ <key>scope</key>
+ <string>meta.function.return-type.rust meta.generic.rust storage.type.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust functions</string>
+ <key>scope</key>
+ <string>meta.function.call.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust angle brackets</string>
+ <key>scope</key>
+ <string>punctuation.brackets.angle.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#99d1db</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust constants</string>
+ <key>scope</key>
+ <string>constant.other.caps.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust function parameters</string>
+ <key>scope</key>
+ <string>meta.function.definition.rust variable.other.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea999c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust closure variables</string>
+ <key>scope</key>
+ <string>meta.function.call.rust variable.other.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust self</string>
+ <key>scope</key>
+ <string>variable.language.self.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e78284</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust metavariable names</string>
+ <key>scope</key>
+ <string>variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell shebang</string>
+ <key>scope</key>
+ <string>comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell shebang command</string>
+ <key>scope</key>
+ <string>comment.line.shebang constant.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell interpolated command</string>
+ <key>scope</key>
+ <string>meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation, meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e78284</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell interpolated command variable</string>
+ <key>scope</key>
+ <string>meta.string meta.interpolation.parameter.shell variable.other.readwrite</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell EOF</string>
+ <key>scope</key>
+ <string>entity.name.tag.heredoc.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell quoted variable</string>
+ <key>scope</key>
+ <string>string.quoted.double.shell variable.other.normal.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6d0f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.typst</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e78284</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON Keys</string>
+ <key>scope</key>
+ <string>source.json meta.mapping.key string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON key surrounding quotes</string>
+ <key>scope</key>
+ <string>source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#949cbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ca9ee6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.commands.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8caaee</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.env.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4b8e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Man page options</string>
+ <key>scope</key>
+ <string>entity.name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81c8be</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.1.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e78284</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.2.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ef9f76</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e5c890</string>
+ </dict>
+ </dict>
+ </array>
+ </dict>
+</plist> \ No newline at end of file
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/LICENSE b/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/LICENSE
new file mode 100644
index 0000000..fb5b1d6
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 yazi-rs
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/LICENSE-tmtheme b/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/LICENSE-tmtheme
new file mode 100644
index 0000000..006383b
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/LICENSE-tmtheme
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 Catppuccin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/README.md b/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/README.md
new file mode 100644
index 0000000..ea1c35e
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/README.md
@@ -0,0 +1,36 @@
+<div align="center">
+ <img src="https://github.com/sxyazi/yazi/blob/main/assets/logo.png?raw=true" alt="Yazi logo" width="20%">
+</div>
+
+<h3 align="center">
+ Catppuccin Latte Flavor for <a href="https://github.com/sxyazi/yazi">Yazi</a>
+</h3>
+
+## 👀 Preview
+
+<img src="preview.png" width="600" />
+
+## 🎨 Installation
+
+```sh
+ya pkg add yazi-rs/flavors:catppuccin-latte
+```
+
+## ⚙️ Usage
+
+Set the content of your `theme.toml` to enable it as your _light_ flavor:
+
+```toml
+[flavor]
+light = "catppuccin-latte"
+```
+
+Make sure your `theme.toml` doesn't contain anything other than `[flavor]`, unless you want to override certain styles of this flavor.
+
+See the [Yazi flavor documentation](https://yazi-rs.github.io/docs/flavors/overview) for more details.
+
+## 📜 License
+
+The flavor is MIT-licensed, and the included tmTheme is also MIT-licensed.
+
+Check the [LICENSE](LICENSE) and [LICENSE-tmtheme](LICENSE-tmtheme) file for more details.
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/flavor.toml b/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/flavor.toml
new file mode 100644
index 0000000..ba2bb78
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/flavor.toml
@@ -0,0 +1,189 @@
+# vim:fileencoding=utf-8:foldmethod=marker
+
+# : Manager {{{
+
+[mgr]
+cwd = { fg = "#179299" }
+
+# Hovered
+hovered = { reversed = true }
+preview_hovered = { underline = true }
+
+# Find
+find_keyword = { fg = "#df8e1d", bold = true, italic = true, underline = true }
+find_position = { fg = "#ea76cb", bg = "reset", bold = true, italic = true }
+
+# Marker
+marker_copied = { fg = "#40a02b", bg = "#40a02b" }
+marker_cut = { fg = "#d20f39", bg = "#d20f39" }
+marker_marked = { fg = "#179299", bg = "#179299" }
+marker_selected = { fg = "#df8e1d", bg = "#df8e1d" }
+
+# Count
+count_copied = { fg = "#eff1f5", bg = "#40a02b" }
+count_cut = { fg = "#eff1f5", bg = "#d20f39" }
+count_selected = { fg = "#eff1f5", bg = "#df8e1d" }
+
+# Border
+border_symbol = "│"
+border_style = { fg = "#8c8fa1" }
+
+# : }}}
+
+
+# : Tabs {{{
+
+[tabs]
+active = { fg = "#eff1f5", bg = "#1e66f5", bold = true }
+inactive = { fg = "#1e66f5", bg = "#ccd0da" }
+
+# : }}}
+
+
+# : Mode {{{
+
+[mode]
+
+normal_main = { fg = "#eff1f5", bg = "#1e66f5", bold = true }
+normal_alt = { fg = "#1e66f5", bg = "#ccd0da" }
+
+# Select mode
+select_main = { fg = "#eff1f5", bg = "#179299", bold = true }
+select_alt = { fg = "#179299", bg = "#ccd0da" }
+
+# Unset mode
+unset_main = { fg = "#eff1f5", bg = "#dd7878", bold = true }
+unset_alt = { fg = "#dd7878", bg = "#ccd0da" }
+
+# : }}}
+
+
+# : Status bar {{{
+
+[status]
+# Permissions
+perm_sep = { fg = "#8c8fa1" }
+perm_type = { fg = "#1e66f5" }
+perm_read = { fg = "#df8e1d" }
+perm_write = { fg = "#d20f39" }
+perm_exec = { fg = "#40a02b" }
+
+# Progress
+progress_label = { fg = "#ffffff", bold = true }
+progress_normal = { fg = "#1e66f5", bg = "#bcc0cc" }
+progress_error = { fg = "#1e66f5", bg = "#d20f39" }
+
+# : }}}
+
+
+# : Pick {{{
+
+[pick]
+border = { fg = "#1e66f5" }
+active = { fg = "#ea76cb", bold = true }
+inactive = {}
+
+# : }}}
+
+
+# : Input {{{
+
+[input]
+border = { fg = "#1e66f5" }
+title = {}
+value = {}
+selected = { reversed = true }
+
+# : }}}
+
+
+# : Completion {{{
+
+[cmp]
+border = { fg = "#1e66f5" }
+
+# : }}}
+
+
+# : Tasks {{{
+
+[tasks]
+border = { fg = "#1e66f5" }
+title = {}
+hovered = { fg = "#ea76cb", bold = true }
+
+# : }}}
+
+
+# : Which {{{
+
+[which]
+mask = { bg = "#ccd0da" }
+cand = { fg = "#179299" }
+rest = { fg = "#7c7f93" }
+desc = { fg = "#ea76cb" }
+separator = "  "
+separator_style = { fg = "#acb0be" }
+
+# : }}}
+
+
+# : Help {{{
+
+[help]
+on = { fg = "#179299" }
+run = { fg = "#ea76cb" }
+hovered = { reversed = true, bold = true }
+footer = { fg = "#ccd0da", bg = "#4c4f69" }
+
+# : }}}
+
+
+# : Spotter {{{
+
+[spot]
+border = { fg = "#1e66f5" }
+title = { fg = "#1e66f5" }
+tbl_col = { fg = "#179299" }
+tbl_cell = { fg = "#ea76cb", bg = "#bcc0cc" }
+
+# : }}}
+
+
+# : Notification {{{
+
+[notify]
+title_info = { fg = "#40a02b" }
+title_warn = { fg = "#df8e1d" }
+title_error = { fg = "#d20f39" }
+
+# : }}}
+
+
+# : File-specific styles {{{
+
+[filetype]
+
+rules = [
+ # Images
+ { mime = "image/*", fg = "#179299" },
+
+ # Media
+ { mime = "{audio,video}/*", fg = "#df8e1d" },
+
+ # Archives
+ { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "#ea76cb" },
+
+ # Documents
+ { mime = "application/{pdf,doc,rtf}", fg = "#40a02b" },
+
+ # Fallback
+ { url = "*", fg = "#4c4f69" },
+ { url = "*/", fg = "#1e66f5" },
+
+ # TODO: remove
+ { name = "*", fg = "#4c4f69" },
+ { name = "*/", fg = "#1e66f5" }
+]
+
+# : }}}
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/preview.png b/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/preview.png
new file mode 100644
index 0000000..7712450
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/preview.png
Binary files differ
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/tmtheme.xml b/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/tmtheme.xml
new file mode 100644
index 0000000..ddeb349
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/tmtheme.xml
@@ -0,0 +1,2112 @@
+<?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>Catppuccin Latte</string>
+ <key>semanticClass</key>
+ <string>theme.light.catppuccin-latte</string>
+ <key>uuid</key>
+ <string>96a262cd-4b2f-49f5-9125-8dd0077cbfe1</string>
+ <key>author</key>
+ <string>Catppuccin Org</string>
+ <key>colorSpaceName</key>
+ <string>sRGB</string>
+ <key>settings</key>
+ <array>
+ <dict>
+ <key>settings</key>
+ <dict>
+ <key>background</key>
+ <string>#eff1f5</string>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ <key>caret</key>
+ <string>#dc8a78</string>
+ <key>lineHighlight</key>
+ <string>#ccd0da</string>
+ <key>misspelling</key>
+ <string>#d20f39</string>
+ <key>accent</key>
+ <string>#8839ef</string>
+ <key>selection</key>
+ <string>#7c7f934d</string>
+ <key>activeGuide</key>
+ <string>#bcc0cc</string>
+ <key>findHighlight</key>
+ <string>#a9daf0</string>
+ <key>gutterForeground</key>
+ <string>#8c8fa1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Basic text &amp; variable names (incl. leading punctuation)</string>
+ <key>scope</key>
+ <string>text, source, variable.other.readwrite, punctuation.definition.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Parentheses, Brackets, Braces</string>
+ <key>scope</key>
+ <string>punctuation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#7c7f93</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Comments</string>
+ <key>scope</key>
+ <string>comment, punctuation.definition.comment</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#7c7f93</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>string, punctuation.definition.string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#40a02b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>constant.character.escape</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Booleans, constants, numbers</string>
+ <key>scope</key>
+ <string>constant.numeric, variable.other.constant, entity.name.constant, constant.language.boolean, constant.language.false, constant.language.true, keyword.other.unit.user-defined, keyword.other.unit.suffix.floating-point</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.name.tag.documentation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Punctuation</string>
+ <key>scope</key>
+ <string>keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Classes</string>
+ <key>scope</key>
+ <string>entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Enum</string>
+ <key>scope</key>
+ <string>entity.name.enum</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Enum member</string>
+ <key>scope</key>
+ <string>meta.enum variable.other.readwrite, variable.other.enummember</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Object properties</string>
+ <key>scope</key>
+ <string>meta.property.object</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Types</string>
+ <key>scope</key>
+ <string>meta.type, meta.type-alias, support.type, entity.name.type</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Decorators</string>
+ <key>scope</key>
+ <string>meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>variable.parameter, meta.function.parameters</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e64553</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Built-ins</string>
+ <key>scope</key>
+ <string>constant.language, support.function.builtin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d20f39</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.other.attribute-name.documentation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d20f39</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Preprocessor directives</string>
+ <key>scope</key>
+ <string>keyword.control.directive, punctuation.definition.directive</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Type parameters</string>
+ <key>scope</key>
+ <string>punctuation.definition.typeparameters</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#04a5e5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Namespaces</string>
+ <key>scope</key>
+ <string>entity.name.namespace</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Property names (left hand assignments in json/yaml/css)</string>
+ <key>scope</key>
+ <string>support.type.property-name.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>This/Self keyword</string>
+ <key>scope</key>
+ <string>variable.language.this, variable.language.this punctuation.definition.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d20f39</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Object properties</string>
+ <key>scope</key>
+ <string>variable.object.property</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>String template interpolation</string>
+ <key>scope</key>
+ <string>string.template variable, string variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>`new` as bold</string>
+ <key>scope</key>
+ <string>keyword.operator.new</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ extern keyword</string>
+ <key>scope</key>
+ <string>storage.modifier.specifier.extern.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ scope resolution</string>
+ <key>scope</key>
+ <string>entity.name.scope-resolution.template.call.cpp, entity.name.scope-resolution.parameter.cpp, entity.name.scope-resolution.cpp, entity.name.scope-resolution.function.definition.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ doc keywords</string>
+ <key>scope</key>
+ <string>storage.type.class.doxygen</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ operators</string>
+ <key>scope</key>
+ <string>storage.modifier.reference.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C# Interpolated Strings</string>
+ <key>scope</key>
+ <string>meta.interpolation.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C# xml-style docs</string>
+ <key>scope</key>
+ <string>comment.block.documentation.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Classes, reflecting the className color in JSX</string>
+ <key>scope</key>
+ <string>source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Operators</string>
+ <key>scope</key>
+ <string>punctuation.separator.operator.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Pseudo classes</string>
+ <key>scope</key>
+ <string>source.css entity.other.attribute-name.pseudo-class</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.css constant.other.unicode-range</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.css variable.parameter.url</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#40a02b</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS vendored property names</string>
+ <key>scope</key>
+ <string>support.type.vendored.property-name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#04a5e5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Less/SCSS right-hand variables (@/$-prefixed)</string>
+ <key>scope</key>
+ <string>source.css meta.property-value variable, source.css meta.property-value variable.other.less, source.css meta.property-value variable.other.less punctuation.definition.variable.less, meta.definition.variable.scss</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e64553</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS variables (--prefixed)</string>
+ <key>scope</key>
+ <string>source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS Percentage values, styled the same as numbers</string>
+ <key>scope</key>
+ <string>keyword.other.unit.percentage.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS Attribute selectors, styled the same as strings</string>
+ <key>scope</key>
+ <string>source.css meta.attribute-selector</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#40a02b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON/YAML keys, other left-hand assignments</string>
+ <key>scope</key>
+ <string>keyword.other.definition.ini, punctuation.support.type.property-name.json, support.type.property-name.json, punctuation.support.type.property-name.toml, support.type.property-name.toml, entity.name.tag.yaml, punctuation.support.type.property-name.yaml, support.type.property-name.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON/YAML constants</string>
+ <key>scope</key>
+ <string>constant.language.json, constant.language.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML anchors</string>
+ <key>scope</key>
+ <string>entity.name.type.anchor.yaml, variable.other.alias.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TOML tables / ini groups</string>
+ <key>scope</key>
+ <string>support.type.property-name.table, entity.name.section.group-title.ini</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TOML dates</string>
+ <key>scope</key>
+ <string>constant.other.time.datetime.offset.toml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML anchor puctuation</string>
+ <key>scope</key>
+ <string>punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML triple dashes</string>
+ <key>scope</key>
+ <string>entity.other.document.begin.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markup Diff</string>
+ <key>scope</key>
+ <string>markup.changed.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff</string>
+ <key>scope</key>
+ <string>meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff Inserted</string>
+ <key>scope</key>
+ <string>markup.inserted.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#40a02b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff Deleted</string>
+ <key>scope</key>
+ <string>markup.deleted.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d20f39</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>dotenv left-hand side assignments</string>
+ <key>scope</key>
+ <string>variable.other.env</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>dotenv reference to existing env variable</string>
+ <key>scope</key>
+ <string>string.quoted variable.other.env</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GDScript functions</string>
+ <key>scope</key>
+ <string>support.function.builtin.gdscript</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GDScript constants</string>
+ <key>scope</key>
+ <string>constant.language.gdscript</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Comment keywords</string>
+ <key>scope</key>
+ <string>comment meta.annotation.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e64553</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>go:embed, go:build, etc.</string>
+ <key>scope</key>
+ <string>comment meta.annotation.parameters.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Go constants (nil, true, false)</string>
+ <key>scope</key>
+ <string>constant.language.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL variables</string>
+ <key>scope</key>
+ <string>variable.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL aliases</string>
+ <key>scope</key>
+ <string>string.unquoted.alias.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#dd7878</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL enum members</string>
+ <key>scope</key>
+ <string>constant.character.enum.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL field in types</string>
+ <key>scope</key>
+ <string>meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#dd7878</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML DOCTYPE as keyword</string>
+ <key>scope</key>
+ <string>keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML-like &lt;tags/&gt;</string>
+ <key>scope</key>
+ <string>entity.name.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Special characters like &amp;amp;</string>
+ <key>scope</key>
+ <string>text.html constant.character.entity, text.html constant.character.entity punctuation, constant.character.entity.xml, constant.character.entity.xml punctuation, constant.character.entity.js.jsx, constant.charactger.entity.js.jsx punctuation, constant.character.entity.tsx, constant.character.entity.tsx punctuation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d20f39</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML tag attribute values</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Components</string>
+ <key>scope</key>
+ <string>support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Annotations</string>
+ <key>scope</key>
+ <string>punctuation.definition.annotation, storage.type.annotation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Java enums</string>
+ <key>scope</key>
+ <string>constant.other.enum.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Java imports</string>
+ <key>scope</key>
+ <string>storage.modifier.import.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Javadoc</string>
+ <key>scope</key>
+ <string>comment.block.javadoc.java keyword.other.documentation.javadoc.java</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Exported Variable</string>
+ <key>scope</key>
+ <string>meta.export variable.other.readwrite.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e64553</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JS/TS constants &amp; properties</string>
+ <key>scope</key>
+ <string>variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSDoc; these are mainly params, so styled as such</string>
+ <key>scope</key>
+ <string>variable.other.jsdoc, comment.block.documentation variable.other</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e64553</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSDoc keywords</string>
+ <key>scope</key>
+ <string>storage.type.class.jsdoc</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>support.type.object.console.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Node constants as keywords (module, etc.)</string>
+ <key>scope</key>
+ <string>support.constant.node, support.type.object.module.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>implements as keyword</string>
+ <key>scope</key>
+ <string>storage.modifier.implements</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Builtin types</string>
+ <key>scope</key>
+ <string>constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>variable.parameter.generic</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Arrow functions</string>
+ <key>scope</key>
+ <string>keyword.declaration.function.arrow.js, storage.type.function.arrow.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)</string>
+ <key>scope</key>
+ <string>punctuation.decorator.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Extra JS/TS keywords</string>
+ <key>scope</key>
+ <string>keyword.operator.expression.in.js, keyword.operator.expression.in.ts, keyword.operator.expression.infer.ts, keyword.operator.expression.instanceof.js, keyword.operator.expression.instanceof.ts, keyword.operator.expression.is, keyword.operator.expression.keyof.ts, keyword.operator.expression.of.js, keyword.operator.expression.of.ts, keyword.operator.expression.typeof.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia macros</string>
+ <key>scope</key>
+ <string>support.function.macro.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia language constants (true, false)</string>
+ <key>scope</key>
+ <string>constant.language.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia other constants (these seem to be arguments inside arrays)</string>
+ <key>scope</key>
+ <string>constant.other.symbol.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e64553</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX preamble</string>
+ <key>scope</key>
+ <string>text.tex keyword.control.preamble</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX be functions</string>
+ <key>scope</key>
+ <string>text.tex support.function.be</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#04a5e5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX math</string>
+ <key>scope</key>
+ <string>constant.other.general.math.tex</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#dd7878</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Liquid Builtin Objects &amp; User Defined Variables</string>
+ <key>scope</key>
+ <string>variable.language.liquid</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Lua docstring keywords</string>
+ <key>scope</key>
+ <string>comment.line.double-dash.documentation.lua storage.type.annotation.lua</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Lua docstring variables</string>
+ <key>scope</key>
+ <string>comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.1.markdown punctuation.definition.heading.markdown, heading.1.markdown, heading.1.quarto punctuation.definition.heading.quarto, heading.1.quarto, markup.heading.atx.1.mdx, markup.heading.atx.1.mdx punctuation.definition.heading.mdx, markup.heading.setext.1.markdown, markup.heading.heading-0.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d20f39</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.2.markdown punctuation.definition.heading.markdown, heading.2.markdown, heading.2.quarto punctuation.definition.heading.quarto, heading.2.quarto, markup.heading.atx.2.mdx, markup.heading.atx.2.mdx punctuation.definition.heading.mdx, markup.heading.setext.2.markdown, markup.heading.heading-1.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.3.markdown punctuation.definition.heading.markdown, heading.3.markdown, heading.3.quarto punctuation.definition.heading.quarto, heading.3.quarto, markup.heading.atx.3.mdx, markup.heading.atx.3.mdx punctuation.definition.heading.mdx, markup.heading.heading-2.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.4.markdown punctuation.definition.heading.markdown, heading.4.markdown, heading.4.quarto punctuation.definition.heading.quarto, heading.4.quarto, markup.heading.atx.4.mdx, markup.heading.atx.4.mdx punctuation.definition.heading.mdx, markup.heading.heading-3.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#40a02b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.5.markdown punctuation.definition.heading.markdown, heading.5.markdown, heading.5.quarto punctuation.definition.heading.quarto, heading.5.quarto, markup.heading.atx.5.mdx, markup.heading.atx.5.mdx punctuation.definition.heading.mdx, markup.heading.heading-4.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#209fb5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.6.markdown punctuation.definition.heading.markdown, heading.6.markdown, heading.6.quarto punctuation.definition.heading.quarto, heading.6.quarto, markup.heading.atx.6.mdx, markup.heading.atx.6.mdx punctuation.definition.heading.mdx, markup.heading.heading-5.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#7287fd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.bold</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d20f39</string>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.italic</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d20f39</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.strikethrough</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#6c6f85</string>
+ <key>fontStyle</key>
+ <string>strikethrough</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown auto links</string>
+ <key>scope</key>
+ <string>punctuation.definition.link, markup.underline.link</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown links</string>
+ <key>scope</key>
+ <string>text.html.markdown punctuation.definition.link.title, text.html.quarto punctuation.definition.link.title, string.other.link.title.markdown, string.other.link.title.quarto, markup.link, punctuation.definition.constant.markdown, punctuation.definition.constant.quarto, constant.other.reference.link.markdown, constant.other.reference.link.quarto, markup.substitution.attribute-reference</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#7287fd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown code spans</string>
+ <key>scope</key>
+ <string>punctuation.definition.raw.markdown, punctuation.definition.raw.quarto, markup.inline.raw.string.markdown, markup.inline.raw.string.quarto, markup.raw.block.markdown, markup.raw.block.quarto</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#40a02b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown triple backtick language identifier</string>
+ <key>scope</key>
+ <string>fenced_code.block.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#04a5e5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown triple backticks</string>
+ <key>scope</key>
+ <string>markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#7c7f93</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown quotes</string>
+ <key>scope</key>
+ <string>markup.quote, punctuation.definition.quote.begin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown separators</string>
+ <key>scope</key>
+ <string>meta.separator.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown list bullets</string>
+ <key>scope</key>
+ <string>punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Quarto headings</string>
+ <key>scope</key>
+ <string>markup.heading.quarto</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix attribute names</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix parameter names</string>
+ <key>scope</key>
+ <string>variable.parameter.name.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix interpolated parameter names</string>
+ <key>scope</key>
+ <string>meta.embedded variable.parameter.name.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#7287fd</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix paths</string>
+ <key>scope</key>
+ <string>string.unquoted.path.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Attributes</string>
+ <key>scope</key>
+ <string>support.attribute.builtin, meta.attribute.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Parameters (needed for the leading dollar sign)</string>
+ <key>scope</key>
+ <string>meta.function.parameters.php punctuation.definition.variable.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e64553</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Constants (null, __FILE__, etc.)</string>
+ <key>scope</key>
+ <string>constant.language.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP functions</string>
+ <key>scope</key>
+ <string>text.html.php support.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#04a5e5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHPdoc keywords</string>
+ <key>scope</key>
+ <string>keyword.other.phpdoc.php</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python argument functions reset to text, otherwise they inherit blue from function-call</string>
+ <key>scope</key>
+ <string>support.variable.magic.python, meta.function-call.arguments.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python double underscore functions</string>
+ <key>scope</key>
+ <string>support.function.magic.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#04a5e5</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python `self` keyword</string>
+ <key>scope</key>
+ <string>variable.parameter.function.language.special.self.python, variable.language.special.self.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d20f39</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python keyword flow/logical (for ... in)</string>
+ <key>scope</key>
+ <string>keyword.control.flow.python, keyword.operator.logical.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python storage type</string>
+ <key>scope</key>
+ <string>storage.type.function.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function support</string>
+ <key>scope</key>
+ <string>support.token.decorator.python, meta.function.decorator.identifier.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#04a5e5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function calls</string>
+ <key>scope</key>
+ <string>meta.function-call.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function decorators</string>
+ <key>scope</key>
+ <string>entity.name.function.decorator.python, punctuation.definition.decorator.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python placeholder reset to normal string</string>
+ <key>scope</key>
+ <string>constant.character.format.placeholder.other.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python exception &amp; builtins such as exit()</string>
+ <key>scope</key>
+ <string>support.type.exception.python, support.function.builtin.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>entity.name.type</string>
+ <key>scope</key>
+ <string>support.type.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python constants (True/False)</string>
+ <key>scope</key>
+ <string>constant.language.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Arguments accessed later in the function body</string>
+ <key>scope</key>
+ <string>meta.indexed-name.python, meta.item-access.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e64553</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python f-strings/binary/unicode storage types</string>
+ <key>scope</key>
+ <string>storage.type.string.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#40a02b</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python type hints</string>
+ <key>scope</key>
+ <string>meta.function.parameters.python</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex string begin/end in JS/TS</string>
+ <key>scope</key>
+ <string>string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex anchors (^, $)</string>
+ <key>scope</key>
+ <string>keyword.control.anchor.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex regular string match</string>
+ <key>scope</key>
+ <string>string.regexp.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex group parenthesis &amp; backreference (\1, \2, \3, ...)</string>
+ <key>scope</key>
+ <string>punctuation.definition.group.regexp, keyword.other.back-reference.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#40a02b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex character class []</string>
+ <key>scope</key>
+ <string>punctuation.definition.character-class.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex character classes (\d, \w, \s)</string>
+ <key>scope</key>
+ <string>constant.other.character-class.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex range</string>
+ <key>scope</key>
+ <string>constant.other.character-class.range.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#dc8a78</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex quantifier</string>
+ <key>scope</key>
+ <string>keyword.operator.quantifier.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex constant/numeric</string>
+ <key>scope</key>
+ <string>constant.character.numeric.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds</string>
+ <key>scope</key>
+ <string>punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust attribute</string>
+ <key>scope</key>
+ <string>meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust attribute strings</string>
+ <key>scope</key>
+ <string>meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust keyword</string>
+ <key>scope</key>
+ <string>entity.name.function.macro.rules.rust, storage.type.module.rust, storage.modifier.rust, storage.type.struct.rust, storage.type.enum.rust, storage.type.trait.rust, storage.type.union.rust, storage.type.impl.rust, storage.type.rust, storage.type.function.rust, storage.type.type.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust u/i32, u/i64, etc.</string>
+ <key>scope</key>
+ <string>entity.name.type.numeric.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust generic</string>
+ <key>scope</key>
+ <string>meta.generic.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust impl</string>
+ <key>scope</key>
+ <string>entity.name.impl.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust module</string>
+ <key>scope</key>
+ <string>entity.name.module.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust trait</string>
+ <key>scope</key>
+ <string>entity.name.trait.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust struct</string>
+ <key>scope</key>
+ <string>storage.type.source.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust union</string>
+ <key>scope</key>
+ <string>entity.name.union.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust enum member</string>
+ <key>scope</key>
+ <string>meta.enum.rust storage.type.source.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust macro</string>
+ <key>scope</key>
+ <string>support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust lifetime</string>
+ <key>scope</key>
+ <string>storage.modifier.lifetime.rust, entity.name.type.lifetime</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust string formatting</string>
+ <key>scope</key>
+ <string>string.quoted.double.rust constant.other.placeholder.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust return type generic</string>
+ <key>scope</key>
+ <string>meta.function.return-type.rust meta.generic.rust storage.type.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust functions</string>
+ <key>scope</key>
+ <string>meta.function.call.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust angle brackets</string>
+ <key>scope</key>
+ <string>punctuation.brackets.angle.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#04a5e5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust constants</string>
+ <key>scope</key>
+ <string>constant.other.caps.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust function parameters</string>
+ <key>scope</key>
+ <string>meta.function.definition.rust variable.other.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#e64553</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust closure variables</string>
+ <key>scope</key>
+ <string>meta.function.call.rust variable.other.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust self</string>
+ <key>scope</key>
+ <string>variable.language.self.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d20f39</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust metavariable names</string>
+ <key>scope</key>
+ <string>variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell shebang</string>
+ <key>scope</key>
+ <string>comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell shebang command</string>
+ <key>scope</key>
+ <string>comment.line.shebang constant.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell interpolated command</string>
+ <key>scope</key>
+ <string>meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation, meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d20f39</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell interpolated command variable</string>
+ <key>scope</key>
+ <string>meta.string meta.interpolation.parameter.shell variable.other.readwrite</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell EOF</string>
+ <key>scope</key>
+ <string>entity.name.tag.heredoc.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell quoted variable</string>
+ <key>scope</key>
+ <string>string.quoted.double.shell variable.other.normal.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#4c4f69</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.typst</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d20f39</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON Keys</string>
+ <key>scope</key>
+ <string>source.json meta.mapping.key string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON key surrounding quotes</string>
+ <key>scope</key>
+ <string>source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#7c7f93</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8839ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.commands.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#1e66f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.env.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ea76cb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Man page options</string>
+ <key>scope</key>
+ <string>entity.name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#179299</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.1.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d20f39</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.2.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fe640b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#df8e1d</string>
+ </dict>
+ </dict>
+ </array>
+ </dict>
+</plist> \ No newline at end of file
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/LICENSE b/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/LICENSE
new file mode 100644
index 0000000..fb5b1d6
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 yazi-rs
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/LICENSE-tmtheme b/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/LICENSE-tmtheme
new file mode 100644
index 0000000..006383b
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/LICENSE-tmtheme
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 Catppuccin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/README.md b/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/README.md
new file mode 100644
index 0000000..752908c
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/README.md
@@ -0,0 +1,36 @@
+<div align="center">
+ <img src="https://github.com/sxyazi/yazi/blob/main/assets/logo.png?raw=true" alt="Yazi logo" width="20%">
+</div>
+
+<h3 align="center">
+ Catppuccin Macchiato Flavor for <a href="https://github.com/sxyazi/yazi">Yazi</a>
+</h3>
+
+## 👀 Preview
+
+<img src="preview.png" width="600" />
+
+## 🎨 Installation
+
+```sh
+ya pkg add yazi-rs/flavors:catppuccin-macchiato
+```
+
+## ⚙️ Usage
+
+Set the content of your `theme.toml` to enable it as your _dark_ flavor:
+
+```toml
+[flavor]
+dark = "catppuccin-macchiato"
+```
+
+Make sure your `theme.toml` doesn't contain anything other than `[flavor]`, unless you want to override certain styles of this flavor.
+
+See the [Yazi flavor documentation](https://yazi-rs.github.io/docs/flavors/overview) for more details.
+
+## 📜 License
+
+The flavor is MIT-licensed, and the included tmTheme is also MIT-licensed.
+
+Check the [LICENSE](LICENSE) and [LICENSE-tmtheme](LICENSE-tmtheme) file for more details.
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/flavor.toml b/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/flavor.toml
new file mode 100644
index 0000000..9d3042f
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/flavor.toml
@@ -0,0 +1,189 @@
+# vim:fileencoding=utf-8:foldmethod=marker
+
+# : Manager {{{
+
+[mgr]
+cwd = { fg = "#8bd5ca" }
+
+# Hovered
+hovered = { reversed = true }
+preview_hovered = { underline = true }
+
+# Find
+find_keyword = { fg = "#eed49f", bold = true, italic = true, underline = true }
+find_position = { fg = "#f5bde6", bg = "reset", bold = true, italic = true }
+
+# Marker
+marker_copied = { fg = "#a6da95", bg = "#a6da95" }
+marker_cut = { fg = "#ed8796", bg = "#ed8796" }
+marker_marked = { fg = "#8bd5ca", bg = "#8bd5ca" }
+marker_selected = { fg = "#eed49f", bg = "#eed49f" }
+
+# Count
+count_copied = { fg = "#24273a", bg = "#a6da95" }
+count_cut = { fg = "#24273a", bg = "#ed8796" }
+count_selected = { fg = "#24273a", bg = "#eed49f" }
+
+# Border
+border_symbol = "│"
+border_style = { fg = "#8087a2" }
+
+# : }}}
+
+
+# : Tabs {{{
+
+[tabs]
+active = { fg = "#24273a", bg = "#8aadf4", bold = true }
+inactive = { fg = "#8aadf4", bg = "#363a4f" }
+
+# : }}}
+
+
+# : Mode {{{
+
+[mode]
+
+normal_main = { fg = "#24273a", bg = "#8aadf4", bold = true }
+normal_alt = { fg = "#8aadf4", bg = "#363a4f" }
+
+# Select mode
+select_main = { fg = "#24273a", bg = "#8bd5ca", bold = true }
+select_alt = { fg = "#8bd5ca", bg = "#363a4f" }
+
+# Unset mode
+unset_main = { fg = "#24273a", bg = "#f0c6c6", bold = true }
+unset_alt = { fg = "#f0c6c6", bg = "#363a4f" }
+
+# : }}}
+
+
+# : Status bar {{{
+
+[status]
+# Permissions
+perm_sep = { fg = "#8087a2" }
+perm_type = { fg = "#8aadf4" }
+perm_read = { fg = "#eed49f" }
+perm_write = { fg = "#ed8796" }
+perm_exec = { fg = "#a6da95" }
+
+# Progress
+progress_label = { fg = "#ffffff", bold = true }
+progress_normal = { fg = "#8aadf4", bg = "#494d64" }
+progress_error = { fg = "#8aadf4", bg = "#ed8796" }
+
+# : }}}
+
+
+# : Pick {{{
+
+[pick]
+border = { fg = "#8aadf4" }
+active = { fg = "#f5bde6", bold = true }
+inactive = {}
+
+# : }}}
+
+
+# : Input {{{
+
+[input]
+border = { fg = "#8aadf4" }
+title = {}
+value = {}
+selected = { reversed = true }
+
+# : }}}
+
+
+# : Completion {{{
+
+[cmp]
+border = { fg = "#8aadf4" }
+
+# : }}}
+
+
+# : Tasks {{{
+
+[tasks]
+border = { fg = "#8aadf4" }
+title = {}
+hovered = { fg = "#f5bde6", bold = true }
+
+# : }}}
+
+
+# : Which {{{
+
+[which]
+mask = { bg = "#363a4f" }
+cand = { fg = "#8bd5ca" }
+rest = { fg = "#939ab7" }
+desc = { fg = "#f5bde6" }
+separator = "  "
+separator_style = { fg = "#5b6078" }
+
+# : }}}
+
+
+# : Help {{{
+
+[help]
+on = { fg = "#8bd5ca" }
+run = { fg = "#f5bde6" }
+hovered = { reversed = true, bold = true }
+footer = { fg = "#363a4f", bg = "#cad3f5" }
+
+# : }}}
+
+
+# : Spotter {{{
+
+[spot]
+border = { fg = "#8aadf4" }
+title = { fg = "#8aadf4" }
+tbl_col = { fg = "#8bd5ca" }
+tbl_cell = { fg = "#f5bde6", bg = "#494d64" }
+
+# : }}}
+
+
+# : Notification {{{
+
+[notify]
+title_info = { fg = "#a6da95" }
+title_warn = { fg = "#eed49f" }
+title_error = { fg = "#ed8796" }
+
+# : }}}
+
+
+# : File-specific styles {{{
+
+[filetype]
+
+rules = [
+ # Images
+ { mime = "image/*", fg = "#8bd5ca" },
+
+ # Media
+ { mime = "{audio,video}/*", fg = "#eed49f" },
+
+ # Archives
+ { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "#f5bde6" },
+
+ # Documents
+ { mime = "application/{pdf,doc,rtf}", fg = "#a6da95" },
+
+ # Fallback
+ { url = "*", fg = "#cad3f5" },
+ { url = "*/", fg = "#8aadf4" },
+
+ # TODO: remove
+ { name = "*", fg = "#cad3f5" },
+ { name = "*/", fg = "#8aadf4" }
+]
+
+# : }}}
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/preview.png b/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/preview.png
new file mode 100644
index 0000000..a200463
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/preview.png
Binary files differ
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/tmtheme.xml b/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/tmtheme.xml
new file mode 100644
index 0000000..8f21312
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/tmtheme.xml
@@ -0,0 +1,2112 @@
+<?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>Catppuccin Macchiato</string>
+ <key>semanticClass</key>
+ <string>theme.dark.catppuccin-macchiato</string>
+ <key>uuid</key>
+ <string>02b2bdf3-9eb7-4396-bf04-f17f1468f99f</string>
+ <key>author</key>
+ <string>Catppuccin Org</string>
+ <key>colorSpaceName</key>
+ <string>sRGB</string>
+ <key>settings</key>
+ <array>
+ <dict>
+ <key>settings</key>
+ <dict>
+ <key>background</key>
+ <string>#24273a</string>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ <key>caret</key>
+ <string>#f4dbd6</string>
+ <key>lineHighlight</key>
+ <string>#363a4f</string>
+ <key>misspelling</key>
+ <string>#ed8796</string>
+ <key>accent</key>
+ <string>#c6a0f6</string>
+ <key>selection</key>
+ <string>#939ab740</string>
+ <key>activeGuide</key>
+ <string>#494d64</string>
+ <key>findHighlight</key>
+ <string>#455c6d</string>
+ <key>gutterForeground</key>
+ <string>#8087a2</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Basic text &amp; variable names (incl. leading punctuation)</string>
+ <key>scope</key>
+ <string>text, source, variable.other.readwrite, punctuation.definition.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Parentheses, Brackets, Braces</string>
+ <key>scope</key>
+ <string>punctuation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#939ab7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Comments</string>
+ <key>scope</key>
+ <string>comment, punctuation.definition.comment</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#939ab7</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>string, punctuation.definition.string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>constant.character.escape</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Booleans, constants, numbers</string>
+ <key>scope</key>
+ <string>constant.numeric, variable.other.constant, entity.name.constant, constant.language.boolean, constant.language.false, constant.language.true, keyword.other.unit.user-defined, keyword.other.unit.suffix.floating-point</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.name.tag.documentation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Punctuation</string>
+ <key>scope</key>
+ <string>keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Classes</string>
+ <key>scope</key>
+ <string>entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Enum</string>
+ <key>scope</key>
+ <string>entity.name.enum</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Enum member</string>
+ <key>scope</key>
+ <string>meta.enum variable.other.readwrite, variable.other.enummember</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Object properties</string>
+ <key>scope</key>
+ <string>meta.property.object</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Types</string>
+ <key>scope</key>
+ <string>meta.type, meta.type-alias, support.type, entity.name.type</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Decorators</string>
+ <key>scope</key>
+ <string>meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>variable.parameter, meta.function.parameters</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Built-ins</string>
+ <key>scope</key>
+ <string>constant.language, support.function.builtin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.other.attribute-name.documentation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Preprocessor directives</string>
+ <key>scope</key>
+ <string>keyword.control.directive, punctuation.definition.directive</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Type parameters</string>
+ <key>scope</key>
+ <string>punctuation.definition.typeparameters</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Namespaces</string>
+ <key>scope</key>
+ <string>entity.name.namespace</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Property names (left hand assignments in json/yaml/css)</string>
+ <key>scope</key>
+ <string>support.type.property-name.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>This/Self keyword</string>
+ <key>scope</key>
+ <string>variable.language.this, variable.language.this punctuation.definition.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Object properties</string>
+ <key>scope</key>
+ <string>variable.object.property</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>String template interpolation</string>
+ <key>scope</key>
+ <string>string.template variable, string variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>`new` as bold</string>
+ <key>scope</key>
+ <string>keyword.operator.new</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ extern keyword</string>
+ <key>scope</key>
+ <string>storage.modifier.specifier.extern.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ scope resolution</string>
+ <key>scope</key>
+ <string>entity.name.scope-resolution.template.call.cpp, entity.name.scope-resolution.parameter.cpp, entity.name.scope-resolution.cpp, entity.name.scope-resolution.function.definition.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ doc keywords</string>
+ <key>scope</key>
+ <string>storage.type.class.doxygen</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ operators</string>
+ <key>scope</key>
+ <string>storage.modifier.reference.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C# Interpolated Strings</string>
+ <key>scope</key>
+ <string>meta.interpolation.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C# xml-style docs</string>
+ <key>scope</key>
+ <string>comment.block.documentation.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Classes, reflecting the className color in JSX</string>
+ <key>scope</key>
+ <string>source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Operators</string>
+ <key>scope</key>
+ <string>punctuation.separator.operator.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Pseudo classes</string>
+ <key>scope</key>
+ <string>source.css entity.other.attribute-name.pseudo-class</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.css constant.other.unicode-range</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.css variable.parameter.url</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS vendored property names</string>
+ <key>scope</key>
+ <string>support.type.vendored.property-name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Less/SCSS right-hand variables (@/$-prefixed)</string>
+ <key>scope</key>
+ <string>source.css meta.property-value variable, source.css meta.property-value variable.other.less, source.css meta.property-value variable.other.less punctuation.definition.variable.less, meta.definition.variable.scss</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS variables (--prefixed)</string>
+ <key>scope</key>
+ <string>source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS Percentage values, styled the same as numbers</string>
+ <key>scope</key>
+ <string>keyword.other.unit.percentage.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS Attribute selectors, styled the same as strings</string>
+ <key>scope</key>
+ <string>source.css meta.attribute-selector</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON/YAML keys, other left-hand assignments</string>
+ <key>scope</key>
+ <string>keyword.other.definition.ini, punctuation.support.type.property-name.json, support.type.property-name.json, punctuation.support.type.property-name.toml, support.type.property-name.toml, entity.name.tag.yaml, punctuation.support.type.property-name.yaml, support.type.property-name.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON/YAML constants</string>
+ <key>scope</key>
+ <string>constant.language.json, constant.language.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML anchors</string>
+ <key>scope</key>
+ <string>entity.name.type.anchor.yaml, variable.other.alias.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TOML tables / ini groups</string>
+ <key>scope</key>
+ <string>support.type.property-name.table, entity.name.section.group-title.ini</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TOML dates</string>
+ <key>scope</key>
+ <string>constant.other.time.datetime.offset.toml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML anchor puctuation</string>
+ <key>scope</key>
+ <string>punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML triple dashes</string>
+ <key>scope</key>
+ <string>entity.other.document.begin.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markup Diff</string>
+ <key>scope</key>
+ <string>markup.changed.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff</string>
+ <key>scope</key>
+ <string>meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff Inserted</string>
+ <key>scope</key>
+ <string>markup.inserted.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff Deleted</string>
+ <key>scope</key>
+ <string>markup.deleted.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>dotenv left-hand side assignments</string>
+ <key>scope</key>
+ <string>variable.other.env</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>dotenv reference to existing env variable</string>
+ <key>scope</key>
+ <string>string.quoted variable.other.env</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GDScript functions</string>
+ <key>scope</key>
+ <string>support.function.builtin.gdscript</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GDScript constants</string>
+ <key>scope</key>
+ <string>constant.language.gdscript</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Comment keywords</string>
+ <key>scope</key>
+ <string>comment meta.annotation.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>go:embed, go:build, etc.</string>
+ <key>scope</key>
+ <string>comment meta.annotation.parameters.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Go constants (nil, true, false)</string>
+ <key>scope</key>
+ <string>constant.language.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL variables</string>
+ <key>scope</key>
+ <string>variable.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL aliases</string>
+ <key>scope</key>
+ <string>string.unquoted.alias.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f0c6c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL enum members</string>
+ <key>scope</key>
+ <string>constant.character.enum.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL field in types</string>
+ <key>scope</key>
+ <string>meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f0c6c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML DOCTYPE as keyword</string>
+ <key>scope</key>
+ <string>keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML-like &lt;tags/&gt;</string>
+ <key>scope</key>
+ <string>entity.name.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Special characters like &amp;amp;</string>
+ <key>scope</key>
+ <string>text.html constant.character.entity, text.html constant.character.entity punctuation, constant.character.entity.xml, constant.character.entity.xml punctuation, constant.character.entity.js.jsx, constant.charactger.entity.js.jsx punctuation, constant.character.entity.tsx, constant.character.entity.tsx punctuation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML tag attribute values</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Components</string>
+ <key>scope</key>
+ <string>support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Annotations</string>
+ <key>scope</key>
+ <string>punctuation.definition.annotation, storage.type.annotation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Java enums</string>
+ <key>scope</key>
+ <string>constant.other.enum.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Java imports</string>
+ <key>scope</key>
+ <string>storage.modifier.import.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Javadoc</string>
+ <key>scope</key>
+ <string>comment.block.javadoc.java keyword.other.documentation.javadoc.java</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Exported Variable</string>
+ <key>scope</key>
+ <string>meta.export variable.other.readwrite.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JS/TS constants &amp; properties</string>
+ <key>scope</key>
+ <string>variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSDoc; these are mainly params, so styled as such</string>
+ <key>scope</key>
+ <string>variable.other.jsdoc, comment.block.documentation variable.other</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSDoc keywords</string>
+ <key>scope</key>
+ <string>storage.type.class.jsdoc</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>support.type.object.console.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Node constants as keywords (module, etc.)</string>
+ <key>scope</key>
+ <string>support.constant.node, support.type.object.module.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>implements as keyword</string>
+ <key>scope</key>
+ <string>storage.modifier.implements</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Builtin types</string>
+ <key>scope</key>
+ <string>constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>variable.parameter.generic</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Arrow functions</string>
+ <key>scope</key>
+ <string>keyword.declaration.function.arrow.js, storage.type.function.arrow.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)</string>
+ <key>scope</key>
+ <string>punctuation.decorator.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Extra JS/TS keywords</string>
+ <key>scope</key>
+ <string>keyword.operator.expression.in.js, keyword.operator.expression.in.ts, keyword.operator.expression.infer.ts, keyword.operator.expression.instanceof.js, keyword.operator.expression.instanceof.ts, keyword.operator.expression.is, keyword.operator.expression.keyof.ts, keyword.operator.expression.of.js, keyword.operator.expression.of.ts, keyword.operator.expression.typeof.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia macros</string>
+ <key>scope</key>
+ <string>support.function.macro.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia language constants (true, false)</string>
+ <key>scope</key>
+ <string>constant.language.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia other constants (these seem to be arguments inside arrays)</string>
+ <key>scope</key>
+ <string>constant.other.symbol.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX preamble</string>
+ <key>scope</key>
+ <string>text.tex keyword.control.preamble</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX be functions</string>
+ <key>scope</key>
+ <string>text.tex support.function.be</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX math</string>
+ <key>scope</key>
+ <string>constant.other.general.math.tex</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f0c6c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Liquid Builtin Objects &amp; User Defined Variables</string>
+ <key>scope</key>
+ <string>variable.language.liquid</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Lua docstring keywords</string>
+ <key>scope</key>
+ <string>comment.line.double-dash.documentation.lua storage.type.annotation.lua</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Lua docstring variables</string>
+ <key>scope</key>
+ <string>comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.1.markdown punctuation.definition.heading.markdown, heading.1.markdown, heading.1.quarto punctuation.definition.heading.quarto, heading.1.quarto, markup.heading.atx.1.mdx, markup.heading.atx.1.mdx punctuation.definition.heading.mdx, markup.heading.setext.1.markdown, markup.heading.heading-0.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.2.markdown punctuation.definition.heading.markdown, heading.2.markdown, heading.2.quarto punctuation.definition.heading.quarto, heading.2.quarto, markup.heading.atx.2.mdx, markup.heading.atx.2.mdx punctuation.definition.heading.mdx, markup.heading.setext.2.markdown, markup.heading.heading-1.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.3.markdown punctuation.definition.heading.markdown, heading.3.markdown, heading.3.quarto punctuation.definition.heading.quarto, heading.3.quarto, markup.heading.atx.3.mdx, markup.heading.atx.3.mdx punctuation.definition.heading.mdx, markup.heading.heading-2.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.4.markdown punctuation.definition.heading.markdown, heading.4.markdown, heading.4.quarto punctuation.definition.heading.quarto, heading.4.quarto, markup.heading.atx.4.mdx, markup.heading.atx.4.mdx punctuation.definition.heading.mdx, markup.heading.heading-3.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.5.markdown punctuation.definition.heading.markdown, heading.5.markdown, heading.5.quarto punctuation.definition.heading.quarto, heading.5.quarto, markup.heading.atx.5.mdx, markup.heading.atx.5.mdx punctuation.definition.heading.mdx, markup.heading.heading-4.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#7dc4e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.6.markdown punctuation.definition.heading.markdown, heading.6.markdown, heading.6.quarto punctuation.definition.heading.quarto, heading.6.quarto, markup.heading.atx.6.mdx, markup.heading.atx.6.mdx punctuation.definition.heading.mdx, markup.heading.heading-5.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#b7bdf8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.bold</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.italic</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.strikethrough</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a5adcb</string>
+ <key>fontStyle</key>
+ <string>strikethrough</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown auto links</string>
+ <key>scope</key>
+ <string>punctuation.definition.link, markup.underline.link</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown links</string>
+ <key>scope</key>
+ <string>text.html.markdown punctuation.definition.link.title, text.html.quarto punctuation.definition.link.title, string.other.link.title.markdown, string.other.link.title.quarto, markup.link, punctuation.definition.constant.markdown, punctuation.definition.constant.quarto, constant.other.reference.link.markdown, constant.other.reference.link.quarto, markup.substitution.attribute-reference</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#b7bdf8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown code spans</string>
+ <key>scope</key>
+ <string>punctuation.definition.raw.markdown, punctuation.definition.raw.quarto, markup.inline.raw.string.markdown, markup.inline.raw.string.quarto, markup.raw.block.markdown, markup.raw.block.quarto</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown triple backtick language identifier</string>
+ <key>scope</key>
+ <string>fenced_code.block.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown triple backticks</string>
+ <key>scope</key>
+ <string>markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#939ab7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown quotes</string>
+ <key>scope</key>
+ <string>markup.quote, punctuation.definition.quote.begin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown separators</string>
+ <key>scope</key>
+ <string>meta.separator.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown list bullets</string>
+ <key>scope</key>
+ <string>punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Quarto headings</string>
+ <key>scope</key>
+ <string>markup.heading.quarto</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix attribute names</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix parameter names</string>
+ <key>scope</key>
+ <string>variable.parameter.name.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix interpolated parameter names</string>
+ <key>scope</key>
+ <string>meta.embedded variable.parameter.name.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#b7bdf8</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix paths</string>
+ <key>scope</key>
+ <string>string.unquoted.path.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Attributes</string>
+ <key>scope</key>
+ <string>support.attribute.builtin, meta.attribute.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Parameters (needed for the leading dollar sign)</string>
+ <key>scope</key>
+ <string>meta.function.parameters.php punctuation.definition.variable.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Constants (null, __FILE__, etc.)</string>
+ <key>scope</key>
+ <string>constant.language.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP functions</string>
+ <key>scope</key>
+ <string>text.html.php support.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHPdoc keywords</string>
+ <key>scope</key>
+ <string>keyword.other.phpdoc.php</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python argument functions reset to text, otherwise they inherit blue from function-call</string>
+ <key>scope</key>
+ <string>support.variable.magic.python, meta.function-call.arguments.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python double underscore functions</string>
+ <key>scope</key>
+ <string>support.function.magic.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python `self` keyword</string>
+ <key>scope</key>
+ <string>variable.parameter.function.language.special.self.python, variable.language.special.self.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python keyword flow/logical (for ... in)</string>
+ <key>scope</key>
+ <string>keyword.control.flow.python, keyword.operator.logical.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python storage type</string>
+ <key>scope</key>
+ <string>storage.type.function.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function support</string>
+ <key>scope</key>
+ <string>support.token.decorator.python, meta.function.decorator.identifier.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function calls</string>
+ <key>scope</key>
+ <string>meta.function-call.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function decorators</string>
+ <key>scope</key>
+ <string>entity.name.function.decorator.python, punctuation.definition.decorator.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python placeholder reset to normal string</string>
+ <key>scope</key>
+ <string>constant.character.format.placeholder.other.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python exception &amp; builtins such as exit()</string>
+ <key>scope</key>
+ <string>support.type.exception.python, support.function.builtin.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>entity.name.type</string>
+ <key>scope</key>
+ <string>support.type.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python constants (True/False)</string>
+ <key>scope</key>
+ <string>constant.language.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Arguments accessed later in the function body</string>
+ <key>scope</key>
+ <string>meta.indexed-name.python, meta.item-access.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python f-strings/binary/unicode storage types</string>
+ <key>scope</key>
+ <string>storage.type.string.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python type hints</string>
+ <key>scope</key>
+ <string>meta.function.parameters.python</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex string begin/end in JS/TS</string>
+ <key>scope</key>
+ <string>string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex anchors (^, $)</string>
+ <key>scope</key>
+ <string>keyword.control.anchor.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex regular string match</string>
+ <key>scope</key>
+ <string>string.regexp.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex group parenthesis &amp; backreference (\1, \2, \3, ...)</string>
+ <key>scope</key>
+ <string>punctuation.definition.group.regexp, keyword.other.back-reference.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex character class []</string>
+ <key>scope</key>
+ <string>punctuation.definition.character-class.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex character classes (\d, \w, \s)</string>
+ <key>scope</key>
+ <string>constant.other.character-class.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex range</string>
+ <key>scope</key>
+ <string>constant.other.character-class.range.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4dbd6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex quantifier</string>
+ <key>scope</key>
+ <string>keyword.operator.quantifier.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex constant/numeric</string>
+ <key>scope</key>
+ <string>constant.character.numeric.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds</string>
+ <key>scope</key>
+ <string>punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust attribute</string>
+ <key>scope</key>
+ <string>meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust attribute strings</string>
+ <key>scope</key>
+ <string>meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust keyword</string>
+ <key>scope</key>
+ <string>entity.name.function.macro.rules.rust, storage.type.module.rust, storage.modifier.rust, storage.type.struct.rust, storage.type.enum.rust, storage.type.trait.rust, storage.type.union.rust, storage.type.impl.rust, storage.type.rust, storage.type.function.rust, storage.type.type.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust u/i32, u/i64, etc.</string>
+ <key>scope</key>
+ <string>entity.name.type.numeric.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust generic</string>
+ <key>scope</key>
+ <string>meta.generic.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust impl</string>
+ <key>scope</key>
+ <string>entity.name.impl.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust module</string>
+ <key>scope</key>
+ <string>entity.name.module.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust trait</string>
+ <key>scope</key>
+ <string>entity.name.trait.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust struct</string>
+ <key>scope</key>
+ <string>storage.type.source.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust union</string>
+ <key>scope</key>
+ <string>entity.name.union.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust enum member</string>
+ <key>scope</key>
+ <string>meta.enum.rust storage.type.source.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust macro</string>
+ <key>scope</key>
+ <string>support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust lifetime</string>
+ <key>scope</key>
+ <string>storage.modifier.lifetime.rust, entity.name.type.lifetime</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust string formatting</string>
+ <key>scope</key>
+ <string>string.quoted.double.rust constant.other.placeholder.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust return type generic</string>
+ <key>scope</key>
+ <string>meta.function.return-type.rust meta.generic.rust storage.type.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust functions</string>
+ <key>scope</key>
+ <string>meta.function.call.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust angle brackets</string>
+ <key>scope</key>
+ <string>punctuation.brackets.angle.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust constants</string>
+ <key>scope</key>
+ <string>constant.other.caps.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust function parameters</string>
+ <key>scope</key>
+ <string>meta.function.definition.rust variable.other.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust closure variables</string>
+ <key>scope</key>
+ <string>meta.function.call.rust variable.other.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust self</string>
+ <key>scope</key>
+ <string>variable.language.self.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust metavariable names</string>
+ <key>scope</key>
+ <string>variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell shebang</string>
+ <key>scope</key>
+ <string>comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell shebang command</string>
+ <key>scope</key>
+ <string>comment.line.shebang constant.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell interpolated command</string>
+ <key>scope</key>
+ <string>meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation, meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell interpolated command variable</string>
+ <key>scope</key>
+ <string>meta.string meta.interpolation.parameter.shell variable.other.readwrite</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell EOF</string>
+ <key>scope</key>
+ <string>entity.name.tag.heredoc.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell quoted variable</string>
+ <key>scope</key>
+ <string>string.quoted.double.shell variable.other.normal.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.typst</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON Keys</string>
+ <key>scope</key>
+ <string>source.json meta.mapping.key string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON key surrounding quotes</string>
+ <key>scope</key>
+ <string>source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#939ab7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.commands.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.env.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Man page options</string>
+ <key>scope</key>
+ <string>entity.name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.1.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.2.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ </array>
+ </dict>
+</plist> \ No newline at end of file
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/LICENSE b/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/LICENSE
new file mode 100644
index 0000000..fb5b1d6
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 yazi-rs
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/LICENSE-tmtheme b/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/LICENSE-tmtheme
new file mode 100644
index 0000000..006383b
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/LICENSE-tmtheme
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 Catppuccin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/README.md b/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/README.md
new file mode 100644
index 0000000..20840dc
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/README.md
@@ -0,0 +1,36 @@
+<div align="center">
+ <img src="https://github.com/sxyazi/yazi/blob/main/assets/logo.png?raw=true" alt="Yazi logo" width="20%">
+</div>
+
+<h3 align="center">
+ Catppuccin Mocha Flavor for <a href="https://github.com/sxyazi/yazi">Yazi</a>
+</h3>
+
+## 👀 Preview
+
+<img src="preview.png" width="600" />
+
+## 🎨 Installation
+
+```sh
+ya pkg add yazi-rs/flavors:catppuccin-mocha
+```
+
+## ⚙️ Usage
+
+Set the content of your `theme.toml` to enable it as your _dark_ flavor:
+
+```toml
+[flavor]
+dark = "catppuccin-mocha"
+```
+
+Make sure your `theme.toml` doesn't contain anything other than `[flavor]`, unless you want to override certain styles of this flavor.
+
+See the [Yazi flavor documentation](https://yazi-rs.github.io/docs/flavors/overview) for more details.
+
+## 📜 License
+
+The flavor is MIT-licensed, and the included tmTheme is also MIT-licensed.
+
+Check the [LICENSE](LICENSE) and [LICENSE-tmtheme](LICENSE-tmtheme) file for more details.
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/flavor.toml b/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/flavor.toml
new file mode 100644
index 0000000..39a3ef5
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/flavor.toml
@@ -0,0 +1,189 @@
+# vim:fileencoding=utf-8:foldmethod=marker
+
+# : Manager {{{
+
+[mgr]
+cwd = { fg = "#94e2d5" }
+
+# Hovered
+hovered = { reversed = true }
+preview_hovered = { underline = true }
+
+# Find
+find_keyword = { fg = "#f9e2af", bold = true, italic = true, underline = true }
+find_position = { fg = "#f5c2e7", bg = "reset", bold = true, italic = true }
+
+# Marker
+marker_copied = { fg = "#a6e3a1", bg = "#a6e3a1" }
+marker_cut = { fg = "#f38ba8", bg = "#f38ba8" }
+marker_marked = { fg = "#94e2d5", bg = "#94e2d5" }
+marker_selected = { fg = "#f9e2af", bg = "#f9e2af" }
+
+# Count
+count_copied = { fg = "#1e1e2e", bg = "#a6e3a1" }
+count_cut = { fg = "#1e1e2e", bg = "#f38ba8" }
+count_selected = { fg = "#1e1e2e", bg = "#f9e2af" }
+
+# Border
+border_symbol = "│"
+border_style = { fg = "#7f849c" }
+
+# : }}}
+
+
+# : Tabs {{{
+
+[tabs]
+active = { fg = "#1e1e2e", bg = "#89b4fa", bold = true }
+inactive = { fg = "#89b4fa", bg = "#313244" }
+
+# : }}}
+
+
+# : Mode {{{
+
+[mode]
+
+normal_main = { fg = "#1e1e2e", bg = "#89b4fa", bold = true }
+normal_alt = { fg = "#89b4fa", bg = "#313244" }
+
+# Select mode
+select_main = { fg = "#1e1e2e", bg = "#94e2d5", bold = true }
+select_alt = { fg = "#94e2d5", bg = "#313244" }
+
+# Unset mode
+unset_main = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
+unset_alt = { fg = "#f2cdcd", bg = "#313244" }
+
+# : }}}
+
+
+# : Status bar {{{
+
+[status]
+# Permissions
+perm_sep = { fg = "#7f849c" }
+perm_type = { fg = "#89b4fa" }
+perm_read = { fg = "#f9e2af" }
+perm_write = { fg = "#f38ba8" }
+perm_exec = { fg = "#a6e3a1" }
+
+# Progress
+progress_label = { fg = "#ffffff", bold = true }
+progress_normal = { fg = "#89b4fa", bg = "#45475a" }
+progress_error = { fg = "#89b4fa", bg = "#f38ba8" }
+
+# : }}}
+
+
+# : Pick {{{
+
+[pick]
+border = { fg = "#89b4fa" }
+active = { fg = "#f5c2e7", bold = true }
+inactive = {}
+
+# : }}}
+
+
+# : Input {{{
+
+[input]
+border = { fg = "#89b4fa" }
+title = {}
+value = {}
+selected = { reversed = true }
+
+# : }}}
+
+
+# : Completion {{{
+
+[cmp]
+border = { fg = "#89b4fa" }
+
+# : }}}
+
+
+# : Tasks {{{
+
+[tasks]
+border = { fg = "#89b4fa" }
+title = {}
+hovered = { fg = "#f5c2e7", bold = true }
+
+# : }}}
+
+
+# : Which {{{
+
+[which]
+mask = { bg = "#313244" }
+cand = { fg = "#94e2d5" }
+rest = { fg = "#9399b2" }
+desc = { fg = "#f5c2e7" }
+separator = "  "
+separator_style = { fg = "#585b70" }
+
+# : }}}
+
+
+# : Help {{{
+
+[help]
+on = { fg = "#94e2d5" }
+run = { fg = "#f5c2e7" }
+hovered = { reversed = true, bold = true }
+footer = { fg = "#313244", bg = "#cdd6f4" }
+
+# : }}}
+
+
+# : Spotter {{{
+
+[spot]
+border = { fg = "#89b4fa" }
+title = { fg = "#89b4fa" }
+tbl_col = { fg = "#94e2d5" }
+tbl_cell = { fg = "#f5c2e7", bg = "#45475a" }
+
+# : }}}
+
+
+# : Notification {{{
+
+[notify]
+title_info = { fg = "#a6e3a1" }
+title_warn = { fg = "#f9e2af" }
+title_error = { fg = "#f38ba8" }
+
+# : }}}
+
+
+# : File-specific styles {{{
+
+[filetype]
+
+rules = [
+ # Images
+ { mime = "image/*", fg = "#94e2d5" },
+
+ # Media
+ { mime = "{audio,video}/*", fg = "#f9e2af" },
+
+ # Archives
+ { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "#f5c2e7" },
+
+ # Documents
+ { mime = "application/{pdf,doc,rtf}", fg = "#a6e3a1" },
+
+ # Fallback
+ { url = "*", fg = "#cdd6f4" },
+ { url = "*/", fg = "#89b4fa" },
+
+ # TODO: remove
+ { name = "*", fg = "#cdd6f4" },
+ { name = "*/", fg = "#89b4fa" }
+]
+
+# : }}}
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/preview.png b/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/preview.png
new file mode 100644
index 0000000..a684ec8
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/preview.png
Binary files differ
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/tmtheme.xml b/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/tmtheme.xml
new file mode 100644
index 0000000..c7781ce
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/tmtheme.xml
@@ -0,0 +1,2112 @@
+<?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>Catppuccin Mocha</string>
+ <key>semanticClass</key>
+ <string>theme.dark.catppuccin-mocha</string>
+ <key>uuid</key>
+ <string>627ce890-fabb-4d39-9819-7be71f4bdca7</string>
+ <key>author</key>
+ <string>Catppuccin Org</string>
+ <key>colorSpaceName</key>
+ <string>sRGB</string>
+ <key>settings</key>
+ <array>
+ <dict>
+ <key>settings</key>
+ <dict>
+ <key>background</key>
+ <string>#1e1e2e</string>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ <key>caret</key>
+ <string>#f5e0dc</string>
+ <key>lineHighlight</key>
+ <string>#313244</string>
+ <key>misspelling</key>
+ <string>#f38ba8</string>
+ <key>accent</key>
+ <string>#cba6f7</string>
+ <key>selection</key>
+ <string>#9399b240</string>
+ <key>activeGuide</key>
+ <string>#45475a</string>
+ <key>findHighlight</key>
+ <string>#3e5767</string>
+ <key>gutterForeground</key>
+ <string>#7f849c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Basic text &amp; variable names (incl. leading punctuation)</string>
+ <key>scope</key>
+ <string>text, source, variable.other.readwrite, punctuation.definition.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Parentheses, Brackets, Braces</string>
+ <key>scope</key>
+ <string>punctuation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#9399b2</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Comments</string>
+ <key>scope</key>
+ <string>comment, punctuation.definition.comment</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#9399b2</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>string, punctuation.definition.string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>constant.character.escape</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Booleans, constants, numbers</string>
+ <key>scope</key>
+ <string>constant.numeric, variable.other.constant, entity.name.constant, constant.language.boolean, constant.language.false, constant.language.true, keyword.other.unit.user-defined, keyword.other.unit.suffix.floating-point</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.name.tag.documentation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Punctuation</string>
+ <key>scope</key>
+ <string>keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Classes</string>
+ <key>scope</key>
+ <string>entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Enum</string>
+ <key>scope</key>
+ <string>entity.name.enum</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Enum member</string>
+ <key>scope</key>
+ <string>meta.enum variable.other.readwrite, variable.other.enummember</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Object properties</string>
+ <key>scope</key>
+ <string>meta.property.object</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Types</string>
+ <key>scope</key>
+ <string>meta.type, meta.type-alias, support.type, entity.name.type</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Decorators</string>
+ <key>scope</key>
+ <string>meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>variable.parameter, meta.function.parameters</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Built-ins</string>
+ <key>scope</key>
+ <string>constant.language, support.function.builtin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.other.attribute-name.documentation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Preprocessor directives</string>
+ <key>scope</key>
+ <string>keyword.control.directive, punctuation.definition.directive</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Type parameters</string>
+ <key>scope</key>
+ <string>punctuation.definition.typeparameters</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Namespaces</string>
+ <key>scope</key>
+ <string>entity.name.namespace</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Property names (left hand assignments in json/yaml/css)</string>
+ <key>scope</key>
+ <string>support.type.property-name.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>This/Self keyword</string>
+ <key>scope</key>
+ <string>variable.language.this, variable.language.this punctuation.definition.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Object properties</string>
+ <key>scope</key>
+ <string>variable.object.property</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>String template interpolation</string>
+ <key>scope</key>
+ <string>string.template variable, string variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>`new` as bold</string>
+ <key>scope</key>
+ <string>keyword.operator.new</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ extern keyword</string>
+ <key>scope</key>
+ <string>storage.modifier.specifier.extern.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ scope resolution</string>
+ <key>scope</key>
+ <string>entity.name.scope-resolution.template.call.cpp, entity.name.scope-resolution.parameter.cpp, entity.name.scope-resolution.cpp, entity.name.scope-resolution.function.definition.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ doc keywords</string>
+ <key>scope</key>
+ <string>storage.type.class.doxygen</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ operators</string>
+ <key>scope</key>
+ <string>storage.modifier.reference.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C# Interpolated Strings</string>
+ <key>scope</key>
+ <string>meta.interpolation.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C# xml-style docs</string>
+ <key>scope</key>
+ <string>comment.block.documentation.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Classes, reflecting the className color in JSX</string>
+ <key>scope</key>
+ <string>source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Operators</string>
+ <key>scope</key>
+ <string>punctuation.separator.operator.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Pseudo classes</string>
+ <key>scope</key>
+ <string>source.css entity.other.attribute-name.pseudo-class</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.css constant.other.unicode-range</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.css variable.parameter.url</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS vendored property names</string>
+ <key>scope</key>
+ <string>support.type.vendored.property-name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Less/SCSS right-hand variables (@/$-prefixed)</string>
+ <key>scope</key>
+ <string>source.css meta.property-value variable, source.css meta.property-value variable.other.less, source.css meta.property-value variable.other.less punctuation.definition.variable.less, meta.definition.variable.scss</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS variables (--prefixed)</string>
+ <key>scope</key>
+ <string>source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS Percentage values, styled the same as numbers</string>
+ <key>scope</key>
+ <string>keyword.other.unit.percentage.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS Attribute selectors, styled the same as strings</string>
+ <key>scope</key>
+ <string>source.css meta.attribute-selector</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON/YAML keys, other left-hand assignments</string>
+ <key>scope</key>
+ <string>keyword.other.definition.ini, punctuation.support.type.property-name.json, support.type.property-name.json, punctuation.support.type.property-name.toml, support.type.property-name.toml, entity.name.tag.yaml, punctuation.support.type.property-name.yaml, support.type.property-name.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON/YAML constants</string>
+ <key>scope</key>
+ <string>constant.language.json, constant.language.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML anchors</string>
+ <key>scope</key>
+ <string>entity.name.type.anchor.yaml, variable.other.alias.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TOML tables / ini groups</string>
+ <key>scope</key>
+ <string>support.type.property-name.table, entity.name.section.group-title.ini</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TOML dates</string>
+ <key>scope</key>
+ <string>constant.other.time.datetime.offset.toml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML anchor puctuation</string>
+ <key>scope</key>
+ <string>punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML triple dashes</string>
+ <key>scope</key>
+ <string>entity.other.document.begin.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markup Diff</string>
+ <key>scope</key>
+ <string>markup.changed.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff</string>
+ <key>scope</key>
+ <string>meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff Inserted</string>
+ <key>scope</key>
+ <string>markup.inserted.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff Deleted</string>
+ <key>scope</key>
+ <string>markup.deleted.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>dotenv left-hand side assignments</string>
+ <key>scope</key>
+ <string>variable.other.env</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>dotenv reference to existing env variable</string>
+ <key>scope</key>
+ <string>string.quoted variable.other.env</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GDScript functions</string>
+ <key>scope</key>
+ <string>support.function.builtin.gdscript</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GDScript constants</string>
+ <key>scope</key>
+ <string>constant.language.gdscript</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Comment keywords</string>
+ <key>scope</key>
+ <string>comment meta.annotation.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>go:embed, go:build, etc.</string>
+ <key>scope</key>
+ <string>comment meta.annotation.parameters.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Go constants (nil, true, false)</string>
+ <key>scope</key>
+ <string>constant.language.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL variables</string>
+ <key>scope</key>
+ <string>variable.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL aliases</string>
+ <key>scope</key>
+ <string>string.unquoted.alias.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f2cdcd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL enum members</string>
+ <key>scope</key>
+ <string>constant.character.enum.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL field in types</string>
+ <key>scope</key>
+ <string>meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f2cdcd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML DOCTYPE as keyword</string>
+ <key>scope</key>
+ <string>keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML-like &lt;tags/&gt;</string>
+ <key>scope</key>
+ <string>entity.name.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Special characters like &amp;amp;</string>
+ <key>scope</key>
+ <string>text.html constant.character.entity, text.html constant.character.entity punctuation, constant.character.entity.xml, constant.character.entity.xml punctuation, constant.character.entity.js.jsx, constant.charactger.entity.js.jsx punctuation, constant.character.entity.tsx, constant.character.entity.tsx punctuation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML tag attribute values</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Components</string>
+ <key>scope</key>
+ <string>support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Annotations</string>
+ <key>scope</key>
+ <string>punctuation.definition.annotation, storage.type.annotation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Java enums</string>
+ <key>scope</key>
+ <string>constant.other.enum.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Java imports</string>
+ <key>scope</key>
+ <string>storage.modifier.import.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Javadoc</string>
+ <key>scope</key>
+ <string>comment.block.javadoc.java keyword.other.documentation.javadoc.java</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Exported Variable</string>
+ <key>scope</key>
+ <string>meta.export variable.other.readwrite.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JS/TS constants &amp; properties</string>
+ <key>scope</key>
+ <string>variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSDoc; these are mainly params, so styled as such</string>
+ <key>scope</key>
+ <string>variable.other.jsdoc, comment.block.documentation variable.other</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSDoc keywords</string>
+ <key>scope</key>
+ <string>storage.type.class.jsdoc</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>support.type.object.console.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Node constants as keywords (module, etc.)</string>
+ <key>scope</key>
+ <string>support.constant.node, support.type.object.module.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>implements as keyword</string>
+ <key>scope</key>
+ <string>storage.modifier.implements</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Builtin types</string>
+ <key>scope</key>
+ <string>constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>variable.parameter.generic</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Arrow functions</string>
+ <key>scope</key>
+ <string>keyword.declaration.function.arrow.js, storage.type.function.arrow.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)</string>
+ <key>scope</key>
+ <string>punctuation.decorator.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Extra JS/TS keywords</string>
+ <key>scope</key>
+ <string>keyword.operator.expression.in.js, keyword.operator.expression.in.ts, keyword.operator.expression.infer.ts, keyword.operator.expression.instanceof.js, keyword.operator.expression.instanceof.ts, keyword.operator.expression.is, keyword.operator.expression.keyof.ts, keyword.operator.expression.of.js, keyword.operator.expression.of.ts, keyword.operator.expression.typeof.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia macros</string>
+ <key>scope</key>
+ <string>support.function.macro.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia language constants (true, false)</string>
+ <key>scope</key>
+ <string>constant.language.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia other constants (these seem to be arguments inside arrays)</string>
+ <key>scope</key>
+ <string>constant.other.symbol.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX preamble</string>
+ <key>scope</key>
+ <string>text.tex keyword.control.preamble</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX be functions</string>
+ <key>scope</key>
+ <string>text.tex support.function.be</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX math</string>
+ <key>scope</key>
+ <string>constant.other.general.math.tex</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f2cdcd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Liquid Builtin Objects &amp; User Defined Variables</string>
+ <key>scope</key>
+ <string>variable.language.liquid</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Lua docstring keywords</string>
+ <key>scope</key>
+ <string>comment.line.double-dash.documentation.lua storage.type.annotation.lua</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Lua docstring variables</string>
+ <key>scope</key>
+ <string>comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.1.markdown punctuation.definition.heading.markdown, heading.1.markdown, heading.1.quarto punctuation.definition.heading.quarto, heading.1.quarto, markup.heading.atx.1.mdx, markup.heading.atx.1.mdx punctuation.definition.heading.mdx, markup.heading.setext.1.markdown, markup.heading.heading-0.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.2.markdown punctuation.definition.heading.markdown, heading.2.markdown, heading.2.quarto punctuation.definition.heading.quarto, heading.2.quarto, markup.heading.atx.2.mdx, markup.heading.atx.2.mdx punctuation.definition.heading.mdx, markup.heading.setext.2.markdown, markup.heading.heading-1.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.3.markdown punctuation.definition.heading.markdown, heading.3.markdown, heading.3.quarto punctuation.definition.heading.quarto, heading.3.quarto, markup.heading.atx.3.mdx, markup.heading.atx.3.mdx punctuation.definition.heading.mdx, markup.heading.heading-2.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.4.markdown punctuation.definition.heading.markdown, heading.4.markdown, heading.4.quarto punctuation.definition.heading.quarto, heading.4.quarto, markup.heading.atx.4.mdx, markup.heading.atx.4.mdx punctuation.definition.heading.mdx, markup.heading.heading-3.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.5.markdown punctuation.definition.heading.markdown, heading.5.markdown, heading.5.quarto punctuation.definition.heading.quarto, heading.5.quarto, markup.heading.atx.5.mdx, markup.heading.atx.5.mdx punctuation.definition.heading.mdx, markup.heading.heading-4.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#74c7ec</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.6.markdown punctuation.definition.heading.markdown, heading.6.markdown, heading.6.quarto punctuation.definition.heading.quarto, heading.6.quarto, markup.heading.atx.6.mdx, markup.heading.atx.6.mdx punctuation.definition.heading.mdx, markup.heading.heading-5.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#b4befe</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.bold</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.italic</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.strikethrough</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6adc8</string>
+ <key>fontStyle</key>
+ <string>strikethrough</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown auto links</string>
+ <key>scope</key>
+ <string>punctuation.definition.link, markup.underline.link</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown links</string>
+ <key>scope</key>
+ <string>text.html.markdown punctuation.definition.link.title, text.html.quarto punctuation.definition.link.title, string.other.link.title.markdown, string.other.link.title.quarto, markup.link, punctuation.definition.constant.markdown, punctuation.definition.constant.quarto, constant.other.reference.link.markdown, constant.other.reference.link.quarto, markup.substitution.attribute-reference</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#b4befe</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown code spans</string>
+ <key>scope</key>
+ <string>punctuation.definition.raw.markdown, punctuation.definition.raw.quarto, markup.inline.raw.string.markdown, markup.inline.raw.string.quarto, markup.raw.block.markdown, markup.raw.block.quarto</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown triple backtick language identifier</string>
+ <key>scope</key>
+ <string>fenced_code.block.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown triple backticks</string>
+ <key>scope</key>
+ <string>markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#9399b2</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown quotes</string>
+ <key>scope</key>
+ <string>markup.quote, punctuation.definition.quote.begin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown separators</string>
+ <key>scope</key>
+ <string>meta.separator.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown list bullets</string>
+ <key>scope</key>
+ <string>punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Quarto headings</string>
+ <key>scope</key>
+ <string>markup.heading.quarto</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix attribute names</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix parameter names</string>
+ <key>scope</key>
+ <string>variable.parameter.name.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix interpolated parameter names</string>
+ <key>scope</key>
+ <string>meta.embedded variable.parameter.name.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#b4befe</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix paths</string>
+ <key>scope</key>
+ <string>string.unquoted.path.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Attributes</string>
+ <key>scope</key>
+ <string>support.attribute.builtin, meta.attribute.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Parameters (needed for the leading dollar sign)</string>
+ <key>scope</key>
+ <string>meta.function.parameters.php punctuation.definition.variable.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Constants (null, __FILE__, etc.)</string>
+ <key>scope</key>
+ <string>constant.language.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP functions</string>
+ <key>scope</key>
+ <string>text.html.php support.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHPdoc keywords</string>
+ <key>scope</key>
+ <string>keyword.other.phpdoc.php</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python argument functions reset to text, otherwise they inherit blue from function-call</string>
+ <key>scope</key>
+ <string>support.variable.magic.python, meta.function-call.arguments.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python double underscore functions</string>
+ <key>scope</key>
+ <string>support.function.magic.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python `self` keyword</string>
+ <key>scope</key>
+ <string>variable.parameter.function.language.special.self.python, variable.language.special.self.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python keyword flow/logical (for ... in)</string>
+ <key>scope</key>
+ <string>keyword.control.flow.python, keyword.operator.logical.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python storage type</string>
+ <key>scope</key>
+ <string>storage.type.function.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function support</string>
+ <key>scope</key>
+ <string>support.token.decorator.python, meta.function.decorator.identifier.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function calls</string>
+ <key>scope</key>
+ <string>meta.function-call.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function decorators</string>
+ <key>scope</key>
+ <string>entity.name.function.decorator.python, punctuation.definition.decorator.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python placeholder reset to normal string</string>
+ <key>scope</key>
+ <string>constant.character.format.placeholder.other.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python exception &amp; builtins such as exit()</string>
+ <key>scope</key>
+ <string>support.type.exception.python, support.function.builtin.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>entity.name.type</string>
+ <key>scope</key>
+ <string>support.type.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python constants (True/False)</string>
+ <key>scope</key>
+ <string>constant.language.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Arguments accessed later in the function body</string>
+ <key>scope</key>
+ <string>meta.indexed-name.python, meta.item-access.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python f-strings/binary/unicode storage types</string>
+ <key>scope</key>
+ <string>storage.type.string.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python type hints</string>
+ <key>scope</key>
+ <string>meta.function.parameters.python</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex string begin/end in JS/TS</string>
+ <key>scope</key>
+ <string>string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex anchors (^, $)</string>
+ <key>scope</key>
+ <string>keyword.control.anchor.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex regular string match</string>
+ <key>scope</key>
+ <string>string.regexp.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex group parenthesis &amp; backreference (\1, \2, \3, ...)</string>
+ <key>scope</key>
+ <string>punctuation.definition.group.regexp, keyword.other.back-reference.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex character class []</string>
+ <key>scope</key>
+ <string>punctuation.definition.character-class.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex character classes (\d, \w, \s)</string>
+ <key>scope</key>
+ <string>constant.other.character-class.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex range</string>
+ <key>scope</key>
+ <string>constant.other.character-class.range.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5e0dc</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex quantifier</string>
+ <key>scope</key>
+ <string>keyword.operator.quantifier.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex constant/numeric</string>
+ <key>scope</key>
+ <string>constant.character.numeric.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds</string>
+ <key>scope</key>
+ <string>punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust attribute</string>
+ <key>scope</key>
+ <string>meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust attribute strings</string>
+ <key>scope</key>
+ <string>meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust keyword</string>
+ <key>scope</key>
+ <string>entity.name.function.macro.rules.rust, storage.type.module.rust, storage.modifier.rust, storage.type.struct.rust, storage.type.enum.rust, storage.type.trait.rust, storage.type.union.rust, storage.type.impl.rust, storage.type.rust, storage.type.function.rust, storage.type.type.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust u/i32, u/i64, etc.</string>
+ <key>scope</key>
+ <string>entity.name.type.numeric.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust generic</string>
+ <key>scope</key>
+ <string>meta.generic.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust impl</string>
+ <key>scope</key>
+ <string>entity.name.impl.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust module</string>
+ <key>scope</key>
+ <string>entity.name.module.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust trait</string>
+ <key>scope</key>
+ <string>entity.name.trait.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust struct</string>
+ <key>scope</key>
+ <string>storage.type.source.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust union</string>
+ <key>scope</key>
+ <string>entity.name.union.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust enum member</string>
+ <key>scope</key>
+ <string>meta.enum.rust storage.type.source.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust macro</string>
+ <key>scope</key>
+ <string>support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust lifetime</string>
+ <key>scope</key>
+ <string>storage.modifier.lifetime.rust, entity.name.type.lifetime</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust string formatting</string>
+ <key>scope</key>
+ <string>string.quoted.double.rust constant.other.placeholder.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust return type generic</string>
+ <key>scope</key>
+ <string>meta.function.return-type.rust meta.generic.rust storage.type.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust functions</string>
+ <key>scope</key>
+ <string>meta.function.call.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust angle brackets</string>
+ <key>scope</key>
+ <string>punctuation.brackets.angle.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust constants</string>
+ <key>scope</key>
+ <string>constant.other.caps.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust function parameters</string>
+ <key>scope</key>
+ <string>meta.function.definition.rust variable.other.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust closure variables</string>
+ <key>scope</key>
+ <string>meta.function.call.rust variable.other.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust self</string>
+ <key>scope</key>
+ <string>variable.language.self.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust metavariable names</string>
+ <key>scope</key>
+ <string>variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell shebang</string>
+ <key>scope</key>
+ <string>comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell shebang command</string>
+ <key>scope</key>
+ <string>comment.line.shebang constant.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell interpolated command</string>
+ <key>scope</key>
+ <string>meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation, meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell interpolated command variable</string>
+ <key>scope</key>
+ <string>meta.string meta.interpolation.parameter.shell variable.other.readwrite</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell EOF</string>
+ <key>scope</key>
+ <string>entity.name.tag.heredoc.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell quoted variable</string>
+ <key>scope</key>
+ <string>string.quoted.double.shell variable.other.normal.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.typst</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON Keys</string>
+ <key>scope</key>
+ <string>source.json meta.mapping.key string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON key surrounding quotes</string>
+ <key>scope</key>
+ <string>source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#9399b2</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.commands.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.env.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Man page options</string>
+ <key>scope</key>
+ <string>entity.name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.1.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.2.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ </array>
+ </dict>
+</plist> \ No newline at end of file
diff --git a/mac/.config/yazi/flavors.bak/dracula.yazi/LICENSE b/mac/.config/yazi/flavors.bak/dracula.yazi/LICENSE
new file mode 100644
index 0000000..fb5b1d6
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/dracula.yazi/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 yazi-rs
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/mac/.config/yazi/flavors.bak/dracula.yazi/LICENSE-tmtheme b/mac/.config/yazi/flavors.bak/dracula.yazi/LICENSE-tmtheme
new file mode 100644
index 0000000..f9105d5
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/dracula.yazi/LICENSE-tmtheme
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2013-present Dracula Theme
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/mac/.config/yazi/flavors.bak/dracula.yazi/README.md b/mac/.config/yazi/flavors.bak/dracula.yazi/README.md
new file mode 100644
index 0000000..8429ef6
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/dracula.yazi/README.md
@@ -0,0 +1,36 @@
+<div align="center">
+ <img src="https://github.com/sxyazi/yazi/blob/main/assets/logo.png?raw=true" alt="Yazi logo" width="20%">
+</div>
+
+<h3 align="center">
+ Dracula Flavor for <a href="https://github.com/sxyazi/yazi">Yazi</a>
+</h3>
+
+## 👀 Preview
+
+<img src="preview.png" width="600" />
+
+## 🎨 Installation
+
+```sh
+ya pkg add yazi-rs/flavors:dracula
+```
+
+## ⚙️ Usage
+
+Set the content of your `theme.toml` to enable it as your _dark_ flavor:
+
+```toml
+[flavor]
+dark = "dracula"
+```
+
+Make sure your `theme.toml` doesn't contain anything other than `[flavor]`, unless you want to override certain styles of this flavor.
+
+See the [Yazi flavor documentation](https://yazi-rs.github.io/docs/flavors/overview) for more details.
+
+## 📜 License
+
+The flavor is MIT-licensed, and the included tmTheme is also MIT-licensed.
+
+Check the [LICENSE](LICENSE) and [LICENSE-tmtheme](LICENSE-tmtheme) file for more details.
diff --git a/mac/.config/yazi/flavors.bak/dracula.yazi/flavor.toml b/mac/.config/yazi/flavors.bak/dracula.yazi/flavor.toml
new file mode 100644
index 0000000..3434eb9
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/dracula.yazi/flavor.toml
@@ -0,0 +1,189 @@
+# vim:fileencoding=utf-8:foldmethod=marker
+
+# : Manager {{{
+
+[mgr]
+cwd = { fg = "#8be9fd" }
+
+# Hovered
+hovered = { reversed = true }
+preview_hovered = { underline = true }
+
+# Find
+find_keyword = { fg = "#f1fa8c", bold = true, italic = true, underline = true }
+find_position = { fg = "#ff79c6", bg = "reset", bold = true, italic = true }
+
+# Marker
+marker_copied = { fg = "#50fa7b", bg = "#50fa7b" }
+marker_cut = { fg = "#ff5555", bg = "#ff5555" }
+marker_marked = { fg = "#8be9fd", bg = "#8be9fd" }
+marker_selected = { fg = "#f1fa8c", bg = "#f1fa8c" }
+
+# Count
+count_copied = { fg = "#282a36", bg = "#50fa7b" }
+count_cut = { fg = "#282a36", bg = "#ff5555" }
+count_selected = { fg = "#282a36", bg = "#f1fa8c" }
+
+# Border
+border_symbol = "│"
+border_style = { fg = "#7282b5" }
+
+# : }}}
+
+
+# : Tabs {{{
+
+[tabs]
+active = { fg = "#282a36", bg = "#bd93f9", bold = true }
+inactive = { fg = "#bd93f9", bg = "#44475a" }
+
+# : }}}
+
+
+# : Mode {{{
+
+[mode]
+
+normal_main = { fg = "#282a36", bg = "#bd93f9", bold = true }
+normal_alt = { fg = "#bd93f9", bg = "#44475a" }
+
+# Select mode
+select_main = { fg = "#282a36", bg = "#8be9fd", bold = true }
+select_alt = { fg = "#8be9fd", bg = "#44475a" }
+
+# Unset mode
+unset_main = { fg = "#282a36", bg = "#ffb86c", bold = true }
+unset_alt = { fg = "#ffb86c", bg = "#44475a" }
+
+# : }}}
+
+
+# : Status bar {{{
+
+[status]
+# Permissions
+perm_sep = { fg = "#7282b5" }
+perm_type = { fg = "#bd93f9" }
+perm_read = { fg = "#f1fa8c" }
+perm_write = { fg = "#ff5555" }
+perm_exec = { fg = "#50fa7b" }
+
+# Progress
+progress_label = { fg = "#ffffff", bold = true }
+progress_normal = { fg = "#bd93f9", bg = "#63667d" }
+progress_error = { fg = "#bd93f9", bg = "#ff5555" }
+
+# : }}}
+
+
+# : Pick {{{
+
+[pick]
+border = { fg = "#bd93f9" }
+active = { fg = "#ff79c6", bold = true }
+inactive = {}
+
+# : }}}
+
+
+# : Input {{{
+
+[input]
+border = { fg = "#bd93f9" }
+title = {}
+value = {}
+selected = { reversed = true }
+
+# : }}}
+
+
+# : Completion {{{
+
+[cmp]
+border = { fg = "#bd93f9" }
+
+# : }}}
+
+
+# : Tasks {{{
+
+[tasks]
+border = { fg = "#bd93f9" }
+title = {}
+hovered = { fg = "#ff79c6", bold = true }
+
+# : }}}
+
+
+# : Which {{{
+
+[which]
+mask = { bg = "#44475a" }
+cand = { fg = "#8be9fd" }
+rest = { fg = "#8998c9" }
+desc = { fg = "#ff79c6" }
+separator = "  "
+separator_style = { fg = "#83869c" }
+
+# : }}}
+
+
+# : Help {{{
+
+[help]
+on = { fg = "#8be9fd" }
+run = { fg = "#ff79c6" }
+hovered = { reversed = true, bold = true }
+footer = { fg = "#44475a", bg = "#f8f8f2" }
+
+# : }}}
+
+
+# : Spotter {{{
+
+[spot]
+border = { fg = "#bd93f9" }
+title = { fg = "#bd93f9" }
+tbl_col = { fg = "#8be9fd" }
+tbl_cell = { fg = "#ff79c6", bg = "#63667d" }
+
+# : }}}
+
+
+# : Notification {{{
+
+[notify]
+title_info = { fg = "#50fa7b" }
+title_warn = { fg = "#f1fa8c" }
+title_error = { fg = "#ff5555" }
+
+# : }}}
+
+
+# : File-specific styles {{{
+
+[filetype]
+
+rules = [
+ # Images
+ { mime = "image/*", fg = "#8be9fd" },
+
+ # Media
+ { mime = "{audio,video}/*", fg = "#f1fa8c" },
+
+ # Archives
+ { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "#ff79c6" },
+
+ # Documents
+ { mime = "application/{pdf,doc,rtf}", fg = "#50fa7b" },
+
+ # Fallback
+ { url = "*", fg = "#f8f8f2" },
+ { url = "*/", fg = "#bd93f9" },
+
+ # TODO: remove
+ { name = "*", fg = "#f8f8f2" },
+ { name = "*/", fg = "#bd93f9" }
+]
+
+# : }}}
diff --git a/mac/.config/yazi/flavors.bak/dracula.yazi/preview.png b/mac/.config/yazi/flavors.bak/dracula.yazi/preview.png
new file mode 100644
index 0000000..7d8adf3
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/dracula.yazi/preview.png
Binary files differ
diff --git a/mac/.config/yazi/flavors.bak/dracula.yazi/tmtheme.xml b/mac/.config/yazi/flavors.bak/dracula.yazi/tmtheme.xml
new file mode 100644
index 0000000..c3434ec
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/dracula.yazi/tmtheme.xml
@@ -0,0 +1,940 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Dracula Theme v1.4.3
+#
+# https://github.com/dracula/sublime
+#
+# Copyright 2013-present, All rights reserved
+#
+# Code licensed under the MIT license
+#
+# @author Zeno Rocha <hi@zenorocha.com>
+-->
+
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>name</key>
+ <string>Dracula</string>
+ <key>settings</key>
+ <array>
+ <dict>
+ <key>settings</key>
+ <dict>
+ <key>background</key>
+ <string>#282a36</string>
+ <key>caret</key>
+ <string>#f8f8f0</string>
+ <key>block_caret</key>
+ <string>#999a9e</string>
+ <key>foreground</key>
+ <string>#f8f8f2</string>
+ <key>invisibles</key>
+ <string>#3B3A32</string>
+ <key>lineHighlight</key>
+ <string>#44475a</string>
+ <key>selection</key>
+ <string>#44475a</string>
+ <key>findHighlight</key>
+ <string>#effb7b</string>
+ <key>findHighlightForeground</key>
+ <string>#000000</string>
+ <key>selectionBorder</key>
+ <string>#222218</string>
+ <key>activeGuide</key>
+ <string>#9D550FB0</string>
+ <key>bracketsForeground</key>
+ <string>#F8F8F2A5</string>
+ <key>bracketsOptions</key>
+ <string>underline</string>
+ <key>bracketContentsForeground</key>
+ <string>#F8F8F2A5</string>
+ <key>bracketContentsOptions</key>
+ <string>underline</string>
+ <key>tagsOptions</key>
+ <string>stippled_underline</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Comment</string>
+ <key>scope</key>
+ <string>comment</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#6272a4</string>
+ <key>fontStyle</key>
+ <string></string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>String</string>
+ <key>scope</key>
+ <string>string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f1fa8c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Number</string>
+ <key>scope</key>
+ <string>constant.numeric</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#bd93f9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Built-in constant</string>
+ <key>scope</key>
+ <string>constant.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#bd93f9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>User-defined constant</string>
+ <key>scope</key>
+ <string>constant.character, constant.other</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#bd93f9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Variable</string>
+ <key>scope</key>
+ <string>variable</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string></string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Ruby's @variable</string>
+ <key>scope</key>
+ <string>variable.other.readwrite.instance</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string></string>
+ <key>foreground</key>
+ <string>#ffb86c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>String interpolation</string>
+ <key>scope</key>
+ <string>constant.character.escaped, constant.character.escape, string source, string source.ruby</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string></string>
+ <key>foreground</key>
+ <string>#ff79c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Ruby Regexp</string>
+ <key>scope</key>
+ <string>source.ruby string.regexp.classic.ruby,source.ruby string.regexp.mod-r.ruby</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string></string>
+ <key>foreground</key>
+ <string>#ff5555</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Keyword</string>
+ <key>scope</key>
+ <string>keyword</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ff79c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Storage</string>
+ <key>scope</key>
+ <string>storage</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string></string>
+ <key>foreground</key>
+ <string>#ff79c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Storage type</string>
+ <key>scope</key>
+ <string>storage.type</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ <key>foreground</key>
+ <string>#8be9fd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Storage Type Namespace</string>
+ <key>scope</key>
+ <string>storage.type.namespace</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ <key>foreground</key>
+ <string>#8be9fd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Storage Type Class</string>
+ <key>scope</key>
+ <string>storage.type.class</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ <key>foreground</key>
+ <string>#ff79c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Class name</string>
+ <key>scope</key>
+ <string>entity.name.class</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>underline</string>
+ <key>foreground</key>
+ <string>#8be9fd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Meta Path</string>
+ <key>scope</key>
+ <string>meta.path</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>underline</string>
+ <key>foreground</key>
+ <string>#66d9ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Inherited class</string>
+ <key>scope</key>
+ <string>entity.other.inherited-class</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic underline</string>
+ <key>foreground</key>
+ <string>#8be9fd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Function name</string>
+ <key>scope</key>
+ <string>entity.name.function</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string></string>
+ <key>foreground</key>
+ <string>#50fa7b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Function argument</string>
+ <key>scope</key>
+ <string>variable.parameter</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ <key>foreground</key>
+ <string>#ffb86c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Tag name</string>
+ <key>scope</key>
+ <string>entity.name.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string></string>
+ <key>foreground</key>
+ <string>#ff79c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Tag attribute</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string></string>
+ <key>foreground</key>
+ <string>#50fa7b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Library function</string>
+ <key>scope</key>
+ <string>support.function</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string></string>
+ <key>foreground</key>
+ <string>#8be9fd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Library constant</string>
+ <key>scope</key>
+ <string>support.constant</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string></string>
+ <key>foreground</key>
+ <string>#6be5fd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Library class&#x2f;type</string>
+ <key>scope</key>
+ <string>support.type, support.class</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ <key>foreground</key>
+ <string>#66d9ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Library variable</string>
+ <key>scope</key>
+ <string>support.other.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string></string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Support Other Namespace</string>
+ <key>scope</key>
+ <string>support.other.namespace</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ <key>foreground</key>
+ <string>#66d9ef</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Invalid</string>
+ <key>scope</key>
+ <string>invalid</string>
+ <key>settings</key>
+ <dict>
+ <key>background</key>
+ <string>#ff79c6</string>
+ <key>fontStyle</key>
+ <string></string>
+ <key>foreground</key>
+ <string>#F8F8F0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Invalid deprecated</string>
+ <key>scope</key>
+ <string>invalid.deprecated</string>
+ <key>settings</key>
+ <dict>
+ <key>background</key>
+ <string>#bd93f9</string>
+ <key>foreground</key>
+ <string>#F8F8F0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON String</string>
+ <key>scope</key>
+ <string>meta.structure.dictionary.json string.quoted.double.json</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#CFCFC2</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>diff.header</string>
+ <key>scope</key>
+ <string>meta.diff, meta.diff.header</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#6272a4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>diff.deleted</string>
+ <key>scope</key>
+ <string>markup.deleted</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ff79c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>diff.inserted</string>
+ <key>scope</key>
+ <string>markup.inserted</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#50fa7b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>diff.changed</string>
+ <key>scope</key>
+ <string>markup.changed</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#E6DB74</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>constant.numeric.line-number.find-in-files - match</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#bd93f9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.name.filename</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#E6DB74</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>message.error</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#F83333</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON Punctuation</string>
+ <key>scope</key>
+ <string>punctuation.definition.string.begin.json - meta.structure.dictionary.value.json, punctuation.definition.string.end.json - meta.structure.dictionary.value.json</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#EEEEEE</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON Structure</string>
+ <key>scope</key>
+ <string>meta.structure.dictionary.json string.quoted.double.json</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8be9fd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON String</string>
+ <key>scope</key>
+ <string>meta.structure.dictionary.value.json string.quoted.double.json</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f1fa8c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON: 6 deep</string>
+ <key>scope</key>
+ <string>meta meta meta meta meta meta meta.structure.dictionary.value string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#50fa7b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON: 5 deep</string>
+ <key>scope</key>
+ <string>meta meta meta meta meta meta.structure.dictionary.value string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ffb86c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON: 4 deep</string>
+ <key>scope</key>
+ <string>meta meta meta meta meta.structure.dictionary.value string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ff79c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON: 3 deep</string>
+ <key>scope</key>
+ <string>meta meta meta meta.structure.dictionary.value string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#bd93f9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON: 2 deep</string>
+ <key>scope</key>
+ <string>meta meta meta.structure.dictionary.value string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#50fa7b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON: 1 deep</string>
+ <key>scope</key>
+ <string>meta meta.structure.dictionary.value string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ffb86c</string>
+ </dict>
+ </dict>
+
+ <!-- Markdown Tweaks -->
+ <dict>
+ <key>name</key>
+ <string>Markup: strike</string>
+ <key>scope</key>
+ <string>markup.strike</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ <key>foreground</key>
+ <string>#FFB86C</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markup: bold</string>
+ <key>scope</key>
+ <string>markup.bold</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ <key>foreground</key>
+ <string>#FFB86C</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markup: italic</string>
+ <key>scope</key>
+ <string>markup.italic</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ <key>foreground</key>
+ <string>#FFB86C</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown: heading</string>
+ <key>scope</key>
+ <string>markup.heading</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8BE9FD</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown: List Items Punctuation</string>
+ <key>scope</key>
+ <string>punctuation.definition.list_item.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#FF79C6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown: Blockquote</string>
+ <key>scope</key>
+ <string>markup.quote</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ <key>foreground</key>
+ <string>#6272A4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown: Blockquote Punctuation</string>
+ <key>scope</key>
+ <string>punctuation.definition.blockquote.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ <key>background</key>
+ <string>#6272A4</string>
+ <key>foreground</key>
+ <string>#6272A4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown: Separator</string>
+ <key>scope</key>
+ <string>meta.separator</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#6272A4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markup: raw inline</string>
+ <key>scope</key>
+ <string>text.html.markdown markup.raw.inline</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#50FA7B</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markup: underline</string>
+ <key>scope</key>
+ <string>markup.underline</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>underline</string>
+ <key>foreground</key>
+ <string>#BD93F9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markup: Raw block</string>
+ <key>scope</key>
+ <string>markup.raw.block</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#CFCFC2</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown: Raw Block fenced source</string>
+ <key>scope</key>
+ <string>markup.raw.block.fenced.markdown source</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#F8F8F2</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown: Fenced Bode Block</string>
+ <key>scope</key>
+ <string>punctuation.definition.fenced.markdown, variable.language.fenced.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ <key>foreground</key>
+ <string>#6272A4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown: Fenced Language</string>
+ <key>scope</key>
+ <string>variable.language.fenced.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ <key>foreground</key>
+ <string>#6272A4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Punctuation Accessor</string>
+ <key>scope</key>
+ <string>punctuation.accessor</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#FF79C6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Meta Function Return Type</string>
+ <key>scope</key>
+ <string>meta.function.return-type</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#FF79C6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Punctuation Section Block Begin</string>
+ <key>scope</key>
+ <string>punctuation.section.block.begin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ffffff</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Punctuation Section Block End</string>
+ <key>scope</key>
+ <string>punctuation.section.block.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ffffff</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Punctuation Section Embedded Begin</string>
+ <key>scope</key>
+ <string>punctuation.section.embedded.begin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ff79c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Punctuation Section Embedded End</string>
+ <key>scope</key>
+ <string>punctuation.section.embedded.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ff79c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Punctuation Separator Namespace</string>
+ <key>scope</key>
+ <string>punctuation.separator.namespace</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ff79c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Variable Function</string>
+ <key>scope</key>
+ <string>variable.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#50fa7b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Variable Other</string>
+ <key>scope</key>
+ <string>variable.other</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ffffff</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Variable Language</string>
+ <key>scope</key>
+ <string>variable.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#bd93f9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Entity Name Module Ruby</string>
+ <key>scope</key>
+ <string>entity.name.module.ruby</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8be9fd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Entity Name Constant Ruby</string>
+ <key>scope</key>
+ <string>entity.name.constant.ruby</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#bd93f9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Support Function Builtin Ruby</string>
+ <key>scope</key>
+ <string>support.function.builtin.ruby</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ffffff</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Storage Type Namespace CS</string>
+ <key>scope</key>
+ <string>storage.type.namespace.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ff79c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Entity Name Namespace CS</string>
+ <key>scope</key>
+ <string>entity.name.namespace.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8be9fd</string>
+ </dict>
+ </dict>
+ </array>
+ <key>uuid</key>
+ <string>83091B89-765E-4F0D-9275-0EC6CB084126</string>
+ <key>colorSpaceName</key>
+ <string>sRGB</string>
+ <key>semanticClass</key>
+ <string>theme.dracula</string>
+ <key>author</key>
+ <string>Zeno Rocha</string>
+</dict>
+</plist>
diff --git a/mac/.config/yazi/flavors.bak/everforest-medium.yazi b/mac/.config/yazi/flavors.bak/everforest-medium.yazi
new file mode 160000
+Subproject 0158f0f6ce19c9bbc37550a7bed77d67b3fa4e7
diff --git a/mac/.config/yazi/flavors.bak/gruvbox-dark.yazi b/mac/.config/yazi/flavors.bak/gruvbox-dark.yazi
new file mode 160000
+Subproject e5e1aefbfb5641b487cb4a11ccbc57346ec8e13
diff --git a/mac/.config/yazi/flavors.bak/kanagawa-dragon.yazi b/mac/.config/yazi/flavors.bak/kanagawa-dragon.yazi
new file mode 160000
+Subproject 49055274ff53772a13a8c092188e4f6d148d169
diff --git a/mac/.config/yazi/flavors.bak/kanagawa-lotus.yazi b/mac/.config/yazi/flavors.bak/kanagawa-lotus.yazi
new file mode 160000
+Subproject 4275a1a96243c8e7d12057488bce1360a3c7475
diff --git a/mac/.config/yazi/flavors.bak/kanagawa.yazi b/mac/.config/yazi/flavors.bak/kanagawa.yazi
new file mode 160000
+Subproject a0b1d9dec31387b5f8a82c96044e6419b6c4653
diff --git a/mac/.config/yazi/flavors.bak/rose-pine-moon.yazi b/mac/.config/yazi/flavors.bak/rose-pine-moon.yazi
new file mode 160000
+Subproject aa2d937daf2ede05442bd3818691882a7ad0e70
diff --git a/mac/.config/yazi/flavors.bak/rose-pine.yazi b/mac/.config/yazi/flavors.bak/rose-pine.yazi
new file mode 160000
+Subproject 834334048d0bc8c7c344a5a8abce0b0cb35612d
diff --git a/mac/.config/yazi/flavors.bak/scripts/README.md b/mac/.config/yazi/flavors.bak/scripts/README.md
new file mode 100644
index 0000000..17a1ffe
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/scripts/README.md
@@ -0,0 +1,36 @@
+<div align="center">
+ <img src="https://github.com/sxyazi/yazi/blob/main/assets/logo.png?raw=true" alt="Yazi logo" width="20%">
+</div>
+
+<h3 align="center">
+ ${variant_cap} Flavor for <a href="https://github.com/sxyazi/yazi">Yazi</a>
+</h3>
+
+## 👀 Preview
+
+<img src="preview.png" width="600" />
+
+## 🎨 Installation
+
+```sh
+ya pkg add yazi-rs/flavors:${variant}
+```
+
+## ⚙️ Usage
+
+Set the content of your `theme.toml` to enable it as your _${mode}_ flavor:
+
+```toml
+[flavor]
+${mode} = "${variant}"
+```
+
+Make sure your `theme.toml` doesn't contain anything other than `[flavor]`, unless you want to override certain styles of this flavor.
+
+See the [Yazi flavor documentation](https://yazi-rs.github.io/docs/flavors/overview) for more details.
+
+## 📜 License
+
+The flavor is MIT-licensed, and the included tmTheme is also MIT-licensed.
+
+Check the [LICENSE](LICENSE) and [LICENSE-tmtheme](LICENSE-tmtheme) file for more details.
diff --git a/mac/.config/yazi/flavors.bak/scripts/generate.js b/mac/.config/yazi/flavors.bak/scripts/generate.js
new file mode 100644
index 0000000..194de0f
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/scripts/generate.js
@@ -0,0 +1,169 @@
+import fs, { access, mkdir, readFile, writeFile } from "node:fs/promises"
+import { join } from "node:path"
+import { fileURLToPath } from "node:url"
+
+const __dirname = fileURLToPath(new URL(".", import.meta.url))
+
+const VARIANTS = {
+ "Dracula": {
+ text: "#f8f8f2",
+ background: "#282a36",
+
+ primary: "#bd93f9",
+ secondary: "#8be9fd",
+ tertiary: "#ffb86c",
+ accent: "#ff79c6",
+
+ surface: "#44475a",
+ surface1: "#63667d",
+ surface2: "#83869c",
+
+ onSurface: "#6272a4",
+ onSurface1: "#7282b5",
+ onSurface2: "#8998c9",
+
+ red: "#ff5555",
+ green: "#50fa7b",
+ blue: "#bd93f9",
+ yellow: "#f1fa8c",
+
+ _tmtheme: "https://raw.githubusercontent.com/dracula/sublime/refs/heads/master/Dracula.tmTheme",
+ _tmthemeLicense: "https://raw.githubusercontent.com/dracula/sublime/refs/heads/master/LICENSE",
+ },
+ "Catppuccin Macchiato": {
+ text: "#cad3f5",
+ background: "#24273a",
+
+ primary: "#8aadf4",
+ secondary: "#8bd5ca",
+ tertiary: "#f0c6c6",
+ accent: "#f5bde6",
+
+ surface: "#363a4f",
+ surface1: "#494d64",
+ surface2: "#5b6078",
+
+ onSurface: "#6e738d",
+ onSurface1: "#8087a2",
+ onSurface2: "#939ab7",
+
+ red: "#ed8796",
+ green: "#a6da95",
+ blue: "#8aadf4",
+ yellow: "#eed49f",
+
+ _tmtheme: "https://raw.githubusercontent.com/catppuccin/bat/refs/heads/main/themes/Catppuccin%20Macchiato.tmTheme",
+ _tmthemeLicense: "https://raw.githubusercontent.com/catppuccin/bat/refs/heads/main/LICENSE",
+ },
+ "Catppuccin Mocha": {
+ text: "#cdd6f4",
+ background: "#1e1e2e",
+
+ primary: "#89b4fa",
+ secondary: "#94e2d5",
+ tertiary: "#f2cdcd",
+ accent: "#f5c2e7",
+
+ surface: "#313244",
+ surface1: "#45475a",
+ surface2: "#585b70",
+
+ onSurface: "#6c7086",
+ onSurface1: "#7f849c",
+ onSurface2: "#9399b2",
+
+ red: "#f38ba8",
+ green: "#a6e3a1",
+ blue: "#89b4fa",
+ yellow: "#f9e2af",
+
+ _tmtheme: "https://raw.githubusercontent.com/catppuccin/bat/refs/heads/main/themes/Catppuccin%20Mocha.tmTheme",
+ _tmthemeLicense: "https://raw.githubusercontent.com/catppuccin/bat/refs/heads/main/LICENSE",
+ },
+ "Catppuccin Latte": {
+ text: "#4c4f69",
+ background: "#eff1f5",
+
+ primary: "#1e66f5",
+ secondary: "#179299",
+ tertiary: "#dd7878",
+ accent: "#ea76cb",
+
+ surface: "#ccd0da",
+ surface1: "#bcc0cc",
+ surface2: "#acb0be",
+
+ onSurface: "#9ca0b0",
+ onSurface1: "#8c8fa1",
+ onSurface2: "#7c7f93",
+
+ red: "#d20f39",
+ green: "#40a02b",
+ blue: "#1e66f5",
+ yellow: "#df8e1d",
+
+ _light: true,
+ _tmtheme: "https://raw.githubusercontent.com/catppuccin/bat/refs/heads/main/themes/Catppuccin%20Latte.tmTheme",
+ _tmthemeLicense: "https://raw.githubusercontent.com/catppuccin/bat/refs/heads/main/LICENSE",
+ },
+ "Catppuccin Frappe": {
+ text: "#c6d0f5",
+ background: "#303446",
+
+ primary: "#8caaee",
+ secondary: "#81c8be",
+ tertiary: "#eebebe",
+ accent: "#f4b8e4",
+
+ surface: "#414559",
+ surface1: "#51576d",
+ surface2: "#626880",
+
+ onSurface: "#737994",
+ onSurface1: "#838ba7",
+ onSurface2: "#949cbb",
+
+ red: "#e78284",
+ green: "#a6d189",
+ blue: "#8caaee",
+ yellow: "#e5c890",
+
+ _tmtheme: "https://raw.githubusercontent.com/catppuccin/bat/refs/heads/main/themes/Catppuccin%20Frappe.tmTheme",
+ _tmthemeLicense: "https://raw.githubusercontent.com/catppuccin/bat/refs/heads/main/LICENSE",
+ },
+}
+
+const template = await readFile(join(__dirname, "./template.toml"), "utf8")
+const readme = await readFile(join(__dirname, "./README.md"), "utf8")
+
+for (const [name, colors] of Object.entries(VARIANTS)) {
+ const lowerName = name.toLowerCase().replace(" ", "-")
+ const wd = join(__dirname, `../${lowerName}.yazi`)
+ try {
+ await access(wd)
+ } catch {
+ await mkdir(wd)
+ }
+
+ // flavor.toml
+ let s = template
+ for (const [name, color] of Object.entries(colors)) {
+ s = s.replaceAll(`\${${name}}`, color)
+ }
+ await writeFile(join(wd, "flavor.toml"), s.replaceAll("${variant}", lowerName))
+
+ // README.md
+ await writeFile(
+ join(wd, "README.md"),
+ readme
+ .replaceAll("${mode}", colors._light ? "light" : "dark")
+ .replaceAll("${variant}", lowerName)
+ .replaceAll("${variant_cap}", name),
+ )
+
+ // tmtheme.xml
+ await writeFile(join(wd, "tmtheme.xml"), await fetch(colors._tmtheme).then(r => r.text()))
+
+ // LICENSE-tmtheme
+ await writeFile(join(wd, "LICENSE-tmtheme"), await fetch(colors._tmthemeLicense).then(r => r.text()))
+}
diff --git a/mac/.config/yazi/flavors.bak/scripts/template.toml b/mac/.config/yazi/flavors.bak/scripts/template.toml
new file mode 100644
index 0000000..2eb31d2
--- /dev/null
+++ b/mac/.config/yazi/flavors.bak/scripts/template.toml
@@ -0,0 +1,189 @@
+# vim:fileencoding=utf-8:foldmethod=marker
+
+# : Manager {{{
+
+[mgr]
+cwd = { fg = "${secondary}" }
+
+# Hovered
+hovered = { reversed = true }
+preview_hovered = { underline = true }
+
+# Find
+find_keyword = { fg = "${yellow}", bold = true, italic = true, underline = true }
+find_position = { fg = "${accent}", bg = "reset", bold = true, italic = true }
+
+# Marker
+marker_copied = { fg = "${green}", bg = "${green}" }
+marker_cut = { fg = "${red}", bg = "${red}" }
+marker_marked = { fg = "${secondary}", bg = "${secondary}" }
+marker_selected = { fg = "${yellow}", bg = "${yellow}" }
+
+# Count
+count_copied = { fg = "${background}", bg = "${green}" }
+count_cut = { fg = "${background}", bg = "${red}" }
+count_selected = { fg = "${background}", bg = "${yellow}" }
+
+# Border
+border_symbol = "│"
+border_style = { fg = "${onSurface1}" }
+
+# : }}}
+
+
+# : Tabs {{{
+
+[tabs]
+active = { fg = "${background}", bg = "${primary}", bold = true }
+inactive = { fg = "${primary}", bg = "${surface}" }
+
+# : }}}
+
+
+# : Mode {{{
+
+[mode]
+
+normal_main = { fg = "${background}", bg = "${primary}", bold = true }
+normal_alt = { fg = "${primary}", bg = "${surface}" }
+
+# Select mode
+select_main = { fg = "${background}", bg = "${secondary}", bold = true }
+select_alt = { fg = "${secondary}", bg = "${surface}" }
+
+# Unset mode
+unset_main = { fg = "${background}", bg = "${tertiary}", bold = true }
+unset_alt = { fg = "${tertiary}", bg = "${surface}" }
+
+# : }}}
+
+
+# : Status bar {{{
+
+[status]
+# Permissions
+perm_sep = { fg = "${onSurface1}" }
+perm_type = { fg = "${blue}" }
+perm_read = { fg = "${yellow}" }
+perm_write = { fg = "${red}" }
+perm_exec = { fg = "${green}" }
+
+# Progress
+progress_label = { fg = "#ffffff", bold = true }
+progress_normal = { fg = "${primary}", bg = "${surface1}" }
+progress_error = { fg = "${primary}", bg = "${red}" }
+
+# : }}}
+
+
+# : Pick {{{
+
+[pick]
+border = { fg = "${primary}" }
+active = { fg = "${accent}", bold = true }
+inactive = {}
+
+# : }}}
+
+
+# : Input {{{
+
+[input]
+border = { fg = "${primary}" }
+title = {}
+value = {}
+selected = { reversed = true }
+
+# : }}}
+
+
+# : Completion {{{
+
+[cmp]
+border = { fg = "${primary}" }
+
+# : }}}
+
+
+# : Tasks {{{
+
+[tasks]
+border = { fg = "${primary}" }
+title = {}
+hovered = { fg = "${accent}", bold = true }
+
+# : }}}
+
+
+# : Which {{{
+
+[which]
+mask = { bg = "${surface}" }
+cand = { fg = "${secondary}" }
+rest = { fg = "${onSurface2}" }
+desc = { fg = "${accent}" }
+separator = "  "
+separator_style = { fg = "${surface2}" }
+
+# : }}}
+
+
+# : Help {{{
+
+[help]
+on = { fg = "${secondary}" }
+run = { fg = "${accent}" }
+hovered = { reversed = true, bold = true }
+footer = { fg = "${surface}", bg = "${text}" }
+
+# : }}}
+
+
+# : Spotter {{{
+
+[spot]
+border = { fg = "${primary}" }
+title = { fg = "${primary}" }
+tbl_col = { fg = "${secondary}" }
+tbl_cell = { fg = "${accent}", bg = "${surface1}" }
+
+# : }}}
+
+
+# : Notification {{{
+
+[notify]
+title_info = { fg = "${green}" }
+title_warn = { fg = "${yellow}" }
+title_error = { fg = "${red}" }
+
+# : }}}
+
+
+# : File-specific styles {{{
+
+[filetype]
+
+rules = [
+ # Images
+ { mime = "image/*", fg = "${secondary}" },
+
+ # Media
+ { mime = "{audio,video}/*", fg = "${yellow}" },
+
+ # Archives
+ { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "${accent}" },
+
+ # Documents
+ { mime = "application/{pdf,doc,rtf}", fg = "${green}" },
+
+ # Fallback
+ { url = "*", fg = "${text}" },
+ { url = "*/", fg = "${primary}" },
+
+ # TODO: remove
+ { name = "*", fg = "${text}" },
+ { name = "*/", fg = "${primary}" }
+]
+
+# : }}}
diff --git a/mac/.config/yazi/flavors.bak/tokyo-night.yazi b/mac/.config/yazi/flavors.bak/tokyo-night.yazi
new file mode 160000
+Subproject 5f5636427f9bb16cc3f7c5e5693c60914c73f03
diff --git a/mac/.config/yazi/flavors.bak/vscode-dark-modern.yazi b/mac/.config/yazi/flavors.bak/vscode-dark-modern.yazi
new file mode 160000
+Subproject cd605412a6326ba6e99c3386ed47455854707b6
diff --git a/mac/.config/yazi/flavors.bak/vscode-dark-plus.yazi b/mac/.config/yazi/flavors.bak/vscode-dark-plus.yazi
new file mode 160000
+Subproject 113cc480e45d56851fa04e3a38e767a60445bf7
diff --git a/mac/.config/yazi/flavors.bak/vscode-light-modern.yazi b/mac/.config/yazi/flavors.bak/vscode-light-modern.yazi
new file mode 160000
+Subproject c054b127da55e32bce5928fc2287ee3fb30f873
diff --git a/mac/.config/yazi/flavors.bak/vscode-light-plus.yazi b/mac/.config/yazi/flavors.bak/vscode-light-plus.yazi
new file mode 160000
+Subproject 83c8be6e0d0240c5fec6be5b8b6d907a097a0e0
diff --git a/mac/.config/yazi/plugins b/mac/.config/yazi/plugins
deleted file mode 160000
-Subproject d7588f6d29b5998733d5a71ec312c7248ba1455
diff --git a/mac/.config/yazi/plugins.bak/chmod.yazi/README.md b/mac/.config/yazi/plugins.bak/chmod.yazi/README.md
new file mode 100644
index 0000000..b2ad136
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/chmod.yazi/README.md
@@ -0,0 +1,28 @@
+# chmod.yazi
+
+Execute `chmod` on the selected files to change their mode. This plugin is only available on Unix platforms since it relies on [`chmod(2)`](https://man7.org/linux/man-pages/man2/chmod.2.html).
+
+https://github.com/yazi-rs/plugins/assets/17523360/7aa3abc2-d057-498c-8473-a6282c59c464
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:chmod
+```
+
+## Usage
+
+Add this to your `~/.config/yazi/keymap.toml`:
+
+```toml
+[[mgr.prepend_keymap]]
+on = [ "c", "m" ]
+run = "plugin chmod"
+desc = "Chmod on selected files"
+```
+
+Make sure the <kbd>c</kbd> => <kbd>m</kbd> key is not used elsewhere.
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/chmod.yazi/main.lua b/mac/.config/yazi/plugins.bak/chmod.yazi/main.lua
new file mode 100644
index 0000000..a50a864
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/chmod.yazi/main.lua
@@ -0,0 +1,42 @@
+--- @since 25.5.31
+
+local selected_or_hovered = ya.sync(function()
+ local tab, paths = cx.active, {}
+ for _, u in pairs(tab.selected) do
+ paths[#paths + 1] = tostring(u)
+ end
+ if #paths == 0 and tab.current.hovered then
+ paths[1] = tostring(tab.current.hovered.url)
+ end
+ return paths
+end)
+
+return {
+ entry = function()
+ ya.emit("escape", { visual = true })
+
+ local urls = selected_or_hovered()
+ if #urls == 0 then
+ return ya.notify { title = "Chmod", content = "No file selected", level = "warn", timeout = 5 }
+ end
+
+ local value, event = ya.input {
+ title = "Chmod:",
+ pos = { "top-center", y = 3, w = 40 },
+ position = { "top-center", y = 3, w = 40 }, -- TODO: remove
+ }
+ if event ~= 1 then
+ return
+ end
+
+ local status, err = Command("chmod"):arg(value):arg(urls):spawn():wait()
+ if not status or not status.success then
+ ya.notify {
+ title = "Chmod",
+ content = string.format("Chmod on selected files failed, error: %s", status and status.code or err),
+ level = "error",
+ timeout = 5,
+ }
+ end
+ end,
+}
diff --git a/mac/.config/yazi/plugins.bak/diff.yazi/README.md b/mac/.config/yazi/plugins.bak/diff.yazi/README.md
new file mode 100644
index 0000000..1976541
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/diff.yazi/README.md
@@ -0,0 +1,28 @@
+# diff.yazi
+
+Diff the selected file with the hovered file, create a living patch, and copy it to the clipboard.
+
+https://github.com/yazi-rs/plugins/assets/17523360/eff5e949-386a-44ea-82f9-4cb4a2c37aad
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:diff
+```
+
+## Usage
+
+Add this to your `~/.config/yazi/keymap.toml`:
+
+```toml
+[[mgr.prepend_keymap]]
+on = "<C-d>"
+run = "plugin diff"
+desc = "Diff the selected with the hovered file"
+```
+
+Make sure the <kbd>C</kbd> + <kbd>d</kbd> key is not used elsewhere.
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/diff.yazi/main.lua b/mac/.config/yazi/plugins.bak/diff.yazi/main.lua
new file mode 100644
index 0000000..21dde6d
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/diff.yazi/main.lua
@@ -0,0 +1,41 @@
+--- @since 25.2.7
+
+local function info(content)
+ return ya.notify {
+ title = "Diff",
+ content = content,
+ timeout = 5,
+ }
+end
+
+local selected_url = ya.sync(function()
+ for _, u in pairs(cx.active.selected) do
+ return u
+ end
+end)
+
+local hovered_url = ya.sync(function()
+ local h = cx.active.current.hovered
+ return h and h.url
+end)
+
+return {
+ entry = function()
+ local a, b = selected_url(), hovered_url()
+ if not a then
+ return info("No file selected")
+ elseif not b then
+ return info("No file hovered")
+ end
+
+ local output, err = Command("diff"):arg("-Naur"):arg(tostring(a)):arg(tostring(b)):output()
+ if not output then
+ return info("Failed to run diff, error: " .. err)
+ elseif output.stdout == "" then
+ return info("No differences found")
+ end
+
+ ya.clipboard(output.stdout)
+ info("Diff copied to clipboard")
+ end,
+}
diff --git a/mac/.config/yazi/plugins.bak/full-border.yazi/README.md b/mac/.config/yazi/plugins.bak/full-border.yazi/README.md
new file mode 100644
index 0000000..269ca8e
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/full-border.yazi/README.md
@@ -0,0 +1,32 @@
+# full-border.yazi
+
+Add a full border to Yazi to make it look fancier.
+
+![full-border](https://github.com/yazi-rs/plugins/assets/17523360/ef81b560-2465-4d36-abf2-5d21dcb7b987)
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:full-border
+```
+
+## Usage
+
+Add this to your `init.lua` to enable the plugin:
+
+```lua
+require("full-border"):setup()
+```
+
+Or you can customize the border type:
+
+```lua
+require("full-border"):setup {
+ -- Available values: ui.Border.PLAIN, ui.Border.ROUNDED
+ type = ui.Border.ROUNDED,
+}
+```
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/full-border.yazi/main.lua b/mac/.config/yazi/plugins.bak/full-border.yazi/main.lua
new file mode 100644
index 0000000..a917e1e
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/full-border.yazi/main.lua
@@ -0,0 +1,43 @@
+--- @since 25.2.26
+
+local function setup(_, opts)
+ local type = opts and opts.type or ui.Border.ROUNDED
+ local old_build = Tab.build
+
+ Tab.build = function(self, ...)
+ local bar = function(c, x, y)
+ if x <= 0 or x == self._area.w - 1 or th.mgr.border_symbol ~= "│" then
+ return ui.Bar(ui.Edge.TOP)
+ end
+
+ return ui.Bar(ui.Edge.TOP)
+ :area(
+ ui.Rect { x = x, y = math.max(0, y), w = ya.clamp(0, self._area.w - x, 1), h = math.min(1, self._area.h) }
+ )
+ :symbol(c)
+ end
+
+ local c = self._chunks
+ self._chunks = {
+ c[1]:pad(ui.Pad.y(1)),
+ c[2]:pad(ui.Pad(1, c[3].w > 0 and 0 or 1, 1, c[1].w > 0 and 0 or 1)),
+ c[3]:pad(ui.Pad.y(1)),
+ }
+
+ local style = th.mgr.border_style
+ self._base = ya.list_merge(self._base or {}, {
+ ui.Border(ui.Edge.ALL):area(self._area):type(type):style(style),
+ ui.Bar(ui.Edge.RIGHT):area(self._chunks[1]):style(style),
+ ui.Bar(ui.Edge.LEFT):area(self._chunks[3]):style(style),
+
+ bar("┬", c[1].right - 1, c[1].y),
+ bar("┴", c[1].right - 1, c[1].bottom - 1),
+ bar("┬", c[2].right, c[2].y),
+ bar("┴", c[2].right, c[2].bottom - 1),
+ })
+
+ old_build(self, ...)
+ end
+end
+
+return { setup = setup }
diff --git a/mac/.config/yazi/plugins.bak/git.yazi/README.md b/mac/.config/yazi/plugins.bak/git.yazi/README.md
new file mode 100644
index 0000000..96a87a8
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/git.yazi/README.md
@@ -0,0 +1,78 @@
+# git.yazi
+
+Show the status of Git file changes as linemode in the file list.
+
+https://github.com/user-attachments/assets/34976be9-a871-4ffe-9d5a-c4cdd0bf4576
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:git
+```
+
+## Setup
+
+Add the following to your `~/.config/yazi/init.lua`:
+
+```lua
+require("git"):setup()
+```
+
+And register it as fetchers in your `~/.config/yazi/yazi.toml`:
+
+```toml
+[[plugin.prepend_fetchers]]
+id = "git"
+name = "*"
+run = "git"
+
+[[plugin.prepend_fetchers]]
+id = "git"
+name = "*/"
+run = "git"
+```
+
+## Advanced
+
+> [!NOTE]
+> The following configuration must be put before `require("git"):setup()`
+
+You can customize the [Style](https://yazi-rs.github.io/docs/plugins/layout#style) of the status sign with:
+
+- `th.git.modified`
+- `th.git.added`
+- `th.git.untracked`
+- `th.git.ignored`
+- `th.git.deleted`
+- `th.git.updated`
+
+For example:
+
+```lua
+-- ~/.config/yazi/init.lua
+th.git = th.git or {}
+th.git.modified = ui.Style():fg("blue")
+th.git.deleted = ui.Style():fg("red"):bold()
+```
+
+You can also customize the text of the status sign with:
+
+- `th.git.modified_sign`
+- `th.git.added_sign`
+- `th.git.untracked_sign`
+- `th.git.ignored_sign`
+- `th.git.deleted_sign`
+- `th.git.updated_sign`
+
+For example:
+
+```lua
+-- ~/.config/yazi/init.lua
+th.git = th.git or {}
+th.git.modified_sign = "M"
+th.git.deleted_sign = "D"
+```
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/git.yazi/main.lua b/mac/.config/yazi/plugins.bak/git.yazi/main.lua
new file mode 100644
index 0000000..e6b3a36
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/git.yazi/main.lua
@@ -0,0 +1,261 @@
+--- @since 25.5.31
+
+local WINDOWS = ya.target_family() == "windows"
+
+-- The code of supported git status,
+-- also used to determine which status to show for directories when they contain different statuses
+-- see `bubble_up`
+---@enum CODES
+local CODES = {
+ excluded = 100, -- ignored directory
+ ignored = 6, -- ignored file
+ untracked = 5,
+ modified = 4,
+ added = 3,
+ deleted = 2,
+ updated = 1,
+ unknown = 0,
+}
+
+local PATTERNS = {
+ { "!$", CODES.ignored },
+ { "?$", CODES.untracked },
+ { "[MT]", CODES.modified },
+ { "[AC]", CODES.added },
+ { "D", CODES.deleted },
+ { "U", CODES.updated },
+ { "[AD][AD]", CODES.updated },
+}
+
+---@param line string
+---@return CODES, string
+local function match(line)
+ local signs = line:sub(1, 2)
+ for _, p in ipairs(PATTERNS) do
+ local path, pattern, code = nil, p[1], p[2]
+ if signs:find(pattern) then
+ path = line:sub(4, 4) == '"' and line:sub(5, -2) or line:sub(4)
+ path = WINDOWS and path:gsub("/", "\\") or path
+ end
+ if not path then
+ elseif path:find("[/\\]$") then
+ -- Mark the ignored directory as `excluded`, so we can process it further within `propagate_down`
+ return code == CODES.ignored and CODES.excluded or code, path:sub(1, -2)
+ else
+ return code, path
+ end
+ ---@diagnostic disable-next-line: missing-return
+ end
+end
+
+---@param cwd Url
+---@return string?
+local function root(cwd)
+ local is_worktree = function(url)
+ local file, head = io.open(tostring(url)), nil
+ if file then
+ head = file:read(8)
+ file:close()
+ end
+ return head == "gitdir: "
+ end
+
+ repeat
+ local next = cwd:join(".git")
+ local cha = fs.cha(next)
+ if cha and (cha.is_dir or is_worktree(next)) then
+ return tostring(cwd)
+ end
+ cwd = cwd.parent
+ until not cwd
+end
+
+---@param changed Changes
+---@return Changes
+local function bubble_up(changed)
+ local new, empty = {}, Url("")
+ for path, code in pairs(changed) do
+ if code ~= CODES.ignored then
+ local url = Url(path).parent
+ while url and url ~= empty do
+ local s = tostring(url)
+ new[s] = (new[s] or CODES.unknown) > code and new[s] or code
+ url = url.parent
+ end
+ end
+ end
+ return new
+end
+
+---@param excluded string[]
+---@param cwd Url
+---@param repo Url
+---@return Changes
+local function propagate_down(excluded, cwd, repo)
+ local new, rel = {}, cwd:strip_prefix(repo)
+ for _, path in ipairs(excluded) do
+ if rel:starts_with(path) then
+ -- If `cwd` is a subdirectory of an excluded directory, also mark it as `excluded`
+ new[tostring(cwd)] = CODES.excluded
+ elseif cwd == repo:join(path).parent then
+ -- If `path` is a direct subdirectory of `cwd`, mark it as `ignored`
+ new[path] = CODES.ignored
+ else
+ -- Skipping, we only care about `cwd` itself and its direct subdirectories for maximum performance
+ end
+ end
+ return new
+end
+
+---@param cwd string
+---@param repo string
+---@param changed Changes
+local add = ya.sync(function(st, cwd, repo, changed)
+ ---@cast st State
+
+ st.dirs[cwd] = repo
+ st.repos[repo] = st.repos[repo] or {}
+ for path, code in pairs(changed) do
+ if code == CODES.unknown then
+ st.repos[repo][path] = nil
+ elseif code == CODES.excluded then
+ -- Mark the directory with a special value `excluded` so that it can be distinguished during UI rendering
+ st.dirs[path] = CODES.excluded
+ else
+ st.repos[repo][path] = code
+ end
+ end
+ -- TODO: remove this
+ if ui.render then
+ ui.render()
+ else
+ ya.render()
+ end
+end)
+
+---@param cwd string
+local remove = ya.sync(function(st, cwd)
+ ---@cast st State
+
+ local repo = st.dirs[cwd]
+ if not repo then
+ return
+ end
+
+ -- TODO: remove this
+ if ui.render then
+ ui.render()
+ else
+ ya.render()
+ end
+ st.dirs[cwd] = nil
+ if not st.repos[repo] then
+ return
+ end
+
+ for _, r in pairs(st.dirs) do
+ if r == repo then
+ return
+ end
+ end
+ st.repos[repo] = nil
+end)
+
+---@param st State
+---@param opts Options
+local function setup(st, opts)
+ st.dirs = {}
+ st.repos = {}
+
+ opts = opts or {}
+ opts.order = opts.order or 1500
+
+ local t = th.git or {}
+ local styles = {
+ [CODES.ignored] = t.ignored and ui.Style(t.ignored) or ui.Style():fg("darkgray"),
+ [CODES.untracked] = t.untracked and ui.Style(t.untracked) or ui.Style():fg("magenta"),
+ [CODES.modified] = t.modified and ui.Style(t.modified) or ui.Style():fg("yellow"),
+ [CODES.added] = t.added and ui.Style(t.added) or ui.Style():fg("green"),
+ [CODES.deleted] = t.deleted and ui.Style(t.deleted) or ui.Style():fg("red"),
+ [CODES.updated] = t.updated and ui.Style(t.updated) or ui.Style():fg("yellow"),
+ }
+ local signs = {
+ [CODES.ignored] = t.ignored_sign or "",
+ [CODES.untracked] = t.untracked_sign or "?",
+ [CODES.modified] = t.modified_sign or "",
+ [CODES.added] = t.added_sign or "",
+ [CODES.deleted] = t.deleted_sign or "",
+ [CODES.updated] = t.updated_sign or "",
+ }
+
+ Linemode:children_add(function(self)
+ local url = self._file.url
+ local repo = st.dirs[tostring(url.base)]
+ local code
+ if repo then
+ code = repo == CODES.excluded and CODES.ignored or st.repos[repo][tostring(url):sub(#repo + 2)]
+ end
+
+ if not code or signs[code] == "" then
+ return ""
+ elseif self._file.is_hovered then
+ return ui.Line { " ", signs[code] }
+ else
+ return ui.Line { " ", ui.Span(signs[code]):style(styles[code]) }
+ end
+ end, opts.order)
+end
+
+---@type UnstableFetcher
+local function fetch(_, job)
+ local cwd = job.files[1].url.base
+ local repo = root(cwd)
+ if not repo then
+ remove(tostring(cwd))
+ return true
+ end
+
+ local paths = {}
+ for _, file in ipairs(job.files) do
+ paths[#paths + 1] = tostring(file.url)
+ end
+
+ -- stylua: ignore
+ local output, err = Command("git")
+ :cwd(tostring(cwd))
+ :arg({ "--no-optional-locks", "-c", "core.quotePath=", "status", "--porcelain", "-unormal", "--no-renames", "--ignored=matching" })
+ :arg(paths)
+ :stdout(Command.PIPED)
+ :output()
+ if not output then
+ return true, Err("Cannot spawn `git` command, error: %s", err)
+ end
+
+ local changed, excluded = {}, {}
+ for line in output.stdout:gmatch("[^\r\n]+") do
+ local code, path = match(line)
+ if code == CODES.excluded then
+ excluded[#excluded + 1] = path
+ else
+ changed[path] = code
+ end
+ end
+
+ if job.files[1].cha.is_dir then
+ ya.dict_merge(changed, bubble_up(changed))
+ end
+ ya.dict_merge(changed, propagate_down(excluded, cwd, Url(repo)))
+
+ -- Reset the status of any files that don't appear in the output of `git status` to `unknown`,
+ -- so that cleaning up outdated statuses from `st.repos`
+ for _, path in ipairs(paths) do
+ local s = path:sub(#repo + 2)
+ changed[s] = changed[s] or CODES.unknown
+ end
+
+ add(tostring(cwd), repo, changed)
+
+ return false
+end
+
+return { setup = setup, fetch = fetch }
diff --git a/mac/.config/yazi/plugins.bak/git.yazi/types.lua b/mac/.config/yazi/plugins.bak/git.yazi/types.lua
new file mode 100644
index 0000000..9936849
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/git.yazi/types.lua
@@ -0,0 +1,12 @@
+---@class State
+---@field dirs table<string, string|CODES> Mapping between a directory and its corresponding repository
+---@field repos table<string, Changes> Mapping between a repository and the status of each of its files
+
+---@class Options
+---@field order number The order in which the status is displayed
+---@field renamed boolean Whether to include renamed files in the status (or treat them as modified)
+
+-- TODO: move this to `types.yazi` once it's get stable
+---@alias UnstableFetcher fun(self: unknown, job: { files: File[] }): boolean, Error?
+
+---@alias Changes table<string, CODES>
diff --git a/mac/.config/yazi/plugins.bak/jump-to-char.yazi/README.md b/mac/.config/yazi/plugins.bak/jump-to-char.yazi/README.md
new file mode 100644
index 0000000..d24f2e7
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/jump-to-char.yazi/README.md
@@ -0,0 +1,28 @@
+# jump-to-char.yazi
+
+Vim-like `f<char>`, jump to the next file whose name starts with `<char>`.
+
+https://github.com/yazi-rs/plugins/assets/17523360/aac9341c-b416-4e0c-aaba-889d48389869
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:jump-to-char
+```
+
+## Usage
+
+Add this to your `~/.config/yazi/keymap.toml`:
+
+```toml
+[[mgr.prepend_keymap]]
+on = "f"
+run = "plugin jump-to-char"
+desc = "Jump to char"
+```
+
+Make sure the <kbd>f</kbd> key is not used elsewhere.
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/jump-to-char.yazi/main.lua b/mac/.config/yazi/plugins.bak/jump-to-char.yazi/main.lua
new file mode 100644
index 0000000..8a434f1
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/jump-to-char.yazi/main.lua
@@ -0,0 +1,32 @@
+--- @since 25.5.31
+
+local AVAILABLE_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789."
+
+local changed = ya.sync(function(st, new)
+ local b = st.last ~= new
+ st.last = new
+ return b or not cx.active.finder
+end)
+
+local escape = function(s) return s == "." and "\\." or s end
+
+return {
+ entry = function()
+ local cands = {}
+ for i = 1, #AVAILABLE_CHARS do
+ cands[#cands + 1] = { on = AVAILABLE_CHARS:sub(i, i) }
+ end
+
+ local idx = ya.which { cands = cands, silent = true }
+ if not idx then
+ return
+ end
+
+ local kw = escape(cands[idx].on)
+ if changed(kw) then
+ ya.emit("find_do", { "^" .. kw })
+ else
+ ya.emit("find_arrow", {})
+ end
+ end,
+}
diff --git a/mac/.config/yazi/plugins.bak/lsar.yazi/README.md b/mac/.config/yazi/plugins.bak/lsar.yazi/README.md
new file mode 100644
index 0000000..e944442
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/lsar.yazi/README.md
@@ -0,0 +1,43 @@
+# lsar.yazi
+
+Previewing archive contents with `lsar`, which is something you might not want to use anyway.
+
+It was the default archive previewer before Yazi v0.3, and after then, it was replaced with a faster and more efficient `7zip` previewer.
+
+This plugin is here just in case you're still interested in the old behavior,
+but we strongly discourage using it unless you encounter some issues with `7zip` when previewing CJK characters - `lsar` usually does a better job recognizing these characters.
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:lsar
+```
+
+## Usage
+
+Add this to your `~/.config/yazi/yazi.toml`:
+
+```toml
+[[plugin.prepend_previewers]]
+mime = "application/{,g}zip"
+run = "lsar"
+
+[[plugin.prepend_previewers]]
+mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}"
+run = "lsar"
+```
+
+Make sure you have `unar` installed, and have `lsar` in your `$PATH`. You can install it with:
+
+```sh
+# Arch Linux
+sudo pacman -S unarchiver
+# macOS
+brew install unar
+# Windows
+scoop install unar
+```
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/lsar.yazi/main.lua b/mac/.config/yazi/plugins.bak/lsar.yazi/main.lua
new file mode 100644
index 0000000..69bc480
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/lsar.yazi/main.lua
@@ -0,0 +1,43 @@
+--- @since 25.5.31
+
+local M = {}
+
+function M:peek(job)
+ local child, err = Command("lsar"):arg(tostring(job.file.url)):stdout(Command.PIPED):spawn()
+ if not child then
+ return ya.err("spawn `lsar` command failed: " .. err)
+ end
+
+ -- Skip the first line which is the archive file itself
+ while true do
+ local _, event = child:read_line()
+ if event == 0 or event ~= 1 then
+ break
+ end
+ end
+
+ local limit = job.area.h
+ local i, lines = 0, {}
+ repeat
+ local next, event = child:read_line()
+ if event ~= 0 then
+ break
+ end
+
+ i = i + 1
+ if i > job.skip then
+ lines[#lines + 1] = next
+ end
+ until i >= job.skip + limit
+
+ child:start_kill()
+ if job.skip > 0 and i < job.skip + limit then
+ ya.emit("peek", { math.max(0, i - limit), only_if = job.file.url, upper_bound = true })
+ else
+ ya.preview_widget(job, ui.Text(lines):area(job.area))
+ end
+end
+
+function M:seek(job) require("code"):seek(job) end
+
+return M
diff --git a/mac/.config/yazi/plugins.bak/mactag.yazi/README.md b/mac/.config/yazi/plugins.bak/mactag.yazi/README.md
new file mode 100644
index 0000000..e5c060b
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/mactag.yazi/README.md
@@ -0,0 +1,79 @@
+# mactag.yazi
+
+Bring macOS's awesome tagging feature to Yazi! The plugin it's only available for macOS just like the name says.
+
+Authors: [@AnirudhG07](https://github.com/AnirudhG07), and [@sxyazi](https://github.com/sxyazi)
+
+https://github.com/user-attachments/assets/7f26dc6d-67a5-4a85-a99e-4671ece9ae56
+
+## Installation
+
+Install the plugin itself, and [jdberry/tag](https://github.com/jdberry/tag) used to tag files:
+
+```sh
+ya pkg add yazi-rs/plugins:mactag
+brew update && brew install tag
+```
+
+## Setup
+
+Add the following to your `~/.config/yazi/init.lua`:
+
+```lua
+require("mactag"):setup {
+ -- Keys used to add or remove tags
+ keys = {
+ r = "Red",
+ o = "Orange",
+ y = "Yellow",
+ g = "Green",
+ b = "Blue",
+ p = "Purple",
+ },
+ -- Colors used to display tags
+ colors = {
+ Red = "#ee7b70",
+ Orange = "#f5bd5c",
+ Yellow = "#fbe764",
+ Green = "#91fc87",
+ Blue = "#5fa3f8",
+ Purple = "#cb88f8",
+ },
+}
+```
+
+And register it as fetchers in your `~/.config/yazi/yazi.toml`:
+
+```toml
+[[plugin.prepend_fetchers]]
+id = "mactag"
+name = "*"
+run = "mactag"
+
+[[plugin.prepend_fetchers]]
+id = "mactag"
+name = "*/"
+run = "mactag"
+```
+
+## Usage
+
+Besides displaying tags attached to files, you can also add or remove tags within Yazi using this plugin.
+
+Add following keybindings to your `~/.config/yazi/keymap.toml` to enable it:
+
+```toml
+[[mgr.prepend_keymap]]
+on = [ "b", "a" ]
+run = "plugin mactag add"
+desc = "Tag selected files"
+
+[[mgr.prepend_keymap]]
+on = [ "b", "r" ]
+run = "plugin mactag remove"
+desc = "Untag selected files"
+```
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/mactag.yazi/main.lua b/mac/.config/yazi/plugins.bak/mactag.yazi/main.lua
new file mode 100644
index 0000000..309a46a
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/mactag.yazi/main.lua
@@ -0,0 +1,105 @@
+--- @since 25.5.31
+
+local update = ya.sync(function(st, tags)
+ for path, tag in pairs(tags) do
+ st.tags[path] = #tag > 0 and tag or nil
+ end
+ -- TODO: remove this
+ if ui.render then
+ ui.render()
+ else
+ ya.render()
+ end
+end)
+
+local selected_or_hovered = ya.sync(function()
+ local tab, urls = cx.active, {}
+ for _, u in pairs(tab.selected) do
+ urls[#urls + 1] = u
+ end
+ if #urls == 0 and tab.current.hovered then
+ urls[1] = tab.current.hovered.url
+ end
+ return urls
+end)
+
+local function setup(st, opts)
+ st.tags = {}
+ st.keys = opts.keys
+ st.colors = opts.colors
+
+ Linemode:children_add(function(self)
+ local url = tostring(self._file.url)
+ local spans = {}
+ for _, tag in ipairs(st.tags[url] or {}) do
+ if self._file.is_hovered then
+ spans[#spans + 1] = ui.Span(" ●"):bg(st.colors[tag] or "reset")
+ else
+ spans[#spans + 1] = ui.Span(" ●"):fg(st.colors[tag] or "reset")
+ end
+ end
+ return ui.Line(spans)
+ end, 500)
+end
+
+local function fetch(_, job)
+ local paths = {}
+ for _, file in ipairs(job.files) do
+ paths[#paths + 1] = tostring(file.url)
+ end
+
+ local output, err = Command("tag"):arg(paths):stdout(Command.PIPED):output()
+ if not output then
+ return true, Err("Cannot spawn `tag` command, error: %s", err)
+ end
+
+ local i, tags = 1, {}
+ for line in output.stdout:gmatch("[^\r\n]+") do
+ if i > #paths then
+ break
+ end
+ tags[paths[i]] = tags[paths[i]] or {}
+
+ local joint = line:match("\t(.+)$") or ""
+ for s in joint:gmatch("[^,]+") do
+ table.insert(tags[paths[i]], s)
+ end
+ i = i + 1
+ end
+
+ update(tags)
+ return true
+end
+
+local cands = ya.sync(function(st)
+ local t = {}
+ for k, v in pairs(st.keys) do
+ t[#t + 1] = { on = k, desc = v }
+ end
+ return t
+end)
+
+local function entry(self, job)
+ assert(job.args[1] == "add" or job.args[1] == "remove", "Invalid action")
+ ya.emit("escape", { visual = true })
+
+ local cands = cands()
+ local choice = ya.which { cands = cands }
+ if not choice then
+ return
+ end
+
+ local t = { job.args[1] == "remove" and "-r" or "-a", cands[choice].desc }
+ local files = {}
+ for _, url in ipairs(selected_or_hovered()) do
+ t[#t + 1] = tostring(url)
+ files[#files + 1] = { url = url }
+ end
+
+ local status = Command("tag"):arg(t):status()
+ if status.success then
+ fetch(self, { files = files })
+ end
+end
+
+return { setup = setup, fetch = fetch, entry = entry }
diff --git a/mac/.config/yazi/plugins.bak/mime-ext.yazi/README.md b/mac/.config/yazi/plugins.bak/mime-ext.yazi/README.md
new file mode 100644
index 0000000..3c2ee1f
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/mime-ext.yazi/README.md
@@ -0,0 +1,56 @@
+# mime-ext.yazi
+
+A mime-type provider based on a file extension database, replacing the [builtin `file(1)`](https://github.com/sxyazi/yazi/blob/main/yazi-plugin/preset/plugins/mime.lua) to speed up mime-type retrieval at the expense of accuracy.
+
+See https://yazi-rs.github.io/docs/tips#make-yazi-even-faster for more information.
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:mime-ext
+```
+
+## Usage
+
+Add this to your `~/.config/yazi/yazi.toml`:
+
+```toml
+[[plugin.prepend_fetchers]]
+id = "mime"
+name = "*"
+run = "mime-ext"
+prio = "high"
+```
+
+## Advanced
+
+You can also customize it in your `~/.config/yazi/init.lua` with:
+
+```lua
+require("mime-ext"):setup {
+ -- Expand the existing filename database (lowercase), for example:
+ with_files = {
+ makefile = "text/makefile",
+ -- ...
+ },
+
+ -- Expand the existing extension database (lowercase), for example:
+ with_exts = {
+ mk = "text/makefile",
+ -- ...
+ },
+
+ -- If the mime-type is not in both filename and extension databases,
+ -- then fallback to Yazi's preset `mime` plugin, which uses `file(1)`
+ fallback_file1 = false,
+}
+```
+
+## TODO
+
+- Add more file types (PRs welcome!).
+- Compress mime-type tables.
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/mime-ext.yazi/main.lua b/mac/.config/yazi/plugins.bak/mime-ext.yazi/main.lua
new file mode 100644
index 0000000..06c0005
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/mime-ext.yazi/main.lua
@@ -0,0 +1,1126 @@
+--- @since 25.5.31
+
+local FILES = {
+ [".envrc"] = "text/plain",
+ [".gitconfig"] = "text/plain",
+ [".gitignore"] = "text/plain",
+ [".luacheckrc"] = "text/lua",
+ [".npmrc"] = "text/plain",
+ [".styluaignore"] = "text/plain",
+ [".zshenv"] = "text/plain",
+ [".zshrc"] = "text/plain",
+ ["cargo.lock"] = "application/json",
+ ["flake.lock"] = "application/json",
+ license = "text/plain",
+}
+
+local EXTS = {
+ ["123"] = "application/lotus-1-2-3",
+ ["3dml"] = "text/in3d.3dml",
+ ["3ds"] = "image/3ds",
+ ["3g2"] = "video/3gpp2",
+ ["3gp"] = "video/3gpp",
+ ["7z"] = "application/7z-compressed",
+ ["for"] = "text/fortran",
+ ["in"] = "text/plain",
+ ["n-gage"] = "application/nokia.n-gage.symbian.install",
+ ["sfd-hdstx"] = "application/hydrostatix.sof-data",
+ aab = "application/authorware-bin",
+ aac = "audio/aac",
+ aam = "application/authorware-map",
+ aas = "application/authorware-seg",
+ abw = "application/abiword",
+ ac = "application/pkix-attr-cert",
+ acc = "application/americandynamics.acc",
+ ace = "application/ace-compressed",
+ acu = "application/acucobol",
+ acutc = "application/acucorp",
+ adp = "audio/adpcm",
+ aep = "application/audiograph",
+ afm = "application/font-type1",
+ afp = "application/ibm.modcap",
+ ahead = "application/ahead.space",
+ ai = "application/postscript",
+ aif = "audio/aiff",
+ aifc = "audio/aiff",
+ aiff = "audio/aiff",
+ air = "application/adobe.air-application-installer-package+zip",
+ ait = "application/dvb.ait",
+ ami = "application/amiga.ami",
+ apk = "application/android.package-archive",
+ appcache = "text/cache-manifest",
+ application = "application/ms-application",
+ apr = "application/lotus-approach",
+ arc = "application/freearc",
+ asc = "application/pgp-signature",
+ asf = "video/ms-asf",
+ asm = "text/asm",
+ aso = "application/accpac.simply.aso",
+ ass = "text/ass",
+ asx = "video/ms-asf",
+ atc = "application/acucorp",
+ atom = "application/atom+xml",
+ atomcat = "application/atomcat+xml",
+ atomsvc = "application/atomsvc+xml",
+ atx = "application/antix.game-component",
+ au = "audio/basic",
+ avi = "video/msvideo",
+ avif = "image/avif",
+ aw = "application/applixware",
+ azf = "application/airzip.filesecure.azf",
+ azs = "application/airzip.filesecure.azs",
+ azw = "application/amazon.ebook",
+ bash = "text/shellscript",
+ bat = "application/msdownload",
+ bcpio = "application/bcpio",
+ bdf = "application/font-bdf",
+ bdm = "application/syncml.dm+wbxml",
+ bean = "text/plain",
+ beancount = "text/plain",
+ bed = "application/realvnc.bed",
+ bh2 = "application/fujitsu.oasysprs",
+ bin = "application/octet-stream",
+ blb = "application/blorb",
+ blorb = "application/blorb",
+ bmi = "application/bmi",
+ bmp = "image/bmp",
+ book = "application/framemaker",
+ box = "application/previewsystems.box",
+ boz = "application/bzip2",
+ bpk = "application/octet-stream",
+ btif = "image/prs.btif",
+ bz = "application/bzip",
+ bz2 = "application/bzip2",
+ c = "text/c",
+ c11amc = "application/cluetrust.cartomobile-config",
+ c11amz = "application/cluetrust.cartomobile-config-pkg",
+ c4d = "application/clonk.c4group",
+ c4f = "application/clonk.c4group",
+ c4g = "application/clonk.c4group",
+ c4p = "application/clonk.c4group",
+ c4u = "application/clonk.c4group",
+ cab = "application/ms-cab-compressed",
+ caf = "audio/caf",
+ cap = "application/tcpdump.pcap",
+ car = "application/curl.car",
+ cat = "application/ms-pki.seccat",
+ cb7 = "application/cbr",
+ cba = "application/cbr",
+ cbr = "application/cbr",
+ cbt = "application/cbr",
+ cbz = "application/cbr",
+ cc = "text/c",
+ cct = "application/director",
+ ccxml = "application/ccxml+xml",
+ cdbcmsg = "application/contact.cmsg",
+ cdf = "application/netcdf",
+ cdkey = "application/mediastation.cdkey",
+ cdmia = "application/cdmi-capability",
+ cdmic = "application/cdmi-container",
+ cdmid = "application/cdmi-domain",
+ cdmio = "application/cdmi-object",
+ cdmiq = "application/cdmi-queue",
+ cdx = "chemical/cdx",
+ cdxml = "application/chemdraw+xml",
+ cdy = "application/cinderella",
+ cer = "application/pkix-cert",
+ cfg = "text/plain",
+ cfs = "application/cfs-compressed",
+ cgm = "image/cgm",
+ chat = "application/chat",
+ chm = "application/ms-htmlhelp",
+ chrt = "application/kde.kchart",
+ cif = "chemical/cif",
+ cii = "application/anser-web-certificate-issue-initiation",
+ cil = "application/ms-artgalry",
+ cla = "application/claymore",
+ class = "application/java-vm",
+ clkk = "application/crick.clicker.keyboard",
+ clkp = "application/crick.clicker.palette",
+ clkt = "application/crick.clicker.template",
+ clkw = "application/crick.clicker.wordbank",
+ clkx = "application/crick.clicker",
+ clp = "application/msclip",
+ cmc = "application/cosmocaller",
+ cmdf = "chemical/cmdf",
+ cml = "chemical/cml",
+ cmp = "application/yellowriver-custom-menu",
+ cmx = "image/cmx",
+ cod = "application/rim.cod",
+ com = "application/msdownload",
+ conf = "text/plain",
+ cpio = "application/cpio",
+ cpp = "text/c",
+ cpt = "application/mac-compactpro",
+ crd = "application/mscardfile",
+ crl = "application/pkix-crl",
+ crt = "application/x509-ca-cert",
+ cryptonote = "application/rig.cryptonote",
+ csh = "application/csh",
+ csml = "chemical/csml",
+ csp = "application/commonspace",
+ css = "text/css",
+ cst = "application/director",
+ csv = "text/csv",
+ cu = "application/cu-seeme",
+ curl = "text/curl",
+ cww = "application/prs.cww",
+ cxt = "application/director",
+ cxx = "text/c",
+ dae = "model/collada+xml",
+ daf = "application/mobius.daf",
+ dart = "application/dart",
+ dataless = "application/fdsn.seed",
+ davmount = "application/davmount+xml",
+ dbk = "application/docbook+xml",
+ dcr = "application/director",
+ dcurl = "text/curl.dcurl",
+ dd2 = "application/oma.dd2+xml",
+ ddd = "application/fujixerox.ddd",
+ deb = "application/debian-package",
+ def = "text/plain",
+ deploy = "application/octet-stream",
+ der = "application/x509-ca-cert",
+ dfac = "application/dreamfactory",
+ dgc = "application/dgc-compressed",
+ dic = "text/c",
+ dir = "application/director",
+ dis = "application/mobius.dis",
+ dist = "application/octet-stream",
+ distz = "application/octet-stream",
+ djv = "image/djvu",
+ djvu = "image/djvu",
+ dll = "application/msdownload",
+ dmg = "application/apple-diskimage",
+ dmp = "application/tcpdump.pcap",
+ dms = "application/octet-stream",
+ dna = "application/dna",
+ doc = "application/msword",
+ docm = "application/ms-word.document.macroenabled.12",
+ docx = "application/openxmlformats-officedocument.wordprocessingml.document",
+ dot = "application/msword",
+ dotm = "application/ms-word.template.macroenabled.12",
+ dotx = "application/openxmlformats-officedocument.wordprocessingml.template",
+ dp = "application/osgi.dp",
+ dpg = "application/dpgraph",
+ dra = "audio/dra",
+ dsc = "text/prs.lines.tag",
+ dssc = "application/dssc+der",
+ dtb = "application/dtbook+xml",
+ dtd = "application/xml-dtd",
+ dts = "audio/dts",
+ dtshd = "audio/dts.hd",
+ dump = "application/octet-stream",
+ dvb = "video/dvb.file",
+ dvi = "application/dvi",
+ dwf = "model/dwf",
+ dwg = "image/dwg",
+ dxf = "image/dxf",
+ dxp = "application/spotfire.dxp",
+ dxr = "application/director",
+ ebuild = "application/gentoo.ebuild",
+ ecelp4800 = "audio/nuera.ecelp4800",
+ ecelp7470 = "audio/nuera.ecelp7470",
+ ecelp9600 = "audio/nuera.ecelp9600",
+ eclass = "application/gentoo.eclass",
+ ecma = "application/ecmascript",
+ edm = "application/novadigm.edm",
+ edx = "application/novadigm.edx",
+ efif = "application/picsel",
+ ei6 = "application/pg.osasli",
+ elc = "application/octet-stream",
+ emf = "application/msmetafile",
+ eml = "message/rfc822",
+ emma = "application/emma+xml",
+ emz = "application/msmetafile",
+ env = "text/plain",
+ eol = "audio/digital-winds",
+ eot = "application/ms-fontobject",
+ eps = "application/postscript",
+ epub = "application/epub+zip",
+ es3 = "application/eszigno3+xml",
+ esa = "application/osgi.subsystem",
+ esf = "application/epson.esf",
+ et3 = "application/eszigno3+xml",
+ etx = "text/setext",
+ eva = "application/eva",
+ evy = "application/envoy",
+ exe = "application/msdownload",
+ exi = "application/exi",
+ ext = "application/novadigm.ext",
+ ez = "application/andrew-inset",
+ ez2 = "application/ezpix-album",
+ ez3 = "application/ezpix-package",
+ f = "text/fortran",
+ f4v = "video/f4v",
+ f77 = "text/fortran",
+ f90 = "text/fortran",
+ fbs = "image/fastbidsheet",
+ fcdt = "application/adobe.formscentral.fcdt",
+ fcs = "application/isac.fcs",
+ fdf = "application/fdf",
+ fe_launch = "application/denovo.fcselayout-link",
+ fg5 = "application/fujitsu.oasysgp",
+ fgd = "application/director",
+ fh = "image/freehand",
+ fh4 = "image/freehand",
+ fh5 = "image/freehand",
+ fh7 = "image/freehand",
+ fhc = "image/freehand",
+ fig = "application/xfig",
+ fish = "text/shellscript",
+ flac = "audio/flac",
+ fli = "video/fli",
+ flo = "application/micrografx.flo",
+ flv = "video/flv",
+ flw = "application/kde.kivio",
+ flx = "text/fmi.flexstor",
+ fly = "text/fly",
+ fm = "application/framemaker",
+ fnc = "application/frogans.fnc",
+ fpx = "image/fpx",
+ frame = "application/framemaker",
+ fsc = "application/fsc.weblaunch",
+ fst = "image/fst",
+ ftc = "application/fluxtime.clip",
+ fti = "application/anser-web-funds-transfer-initiation",
+ fvt = "video/fvt",
+ fxp = "application/adobe.fxp",
+ fxpl = "application/adobe.fxp",
+ fzs = "application/fuzzysheet",
+ g2w = "application/geoplan",
+ g3 = "image/g3fax",
+ g3w = "application/geospace",
+ gac = "application/groove-account",
+ gam = "application/tads",
+ gbr = "application/rpki-ghostbusters",
+ gca = "application/gca-compressed",
+ gdl = "model/gdl",
+ geo = "application/dynageo",
+ gex = "application/geometry-explorer",
+ ggb = "application/geogebra.file",
+ ggs = "application/geogebra.slides",
+ ggt = "application/geogebra.tool",
+ ghf = "application/groove-help",
+ gif = "image/gif",
+ gim = "application/groove-identity-message",
+ gml = "application/gml+xml",
+ gmx = "application/gmx",
+ gnumeric = "application/gnumeric",
+ go = "text/go",
+ gph = "application/flographit",
+ gpx = "application/gpx+xml",
+ gqf = "application/grafeq",
+ gqs = "application/grafeq",
+ gram = "application/srgs",
+ gramps = "application/gramps-xml",
+ gre = "application/geometry-explorer",
+ grv = "application/groove-injector",
+ grxml = "application/srgs+xml",
+ gsf = "application/font-ghostscript",
+ gtar = "application/gtar",
+ gtm = "application/groove-tool-message",
+ gtw = "model/gtw",
+ gv = "text/graphviz",
+ gxf = "application/gxf",
+ gxt = "application/geonext",
+ h = "text/c",
+ h261 = "video/h261",
+ h263 = "video/h263",
+ h264 = "video/h264",
+ hal = "application/hal+xml",
+ hbci = "application/hbci",
+ hcl = "text/hcl",
+ hdf = "application/hdf",
+ hh = "text/c",
+ hlp = "application/winhlp",
+ hpgl = "application/hp-hpgl",
+ hpid = "application/hp-hpid",
+ hpp = "text/c",
+ hps = "application/hp-hps",
+ hqx = "application/mac-binhex40",
+ htke = "application/kenameaapp",
+ htm = "text/html",
+ html = "text/html",
+ hvd = "application/yamaha.hv-dic",
+ hvp = "application/yamaha.hv-voice",
+ hvs = "application/yamaha.hv-script",
+ i2g = "application/intergeo",
+ icc = "application/iccprofile",
+ ice = "conference/cooltalk",
+ icm = "application/iccprofile",
+ ico = "image/icon",
+ ics = "text/calendar",
+ ief = "image/ief",
+ ifb = "text/calendar",
+ ifm = "application/shana.informed.formdata",
+ iges = "model/iges",
+ igl = "application/igloader",
+ igm = "application/insors.igm",
+ igs = "model/iges",
+ igx = "application/micrografx.igx",
+ iif = "application/shana.informed.interchange",
+ imp = "application/accpac.simply.imp",
+ ims = "application/ms-ims",
+ ini = "text/plain",
+ ink = "application/inkml+xml",
+ inkml = "application/inkml+xml",
+ install = "application/install-instructions",
+ iota = "application/astraea-software.iota",
+ ipfix = "application/ipfix",
+ ipk = "application/shana.informed.package",
+ irm = "application/ibm.rights-management",
+ irp = "application/irepository.package+xml",
+ iso = "application/iso9660-image",
+ itp = "application/shana.informed.formtemplate",
+ ivp = "application/immervision-ivp",
+ ivu = "application/immervision-ivu",
+ jad = "text/sun.j2me.app-descriptor",
+ jam = "application/jam",
+ jar = "application/java-archive",
+ java = "text/java-source",
+ jisp = "application/jisp",
+ jlt = "application/hp-jlyt",
+ jnlp = "application/java-jnlp-file",
+ joda = "application/joost.joda-archive",
+ jpe = "image/jpeg",
+ jpeg = "image/jpeg",
+ jpg = "image/jpeg",
+ jpgm = "video/jpm",
+ jpgv = "video/jpeg",
+ jpm = "video/jpm",
+ js = "text/javascript",
+ json = "application/json",
+ jsonc = "application/json",
+ jsonml = "application/jsonml+json",
+ jsx = "text/jsx",
+ jxl = "image/jxl",
+ kar = "audio/midi",
+ karbon = "application/kde.karbon",
+ kfo = "application/kde.kformula",
+ kia = "application/kidspiration",
+ kml = "application/google-earth.kml+xml",
+ kmz = "application/google-earth.kmz",
+ kne = "application/kinar",
+ knp = "application/kinar",
+ kon = "application/kde.kontour",
+ kpr = "application/kde.kpresenter",
+ kpt = "application/kde.kpresenter",
+ kpxx = "application/ds-keypoint",
+ ksp = "application/kde.kspread",
+ ktr = "application/kahootz",
+ ktx = "image/ktx",
+ ktz = "application/kahootz",
+ kwd = "application/kde.kword",
+ kwt = "application/kde.kword",
+ lasxml = "application/las.las+xml",
+ latex = "application/latex",
+ lbd = "application/llamagraphics.life-balance.desktop",
+ lbe = "application/llamagraphics.life-balance.exchange+xml",
+ les = "application/hhe.lesson-player",
+ lha = "application/lzh-compressed",
+ link66 = "application/route66.link66+xml",
+ list = "text/plain",
+ list3820 = "application/ibm.modcap",
+ listafp = "application/ibm.modcap",
+ lnk = "application/ms-shortcut",
+ log = "text/plain",
+ lostxml = "application/lost+xml",
+ lrf = "application/octet-stream",
+ lrm = "application/ms-lrm",
+ ltf = "application/frogans.ltf",
+ lua = "text/lua",
+ lvp = "audio/lucent.voice",
+ lwp = "application/lotus-wordpro",
+ lzh = "application/lzh-compressed",
+ m13 = "application/msmediaview",
+ m14 = "application/msmediaview",
+ m1v = "video/mpeg",
+ m21 = "application/mp21",
+ m2a = "audio/mpeg",
+ m2t = "video/mp2t",
+ m2ts = "video/mp2t",
+ m2v = "video/mpeg",
+ m3a = "audio/mpeg",
+ m3u = "audio/mpegurl",
+ m3u8 = "application/apple.mpegurl",
+ m4a = "audio/mp4",
+ m4u = "video/mpegurl",
+ m4v = "video/m4v",
+ ma = "application/mathematica",
+ mads = "application/mads+xml",
+ mag = "application/ecowin.chart",
+ maker = "application/framemaker",
+ man = "text/troff",
+ mar = "application/octet-stream",
+ mathml = "application/mathml+xml",
+ mb = "application/mathematica",
+ mbk = "application/mobius.mbk",
+ mbox = "application/mbox",
+ mc1 = "application/medcalcdata",
+ mcd = "application/mcd",
+ mcurl = "text/curl.mcurl",
+ md = "text/markdown",
+ mdb = "application/msaccess",
+ mdi = "image/ms-modi",
+ me = "text/troff",
+ mesh = "model/mesh",
+ meta4 = "application/metalink4+xml",
+ metalink = "application/metalink+xml",
+ mets = "application/mets+xml",
+ mfm = "application/mfmp",
+ mft = "application/rpki-manifest",
+ mgp = "application/osgeo.mapguide.package",
+ mgz = "application/proteus.magazine",
+ mid = "audio/midi",
+ midi = "audio/midi",
+ mie = "application/mie",
+ mif = "application/mif",
+ mime = "message/rfc822",
+ mj2 = "video/mj2",
+ mjp2 = "video/mj2",
+ mjs = "text/javascript",
+ mk3d = "video/matroska",
+ mka = "audio/matroska",
+ mks = "video/matroska",
+ mkv = "video/matroska",
+ mlp = "application/dolby.mlp",
+ mmd = "application/chipnuts.karaoke-mmd",
+ mmf = "application/smaf",
+ mmr = "image/fujixerox.edmics-mmr",
+ mng = "video/mng",
+ mny = "application/msmoney",
+ mobi = "application/mobipocket-ebook",
+ mods = "application/mods+xml",
+ mov = "video/quicktime",
+ movie = "video/sgi-movie",
+ mp2 = "audio/mpeg",
+ mp21 = "application/mp21",
+ mp2a = "audio/mpeg",
+ mp3 = "audio/mpeg",
+ mp4 = "video/mp4",
+ mp4a = "audio/mp4",
+ mp4s = "application/mp4",
+ mp4v = "video/mp4",
+ mpc = "application/mophun.certificate",
+ mpe = "video/mpeg",
+ mpeg = "video/mpeg",
+ mpg = "video/mpeg",
+ mpg4 = "video/mp4",
+ mpga = "audio/mpeg",
+ mpkg = "application/apple.installer+xml",
+ mpm = "application/blueice.multipass",
+ mpn = "application/mophun.application",
+ mpp = "application/ms-project",
+ mpt = "application/ms-project",
+ mpy = "application/ibm.minipay",
+ mqy = "application/mobius.mqy",
+ mrc = "application/marc",
+ mrcx = "application/marcxml+xml",
+ ms = "text/troff",
+ mscml = "application/mediaservercontrol+xml",
+ mseed = "application/fdsn.mseed",
+ mseq = "application/mseq",
+ msf = "application/epson.msf",
+ msh = "model/mesh",
+ msi = "application/msdownload",
+ msl = "application/mobius.msl",
+ msty = "application/muvee.style",
+ mts = "video/mp2t",
+ mus = "application/musician",
+ musicxml = "application/recordare.musicxml+xml",
+ mvb = "application/msmediaview",
+ mwf = "application/mfer",
+ mxf = "application/mxf",
+ mxl = "application/recordare.musicxml",
+ mxml = "application/xv+xml",
+ mxs = "application/triscape.mxs",
+ mxu = "video/mpegurl",
+ n3 = "text/n3",
+ nb = "application/mathematica",
+ nbp = "application/wolfram.player",
+ nc = "application/netcdf",
+ ncx = "application/dtbncx+xml",
+ nfo = "text/nfo",
+ ngdat = "application/nokia.n-gage.data",
+ nitf = "application/nitf",
+ nix = "text/nix",
+ nlu = "application/neurolanguage.nlu",
+ nml = "application/enliven",
+ nnd = "application/noblenet-directory",
+ nns = "application/noblenet-sealer",
+ nnw = "application/noblenet-web",
+ npx = "image/net-fpx",
+ nsc = "application/conference",
+ nsf = "application/lotus-notes",
+ ntf = "application/nitf",
+ nzb = "application/nzb",
+ oa2 = "application/fujitsu.oasys2",
+ oa3 = "application/fujitsu.oasys3",
+ oas = "application/fujitsu.oasys",
+ obd = "application/msbinder",
+ obj = "application/tgif",
+ oda = "application/oda",
+ odb = "application/oasis.opendocument.database",
+ odc = "application/oasis.opendocument.chart",
+ odf = "application/oasis.opendocument.formula",
+ odft = "application/oasis.opendocument.formula-template",
+ odg = "application/oasis.opendocument.graphics",
+ odi = "application/oasis.opendocument.image",
+ odm = "application/oasis.opendocument.text-master",
+ odp = "application/oasis.opendocument.presentation",
+ ods = "application/oasis.opendocument.spreadsheet",
+ odt = "application/oasis.opendocument.text",
+ oga = "audio/ogg",
+ ogg = "audio/ogg",
+ ogv = "video/ogg",
+ ogx = "application/ogg",
+ omdoc = "application/omdoc+xml",
+ onepkg = "application/onenote",
+ onetmp = "application/onenote",
+ onetoc = "application/onenote",
+ onetoc2 = "application/onenote",
+ opf = "application/oebps-package+xml",
+ opml = "text/opml",
+ oprc = "application/palm",
+ opus = "audio/ogg",
+ org = "application/lotus-organizer",
+ osf = "application/yamaha.openscoreformat",
+ osfpvg = "application/yamaha.openscoreformat.osfpvg+xml",
+ otc = "application/oasis.opendocument.chart-template",
+ otf = "font/otf",
+ otg = "application/oasis.opendocument.graphics-template",
+ oth = "application/oasis.opendocument.text-web",
+ oti = "application/oasis.opendocument.image-template",
+ otp = "application/oasis.opendocument.presentation-template",
+ ots = "application/oasis.opendocument.spreadsheet-template",
+ ott = "application/oasis.opendocument.text-template",
+ oxps = "application/oxps",
+ oxt = "application/openofficeorg.extension",
+ p = "text/pascal",
+ p10 = "application/pkcs10",
+ p12 = "application/pkcs12",
+ p7b = "application/pkcs7-certificates",
+ p7c = "application/pkcs7-mime",
+ p7m = "application/pkcs7-mime",
+ p7r = "application/pkcs7-certreqresp",
+ p7s = "application/pkcs7-signature",
+ p8 = "application/pkcs8",
+ pas = "text/pascal",
+ patch = "text/diff",
+ paw = "application/pawaafile",
+ pbd = "application/powerbuilder6",
+ pbm = "image/portable-bitmap",
+ pcap = "application/tcpdump.pcap",
+ pcf = "application/font-pcf",
+ pcl = "application/hp-pcl",
+ pclxl = "application/hp-pclxl",
+ pct = "image/pict",
+ pcurl = "application/curl.pcurl",
+ pcx = "image/pcx",
+ pdb = "application/palm",
+ pdf = "application/pdf",
+ pfa = "application/font-type1",
+ pfb = "application/font-type1",
+ pfm = "application/font-type1",
+ pfr = "application/font-tdpfr",
+ pfx = "application/pkcs12",
+ pgm = "image/portable-graymap",
+ pgn = "application/chess-pgn",
+ pgp = "application/pgp-encrypted",
+ php = "text/php",
+ pic = "image/pict",
+ pkg = "application/octet-stream",
+ pki = "application/pkixcmp",
+ pkipath = "application/pkix-pkipath",
+ plb = "application/3gpp.pic-bw-large",
+ plc = "application/mobius.plc",
+ plf = "application/pocketlearn",
+ pls = "application/pls+xml",
+ pml = "application/ctc-posml",
+ png = "image/png",
+ pnm = "image/portable-anymap",
+ portpkg = "application/macports.portpkg",
+ pot = "application/ms-powerpoint",
+ potm = "application/ms-powerpoint.template.macroenabled.12",
+ potx = "application/openxmlformats-officedocument.presentationml.template",
+ ppam = "application/ms-powerpoint.addin.macroenabled.12",
+ ppd = "application/cups-ppd",
+ ppm = "image/portable-pixmap",
+ pps = "application/ms-powerpoint",
+ ppsm = "application/ms-powerpoint.slideshow.macroenabled.12",
+ ppsx = "application/openxmlformats-officedocument.presentationml.slideshow",
+ ppt = "application/ms-powerpoint",
+ pptm = "application/ms-powerpoint.presentation.macroenabled.12",
+ pptx = "application/openxmlformats-officedocument.presentationml.presentation",
+ pqa = "application/palm",
+ prc = "application/mobipocket-ebook",
+ pre = "application/lotus-freelance",
+ prf = "application/pics-rules",
+ ps = "application/postscript",
+ psb = "application/3gpp.pic-bw-small",
+ psd = "image/adobe.photoshop",
+ psf = "application/font-linux-psf",
+ pskcxml = "application/pskc+xml",
+ ptid = "application/pvi.ptid1",
+ pub = "application/mspublisher",
+ pvb = "application/3gpp.pic-bw-var",
+ pwn = "application/3m.post-it-notes",
+ py = "text/python",
+ pya = "audio/ms-playready.media.pya",
+ pyv = "video/ms-playready.media.pyv",
+ qam = "application/epson.quickanime",
+ qbo = "application/intu.qbo",
+ qfx = "application/intu.qfx",
+ qml = "text/qml",
+ qps = "application/publishare-delta-tree",
+ qt = "video/quicktime",
+ qwd = "application/quark.quarkxpress",
+ qwt = "application/quark.quarkxpress",
+ qxb = "application/quark.quarkxpress",
+ qxd = "application/quark.quarkxpress",
+ qxl = "application/quark.quarkxpress",
+ qxt = "application/quark.quarkxpress",
+ r = "text/r",
+ ra = "audio/pn-realaudio",
+ ram = "audio/pn-realaudio",
+ rar = "application/rar",
+ ras = "image/cmu-raster",
+ rb = "text/ruby",
+ rcprofile = "application/ipunplugged.rcprofile",
+ rdf = "application/rdf+xml",
+ rdz = "application/data-vision.rdz",
+ rep = "application/businessobjects",
+ res = "application/dtbresource+xml",
+ rgb = "image/rgb",
+ rif = "application/reginfo+xml",
+ rip = "audio/rip",
+ ris = "application/research-info-systems",
+ rl = "application/resource-lists+xml",
+ rlc = "image/fujixerox.edmics-rlc",
+ rld = "application/resource-lists-diff+xml",
+ rm = "application/rn-realmedia",
+ rmi = "audio/midi",
+ rmp = "audio/pn-realaudio-plugin",
+ rms = "application/jcp.javame.midlet-rms",
+ rmvb = "application/rn-realmedia-vbr",
+ rnc = "application/relax-ng-compact-syntax",
+ roa = "application/rpki-roa",
+ roff = "text/troff",
+ rp9 = "application/cloanto.rp9",
+ rpm = "application/rpm",
+ rpss = "application/nokia.radio-presets",
+ rpst = "application/nokia.radio-preset",
+ rq = "application/sparql-query",
+ rs = "text/rust",
+ rsd = "application/rsd+xml",
+ rss = "application/rss+xml",
+ rtf = "application/rtf",
+ rtx = "text/richtext",
+ s = "text/asm",
+ s3m = "audio/s3m",
+ saf = "application/yamaha.smaf-audio",
+ sbml = "application/sbml+xml",
+ sc = "application/ibm.secure-container",
+ scd = "application/msschedule",
+ scm = "application/lotus-screencam",
+ scq = "application/scvp-cv-request",
+ scs = "application/scvp-cv-response",
+ scss = "text/scss",
+ scurl = "text/curl.scurl",
+ sda = "application/stardivision.draw",
+ sdc = "application/stardivision.calc",
+ sdd = "application/stardivision.impress",
+ sdkd = "application/solent.sdkm+xml",
+ sdkm = "application/solent.sdkm+xml",
+ sdp = "application/sdp",
+ sdw = "application/stardivision.writer",
+ see = "application/seemail",
+ seed = "application/fdsn.seed",
+ sema = "application/sema",
+ semd = "application/semd",
+ semf = "application/semf",
+ ser = "application/java-serialized-object",
+ setpay = "application/set-payment-initiation",
+ setreg = "application/set-registration-initiation",
+ sfs = "application/spotfire.sfs",
+ sfv = "text/sfv",
+ sgi = "image/sgi",
+ sgl = "application/stardivision.writer-global",
+ sgm = "text/sgml",
+ sgml = "text/sgml",
+ sh = "text/shellscript",
+ shar = "application/shar",
+ shf = "application/shf+xml",
+ sid = "image/mrsid-image",
+ sig = "application/pgp-signature",
+ sil = "audio/silk",
+ silo = "model/mesh",
+ sis = "application/symbian.install",
+ sisx = "application/symbian.install",
+ sit = "application/stuffit",
+ sitx = "application/stuffitx",
+ skd = "application/koan",
+ skm = "application/koan",
+ skp = "application/koan",
+ skt = "application/koan",
+ sldm = "application/ms-powerpoint.slide.macroenabled.12",
+ sldx = "application/openxmlformats-officedocument.presentationml.slide",
+ slt = "application/epson.salt",
+ sm = "application/stepmania.stepchart",
+ smf = "application/stardivision.math",
+ smi = "application/smil+xml",
+ smil = "application/smil+xml",
+ smv = "video/smv",
+ smzip = "application/stepmania.package",
+ snd = "audio/basic",
+ snf = "application/font-snf",
+ so = "application/octet-stream",
+ spc = "application/pkcs7-certificates",
+ spf = "application/yamaha.smaf-phrase",
+ spl = "application/futuresplash",
+ spot = "text/in3d.spot",
+ spp = "application/scvp-vp-response",
+ spq = "application/scvp-vp-request",
+ spx = "audio/ogg",
+ sql = "application/sql",
+ src = "application/wais-source",
+ srt = "application/subrip",
+ sru = "application/sru+xml",
+ srx = "application/sparql-results+xml",
+ ssdl = "application/ssdl+xml",
+ sse = "application/kodak-descriptor",
+ ssf = "application/epson.ssf",
+ ssml = "application/ssml+xml",
+ st = "application/sailingtracker.track",
+ stc = "application/sun.xml.calc.template",
+ std = "application/sun.xml.draw.template",
+ stf = "application/wt.stf",
+ sti = "application/sun.xml.impress.template",
+ stk = "application/hyperstudio",
+ stl = "application/ms-pki.stl",
+ str = "application/pg.format",
+ stw = "application/sun.xml.writer.template",
+ sub = "text/dvb.subtitle",
+ sus = "application/sus-calendar",
+ susp = "application/sus-calendar",
+ sv4cpio = "application/sv4cpio",
+ sv4crc = "application/sv4crc",
+ svc = "application/dvb.service",
+ svd = "application/svd",
+ svg = "image/svg+xml",
+ svgz = "image/svg+xml",
+ swa = "application/director",
+ swf = "application/shockwave-flash",
+ swi = "application/aristanetworks.swi",
+ sxc = "application/sun.xml.calc",
+ sxd = "application/sun.xml.draw",
+ sxg = "application/sun.xml.writer.global",
+ sxi = "application/sun.xml.impress",
+ sxm = "application/sun.xml.math",
+ sxw = "application/sun.xml.writer",
+ t = "text/troff",
+ t3 = "application/t3vm-image",
+ taglet = "application/mynfc",
+ tao = "application/tao.intent-module-archive",
+ tar = "application/tar",
+ tcap = "application/3gpp2.tcap",
+ tcl = "application/tcl",
+ teacher = "application/smart.teacher",
+ tei = "application/tei+xml",
+ teicorpus = "application/tei+xml",
+ tex = "application/tex",
+ texi = "application/texinfo",
+ texinfo = "application/texinfo",
+ text = "text/plain",
+ tf = "text/hcl",
+ tfi = "application/thraud+xml",
+ tfm = "application/tex-tfm",
+ tfrc = "text/hcl",
+ tfstate = "application/json",
+ tfvars = "text/hcl",
+ tga = "image/tga",
+ thmx = "application/ms-officetheme",
+ tif = "image/tiff",
+ tiff = "image/tiff",
+ tmo = "application/tmobile-livetv",
+ toml = "text/toml",
+ torrent = "application/bittorrent",
+ tpl = "application/groove-tool-template",
+ tpt = "application/trid.tpt",
+ tr = "text/troff",
+ tra = "application/trueapp",
+ trm = "application/msterminal",
+ ts = "text/typescript",
+ tsd = "application/timestamped-data",
+ tsv = "text/tab-separated-values",
+ tsx = "text/tsx",
+ ttc = "font/collection",
+ ttf = "font/ttf",
+ ttl = "text/turtle",
+ twd = "application/simtech-mindmapper",
+ twds = "application/simtech-mindmapper",
+ txd = "application/genomatix.tuxedo",
+ txf = "application/mobius.txf",
+ txt = "text/plain",
+ u32 = "application/authorware-bin",
+ udeb = "application/debian-package",
+ ufd = "application/ufdl",
+ ufdl = "application/ufdl",
+ ulx = "application/glulx",
+ umj = "application/umajin",
+ unityweb = "application/unity",
+ uoml = "application/uoml+xml",
+ uri = "text/uri-list",
+ uris = "text/uri-list",
+ urls = "text/uri-list",
+ ustar = "application/ustar",
+ utz = "application/uiq.theme",
+ uu = "text/uuencode",
+ uva = "audio/dece.audio",
+ uvd = "application/dece.data",
+ uvf = "application/dece.data",
+ uvg = "image/dece.graphic",
+ uvh = "video/dece.hd",
+ uvi = "image/dece.graphic",
+ uvm = "video/dece.mobile",
+ uvp = "video/dece.pd",
+ uvs = "video/dece.sd",
+ uvt = "application/dece.ttml+xml",
+ uvu = "video/uvvu.mp4",
+ uvv = "video/dece.video",
+ uvva = "audio/dece.audio",
+ uvvd = "application/dece.data",
+ uvvf = "application/dece.data",
+ uvvg = "image/dece.graphic",
+ uvvh = "video/dece.hd",
+ uvvi = "image/dece.graphic",
+ uvvm = "video/dece.mobile",
+ uvvp = "video/dece.pd",
+ uvvs = "video/dece.sd",
+ uvvt = "application/dece.ttml+xml",
+ uvvu = "video/uvvu.mp4",
+ uvvv = "video/dece.video",
+ uvvx = "application/dece.unspecified",
+ uvvz = "application/dece.zip",
+ uvx = "application/dece.unspecified",
+ uvz = "application/dece.zip",
+ vcard = "text/vcard",
+ vcd = "application/cdlink",
+ vcf = "text/vcard",
+ vcg = "application/groove-vcard",
+ vcs = "text/vcalendar",
+ vcx = "application/vcx",
+ vis = "application/visionary",
+ viv = "video/vivo",
+ vob = "video/ms-vob",
+ vor = "application/stardivision.writer",
+ vox = "application/authorware-bin",
+ vrml = "model/vrml",
+ vsd = "application/visio",
+ vsf = "application/vsf",
+ vss = "application/visio",
+ vst = "application/visio",
+ vsw = "application/visio",
+ vtu = "model/vtu",
+ vxml = "application/voicexml+xml",
+ w3d = "application/director",
+ wad = "application/doom",
+ wasm = "application/wasm",
+ wav = "audio/wav",
+ wax = "audio/ms-wax",
+ wbmp = "image/wap.wbmp",
+ wbs = "application/criticaltools.wbs+xml",
+ wbxml = "application/wap.wbxml",
+ wcm = "application/ms-works",
+ wdb = "application/ms-works",
+ wdp = "image/ms-photo",
+ weba = "audio/webm",
+ webm = "video/webm",
+ webp = "image/webp",
+ wg = "application/pmi.widget",
+ wgt = "application/widget",
+ wks = "application/ms-works",
+ wm = "video/ms-wm",
+ wma = "audio/ms-wma",
+ wmd = "application/ms-wmd",
+ wmf = "application/msmetafile",
+ wml = "text/wap.wml",
+ wmlc = "application/wap.wmlc",
+ wmls = "text/wap.wmlscript",
+ wmlsc = "application/wap.wmlscriptc",
+ wmv = "video/ms-wmv",
+ wmx = "video/ms-wmx",
+ wmz = "application/ms-wmz",
+ woff = "font/woff",
+ woff2 = "font/woff2",
+ wpd = "application/wordperfect",
+ wpl = "application/ms-wpl",
+ wps = "application/ms-works",
+ wqd = "application/wqd",
+ wri = "application/mswrite",
+ wrl = "model/vrml",
+ wsdl = "application/wsdl+xml",
+ wspolicy = "application/wspolicy+xml",
+ wtb = "application/webturbo",
+ wvx = "video/ms-wvx",
+ x32 = "application/authorware-bin",
+ x3d = "model/x3d+xml",
+ x3db = "model/x3d+binary",
+ x3dbz = "model/x3d+binary",
+ x3dv = "model/x3d+vrml",
+ x3dvz = "model/x3d+vrml",
+ x3dz = "model/x3d+xml",
+ xaml = "application/xaml+xml",
+ xap = "application/silverlight-app",
+ xar = "application/xara",
+ xbap = "application/ms-xbap",
+ xbd = "application/fujixerox.docuworks.binder",
+ xbm = "image/xbitmap",
+ xdf = "application/xcap-diff+xml",
+ xdm = "application/syncml.dm+xml",
+ xdp = "application/adobe.xdp+xml",
+ xdssc = "application/dssc+xml",
+ xdw = "application/fujixerox.docuworks",
+ xenc = "application/xenc+xml",
+ xer = "application/patch-ops-error+xml",
+ xfdf = "application/adobe.xfdf",
+ xfdl = "application/xfdl",
+ xht = "application/xhtml+xml",
+ xhtml = "application/xhtml+xml",
+ xhvml = "application/xv+xml",
+ xif = "image/xiff",
+ xla = "application/ms-excel",
+ xlam = "application/ms-excel.addin.macroenabled.12",
+ xlc = "application/ms-excel",
+ xlf = "application/xliff+xml",
+ xlm = "application/ms-excel",
+ xls = "application/ms-excel",
+ xlsb = "application/ms-excel.sheet.binary.macroenabled.12",
+ xlsm = "application/ms-excel.sheet.macroenabled.12",
+ xlsx = "application/openxmlformats-officedocument.spreadsheetml.sheet",
+ xlt = "application/ms-excel",
+ xltm = "application/ms-excel.template.macroenabled.12",
+ xltx = "application/openxmlformats-officedocument.spreadsheetml.template",
+ xlw = "application/ms-excel",
+ xm = "audio/xm",
+ xml = "application/xml",
+ xo = "application/olpc-sugar",
+ xop = "application/xop+xml",
+ xpak = "application/gentoo.xpak",
+ xpi = "application/xpinstall",
+ xpl = "application/xproc+xml",
+ xpm = "image/xpixmap",
+ xpr = "application/is-xpr",
+ xps = "application/ms-xpsdocument",
+ xpw = "application/intercon.formnet",
+ xpx = "application/intercon.formnet",
+ xsl = "application/xml",
+ xslt = "application/xslt+xml",
+ xsm = "application/syncml+xml",
+ xspf = "application/xspf+xml",
+ xul = "application/mozilla.xul+xml",
+ xvm = "application/xv+xml",
+ xvml = "application/xv+xml",
+ xwd = "image/xwindowdump",
+ xyz = "chemical/xyz",
+ xz = "application/xz",
+ yaml = "text/yaml",
+ yang = "application/yang",
+ yin = "application/yin+xml",
+ yml = "text/yaml",
+ z1 = "application/zmachine",
+ z2 = "application/zmachine",
+ z3 = "application/zmachine",
+ z4 = "application/zmachine",
+ z5 = "application/zmachine",
+ z6 = "application/zmachine",
+ z7 = "application/zmachine",
+ z8 = "application/zmachine",
+ zaz = "application/zzazz.deck+xml",
+ zip = "application/zip",
+ zir = "application/zul",
+ zirz = "application/zul",
+ zmm = "application/handheld-entertainment+xml",
+ zsh = "text/shellscript",
+}
+
+local options = ya.sync(
+ function(st)
+ return {
+ with_files = st.with_files,
+ with_exts = st.with_exts,
+ fallback_file1 = st.fallback_file1,
+ }
+ end
+)
+
+local M = {}
+
+function M:setup(opts)
+ opts = opts or {}
+
+ self.with_files = opts.with_files
+ self.with_exts = opts.with_exts
+ self.fallback_file1 = opts.fallback_file1
+end
+
+function M:fetch(job)
+ local opts = options()
+ local merged_files = ya.dict_merge(FILES, opts.with_files or {})
+ local merged_exts = ya.dict_merge(EXTS, opts.with_exts or {})
+
+ local updates, unknown, state = {}, {}, {}
+ for i, file in ipairs(job.files) do
+ if file.cha.is_dummy then
+ state[i] = false
+ goto continue
+ end
+
+ local mime
+ if file.cha.len == 0 then
+ mime = "inode/empty"
+ else
+ mime = merged_files[(file.url.name or ""):lower()]
+ mime = mime or merged_exts[(file.url.ext or ""):lower()]
+ end
+
+ if mime then
+ updates[tostring(file.url)], state[i] = mime, true
+ elseif opts.fallback_file1 then
+ unknown[#unknown + 1] = file
+ else
+ updates[tostring(file.url)], state[i] = "application/octet-stream", true
+ end
+ ::continue::
+ end
+
+ if next(updates) then
+ ya.emit("update_mimes", { updates = updates })
+ end
+
+ if #unknown > 0 then
+ return self.fallback_builtin(job, unknown, state)
+ end
+
+ return state
+end
+
+function M.fallback_builtin(job, unknown, state)
+ local indices = {}
+ for i, f in ipairs(job.files) do
+ indices[f:hash()] = i
+ end
+
+ local result = require("mime"):fetch(ya.dict_merge(job, { files = unknown }))
+ for i, f in ipairs(unknown) do
+ if type(result) == "table" then
+ state[indices[f:hash()]] = result[i]
+ else
+ state[indices[f:hash()]] = result
+ end
+ end
+ return state
+end
+
+return M
diff --git a/mac/.config/yazi/plugins.bak/mount.yazi/README.md b/mac/.config/yazi/plugins.bak/mount.yazi/README.md
new file mode 100644
index 0000000..b35881f
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/mount.yazi/README.md
@@ -0,0 +1,48 @@
+# mount.yazi
+
+A mount manager for Yazi, providing disk mount, unmount, and eject functionality.
+
+Supported platforms:
+
+- Linux with [`udisksctl`](https://github.com/storaged-project/udisks), `lsblk` and `eject` both provided by [`util-linux`](https://github.com/util-linux/util-linux)
+- macOS with `diskutil`, which is pre-installed
+
+https://github.com/user-attachments/assets/c6f780ab-458b-420f-85cf-2fc45fcfe3a2
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:mount
+```
+
+## Usage
+
+Add this to your `~/.config/yazi/keymap.toml`:
+
+```toml
+[[mgr.prepend_keymap]]
+on = "M"
+run = "plugin mount"
+```
+
+Available keybindings:
+
+| Key binding | Alternate key | Action |
+| ------------ | ------------- | --------------------- |
+| <kbd>q</kbd> | - | Quit the plugin |
+| <kbd>k</kbd> | <kbd>↑</kbd> | Move up |
+| <kbd>j</kbd> | <kbd>↓</kbd> | Move down |
+| <kbd>l</kbd> | <kbd>→</kbd> | Enter the mount point |
+| <kbd>m</kbd> | - | Mount the partition |
+| <kbd>u</kbd> | - | Unmount the partition |
+| <kbd>e</kbd> | - | Eject the disk |
+
+## TODO
+
+- Custom keybindings
+- Windows support (I don't use Windows myself, PRs welcome!)
+- Support mount, unmount, and eject the entire disk
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/mount.yazi/main.lua b/mac/.config/yazi/plugins.bak/mount.yazi/main.lua
new file mode 100644
index 0000000..31c2e28
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/mount.yazi/main.lua
@@ -0,0 +1,304 @@
+--- @since 25.5.31
+
+local toggle_ui = ya.sync(function(self)
+ if self.children then
+ Modal:children_remove(self.children)
+ self.children = nil
+ else
+ self.children = Modal:children_add(self, 10)
+ end
+ -- TODO: remove this
+ if ui.render then
+ ui.render()
+ else
+ ya.render()
+ end
+end)
+
+local subscribe = ya.sync(function(self)
+ ps.unsub("mount")
+ ps.sub("mount", function() ya.emit("plugin", { self._id, "refresh" }) end)
+end)
+
+local update_partitions = ya.sync(function(self, partitions)
+ self.partitions = partitions
+ self.cursor = math.max(0, math.min(self.cursor or 0, #self.partitions - 1))
+ -- TODO: remove this
+ if ui.render then
+ ui.render()
+ else
+ ya.render()
+ end
+end)
+
+local active_partition = ya.sync(function(self) return self.partitions[self.cursor + 1] end)
+
+local update_cursor = ya.sync(function(self, cursor)
+ if #self.partitions == 0 then
+ self.cursor = 0
+ else
+ self.cursor = ya.clamp(0, self.cursor + cursor, #self.partitions - 1)
+ end
+ -- TODO: remove this
+ if ui.render then
+ ui.render()
+ else
+ ya.render()
+ end
+end)
+
+local M = {
+ keys = {
+ { on = "q", run = "quit" },
+
+ { on = "k", run = "up" },
+ { on = "j", run = "down" },
+ { on = "l", run = { "enter", "quit" } },
+
+ { on = "<Up>", run = "up" },
+ { on = "<Down>", run = "down" },
+ { on = "<Right>", run = { "enter", "quit" } },
+
+ { on = "m", run = "mount" },
+ { on = "u", run = "unmount" },
+ { on = "e", run = "eject" },
+ },
+}
+
+function M:new(area)
+ self:layout(area)
+ return self
+end
+
+function M:layout(area)
+ local chunks = ui.Layout()
+ :constraints({
+ ui.Constraint.Percentage(10),
+ ui.Constraint.Percentage(80),
+ ui.Constraint.Percentage(10),
+ })
+ :split(area)
+
+ local chunks = ui.Layout()
+ :direction(ui.Layout.HORIZONTAL)
+ :constraints({
+ ui.Constraint.Percentage(10),
+ ui.Constraint.Percentage(80),
+ ui.Constraint.Percentage(10),
+ })
+ :split(chunks[2])
+
+ self._area = chunks[2]
+end
+
+function M:entry(job)
+ if job.args[1] == "refresh" then
+ return update_partitions(self.obtain())
+ end
+
+ toggle_ui()
+ update_partitions(self.obtain())
+ subscribe()
+
+ local tx1, rx1 = ya.chan("mpsc")
+ local tx2, rx2 = ya.chan("mpsc")
+ function producer()
+ while true do
+ local cand = self.keys[ya.which { cands = self.keys, silent = true }] or { run = {} }
+ for _, r in ipairs(type(cand.run) == "table" and cand.run or { cand.run }) do
+ tx1:send(r)
+ if r == "quit" then
+ toggle_ui()
+ return
+ end
+ end
+ end
+ end
+
+ function consumer1()
+ repeat
+ local run = rx1:recv()
+ if run == "quit" then
+ tx2:send(run)
+ break
+ elseif run == "up" then
+ update_cursor(-1)
+ elseif run == "down" then
+ update_cursor(1)
+ elseif run == "enter" then
+ local active = active_partition()
+ if active and active.dist then
+ ya.emit("cd", { active.dist })
+ end
+ else
+ tx2:send(run)
+ end
+ until not run
+ end
+
+ function consumer2()
+ repeat
+ local run = rx2:recv()
+ if run == "quit" then
+ break
+ elseif run == "mount" then
+ self.operate("mount")
+ elseif run == "unmount" then
+ self.operate("unmount")
+ elseif run == "eject" then
+ self.operate("eject")
+ end
+ until not run
+ end
+
+ ya.join(producer, consumer1, consumer2)
+end
+
+function M:reflow() return { self } end
+
+function M:redraw()
+ local rows = {}
+ for _, p in ipairs(self.partitions or {}) do
+ if not p.sub then
+ rows[#rows + 1] = ui.Row { p.main }
+ elseif p.sub == "" then
+ rows[#rows + 1] = ui.Row { p.main, p.label or "", p.dist or "", p.fstype or "" }
+ else
+ rows[#rows + 1] = ui.Row { " " .. p.sub, p.label or "", p.dist or "", p.fstype or "" }
+ end
+ end
+
+ return {
+ ui.Clear(self._area),
+ ui.Border(ui.Edge.ALL)
+ :area(self._area)
+ :type(ui.Border.ROUNDED)
+ :style(ui.Style():fg("blue"))
+ :title(ui.Line("Mount"):align(ui.Align.CENTER)),
+ ui.Table(rows)
+ :area(self._area:pad(ui.Pad(1, 2, 1, 2)))
+ :header(ui.Row({ "Src", "Label", "Dist", "FSType" }):style(ui.Style():bold()))
+ :row(self.cursor)
+ :row_style(ui.Style():fg("blue"):underline())
+ :widths {
+ ui.Constraint.Length(20),
+ ui.Constraint.Length(20),
+ ui.Constraint.Percentage(70),
+ ui.Constraint.Length(10),
+ },
+ }
+end
+
+function M.obtain()
+ local tbl = {}
+ local last
+ for _, p in ipairs(fs.partitions()) do
+ local main, sub = M.split(p.src)
+ if main and last ~= main then
+ if p.src == main then
+ last, p.main, p.sub, tbl[#tbl + 1] = p.src, p.src, "", p
+ else
+ last, tbl[#tbl + 1] = main, { src = main, main = main, sub = "" }
+ end
+ end
+ if sub then
+ if tbl[#tbl].sub == "" and tbl[#tbl].main == main then
+ tbl[#tbl].sub = nil
+ end
+ p.main, p.sub, tbl[#tbl + 1] = main, sub, p
+ end
+ end
+ table.sort(M.fillin(tbl), function(a, b)
+ if a.main == b.main then
+ return (a.sub or "") < (b.sub or "")
+ else
+ return a.main > b.main
+ end
+ end)
+ return tbl
+end
+
+function M.split(src)
+ local pats = {
+ { "^/dev/sd[a-z]", "%d+$" }, -- /dev/sda1
+ { "^/dev/nvme%d+n%d+", "p%d+$" }, -- /dev/nvme0n1p1
+ { "^/dev/mmcblk%d+", "p%d+$" }, -- /dev/mmcblk0p1
+ { "^/dev/disk%d+", ".+$" }, -- /dev/disk1s1
+ { "^/dev/sr%d+", ".+$" }, -- /dev/sr0
+ }
+ for _, p in ipairs(pats) do
+ local main = src:match(p[1])
+ if main then
+ return main, src:sub(#main + 1):match(p[2])
+ end
+ end
+end
+
+function M.fillin(tbl)
+ if ya.target_os() ~= "linux" then
+ return tbl
+ end
+
+ local sources, indices = {}, {}
+ for i, p in ipairs(tbl) do
+ if p.sub and not p.fstype then
+ sources[#sources + 1], indices[p.src] = p.src, i
+ end
+ end
+ if #sources == 0 then
+ return tbl
+ end
+
+ local output, err = Command("lsblk"):arg({ "-p", "-o", "name,fstype", "-J" }):arg(sources):output()
+ if err then
+ ya.dbg("Failed to fetch filesystem types for unmounted partitions: " .. err)
+ return tbl
+ end
+
+ local t = ya.json_decode(output and output.stdout or "")
+ for _, p in ipairs(t and t.blockdevices or {}) do
+ tbl[indices[p.name]].fstype = p.fstype
+ end
+ return tbl
+end
+
+function M.operate(type)
+ local active = active_partition()
+ if not active then
+ return
+ elseif not active.sub then
+ return -- TODO: mount/unmount main disk
+ end
+
+ local output, err
+ if ya.target_os() == "macos" then
+ output, err = Command("diskutil"):arg({ type, active.src }):output()
+ end
+ if ya.target_os() == "linux" then
+ if type == "eject" and active.src:match("^/dev/sr%d+") then
+ Command("udisksctl"):arg({ "unmount", "-b", active.src }):status()
+ output, err = Command("eject"):arg({ "--traytoggle", active.src }):output()
+ elseif type == "eject" then
+ Command("udisksctl"):arg({ "unmount", "-b", active.src }):status()
+ output, err = Command("udisksctl"):arg({ "power-off", "-b", active.src }):output()
+ else
+ output, err = Command("udisksctl"):arg({ type, "-b", active.src }):output()
+ end
+ end
+
+ if not output then
+ M.fail("Failed to %s `%s`: %s", type, active.src, err)
+ elseif not output.status.success then
+ M.fail("Failed to %s `%s`: %s", type, active.src, output.stderr)
+ end
+end
+
+function M.fail(...) ya.notify { title = "Mount", content = string.format(...), timeout = 10, level = "error" } end
+
+function M:click() end
+
+function M:scroll() end
+
+function M:touch() end
+
+return M
diff --git a/mac/.config/yazi/plugins.bak/piper.yazi/README.md b/mac/.config/yazi/plugins.bak/piper.yazi/README.md
new file mode 100644
index 0000000..1cb238f
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/piper.yazi/README.md
@@ -0,0 +1,90 @@
+# piper.yazi
+
+Pipe any shell command as a previewer.
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:piper
+```
+
+## Usage
+
+Piper is a general-purpose previewer - you can pass any shell command to `piper` and it will use the command's output as the preview content.
+
+It accepts a string parameter, which is the shell command to be executed, for example:
+
+```toml
+# ~/.config/yazi/yazi.toml
+[[plugin.prepend_previewers]]
+name = "*"
+run = 'piper -- echo "$1"'
+```
+
+This will set `piper` as the previewer for all file types and use `$1` (file path) as the preview content.
+
+## Variables
+
+Available variables:
+
+- `$w`: the width of the preview area.
+- `$h`: the height of the preview area.
+- `$1`: the path to the file being previewed.
+
+## Examples
+
+Here are some configuration examples:
+
+### Preview tarballs with [`tar`](https://man7.org/linux/man-pages/man1/tar.1.html)
+
+```toml
+[[plugin.prepend_previewers]]
+name = "*.tar*"
+run = 'piper --format=url -- tar tf "$1"'
+```
+
+In this example, `--format=url` tells `piper` to parse the `tar` output as file URLs, so you'll be able to get a list of files with icons.
+
+### Preview CSV with [`bat`](https://github.com/sharkdp/bat)
+
+```toml
+[[plugin.prepend_previewers]]
+name = "*.csv"
+run = 'piper -- bat -p --color=always "$1"'
+```
+
+Note that certain distributions might use a different name for `bat`, like Debian and Ubuntu uses `batcat` instead, so please adjust accordingly.
+
+### Preview Markdown with [`glow`](https://github.com/charmbracelet/glow)
+
+```toml
+[[plugin.prepend_previewers]]
+name = "*.md"
+run = 'piper -- CLICOLOR_FORCE=1 glow -w=$w -s=dark "$1"'
+```
+
+Note that there's [a bug in Glow v2.0](https://github.com/charmbracelet/glow/issues/440#issuecomment-2307992634) that causes slight color differences between tty and non-tty environments.
+
+### Preview directory tree with [`eza`](https://github.com/eza-community/eza)
+
+```toml
+[[plugin.prepend_previewers]]
+name = "*/"
+run = 'piper -- eza -TL=3 --color=always --icons=always --group-directories-first --no-quotes "$1"'
+```
+
+### Use [`hexyl`](https://github.com/sharkdp/hexyl) as fallback previewer
+
+Yazi defaults to using [`file -bL "$1"`](https://github.com/sxyazi/yazi/blob/main/yazi-plugin/preset/plugins/file.lua) if there's no matched previewer.
+
+This example uses `hexyl` as a fallback previewer instead of `file`.
+
+```toml
+[[plugin.append_previewers]]
+name = "*"
+run = 'piper -- hexyl --border=none --terminal-width=$w "$1"'
+```
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/piper.yazi/main.lua b/mac/.config/yazi/plugins.bak/piper.yazi/main.lua
new file mode 100644
index 0000000..aef08eb
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/piper.yazi/main.lua
@@ -0,0 +1,70 @@
+--- @since 25.5.31
+
+local M = {}
+
+local function fail(job, s) ya.preview_widget(job, ui.Text.parse(s):area(job.area):wrap(ui.Wrap.YES)) end
+
+function M:peek(job)
+ local child, err = Command("sh")
+ :arg({ "-c", job.args[1], "sh", tostring(job.file.url) })
+ :env("w", job.area.w)
+ :env("h", job.area.h)
+ :stdout(Command.PIPED)
+ :stderr(Command.PIPED)
+ :spawn()
+
+ if not child then
+ return fail(job, "sh: " .. err)
+ end
+
+ local limit = job.area.h
+ local i, outs, errs = 0, {}, {}
+ repeat
+ local next, event = child:read_line()
+ if event == 1 then
+ errs[#errs + 1] = next
+ elseif event ~= 0 then
+ break
+ end
+
+ i = i + 1
+ if i > job.skip then
+ outs[#outs + 1] = next
+ end
+ until i >= job.skip + limit
+
+ child:start_kill()
+ if #errs > 0 then
+ fail(job, table.concat(errs, ""))
+ elseif job.skip > 0 and i < job.skip + limit then
+ ya.emit("peek", { math.max(0, i - limit), only_if = job.file.url, upper_bound = true })
+ else
+ ya.preview_widget(job, M.format(job, outs))
+ end
+end
+
+function M:seek(job) require("code"):seek(job) end
+
+function M.format(job, lines)
+ local format = job.args.format
+ if format ~= "url" then
+ local s = table.concat(lines, ""):gsub("\r", ""):gsub("\t", string.rep(" ", rt.preview.tab_size))
+ return ui.Text.parse(s):area(job.area)
+ end
+
+ for i = 1, #lines do
+ lines[i] = lines[i]:gsub("[\r\n]+$", "")
+
+ local icon = File({
+ url = Url(lines[i]),
+ cha = Cha { kind = lines[i]:sub(-1) == "/" and 1 or 0 },
+ }):icon()
+
+ if icon then
+ lines[i] = ui.Line { ui.Span(" " .. icon.text .. " "):style(icon.style), lines[i] }
+ end
+ end
+ return ui.Text(lines):area(job.area)
+end
+
+return M
diff --git a/mac/.config/yazi/plugins.bak/smart-enter.yazi/README.md b/mac/.config/yazi/plugins.bak/smart-enter.yazi/README.md
new file mode 100644
index 0000000..742f2e1
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/smart-enter.yazi/README.md
@@ -0,0 +1,40 @@
+# smart-enter.yazi
+
+[`Open`][open] files or [`enter`][enter] directories all in one key!
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:smart-enter
+```
+
+## Usage
+
+Bind your <kbd>l</kbd> key to the plugin, in your `~/.config/yazi/keymap.toml`:
+
+```toml
+[[mgr.prepend_keymap]]
+on = "l"
+run = "plugin smart-enter"
+desc = "Enter the child directory, or open the file"
+```
+
+## Advanced
+
+By default, `--hovered` is passed to the [`open`][open] command, make the behavior consistent with [`enter`][enter] avoiding accidental triggers,
+which means both will only target the currently hovered file.
+
+If you still want `open` to target multiple selected files, add this to your `~/.config/yazi/init.lua`:
+
+```lua
+require("smart-enter"):setup {
+ open_multi = true,
+}
+```
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
+
+[open]: https://yazi-rs.github.io/docs/configuration/keymap/#mgr.open
+[enter]: https://yazi-rs.github.io/docs/configuration/keymap/#mgr.enter
diff --git a/mac/.config/yazi/plugins.bak/smart-enter.yazi/main.lua b/mac/.config/yazi/plugins.bak/smart-enter.yazi/main.lua
new file mode 100644
index 0000000..e9e2ec6
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/smart-enter.yazi/main.lua
@@ -0,0 +1,11 @@
+--- @since 25.5.31
+--- @sync entry
+
+local function setup(self, opts) self.open_multi = opts.open_multi end
+
+local function entry(self)
+ local h = cx.active.current.hovered
+ ya.emit(h and h.cha.is_dir and "enter" or "open", { hovered = not self.open_multi })
+end
+
+return { entry = entry, setup = setup }
diff --git a/mac/.config/yazi/plugins.bak/smart-filter.yazi/README.md b/mac/.config/yazi/plugins.bak/smart-filter.yazi/README.md
new file mode 100644
index 0000000..97be2ac
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/smart-filter.yazi/README.md
@@ -0,0 +1,28 @@
+# smart-filter.yazi
+
+A Yazi plugin that makes filters smarter: continuous filtering, automatically enter unique directory, open file on submitting.
+
+https://github.com/yazi-rs/plugins/assets/17523360/72aaf117-1378-4f7e-93ba-d425a79deac5
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:smart-filter
+```
+
+## Usage
+
+Add this to your `~/.config/yazi/keymap.toml`:
+
+```toml
+[[mgr.prepend_keymap]]
+on = "F"
+run = "plugin smart-filter"
+desc = "Smart filter"
+```
+
+Make sure the <kbd>F</kbd> key is not used elsewhere.
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/smart-filter.yazi/main.lua b/mac/.config/yazi/plugins.bak/smart-filter.yazi/main.lua
new file mode 100644
index 0000000..146e265
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/smart-filter.yazi/main.lua
@@ -0,0 +1,51 @@
+--- @since 25.5.31
+
+local hovered = ya.sync(function()
+ local h = cx.active.current.hovered
+ if not h then
+ return {}
+ end
+
+ return {
+ url = h.url,
+ is_dir = h.cha.is_dir,
+ unique = #cx.active.current.files == 1,
+ }
+end)
+
+local function prompt()
+ return ya.input {
+ title = "Smart filter:",
+ pos = { "center", w = 50 },
+ position = { "center", w = 50 }, -- TODO: remove
+ realtime = true,
+ debounce = 0.1,
+ }
+end
+
+local function entry()
+ local input = prompt()
+
+ while true do
+ local value, event = input:recv()
+ if event ~= 1 and event ~= 3 then
+ ya.emit("escape", { filter = true })
+ break
+ end
+
+ ya.emit("filter_do", { value, smart = true })
+
+ local h = hovered()
+ if h.unique and h.is_dir then
+ ya.emit("escape", { filter = true })
+ ya.emit("enter", {})
+ input = prompt()
+ elseif event == 1 then
+ ya.emit("escape", { filter = true })
+ ya.emit(h.is_dir and "enter" or "open", { h.url })
+ break
+ end
+ end
+end
+
+return { entry = entry }
diff --git a/mac/.config/yazi/plugins.bak/smart-paste.yazi/LICENSE b/mac/.config/yazi/plugins.bak/smart-paste.yazi/LICENSE
new file mode 100644
index 0000000..ea5b606
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/smart-paste.yazi/LICENSE
@@ -0,0 +1 @@
+../LICENSE \ No newline at end of file
diff --git a/mac/.config/yazi/plugins.bak/smart-paste.yazi/README.md b/mac/.config/yazi/plugins.bak/smart-paste.yazi/README.md
new file mode 100644
index 0000000..b32f475
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/smart-paste.yazi/README.md
@@ -0,0 +1,26 @@
+# smart-paste.yazi
+
+Paste files into the hovered directory or to the CWD if hovering over a file.
+
+https://github.com/user-attachments/assets/b3f6348e-abbe-42fe-9a67-a96e68f11255
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:smart-paste
+```
+
+## Usage
+
+Add this to your `~/.config/yazi/keymap.toml`:
+
+```toml
+[[mgr.prepend_keymap]]
+on = "p"
+run = "plugin smart-paste"
+desc = "Paste into the hovered directory or CWD"
+```
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/smart-paste.yazi/main.lua b/mac/.config/yazi/plugins.bak/smart-paste.yazi/main.lua
new file mode 100644
index 0000000..0837a4b
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/smart-paste.yazi/main.lua
@@ -0,0 +1,14 @@
+--- @since 25.5.31
+--- @sync entry
+return {
+ entry = function()
+ local h = cx.active.current.hovered
+ if h and h.cha.is_dir then
+ ya.emit("enter", {})
+ ya.emit("paste", {})
+ ya.emit("leave", {})
+ else
+ ya.emit("paste", {})
+ end
+ end,
+}
diff --git a/mac/.config/yazi/plugins.bak/sudo-demo.yazi/README.md b/mac/.config/yazi/plugins.bak/sudo-demo.yazi/README.md
new file mode 100644
index 0000000..8068691
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/sudo-demo.yazi/README.md
@@ -0,0 +1,25 @@
+# sudo-demo.yazi
+
+Just an example showing how to use `sudo` in a Yazi plugin, and the plugin itself doesn't offer any features beyond logging a message.
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:sudo-demo
+```
+
+## Usage
+
+Add this to your `~/.config/yazi/keymap.toml`:
+
+```toml
+[[mgr.prepend_keymap]]
+on = "<C-t>"
+run = "plugin sudo-demo"
+```
+
+Press <kbd>Ctrl</kbd> + <kbd>t</kbd> to run the plugin, you should [see a message in the log](https://yazi-rs.github.io/docs/plugins/overview#logging).
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/sudo-demo.yazi/main.lua b/mac/.config/yazi/plugins.bak/sudo-demo.yazi/main.lua
new file mode 100644
index 0000000..599afe4
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/sudo-demo.yazi/main.lua
@@ -0,0 +1,45 @@
+--- @since 25.5.31
+
+--- Verify if `sudo` is already authenticated
+--- @return boolean
+local function sudo_already()
+ local status = Command("sudo"):arg({ "--validate", "--non-interactive" }):status()
+ assert(status, "Failed to run `sudo --validate --non-interactive`")
+ return status.success
+end
+
+--- Run a program with `sudo` privilege
+--- @param program string
+--- @param args table
+--- @return Output|nil output
+--- @return integer|nil err
+--- nil: no error
+--- 1: sudo failed
+local function run_with_sudo(program, args)
+ local cmd = Command("sudo"):arg(program):arg(args)
+ if sudo_already() then
+ return cmd:output()
+ end
+
+ local permit = ui.hide and ui.hide() or ya.hide() -- TODO: remove this
+ print(string.format("Sudo password required to run: `%s %s`", program, table.concat(args)))
+ local output = cmd:output()
+ permit:drop()
+
+ if output.status.success or sudo_already() then
+ return output
+ end
+ return nil, 1
+end
+
+return {
+ entry = function()
+ local output = run_with_sudo("ls", { "-l" })
+ if not output then
+ return ya.err("Failed to run `sudo ls -l`")
+ end
+
+ ya.err("stdout", output.stdout)
+ ya.err("status.code", output.status.code)
+ end,
+}
diff --git a/mac/.config/yazi/plugins.bak/toggle-pane.yazi/README.md b/mac/.config/yazi/plugins.bak/toggle-pane.yazi/README.md
new file mode 100644
index 0000000..3ef4095
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/toggle-pane.yazi/README.md
@@ -0,0 +1,78 @@
+# toggle-pane.yazi
+
+Toggle the show, hide, and maximize states for different panes: parent, current, and preview. It respects the user's [`ratio` settings](https://yazi-rs.github.io/docs/configuration/yazi#mgr.ratio)!
+
+Assume the user's `ratio` is $$[A, B, C]$$, that is, $$\text{parent}=A, \text{current}=B, \text{preview}=C$$:
+
+- `min-parent`: Toggles between $$0$$ and $$A$$ - the parent is either completely hidden or showed with width $$A$$.
+- `max-parent`: Toggles between $$A$$ and $$\infty$$ - the parent is either showed with width $$A$$ or fills the entire screen.
+- `min-current`: Toggles between $$0$$ and $$B$$ - the current is either completely hidden or showed with width $$B$$.
+- `max-current`: Toggles between $$B$$ and $$\infty$$ - the current is either showed with width $$B$$ or fills the entire screen.
+- `min-preview`: Toggles between $$0$$ and $$C$$ - the preview is either completely hidden or showed with width $$C$$.
+- `max-preview`: Toggles between $$C$$ and $$\infty$$ - the preview is either showed with width $$C$$ or fills the entire screen.
+- `reset`: Resets to the user's configured `ratio`.
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:toggle-pane
+```
+
+## Usage
+
+Hide/Show preview:
+
+```toml
+# keymap.toml
+[[mgr.prepend_keymap]]
+on = "T"
+run = "plugin toggle-pane min-preview"
+desc = "Show or hide the preview pane"
+```
+
+Maximize/Restore preview:
+
+```toml
+# keymap.toml
+[[mgr.prepend_keymap]]
+on = "T"
+run = "plugin toggle-pane max-preview"
+desc = "Maximize or restore the preview pane"
+```
+
+You can replace `preview` with `current` or `parent` to toggle the other panes.
+
+## Advanced
+
+In addition to triggering the plugin with a keypress, you can also trigger it in your `init.lua` file:
+
+```lua
+if os.getenv("NVIM") then
+ require("toggle-pane"):entry("min-preview")
+end
+```
+
+In the example above, when it detects that you're [using Yazi in nvim](https://yazi-rs.github.io/docs/resources#vim), the preview is hidden by default — you can always press `T` (or any key you've bound) to show it again.
+
+## Tips
+
+This plugin only maximizes the "available preview area", without actually changing the content size.
+
+This means that the appearance of your preview largely depends on the previewer you are using.
+However, most previewers tend to make the most of the available space, so this usually isn't an issue.
+
+For image previews, you may want to tune up the [`max_width`][max-width] and [`max_height`][max-height] options in your `yazi.toml`:
+
+```toml
+[preview]
+# Change them to your desired values
+max_width = 1000
+max_height = 1000
+```
+
+[max-width]: https://yazi-rs.github.io/docs/configuration/yazi/#preview.max_width
+[max-height]: https://yazi-rs.github.io/docs/configuration/yazi/#preview.max_height
+
+## License
+
+This plugin is MIT-licensed. For more information, check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/toggle-pane.yazi/main.lua b/mac/.config/yazi/plugins.bak/toggle-pane.yazi/main.lua
new file mode 100644
index 0000000..72bbf0e
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/toggle-pane.yazi/main.lua
@@ -0,0 +1,45 @@
+--- @since 25.5.31
+--- @sync entry
+
+local function entry(st, job)
+ local R = rt.mgr.ratio
+ job = type(job) == "string" and { args = { job } } or job
+
+ st.parent = st.parent or R.parent
+ st.current = st.current or R.current
+ st.preview = st.preview or R.preview
+
+ local act, to = string.match(job.args[1] or "", "(.-)-(.+)")
+ if act == "min" then
+ st[to] = st[to] == R[to] and 0 or R[to]
+ elseif act == "max" then
+ local max = st[to] == 65535 and R[to] or 65535
+ st.parent = st.parent == 65535 and R.parent or st.parent
+ st.current = st.current == 65535 and R.current or st.current
+ st.preview = st.preview == 65535 and R.preview or st.preview
+ st[to] = max
+ end
+
+ if not st.old then
+ st.old = Tab.layout
+ Tab.layout = function(self)
+ local all = st.parent + st.current + st.preview
+ self._chunks = ui.Layout()
+ :direction(ui.Layout.HORIZONTAL)
+ :constraints({
+ ui.Constraint.Ratio(st.parent, all),
+ ui.Constraint.Ratio(st.current, all),
+ ui.Constraint.Ratio(st.preview, all),
+ })
+ :split(self._area)
+ end
+ end
+
+ if not act then
+ Tab.layout, st.old = st.old, nil
+ st.parent, st.current, st.preview = nil, nil, nil
+ end
+ ya.emit("app:resize", {})
+end
+
+return { entry = entry }
diff --git a/mac/.config/yazi/plugins.bak/zoom.yazi/README.md b/mac/.config/yazi/plugins.bak/zoom.yazi/README.md
new file mode 100644
index 0000000..9be8025
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/zoom.yazi/README.md
@@ -0,0 +1,56 @@
+> [!NOTE]
+> The latest Yazi nightly build is required to use this plugin at the moment.
+
+# zoom.yazi
+
+Enlarge or shrink the preview image of a file, which is useful for magnifying small files for viewing.
+
+Supported formats:
+
+- Images - requires [ImageMagick](https://imagemagick.org/) (>= 7.1.1)
+
+Note that, the maximum size of enlarged images is limited by the [`max_width`][max_width] and [`max_height`][max_height] configuration options, so you may need to increase them as needed.
+
+https://github.com/user-attachments/assets/b28912b1-da63-43d3-a21f-b9e6767ed4a9
+
+[max_width]: https://yazi-rs.github.io/docs/configuration/yazi#preview.max_width
+[max_height]: https://yazi-rs.github.io/docs/configuration/yazi#preview.max_height
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:zoom
+```
+
+## Usage
+
+```toml
+# keymap.toml
+[[mgr.prepend_keymap]]
+on = "+"
+run = "plugin zoom 1"
+desc = "Zoom in hovered file"
+
+[[mgr.prepend_keymap]]
+on = "-"
+run = "plugin zoom -1"
+desc = "Zoom out hovered file"
+```
+
+## Advanced
+
+If you want to apply a default zoom parameter to image previews, you can specify it while setting this plugin up as a custom previewer, for example:
+
+```toml
+[[plugin.prepend_previewers]]
+mime = "image/{jpeg,png,webp}"
+run = "zoom 5"
+```
+
+## TODO
+
+- [ ] Support more file types (e.g., videos, PDFs), PRs welcome!
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/zoom.yazi/main.lua b/mac/.config/yazi/plugins.bak/zoom.yazi/main.lua
new file mode 100644
index 0000000..8aea0cd
--- /dev/null
+++ b/mac/.config/yazi/plugins.bak/zoom.yazi/main.lua
@@ -0,0 +1,119 @@
+--- @since 25.6.11
+
+local get = ya.sync(function(st, url) return st.last == url and st.level end)
+
+local save = ya.sync(function(st, url, new)
+ local h = cx.active.current.hovered
+ if h and h.url == url then
+ st.last, st.level = url, new
+ return true
+ end
+end)
+
+local lock = ya.sync(function(st, url, old, new)
+ if st.last == url and st.level == old then
+ st.level = new
+ return true
+ end
+end)
+
+local move = ya.sync(function(st)
+ local h = cx.active.current.hovered
+ if not h then
+ return
+ end
+
+ if st.last ~= h.url then
+ st.last, st.level = Url(h.url), 0
+ end
+
+ return { url = h.url, level = st.level }
+end)
+
+local function end_(job, err)
+ if not job.old_level then
+ ya.preview_widget(job, err and ui.Text(err):area(job.area):wrap(ui.Wrap.YES))
+ elseif err then
+ ya.notify { title = "Zoom", content = tostring(err), timeout = 5, level = "error" }
+ end
+end
+
+local function canvas(area)
+ local cw, ch = rt.term.cell_size()
+ if not cw then
+ return rt.preview.max_width, rt.preview.max_height
+ end
+
+ return math.min(rt.preview.max_width, math.floor(area.w * cw)),
+ math.min(rt.preview.max_height, math.floor(area.h * ch))
+end
+
+local function peek(_, job)
+ local url = job.file.url
+ local info, err = ya.image_info(url)
+ if not info then
+ return end_(job, Err("Failed to get image info: %s", err))
+ end
+
+ local level = ya.clamp(-10, job.new_level or get(Url(url)) or tonumber(job.args[1]) or 0, 10)
+ local sync = function()
+ if job.old_level then
+ return lock(url, job.old_level, level)
+ else
+ return save(url, level)
+ end
+ end
+
+ local max_w, max_h = canvas(job.area)
+ local min_w, min_h = math.min(max_w, info.w), math.min(max_h, info.h)
+ local new_w = min_w + math.floor(min_w * level * 0.1)
+ local new_h = min_h + math.floor(min_h * level * 0.1)
+ if new_w > max_w or new_h > max_h then
+ if job.old_level then
+ return sync() -- Image larger than available preview area after zooming
+ else
+ new_w, new_h = max_w, max_h -- Run as a previewer, render the image anyway
+ end
+ end
+
+ local tmp = os.tmpname()
+ -- stylua: ignore
+ local status, err = Command("magick"):arg {
+ tostring(url),
+ "-auto-orient", "-strip",
+ "-sample", string.format("%dx%d", new_w, new_h),
+ "-quality", rt.preview.image_quality,
+ string.format("JPG:%s", tmp),
+ }:status()
+
+ if not status then
+ end_(job, Err("Failed to run `magick` command: %s", err))
+ elseif not status.success then
+ end_(job, Err("`magick` command exited with error code %d", status.code))
+ elseif sync() then
+ ya.image_show(Url(tmp), job.area)
+ end
+ end_(job)
+end
+
+local function entry(self, job)
+ local st = move()
+ if not st then
+ return
+ end
+
+ local motion = tonumber(job.args[1]) or 0
+ local new = ya.clamp(-10, st.level + motion, 10)
+ if new ~= st.level then
+ peek(self, {
+ area = ui.area("preview"),
+ args = {},
+ file = { url = st.url }, -- FIXME: use `File` instead of a dummy file
+ skip = 0,
+ new_level = new,
+ old_level = st.level,
+ })
+ end
+end
+
+return { peek = peek, entry = entry }