From a3ed0a3cb36d192c37e040d0dfe57c42113f2161 Mon Sep 17 00:00:00 2001
From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>
Date: Sat, 13 Sep 2025 17:14:51 +0900
Subject: updates
---
mac/.config/yazi/flavors.bak/.gitignore | 1 -
mac/.config/yazi/flavors.bak/ayu-dark.yazi | 1 -
.../flavors.bak/catppuccin-frappe.yazi/LICENSE | 21 -
.../catppuccin-frappe.yazi/LICENSE-tmtheme | 21 -
.../flavors.bak/catppuccin-frappe.yazi/README.md | 36 -
.../flavors.bak/catppuccin-frappe.yazi/flavor.toml | 189 --
.../flavors.bak/catppuccin-frappe.yazi/preview.png | Bin 587309 -> 0 bytes
.../flavors.bak/catppuccin-frappe.yazi/tmtheme.xml | 2112 --------------------
.../yazi/flavors.bak/catppuccin-latte.yazi/LICENSE | 21 -
.../catppuccin-latte.yazi/LICENSE-tmtheme | 21 -
.../flavors.bak/catppuccin-latte.yazi/README.md | 36 -
.../flavors.bak/catppuccin-latte.yazi/flavor.toml | 189 --
.../flavors.bak/catppuccin-latte.yazi/preview.png | Bin 734865 -> 0 bytes
.../flavors.bak/catppuccin-latte.yazi/tmtheme.xml | 2112 --------------------
.../flavors.bak/catppuccin-macchiato.yazi/LICENSE | 21 -
.../catppuccin-macchiato.yazi/LICENSE-tmtheme | 21 -
.../catppuccin-macchiato.yazi/README.md | 36 -
.../catppuccin-macchiato.yazi/flavor.toml | 189 --
.../catppuccin-macchiato.yazi/preview.png | Bin 690459 -> 0 bytes
.../catppuccin-macchiato.yazi/tmtheme.xml | 2112 --------------------
.../yazi/flavors.bak/catppuccin-mocha.yazi/LICENSE | 21 -
.../catppuccin-mocha.yazi/LICENSE-tmtheme | 21 -
.../flavors.bak/catppuccin-mocha.yazi/README.md | 36 -
.../flavors.bak/catppuccin-mocha.yazi/flavor.toml | 189 --
.../flavors.bak/catppuccin-mocha.yazi/preview.png | Bin 675868 -> 0 bytes
.../flavors.bak/catppuccin-mocha.yazi/tmtheme.xml | 2112 --------------------
mac/.config/yazi/flavors.bak/dracula.yazi/LICENSE | 21 -
.../yazi/flavors.bak/dracula.yazi/LICENSE-tmtheme | 21 -
.../yazi/flavors.bak/dracula.yazi/README.md | 36 -
.../yazi/flavors.bak/dracula.yazi/flavor.toml | 189 --
.../yazi/flavors.bak/dracula.yazi/preview.png | Bin 855046 -> 0 bytes
.../yazi/flavors.bak/dracula.yazi/tmtheme.xml | 940 ---------
.../yazi/flavors.bak/everforest-medium.yazi | 1 -
mac/.config/yazi/flavors.bak/gruvbox-dark.yazi | 1 -
mac/.config/yazi/flavors.bak/kanagawa-dragon.yazi | 1 -
mac/.config/yazi/flavors.bak/kanagawa-lotus.yazi | 1 -
mac/.config/yazi/flavors.bak/kanagawa.yazi | 1 -
mac/.config/yazi/flavors.bak/rose-pine-moon.yazi | 1 -
mac/.config/yazi/flavors.bak/rose-pine.yazi | 1 -
mac/.config/yazi/flavors.bak/scripts/README.md | 36 -
mac/.config/yazi/flavors.bak/scripts/generate.js | 169 --
mac/.config/yazi/flavors.bak/scripts/template.toml | 189 --
mac/.config/yazi/flavors.bak/tokyo-night.yazi | 1 -
.../yazi/flavors.bak/vscode-dark-modern.yazi | 1 -
mac/.config/yazi/flavors.bak/vscode-dark-plus.yazi | 1 -
.../yazi/flavors.bak/vscode-light-modern.yazi | 1 -
.../yazi/flavors.bak/vscode-light-plus.yazi | 1 -
mac/.config/yazi/flavors/.gitignore | 1 +
mac/.config/yazi/flavors/ayu-dark.yazi | 1 +
.../yazi/flavors/catppuccin-frappe.yazi/LICENSE | 21 +
.../flavors/catppuccin-frappe.yazi/LICENSE-tmtheme | 21 +
.../yazi/flavors/catppuccin-frappe.yazi/README.md | 36 +
.../flavors/catppuccin-frappe.yazi/flavor.toml | 189 ++
.../flavors/catppuccin-frappe.yazi/preview.png | Bin 0 -> 587309 bytes
.../flavors/catppuccin-frappe.yazi/tmtheme.xml | 2112 ++++++++++++++++++++
.../yazi/flavors/catppuccin-latte.yazi/LICENSE | 21 +
.../flavors/catppuccin-latte.yazi/LICENSE-tmtheme | 21 +
.../yazi/flavors/catppuccin-latte.yazi/README.md | 36 +
.../yazi/flavors/catppuccin-latte.yazi/flavor.toml | 189 ++
.../yazi/flavors/catppuccin-latte.yazi/preview.png | Bin 0 -> 734865 bytes
.../yazi/flavors/catppuccin-latte.yazi/tmtheme.xml | 2112 ++++++++++++++++++++
.../yazi/flavors/catppuccin-macchiato.yazi/LICENSE | 21 +
.../catppuccin-macchiato.yazi/LICENSE-tmtheme | 21 +
.../flavors/catppuccin-macchiato.yazi/README.md | 36 +
.../flavors/catppuccin-macchiato.yazi/flavor.toml | 189 ++
.../flavors/catppuccin-macchiato.yazi/preview.png | Bin 0 -> 690459 bytes
.../flavors/catppuccin-macchiato.yazi/tmtheme.xml | 2112 ++++++++++++++++++++
.../yazi/flavors/catppuccin-mocha.yazi/LICENSE | 21 +
.../flavors/catppuccin-mocha.yazi/LICENSE-tmtheme | 21 +
.../yazi/flavors/catppuccin-mocha.yazi/README.md | 36 +
.../yazi/flavors/catppuccin-mocha.yazi/flavor.toml | 189 ++
.../yazi/flavors/catppuccin-mocha.yazi/preview.png | Bin 0 -> 675868 bytes
.../yazi/flavors/catppuccin-mocha.yazi/tmtheme.xml | 2112 ++++++++++++++++++++
mac/.config/yazi/flavors/dracula.yazi/LICENSE | 21 +
.../yazi/flavors/dracula.yazi/LICENSE-tmtheme | 21 +
mac/.config/yazi/flavors/dracula.yazi/README.md | 36 +
mac/.config/yazi/flavors/dracula.yazi/flavor.toml | 189 ++
mac/.config/yazi/flavors/dracula.yazi/preview.png | Bin 0 -> 855046 bytes
mac/.config/yazi/flavors/dracula.yazi/tmtheme.xml | 940 +++++++++
mac/.config/yazi/flavors/everforest-medium.yazi | 1 +
mac/.config/yazi/flavors/gruvbox-dark.yazi | 1 +
mac/.config/yazi/flavors/kanagawa-dragon.yazi | 1 +
mac/.config/yazi/flavors/kanagawa-lotus.yazi | 1 +
mac/.config/yazi/flavors/kanagawa.yazi | 1 +
mac/.config/yazi/flavors/rose-pine-moon.yazi | 1 +
mac/.config/yazi/flavors/rose-pine.yazi | 1 +
mac/.config/yazi/flavors/scripts/README.md | 36 +
mac/.config/yazi/flavors/scripts/generate.js | 169 ++
mac/.config/yazi/flavors/scripts/template.toml | 189 ++
mac/.config/yazi/flavors/tokyo-night.yazi | 1 +
mac/.config/yazi/flavors/vscode-dark-modern.yazi | 1 +
mac/.config/yazi/flavors/vscode-dark-plus.yazi | 1 +
mac/.config/yazi/flavors/vscode-light-modern.yazi | 1 +
mac/.config/yazi/flavors/vscode-light-plus.yazi | 1 +
mac/.config/yazi/plugins.bak/chmod.yazi/README.md | 28 -
mac/.config/yazi/plugins.bak/chmod.yazi/main.lua | 42 -
mac/.config/yazi/plugins.bak/diff.yazi/README.md | 28 -
mac/.config/yazi/plugins.bak/diff.yazi/main.lua | 41 -
.../yazi/plugins.bak/full-border.yazi/README.md | 32 -
.../yazi/plugins.bak/full-border.yazi/main.lua | 43 -
mac/.config/yazi/plugins.bak/git.yazi/README.md | 78 -
mac/.config/yazi/plugins.bak/git.yazi/main.lua | 261 ---
mac/.config/yazi/plugins.bak/git.yazi/types.lua | 12 -
.../yazi/plugins.bak/jump-to-char.yazi/README.md | 28 -
.../yazi/plugins.bak/jump-to-char.yazi/main.lua | 32 -
mac/.config/yazi/plugins.bak/lsar.yazi/README.md | 43 -
mac/.config/yazi/plugins.bak/lsar.yazi/main.lua | 43 -
mac/.config/yazi/plugins.bak/mactag.yazi/README.md | 79 -
mac/.config/yazi/plugins.bak/mactag.yazi/main.lua | 105 -
.../yazi/plugins.bak/mime-ext.yazi/README.md | 56 -
.../yazi/plugins.bak/mime-ext.yazi/main.lua | 1126 -----------
mac/.config/yazi/plugins.bak/mount.yazi/README.md | 48 -
mac/.config/yazi/plugins.bak/mount.yazi/main.lua | 304 ---
mac/.config/yazi/plugins.bak/piper.yazi/README.md | 90 -
mac/.config/yazi/plugins.bak/piper.yazi/main.lua | 70 -
.../yazi/plugins.bak/smart-enter.yazi/README.md | 40 -
.../yazi/plugins.bak/smart-enter.yazi/main.lua | 11 -
.../yazi/plugins.bak/smart-filter.yazi/README.md | 28 -
.../yazi/plugins.bak/smart-filter.yazi/main.lua | 51 -
.../yazi/plugins.bak/smart-paste.yazi/LICENSE | 1 -
.../yazi/plugins.bak/smart-paste.yazi/README.md | 26 -
.../yazi/plugins.bak/smart-paste.yazi/main.lua | 14 -
.../yazi/plugins.bak/sudo-demo.yazi/README.md | 25 -
.../yazi/plugins.bak/sudo-demo.yazi/main.lua | 45 -
.../yazi/plugins.bak/toggle-pane.yazi/README.md | 78 -
.../yazi/plugins.bak/toggle-pane.yazi/main.lua | 45 -
mac/.config/yazi/plugins.bak/zoom.yazi/README.md | 56 -
mac/.config/yazi/plugins.bak/zoom.yazi/main.lua | 119 --
mac/.config/yazi/plugins/chmod.yazi/README.md | 28 +
mac/.config/yazi/plugins/chmod.yazi/main.lua | 42 +
mac/.config/yazi/plugins/diff.yazi/README.md | 28 +
mac/.config/yazi/plugins/diff.yazi/main.lua | 41 +
.../yazi/plugins/full-border.yazi/README.md | 32 +
mac/.config/yazi/plugins/full-border.yazi/main.lua | 43 +
mac/.config/yazi/plugins/git.yazi/README.md | 78 +
mac/.config/yazi/plugins/git.yazi/main.lua | 261 +++
mac/.config/yazi/plugins/git.yazi/types.lua | 12 +
.../yazi/plugins/jump-to-char.yazi/README.md | 28 +
.../yazi/plugins/jump-to-char.yazi/main.lua | 32 +
mac/.config/yazi/plugins/lsar.yazi/README.md | 43 +
mac/.config/yazi/plugins/lsar.yazi/main.lua | 43 +
mac/.config/yazi/plugins/mactag.yazi/README.md | 79 +
mac/.config/yazi/plugins/mactag.yazi/main.lua | 105 +
mac/.config/yazi/plugins/mime-ext.yazi/README.md | 56 +
mac/.config/yazi/plugins/mime-ext.yazi/main.lua | 1126 +++++++++++
mac/.config/yazi/plugins/mount.yazi/README.md | 48 +
mac/.config/yazi/plugins/mount.yazi/main.lua | 304 +++
mac/.config/yazi/plugins/piper.yazi/README.md | 90 +
mac/.config/yazi/plugins/piper.yazi/main.lua | 70 +
.../yazi/plugins/smart-enter.yazi/README.md | 40 +
mac/.config/yazi/plugins/smart-enter.yazi/main.lua | 11 +
.../yazi/plugins/smart-filter.yazi/README.md | 28 +
.../yazi/plugins/smart-filter.yazi/main.lua | 51 +
mac/.config/yazi/plugins/smart-paste.yazi/LICENSE | 1 +
.../yazi/plugins/smart-paste.yazi/README.md | 26 +
mac/.config/yazi/plugins/smart-paste.yazi/main.lua | 14 +
mac/.config/yazi/plugins/sudo-demo.yazi/README.md | 25 +
mac/.config/yazi/plugins/sudo-demo.yazi/main.lua | 45 +
.../yazi/plugins/toggle-pane.yazi/README.md | 78 +
mac/.config/yazi/plugins/toggle-pane.yazi/main.lua | 45 +
mac/.config/yazi/plugins/zoom.yazi/README.md | 56 +
mac/.config/yazi/plugins/zoom.yazi/main.lua | 119 ++
162 files changed, 14259 insertions(+), 14259 deletions(-)
delete mode 100644 mac/.config/yazi/flavors.bak/.gitignore
delete mode 160000 mac/.config/yazi/flavors.bak/ayu-dark.yazi
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE-tmtheme
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/README.md
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/flavor.toml
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/preview.png
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/tmtheme.xml
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/LICENSE
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/LICENSE-tmtheme
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/README.md
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/flavor.toml
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/preview.png
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/tmtheme.xml
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/LICENSE
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/LICENSE-tmtheme
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/README.md
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/flavor.toml
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/preview.png
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/tmtheme.xml
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/LICENSE
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/LICENSE-tmtheme
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/README.md
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/flavor.toml
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/preview.png
delete mode 100644 mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/tmtheme.xml
delete mode 100644 mac/.config/yazi/flavors.bak/dracula.yazi/LICENSE
delete mode 100644 mac/.config/yazi/flavors.bak/dracula.yazi/LICENSE-tmtheme
delete mode 100644 mac/.config/yazi/flavors.bak/dracula.yazi/README.md
delete mode 100644 mac/.config/yazi/flavors.bak/dracula.yazi/flavor.toml
delete mode 100644 mac/.config/yazi/flavors.bak/dracula.yazi/preview.png
delete mode 100644 mac/.config/yazi/flavors.bak/dracula.yazi/tmtheme.xml
delete mode 160000 mac/.config/yazi/flavors.bak/everforest-medium.yazi
delete mode 160000 mac/.config/yazi/flavors.bak/gruvbox-dark.yazi
delete mode 160000 mac/.config/yazi/flavors.bak/kanagawa-dragon.yazi
delete mode 160000 mac/.config/yazi/flavors.bak/kanagawa-lotus.yazi
delete mode 160000 mac/.config/yazi/flavors.bak/kanagawa.yazi
delete mode 160000 mac/.config/yazi/flavors.bak/rose-pine-moon.yazi
delete mode 160000 mac/.config/yazi/flavors.bak/rose-pine.yazi
delete mode 100644 mac/.config/yazi/flavors.bak/scripts/README.md
delete mode 100644 mac/.config/yazi/flavors.bak/scripts/generate.js
delete mode 100644 mac/.config/yazi/flavors.bak/scripts/template.toml
delete mode 160000 mac/.config/yazi/flavors.bak/tokyo-night.yazi
delete mode 160000 mac/.config/yazi/flavors.bak/vscode-dark-modern.yazi
delete mode 160000 mac/.config/yazi/flavors.bak/vscode-dark-plus.yazi
delete mode 160000 mac/.config/yazi/flavors.bak/vscode-light-modern.yazi
delete mode 160000 mac/.config/yazi/flavors.bak/vscode-light-plus.yazi
create mode 100644 mac/.config/yazi/flavors/.gitignore
create mode 160000 mac/.config/yazi/flavors/ayu-dark.yazi
create mode 100644 mac/.config/yazi/flavors/catppuccin-frappe.yazi/LICENSE
create mode 100644 mac/.config/yazi/flavors/catppuccin-frappe.yazi/LICENSE-tmtheme
create mode 100644 mac/.config/yazi/flavors/catppuccin-frappe.yazi/README.md
create mode 100644 mac/.config/yazi/flavors/catppuccin-frappe.yazi/flavor.toml
create mode 100644 mac/.config/yazi/flavors/catppuccin-frappe.yazi/preview.png
create mode 100644 mac/.config/yazi/flavors/catppuccin-frappe.yazi/tmtheme.xml
create mode 100644 mac/.config/yazi/flavors/catppuccin-latte.yazi/LICENSE
create mode 100644 mac/.config/yazi/flavors/catppuccin-latte.yazi/LICENSE-tmtheme
create mode 100644 mac/.config/yazi/flavors/catppuccin-latte.yazi/README.md
create mode 100644 mac/.config/yazi/flavors/catppuccin-latte.yazi/flavor.toml
create mode 100644 mac/.config/yazi/flavors/catppuccin-latte.yazi/preview.png
create mode 100644 mac/.config/yazi/flavors/catppuccin-latte.yazi/tmtheme.xml
create mode 100644 mac/.config/yazi/flavors/catppuccin-macchiato.yazi/LICENSE
create mode 100644 mac/.config/yazi/flavors/catppuccin-macchiato.yazi/LICENSE-tmtheme
create mode 100644 mac/.config/yazi/flavors/catppuccin-macchiato.yazi/README.md
create mode 100644 mac/.config/yazi/flavors/catppuccin-macchiato.yazi/flavor.toml
create mode 100644 mac/.config/yazi/flavors/catppuccin-macchiato.yazi/preview.png
create mode 100644 mac/.config/yazi/flavors/catppuccin-macchiato.yazi/tmtheme.xml
create mode 100644 mac/.config/yazi/flavors/catppuccin-mocha.yazi/LICENSE
create mode 100644 mac/.config/yazi/flavors/catppuccin-mocha.yazi/LICENSE-tmtheme
create mode 100644 mac/.config/yazi/flavors/catppuccin-mocha.yazi/README.md
create mode 100644 mac/.config/yazi/flavors/catppuccin-mocha.yazi/flavor.toml
create mode 100644 mac/.config/yazi/flavors/catppuccin-mocha.yazi/preview.png
create mode 100644 mac/.config/yazi/flavors/catppuccin-mocha.yazi/tmtheme.xml
create mode 100644 mac/.config/yazi/flavors/dracula.yazi/LICENSE
create mode 100644 mac/.config/yazi/flavors/dracula.yazi/LICENSE-tmtheme
create mode 100644 mac/.config/yazi/flavors/dracula.yazi/README.md
create mode 100644 mac/.config/yazi/flavors/dracula.yazi/flavor.toml
create mode 100644 mac/.config/yazi/flavors/dracula.yazi/preview.png
create mode 100644 mac/.config/yazi/flavors/dracula.yazi/tmtheme.xml
create mode 160000 mac/.config/yazi/flavors/everforest-medium.yazi
create mode 160000 mac/.config/yazi/flavors/gruvbox-dark.yazi
create mode 160000 mac/.config/yazi/flavors/kanagawa-dragon.yazi
create mode 160000 mac/.config/yazi/flavors/kanagawa-lotus.yazi
create mode 160000 mac/.config/yazi/flavors/kanagawa.yazi
create mode 160000 mac/.config/yazi/flavors/rose-pine-moon.yazi
create mode 160000 mac/.config/yazi/flavors/rose-pine.yazi
create mode 100644 mac/.config/yazi/flavors/scripts/README.md
create mode 100644 mac/.config/yazi/flavors/scripts/generate.js
create mode 100644 mac/.config/yazi/flavors/scripts/template.toml
create mode 160000 mac/.config/yazi/flavors/tokyo-night.yazi
create mode 160000 mac/.config/yazi/flavors/vscode-dark-modern.yazi
create mode 160000 mac/.config/yazi/flavors/vscode-dark-plus.yazi
create mode 160000 mac/.config/yazi/flavors/vscode-light-modern.yazi
create mode 160000 mac/.config/yazi/flavors/vscode-light-plus.yazi
delete mode 100644 mac/.config/yazi/plugins.bak/chmod.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/chmod.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/diff.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/diff.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/full-border.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/full-border.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/git.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/git.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/git.yazi/types.lua
delete mode 100644 mac/.config/yazi/plugins.bak/jump-to-char.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/jump-to-char.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/lsar.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/lsar.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/mactag.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/mactag.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/mime-ext.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/mime-ext.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/mount.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/mount.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/piper.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/piper.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/smart-enter.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/smart-enter.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/smart-filter.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/smart-filter.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/smart-paste.yazi/LICENSE
delete mode 100644 mac/.config/yazi/plugins.bak/smart-paste.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/smart-paste.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/sudo-demo.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/sudo-demo.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/toggle-pane.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/toggle-pane.yazi/main.lua
delete mode 100644 mac/.config/yazi/plugins.bak/zoom.yazi/README.md
delete mode 100644 mac/.config/yazi/plugins.bak/zoom.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/chmod.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/chmod.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/diff.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/diff.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/full-border.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/full-border.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/git.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/git.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/git.yazi/types.lua
create mode 100644 mac/.config/yazi/plugins/jump-to-char.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/jump-to-char.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/lsar.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/lsar.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/mactag.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/mactag.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/mime-ext.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/mime-ext.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/mount.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/mount.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/piper.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/piper.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/smart-enter.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/smart-enter.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/smart-filter.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/smart-filter.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/smart-paste.yazi/LICENSE
create mode 100644 mac/.config/yazi/plugins/smart-paste.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/smart-paste.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/sudo-demo.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/sudo-demo.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/toggle-pane.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/toggle-pane.yazi/main.lua
create mode 100644 mac/.config/yazi/plugins/zoom.yazi/README.md
create mode 100644 mac/.config/yazi/plugins/zoom.yazi/main.lua
diff --git a/mac/.config/yazi/flavors.bak/.gitignore b/mac/.config/yazi/flavors.bak/.gitignore
deleted file mode 100644
index 40b878d..0000000
--- a/mac/.config/yazi/flavors.bak/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-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
deleted file mode 160000
index 648a178..0000000
--- a/mac/.config/yazi/flavors.bak/ayu-dark.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 648a178cad2bc83f9c3f6340ab30f54a67f36ea7
diff --git a/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE b/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE
deleted file mode 100644
index fb5b1d6..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644
index 006383b..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/LICENSE-tmtheme
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644
index 737a6aa..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-
-

-
-
-
- Catppuccin Frappe Flavor for Yazi
-
-
-## 👀 Preview
-
-
-
-## 🎨 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
deleted file mode 100644
index bb32478..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/flavor.toml
+++ /dev/null
@@ -1,189 +0,0 @@
-# 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
deleted file mode 100644
index 03203c9..0000000
Binary files a/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/preview.png and /dev/null 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
deleted file mode 100644
index 6d0a97f..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-frappe.yazi/tmtheme.xml
+++ /dev/null
@@ -1,2112 +0,0 @@
-
-
-
-
- name
- Catppuccin Frappé
- semanticClass
- theme.dark.catppuccin-frappé
- uuid
- e0ada983-8938-490c-86f0-97a1a0ec58e4
- author
- Catppuccin Org
- colorSpaceName
- sRGB
- settings
-
-
- settings
-
- background
- #303446
- foreground
- #c6d0f5
- caret
- #f2d5cf
- lineHighlight
- #414559
- misspelling
- #e78284
- accent
- #ca9ee6
- selection
- #949cbb40
- activeGuide
- #51576d
- findHighlight
- #506373
- gutterForeground
- #838ba7
-
-
-
- name
- Basic text & variable names (incl. leading punctuation)
- scope
- text, source, variable.other.readwrite, punctuation.definition.variable
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- Parentheses, Brackets, Braces
- scope
- punctuation
- settings
-
- foreground
- #949cbb
- fontStyle
-
-
-
-
- name
- Comments
- scope
- comment, punctuation.definition.comment
- settings
-
- foreground
- #949cbb
- fontStyle
- italic
-
-
-
- scope
- string, punctuation.definition.string
- settings
-
- foreground
- #a6d189
-
-
-
- scope
- constant.character.escape
- settings
-
- foreground
- #f4b8e4
-
-
-
- name
- Booleans, constants, numbers
- scope
- 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
- settings
-
- foreground
- #ef9f76
-
-
-
- scope
- keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword
- settings
-
- foreground
- #ca9ee6
- fontStyle
-
-
-
-
- scope
- entity.name.tag.documentation
- settings
-
- foreground
- #ca9ee6
-
-
-
- name
- Punctuation
- scope
- keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value
- settings
-
- foreground
- #81c8be
-
-
-
- scope
- entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function
- settings
-
- foreground
- #8caaee
- fontStyle
- italic
-
-
-
- name
- Classes
- scope
- entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct
- settings
-
- foreground
- #e5c890
- fontStyle
- italic
-
-
-
- name
- Enum
- scope
- entity.name.enum
- settings
-
- foreground
- #e5c890
- fontStyle
- italic
-
-
-
- name
- Enum member
- scope
- meta.enum variable.other.readwrite, variable.other.enummember
- settings
-
- foreground
- #81c8be
-
-
-
- name
- Object properties
- scope
- meta.property.object
- settings
-
- foreground
- #81c8be
-
-
-
- name
- Types
- scope
- meta.type, meta.type-alias, support.type, entity.name.type
- settings
-
- foreground
- #e5c890
- fontStyle
- italic
-
-
-
- name
- Decorators
- scope
- meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator
- settings
-
- foreground
- #ef9f76
-
-
-
- scope
- variable.parameter, meta.function.parameters
- settings
-
- foreground
- #ea999c
- fontStyle
- italic
-
-
-
- name
- Built-ins
- scope
- constant.language, support.function.builtin
- settings
-
- foreground
- #e78284
-
-
-
- scope
- entity.other.attribute-name.documentation
- settings
-
- foreground
- #e78284
-
-
-
- name
- Preprocessor directives
- scope
- keyword.control.directive, punctuation.definition.directive
- settings
-
- foreground
- #e5c890
-
-
-
- name
- Type parameters
- scope
- punctuation.definition.typeparameters
- settings
-
- foreground
- #99d1db
-
-
-
- name
- Namespaces
- scope
- entity.name.namespace
- settings
-
- foreground
- #e5c890
-
-
-
- name
- Property names (left hand assignments in json/yaml/css)
- scope
- support.type.property-name.css
- settings
-
- foreground
- #8caaee
- fontStyle
-
-
-
-
- name
- This/Self keyword
- scope
- variable.language.this, variable.language.this punctuation.definition.variable
- settings
-
- foreground
- #e78284
-
-
-
- name
- Object properties
- scope
- variable.object.property
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- String template interpolation
- scope
- string.template variable, string variable
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- `new` as bold
- scope
- keyword.operator.new
- settings
-
- fontStyle
- bold
-
-
-
- name
- C++ extern keyword
- scope
- storage.modifier.specifier.extern.cpp
- settings
-
- foreground
- #ca9ee6
-
-
-
- name
- C++ scope resolution
- scope
- 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
- settings
-
- foreground
- #e5c890
-
-
-
- name
- C++ doc keywords
- scope
- storage.type.class.doxygen
- settings
-
- fontStyle
-
-
-
-
- name
- C++ operators
- scope
- storage.modifier.reference.cpp
- settings
-
- foreground
- #81c8be
-
-
-
- name
- C# Interpolated Strings
- scope
- meta.interpolation.cs
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- C# xml-style docs
- scope
- comment.block.documentation.cs
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- Classes, reflecting the className color in JSX
- scope
- source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css
- settings
-
- foreground
- #e5c890
-
-
-
- name
- Operators
- scope
- punctuation.separator.operator.css
- settings
-
- foreground
- #81c8be
-
-
-
- name
- Pseudo classes
- scope
- source.css entity.other.attribute-name.pseudo-class
- settings
-
- foreground
- #81c8be
-
-
-
- scope
- source.css constant.other.unicode-range
- settings
-
- foreground
- #ef9f76
-
-
-
- scope
- source.css variable.parameter.url
- settings
-
- foreground
- #a6d189
- fontStyle
-
-
-
-
- name
- CSS vendored property names
- scope
- support.type.vendored.property-name
- settings
-
- foreground
- #99d1db
-
-
-
- name
- Less/SCSS right-hand variables (@/$-prefixed)
- scope
- 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
- settings
-
- foreground
- #ea999c
-
-
-
- name
- CSS variables (--prefixed)
- scope
- source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less
- settings
-
- foreground
- #8caaee
-
-
-
- name
- CSS Percentage values, styled the same as numbers
- scope
- keyword.other.unit.percentage.css
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- CSS Attribute selectors, styled the same as strings
- scope
- source.css meta.attribute-selector
- settings
-
- foreground
- #a6d189
-
-
-
- name
- JSON/YAML keys, other left-hand assignments
- scope
- 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
- settings
-
- foreground
- #8caaee
- fontStyle
-
-
-
-
- name
- JSON/YAML constants
- scope
- constant.language.json, constant.language.yaml
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- YAML anchors
- scope
- entity.name.type.anchor.yaml, variable.other.alias.yaml
- settings
-
- foreground
- #e5c890
- fontStyle
-
-
-
-
- name
- TOML tables / ini groups
- scope
- support.type.property-name.table, entity.name.section.group-title.ini
- settings
-
- foreground
- #e5c890
-
-
-
- name
- TOML dates
- scope
- constant.other.time.datetime.offset.toml
- settings
-
- foreground
- #f4b8e4
-
-
-
- name
- YAML anchor puctuation
- scope
- punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml
- settings
-
- foreground
- #f4b8e4
-
-
-
- name
- YAML triple dashes
- scope
- entity.other.document.begin.yaml
- settings
-
- foreground
- #f4b8e4
-
-
-
- name
- Markup Diff
- scope
- markup.changed.diff
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- Diff
- scope
- meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff
- settings
-
- foreground
- #8caaee
-
-
-
- name
- Diff Inserted
- scope
- markup.inserted.diff
- settings
-
- foreground
- #a6d189
-
-
-
- name
- Diff Deleted
- scope
- markup.deleted.diff
- settings
-
- foreground
- #e78284
-
-
-
- name
- dotenv left-hand side assignments
- scope
- variable.other.env
- settings
-
- foreground
- #8caaee
-
-
-
- name
- dotenv reference to existing env variable
- scope
- string.quoted variable.other.env
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- GDScript functions
- scope
- support.function.builtin.gdscript
- settings
-
- foreground
- #8caaee
-
-
-
- name
- GDScript constants
- scope
- constant.language.gdscript
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- Comment keywords
- scope
- comment meta.annotation.go
- settings
-
- foreground
- #ea999c
-
-
-
- name
- go:embed, go:build, etc.
- scope
- comment meta.annotation.parameters.go
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- Go constants (nil, true, false)
- scope
- constant.language.go
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- GraphQL variables
- scope
- variable.graphql
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- GraphQL aliases
- scope
- string.unquoted.alias.graphql
- settings
-
- foreground
- #eebebe
-
-
-
- name
- GraphQL enum members
- scope
- constant.character.enum.graphql
- settings
-
- foreground
- #81c8be
-
-
-
- name
- GraphQL field in types
- scope
- meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql
- settings
-
- foreground
- #eebebe
-
-
-
- name
- HTML/XML DOCTYPE as keyword
- scope
- keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag
- settings
-
- foreground
- #ca9ee6
-
-
-
- name
- HTML/XML-like <tags/>
- scope
- entity.name.tag
- settings
-
- foreground
- #8caaee
- fontStyle
-
-
-
-
- name
- Special characters like &
- scope
- 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
- settings
-
- foreground
- #e78284
-
-
-
- name
- HTML/XML tag attribute values
- scope
- entity.other.attribute-name
- settings
-
- foreground
- #e5c890
-
-
-
- name
- Components
- scope
- support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue
- settings
-
- foreground
- #f4b8e4
- fontStyle
-
-
-
-
- name
- Annotations
- scope
- punctuation.definition.annotation, storage.type.annotation
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- Java enums
- scope
- constant.other.enum.java
- settings
-
- foreground
- #81c8be
-
-
-
- name
- Java imports
- scope
- storage.modifier.import.java
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- Javadoc
- scope
- comment.block.javadoc.java keyword.other.documentation.javadoc.java
- settings
-
- fontStyle
-
-
-
-
- name
- Exported Variable
- scope
- meta.export variable.other.readwrite.js
- settings
-
- foreground
- #ea999c
-
-
-
- name
- JS/TS constants & properties
- scope
- variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- JSDoc; these are mainly params, so styled as such
- scope
- variable.other.jsdoc, comment.block.documentation variable.other
- settings
-
- foreground
- #ea999c
- fontStyle
-
-
-
-
- name
- JSDoc keywords
- scope
- storage.type.class.jsdoc
- settings
-
- fontStyle
-
-
-
-
- scope
- support.type.object.console.js
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- Node constants as keywords (module, etc.)
- scope
- support.constant.node, support.type.object.module.js
- settings
-
- foreground
- #ca9ee6
-
-
-
- name
- implements as keyword
- scope
- storage.modifier.implements
- settings
-
- foreground
- #ca9ee6
-
-
-
- name
- Builtin types
- scope
- constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts
- settings
-
- foreground
- #ca9ee6
-
-
-
- scope
- variable.parameter.generic
- settings
-
- foreground
- #e5c890
-
-
-
- name
- Arrow functions
- scope
- keyword.declaration.function.arrow.js, storage.type.function.arrow.ts
- settings
-
- foreground
- #81c8be
-
-
-
- name
- Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)
- scope
- punctuation.decorator.ts
- settings
-
- foreground
- #8caaee
- fontStyle
- italic
-
-
-
- name
- Extra JS/TS keywords
- scope
- 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
- settings
-
- foreground
- #ca9ee6
-
-
-
- name
- Julia macros
- scope
- support.function.macro.julia
- settings
-
- foreground
- #81c8be
- fontStyle
- italic
-
-
-
- name
- Julia language constants (true, false)
- scope
- constant.language.julia
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- Julia other constants (these seem to be arguments inside arrays)
- scope
- constant.other.symbol.julia
- settings
-
- foreground
- #ea999c
-
-
-
- name
- LaTeX preamble
- scope
- text.tex keyword.control.preamble
- settings
-
- foreground
- #81c8be
-
-
-
- name
- LaTeX be functions
- scope
- text.tex support.function.be
- settings
-
- foreground
- #99d1db
-
-
-
- name
- LaTeX math
- scope
- constant.other.general.math.tex
- settings
-
- foreground
- #eebebe
-
-
-
- name
- Liquid Builtin Objects & User Defined Variables
- scope
- variable.language.liquid
- settings
-
- foreground
- #f4b8e4
-
-
-
- name
- Lua docstring keywords
- scope
- comment.line.double-dash.documentation.lua storage.type.annotation.lua
- settings
-
- foreground
- #ca9ee6
- fontStyle
-
-
-
-
- name
- Lua docstring variables
- scope
- comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua
- settings
-
- foreground
- #c6d0f5
-
-
-
- scope
- 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
- settings
-
- foreground
- #e78284
-
-
-
- scope
- 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
- settings
-
- foreground
- #ef9f76
-
-
-
- scope
- 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
- settings
-
- foreground
- #e5c890
-
-
-
- scope
- 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
- settings
-
- foreground
- #a6d189
-
-
-
- scope
- 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
- settings
-
- foreground
- #85c1dc
-
-
-
- scope
- 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
- settings
-
- foreground
- #babbf1
-
-
-
- scope
- markup.bold
- settings
-
- foreground
- #e78284
- fontStyle
- bold
-
-
-
- scope
- markup.italic
- settings
-
- foreground
- #e78284
- fontStyle
- italic
-
-
-
- scope
- markup.strikethrough
- settings
-
- foreground
- #a5adce
- fontStyle
- strikethrough
-
-
-
- name
- Markdown auto links
- scope
- punctuation.definition.link, markup.underline.link
- settings
-
- foreground
- #8caaee
-
-
-
- name
- Markdown links
- scope
- 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
- settings
-
- foreground
- #babbf1
-
-
-
- name
- Markdown code spans
- scope
- 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
- settings
-
- foreground
- #a6d189
-
-
-
- name
- Markdown triple backtick language identifier
- scope
- fenced_code.block.language
- settings
-
- foreground
- #99d1db
-
-
-
- name
- Markdown triple backticks
- scope
- markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc
- settings
-
- foreground
- #949cbb
-
-
-
- name
- Markdown quotes
- scope
- markup.quote, punctuation.definition.quote.begin
- settings
-
- foreground
- #f4b8e4
-
-
-
- name
- Markdown separators
- scope
- meta.separator.markdown
- settings
-
- foreground
- #81c8be
-
-
-
- name
- Markdown list bullets
- scope
- punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet
- settings
-
- foreground
- #81c8be
-
-
-
- name
- Quarto headings
- scope
- markup.heading.quarto
- settings
-
- fontStyle
- bold
-
-
-
- name
- Nix attribute names
- scope
- entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix
- settings
-
- foreground
- #8caaee
-
-
-
- name
- Nix parameter names
- scope
- variable.parameter.name.nix
- settings
-
- foreground
- #c6d0f5
- fontStyle
-
-
-
-
- name
- Nix interpolated parameter names
- scope
- meta.embedded variable.parameter.name.nix
- settings
-
- foreground
- #babbf1
- fontStyle
-
-
-
-
- name
- Nix paths
- scope
- string.unquoted.path.nix
- settings
-
- foreground
- #f4b8e4
- fontStyle
-
-
-
-
- name
- PHP Attributes
- scope
- support.attribute.builtin, meta.attribute.php
- settings
-
- foreground
- #e5c890
-
-
-
- name
- PHP Parameters (needed for the leading dollar sign)
- scope
- meta.function.parameters.php punctuation.definition.variable.php
- settings
-
- foreground
- #ea999c
-
-
-
- name
- PHP Constants (null, __FILE__, etc.)
- scope
- constant.language.php
- settings
-
- foreground
- #ca9ee6
-
-
-
- name
- PHP functions
- scope
- text.html.php support.function
- settings
-
- foreground
- #99d1db
-
-
-
- name
- PHPdoc keywords
- scope
- keyword.other.phpdoc.php
- settings
-
- fontStyle
-
-
-
-
- name
- Python argument functions reset to text, otherwise they inherit blue from function-call
- scope
- support.variable.magic.python, meta.function-call.arguments.python
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- Python double underscore functions
- scope
- support.function.magic.python
- settings
-
- foreground
- #99d1db
- fontStyle
- italic
-
-
-
- name
- Python `self` keyword
- scope
- variable.parameter.function.language.special.self.python, variable.language.special.self.python
- settings
-
- foreground
- #e78284
- fontStyle
- italic
-
-
-
- name
- python keyword flow/logical (for ... in)
- scope
- keyword.control.flow.python, keyword.operator.logical.python
- settings
-
- foreground
- #ca9ee6
-
-
-
- name
- python storage type
- scope
- storage.type.function.python
- settings
-
- foreground
- #ca9ee6
-
-
-
- name
- python function support
- scope
- support.token.decorator.python, meta.function.decorator.identifier.python
- settings
-
- foreground
- #99d1db
-
-
-
- name
- python function calls
- scope
- meta.function-call.python
- settings
-
- foreground
- #8caaee
-
-
-
- name
- python function decorators
- scope
- entity.name.function.decorator.python, punctuation.definition.decorator.python
- settings
-
- foreground
- #ef9f76
- fontStyle
- italic
-
-
-
- name
- python placeholder reset to normal string
- scope
- constant.character.format.placeholder.other.python
- settings
-
- foreground
- #f4b8e4
-
-
-
- name
- Python exception & builtins such as exit()
- scope
- support.type.exception.python, support.function.builtin.python
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- entity.name.type
- scope
- support.type.python
- settings
-
- foreground
- #ca9ee6
-
-
-
- name
- python constants (True/False)
- scope
- constant.language.python
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- Arguments accessed later in the function body
- scope
- meta.indexed-name.python, meta.item-access.python
- settings
-
- foreground
- #ea999c
- fontStyle
- italic
-
-
-
- name
- Python f-strings/binary/unicode storage types
- scope
- storage.type.string.python
- settings
-
- foreground
- #a6d189
- fontStyle
- italic
-
-
-
- name
- Python type hints
- scope
- meta.function.parameters.python
- settings
-
- fontStyle
-
-
-
-
- name
- Regex string begin/end in JS/TS
- scope
- string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end
- settings
-
- foreground
- #f4b8e4
-
-
-
- name
- Regex anchors (^, $)
- scope
- keyword.control.anchor.regexp
- settings
-
- foreground
- #ca9ee6
-
-
-
- name
- Regex regular string match
- scope
- string.regexp.ts
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- Regex group parenthesis & backreference (\1, \2, \3, ...)
- scope
- punctuation.definition.group.regexp, keyword.other.back-reference.regexp
- settings
-
- foreground
- #a6d189
-
-
-
- name
- Regex character class []
- scope
- punctuation.definition.character-class.regexp
- settings
-
- foreground
- #e5c890
-
-
-
- name
- Regex character classes (\d, \w, \s)
- scope
- constant.other.character-class.regexp
- settings
-
- foreground
- #f4b8e4
-
-
-
- name
- Regex range
- scope
- constant.other.character-class.range.regexp
- settings
-
- foreground
- #f2d5cf
-
-
-
- name
- Regex quantifier
- scope
- keyword.operator.quantifier.regexp
- settings
-
- foreground
- #81c8be
-
-
-
- name
- Regex constant/numeric
- scope
- constant.character.numeric.regexp
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds
- scope
- punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp
- settings
-
- foreground
- #8caaee
-
-
-
- name
- Rust attribute
- scope
- meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust
- settings
-
- foreground
- #e5c890
- fontStyle
- italic
-
-
-
- name
- Rust attribute strings
- scope
- meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust
- settings
-
- fontStyle
-
-
-
-
- name
- Rust keyword
- scope
- 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
- settings
-
- foreground
- #ca9ee6
- fontStyle
-
-
-
-
- name
- Rust u/i32, u/i64, etc.
- scope
- entity.name.type.numeric.rust
- settings
-
- foreground
- #ca9ee6
- fontStyle
-
-
-
-
- name
- Rust generic
- scope
- meta.generic.rust
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- Rust impl
- scope
- entity.name.impl.rust
- settings
-
- foreground
- #e5c890
- fontStyle
- italic
-
-
-
- name
- Rust module
- scope
- entity.name.module.rust
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- Rust trait
- scope
- entity.name.trait.rust
- settings
-
- foreground
- #e5c890
- fontStyle
- italic
-
-
-
- name
- Rust struct
- scope
- storage.type.source.rust
- settings
-
- foreground
- #e5c890
-
-
-
- name
- Rust union
- scope
- entity.name.union.rust
- settings
-
- foreground
- #e5c890
-
-
-
- name
- Rust enum member
- scope
- meta.enum.rust storage.type.source.rust
- settings
-
- foreground
- #81c8be
-
-
-
- name
- Rust macro
- scope
- support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust
- settings
-
- foreground
- #8caaee
- fontStyle
- italic
-
-
-
- name
- Rust lifetime
- scope
- storage.modifier.lifetime.rust, entity.name.type.lifetime
- settings
-
- foreground
- #8caaee
- fontStyle
- italic
-
-
-
- name
- Rust string formatting
- scope
- string.quoted.double.rust constant.other.placeholder.rust
- settings
-
- foreground
- #f4b8e4
-
-
-
- name
- Rust return type generic
- scope
- meta.function.return-type.rust meta.generic.rust storage.type.rust
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- Rust functions
- scope
- meta.function.call.rust
- settings
-
- foreground
- #8caaee
-
-
-
- name
- Rust angle brackets
- scope
- punctuation.brackets.angle.rust
- settings
-
- foreground
- #99d1db
-
-
-
- name
- Rust constants
- scope
- constant.other.caps.rust
- settings
-
- foreground
- #ef9f76
-
-
-
- name
- Rust function parameters
- scope
- meta.function.definition.rust variable.other.rust
- settings
-
- foreground
- #ea999c
-
-
-
- name
- Rust closure variables
- scope
- meta.function.call.rust variable.other.rust
- settings
-
- foreground
- #c6d0f5
-
-
-
- name
- Rust self
- scope
- variable.language.self.rust
- settings
-
- foreground
- #e78284
-
-
-
- name
- Rust metavariable names
- scope
- variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust
- settings
-
- foreground
- #f4b8e4
-
-
-
- name
- Shell shebang
- scope
- comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell
- settings
-
- foreground
- #f4b8e4
- fontStyle
- italic
-
-
-
- name
- Shell shebang command
- scope
- comment.line.shebang constant.language
- settings
-
- foreground
- #81c8be
- fontStyle
- italic
-
-
-
- name
- Shell interpolated command
- scope
- 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
- settings
-
- foreground
- #e78284
-
-
-
- name
- Shell interpolated command variable
- scope
- meta.string meta.interpolation.parameter.shell variable.other.readwrite
- settings
-
- foreground
- #ef9f76
- fontStyle
- italic
-
-
-
- scope
- source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell
- settings
-
- foreground
- #81c8be
-
-
-
- name
- Shell EOF
- scope
- entity.name.tag.heredoc.shell
- settings
-
- foreground
- #ca9ee6
-
-
-
- name
- Shell quoted variable
- scope
- string.quoted.double.shell variable.other.normal.shell
- settings
-
- foreground
- #c6d0f5
-
-
-
- scope
- markup.heading.typst
- settings
-
- foreground
- #e78284
-
-
-
- name
- JSON Keys
- scope
- source.json meta.mapping.key string
- settings
-
- foreground
- #8caaee
-
-
-
- name
- JSON key surrounding quotes
- scope
- source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end
- settings
-
- foreground
- #949cbb
-
-
-
- scope
- markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man
- settings
-
- foreground
- #ca9ee6
-
-
-
- scope
- markup.heading.commands.man
- settings
-
- foreground
- #8caaee
-
-
-
- scope
- markup.heading.env.man
- settings
-
- foreground
- #f4b8e4
-
-
-
- name
- Man page options
- scope
- entity.name
- settings
-
- foreground
- #81c8be
-
-
-
- scope
- markup.heading.1.markdown
- settings
-
- foreground
- #e78284
-
-
-
- scope
- markup.heading.2.markdown
- settings
-
- foreground
- #ef9f76
-
-
-
- scope
- markup.heading.markdown
- settings
-
- foreground
- #e5c890
-
-
-
-
-
\ 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
deleted file mode 100644
index fb5b1d6..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644
index 006383b..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/LICENSE-tmtheme
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644
index ea1c35e..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-
-

-
-
-
- Catppuccin Latte Flavor for Yazi
-
-
-## 👀 Preview
-
-
-
-## 🎨 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
deleted file mode 100644
index ba2bb78..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/flavor.toml
+++ /dev/null
@@ -1,189 +0,0 @@
-# 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
deleted file mode 100644
index 7712450..0000000
Binary files a/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/preview.png and /dev/null 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
deleted file mode 100644
index ddeb349..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-latte.yazi/tmtheme.xml
+++ /dev/null
@@ -1,2112 +0,0 @@
-
-
-
-
- name
- Catppuccin Latte
- semanticClass
- theme.light.catppuccin-latte
- uuid
- 96a262cd-4b2f-49f5-9125-8dd0077cbfe1
- author
- Catppuccin Org
- colorSpaceName
- sRGB
- settings
-
-
- settings
-
- background
- #eff1f5
- foreground
- #4c4f69
- caret
- #dc8a78
- lineHighlight
- #ccd0da
- misspelling
- #d20f39
- accent
- #8839ef
- selection
- #7c7f934d
- activeGuide
- #bcc0cc
- findHighlight
- #a9daf0
- gutterForeground
- #8c8fa1
-
-
-
- name
- Basic text & variable names (incl. leading punctuation)
- scope
- text, source, variable.other.readwrite, punctuation.definition.variable
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- Parentheses, Brackets, Braces
- scope
- punctuation
- settings
-
- foreground
- #7c7f93
- fontStyle
-
-
-
-
- name
- Comments
- scope
- comment, punctuation.definition.comment
- settings
-
- foreground
- #7c7f93
- fontStyle
- italic
-
-
-
- scope
- string, punctuation.definition.string
- settings
-
- foreground
- #40a02b
-
-
-
- scope
- constant.character.escape
- settings
-
- foreground
- #ea76cb
-
-
-
- name
- Booleans, constants, numbers
- scope
- 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
- settings
-
- foreground
- #fe640b
-
-
-
- scope
- keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword
- settings
-
- foreground
- #8839ef
- fontStyle
-
-
-
-
- scope
- entity.name.tag.documentation
- settings
-
- foreground
- #8839ef
-
-
-
- name
- Punctuation
- scope
- keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value
- settings
-
- foreground
- #179299
-
-
-
- scope
- entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function
- settings
-
- foreground
- #1e66f5
- fontStyle
- italic
-
-
-
- name
- Classes
- scope
- entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct
- settings
-
- foreground
- #df8e1d
- fontStyle
- italic
-
-
-
- name
- Enum
- scope
- entity.name.enum
- settings
-
- foreground
- #df8e1d
- fontStyle
- italic
-
-
-
- name
- Enum member
- scope
- meta.enum variable.other.readwrite, variable.other.enummember
- settings
-
- foreground
- #179299
-
-
-
- name
- Object properties
- scope
- meta.property.object
- settings
-
- foreground
- #179299
-
-
-
- name
- Types
- scope
- meta.type, meta.type-alias, support.type, entity.name.type
- settings
-
- foreground
- #df8e1d
- fontStyle
- italic
-
-
-
- name
- Decorators
- scope
- meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator
- settings
-
- foreground
- #fe640b
-
-
-
- scope
- variable.parameter, meta.function.parameters
- settings
-
- foreground
- #e64553
- fontStyle
- italic
-
-
-
- name
- Built-ins
- scope
- constant.language, support.function.builtin
- settings
-
- foreground
- #d20f39
-
-
-
- scope
- entity.other.attribute-name.documentation
- settings
-
- foreground
- #d20f39
-
-
-
- name
- Preprocessor directives
- scope
- keyword.control.directive, punctuation.definition.directive
- settings
-
- foreground
- #df8e1d
-
-
-
- name
- Type parameters
- scope
- punctuation.definition.typeparameters
- settings
-
- foreground
- #04a5e5
-
-
-
- name
- Namespaces
- scope
- entity.name.namespace
- settings
-
- foreground
- #df8e1d
-
-
-
- name
- Property names (left hand assignments in json/yaml/css)
- scope
- support.type.property-name.css
- settings
-
- foreground
- #1e66f5
- fontStyle
-
-
-
-
- name
- This/Self keyword
- scope
- variable.language.this, variable.language.this punctuation.definition.variable
- settings
-
- foreground
- #d20f39
-
-
-
- name
- Object properties
- scope
- variable.object.property
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- String template interpolation
- scope
- string.template variable, string variable
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- `new` as bold
- scope
- keyword.operator.new
- settings
-
- fontStyle
- bold
-
-
-
- name
- C++ extern keyword
- scope
- storage.modifier.specifier.extern.cpp
- settings
-
- foreground
- #8839ef
-
-
-
- name
- C++ scope resolution
- scope
- 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
- settings
-
- foreground
- #df8e1d
-
-
-
- name
- C++ doc keywords
- scope
- storage.type.class.doxygen
- settings
-
- fontStyle
-
-
-
-
- name
- C++ operators
- scope
- storage.modifier.reference.cpp
- settings
-
- foreground
- #179299
-
-
-
- name
- C# Interpolated Strings
- scope
- meta.interpolation.cs
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- C# xml-style docs
- scope
- comment.block.documentation.cs
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- Classes, reflecting the className color in JSX
- scope
- source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css
- settings
-
- foreground
- #df8e1d
-
-
-
- name
- Operators
- scope
- punctuation.separator.operator.css
- settings
-
- foreground
- #179299
-
-
-
- name
- Pseudo classes
- scope
- source.css entity.other.attribute-name.pseudo-class
- settings
-
- foreground
- #179299
-
-
-
- scope
- source.css constant.other.unicode-range
- settings
-
- foreground
- #fe640b
-
-
-
- scope
- source.css variable.parameter.url
- settings
-
- foreground
- #40a02b
- fontStyle
-
-
-
-
- name
- CSS vendored property names
- scope
- support.type.vendored.property-name
- settings
-
- foreground
- #04a5e5
-
-
-
- name
- Less/SCSS right-hand variables (@/$-prefixed)
- scope
- 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
- settings
-
- foreground
- #e64553
-
-
-
- name
- CSS variables (--prefixed)
- scope
- source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less
- settings
-
- foreground
- #1e66f5
-
-
-
- name
- CSS Percentage values, styled the same as numbers
- scope
- keyword.other.unit.percentage.css
- settings
-
- foreground
- #fe640b
-
-
-
- name
- CSS Attribute selectors, styled the same as strings
- scope
- source.css meta.attribute-selector
- settings
-
- foreground
- #40a02b
-
-
-
- name
- JSON/YAML keys, other left-hand assignments
- scope
- 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
- settings
-
- foreground
- #1e66f5
- fontStyle
-
-
-
-
- name
- JSON/YAML constants
- scope
- constant.language.json, constant.language.yaml
- settings
-
- foreground
- #fe640b
-
-
-
- name
- YAML anchors
- scope
- entity.name.type.anchor.yaml, variable.other.alias.yaml
- settings
-
- foreground
- #df8e1d
- fontStyle
-
-
-
-
- name
- TOML tables / ini groups
- scope
- support.type.property-name.table, entity.name.section.group-title.ini
- settings
-
- foreground
- #df8e1d
-
-
-
- name
- TOML dates
- scope
- constant.other.time.datetime.offset.toml
- settings
-
- foreground
- #ea76cb
-
-
-
- name
- YAML anchor puctuation
- scope
- punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml
- settings
-
- foreground
- #ea76cb
-
-
-
- name
- YAML triple dashes
- scope
- entity.other.document.begin.yaml
- settings
-
- foreground
- #ea76cb
-
-
-
- name
- Markup Diff
- scope
- markup.changed.diff
- settings
-
- foreground
- #fe640b
-
-
-
- name
- Diff
- scope
- meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff
- settings
-
- foreground
- #1e66f5
-
-
-
- name
- Diff Inserted
- scope
- markup.inserted.diff
- settings
-
- foreground
- #40a02b
-
-
-
- name
- Diff Deleted
- scope
- markup.deleted.diff
- settings
-
- foreground
- #d20f39
-
-
-
- name
- dotenv left-hand side assignments
- scope
- variable.other.env
- settings
-
- foreground
- #1e66f5
-
-
-
- name
- dotenv reference to existing env variable
- scope
- string.quoted variable.other.env
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- GDScript functions
- scope
- support.function.builtin.gdscript
- settings
-
- foreground
- #1e66f5
-
-
-
- name
- GDScript constants
- scope
- constant.language.gdscript
- settings
-
- foreground
- #fe640b
-
-
-
- name
- Comment keywords
- scope
- comment meta.annotation.go
- settings
-
- foreground
- #e64553
-
-
-
- name
- go:embed, go:build, etc.
- scope
- comment meta.annotation.parameters.go
- settings
-
- foreground
- #fe640b
-
-
-
- name
- Go constants (nil, true, false)
- scope
- constant.language.go
- settings
-
- foreground
- #fe640b
-
-
-
- name
- GraphQL variables
- scope
- variable.graphql
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- GraphQL aliases
- scope
- string.unquoted.alias.graphql
- settings
-
- foreground
- #dd7878
-
-
-
- name
- GraphQL enum members
- scope
- constant.character.enum.graphql
- settings
-
- foreground
- #179299
-
-
-
- name
- GraphQL field in types
- scope
- meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql
- settings
-
- foreground
- #dd7878
-
-
-
- name
- HTML/XML DOCTYPE as keyword
- scope
- keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag
- settings
-
- foreground
- #8839ef
-
-
-
- name
- HTML/XML-like <tags/>
- scope
- entity.name.tag
- settings
-
- foreground
- #1e66f5
- fontStyle
-
-
-
-
- name
- Special characters like &
- scope
- 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
- settings
-
- foreground
- #d20f39
-
-
-
- name
- HTML/XML tag attribute values
- scope
- entity.other.attribute-name
- settings
-
- foreground
- #df8e1d
-
-
-
- name
- Components
- scope
- support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue
- settings
-
- foreground
- #ea76cb
- fontStyle
-
-
-
-
- name
- Annotations
- scope
- punctuation.definition.annotation, storage.type.annotation
- settings
-
- foreground
- #fe640b
-
-
-
- name
- Java enums
- scope
- constant.other.enum.java
- settings
-
- foreground
- #179299
-
-
-
- name
- Java imports
- scope
- storage.modifier.import.java
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- Javadoc
- scope
- comment.block.javadoc.java keyword.other.documentation.javadoc.java
- settings
-
- fontStyle
-
-
-
-
- name
- Exported Variable
- scope
- meta.export variable.other.readwrite.js
- settings
-
- foreground
- #e64553
-
-
-
- name
- JS/TS constants & properties
- scope
- variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- JSDoc; these are mainly params, so styled as such
- scope
- variable.other.jsdoc, comment.block.documentation variable.other
- settings
-
- foreground
- #e64553
- fontStyle
-
-
-
-
- name
- JSDoc keywords
- scope
- storage.type.class.jsdoc
- settings
-
- fontStyle
-
-
-
-
- scope
- support.type.object.console.js
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- Node constants as keywords (module, etc.)
- scope
- support.constant.node, support.type.object.module.js
- settings
-
- foreground
- #8839ef
-
-
-
- name
- implements as keyword
- scope
- storage.modifier.implements
- settings
-
- foreground
- #8839ef
-
-
-
- name
- Builtin types
- scope
- constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts
- settings
-
- foreground
- #8839ef
-
-
-
- scope
- variable.parameter.generic
- settings
-
- foreground
- #df8e1d
-
-
-
- name
- Arrow functions
- scope
- keyword.declaration.function.arrow.js, storage.type.function.arrow.ts
- settings
-
- foreground
- #179299
-
-
-
- name
- Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)
- scope
- punctuation.decorator.ts
- settings
-
- foreground
- #1e66f5
- fontStyle
- italic
-
-
-
- name
- Extra JS/TS keywords
- scope
- 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
- settings
-
- foreground
- #8839ef
-
-
-
- name
- Julia macros
- scope
- support.function.macro.julia
- settings
-
- foreground
- #179299
- fontStyle
- italic
-
-
-
- name
- Julia language constants (true, false)
- scope
- constant.language.julia
- settings
-
- foreground
- #fe640b
-
-
-
- name
- Julia other constants (these seem to be arguments inside arrays)
- scope
- constant.other.symbol.julia
- settings
-
- foreground
- #e64553
-
-
-
- name
- LaTeX preamble
- scope
- text.tex keyword.control.preamble
- settings
-
- foreground
- #179299
-
-
-
- name
- LaTeX be functions
- scope
- text.tex support.function.be
- settings
-
- foreground
- #04a5e5
-
-
-
- name
- LaTeX math
- scope
- constant.other.general.math.tex
- settings
-
- foreground
- #dd7878
-
-
-
- name
- Liquid Builtin Objects & User Defined Variables
- scope
- variable.language.liquid
- settings
-
- foreground
- #ea76cb
-
-
-
- name
- Lua docstring keywords
- scope
- comment.line.double-dash.documentation.lua storage.type.annotation.lua
- settings
-
- foreground
- #8839ef
- fontStyle
-
-
-
-
- name
- Lua docstring variables
- scope
- comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua
- settings
-
- foreground
- #4c4f69
-
-
-
- scope
- 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
- settings
-
- foreground
- #d20f39
-
-
-
- scope
- 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
- settings
-
- foreground
- #fe640b
-
-
-
- scope
- 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
- settings
-
- foreground
- #df8e1d
-
-
-
- scope
- 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
- settings
-
- foreground
- #40a02b
-
-
-
- scope
- 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
- settings
-
- foreground
- #209fb5
-
-
-
- scope
- 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
- settings
-
- foreground
- #7287fd
-
-
-
- scope
- markup.bold
- settings
-
- foreground
- #d20f39
- fontStyle
- bold
-
-
-
- scope
- markup.italic
- settings
-
- foreground
- #d20f39
- fontStyle
- italic
-
-
-
- scope
- markup.strikethrough
- settings
-
- foreground
- #6c6f85
- fontStyle
- strikethrough
-
-
-
- name
- Markdown auto links
- scope
- punctuation.definition.link, markup.underline.link
- settings
-
- foreground
- #1e66f5
-
-
-
- name
- Markdown links
- scope
- 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
- settings
-
- foreground
- #7287fd
-
-
-
- name
- Markdown code spans
- scope
- 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
- settings
-
- foreground
- #40a02b
-
-
-
- name
- Markdown triple backtick language identifier
- scope
- fenced_code.block.language
- settings
-
- foreground
- #04a5e5
-
-
-
- name
- Markdown triple backticks
- scope
- markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc
- settings
-
- foreground
- #7c7f93
-
-
-
- name
- Markdown quotes
- scope
- markup.quote, punctuation.definition.quote.begin
- settings
-
- foreground
- #ea76cb
-
-
-
- name
- Markdown separators
- scope
- meta.separator.markdown
- settings
-
- foreground
- #179299
-
-
-
- name
- Markdown list bullets
- scope
- punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet
- settings
-
- foreground
- #179299
-
-
-
- name
- Quarto headings
- scope
- markup.heading.quarto
- settings
-
- fontStyle
- bold
-
-
-
- name
- Nix attribute names
- scope
- entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix
- settings
-
- foreground
- #1e66f5
-
-
-
- name
- Nix parameter names
- scope
- variable.parameter.name.nix
- settings
-
- foreground
- #4c4f69
- fontStyle
-
-
-
-
- name
- Nix interpolated parameter names
- scope
- meta.embedded variable.parameter.name.nix
- settings
-
- foreground
- #7287fd
- fontStyle
-
-
-
-
- name
- Nix paths
- scope
- string.unquoted.path.nix
- settings
-
- foreground
- #ea76cb
- fontStyle
-
-
-
-
- name
- PHP Attributes
- scope
- support.attribute.builtin, meta.attribute.php
- settings
-
- foreground
- #df8e1d
-
-
-
- name
- PHP Parameters (needed for the leading dollar sign)
- scope
- meta.function.parameters.php punctuation.definition.variable.php
- settings
-
- foreground
- #e64553
-
-
-
- name
- PHP Constants (null, __FILE__, etc.)
- scope
- constant.language.php
- settings
-
- foreground
- #8839ef
-
-
-
- name
- PHP functions
- scope
- text.html.php support.function
- settings
-
- foreground
- #04a5e5
-
-
-
- name
- PHPdoc keywords
- scope
- keyword.other.phpdoc.php
- settings
-
- fontStyle
-
-
-
-
- name
- Python argument functions reset to text, otherwise they inherit blue from function-call
- scope
- support.variable.magic.python, meta.function-call.arguments.python
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- Python double underscore functions
- scope
- support.function.magic.python
- settings
-
- foreground
- #04a5e5
- fontStyle
- italic
-
-
-
- name
- Python `self` keyword
- scope
- variable.parameter.function.language.special.self.python, variable.language.special.self.python
- settings
-
- foreground
- #d20f39
- fontStyle
- italic
-
-
-
- name
- python keyword flow/logical (for ... in)
- scope
- keyword.control.flow.python, keyword.operator.logical.python
- settings
-
- foreground
- #8839ef
-
-
-
- name
- python storage type
- scope
- storage.type.function.python
- settings
-
- foreground
- #8839ef
-
-
-
- name
- python function support
- scope
- support.token.decorator.python, meta.function.decorator.identifier.python
- settings
-
- foreground
- #04a5e5
-
-
-
- name
- python function calls
- scope
- meta.function-call.python
- settings
-
- foreground
- #1e66f5
-
-
-
- name
- python function decorators
- scope
- entity.name.function.decorator.python, punctuation.definition.decorator.python
- settings
-
- foreground
- #fe640b
- fontStyle
- italic
-
-
-
- name
- python placeholder reset to normal string
- scope
- constant.character.format.placeholder.other.python
- settings
-
- foreground
- #ea76cb
-
-
-
- name
- Python exception & builtins such as exit()
- scope
- support.type.exception.python, support.function.builtin.python
- settings
-
- foreground
- #fe640b
-
-
-
- name
- entity.name.type
- scope
- support.type.python
- settings
-
- foreground
- #8839ef
-
-
-
- name
- python constants (True/False)
- scope
- constant.language.python
- settings
-
- foreground
- #fe640b
-
-
-
- name
- Arguments accessed later in the function body
- scope
- meta.indexed-name.python, meta.item-access.python
- settings
-
- foreground
- #e64553
- fontStyle
- italic
-
-
-
- name
- Python f-strings/binary/unicode storage types
- scope
- storage.type.string.python
- settings
-
- foreground
- #40a02b
- fontStyle
- italic
-
-
-
- name
- Python type hints
- scope
- meta.function.parameters.python
- settings
-
- fontStyle
-
-
-
-
- name
- Regex string begin/end in JS/TS
- scope
- string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end
- settings
-
- foreground
- #ea76cb
-
-
-
- name
- Regex anchors (^, $)
- scope
- keyword.control.anchor.regexp
- settings
-
- foreground
- #8839ef
-
-
-
- name
- Regex regular string match
- scope
- string.regexp.ts
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- Regex group parenthesis & backreference (\1, \2, \3, ...)
- scope
- punctuation.definition.group.regexp, keyword.other.back-reference.regexp
- settings
-
- foreground
- #40a02b
-
-
-
- name
- Regex character class []
- scope
- punctuation.definition.character-class.regexp
- settings
-
- foreground
- #df8e1d
-
-
-
- name
- Regex character classes (\d, \w, \s)
- scope
- constant.other.character-class.regexp
- settings
-
- foreground
- #ea76cb
-
-
-
- name
- Regex range
- scope
- constant.other.character-class.range.regexp
- settings
-
- foreground
- #dc8a78
-
-
-
- name
- Regex quantifier
- scope
- keyword.operator.quantifier.regexp
- settings
-
- foreground
- #179299
-
-
-
- name
- Regex constant/numeric
- scope
- constant.character.numeric.regexp
- settings
-
- foreground
- #fe640b
-
-
-
- name
- Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds
- scope
- punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp
- settings
-
- foreground
- #1e66f5
-
-
-
- name
- Rust attribute
- scope
- meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust
- settings
-
- foreground
- #df8e1d
- fontStyle
- italic
-
-
-
- name
- Rust attribute strings
- scope
- meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust
- settings
-
- fontStyle
-
-
-
-
- name
- Rust keyword
- scope
- 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
- settings
-
- foreground
- #8839ef
- fontStyle
-
-
-
-
- name
- Rust u/i32, u/i64, etc.
- scope
- entity.name.type.numeric.rust
- settings
-
- foreground
- #8839ef
- fontStyle
-
-
-
-
- name
- Rust generic
- scope
- meta.generic.rust
- settings
-
- foreground
- #fe640b
-
-
-
- name
- Rust impl
- scope
- entity.name.impl.rust
- settings
-
- foreground
- #df8e1d
- fontStyle
- italic
-
-
-
- name
- Rust module
- scope
- entity.name.module.rust
- settings
-
- foreground
- #fe640b
-
-
-
- name
- Rust trait
- scope
- entity.name.trait.rust
- settings
-
- foreground
- #df8e1d
- fontStyle
- italic
-
-
-
- name
- Rust struct
- scope
- storage.type.source.rust
- settings
-
- foreground
- #df8e1d
-
-
-
- name
- Rust union
- scope
- entity.name.union.rust
- settings
-
- foreground
- #df8e1d
-
-
-
- name
- Rust enum member
- scope
- meta.enum.rust storage.type.source.rust
- settings
-
- foreground
- #179299
-
-
-
- name
- Rust macro
- scope
- support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust
- settings
-
- foreground
- #1e66f5
- fontStyle
- italic
-
-
-
- name
- Rust lifetime
- scope
- storage.modifier.lifetime.rust, entity.name.type.lifetime
- settings
-
- foreground
- #1e66f5
- fontStyle
- italic
-
-
-
- name
- Rust string formatting
- scope
- string.quoted.double.rust constant.other.placeholder.rust
- settings
-
- foreground
- #ea76cb
-
-
-
- name
- Rust return type generic
- scope
- meta.function.return-type.rust meta.generic.rust storage.type.rust
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- Rust functions
- scope
- meta.function.call.rust
- settings
-
- foreground
- #1e66f5
-
-
-
- name
- Rust angle brackets
- scope
- punctuation.brackets.angle.rust
- settings
-
- foreground
- #04a5e5
-
-
-
- name
- Rust constants
- scope
- constant.other.caps.rust
- settings
-
- foreground
- #fe640b
-
-
-
- name
- Rust function parameters
- scope
- meta.function.definition.rust variable.other.rust
- settings
-
- foreground
- #e64553
-
-
-
- name
- Rust closure variables
- scope
- meta.function.call.rust variable.other.rust
- settings
-
- foreground
- #4c4f69
-
-
-
- name
- Rust self
- scope
- variable.language.self.rust
- settings
-
- foreground
- #d20f39
-
-
-
- name
- Rust metavariable names
- scope
- variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust
- settings
-
- foreground
- #ea76cb
-
-
-
- name
- Shell shebang
- scope
- comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell
- settings
-
- foreground
- #ea76cb
- fontStyle
- italic
-
-
-
- name
- Shell shebang command
- scope
- comment.line.shebang constant.language
- settings
-
- foreground
- #179299
- fontStyle
- italic
-
-
-
- name
- Shell interpolated command
- scope
- 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
- settings
-
- foreground
- #d20f39
-
-
-
- name
- Shell interpolated command variable
- scope
- meta.string meta.interpolation.parameter.shell variable.other.readwrite
- settings
-
- foreground
- #fe640b
- fontStyle
- italic
-
-
-
- scope
- source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell
- settings
-
- foreground
- #179299
-
-
-
- name
- Shell EOF
- scope
- entity.name.tag.heredoc.shell
- settings
-
- foreground
- #8839ef
-
-
-
- name
- Shell quoted variable
- scope
- string.quoted.double.shell variable.other.normal.shell
- settings
-
- foreground
- #4c4f69
-
-
-
- scope
- markup.heading.typst
- settings
-
- foreground
- #d20f39
-
-
-
- name
- JSON Keys
- scope
- source.json meta.mapping.key string
- settings
-
- foreground
- #1e66f5
-
-
-
- name
- JSON key surrounding quotes
- scope
- source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end
- settings
-
- foreground
- #7c7f93
-
-
-
- scope
- markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man
- settings
-
- foreground
- #8839ef
-
-
-
- scope
- markup.heading.commands.man
- settings
-
- foreground
- #1e66f5
-
-
-
- scope
- markup.heading.env.man
- settings
-
- foreground
- #ea76cb
-
-
-
- name
- Man page options
- scope
- entity.name
- settings
-
- foreground
- #179299
-
-
-
- scope
- markup.heading.1.markdown
- settings
-
- foreground
- #d20f39
-
-
-
- scope
- markup.heading.2.markdown
- settings
-
- foreground
- #fe640b
-
-
-
- scope
- markup.heading.markdown
- settings
-
- foreground
- #df8e1d
-
-
-
-
-
\ 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
deleted file mode 100644
index fb5b1d6..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644
index 006383b..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/LICENSE-tmtheme
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644
index 752908c..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-
-

-
-
-
- Catppuccin Macchiato Flavor for Yazi
-
-
-## 👀 Preview
-
-
-
-## 🎨 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
deleted file mode 100644
index 9d3042f..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/flavor.toml
+++ /dev/null
@@ -1,189 +0,0 @@
-# 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
deleted file mode 100644
index a200463..0000000
Binary files a/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/preview.png and /dev/null 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
deleted file mode 100644
index 8f21312..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-macchiato.yazi/tmtheme.xml
+++ /dev/null
@@ -1,2112 +0,0 @@
-
-
-
-
- name
- Catppuccin Macchiato
- semanticClass
- theme.dark.catppuccin-macchiato
- uuid
- 02b2bdf3-9eb7-4396-bf04-f17f1468f99f
- author
- Catppuccin Org
- colorSpaceName
- sRGB
- settings
-
-
- settings
-
- background
- #24273a
- foreground
- #cad3f5
- caret
- #f4dbd6
- lineHighlight
- #363a4f
- misspelling
- #ed8796
- accent
- #c6a0f6
- selection
- #939ab740
- activeGuide
- #494d64
- findHighlight
- #455c6d
- gutterForeground
- #8087a2
-
-
-
- name
- Basic text & variable names (incl. leading punctuation)
- scope
- text, source, variable.other.readwrite, punctuation.definition.variable
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- Parentheses, Brackets, Braces
- scope
- punctuation
- settings
-
- foreground
- #939ab7
- fontStyle
-
-
-
-
- name
- Comments
- scope
- comment, punctuation.definition.comment
- settings
-
- foreground
- #939ab7
- fontStyle
- italic
-
-
-
- scope
- string, punctuation.definition.string
- settings
-
- foreground
- #a6da95
-
-
-
- scope
- constant.character.escape
- settings
-
- foreground
- #f5bde6
-
-
-
- name
- Booleans, constants, numbers
- scope
- 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
- settings
-
- foreground
- #f5a97f
-
-
-
- scope
- keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword
- settings
-
- foreground
- #c6a0f6
- fontStyle
-
-
-
-
- scope
- entity.name.tag.documentation
- settings
-
- foreground
- #c6a0f6
-
-
-
- name
- Punctuation
- scope
- keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value
- settings
-
- foreground
- #8bd5ca
-
-
-
- scope
- entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function
- settings
-
- foreground
- #8aadf4
- fontStyle
- italic
-
-
-
- name
- Classes
- scope
- entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct
- settings
-
- foreground
- #eed49f
- fontStyle
- italic
-
-
-
- name
- Enum
- scope
- entity.name.enum
- settings
-
- foreground
- #eed49f
- fontStyle
- italic
-
-
-
- name
- Enum member
- scope
- meta.enum variable.other.readwrite, variable.other.enummember
- settings
-
- foreground
- #8bd5ca
-
-
-
- name
- Object properties
- scope
- meta.property.object
- settings
-
- foreground
- #8bd5ca
-
-
-
- name
- Types
- scope
- meta.type, meta.type-alias, support.type, entity.name.type
- settings
-
- foreground
- #eed49f
- fontStyle
- italic
-
-
-
- name
- Decorators
- scope
- meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator
- settings
-
- foreground
- #f5a97f
-
-
-
- scope
- variable.parameter, meta.function.parameters
- settings
-
- foreground
- #ee99a0
- fontStyle
- italic
-
-
-
- name
- Built-ins
- scope
- constant.language, support.function.builtin
- settings
-
- foreground
- #ed8796
-
-
-
- scope
- entity.other.attribute-name.documentation
- settings
-
- foreground
- #ed8796
-
-
-
- name
- Preprocessor directives
- scope
- keyword.control.directive, punctuation.definition.directive
- settings
-
- foreground
- #eed49f
-
-
-
- name
- Type parameters
- scope
- punctuation.definition.typeparameters
- settings
-
- foreground
- #91d7e3
-
-
-
- name
- Namespaces
- scope
- entity.name.namespace
- settings
-
- foreground
- #eed49f
-
-
-
- name
- Property names (left hand assignments in json/yaml/css)
- scope
- support.type.property-name.css
- settings
-
- foreground
- #8aadf4
- fontStyle
-
-
-
-
- name
- This/Self keyword
- scope
- variable.language.this, variable.language.this punctuation.definition.variable
- settings
-
- foreground
- #ed8796
-
-
-
- name
- Object properties
- scope
- variable.object.property
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- String template interpolation
- scope
- string.template variable, string variable
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- `new` as bold
- scope
- keyword.operator.new
- settings
-
- fontStyle
- bold
-
-
-
- name
- C++ extern keyword
- scope
- storage.modifier.specifier.extern.cpp
- settings
-
- foreground
- #c6a0f6
-
-
-
- name
- C++ scope resolution
- scope
- 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
- settings
-
- foreground
- #eed49f
-
-
-
- name
- C++ doc keywords
- scope
- storage.type.class.doxygen
- settings
-
- fontStyle
-
-
-
-
- name
- C++ operators
- scope
- storage.modifier.reference.cpp
- settings
-
- foreground
- #8bd5ca
-
-
-
- name
- C# Interpolated Strings
- scope
- meta.interpolation.cs
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- C# xml-style docs
- scope
- comment.block.documentation.cs
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- Classes, reflecting the className color in JSX
- scope
- source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css
- settings
-
- foreground
- #eed49f
-
-
-
- name
- Operators
- scope
- punctuation.separator.operator.css
- settings
-
- foreground
- #8bd5ca
-
-
-
- name
- Pseudo classes
- scope
- source.css entity.other.attribute-name.pseudo-class
- settings
-
- foreground
- #8bd5ca
-
-
-
- scope
- source.css constant.other.unicode-range
- settings
-
- foreground
- #f5a97f
-
-
-
- scope
- source.css variable.parameter.url
- settings
-
- foreground
- #a6da95
- fontStyle
-
-
-
-
- name
- CSS vendored property names
- scope
- support.type.vendored.property-name
- settings
-
- foreground
- #91d7e3
-
-
-
- name
- Less/SCSS right-hand variables (@/$-prefixed)
- scope
- 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
- settings
-
- foreground
- #ee99a0
-
-
-
- name
- CSS variables (--prefixed)
- scope
- source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less
- settings
-
- foreground
- #8aadf4
-
-
-
- name
- CSS Percentage values, styled the same as numbers
- scope
- keyword.other.unit.percentage.css
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- CSS Attribute selectors, styled the same as strings
- scope
- source.css meta.attribute-selector
- settings
-
- foreground
- #a6da95
-
-
-
- name
- JSON/YAML keys, other left-hand assignments
- scope
- 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
- settings
-
- foreground
- #8aadf4
- fontStyle
-
-
-
-
- name
- JSON/YAML constants
- scope
- constant.language.json, constant.language.yaml
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- YAML anchors
- scope
- entity.name.type.anchor.yaml, variable.other.alias.yaml
- settings
-
- foreground
- #eed49f
- fontStyle
-
-
-
-
- name
- TOML tables / ini groups
- scope
- support.type.property-name.table, entity.name.section.group-title.ini
- settings
-
- foreground
- #eed49f
-
-
-
- name
- TOML dates
- scope
- constant.other.time.datetime.offset.toml
- settings
-
- foreground
- #f5bde6
-
-
-
- name
- YAML anchor puctuation
- scope
- punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml
- settings
-
- foreground
- #f5bde6
-
-
-
- name
- YAML triple dashes
- scope
- entity.other.document.begin.yaml
- settings
-
- foreground
- #f5bde6
-
-
-
- name
- Markup Diff
- scope
- markup.changed.diff
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- Diff
- scope
- meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff
- settings
-
- foreground
- #8aadf4
-
-
-
- name
- Diff Inserted
- scope
- markup.inserted.diff
- settings
-
- foreground
- #a6da95
-
-
-
- name
- Diff Deleted
- scope
- markup.deleted.diff
- settings
-
- foreground
- #ed8796
-
-
-
- name
- dotenv left-hand side assignments
- scope
- variable.other.env
- settings
-
- foreground
- #8aadf4
-
-
-
- name
- dotenv reference to existing env variable
- scope
- string.quoted variable.other.env
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- GDScript functions
- scope
- support.function.builtin.gdscript
- settings
-
- foreground
- #8aadf4
-
-
-
- name
- GDScript constants
- scope
- constant.language.gdscript
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- Comment keywords
- scope
- comment meta.annotation.go
- settings
-
- foreground
- #ee99a0
-
-
-
- name
- go:embed, go:build, etc.
- scope
- comment meta.annotation.parameters.go
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- Go constants (nil, true, false)
- scope
- constant.language.go
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- GraphQL variables
- scope
- variable.graphql
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- GraphQL aliases
- scope
- string.unquoted.alias.graphql
- settings
-
- foreground
- #f0c6c6
-
-
-
- name
- GraphQL enum members
- scope
- constant.character.enum.graphql
- settings
-
- foreground
- #8bd5ca
-
-
-
- name
- GraphQL field in types
- scope
- meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql
- settings
-
- foreground
- #f0c6c6
-
-
-
- name
- HTML/XML DOCTYPE as keyword
- scope
- keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag
- settings
-
- foreground
- #c6a0f6
-
-
-
- name
- HTML/XML-like <tags/>
- scope
- entity.name.tag
- settings
-
- foreground
- #8aadf4
- fontStyle
-
-
-
-
- name
- Special characters like &
- scope
- 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
- settings
-
- foreground
- #ed8796
-
-
-
- name
- HTML/XML tag attribute values
- scope
- entity.other.attribute-name
- settings
-
- foreground
- #eed49f
-
-
-
- name
- Components
- scope
- support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue
- settings
-
- foreground
- #f5bde6
- fontStyle
-
-
-
-
- name
- Annotations
- scope
- punctuation.definition.annotation, storage.type.annotation
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- Java enums
- scope
- constant.other.enum.java
- settings
-
- foreground
- #8bd5ca
-
-
-
- name
- Java imports
- scope
- storage.modifier.import.java
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- Javadoc
- scope
- comment.block.javadoc.java keyword.other.documentation.javadoc.java
- settings
-
- fontStyle
-
-
-
-
- name
- Exported Variable
- scope
- meta.export variable.other.readwrite.js
- settings
-
- foreground
- #ee99a0
-
-
-
- name
- JS/TS constants & properties
- scope
- variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- JSDoc; these are mainly params, so styled as such
- scope
- variable.other.jsdoc, comment.block.documentation variable.other
- settings
-
- foreground
- #ee99a0
- fontStyle
-
-
-
-
- name
- JSDoc keywords
- scope
- storage.type.class.jsdoc
- settings
-
- fontStyle
-
-
-
-
- scope
- support.type.object.console.js
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- Node constants as keywords (module, etc.)
- scope
- support.constant.node, support.type.object.module.js
- settings
-
- foreground
- #c6a0f6
-
-
-
- name
- implements as keyword
- scope
- storage.modifier.implements
- settings
-
- foreground
- #c6a0f6
-
-
-
- name
- Builtin types
- scope
- constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts
- settings
-
- foreground
- #c6a0f6
-
-
-
- scope
- variable.parameter.generic
- settings
-
- foreground
- #eed49f
-
-
-
- name
- Arrow functions
- scope
- keyword.declaration.function.arrow.js, storage.type.function.arrow.ts
- settings
-
- foreground
- #8bd5ca
-
-
-
- name
- Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)
- scope
- punctuation.decorator.ts
- settings
-
- foreground
- #8aadf4
- fontStyle
- italic
-
-
-
- name
- Extra JS/TS keywords
- scope
- 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
- settings
-
- foreground
- #c6a0f6
-
-
-
- name
- Julia macros
- scope
- support.function.macro.julia
- settings
-
- foreground
- #8bd5ca
- fontStyle
- italic
-
-
-
- name
- Julia language constants (true, false)
- scope
- constant.language.julia
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- Julia other constants (these seem to be arguments inside arrays)
- scope
- constant.other.symbol.julia
- settings
-
- foreground
- #ee99a0
-
-
-
- name
- LaTeX preamble
- scope
- text.tex keyword.control.preamble
- settings
-
- foreground
- #8bd5ca
-
-
-
- name
- LaTeX be functions
- scope
- text.tex support.function.be
- settings
-
- foreground
- #91d7e3
-
-
-
- name
- LaTeX math
- scope
- constant.other.general.math.tex
- settings
-
- foreground
- #f0c6c6
-
-
-
- name
- Liquid Builtin Objects & User Defined Variables
- scope
- variable.language.liquid
- settings
-
- foreground
- #f5bde6
-
-
-
- name
- Lua docstring keywords
- scope
- comment.line.double-dash.documentation.lua storage.type.annotation.lua
- settings
-
- foreground
- #c6a0f6
- fontStyle
-
-
-
-
- name
- Lua docstring variables
- scope
- comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua
- settings
-
- foreground
- #cad3f5
-
-
-
- scope
- 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
- settings
-
- foreground
- #ed8796
-
-
-
- scope
- 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
- settings
-
- foreground
- #f5a97f
-
-
-
- scope
- 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
- settings
-
- foreground
- #eed49f
-
-
-
- scope
- 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
- settings
-
- foreground
- #a6da95
-
-
-
- scope
- 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
- settings
-
- foreground
- #7dc4e4
-
-
-
- scope
- 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
- settings
-
- foreground
- #b7bdf8
-
-
-
- scope
- markup.bold
- settings
-
- foreground
- #ed8796
- fontStyle
- bold
-
-
-
- scope
- markup.italic
- settings
-
- foreground
- #ed8796
- fontStyle
- italic
-
-
-
- scope
- markup.strikethrough
- settings
-
- foreground
- #a5adcb
- fontStyle
- strikethrough
-
-
-
- name
- Markdown auto links
- scope
- punctuation.definition.link, markup.underline.link
- settings
-
- foreground
- #8aadf4
-
-
-
- name
- Markdown links
- scope
- 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
- settings
-
- foreground
- #b7bdf8
-
-
-
- name
- Markdown code spans
- scope
- 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
- settings
-
- foreground
- #a6da95
-
-
-
- name
- Markdown triple backtick language identifier
- scope
- fenced_code.block.language
- settings
-
- foreground
- #91d7e3
-
-
-
- name
- Markdown triple backticks
- scope
- markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc
- settings
-
- foreground
- #939ab7
-
-
-
- name
- Markdown quotes
- scope
- markup.quote, punctuation.definition.quote.begin
- settings
-
- foreground
- #f5bde6
-
-
-
- name
- Markdown separators
- scope
- meta.separator.markdown
- settings
-
- foreground
- #8bd5ca
-
-
-
- name
- Markdown list bullets
- scope
- punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet
- settings
-
- foreground
- #8bd5ca
-
-
-
- name
- Quarto headings
- scope
- markup.heading.quarto
- settings
-
- fontStyle
- bold
-
-
-
- name
- Nix attribute names
- scope
- entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix
- settings
-
- foreground
- #8aadf4
-
-
-
- name
- Nix parameter names
- scope
- variable.parameter.name.nix
- settings
-
- foreground
- #cad3f5
- fontStyle
-
-
-
-
- name
- Nix interpolated parameter names
- scope
- meta.embedded variable.parameter.name.nix
- settings
-
- foreground
- #b7bdf8
- fontStyle
-
-
-
-
- name
- Nix paths
- scope
- string.unquoted.path.nix
- settings
-
- foreground
- #f5bde6
- fontStyle
-
-
-
-
- name
- PHP Attributes
- scope
- support.attribute.builtin, meta.attribute.php
- settings
-
- foreground
- #eed49f
-
-
-
- name
- PHP Parameters (needed for the leading dollar sign)
- scope
- meta.function.parameters.php punctuation.definition.variable.php
- settings
-
- foreground
- #ee99a0
-
-
-
- name
- PHP Constants (null, __FILE__, etc.)
- scope
- constant.language.php
- settings
-
- foreground
- #c6a0f6
-
-
-
- name
- PHP functions
- scope
- text.html.php support.function
- settings
-
- foreground
- #91d7e3
-
-
-
- name
- PHPdoc keywords
- scope
- keyword.other.phpdoc.php
- settings
-
- fontStyle
-
-
-
-
- name
- Python argument functions reset to text, otherwise they inherit blue from function-call
- scope
- support.variable.magic.python, meta.function-call.arguments.python
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- Python double underscore functions
- scope
- support.function.magic.python
- settings
-
- foreground
- #91d7e3
- fontStyle
- italic
-
-
-
- name
- Python `self` keyword
- scope
- variable.parameter.function.language.special.self.python, variable.language.special.self.python
- settings
-
- foreground
- #ed8796
- fontStyle
- italic
-
-
-
- name
- python keyword flow/logical (for ... in)
- scope
- keyword.control.flow.python, keyword.operator.logical.python
- settings
-
- foreground
- #c6a0f6
-
-
-
- name
- python storage type
- scope
- storage.type.function.python
- settings
-
- foreground
- #c6a0f6
-
-
-
- name
- python function support
- scope
- support.token.decorator.python, meta.function.decorator.identifier.python
- settings
-
- foreground
- #91d7e3
-
-
-
- name
- python function calls
- scope
- meta.function-call.python
- settings
-
- foreground
- #8aadf4
-
-
-
- name
- python function decorators
- scope
- entity.name.function.decorator.python, punctuation.definition.decorator.python
- settings
-
- foreground
- #f5a97f
- fontStyle
- italic
-
-
-
- name
- python placeholder reset to normal string
- scope
- constant.character.format.placeholder.other.python
- settings
-
- foreground
- #f5bde6
-
-
-
- name
- Python exception & builtins such as exit()
- scope
- support.type.exception.python, support.function.builtin.python
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- entity.name.type
- scope
- support.type.python
- settings
-
- foreground
- #c6a0f6
-
-
-
- name
- python constants (True/False)
- scope
- constant.language.python
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- Arguments accessed later in the function body
- scope
- meta.indexed-name.python, meta.item-access.python
- settings
-
- foreground
- #ee99a0
- fontStyle
- italic
-
-
-
- name
- Python f-strings/binary/unicode storage types
- scope
- storage.type.string.python
- settings
-
- foreground
- #a6da95
- fontStyle
- italic
-
-
-
- name
- Python type hints
- scope
- meta.function.parameters.python
- settings
-
- fontStyle
-
-
-
-
- name
- Regex string begin/end in JS/TS
- scope
- string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end
- settings
-
- foreground
- #f5bde6
-
-
-
- name
- Regex anchors (^, $)
- scope
- keyword.control.anchor.regexp
- settings
-
- foreground
- #c6a0f6
-
-
-
- name
- Regex regular string match
- scope
- string.regexp.ts
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- Regex group parenthesis & backreference (\1, \2, \3, ...)
- scope
- punctuation.definition.group.regexp, keyword.other.back-reference.regexp
- settings
-
- foreground
- #a6da95
-
-
-
- name
- Regex character class []
- scope
- punctuation.definition.character-class.regexp
- settings
-
- foreground
- #eed49f
-
-
-
- name
- Regex character classes (\d, \w, \s)
- scope
- constant.other.character-class.regexp
- settings
-
- foreground
- #f5bde6
-
-
-
- name
- Regex range
- scope
- constant.other.character-class.range.regexp
- settings
-
- foreground
- #f4dbd6
-
-
-
- name
- Regex quantifier
- scope
- keyword.operator.quantifier.regexp
- settings
-
- foreground
- #8bd5ca
-
-
-
- name
- Regex constant/numeric
- scope
- constant.character.numeric.regexp
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds
- scope
- punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp
- settings
-
- foreground
- #8aadf4
-
-
-
- name
- Rust attribute
- scope
- meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust
- settings
-
- foreground
- #eed49f
- fontStyle
- italic
-
-
-
- name
- Rust attribute strings
- scope
- meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust
- settings
-
- fontStyle
-
-
-
-
- name
- Rust keyword
- scope
- 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
- settings
-
- foreground
- #c6a0f6
- fontStyle
-
-
-
-
- name
- Rust u/i32, u/i64, etc.
- scope
- entity.name.type.numeric.rust
- settings
-
- foreground
- #c6a0f6
- fontStyle
-
-
-
-
- name
- Rust generic
- scope
- meta.generic.rust
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- Rust impl
- scope
- entity.name.impl.rust
- settings
-
- foreground
- #eed49f
- fontStyle
- italic
-
-
-
- name
- Rust module
- scope
- entity.name.module.rust
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- Rust trait
- scope
- entity.name.trait.rust
- settings
-
- foreground
- #eed49f
- fontStyle
- italic
-
-
-
- name
- Rust struct
- scope
- storage.type.source.rust
- settings
-
- foreground
- #eed49f
-
-
-
- name
- Rust union
- scope
- entity.name.union.rust
- settings
-
- foreground
- #eed49f
-
-
-
- name
- Rust enum member
- scope
- meta.enum.rust storage.type.source.rust
- settings
-
- foreground
- #8bd5ca
-
-
-
- name
- Rust macro
- scope
- support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust
- settings
-
- foreground
- #8aadf4
- fontStyle
- italic
-
-
-
- name
- Rust lifetime
- scope
- storage.modifier.lifetime.rust, entity.name.type.lifetime
- settings
-
- foreground
- #8aadf4
- fontStyle
- italic
-
-
-
- name
- Rust string formatting
- scope
- string.quoted.double.rust constant.other.placeholder.rust
- settings
-
- foreground
- #f5bde6
-
-
-
- name
- Rust return type generic
- scope
- meta.function.return-type.rust meta.generic.rust storage.type.rust
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- Rust functions
- scope
- meta.function.call.rust
- settings
-
- foreground
- #8aadf4
-
-
-
- name
- Rust angle brackets
- scope
- punctuation.brackets.angle.rust
- settings
-
- foreground
- #91d7e3
-
-
-
- name
- Rust constants
- scope
- constant.other.caps.rust
- settings
-
- foreground
- #f5a97f
-
-
-
- name
- Rust function parameters
- scope
- meta.function.definition.rust variable.other.rust
- settings
-
- foreground
- #ee99a0
-
-
-
- name
- Rust closure variables
- scope
- meta.function.call.rust variable.other.rust
- settings
-
- foreground
- #cad3f5
-
-
-
- name
- Rust self
- scope
- variable.language.self.rust
- settings
-
- foreground
- #ed8796
-
-
-
- name
- Rust metavariable names
- scope
- variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust
- settings
-
- foreground
- #f5bde6
-
-
-
- name
- Shell shebang
- scope
- comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell
- settings
-
- foreground
- #f5bde6
- fontStyle
- italic
-
-
-
- name
- Shell shebang command
- scope
- comment.line.shebang constant.language
- settings
-
- foreground
- #8bd5ca
- fontStyle
- italic
-
-
-
- name
- Shell interpolated command
- scope
- 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
- settings
-
- foreground
- #ed8796
-
-
-
- name
- Shell interpolated command variable
- scope
- meta.string meta.interpolation.parameter.shell variable.other.readwrite
- settings
-
- foreground
- #f5a97f
- fontStyle
- italic
-
-
-
- scope
- source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell
- settings
-
- foreground
- #8bd5ca
-
-
-
- name
- Shell EOF
- scope
- entity.name.tag.heredoc.shell
- settings
-
- foreground
- #c6a0f6
-
-
-
- name
- Shell quoted variable
- scope
- string.quoted.double.shell variable.other.normal.shell
- settings
-
- foreground
- #cad3f5
-
-
-
- scope
- markup.heading.typst
- settings
-
- foreground
- #ed8796
-
-
-
- name
- JSON Keys
- scope
- source.json meta.mapping.key string
- settings
-
- foreground
- #8aadf4
-
-
-
- name
- JSON key surrounding quotes
- scope
- source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end
- settings
-
- foreground
- #939ab7
-
-
-
- scope
- markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man
- settings
-
- foreground
- #c6a0f6
-
-
-
- scope
- markup.heading.commands.man
- settings
-
- foreground
- #8aadf4
-
-
-
- scope
- markup.heading.env.man
- settings
-
- foreground
- #f5bde6
-
-
-
- name
- Man page options
- scope
- entity.name
- settings
-
- foreground
- #8bd5ca
-
-
-
- scope
- markup.heading.1.markdown
- settings
-
- foreground
- #ed8796
-
-
-
- scope
- markup.heading.2.markdown
- settings
-
- foreground
- #f5a97f
-
-
-
- scope
- markup.heading.markdown
- settings
-
- foreground
- #eed49f
-
-
-
-
-
\ 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
deleted file mode 100644
index fb5b1d6..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644
index 006383b..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/LICENSE-tmtheme
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644
index 20840dc..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-
-

-
-
-
- Catppuccin Mocha Flavor for Yazi
-
-
-## 👀 Preview
-
-
-
-## 🎨 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
deleted file mode 100644
index 39a3ef5..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/flavor.toml
+++ /dev/null
@@ -1,189 +0,0 @@
-# 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
deleted file mode 100644
index a684ec8..0000000
Binary files a/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/preview.png and /dev/null 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
deleted file mode 100644
index c7781ce..0000000
--- a/mac/.config/yazi/flavors.bak/catppuccin-mocha.yazi/tmtheme.xml
+++ /dev/null
@@ -1,2112 +0,0 @@
-
-
-
-
- name
- Catppuccin Mocha
- semanticClass
- theme.dark.catppuccin-mocha
- uuid
- 627ce890-fabb-4d39-9819-7be71f4bdca7
- author
- Catppuccin Org
- colorSpaceName
- sRGB
- settings
-
-
- settings
-
- background
- #1e1e2e
- foreground
- #cdd6f4
- caret
- #f5e0dc
- lineHighlight
- #313244
- misspelling
- #f38ba8
- accent
- #cba6f7
- selection
- #9399b240
- activeGuide
- #45475a
- findHighlight
- #3e5767
- gutterForeground
- #7f849c
-
-
-
- name
- Basic text & variable names (incl. leading punctuation)
- scope
- text, source, variable.other.readwrite, punctuation.definition.variable
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- Parentheses, Brackets, Braces
- scope
- punctuation
- settings
-
- foreground
- #9399b2
- fontStyle
-
-
-
-
- name
- Comments
- scope
- comment, punctuation.definition.comment
- settings
-
- foreground
- #9399b2
- fontStyle
- italic
-
-
-
- scope
- string, punctuation.definition.string
- settings
-
- foreground
- #a6e3a1
-
-
-
- scope
- constant.character.escape
- settings
-
- foreground
- #f5c2e7
-
-
-
- name
- Booleans, constants, numbers
- scope
- 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
- settings
-
- foreground
- #fab387
-
-
-
- scope
- keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword
- settings
-
- foreground
- #cba6f7
- fontStyle
-
-
-
-
- scope
- entity.name.tag.documentation
- settings
-
- foreground
- #cba6f7
-
-
-
- name
- Punctuation
- scope
- keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value
- settings
-
- foreground
- #94e2d5
-
-
-
- scope
- entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function
- settings
-
- foreground
- #89b4fa
- fontStyle
- italic
-
-
-
- name
- Classes
- scope
- entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct
- settings
-
- foreground
- #f9e2af
- fontStyle
- italic
-
-
-
- name
- Enum
- scope
- entity.name.enum
- settings
-
- foreground
- #f9e2af
- fontStyle
- italic
-
-
-
- name
- Enum member
- scope
- meta.enum variable.other.readwrite, variable.other.enummember
- settings
-
- foreground
- #94e2d5
-
-
-
- name
- Object properties
- scope
- meta.property.object
- settings
-
- foreground
- #94e2d5
-
-
-
- name
- Types
- scope
- meta.type, meta.type-alias, support.type, entity.name.type
- settings
-
- foreground
- #f9e2af
- fontStyle
- italic
-
-
-
- name
- Decorators
- scope
- meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator
- settings
-
- foreground
- #fab387
-
-
-
- scope
- variable.parameter, meta.function.parameters
- settings
-
- foreground
- #eba0ac
- fontStyle
- italic
-
-
-
- name
- Built-ins
- scope
- constant.language, support.function.builtin
- settings
-
- foreground
- #f38ba8
-
-
-
- scope
- entity.other.attribute-name.documentation
- settings
-
- foreground
- #f38ba8
-
-
-
- name
- Preprocessor directives
- scope
- keyword.control.directive, punctuation.definition.directive
- settings
-
- foreground
- #f9e2af
-
-
-
- name
- Type parameters
- scope
- punctuation.definition.typeparameters
- settings
-
- foreground
- #89dceb
-
-
-
- name
- Namespaces
- scope
- entity.name.namespace
- settings
-
- foreground
- #f9e2af
-
-
-
- name
- Property names (left hand assignments in json/yaml/css)
- scope
- support.type.property-name.css
- settings
-
- foreground
- #89b4fa
- fontStyle
-
-
-
-
- name
- This/Self keyword
- scope
- variable.language.this, variable.language.this punctuation.definition.variable
- settings
-
- foreground
- #f38ba8
-
-
-
- name
- Object properties
- scope
- variable.object.property
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- String template interpolation
- scope
- string.template variable, string variable
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- `new` as bold
- scope
- keyword.operator.new
- settings
-
- fontStyle
- bold
-
-
-
- name
- C++ extern keyword
- scope
- storage.modifier.specifier.extern.cpp
- settings
-
- foreground
- #cba6f7
-
-
-
- name
- C++ scope resolution
- scope
- 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
- settings
-
- foreground
- #f9e2af
-
-
-
- name
- C++ doc keywords
- scope
- storage.type.class.doxygen
- settings
-
- fontStyle
-
-
-
-
- name
- C++ operators
- scope
- storage.modifier.reference.cpp
- settings
-
- foreground
- #94e2d5
-
-
-
- name
- C# Interpolated Strings
- scope
- meta.interpolation.cs
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- C# xml-style docs
- scope
- comment.block.documentation.cs
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- Classes, reflecting the className color in JSX
- scope
- source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css
- settings
-
- foreground
- #f9e2af
-
-
-
- name
- Operators
- scope
- punctuation.separator.operator.css
- settings
-
- foreground
- #94e2d5
-
-
-
- name
- Pseudo classes
- scope
- source.css entity.other.attribute-name.pseudo-class
- settings
-
- foreground
- #94e2d5
-
-
-
- scope
- source.css constant.other.unicode-range
- settings
-
- foreground
- #fab387
-
-
-
- scope
- source.css variable.parameter.url
- settings
-
- foreground
- #a6e3a1
- fontStyle
-
-
-
-
- name
- CSS vendored property names
- scope
- support.type.vendored.property-name
- settings
-
- foreground
- #89dceb
-
-
-
- name
- Less/SCSS right-hand variables (@/$-prefixed)
- scope
- 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
- settings
-
- foreground
- #eba0ac
-
-
-
- name
- CSS variables (--prefixed)
- scope
- source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less
- settings
-
- foreground
- #89b4fa
-
-
-
- name
- CSS Percentage values, styled the same as numbers
- scope
- keyword.other.unit.percentage.css
- settings
-
- foreground
- #fab387
-
-
-
- name
- CSS Attribute selectors, styled the same as strings
- scope
- source.css meta.attribute-selector
- settings
-
- foreground
- #a6e3a1
-
-
-
- name
- JSON/YAML keys, other left-hand assignments
- scope
- 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
- settings
-
- foreground
- #89b4fa
- fontStyle
-
-
-
-
- name
- JSON/YAML constants
- scope
- constant.language.json, constant.language.yaml
- settings
-
- foreground
- #fab387
-
-
-
- name
- YAML anchors
- scope
- entity.name.type.anchor.yaml, variable.other.alias.yaml
- settings
-
- foreground
- #f9e2af
- fontStyle
-
-
-
-
- name
- TOML tables / ini groups
- scope
- support.type.property-name.table, entity.name.section.group-title.ini
- settings
-
- foreground
- #f9e2af
-
-
-
- name
- TOML dates
- scope
- constant.other.time.datetime.offset.toml
- settings
-
- foreground
- #f5c2e7
-
-
-
- name
- YAML anchor puctuation
- scope
- punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml
- settings
-
- foreground
- #f5c2e7
-
-
-
- name
- YAML triple dashes
- scope
- entity.other.document.begin.yaml
- settings
-
- foreground
- #f5c2e7
-
-
-
- name
- Markup Diff
- scope
- markup.changed.diff
- settings
-
- foreground
- #fab387
-
-
-
- name
- Diff
- scope
- meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff
- settings
-
- foreground
- #89b4fa
-
-
-
- name
- Diff Inserted
- scope
- markup.inserted.diff
- settings
-
- foreground
- #a6e3a1
-
-
-
- name
- Diff Deleted
- scope
- markup.deleted.diff
- settings
-
- foreground
- #f38ba8
-
-
-
- name
- dotenv left-hand side assignments
- scope
- variable.other.env
- settings
-
- foreground
- #89b4fa
-
-
-
- name
- dotenv reference to existing env variable
- scope
- string.quoted variable.other.env
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- GDScript functions
- scope
- support.function.builtin.gdscript
- settings
-
- foreground
- #89b4fa
-
-
-
- name
- GDScript constants
- scope
- constant.language.gdscript
- settings
-
- foreground
- #fab387
-
-
-
- name
- Comment keywords
- scope
- comment meta.annotation.go
- settings
-
- foreground
- #eba0ac
-
-
-
- name
- go:embed, go:build, etc.
- scope
- comment meta.annotation.parameters.go
- settings
-
- foreground
- #fab387
-
-
-
- name
- Go constants (nil, true, false)
- scope
- constant.language.go
- settings
-
- foreground
- #fab387
-
-
-
- name
- GraphQL variables
- scope
- variable.graphql
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- GraphQL aliases
- scope
- string.unquoted.alias.graphql
- settings
-
- foreground
- #f2cdcd
-
-
-
- name
- GraphQL enum members
- scope
- constant.character.enum.graphql
- settings
-
- foreground
- #94e2d5
-
-
-
- name
- GraphQL field in types
- scope
- meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql
- settings
-
- foreground
- #f2cdcd
-
-
-
- name
- HTML/XML DOCTYPE as keyword
- scope
- keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag
- settings
-
- foreground
- #cba6f7
-
-
-
- name
- HTML/XML-like <tags/>
- scope
- entity.name.tag
- settings
-
- foreground
- #89b4fa
- fontStyle
-
-
-
-
- name
- Special characters like &
- scope
- 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
- settings
-
- foreground
- #f38ba8
-
-
-
- name
- HTML/XML tag attribute values
- scope
- entity.other.attribute-name
- settings
-
- foreground
- #f9e2af
-
-
-
- name
- Components
- scope
- support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue
- settings
-
- foreground
- #f5c2e7
- fontStyle
-
-
-
-
- name
- Annotations
- scope
- punctuation.definition.annotation, storage.type.annotation
- settings
-
- foreground
- #fab387
-
-
-
- name
- Java enums
- scope
- constant.other.enum.java
- settings
-
- foreground
- #94e2d5
-
-
-
- name
- Java imports
- scope
- storage.modifier.import.java
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- Javadoc
- scope
- comment.block.javadoc.java keyword.other.documentation.javadoc.java
- settings
-
- fontStyle
-
-
-
-
- name
- Exported Variable
- scope
- meta.export variable.other.readwrite.js
- settings
-
- foreground
- #eba0ac
-
-
-
- name
- JS/TS constants & properties
- scope
- variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- JSDoc; these are mainly params, so styled as such
- scope
- variable.other.jsdoc, comment.block.documentation variable.other
- settings
-
- foreground
- #eba0ac
- fontStyle
-
-
-
-
- name
- JSDoc keywords
- scope
- storage.type.class.jsdoc
- settings
-
- fontStyle
-
-
-
-
- scope
- support.type.object.console.js
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- Node constants as keywords (module, etc.)
- scope
- support.constant.node, support.type.object.module.js
- settings
-
- foreground
- #cba6f7
-
-
-
- name
- implements as keyword
- scope
- storage.modifier.implements
- settings
-
- foreground
- #cba6f7
-
-
-
- name
- Builtin types
- scope
- constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts
- settings
-
- foreground
- #cba6f7
-
-
-
- scope
- variable.parameter.generic
- settings
-
- foreground
- #f9e2af
-
-
-
- name
- Arrow functions
- scope
- keyword.declaration.function.arrow.js, storage.type.function.arrow.ts
- settings
-
- foreground
- #94e2d5
-
-
-
- name
- Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)
- scope
- punctuation.decorator.ts
- settings
-
- foreground
- #89b4fa
- fontStyle
- italic
-
-
-
- name
- Extra JS/TS keywords
- scope
- 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
- settings
-
- foreground
- #cba6f7
-
-
-
- name
- Julia macros
- scope
- support.function.macro.julia
- settings
-
- foreground
- #94e2d5
- fontStyle
- italic
-
-
-
- name
- Julia language constants (true, false)
- scope
- constant.language.julia
- settings
-
- foreground
- #fab387
-
-
-
- name
- Julia other constants (these seem to be arguments inside arrays)
- scope
- constant.other.symbol.julia
- settings
-
- foreground
- #eba0ac
-
-
-
- name
- LaTeX preamble
- scope
- text.tex keyword.control.preamble
- settings
-
- foreground
- #94e2d5
-
-
-
- name
- LaTeX be functions
- scope
- text.tex support.function.be
- settings
-
- foreground
- #89dceb
-
-
-
- name
- LaTeX math
- scope
- constant.other.general.math.tex
- settings
-
- foreground
- #f2cdcd
-
-
-
- name
- Liquid Builtin Objects & User Defined Variables
- scope
- variable.language.liquid
- settings
-
- foreground
- #f5c2e7
-
-
-
- name
- Lua docstring keywords
- scope
- comment.line.double-dash.documentation.lua storage.type.annotation.lua
- settings
-
- foreground
- #cba6f7
- fontStyle
-
-
-
-
- name
- Lua docstring variables
- scope
- comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua
- settings
-
- foreground
- #cdd6f4
-
-
-
- scope
- 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
- settings
-
- foreground
- #f38ba8
-
-
-
- scope
- 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
- settings
-
- foreground
- #fab387
-
-
-
- scope
- 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
- settings
-
- foreground
- #f9e2af
-
-
-
- scope
- 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
- settings
-
- foreground
- #a6e3a1
-
-
-
- scope
- 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
- settings
-
- foreground
- #74c7ec
-
-
-
- scope
- 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
- settings
-
- foreground
- #b4befe
-
-
-
- scope
- markup.bold
- settings
-
- foreground
- #f38ba8
- fontStyle
- bold
-
-
-
- scope
- markup.italic
- settings
-
- foreground
- #f38ba8
- fontStyle
- italic
-
-
-
- scope
- markup.strikethrough
- settings
-
- foreground
- #a6adc8
- fontStyle
- strikethrough
-
-
-
- name
- Markdown auto links
- scope
- punctuation.definition.link, markup.underline.link
- settings
-
- foreground
- #89b4fa
-
-
-
- name
- Markdown links
- scope
- 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
- settings
-
- foreground
- #b4befe
-
-
-
- name
- Markdown code spans
- scope
- 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
- settings
-
- foreground
- #a6e3a1
-
-
-
- name
- Markdown triple backtick language identifier
- scope
- fenced_code.block.language
- settings
-
- foreground
- #89dceb
-
-
-
- name
- Markdown triple backticks
- scope
- markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc
- settings
-
- foreground
- #9399b2
-
-
-
- name
- Markdown quotes
- scope
- markup.quote, punctuation.definition.quote.begin
- settings
-
- foreground
- #f5c2e7
-
-
-
- name
- Markdown separators
- scope
- meta.separator.markdown
- settings
-
- foreground
- #94e2d5
-
-
-
- name
- Markdown list bullets
- scope
- punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet
- settings
-
- foreground
- #94e2d5
-
-
-
- name
- Quarto headings
- scope
- markup.heading.quarto
- settings
-
- fontStyle
- bold
-
-
-
- name
- Nix attribute names
- scope
- entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix
- settings
-
- foreground
- #89b4fa
-
-
-
- name
- Nix parameter names
- scope
- variable.parameter.name.nix
- settings
-
- foreground
- #cdd6f4
- fontStyle
-
-
-
-
- name
- Nix interpolated parameter names
- scope
- meta.embedded variable.parameter.name.nix
- settings
-
- foreground
- #b4befe
- fontStyle
-
-
-
-
- name
- Nix paths
- scope
- string.unquoted.path.nix
- settings
-
- foreground
- #f5c2e7
- fontStyle
-
-
-
-
- name
- PHP Attributes
- scope
- support.attribute.builtin, meta.attribute.php
- settings
-
- foreground
- #f9e2af
-
-
-
- name
- PHP Parameters (needed for the leading dollar sign)
- scope
- meta.function.parameters.php punctuation.definition.variable.php
- settings
-
- foreground
- #eba0ac
-
-
-
- name
- PHP Constants (null, __FILE__, etc.)
- scope
- constant.language.php
- settings
-
- foreground
- #cba6f7
-
-
-
- name
- PHP functions
- scope
- text.html.php support.function
- settings
-
- foreground
- #89dceb
-
-
-
- name
- PHPdoc keywords
- scope
- keyword.other.phpdoc.php
- settings
-
- fontStyle
-
-
-
-
- name
- Python argument functions reset to text, otherwise they inherit blue from function-call
- scope
- support.variable.magic.python, meta.function-call.arguments.python
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- Python double underscore functions
- scope
- support.function.magic.python
- settings
-
- foreground
- #89dceb
- fontStyle
- italic
-
-
-
- name
- Python `self` keyword
- scope
- variable.parameter.function.language.special.self.python, variable.language.special.self.python
- settings
-
- foreground
- #f38ba8
- fontStyle
- italic
-
-
-
- name
- python keyword flow/logical (for ... in)
- scope
- keyword.control.flow.python, keyword.operator.logical.python
- settings
-
- foreground
- #cba6f7
-
-
-
- name
- python storage type
- scope
- storage.type.function.python
- settings
-
- foreground
- #cba6f7
-
-
-
- name
- python function support
- scope
- support.token.decorator.python, meta.function.decorator.identifier.python
- settings
-
- foreground
- #89dceb
-
-
-
- name
- python function calls
- scope
- meta.function-call.python
- settings
-
- foreground
- #89b4fa
-
-
-
- name
- python function decorators
- scope
- entity.name.function.decorator.python, punctuation.definition.decorator.python
- settings
-
- foreground
- #fab387
- fontStyle
- italic
-
-
-
- name
- python placeholder reset to normal string
- scope
- constant.character.format.placeholder.other.python
- settings
-
- foreground
- #f5c2e7
-
-
-
- name
- Python exception & builtins such as exit()
- scope
- support.type.exception.python, support.function.builtin.python
- settings
-
- foreground
- #fab387
-
-
-
- name
- entity.name.type
- scope
- support.type.python
- settings
-
- foreground
- #cba6f7
-
-
-
- name
- python constants (True/False)
- scope
- constant.language.python
- settings
-
- foreground
- #fab387
-
-
-
- name
- Arguments accessed later in the function body
- scope
- meta.indexed-name.python, meta.item-access.python
- settings
-
- foreground
- #eba0ac
- fontStyle
- italic
-
-
-
- name
- Python f-strings/binary/unicode storage types
- scope
- storage.type.string.python
- settings
-
- foreground
- #a6e3a1
- fontStyle
- italic
-
-
-
- name
- Python type hints
- scope
- meta.function.parameters.python
- settings
-
- fontStyle
-
-
-
-
- name
- Regex string begin/end in JS/TS
- scope
- string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end
- settings
-
- foreground
- #f5c2e7
-
-
-
- name
- Regex anchors (^, $)
- scope
- keyword.control.anchor.regexp
- settings
-
- foreground
- #cba6f7
-
-
-
- name
- Regex regular string match
- scope
- string.regexp.ts
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- Regex group parenthesis & backreference (\1, \2, \3, ...)
- scope
- punctuation.definition.group.regexp, keyword.other.back-reference.regexp
- settings
-
- foreground
- #a6e3a1
-
-
-
- name
- Regex character class []
- scope
- punctuation.definition.character-class.regexp
- settings
-
- foreground
- #f9e2af
-
-
-
- name
- Regex character classes (\d, \w, \s)
- scope
- constant.other.character-class.regexp
- settings
-
- foreground
- #f5c2e7
-
-
-
- name
- Regex range
- scope
- constant.other.character-class.range.regexp
- settings
-
- foreground
- #f5e0dc
-
-
-
- name
- Regex quantifier
- scope
- keyword.operator.quantifier.regexp
- settings
-
- foreground
- #94e2d5
-
-
-
- name
- Regex constant/numeric
- scope
- constant.character.numeric.regexp
- settings
-
- foreground
- #fab387
-
-
-
- name
- Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds
- scope
- punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp
- settings
-
- foreground
- #89b4fa
-
-
-
- name
- Rust attribute
- scope
- meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust
- settings
-
- foreground
- #f9e2af
- fontStyle
- italic
-
-
-
- name
- Rust attribute strings
- scope
- meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust
- settings
-
- fontStyle
-
-
-
-
- name
- Rust keyword
- scope
- 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
- settings
-
- foreground
- #cba6f7
- fontStyle
-
-
-
-
- name
- Rust u/i32, u/i64, etc.
- scope
- entity.name.type.numeric.rust
- settings
-
- foreground
- #cba6f7
- fontStyle
-
-
-
-
- name
- Rust generic
- scope
- meta.generic.rust
- settings
-
- foreground
- #fab387
-
-
-
- name
- Rust impl
- scope
- entity.name.impl.rust
- settings
-
- foreground
- #f9e2af
- fontStyle
- italic
-
-
-
- name
- Rust module
- scope
- entity.name.module.rust
- settings
-
- foreground
- #fab387
-
-
-
- name
- Rust trait
- scope
- entity.name.trait.rust
- settings
-
- foreground
- #f9e2af
- fontStyle
- italic
-
-
-
- name
- Rust struct
- scope
- storage.type.source.rust
- settings
-
- foreground
- #f9e2af
-
-
-
- name
- Rust union
- scope
- entity.name.union.rust
- settings
-
- foreground
- #f9e2af
-
-
-
- name
- Rust enum member
- scope
- meta.enum.rust storage.type.source.rust
- settings
-
- foreground
- #94e2d5
-
-
-
- name
- Rust macro
- scope
- support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust
- settings
-
- foreground
- #89b4fa
- fontStyle
- italic
-
-
-
- name
- Rust lifetime
- scope
- storage.modifier.lifetime.rust, entity.name.type.lifetime
- settings
-
- foreground
- #89b4fa
- fontStyle
- italic
-
-
-
- name
- Rust string formatting
- scope
- string.quoted.double.rust constant.other.placeholder.rust
- settings
-
- foreground
- #f5c2e7
-
-
-
- name
- Rust return type generic
- scope
- meta.function.return-type.rust meta.generic.rust storage.type.rust
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- Rust functions
- scope
- meta.function.call.rust
- settings
-
- foreground
- #89b4fa
-
-
-
- name
- Rust angle brackets
- scope
- punctuation.brackets.angle.rust
- settings
-
- foreground
- #89dceb
-
-
-
- name
- Rust constants
- scope
- constant.other.caps.rust
- settings
-
- foreground
- #fab387
-
-
-
- name
- Rust function parameters
- scope
- meta.function.definition.rust variable.other.rust
- settings
-
- foreground
- #eba0ac
-
-
-
- name
- Rust closure variables
- scope
- meta.function.call.rust variable.other.rust
- settings
-
- foreground
- #cdd6f4
-
-
-
- name
- Rust self
- scope
- variable.language.self.rust
- settings
-
- foreground
- #f38ba8
-
-
-
- name
- Rust metavariable names
- scope
- variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust
- settings
-
- foreground
- #f5c2e7
-
-
-
- name
- Shell shebang
- scope
- comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell
- settings
-
- foreground
- #f5c2e7
- fontStyle
- italic
-
-
-
- name
- Shell shebang command
- scope
- comment.line.shebang constant.language
- settings
-
- foreground
- #94e2d5
- fontStyle
- italic
-
-
-
- name
- Shell interpolated command
- scope
- 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
- settings
-
- foreground
- #f38ba8
-
-
-
- name
- Shell interpolated command variable
- scope
- meta.string meta.interpolation.parameter.shell variable.other.readwrite
- settings
-
- foreground
- #fab387
- fontStyle
- italic
-
-
-
- scope
- source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell
- settings
-
- foreground
- #94e2d5
-
-
-
- name
- Shell EOF
- scope
- entity.name.tag.heredoc.shell
- settings
-
- foreground
- #cba6f7
-
-
-
- name
- Shell quoted variable
- scope
- string.quoted.double.shell variable.other.normal.shell
- settings
-
- foreground
- #cdd6f4
-
-
-
- scope
- markup.heading.typst
- settings
-
- foreground
- #f38ba8
-
-
-
- name
- JSON Keys
- scope
- source.json meta.mapping.key string
- settings
-
- foreground
- #89b4fa
-
-
-
- name
- JSON key surrounding quotes
- scope
- source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end
- settings
-
- foreground
- #9399b2
-
-
-
- scope
- markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man
- settings
-
- foreground
- #cba6f7
-
-
-
- scope
- markup.heading.commands.man
- settings
-
- foreground
- #89b4fa
-
-
-
- scope
- markup.heading.env.man
- settings
-
- foreground
- #f5c2e7
-
-
-
- name
- Man page options
- scope
- entity.name
- settings
-
- foreground
- #94e2d5
-
-
-
- scope
- markup.heading.1.markdown
- settings
-
- foreground
- #f38ba8
-
-
-
- scope
- markup.heading.2.markdown
- settings
-
- foreground
- #fab387
-
-
-
- scope
- markup.heading.markdown
- settings
-
- foreground
- #f9e2af
-
-
-
-
-
\ 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
deleted file mode 100644
index fb5b1d6..0000000
--- a/mac/.config/yazi/flavors.bak/dracula.yazi/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644
index f9105d5..0000000
--- a/mac/.config/yazi/flavors.bak/dracula.yazi/LICENSE-tmtheme
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644
index 8429ef6..0000000
--- a/mac/.config/yazi/flavors.bak/dracula.yazi/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-
-

-
-
-
- Dracula Flavor for Yazi
-
-
-## 👀 Preview
-
-
-
-## 🎨 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
deleted file mode 100644
index 3434eb9..0000000
--- a/mac/.config/yazi/flavors.bak/dracula.yazi/flavor.toml
+++ /dev/null
@@ -1,189 +0,0 @@
-# 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
deleted file mode 100644
index 7d8adf3..0000000
Binary files a/mac/.config/yazi/flavors.bak/dracula.yazi/preview.png and /dev/null differ
diff --git a/mac/.config/yazi/flavors.bak/dracula.yazi/tmtheme.xml b/mac/.config/yazi/flavors.bak/dracula.yazi/tmtheme.xml
deleted file mode 100644
index c3434ec..0000000
--- a/mac/.config/yazi/flavors.bak/dracula.yazi/tmtheme.xml
+++ /dev/null
@@ -1,940 +0,0 @@
-
-
-
-
-
-
-
- name
- Dracula
- settings
-
-
- settings
-
- background
- #282a36
- caret
- #f8f8f0
- block_caret
- #999a9e
- foreground
- #f8f8f2
- invisibles
- #3B3A32
- lineHighlight
- #44475a
- selection
- #44475a
- findHighlight
- #effb7b
- findHighlightForeground
- #000000
- selectionBorder
- #222218
- activeGuide
- #9D550FB0
- bracketsForeground
- #F8F8F2A5
- bracketsOptions
- underline
- bracketContentsForeground
- #F8F8F2A5
- bracketContentsOptions
- underline
- tagsOptions
- stippled_underline
-
-
-
- name
- Comment
- scope
- comment
- settings
-
- foreground
- #6272a4
- fontStyle
-
-
-
-
- name
- String
- scope
- string
- settings
-
- foreground
- #f1fa8c
-
-
-
- name
- Number
- scope
- constant.numeric
- settings
-
- foreground
- #bd93f9
-
-
-
- name
- Built-in constant
- scope
- constant.language
- settings
-
- foreground
- #bd93f9
-
-
-
- name
- User-defined constant
- scope
- constant.character, constant.other
- settings
-
- foreground
- #bd93f9
-
-
-
- name
- Variable
- scope
- variable
- settings
-
- fontStyle
-
-
-
-
- name
- Ruby's @variable
- scope
- variable.other.readwrite.instance
- settings
-
- fontStyle
-
- foreground
- #ffb86c
-
-
-
- name
- String interpolation
- scope
- constant.character.escaped, constant.character.escape, string source, string source.ruby
- settings
-
- fontStyle
-
- foreground
- #ff79c6
-
-
-
- name
- Ruby Regexp
- scope
- source.ruby string.regexp.classic.ruby,source.ruby string.regexp.mod-r.ruby
- settings
-
- fontStyle
-
- foreground
- #ff5555
-
-
-
- name
- Keyword
- scope
- keyword
- settings
-
- foreground
- #ff79c6
-
-
-
- name
- Storage
- scope
- storage
- settings
-
- fontStyle
-
- foreground
- #ff79c6
-
-
-
- name
- Storage type
- scope
- storage.type
- settings
-
- fontStyle
- italic
- foreground
- #8be9fd
-
-
-
- name
- Storage Type Namespace
- scope
- storage.type.namespace
- settings
-
- fontStyle
- italic
- foreground
- #8be9fd
-
-
-
- name
- Storage Type Class
- scope
- storage.type.class
- settings
-
- fontStyle
- italic
- foreground
- #ff79c6
-
-
-
- name
- Class name
- scope
- entity.name.class
- settings
-
- fontStyle
- underline
- foreground
- #8be9fd
-
-
-
- name
- Meta Path
- scope
- meta.path
- settings
-
- fontStyle
- underline
- foreground
- #66d9ef
-
-
-
- name
- Inherited class
- scope
- entity.other.inherited-class
- settings
-
- fontStyle
- italic underline
- foreground
- #8be9fd
-
-
-
- name
- Function name
- scope
- entity.name.function
- settings
-
- fontStyle
-
- foreground
- #50fa7b
-
-
-
- name
- Function argument
- scope
- variable.parameter
- settings
-
- fontStyle
- italic
- foreground
- #ffb86c
-
-
-
- name
- Tag name
- scope
- entity.name.tag
- settings
-
- fontStyle
-
- foreground
- #ff79c6
-
-
-
- name
- Tag attribute
- scope
- entity.other.attribute-name
- settings
-
- fontStyle
-
- foreground
- #50fa7b
-
-
-
- name
- Library function
- scope
- support.function
- settings
-
- fontStyle
-
- foreground
- #8be9fd
-
-
-
- name
- Library constant
- scope
- support.constant
- settings
-
- fontStyle
-
- foreground
- #6be5fd
-
-
-
- name
- Library class/type
- scope
- support.type, support.class
- settings
-
- fontStyle
- italic
- foreground
- #66d9ef
-
-
-
- name
- Library variable
- scope
- support.other.variable
- settings
-
- fontStyle
-
-
-
-
- name
- Support Other Namespace
- scope
- support.other.namespace
- settings
-
- fontStyle
- italic
- foreground
- #66d9ef
-
-
-
- name
- Invalid
- scope
- invalid
- settings
-
- background
- #ff79c6
- fontStyle
-
- foreground
- #F8F8F0
-
-
-
- name
- Invalid deprecated
- scope
- invalid.deprecated
- settings
-
- background
- #bd93f9
- foreground
- #F8F8F0
-
-
-
- name
- JSON String
- scope
- meta.structure.dictionary.json string.quoted.double.json
- settings
-
- foreground
- #CFCFC2
-
-
-
- name
- diff.header
- scope
- meta.diff, meta.diff.header
- settings
-
- foreground
- #6272a4
-
-
-
- name
- diff.deleted
- scope
- markup.deleted
- settings
-
- foreground
- #ff79c6
-
-
-
- name
- diff.inserted
- scope
- markup.inserted
- settings
-
- foreground
- #50fa7b
-
-
-
- name
- diff.changed
- scope
- markup.changed
- settings
-
- foreground
- #E6DB74
-
-
-
- scope
- constant.numeric.line-number.find-in-files - match
- settings
-
- foreground
- #bd93f9
-
-
-
- scope
- entity.name.filename
- settings
-
- foreground
- #E6DB74
-
-
-
- scope
- message.error
- settings
-
- foreground
- #F83333
-
-
-
- name
- JSON Punctuation
- scope
- punctuation.definition.string.begin.json - meta.structure.dictionary.value.json, punctuation.definition.string.end.json - meta.structure.dictionary.value.json
- settings
-
- foreground
- #EEEEEE
-
-
-
- name
- JSON Structure
- scope
- meta.structure.dictionary.json string.quoted.double.json
- settings
-
- foreground
- #8be9fd
-
-
-
- name
- JSON String
- scope
- meta.structure.dictionary.value.json string.quoted.double.json
- settings
-
- foreground
- #f1fa8c
-
-
-
- name
- JSON: 6 deep
- scope
- meta meta meta meta meta meta meta.structure.dictionary.value string
- settings
-
- foreground
- #50fa7b
-
-
-
- name
- JSON: 5 deep
- scope
- meta meta meta meta meta meta.structure.dictionary.value string
- settings
-
- foreground
- #ffb86c
-
-
-
- name
- JSON: 4 deep
- scope
- meta meta meta meta meta.structure.dictionary.value string
- settings
-
- foreground
- #ff79c6
-
-
-
- name
- JSON: 3 deep
- scope
- meta meta meta meta.structure.dictionary.value string
- settings
-
- foreground
- #bd93f9
-
-
-
- name
- JSON: 2 deep
- scope
- meta meta meta.structure.dictionary.value string
- settings
-
- foreground
- #50fa7b
-
-
-
- name
- JSON: 1 deep
- scope
- meta meta.structure.dictionary.value string
- settings
-
- foreground
- #ffb86c
-
-
-
-
-
- name
- Markup: strike
- scope
- markup.strike
- settings
-
- fontStyle
- italic
- foreground
- #FFB86C
-
-
-
- name
- Markup: bold
- scope
- markup.bold
- settings
-
- fontStyle
- bold
- foreground
- #FFB86C
-
-
-
- name
- Markup: italic
- scope
- markup.italic
- settings
-
- fontStyle
- italic
- foreground
- #FFB86C
-
-
-
- name
- Markdown: heading
- scope
- markup.heading
- settings
-
- foreground
- #8BE9FD
-
-
-
- name
- Markdown: List Items Punctuation
- scope
- punctuation.definition.list_item.markdown
- settings
-
- foreground
- #FF79C6
-
-
-
- name
- Markdown: Blockquote
- scope
- markup.quote
- settings
-
- fontStyle
- italic
- foreground
- #6272A4
-
-
-
- name
- Markdown: Blockquote Punctuation
- scope
- punctuation.definition.blockquote.markdown
- settings
-
- fontStyle
- italic
- background
- #6272A4
- foreground
- #6272A4
-
-
-
- name
- Markdown: Separator
- scope
- meta.separator
- settings
-
- foreground
- #6272A4
-
-
-
- name
- Markup: raw inline
- scope
- text.html.markdown markup.raw.inline
- settings
-
- foreground
- #50FA7B
-
-
-
- name
- Markup: underline
- scope
- markup.underline
- settings
-
- fontStyle
- underline
- foreground
- #BD93F9
-
-
-
- name
- Markup: Raw block
- scope
- markup.raw.block
- settings
-
- foreground
- #CFCFC2
-
-
-
- name
- Markdown: Raw Block fenced source
- scope
- markup.raw.block.fenced.markdown source
- settings
-
- foreground
- #F8F8F2
-
-
-
- name
- Markdown: Fenced Bode Block
- scope
- punctuation.definition.fenced.markdown, variable.language.fenced.markdown
- settings
-
- fontStyle
- italic
- foreground
- #6272A4
-
-
-
- name
- Markdown: Fenced Language
- scope
- variable.language.fenced.markdown
- settings
-
- fontStyle
- italic
- foreground
- #6272A4
-
-
-
- name
- Punctuation Accessor
- scope
- punctuation.accessor
- settings
-
- foreground
- #FF79C6
-
-
-
- name
- Meta Function Return Type
- scope
- meta.function.return-type
- settings
-
- foreground
- #FF79C6
-
-
-
- name
- Punctuation Section Block Begin
- scope
- punctuation.section.block.begin
- settings
-
- foreground
- #ffffff
-
-
-
- name
- Punctuation Section Block End
- scope
- punctuation.section.block.end
- settings
-
- foreground
- #ffffff
-
-
-
- name
- Punctuation Section Embedded Begin
- scope
- punctuation.section.embedded.begin
- settings
-
- foreground
- #ff79c6
-
-
-
- name
- Punctuation Section Embedded End
- scope
- punctuation.section.embedded.end
- settings
-
- foreground
- #ff79c6
-
-
-
- name
- Punctuation Separator Namespace
- scope
- punctuation.separator.namespace
- settings
-
- foreground
- #ff79c6
-
-
-
- name
- Variable Function
- scope
- variable.function
- settings
-
- foreground
- #50fa7b
-
-
-
- name
- Variable Other
- scope
- variable.other
- settings
-
- foreground
- #ffffff
-
-
-
- name
- Variable Language
- scope
- variable.language
- settings
-
- foreground
- #bd93f9
-
-
-
- name
- Entity Name Module Ruby
- scope
- entity.name.module.ruby
- settings
-
- foreground
- #8be9fd
-
-
-
- name
- Entity Name Constant Ruby
- scope
- entity.name.constant.ruby
- settings
-
- foreground
- #bd93f9
-
-
-
- name
- Support Function Builtin Ruby
- scope
- support.function.builtin.ruby
- settings
-
- foreground
- #ffffff
-
-
-
- name
- Storage Type Namespace CS
- scope
- storage.type.namespace.cs
- settings
-
- foreground
- #ff79c6
-
-
-
- name
- Entity Name Namespace CS
- scope
- entity.name.namespace.cs
- settings
-
- foreground
- #8be9fd
-
-
-
- uuid
- 83091B89-765E-4F0D-9275-0EC6CB084126
- colorSpaceName
- sRGB
- semanticClass
- theme.dracula
- author
- Zeno Rocha
-
-
diff --git a/mac/.config/yazi/flavors.bak/everforest-medium.yazi b/mac/.config/yazi/flavors.bak/everforest-medium.yazi
deleted file mode 160000
index 0158f0f..0000000
--- a/mac/.config/yazi/flavors.bak/everforest-medium.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 0158f0f6ce19c9bbc37550a7bed77d67b3fa4e7d
diff --git a/mac/.config/yazi/flavors.bak/gruvbox-dark.yazi b/mac/.config/yazi/flavors.bak/gruvbox-dark.yazi
deleted file mode 160000
index e5e1aef..0000000
--- a/mac/.config/yazi/flavors.bak/gruvbox-dark.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit e5e1aefbfb5641b487cb4a11ccbc57346ec8e130
diff --git a/mac/.config/yazi/flavors.bak/kanagawa-dragon.yazi b/mac/.config/yazi/flavors.bak/kanagawa-dragon.yazi
deleted file mode 160000
index 4905527..0000000
--- a/mac/.config/yazi/flavors.bak/kanagawa-dragon.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 49055274ff53772a13a8c092188e4f6d148d1694
diff --git a/mac/.config/yazi/flavors.bak/kanagawa-lotus.yazi b/mac/.config/yazi/flavors.bak/kanagawa-lotus.yazi
deleted file mode 160000
index 4275a1a..0000000
--- a/mac/.config/yazi/flavors.bak/kanagawa-lotus.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 4275a1a96243c8e7d12057488bce1360a3c74756
diff --git a/mac/.config/yazi/flavors.bak/kanagawa.yazi b/mac/.config/yazi/flavors.bak/kanagawa.yazi
deleted file mode 160000
index a0b1d9d..0000000
--- a/mac/.config/yazi/flavors.bak/kanagawa.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit a0b1d9dec31387b5f8a82c96044e6419b6c46534
diff --git a/mac/.config/yazi/flavors.bak/rose-pine-moon.yazi b/mac/.config/yazi/flavors.bak/rose-pine-moon.yazi
deleted file mode 160000
index aa2d937..0000000
--- a/mac/.config/yazi/flavors.bak/rose-pine-moon.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit aa2d937daf2ede05442bd3818691882a7ad0e700
diff --git a/mac/.config/yazi/flavors.bak/rose-pine.yazi b/mac/.config/yazi/flavors.bak/rose-pine.yazi
deleted file mode 160000
index 8343340..0000000
--- a/mac/.config/yazi/flavors.bak/rose-pine.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 834334048d0bc8c7c344a5a8abce0b0cb35612d3
diff --git a/mac/.config/yazi/flavors.bak/scripts/README.md b/mac/.config/yazi/flavors.bak/scripts/README.md
deleted file mode 100644
index 17a1ffe..0000000
--- a/mac/.config/yazi/flavors.bak/scripts/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-
-

-
-
-
- ${variant_cap} Flavor for Yazi
-
-
-## 👀 Preview
-
-
-
-## 🎨 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
deleted file mode 100644
index 194de0f..0000000
--- a/mac/.config/yazi/flavors.bak/scripts/generate.js
+++ /dev/null
@@ -1,169 +0,0 @@
-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
deleted file mode 100644
index 2eb31d2..0000000
--- a/mac/.config/yazi/flavors.bak/scripts/template.toml
+++ /dev/null
@@ -1,189 +0,0 @@
-# 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
deleted file mode 160000
index 5f56364..0000000
--- a/mac/.config/yazi/flavors.bak/tokyo-night.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 5f5636427f9bb16cc3f7c5e5693c60914c73f036
diff --git a/mac/.config/yazi/flavors.bak/vscode-dark-modern.yazi b/mac/.config/yazi/flavors.bak/vscode-dark-modern.yazi
deleted file mode 160000
index cd60541..0000000
--- a/mac/.config/yazi/flavors.bak/vscode-dark-modern.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit cd605412a6326ba6e99c3386ed47455854707b68
diff --git a/mac/.config/yazi/flavors.bak/vscode-dark-plus.yazi b/mac/.config/yazi/flavors.bak/vscode-dark-plus.yazi
deleted file mode 160000
index 113cc48..0000000
--- a/mac/.config/yazi/flavors.bak/vscode-dark-plus.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 113cc480e45d56851fa04e3a38e767a60445bf77
diff --git a/mac/.config/yazi/flavors.bak/vscode-light-modern.yazi b/mac/.config/yazi/flavors.bak/vscode-light-modern.yazi
deleted file mode 160000
index c054b12..0000000
--- a/mac/.config/yazi/flavors.bak/vscode-light-modern.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit c054b127da55e32bce5928fc2287ee3fb30f873b
diff --git a/mac/.config/yazi/flavors.bak/vscode-light-plus.yazi b/mac/.config/yazi/flavors.bak/vscode-light-plus.yazi
deleted file mode 160000
index 83c8be6..0000000
--- a/mac/.config/yazi/flavors.bak/vscode-light-plus.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 83c8be6e0d0240c5fec6be5b8b6d907a097a0e0a
diff --git a/mac/.config/yazi/flavors/.gitignore b/mac/.config/yazi/flavors/.gitignore
new file mode 100644
index 0000000..40b878d
--- /dev/null
+++ b/mac/.config/yazi/flavors/.gitignore
@@ -0,0 +1 @@
+node_modules/
\ No newline at end of file
diff --git a/mac/.config/yazi/flavors/ayu-dark.yazi b/mac/.config/yazi/flavors/ayu-dark.yazi
new file mode 160000
index 0000000..648a178
--- /dev/null
+++ b/mac/.config/yazi/flavors/ayu-dark.yazi
@@ -0,0 +1 @@
+Subproject commit 648a178cad2bc83f9c3f6340ab30f54a67f36ea7
diff --git a/mac/.config/yazi/flavors/catppuccin-frappe.yazi/LICENSE b/mac/.config/yazi/flavors/catppuccin-frappe.yazi/LICENSE
new file mode 100644
index 0000000..fb5b1d6
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/catppuccin-frappe.yazi/LICENSE-tmtheme b/mac/.config/yazi/flavors/catppuccin-frappe.yazi/LICENSE-tmtheme
new file mode 100644
index 0000000..006383b
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/catppuccin-frappe.yazi/README.md b/mac/.config/yazi/flavors/catppuccin-frappe.yazi/README.md
new file mode 100644
index 0000000..737a6aa
--- /dev/null
+++ b/mac/.config/yazi/flavors/catppuccin-frappe.yazi/README.md
@@ -0,0 +1,36 @@
+
+

+
+
+
+ Catppuccin Frappe Flavor for Yazi
+
+
+## 👀 Preview
+
+
+
+## 🎨 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/catppuccin-frappe.yazi/flavor.toml b/mac/.config/yazi/flavors/catppuccin-frappe.yazi/flavor.toml
new file mode 100644
index 0000000..bb32478
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/catppuccin-frappe.yazi/preview.png b/mac/.config/yazi/flavors/catppuccin-frappe.yazi/preview.png
new file mode 100644
index 0000000..03203c9
Binary files /dev/null and b/mac/.config/yazi/flavors/catppuccin-frappe.yazi/preview.png differ
diff --git a/mac/.config/yazi/flavors/catppuccin-frappe.yazi/tmtheme.xml b/mac/.config/yazi/flavors/catppuccin-frappe.yazi/tmtheme.xml
new file mode 100644
index 0000000..6d0a97f
--- /dev/null
+++ b/mac/.config/yazi/flavors/catppuccin-frappe.yazi/tmtheme.xml
@@ -0,0 +1,2112 @@
+
+
+
+
+ name
+ Catppuccin Frappé
+ semanticClass
+ theme.dark.catppuccin-frappé
+ uuid
+ e0ada983-8938-490c-86f0-97a1a0ec58e4
+ author
+ Catppuccin Org
+ colorSpaceName
+ sRGB
+ settings
+
+
+ settings
+
+ background
+ #303446
+ foreground
+ #c6d0f5
+ caret
+ #f2d5cf
+ lineHighlight
+ #414559
+ misspelling
+ #e78284
+ accent
+ #ca9ee6
+ selection
+ #949cbb40
+ activeGuide
+ #51576d
+ findHighlight
+ #506373
+ gutterForeground
+ #838ba7
+
+
+
+ name
+ Basic text & variable names (incl. leading punctuation)
+ scope
+ text, source, variable.other.readwrite, punctuation.definition.variable
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ Parentheses, Brackets, Braces
+ scope
+ punctuation
+ settings
+
+ foreground
+ #949cbb
+ fontStyle
+
+
+
+
+ name
+ Comments
+ scope
+ comment, punctuation.definition.comment
+ settings
+
+ foreground
+ #949cbb
+ fontStyle
+ italic
+
+
+
+ scope
+ string, punctuation.definition.string
+ settings
+
+ foreground
+ #a6d189
+
+
+
+ scope
+ constant.character.escape
+ settings
+
+ foreground
+ #f4b8e4
+
+
+
+ name
+ Booleans, constants, numbers
+ scope
+ 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
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ scope
+ keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword
+ settings
+
+ foreground
+ #ca9ee6
+ fontStyle
+
+
+
+
+ scope
+ entity.name.tag.documentation
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ name
+ Punctuation
+ scope
+ keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ scope
+ entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function
+ settings
+
+ foreground
+ #8caaee
+ fontStyle
+ italic
+
+
+
+ name
+ Classes
+ scope
+ entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct
+ settings
+
+ foreground
+ #e5c890
+ fontStyle
+ italic
+
+
+
+ name
+ Enum
+ scope
+ entity.name.enum
+ settings
+
+ foreground
+ #e5c890
+ fontStyle
+ italic
+
+
+
+ name
+ Enum member
+ scope
+ meta.enum variable.other.readwrite, variable.other.enummember
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ name
+ Object properties
+ scope
+ meta.property.object
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ name
+ Types
+ scope
+ meta.type, meta.type-alias, support.type, entity.name.type
+ settings
+
+ foreground
+ #e5c890
+ fontStyle
+ italic
+
+
+
+ name
+ Decorators
+ scope
+ meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ scope
+ variable.parameter, meta.function.parameters
+ settings
+
+ foreground
+ #ea999c
+ fontStyle
+ italic
+
+
+
+ name
+ Built-ins
+ scope
+ constant.language, support.function.builtin
+ settings
+
+ foreground
+ #e78284
+
+
+
+ scope
+ entity.other.attribute-name.documentation
+ settings
+
+ foreground
+ #e78284
+
+
+
+ name
+ Preprocessor directives
+ scope
+ keyword.control.directive, punctuation.definition.directive
+ settings
+
+ foreground
+ #e5c890
+
+
+
+ name
+ Type parameters
+ scope
+ punctuation.definition.typeparameters
+ settings
+
+ foreground
+ #99d1db
+
+
+
+ name
+ Namespaces
+ scope
+ entity.name.namespace
+ settings
+
+ foreground
+ #e5c890
+
+
+
+ name
+ Property names (left hand assignments in json/yaml/css)
+ scope
+ support.type.property-name.css
+ settings
+
+ foreground
+ #8caaee
+ fontStyle
+
+
+
+
+ name
+ This/Self keyword
+ scope
+ variable.language.this, variable.language.this punctuation.definition.variable
+ settings
+
+ foreground
+ #e78284
+
+
+
+ name
+ Object properties
+ scope
+ variable.object.property
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ String template interpolation
+ scope
+ string.template variable, string variable
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ `new` as bold
+ scope
+ keyword.operator.new
+ settings
+
+ fontStyle
+ bold
+
+
+
+ name
+ C++ extern keyword
+ scope
+ storage.modifier.specifier.extern.cpp
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ name
+ C++ scope resolution
+ scope
+ 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
+ settings
+
+ foreground
+ #e5c890
+
+
+
+ name
+ C++ doc keywords
+ scope
+ storage.type.class.doxygen
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ C++ operators
+ scope
+ storage.modifier.reference.cpp
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ name
+ C# Interpolated Strings
+ scope
+ meta.interpolation.cs
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ C# xml-style docs
+ scope
+ comment.block.documentation.cs
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ Classes, reflecting the className color in JSX
+ scope
+ source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css
+ settings
+
+ foreground
+ #e5c890
+
+
+
+ name
+ Operators
+ scope
+ punctuation.separator.operator.css
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ name
+ Pseudo classes
+ scope
+ source.css entity.other.attribute-name.pseudo-class
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ scope
+ source.css constant.other.unicode-range
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ scope
+ source.css variable.parameter.url
+ settings
+
+ foreground
+ #a6d189
+ fontStyle
+
+
+
+
+ name
+ CSS vendored property names
+ scope
+ support.type.vendored.property-name
+ settings
+
+ foreground
+ #99d1db
+
+
+
+ name
+ Less/SCSS right-hand variables (@/$-prefixed)
+ scope
+ 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
+ settings
+
+ foreground
+ #ea999c
+
+
+
+ name
+ CSS variables (--prefixed)
+ scope
+ source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less
+ settings
+
+ foreground
+ #8caaee
+
+
+
+ name
+ CSS Percentage values, styled the same as numbers
+ scope
+ keyword.other.unit.percentage.css
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ CSS Attribute selectors, styled the same as strings
+ scope
+ source.css meta.attribute-selector
+ settings
+
+ foreground
+ #a6d189
+
+
+
+ name
+ JSON/YAML keys, other left-hand assignments
+ scope
+ 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
+ settings
+
+ foreground
+ #8caaee
+ fontStyle
+
+
+
+
+ name
+ JSON/YAML constants
+ scope
+ constant.language.json, constant.language.yaml
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ YAML anchors
+ scope
+ entity.name.type.anchor.yaml, variable.other.alias.yaml
+ settings
+
+ foreground
+ #e5c890
+ fontStyle
+
+
+
+
+ name
+ TOML tables / ini groups
+ scope
+ support.type.property-name.table, entity.name.section.group-title.ini
+ settings
+
+ foreground
+ #e5c890
+
+
+
+ name
+ TOML dates
+ scope
+ constant.other.time.datetime.offset.toml
+ settings
+
+ foreground
+ #f4b8e4
+
+
+
+ name
+ YAML anchor puctuation
+ scope
+ punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml
+ settings
+
+ foreground
+ #f4b8e4
+
+
+
+ name
+ YAML triple dashes
+ scope
+ entity.other.document.begin.yaml
+ settings
+
+ foreground
+ #f4b8e4
+
+
+
+ name
+ Markup Diff
+ scope
+ markup.changed.diff
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ Diff
+ scope
+ meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff
+ settings
+
+ foreground
+ #8caaee
+
+
+
+ name
+ Diff Inserted
+ scope
+ markup.inserted.diff
+ settings
+
+ foreground
+ #a6d189
+
+
+
+ name
+ Diff Deleted
+ scope
+ markup.deleted.diff
+ settings
+
+ foreground
+ #e78284
+
+
+
+ name
+ dotenv left-hand side assignments
+ scope
+ variable.other.env
+ settings
+
+ foreground
+ #8caaee
+
+
+
+ name
+ dotenv reference to existing env variable
+ scope
+ string.quoted variable.other.env
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ GDScript functions
+ scope
+ support.function.builtin.gdscript
+ settings
+
+ foreground
+ #8caaee
+
+
+
+ name
+ GDScript constants
+ scope
+ constant.language.gdscript
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ Comment keywords
+ scope
+ comment meta.annotation.go
+ settings
+
+ foreground
+ #ea999c
+
+
+
+ name
+ go:embed, go:build, etc.
+ scope
+ comment meta.annotation.parameters.go
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ Go constants (nil, true, false)
+ scope
+ constant.language.go
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ GraphQL variables
+ scope
+ variable.graphql
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ GraphQL aliases
+ scope
+ string.unquoted.alias.graphql
+ settings
+
+ foreground
+ #eebebe
+
+
+
+ name
+ GraphQL enum members
+ scope
+ constant.character.enum.graphql
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ name
+ GraphQL field in types
+ scope
+ meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql
+ settings
+
+ foreground
+ #eebebe
+
+
+
+ name
+ HTML/XML DOCTYPE as keyword
+ scope
+ keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ name
+ HTML/XML-like <tags/>
+ scope
+ entity.name.tag
+ settings
+
+ foreground
+ #8caaee
+ fontStyle
+
+
+
+
+ name
+ Special characters like &
+ scope
+ 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
+ settings
+
+ foreground
+ #e78284
+
+
+
+ name
+ HTML/XML tag attribute values
+ scope
+ entity.other.attribute-name
+ settings
+
+ foreground
+ #e5c890
+
+
+
+ name
+ Components
+ scope
+ support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue
+ settings
+
+ foreground
+ #f4b8e4
+ fontStyle
+
+
+
+
+ name
+ Annotations
+ scope
+ punctuation.definition.annotation, storage.type.annotation
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ Java enums
+ scope
+ constant.other.enum.java
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ name
+ Java imports
+ scope
+ storage.modifier.import.java
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ Javadoc
+ scope
+ comment.block.javadoc.java keyword.other.documentation.javadoc.java
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Exported Variable
+ scope
+ meta.export variable.other.readwrite.js
+ settings
+
+ foreground
+ #ea999c
+
+
+
+ name
+ JS/TS constants & properties
+ scope
+ variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ JSDoc; these are mainly params, so styled as such
+ scope
+ variable.other.jsdoc, comment.block.documentation variable.other
+ settings
+
+ foreground
+ #ea999c
+ fontStyle
+
+
+
+
+ name
+ JSDoc keywords
+ scope
+ storage.type.class.jsdoc
+ settings
+
+ fontStyle
+
+
+
+
+ scope
+ support.type.object.console.js
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ Node constants as keywords (module, etc.)
+ scope
+ support.constant.node, support.type.object.module.js
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ name
+ implements as keyword
+ scope
+ storage.modifier.implements
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ name
+ Builtin types
+ scope
+ constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ scope
+ variable.parameter.generic
+ settings
+
+ foreground
+ #e5c890
+
+
+
+ name
+ Arrow functions
+ scope
+ keyword.declaration.function.arrow.js, storage.type.function.arrow.ts
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ name
+ Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)
+ scope
+ punctuation.decorator.ts
+ settings
+
+ foreground
+ #8caaee
+ fontStyle
+ italic
+
+
+
+ name
+ Extra JS/TS keywords
+ scope
+ 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
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ name
+ Julia macros
+ scope
+ support.function.macro.julia
+ settings
+
+ foreground
+ #81c8be
+ fontStyle
+ italic
+
+
+
+ name
+ Julia language constants (true, false)
+ scope
+ constant.language.julia
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ Julia other constants (these seem to be arguments inside arrays)
+ scope
+ constant.other.symbol.julia
+ settings
+
+ foreground
+ #ea999c
+
+
+
+ name
+ LaTeX preamble
+ scope
+ text.tex keyword.control.preamble
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ name
+ LaTeX be functions
+ scope
+ text.tex support.function.be
+ settings
+
+ foreground
+ #99d1db
+
+
+
+ name
+ LaTeX math
+ scope
+ constant.other.general.math.tex
+ settings
+
+ foreground
+ #eebebe
+
+
+
+ name
+ Liquid Builtin Objects & User Defined Variables
+ scope
+ variable.language.liquid
+ settings
+
+ foreground
+ #f4b8e4
+
+
+
+ name
+ Lua docstring keywords
+ scope
+ comment.line.double-dash.documentation.lua storage.type.annotation.lua
+ settings
+
+ foreground
+ #ca9ee6
+ fontStyle
+
+
+
+
+ name
+ Lua docstring variables
+ scope
+ comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #e78284
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #e5c890
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #a6d189
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #85c1dc
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #babbf1
+
+
+
+ scope
+ markup.bold
+ settings
+
+ foreground
+ #e78284
+ fontStyle
+ bold
+
+
+
+ scope
+ markup.italic
+ settings
+
+ foreground
+ #e78284
+ fontStyle
+ italic
+
+
+
+ scope
+ markup.strikethrough
+ settings
+
+ foreground
+ #a5adce
+ fontStyle
+ strikethrough
+
+
+
+ name
+ Markdown auto links
+ scope
+ punctuation.definition.link, markup.underline.link
+ settings
+
+ foreground
+ #8caaee
+
+
+
+ name
+ Markdown links
+ scope
+ 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
+ settings
+
+ foreground
+ #babbf1
+
+
+
+ name
+ Markdown code spans
+ scope
+ 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
+ settings
+
+ foreground
+ #a6d189
+
+
+
+ name
+ Markdown triple backtick language identifier
+ scope
+ fenced_code.block.language
+ settings
+
+ foreground
+ #99d1db
+
+
+
+ name
+ Markdown triple backticks
+ scope
+ markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc
+ settings
+
+ foreground
+ #949cbb
+
+
+
+ name
+ Markdown quotes
+ scope
+ markup.quote, punctuation.definition.quote.begin
+ settings
+
+ foreground
+ #f4b8e4
+
+
+
+ name
+ Markdown separators
+ scope
+ meta.separator.markdown
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ name
+ Markdown list bullets
+ scope
+ punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ name
+ Quarto headings
+ scope
+ markup.heading.quarto
+ settings
+
+ fontStyle
+ bold
+
+
+
+ name
+ Nix attribute names
+ scope
+ entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix
+ settings
+
+ foreground
+ #8caaee
+
+
+
+ name
+ Nix parameter names
+ scope
+ variable.parameter.name.nix
+ settings
+
+ foreground
+ #c6d0f5
+ fontStyle
+
+
+
+
+ name
+ Nix interpolated parameter names
+ scope
+ meta.embedded variable.parameter.name.nix
+ settings
+
+ foreground
+ #babbf1
+ fontStyle
+
+
+
+
+ name
+ Nix paths
+ scope
+ string.unquoted.path.nix
+ settings
+
+ foreground
+ #f4b8e4
+ fontStyle
+
+
+
+
+ name
+ PHP Attributes
+ scope
+ support.attribute.builtin, meta.attribute.php
+ settings
+
+ foreground
+ #e5c890
+
+
+
+ name
+ PHP Parameters (needed for the leading dollar sign)
+ scope
+ meta.function.parameters.php punctuation.definition.variable.php
+ settings
+
+ foreground
+ #ea999c
+
+
+
+ name
+ PHP Constants (null, __FILE__, etc.)
+ scope
+ constant.language.php
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ name
+ PHP functions
+ scope
+ text.html.php support.function
+ settings
+
+ foreground
+ #99d1db
+
+
+
+ name
+ PHPdoc keywords
+ scope
+ keyword.other.phpdoc.php
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Python argument functions reset to text, otherwise they inherit blue from function-call
+ scope
+ support.variable.magic.python, meta.function-call.arguments.python
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ Python double underscore functions
+ scope
+ support.function.magic.python
+ settings
+
+ foreground
+ #99d1db
+ fontStyle
+ italic
+
+
+
+ name
+ Python `self` keyword
+ scope
+ variable.parameter.function.language.special.self.python, variable.language.special.self.python
+ settings
+
+ foreground
+ #e78284
+ fontStyle
+ italic
+
+
+
+ name
+ python keyword flow/logical (for ... in)
+ scope
+ keyword.control.flow.python, keyword.operator.logical.python
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ name
+ python storage type
+ scope
+ storage.type.function.python
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ name
+ python function support
+ scope
+ support.token.decorator.python, meta.function.decorator.identifier.python
+ settings
+
+ foreground
+ #99d1db
+
+
+
+ name
+ python function calls
+ scope
+ meta.function-call.python
+ settings
+
+ foreground
+ #8caaee
+
+
+
+ name
+ python function decorators
+ scope
+ entity.name.function.decorator.python, punctuation.definition.decorator.python
+ settings
+
+ foreground
+ #ef9f76
+ fontStyle
+ italic
+
+
+
+ name
+ python placeholder reset to normal string
+ scope
+ constant.character.format.placeholder.other.python
+ settings
+
+ foreground
+ #f4b8e4
+
+
+
+ name
+ Python exception & builtins such as exit()
+ scope
+ support.type.exception.python, support.function.builtin.python
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ entity.name.type
+ scope
+ support.type.python
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ name
+ python constants (True/False)
+ scope
+ constant.language.python
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ Arguments accessed later in the function body
+ scope
+ meta.indexed-name.python, meta.item-access.python
+ settings
+
+ foreground
+ #ea999c
+ fontStyle
+ italic
+
+
+
+ name
+ Python f-strings/binary/unicode storage types
+ scope
+ storage.type.string.python
+ settings
+
+ foreground
+ #a6d189
+ fontStyle
+ italic
+
+
+
+ name
+ Python type hints
+ scope
+ meta.function.parameters.python
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Regex string begin/end in JS/TS
+ scope
+ string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end
+ settings
+
+ foreground
+ #f4b8e4
+
+
+
+ name
+ Regex anchors (^, $)
+ scope
+ keyword.control.anchor.regexp
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ name
+ Regex regular string match
+ scope
+ string.regexp.ts
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ Regex group parenthesis & backreference (\1, \2, \3, ...)
+ scope
+ punctuation.definition.group.regexp, keyword.other.back-reference.regexp
+ settings
+
+ foreground
+ #a6d189
+
+
+
+ name
+ Regex character class []
+ scope
+ punctuation.definition.character-class.regexp
+ settings
+
+ foreground
+ #e5c890
+
+
+
+ name
+ Regex character classes (\d, \w, \s)
+ scope
+ constant.other.character-class.regexp
+ settings
+
+ foreground
+ #f4b8e4
+
+
+
+ name
+ Regex range
+ scope
+ constant.other.character-class.range.regexp
+ settings
+
+ foreground
+ #f2d5cf
+
+
+
+ name
+ Regex quantifier
+ scope
+ keyword.operator.quantifier.regexp
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ name
+ Regex constant/numeric
+ scope
+ constant.character.numeric.regexp
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds
+ scope
+ punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp
+ settings
+
+ foreground
+ #8caaee
+
+
+
+ name
+ Rust attribute
+ scope
+ meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust
+ settings
+
+ foreground
+ #e5c890
+ fontStyle
+ italic
+
+
+
+ name
+ Rust attribute strings
+ scope
+ meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Rust keyword
+ scope
+ 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
+ settings
+
+ foreground
+ #ca9ee6
+ fontStyle
+
+
+
+
+ name
+ Rust u/i32, u/i64, etc.
+ scope
+ entity.name.type.numeric.rust
+ settings
+
+ foreground
+ #ca9ee6
+ fontStyle
+
+
+
+
+ name
+ Rust generic
+ scope
+ meta.generic.rust
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ Rust impl
+ scope
+ entity.name.impl.rust
+ settings
+
+ foreground
+ #e5c890
+ fontStyle
+ italic
+
+
+
+ name
+ Rust module
+ scope
+ entity.name.module.rust
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ Rust trait
+ scope
+ entity.name.trait.rust
+ settings
+
+ foreground
+ #e5c890
+ fontStyle
+ italic
+
+
+
+ name
+ Rust struct
+ scope
+ storage.type.source.rust
+ settings
+
+ foreground
+ #e5c890
+
+
+
+ name
+ Rust union
+ scope
+ entity.name.union.rust
+ settings
+
+ foreground
+ #e5c890
+
+
+
+ name
+ Rust enum member
+ scope
+ meta.enum.rust storage.type.source.rust
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ name
+ Rust macro
+ scope
+ support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust
+ settings
+
+ foreground
+ #8caaee
+ fontStyle
+ italic
+
+
+
+ name
+ Rust lifetime
+ scope
+ storage.modifier.lifetime.rust, entity.name.type.lifetime
+ settings
+
+ foreground
+ #8caaee
+ fontStyle
+ italic
+
+
+
+ name
+ Rust string formatting
+ scope
+ string.quoted.double.rust constant.other.placeholder.rust
+ settings
+
+ foreground
+ #f4b8e4
+
+
+
+ name
+ Rust return type generic
+ scope
+ meta.function.return-type.rust meta.generic.rust storage.type.rust
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ Rust functions
+ scope
+ meta.function.call.rust
+ settings
+
+ foreground
+ #8caaee
+
+
+
+ name
+ Rust angle brackets
+ scope
+ punctuation.brackets.angle.rust
+ settings
+
+ foreground
+ #99d1db
+
+
+
+ name
+ Rust constants
+ scope
+ constant.other.caps.rust
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ name
+ Rust function parameters
+ scope
+ meta.function.definition.rust variable.other.rust
+ settings
+
+ foreground
+ #ea999c
+
+
+
+ name
+ Rust closure variables
+ scope
+ meta.function.call.rust variable.other.rust
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ name
+ Rust self
+ scope
+ variable.language.self.rust
+ settings
+
+ foreground
+ #e78284
+
+
+
+ name
+ Rust metavariable names
+ scope
+ variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust
+ settings
+
+ foreground
+ #f4b8e4
+
+
+
+ name
+ Shell shebang
+ scope
+ comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell
+ settings
+
+ foreground
+ #f4b8e4
+ fontStyle
+ italic
+
+
+
+ name
+ Shell shebang command
+ scope
+ comment.line.shebang constant.language
+ settings
+
+ foreground
+ #81c8be
+ fontStyle
+ italic
+
+
+
+ name
+ Shell interpolated command
+ scope
+ 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
+ settings
+
+ foreground
+ #e78284
+
+
+
+ name
+ Shell interpolated command variable
+ scope
+ meta.string meta.interpolation.parameter.shell variable.other.readwrite
+ settings
+
+ foreground
+ #ef9f76
+ fontStyle
+ italic
+
+
+
+ scope
+ source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ name
+ Shell EOF
+ scope
+ entity.name.tag.heredoc.shell
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ name
+ Shell quoted variable
+ scope
+ string.quoted.double.shell variable.other.normal.shell
+ settings
+
+ foreground
+ #c6d0f5
+
+
+
+ scope
+ markup.heading.typst
+ settings
+
+ foreground
+ #e78284
+
+
+
+ name
+ JSON Keys
+ scope
+ source.json meta.mapping.key string
+ settings
+
+ foreground
+ #8caaee
+
+
+
+ name
+ JSON key surrounding quotes
+ scope
+ source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end
+ settings
+
+ foreground
+ #949cbb
+
+
+
+ scope
+ markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man
+ settings
+
+ foreground
+ #ca9ee6
+
+
+
+ scope
+ markup.heading.commands.man
+ settings
+
+ foreground
+ #8caaee
+
+
+
+ scope
+ markup.heading.env.man
+ settings
+
+ foreground
+ #f4b8e4
+
+
+
+ name
+ Man page options
+ scope
+ entity.name
+ settings
+
+ foreground
+ #81c8be
+
+
+
+ scope
+ markup.heading.1.markdown
+ settings
+
+ foreground
+ #e78284
+
+
+
+ scope
+ markup.heading.2.markdown
+ settings
+
+ foreground
+ #ef9f76
+
+
+
+ scope
+ markup.heading.markdown
+ settings
+
+ foreground
+ #e5c890
+
+
+
+
+
\ No newline at end of file
diff --git a/mac/.config/yazi/flavors/catppuccin-latte.yazi/LICENSE b/mac/.config/yazi/flavors/catppuccin-latte.yazi/LICENSE
new file mode 100644
index 0000000..fb5b1d6
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/catppuccin-latte.yazi/LICENSE-tmtheme b/mac/.config/yazi/flavors/catppuccin-latte.yazi/LICENSE-tmtheme
new file mode 100644
index 0000000..006383b
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/catppuccin-latte.yazi/README.md b/mac/.config/yazi/flavors/catppuccin-latte.yazi/README.md
new file mode 100644
index 0000000..ea1c35e
--- /dev/null
+++ b/mac/.config/yazi/flavors/catppuccin-latte.yazi/README.md
@@ -0,0 +1,36 @@
+
+

+
+
+
+ Catppuccin Latte Flavor for Yazi
+
+
+## 👀 Preview
+
+
+
+## 🎨 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/catppuccin-latte.yazi/flavor.toml b/mac/.config/yazi/flavors/catppuccin-latte.yazi/flavor.toml
new file mode 100644
index 0000000..ba2bb78
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/catppuccin-latte.yazi/preview.png b/mac/.config/yazi/flavors/catppuccin-latte.yazi/preview.png
new file mode 100644
index 0000000..7712450
Binary files /dev/null and b/mac/.config/yazi/flavors/catppuccin-latte.yazi/preview.png differ
diff --git a/mac/.config/yazi/flavors/catppuccin-latte.yazi/tmtheme.xml b/mac/.config/yazi/flavors/catppuccin-latte.yazi/tmtheme.xml
new file mode 100644
index 0000000..ddeb349
--- /dev/null
+++ b/mac/.config/yazi/flavors/catppuccin-latte.yazi/tmtheme.xml
@@ -0,0 +1,2112 @@
+
+
+
+
+ name
+ Catppuccin Latte
+ semanticClass
+ theme.light.catppuccin-latte
+ uuid
+ 96a262cd-4b2f-49f5-9125-8dd0077cbfe1
+ author
+ Catppuccin Org
+ colorSpaceName
+ sRGB
+ settings
+
+
+ settings
+
+ background
+ #eff1f5
+ foreground
+ #4c4f69
+ caret
+ #dc8a78
+ lineHighlight
+ #ccd0da
+ misspelling
+ #d20f39
+ accent
+ #8839ef
+ selection
+ #7c7f934d
+ activeGuide
+ #bcc0cc
+ findHighlight
+ #a9daf0
+ gutterForeground
+ #8c8fa1
+
+
+
+ name
+ Basic text & variable names (incl. leading punctuation)
+ scope
+ text, source, variable.other.readwrite, punctuation.definition.variable
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ Parentheses, Brackets, Braces
+ scope
+ punctuation
+ settings
+
+ foreground
+ #7c7f93
+ fontStyle
+
+
+
+
+ name
+ Comments
+ scope
+ comment, punctuation.definition.comment
+ settings
+
+ foreground
+ #7c7f93
+ fontStyle
+ italic
+
+
+
+ scope
+ string, punctuation.definition.string
+ settings
+
+ foreground
+ #40a02b
+
+
+
+ scope
+ constant.character.escape
+ settings
+
+ foreground
+ #ea76cb
+
+
+
+ name
+ Booleans, constants, numbers
+ scope
+ 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
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ scope
+ keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword
+ settings
+
+ foreground
+ #8839ef
+ fontStyle
+
+
+
+
+ scope
+ entity.name.tag.documentation
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ name
+ Punctuation
+ scope
+ keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value
+ settings
+
+ foreground
+ #179299
+
+
+
+ scope
+ entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function
+ settings
+
+ foreground
+ #1e66f5
+ fontStyle
+ italic
+
+
+
+ name
+ Classes
+ scope
+ entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct
+ settings
+
+ foreground
+ #df8e1d
+ fontStyle
+ italic
+
+
+
+ name
+ Enum
+ scope
+ entity.name.enum
+ settings
+
+ foreground
+ #df8e1d
+ fontStyle
+ italic
+
+
+
+ name
+ Enum member
+ scope
+ meta.enum variable.other.readwrite, variable.other.enummember
+ settings
+
+ foreground
+ #179299
+
+
+
+ name
+ Object properties
+ scope
+ meta.property.object
+ settings
+
+ foreground
+ #179299
+
+
+
+ name
+ Types
+ scope
+ meta.type, meta.type-alias, support.type, entity.name.type
+ settings
+
+ foreground
+ #df8e1d
+ fontStyle
+ italic
+
+
+
+ name
+ Decorators
+ scope
+ meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ scope
+ variable.parameter, meta.function.parameters
+ settings
+
+ foreground
+ #e64553
+ fontStyle
+ italic
+
+
+
+ name
+ Built-ins
+ scope
+ constant.language, support.function.builtin
+ settings
+
+ foreground
+ #d20f39
+
+
+
+ scope
+ entity.other.attribute-name.documentation
+ settings
+
+ foreground
+ #d20f39
+
+
+
+ name
+ Preprocessor directives
+ scope
+ keyword.control.directive, punctuation.definition.directive
+ settings
+
+ foreground
+ #df8e1d
+
+
+
+ name
+ Type parameters
+ scope
+ punctuation.definition.typeparameters
+ settings
+
+ foreground
+ #04a5e5
+
+
+
+ name
+ Namespaces
+ scope
+ entity.name.namespace
+ settings
+
+ foreground
+ #df8e1d
+
+
+
+ name
+ Property names (left hand assignments in json/yaml/css)
+ scope
+ support.type.property-name.css
+ settings
+
+ foreground
+ #1e66f5
+ fontStyle
+
+
+
+
+ name
+ This/Self keyword
+ scope
+ variable.language.this, variable.language.this punctuation.definition.variable
+ settings
+
+ foreground
+ #d20f39
+
+
+
+ name
+ Object properties
+ scope
+ variable.object.property
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ String template interpolation
+ scope
+ string.template variable, string variable
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ `new` as bold
+ scope
+ keyword.operator.new
+ settings
+
+ fontStyle
+ bold
+
+
+
+ name
+ C++ extern keyword
+ scope
+ storage.modifier.specifier.extern.cpp
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ name
+ C++ scope resolution
+ scope
+ 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
+ settings
+
+ foreground
+ #df8e1d
+
+
+
+ name
+ C++ doc keywords
+ scope
+ storage.type.class.doxygen
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ C++ operators
+ scope
+ storage.modifier.reference.cpp
+ settings
+
+ foreground
+ #179299
+
+
+
+ name
+ C# Interpolated Strings
+ scope
+ meta.interpolation.cs
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ C# xml-style docs
+ scope
+ comment.block.documentation.cs
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ Classes, reflecting the className color in JSX
+ scope
+ source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css
+ settings
+
+ foreground
+ #df8e1d
+
+
+
+ name
+ Operators
+ scope
+ punctuation.separator.operator.css
+ settings
+
+ foreground
+ #179299
+
+
+
+ name
+ Pseudo classes
+ scope
+ source.css entity.other.attribute-name.pseudo-class
+ settings
+
+ foreground
+ #179299
+
+
+
+ scope
+ source.css constant.other.unicode-range
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ scope
+ source.css variable.parameter.url
+ settings
+
+ foreground
+ #40a02b
+ fontStyle
+
+
+
+
+ name
+ CSS vendored property names
+ scope
+ support.type.vendored.property-name
+ settings
+
+ foreground
+ #04a5e5
+
+
+
+ name
+ Less/SCSS right-hand variables (@/$-prefixed)
+ scope
+ 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
+ settings
+
+ foreground
+ #e64553
+
+
+
+ name
+ CSS variables (--prefixed)
+ scope
+ source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less
+ settings
+
+ foreground
+ #1e66f5
+
+
+
+ name
+ CSS Percentage values, styled the same as numbers
+ scope
+ keyword.other.unit.percentage.css
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ CSS Attribute selectors, styled the same as strings
+ scope
+ source.css meta.attribute-selector
+ settings
+
+ foreground
+ #40a02b
+
+
+
+ name
+ JSON/YAML keys, other left-hand assignments
+ scope
+ 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
+ settings
+
+ foreground
+ #1e66f5
+ fontStyle
+
+
+
+
+ name
+ JSON/YAML constants
+ scope
+ constant.language.json, constant.language.yaml
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ YAML anchors
+ scope
+ entity.name.type.anchor.yaml, variable.other.alias.yaml
+ settings
+
+ foreground
+ #df8e1d
+ fontStyle
+
+
+
+
+ name
+ TOML tables / ini groups
+ scope
+ support.type.property-name.table, entity.name.section.group-title.ini
+ settings
+
+ foreground
+ #df8e1d
+
+
+
+ name
+ TOML dates
+ scope
+ constant.other.time.datetime.offset.toml
+ settings
+
+ foreground
+ #ea76cb
+
+
+
+ name
+ YAML anchor puctuation
+ scope
+ punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml
+ settings
+
+ foreground
+ #ea76cb
+
+
+
+ name
+ YAML triple dashes
+ scope
+ entity.other.document.begin.yaml
+ settings
+
+ foreground
+ #ea76cb
+
+
+
+ name
+ Markup Diff
+ scope
+ markup.changed.diff
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ Diff
+ scope
+ meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff
+ settings
+
+ foreground
+ #1e66f5
+
+
+
+ name
+ Diff Inserted
+ scope
+ markup.inserted.diff
+ settings
+
+ foreground
+ #40a02b
+
+
+
+ name
+ Diff Deleted
+ scope
+ markup.deleted.diff
+ settings
+
+ foreground
+ #d20f39
+
+
+
+ name
+ dotenv left-hand side assignments
+ scope
+ variable.other.env
+ settings
+
+ foreground
+ #1e66f5
+
+
+
+ name
+ dotenv reference to existing env variable
+ scope
+ string.quoted variable.other.env
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ GDScript functions
+ scope
+ support.function.builtin.gdscript
+ settings
+
+ foreground
+ #1e66f5
+
+
+
+ name
+ GDScript constants
+ scope
+ constant.language.gdscript
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ Comment keywords
+ scope
+ comment meta.annotation.go
+ settings
+
+ foreground
+ #e64553
+
+
+
+ name
+ go:embed, go:build, etc.
+ scope
+ comment meta.annotation.parameters.go
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ Go constants (nil, true, false)
+ scope
+ constant.language.go
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ GraphQL variables
+ scope
+ variable.graphql
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ GraphQL aliases
+ scope
+ string.unquoted.alias.graphql
+ settings
+
+ foreground
+ #dd7878
+
+
+
+ name
+ GraphQL enum members
+ scope
+ constant.character.enum.graphql
+ settings
+
+ foreground
+ #179299
+
+
+
+ name
+ GraphQL field in types
+ scope
+ meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql
+ settings
+
+ foreground
+ #dd7878
+
+
+
+ name
+ HTML/XML DOCTYPE as keyword
+ scope
+ keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ name
+ HTML/XML-like <tags/>
+ scope
+ entity.name.tag
+ settings
+
+ foreground
+ #1e66f5
+ fontStyle
+
+
+
+
+ name
+ Special characters like &
+ scope
+ 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
+ settings
+
+ foreground
+ #d20f39
+
+
+
+ name
+ HTML/XML tag attribute values
+ scope
+ entity.other.attribute-name
+ settings
+
+ foreground
+ #df8e1d
+
+
+
+ name
+ Components
+ scope
+ support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue
+ settings
+
+ foreground
+ #ea76cb
+ fontStyle
+
+
+
+
+ name
+ Annotations
+ scope
+ punctuation.definition.annotation, storage.type.annotation
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ Java enums
+ scope
+ constant.other.enum.java
+ settings
+
+ foreground
+ #179299
+
+
+
+ name
+ Java imports
+ scope
+ storage.modifier.import.java
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ Javadoc
+ scope
+ comment.block.javadoc.java keyword.other.documentation.javadoc.java
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Exported Variable
+ scope
+ meta.export variable.other.readwrite.js
+ settings
+
+ foreground
+ #e64553
+
+
+
+ name
+ JS/TS constants & properties
+ scope
+ variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ JSDoc; these are mainly params, so styled as such
+ scope
+ variable.other.jsdoc, comment.block.documentation variable.other
+ settings
+
+ foreground
+ #e64553
+ fontStyle
+
+
+
+
+ name
+ JSDoc keywords
+ scope
+ storage.type.class.jsdoc
+ settings
+
+ fontStyle
+
+
+
+
+ scope
+ support.type.object.console.js
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ Node constants as keywords (module, etc.)
+ scope
+ support.constant.node, support.type.object.module.js
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ name
+ implements as keyword
+ scope
+ storage.modifier.implements
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ name
+ Builtin types
+ scope
+ constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ scope
+ variable.parameter.generic
+ settings
+
+ foreground
+ #df8e1d
+
+
+
+ name
+ Arrow functions
+ scope
+ keyword.declaration.function.arrow.js, storage.type.function.arrow.ts
+ settings
+
+ foreground
+ #179299
+
+
+
+ name
+ Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)
+ scope
+ punctuation.decorator.ts
+ settings
+
+ foreground
+ #1e66f5
+ fontStyle
+ italic
+
+
+
+ name
+ Extra JS/TS keywords
+ scope
+ 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
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ name
+ Julia macros
+ scope
+ support.function.macro.julia
+ settings
+
+ foreground
+ #179299
+ fontStyle
+ italic
+
+
+
+ name
+ Julia language constants (true, false)
+ scope
+ constant.language.julia
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ Julia other constants (these seem to be arguments inside arrays)
+ scope
+ constant.other.symbol.julia
+ settings
+
+ foreground
+ #e64553
+
+
+
+ name
+ LaTeX preamble
+ scope
+ text.tex keyword.control.preamble
+ settings
+
+ foreground
+ #179299
+
+
+
+ name
+ LaTeX be functions
+ scope
+ text.tex support.function.be
+ settings
+
+ foreground
+ #04a5e5
+
+
+
+ name
+ LaTeX math
+ scope
+ constant.other.general.math.tex
+ settings
+
+ foreground
+ #dd7878
+
+
+
+ name
+ Liquid Builtin Objects & User Defined Variables
+ scope
+ variable.language.liquid
+ settings
+
+ foreground
+ #ea76cb
+
+
+
+ name
+ Lua docstring keywords
+ scope
+ comment.line.double-dash.documentation.lua storage.type.annotation.lua
+ settings
+
+ foreground
+ #8839ef
+ fontStyle
+
+
+
+
+ name
+ Lua docstring variables
+ scope
+ comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #d20f39
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #df8e1d
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #40a02b
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #209fb5
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #7287fd
+
+
+
+ scope
+ markup.bold
+ settings
+
+ foreground
+ #d20f39
+ fontStyle
+ bold
+
+
+
+ scope
+ markup.italic
+ settings
+
+ foreground
+ #d20f39
+ fontStyle
+ italic
+
+
+
+ scope
+ markup.strikethrough
+ settings
+
+ foreground
+ #6c6f85
+ fontStyle
+ strikethrough
+
+
+
+ name
+ Markdown auto links
+ scope
+ punctuation.definition.link, markup.underline.link
+ settings
+
+ foreground
+ #1e66f5
+
+
+
+ name
+ Markdown links
+ scope
+ 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
+ settings
+
+ foreground
+ #7287fd
+
+
+
+ name
+ Markdown code spans
+ scope
+ 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
+ settings
+
+ foreground
+ #40a02b
+
+
+
+ name
+ Markdown triple backtick language identifier
+ scope
+ fenced_code.block.language
+ settings
+
+ foreground
+ #04a5e5
+
+
+
+ name
+ Markdown triple backticks
+ scope
+ markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc
+ settings
+
+ foreground
+ #7c7f93
+
+
+
+ name
+ Markdown quotes
+ scope
+ markup.quote, punctuation.definition.quote.begin
+ settings
+
+ foreground
+ #ea76cb
+
+
+
+ name
+ Markdown separators
+ scope
+ meta.separator.markdown
+ settings
+
+ foreground
+ #179299
+
+
+
+ name
+ Markdown list bullets
+ scope
+ punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet
+ settings
+
+ foreground
+ #179299
+
+
+
+ name
+ Quarto headings
+ scope
+ markup.heading.quarto
+ settings
+
+ fontStyle
+ bold
+
+
+
+ name
+ Nix attribute names
+ scope
+ entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix
+ settings
+
+ foreground
+ #1e66f5
+
+
+
+ name
+ Nix parameter names
+ scope
+ variable.parameter.name.nix
+ settings
+
+ foreground
+ #4c4f69
+ fontStyle
+
+
+
+
+ name
+ Nix interpolated parameter names
+ scope
+ meta.embedded variable.parameter.name.nix
+ settings
+
+ foreground
+ #7287fd
+ fontStyle
+
+
+
+
+ name
+ Nix paths
+ scope
+ string.unquoted.path.nix
+ settings
+
+ foreground
+ #ea76cb
+ fontStyle
+
+
+
+
+ name
+ PHP Attributes
+ scope
+ support.attribute.builtin, meta.attribute.php
+ settings
+
+ foreground
+ #df8e1d
+
+
+
+ name
+ PHP Parameters (needed for the leading dollar sign)
+ scope
+ meta.function.parameters.php punctuation.definition.variable.php
+ settings
+
+ foreground
+ #e64553
+
+
+
+ name
+ PHP Constants (null, __FILE__, etc.)
+ scope
+ constant.language.php
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ name
+ PHP functions
+ scope
+ text.html.php support.function
+ settings
+
+ foreground
+ #04a5e5
+
+
+
+ name
+ PHPdoc keywords
+ scope
+ keyword.other.phpdoc.php
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Python argument functions reset to text, otherwise they inherit blue from function-call
+ scope
+ support.variable.magic.python, meta.function-call.arguments.python
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ Python double underscore functions
+ scope
+ support.function.magic.python
+ settings
+
+ foreground
+ #04a5e5
+ fontStyle
+ italic
+
+
+
+ name
+ Python `self` keyword
+ scope
+ variable.parameter.function.language.special.self.python, variable.language.special.self.python
+ settings
+
+ foreground
+ #d20f39
+ fontStyle
+ italic
+
+
+
+ name
+ python keyword flow/logical (for ... in)
+ scope
+ keyword.control.flow.python, keyword.operator.logical.python
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ name
+ python storage type
+ scope
+ storage.type.function.python
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ name
+ python function support
+ scope
+ support.token.decorator.python, meta.function.decorator.identifier.python
+ settings
+
+ foreground
+ #04a5e5
+
+
+
+ name
+ python function calls
+ scope
+ meta.function-call.python
+ settings
+
+ foreground
+ #1e66f5
+
+
+
+ name
+ python function decorators
+ scope
+ entity.name.function.decorator.python, punctuation.definition.decorator.python
+ settings
+
+ foreground
+ #fe640b
+ fontStyle
+ italic
+
+
+
+ name
+ python placeholder reset to normal string
+ scope
+ constant.character.format.placeholder.other.python
+ settings
+
+ foreground
+ #ea76cb
+
+
+
+ name
+ Python exception & builtins such as exit()
+ scope
+ support.type.exception.python, support.function.builtin.python
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ entity.name.type
+ scope
+ support.type.python
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ name
+ python constants (True/False)
+ scope
+ constant.language.python
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ Arguments accessed later in the function body
+ scope
+ meta.indexed-name.python, meta.item-access.python
+ settings
+
+ foreground
+ #e64553
+ fontStyle
+ italic
+
+
+
+ name
+ Python f-strings/binary/unicode storage types
+ scope
+ storage.type.string.python
+ settings
+
+ foreground
+ #40a02b
+ fontStyle
+ italic
+
+
+
+ name
+ Python type hints
+ scope
+ meta.function.parameters.python
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Regex string begin/end in JS/TS
+ scope
+ string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end
+ settings
+
+ foreground
+ #ea76cb
+
+
+
+ name
+ Regex anchors (^, $)
+ scope
+ keyword.control.anchor.regexp
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ name
+ Regex regular string match
+ scope
+ string.regexp.ts
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ Regex group parenthesis & backreference (\1, \2, \3, ...)
+ scope
+ punctuation.definition.group.regexp, keyword.other.back-reference.regexp
+ settings
+
+ foreground
+ #40a02b
+
+
+
+ name
+ Regex character class []
+ scope
+ punctuation.definition.character-class.regexp
+ settings
+
+ foreground
+ #df8e1d
+
+
+
+ name
+ Regex character classes (\d, \w, \s)
+ scope
+ constant.other.character-class.regexp
+ settings
+
+ foreground
+ #ea76cb
+
+
+
+ name
+ Regex range
+ scope
+ constant.other.character-class.range.regexp
+ settings
+
+ foreground
+ #dc8a78
+
+
+
+ name
+ Regex quantifier
+ scope
+ keyword.operator.quantifier.regexp
+ settings
+
+ foreground
+ #179299
+
+
+
+ name
+ Regex constant/numeric
+ scope
+ constant.character.numeric.regexp
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds
+ scope
+ punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp
+ settings
+
+ foreground
+ #1e66f5
+
+
+
+ name
+ Rust attribute
+ scope
+ meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust
+ settings
+
+ foreground
+ #df8e1d
+ fontStyle
+ italic
+
+
+
+ name
+ Rust attribute strings
+ scope
+ meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Rust keyword
+ scope
+ 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
+ settings
+
+ foreground
+ #8839ef
+ fontStyle
+
+
+
+
+ name
+ Rust u/i32, u/i64, etc.
+ scope
+ entity.name.type.numeric.rust
+ settings
+
+ foreground
+ #8839ef
+ fontStyle
+
+
+
+
+ name
+ Rust generic
+ scope
+ meta.generic.rust
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ Rust impl
+ scope
+ entity.name.impl.rust
+ settings
+
+ foreground
+ #df8e1d
+ fontStyle
+ italic
+
+
+
+ name
+ Rust module
+ scope
+ entity.name.module.rust
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ Rust trait
+ scope
+ entity.name.trait.rust
+ settings
+
+ foreground
+ #df8e1d
+ fontStyle
+ italic
+
+
+
+ name
+ Rust struct
+ scope
+ storage.type.source.rust
+ settings
+
+ foreground
+ #df8e1d
+
+
+
+ name
+ Rust union
+ scope
+ entity.name.union.rust
+ settings
+
+ foreground
+ #df8e1d
+
+
+
+ name
+ Rust enum member
+ scope
+ meta.enum.rust storage.type.source.rust
+ settings
+
+ foreground
+ #179299
+
+
+
+ name
+ Rust macro
+ scope
+ support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust
+ settings
+
+ foreground
+ #1e66f5
+ fontStyle
+ italic
+
+
+
+ name
+ Rust lifetime
+ scope
+ storage.modifier.lifetime.rust, entity.name.type.lifetime
+ settings
+
+ foreground
+ #1e66f5
+ fontStyle
+ italic
+
+
+
+ name
+ Rust string formatting
+ scope
+ string.quoted.double.rust constant.other.placeholder.rust
+ settings
+
+ foreground
+ #ea76cb
+
+
+
+ name
+ Rust return type generic
+ scope
+ meta.function.return-type.rust meta.generic.rust storage.type.rust
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ Rust functions
+ scope
+ meta.function.call.rust
+ settings
+
+ foreground
+ #1e66f5
+
+
+
+ name
+ Rust angle brackets
+ scope
+ punctuation.brackets.angle.rust
+ settings
+
+ foreground
+ #04a5e5
+
+
+
+ name
+ Rust constants
+ scope
+ constant.other.caps.rust
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ name
+ Rust function parameters
+ scope
+ meta.function.definition.rust variable.other.rust
+ settings
+
+ foreground
+ #e64553
+
+
+
+ name
+ Rust closure variables
+ scope
+ meta.function.call.rust variable.other.rust
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ name
+ Rust self
+ scope
+ variable.language.self.rust
+ settings
+
+ foreground
+ #d20f39
+
+
+
+ name
+ Rust metavariable names
+ scope
+ variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust
+ settings
+
+ foreground
+ #ea76cb
+
+
+
+ name
+ Shell shebang
+ scope
+ comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell
+ settings
+
+ foreground
+ #ea76cb
+ fontStyle
+ italic
+
+
+
+ name
+ Shell shebang command
+ scope
+ comment.line.shebang constant.language
+ settings
+
+ foreground
+ #179299
+ fontStyle
+ italic
+
+
+
+ name
+ Shell interpolated command
+ scope
+ 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
+ settings
+
+ foreground
+ #d20f39
+
+
+
+ name
+ Shell interpolated command variable
+ scope
+ meta.string meta.interpolation.parameter.shell variable.other.readwrite
+ settings
+
+ foreground
+ #fe640b
+ fontStyle
+ italic
+
+
+
+ scope
+ source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell
+ settings
+
+ foreground
+ #179299
+
+
+
+ name
+ Shell EOF
+ scope
+ entity.name.tag.heredoc.shell
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ name
+ Shell quoted variable
+ scope
+ string.quoted.double.shell variable.other.normal.shell
+ settings
+
+ foreground
+ #4c4f69
+
+
+
+ scope
+ markup.heading.typst
+ settings
+
+ foreground
+ #d20f39
+
+
+
+ name
+ JSON Keys
+ scope
+ source.json meta.mapping.key string
+ settings
+
+ foreground
+ #1e66f5
+
+
+
+ name
+ JSON key surrounding quotes
+ scope
+ source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end
+ settings
+
+ foreground
+ #7c7f93
+
+
+
+ scope
+ markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man
+ settings
+
+ foreground
+ #8839ef
+
+
+
+ scope
+ markup.heading.commands.man
+ settings
+
+ foreground
+ #1e66f5
+
+
+
+ scope
+ markup.heading.env.man
+ settings
+
+ foreground
+ #ea76cb
+
+
+
+ name
+ Man page options
+ scope
+ entity.name
+ settings
+
+ foreground
+ #179299
+
+
+
+ scope
+ markup.heading.1.markdown
+ settings
+
+ foreground
+ #d20f39
+
+
+
+ scope
+ markup.heading.2.markdown
+ settings
+
+ foreground
+ #fe640b
+
+
+
+ scope
+ markup.heading.markdown
+ settings
+
+ foreground
+ #df8e1d
+
+
+
+
+
\ No newline at end of file
diff --git a/mac/.config/yazi/flavors/catppuccin-macchiato.yazi/LICENSE b/mac/.config/yazi/flavors/catppuccin-macchiato.yazi/LICENSE
new file mode 100644
index 0000000..fb5b1d6
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/catppuccin-macchiato.yazi/LICENSE-tmtheme b/mac/.config/yazi/flavors/catppuccin-macchiato.yazi/LICENSE-tmtheme
new file mode 100644
index 0000000..006383b
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/catppuccin-macchiato.yazi/README.md b/mac/.config/yazi/flavors/catppuccin-macchiato.yazi/README.md
new file mode 100644
index 0000000..752908c
--- /dev/null
+++ b/mac/.config/yazi/flavors/catppuccin-macchiato.yazi/README.md
@@ -0,0 +1,36 @@
+
+

+
+
+
+ Catppuccin Macchiato Flavor for Yazi
+
+
+## 👀 Preview
+
+
+
+## 🎨 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/catppuccin-macchiato.yazi/flavor.toml b/mac/.config/yazi/flavors/catppuccin-macchiato.yazi/flavor.toml
new file mode 100644
index 0000000..9d3042f
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/catppuccin-macchiato.yazi/preview.png b/mac/.config/yazi/flavors/catppuccin-macchiato.yazi/preview.png
new file mode 100644
index 0000000..a200463
Binary files /dev/null and b/mac/.config/yazi/flavors/catppuccin-macchiato.yazi/preview.png differ
diff --git a/mac/.config/yazi/flavors/catppuccin-macchiato.yazi/tmtheme.xml b/mac/.config/yazi/flavors/catppuccin-macchiato.yazi/tmtheme.xml
new file mode 100644
index 0000000..8f21312
--- /dev/null
+++ b/mac/.config/yazi/flavors/catppuccin-macchiato.yazi/tmtheme.xml
@@ -0,0 +1,2112 @@
+
+
+
+
+ name
+ Catppuccin Macchiato
+ semanticClass
+ theme.dark.catppuccin-macchiato
+ uuid
+ 02b2bdf3-9eb7-4396-bf04-f17f1468f99f
+ author
+ Catppuccin Org
+ colorSpaceName
+ sRGB
+ settings
+
+
+ settings
+
+ background
+ #24273a
+ foreground
+ #cad3f5
+ caret
+ #f4dbd6
+ lineHighlight
+ #363a4f
+ misspelling
+ #ed8796
+ accent
+ #c6a0f6
+ selection
+ #939ab740
+ activeGuide
+ #494d64
+ findHighlight
+ #455c6d
+ gutterForeground
+ #8087a2
+
+
+
+ name
+ Basic text & variable names (incl. leading punctuation)
+ scope
+ text, source, variable.other.readwrite, punctuation.definition.variable
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ Parentheses, Brackets, Braces
+ scope
+ punctuation
+ settings
+
+ foreground
+ #939ab7
+ fontStyle
+
+
+
+
+ name
+ Comments
+ scope
+ comment, punctuation.definition.comment
+ settings
+
+ foreground
+ #939ab7
+ fontStyle
+ italic
+
+
+
+ scope
+ string, punctuation.definition.string
+ settings
+
+ foreground
+ #a6da95
+
+
+
+ scope
+ constant.character.escape
+ settings
+
+ foreground
+ #f5bde6
+
+
+
+ name
+ Booleans, constants, numbers
+ scope
+ 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
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ scope
+ keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword
+ settings
+
+ foreground
+ #c6a0f6
+ fontStyle
+
+
+
+
+ scope
+ entity.name.tag.documentation
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ name
+ Punctuation
+ scope
+ keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ scope
+ entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function
+ settings
+
+ foreground
+ #8aadf4
+ fontStyle
+ italic
+
+
+
+ name
+ Classes
+ scope
+ entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct
+ settings
+
+ foreground
+ #eed49f
+ fontStyle
+ italic
+
+
+
+ name
+ Enum
+ scope
+ entity.name.enum
+ settings
+
+ foreground
+ #eed49f
+ fontStyle
+ italic
+
+
+
+ name
+ Enum member
+ scope
+ meta.enum variable.other.readwrite, variable.other.enummember
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ name
+ Object properties
+ scope
+ meta.property.object
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ name
+ Types
+ scope
+ meta.type, meta.type-alias, support.type, entity.name.type
+ settings
+
+ foreground
+ #eed49f
+ fontStyle
+ italic
+
+
+
+ name
+ Decorators
+ scope
+ meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ scope
+ variable.parameter, meta.function.parameters
+ settings
+
+ foreground
+ #ee99a0
+ fontStyle
+ italic
+
+
+
+ name
+ Built-ins
+ scope
+ constant.language, support.function.builtin
+ settings
+
+ foreground
+ #ed8796
+
+
+
+ scope
+ entity.other.attribute-name.documentation
+ settings
+
+ foreground
+ #ed8796
+
+
+
+ name
+ Preprocessor directives
+ scope
+ keyword.control.directive, punctuation.definition.directive
+ settings
+
+ foreground
+ #eed49f
+
+
+
+ name
+ Type parameters
+ scope
+ punctuation.definition.typeparameters
+ settings
+
+ foreground
+ #91d7e3
+
+
+
+ name
+ Namespaces
+ scope
+ entity.name.namespace
+ settings
+
+ foreground
+ #eed49f
+
+
+
+ name
+ Property names (left hand assignments in json/yaml/css)
+ scope
+ support.type.property-name.css
+ settings
+
+ foreground
+ #8aadf4
+ fontStyle
+
+
+
+
+ name
+ This/Self keyword
+ scope
+ variable.language.this, variable.language.this punctuation.definition.variable
+ settings
+
+ foreground
+ #ed8796
+
+
+
+ name
+ Object properties
+ scope
+ variable.object.property
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ String template interpolation
+ scope
+ string.template variable, string variable
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ `new` as bold
+ scope
+ keyword.operator.new
+ settings
+
+ fontStyle
+ bold
+
+
+
+ name
+ C++ extern keyword
+ scope
+ storage.modifier.specifier.extern.cpp
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ name
+ C++ scope resolution
+ scope
+ 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
+ settings
+
+ foreground
+ #eed49f
+
+
+
+ name
+ C++ doc keywords
+ scope
+ storage.type.class.doxygen
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ C++ operators
+ scope
+ storage.modifier.reference.cpp
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ name
+ C# Interpolated Strings
+ scope
+ meta.interpolation.cs
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ C# xml-style docs
+ scope
+ comment.block.documentation.cs
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ Classes, reflecting the className color in JSX
+ scope
+ source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css
+ settings
+
+ foreground
+ #eed49f
+
+
+
+ name
+ Operators
+ scope
+ punctuation.separator.operator.css
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ name
+ Pseudo classes
+ scope
+ source.css entity.other.attribute-name.pseudo-class
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ scope
+ source.css constant.other.unicode-range
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ scope
+ source.css variable.parameter.url
+ settings
+
+ foreground
+ #a6da95
+ fontStyle
+
+
+
+
+ name
+ CSS vendored property names
+ scope
+ support.type.vendored.property-name
+ settings
+
+ foreground
+ #91d7e3
+
+
+
+ name
+ Less/SCSS right-hand variables (@/$-prefixed)
+ scope
+ 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
+ settings
+
+ foreground
+ #ee99a0
+
+
+
+ name
+ CSS variables (--prefixed)
+ scope
+ source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less
+ settings
+
+ foreground
+ #8aadf4
+
+
+
+ name
+ CSS Percentage values, styled the same as numbers
+ scope
+ keyword.other.unit.percentage.css
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ CSS Attribute selectors, styled the same as strings
+ scope
+ source.css meta.attribute-selector
+ settings
+
+ foreground
+ #a6da95
+
+
+
+ name
+ JSON/YAML keys, other left-hand assignments
+ scope
+ 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
+ settings
+
+ foreground
+ #8aadf4
+ fontStyle
+
+
+
+
+ name
+ JSON/YAML constants
+ scope
+ constant.language.json, constant.language.yaml
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ YAML anchors
+ scope
+ entity.name.type.anchor.yaml, variable.other.alias.yaml
+ settings
+
+ foreground
+ #eed49f
+ fontStyle
+
+
+
+
+ name
+ TOML tables / ini groups
+ scope
+ support.type.property-name.table, entity.name.section.group-title.ini
+ settings
+
+ foreground
+ #eed49f
+
+
+
+ name
+ TOML dates
+ scope
+ constant.other.time.datetime.offset.toml
+ settings
+
+ foreground
+ #f5bde6
+
+
+
+ name
+ YAML anchor puctuation
+ scope
+ punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml
+ settings
+
+ foreground
+ #f5bde6
+
+
+
+ name
+ YAML triple dashes
+ scope
+ entity.other.document.begin.yaml
+ settings
+
+ foreground
+ #f5bde6
+
+
+
+ name
+ Markup Diff
+ scope
+ markup.changed.diff
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ Diff
+ scope
+ meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff
+ settings
+
+ foreground
+ #8aadf4
+
+
+
+ name
+ Diff Inserted
+ scope
+ markup.inserted.diff
+ settings
+
+ foreground
+ #a6da95
+
+
+
+ name
+ Diff Deleted
+ scope
+ markup.deleted.diff
+ settings
+
+ foreground
+ #ed8796
+
+
+
+ name
+ dotenv left-hand side assignments
+ scope
+ variable.other.env
+ settings
+
+ foreground
+ #8aadf4
+
+
+
+ name
+ dotenv reference to existing env variable
+ scope
+ string.quoted variable.other.env
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ GDScript functions
+ scope
+ support.function.builtin.gdscript
+ settings
+
+ foreground
+ #8aadf4
+
+
+
+ name
+ GDScript constants
+ scope
+ constant.language.gdscript
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ Comment keywords
+ scope
+ comment meta.annotation.go
+ settings
+
+ foreground
+ #ee99a0
+
+
+
+ name
+ go:embed, go:build, etc.
+ scope
+ comment meta.annotation.parameters.go
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ Go constants (nil, true, false)
+ scope
+ constant.language.go
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ GraphQL variables
+ scope
+ variable.graphql
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ GraphQL aliases
+ scope
+ string.unquoted.alias.graphql
+ settings
+
+ foreground
+ #f0c6c6
+
+
+
+ name
+ GraphQL enum members
+ scope
+ constant.character.enum.graphql
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ name
+ GraphQL field in types
+ scope
+ meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql
+ settings
+
+ foreground
+ #f0c6c6
+
+
+
+ name
+ HTML/XML DOCTYPE as keyword
+ scope
+ keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ name
+ HTML/XML-like <tags/>
+ scope
+ entity.name.tag
+ settings
+
+ foreground
+ #8aadf4
+ fontStyle
+
+
+
+
+ name
+ Special characters like &
+ scope
+ 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
+ settings
+
+ foreground
+ #ed8796
+
+
+
+ name
+ HTML/XML tag attribute values
+ scope
+ entity.other.attribute-name
+ settings
+
+ foreground
+ #eed49f
+
+
+
+ name
+ Components
+ scope
+ support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue
+ settings
+
+ foreground
+ #f5bde6
+ fontStyle
+
+
+
+
+ name
+ Annotations
+ scope
+ punctuation.definition.annotation, storage.type.annotation
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ Java enums
+ scope
+ constant.other.enum.java
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ name
+ Java imports
+ scope
+ storage.modifier.import.java
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ Javadoc
+ scope
+ comment.block.javadoc.java keyword.other.documentation.javadoc.java
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Exported Variable
+ scope
+ meta.export variable.other.readwrite.js
+ settings
+
+ foreground
+ #ee99a0
+
+
+
+ name
+ JS/TS constants & properties
+ scope
+ variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ JSDoc; these are mainly params, so styled as such
+ scope
+ variable.other.jsdoc, comment.block.documentation variable.other
+ settings
+
+ foreground
+ #ee99a0
+ fontStyle
+
+
+
+
+ name
+ JSDoc keywords
+ scope
+ storage.type.class.jsdoc
+ settings
+
+ fontStyle
+
+
+
+
+ scope
+ support.type.object.console.js
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ Node constants as keywords (module, etc.)
+ scope
+ support.constant.node, support.type.object.module.js
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ name
+ implements as keyword
+ scope
+ storage.modifier.implements
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ name
+ Builtin types
+ scope
+ constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ scope
+ variable.parameter.generic
+ settings
+
+ foreground
+ #eed49f
+
+
+
+ name
+ Arrow functions
+ scope
+ keyword.declaration.function.arrow.js, storage.type.function.arrow.ts
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ name
+ Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)
+ scope
+ punctuation.decorator.ts
+ settings
+
+ foreground
+ #8aadf4
+ fontStyle
+ italic
+
+
+
+ name
+ Extra JS/TS keywords
+ scope
+ 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
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ name
+ Julia macros
+ scope
+ support.function.macro.julia
+ settings
+
+ foreground
+ #8bd5ca
+ fontStyle
+ italic
+
+
+
+ name
+ Julia language constants (true, false)
+ scope
+ constant.language.julia
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ Julia other constants (these seem to be arguments inside arrays)
+ scope
+ constant.other.symbol.julia
+ settings
+
+ foreground
+ #ee99a0
+
+
+
+ name
+ LaTeX preamble
+ scope
+ text.tex keyword.control.preamble
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ name
+ LaTeX be functions
+ scope
+ text.tex support.function.be
+ settings
+
+ foreground
+ #91d7e3
+
+
+
+ name
+ LaTeX math
+ scope
+ constant.other.general.math.tex
+ settings
+
+ foreground
+ #f0c6c6
+
+
+
+ name
+ Liquid Builtin Objects & User Defined Variables
+ scope
+ variable.language.liquid
+ settings
+
+ foreground
+ #f5bde6
+
+
+
+ name
+ Lua docstring keywords
+ scope
+ comment.line.double-dash.documentation.lua storage.type.annotation.lua
+ settings
+
+ foreground
+ #c6a0f6
+ fontStyle
+
+
+
+
+ name
+ Lua docstring variables
+ scope
+ comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #ed8796
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #eed49f
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #a6da95
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #7dc4e4
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #b7bdf8
+
+
+
+ scope
+ markup.bold
+ settings
+
+ foreground
+ #ed8796
+ fontStyle
+ bold
+
+
+
+ scope
+ markup.italic
+ settings
+
+ foreground
+ #ed8796
+ fontStyle
+ italic
+
+
+
+ scope
+ markup.strikethrough
+ settings
+
+ foreground
+ #a5adcb
+ fontStyle
+ strikethrough
+
+
+
+ name
+ Markdown auto links
+ scope
+ punctuation.definition.link, markup.underline.link
+ settings
+
+ foreground
+ #8aadf4
+
+
+
+ name
+ Markdown links
+ scope
+ 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
+ settings
+
+ foreground
+ #b7bdf8
+
+
+
+ name
+ Markdown code spans
+ scope
+ 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
+ settings
+
+ foreground
+ #a6da95
+
+
+
+ name
+ Markdown triple backtick language identifier
+ scope
+ fenced_code.block.language
+ settings
+
+ foreground
+ #91d7e3
+
+
+
+ name
+ Markdown triple backticks
+ scope
+ markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc
+ settings
+
+ foreground
+ #939ab7
+
+
+
+ name
+ Markdown quotes
+ scope
+ markup.quote, punctuation.definition.quote.begin
+ settings
+
+ foreground
+ #f5bde6
+
+
+
+ name
+ Markdown separators
+ scope
+ meta.separator.markdown
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ name
+ Markdown list bullets
+ scope
+ punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ name
+ Quarto headings
+ scope
+ markup.heading.quarto
+ settings
+
+ fontStyle
+ bold
+
+
+
+ name
+ Nix attribute names
+ scope
+ entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix
+ settings
+
+ foreground
+ #8aadf4
+
+
+
+ name
+ Nix parameter names
+ scope
+ variable.parameter.name.nix
+ settings
+
+ foreground
+ #cad3f5
+ fontStyle
+
+
+
+
+ name
+ Nix interpolated parameter names
+ scope
+ meta.embedded variable.parameter.name.nix
+ settings
+
+ foreground
+ #b7bdf8
+ fontStyle
+
+
+
+
+ name
+ Nix paths
+ scope
+ string.unquoted.path.nix
+ settings
+
+ foreground
+ #f5bde6
+ fontStyle
+
+
+
+
+ name
+ PHP Attributes
+ scope
+ support.attribute.builtin, meta.attribute.php
+ settings
+
+ foreground
+ #eed49f
+
+
+
+ name
+ PHP Parameters (needed for the leading dollar sign)
+ scope
+ meta.function.parameters.php punctuation.definition.variable.php
+ settings
+
+ foreground
+ #ee99a0
+
+
+
+ name
+ PHP Constants (null, __FILE__, etc.)
+ scope
+ constant.language.php
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ name
+ PHP functions
+ scope
+ text.html.php support.function
+ settings
+
+ foreground
+ #91d7e3
+
+
+
+ name
+ PHPdoc keywords
+ scope
+ keyword.other.phpdoc.php
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Python argument functions reset to text, otherwise they inherit blue from function-call
+ scope
+ support.variable.magic.python, meta.function-call.arguments.python
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ Python double underscore functions
+ scope
+ support.function.magic.python
+ settings
+
+ foreground
+ #91d7e3
+ fontStyle
+ italic
+
+
+
+ name
+ Python `self` keyword
+ scope
+ variable.parameter.function.language.special.self.python, variable.language.special.self.python
+ settings
+
+ foreground
+ #ed8796
+ fontStyle
+ italic
+
+
+
+ name
+ python keyword flow/logical (for ... in)
+ scope
+ keyword.control.flow.python, keyword.operator.logical.python
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ name
+ python storage type
+ scope
+ storage.type.function.python
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ name
+ python function support
+ scope
+ support.token.decorator.python, meta.function.decorator.identifier.python
+ settings
+
+ foreground
+ #91d7e3
+
+
+
+ name
+ python function calls
+ scope
+ meta.function-call.python
+ settings
+
+ foreground
+ #8aadf4
+
+
+
+ name
+ python function decorators
+ scope
+ entity.name.function.decorator.python, punctuation.definition.decorator.python
+ settings
+
+ foreground
+ #f5a97f
+ fontStyle
+ italic
+
+
+
+ name
+ python placeholder reset to normal string
+ scope
+ constant.character.format.placeholder.other.python
+ settings
+
+ foreground
+ #f5bde6
+
+
+
+ name
+ Python exception & builtins such as exit()
+ scope
+ support.type.exception.python, support.function.builtin.python
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ entity.name.type
+ scope
+ support.type.python
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ name
+ python constants (True/False)
+ scope
+ constant.language.python
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ Arguments accessed later in the function body
+ scope
+ meta.indexed-name.python, meta.item-access.python
+ settings
+
+ foreground
+ #ee99a0
+ fontStyle
+ italic
+
+
+
+ name
+ Python f-strings/binary/unicode storage types
+ scope
+ storage.type.string.python
+ settings
+
+ foreground
+ #a6da95
+ fontStyle
+ italic
+
+
+
+ name
+ Python type hints
+ scope
+ meta.function.parameters.python
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Regex string begin/end in JS/TS
+ scope
+ string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end
+ settings
+
+ foreground
+ #f5bde6
+
+
+
+ name
+ Regex anchors (^, $)
+ scope
+ keyword.control.anchor.regexp
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ name
+ Regex regular string match
+ scope
+ string.regexp.ts
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ Regex group parenthesis & backreference (\1, \2, \3, ...)
+ scope
+ punctuation.definition.group.regexp, keyword.other.back-reference.regexp
+ settings
+
+ foreground
+ #a6da95
+
+
+
+ name
+ Regex character class []
+ scope
+ punctuation.definition.character-class.regexp
+ settings
+
+ foreground
+ #eed49f
+
+
+
+ name
+ Regex character classes (\d, \w, \s)
+ scope
+ constant.other.character-class.regexp
+ settings
+
+ foreground
+ #f5bde6
+
+
+
+ name
+ Regex range
+ scope
+ constant.other.character-class.range.regexp
+ settings
+
+ foreground
+ #f4dbd6
+
+
+
+ name
+ Regex quantifier
+ scope
+ keyword.operator.quantifier.regexp
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ name
+ Regex constant/numeric
+ scope
+ constant.character.numeric.regexp
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds
+ scope
+ punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp
+ settings
+
+ foreground
+ #8aadf4
+
+
+
+ name
+ Rust attribute
+ scope
+ meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust
+ settings
+
+ foreground
+ #eed49f
+ fontStyle
+ italic
+
+
+
+ name
+ Rust attribute strings
+ scope
+ meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Rust keyword
+ scope
+ 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
+ settings
+
+ foreground
+ #c6a0f6
+ fontStyle
+
+
+
+
+ name
+ Rust u/i32, u/i64, etc.
+ scope
+ entity.name.type.numeric.rust
+ settings
+
+ foreground
+ #c6a0f6
+ fontStyle
+
+
+
+
+ name
+ Rust generic
+ scope
+ meta.generic.rust
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ Rust impl
+ scope
+ entity.name.impl.rust
+ settings
+
+ foreground
+ #eed49f
+ fontStyle
+ italic
+
+
+
+ name
+ Rust module
+ scope
+ entity.name.module.rust
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ Rust trait
+ scope
+ entity.name.trait.rust
+ settings
+
+ foreground
+ #eed49f
+ fontStyle
+ italic
+
+
+
+ name
+ Rust struct
+ scope
+ storage.type.source.rust
+ settings
+
+ foreground
+ #eed49f
+
+
+
+ name
+ Rust union
+ scope
+ entity.name.union.rust
+ settings
+
+ foreground
+ #eed49f
+
+
+
+ name
+ Rust enum member
+ scope
+ meta.enum.rust storage.type.source.rust
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ name
+ Rust macro
+ scope
+ support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust
+ settings
+
+ foreground
+ #8aadf4
+ fontStyle
+ italic
+
+
+
+ name
+ Rust lifetime
+ scope
+ storage.modifier.lifetime.rust, entity.name.type.lifetime
+ settings
+
+ foreground
+ #8aadf4
+ fontStyle
+ italic
+
+
+
+ name
+ Rust string formatting
+ scope
+ string.quoted.double.rust constant.other.placeholder.rust
+ settings
+
+ foreground
+ #f5bde6
+
+
+
+ name
+ Rust return type generic
+ scope
+ meta.function.return-type.rust meta.generic.rust storage.type.rust
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ Rust functions
+ scope
+ meta.function.call.rust
+ settings
+
+ foreground
+ #8aadf4
+
+
+
+ name
+ Rust angle brackets
+ scope
+ punctuation.brackets.angle.rust
+ settings
+
+ foreground
+ #91d7e3
+
+
+
+ name
+ Rust constants
+ scope
+ constant.other.caps.rust
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ name
+ Rust function parameters
+ scope
+ meta.function.definition.rust variable.other.rust
+ settings
+
+ foreground
+ #ee99a0
+
+
+
+ name
+ Rust closure variables
+ scope
+ meta.function.call.rust variable.other.rust
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ name
+ Rust self
+ scope
+ variable.language.self.rust
+ settings
+
+ foreground
+ #ed8796
+
+
+
+ name
+ Rust metavariable names
+ scope
+ variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust
+ settings
+
+ foreground
+ #f5bde6
+
+
+
+ name
+ Shell shebang
+ scope
+ comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell
+ settings
+
+ foreground
+ #f5bde6
+ fontStyle
+ italic
+
+
+
+ name
+ Shell shebang command
+ scope
+ comment.line.shebang constant.language
+ settings
+
+ foreground
+ #8bd5ca
+ fontStyle
+ italic
+
+
+
+ name
+ Shell interpolated command
+ scope
+ 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
+ settings
+
+ foreground
+ #ed8796
+
+
+
+ name
+ Shell interpolated command variable
+ scope
+ meta.string meta.interpolation.parameter.shell variable.other.readwrite
+ settings
+
+ foreground
+ #f5a97f
+ fontStyle
+ italic
+
+
+
+ scope
+ source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ name
+ Shell EOF
+ scope
+ entity.name.tag.heredoc.shell
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ name
+ Shell quoted variable
+ scope
+ string.quoted.double.shell variable.other.normal.shell
+ settings
+
+ foreground
+ #cad3f5
+
+
+
+ scope
+ markup.heading.typst
+ settings
+
+ foreground
+ #ed8796
+
+
+
+ name
+ JSON Keys
+ scope
+ source.json meta.mapping.key string
+ settings
+
+ foreground
+ #8aadf4
+
+
+
+ name
+ JSON key surrounding quotes
+ scope
+ source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end
+ settings
+
+ foreground
+ #939ab7
+
+
+
+ scope
+ markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man
+ settings
+
+ foreground
+ #c6a0f6
+
+
+
+ scope
+ markup.heading.commands.man
+ settings
+
+ foreground
+ #8aadf4
+
+
+
+ scope
+ markup.heading.env.man
+ settings
+
+ foreground
+ #f5bde6
+
+
+
+ name
+ Man page options
+ scope
+ entity.name
+ settings
+
+ foreground
+ #8bd5ca
+
+
+
+ scope
+ markup.heading.1.markdown
+ settings
+
+ foreground
+ #ed8796
+
+
+
+ scope
+ markup.heading.2.markdown
+ settings
+
+ foreground
+ #f5a97f
+
+
+
+ scope
+ markup.heading.markdown
+ settings
+
+ foreground
+ #eed49f
+
+
+
+
+
\ No newline at end of file
diff --git a/mac/.config/yazi/flavors/catppuccin-mocha.yazi/LICENSE b/mac/.config/yazi/flavors/catppuccin-mocha.yazi/LICENSE
new file mode 100644
index 0000000..fb5b1d6
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/catppuccin-mocha.yazi/LICENSE-tmtheme b/mac/.config/yazi/flavors/catppuccin-mocha.yazi/LICENSE-tmtheme
new file mode 100644
index 0000000..006383b
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/catppuccin-mocha.yazi/README.md b/mac/.config/yazi/flavors/catppuccin-mocha.yazi/README.md
new file mode 100644
index 0000000..20840dc
--- /dev/null
+++ b/mac/.config/yazi/flavors/catppuccin-mocha.yazi/README.md
@@ -0,0 +1,36 @@
+
+

+
+
+
+ Catppuccin Mocha Flavor for Yazi
+
+
+## 👀 Preview
+
+
+
+## 🎨 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/catppuccin-mocha.yazi/flavor.toml b/mac/.config/yazi/flavors/catppuccin-mocha.yazi/flavor.toml
new file mode 100644
index 0000000..39a3ef5
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/catppuccin-mocha.yazi/preview.png b/mac/.config/yazi/flavors/catppuccin-mocha.yazi/preview.png
new file mode 100644
index 0000000..a684ec8
Binary files /dev/null and b/mac/.config/yazi/flavors/catppuccin-mocha.yazi/preview.png differ
diff --git a/mac/.config/yazi/flavors/catppuccin-mocha.yazi/tmtheme.xml b/mac/.config/yazi/flavors/catppuccin-mocha.yazi/tmtheme.xml
new file mode 100644
index 0000000..c7781ce
--- /dev/null
+++ b/mac/.config/yazi/flavors/catppuccin-mocha.yazi/tmtheme.xml
@@ -0,0 +1,2112 @@
+
+
+
+
+ name
+ Catppuccin Mocha
+ semanticClass
+ theme.dark.catppuccin-mocha
+ uuid
+ 627ce890-fabb-4d39-9819-7be71f4bdca7
+ author
+ Catppuccin Org
+ colorSpaceName
+ sRGB
+ settings
+
+
+ settings
+
+ background
+ #1e1e2e
+ foreground
+ #cdd6f4
+ caret
+ #f5e0dc
+ lineHighlight
+ #313244
+ misspelling
+ #f38ba8
+ accent
+ #cba6f7
+ selection
+ #9399b240
+ activeGuide
+ #45475a
+ findHighlight
+ #3e5767
+ gutterForeground
+ #7f849c
+
+
+
+ name
+ Basic text & variable names (incl. leading punctuation)
+ scope
+ text, source, variable.other.readwrite, punctuation.definition.variable
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Parentheses, Brackets, Braces
+ scope
+ punctuation
+ settings
+
+ foreground
+ #9399b2
+ fontStyle
+
+
+
+
+ name
+ Comments
+ scope
+ comment, punctuation.definition.comment
+ settings
+
+ foreground
+ #9399b2
+ fontStyle
+ italic
+
+
+
+ scope
+ string, punctuation.definition.string
+ settings
+
+ foreground
+ #a6e3a1
+
+
+
+ scope
+ constant.character.escape
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Booleans, constants, numbers
+ scope
+ 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
+ settings
+
+ foreground
+ #fab387
+
+
+
+ scope
+ keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword
+ settings
+
+ foreground
+ #cba6f7
+ fontStyle
+
+
+
+
+ scope
+ entity.name.tag.documentation
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ Punctuation
+ scope
+ keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ scope
+ entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+ italic
+
+
+
+ name
+ Classes
+ scope
+ entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+ italic
+
+
+
+ name
+ Enum
+ scope
+ entity.name.enum
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+ italic
+
+
+
+ name
+ Enum member
+ scope
+ meta.enum variable.other.readwrite, variable.other.enummember
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Object properties
+ scope
+ meta.property.object
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Types
+ scope
+ meta.type, meta.type-alias, support.type, entity.name.type
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+ italic
+
+
+
+ name
+ Decorators
+ scope
+ meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator
+ settings
+
+ foreground
+ #fab387
+
+
+
+ scope
+ variable.parameter, meta.function.parameters
+ settings
+
+ foreground
+ #eba0ac
+ fontStyle
+ italic
+
+
+
+ name
+ Built-ins
+ scope
+ constant.language, support.function.builtin
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ scope
+ entity.other.attribute-name.documentation
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ name
+ Preprocessor directives
+ scope
+ keyword.control.directive, punctuation.definition.directive
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Type parameters
+ scope
+ punctuation.definition.typeparameters
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ Namespaces
+ scope
+ entity.name.namespace
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Property names (left hand assignments in json/yaml/css)
+ scope
+ support.type.property-name.css
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+
+
+
+
+ name
+ This/Self keyword
+ scope
+ variable.language.this, variable.language.this punctuation.definition.variable
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ name
+ Object properties
+ scope
+ variable.object.property
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ String template interpolation
+ scope
+ string.template variable, string variable
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ `new` as bold
+ scope
+ keyword.operator.new
+ settings
+
+ fontStyle
+ bold
+
+
+
+ name
+ C++ extern keyword
+ scope
+ storage.modifier.specifier.extern.cpp
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ C++ scope resolution
+ scope
+ 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
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ C++ doc keywords
+ scope
+ storage.type.class.doxygen
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ C++ operators
+ scope
+ storage.modifier.reference.cpp
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ C# Interpolated Strings
+ scope
+ meta.interpolation.cs
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ C# xml-style docs
+ scope
+ comment.block.documentation.cs
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Classes, reflecting the className color in JSX
+ scope
+ source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Operators
+ scope
+ punctuation.separator.operator.css
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Pseudo classes
+ scope
+ source.css entity.other.attribute-name.pseudo-class
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ scope
+ source.css constant.other.unicode-range
+ settings
+
+ foreground
+ #fab387
+
+
+
+ scope
+ source.css variable.parameter.url
+ settings
+
+ foreground
+ #a6e3a1
+ fontStyle
+
+
+
+
+ name
+ CSS vendored property names
+ scope
+ support.type.vendored.property-name
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ Less/SCSS right-hand variables (@/$-prefixed)
+ scope
+ 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
+ settings
+
+ foreground
+ #eba0ac
+
+
+
+ name
+ CSS variables (--prefixed)
+ scope
+ source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ CSS Percentage values, styled the same as numbers
+ scope
+ keyword.other.unit.percentage.css
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ CSS Attribute selectors, styled the same as strings
+ scope
+ source.css meta.attribute-selector
+ settings
+
+ foreground
+ #a6e3a1
+
+
+
+ name
+ JSON/YAML keys, other left-hand assignments
+ scope
+ 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
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+
+
+
+
+ name
+ JSON/YAML constants
+ scope
+ constant.language.json, constant.language.yaml
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ YAML anchors
+ scope
+ entity.name.type.anchor.yaml, variable.other.alias.yaml
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+
+
+
+
+ name
+ TOML tables / ini groups
+ scope
+ support.type.property-name.table, entity.name.section.group-title.ini
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ TOML dates
+ scope
+ constant.other.time.datetime.offset.toml
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ YAML anchor puctuation
+ scope
+ punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ YAML triple dashes
+ scope
+ entity.other.document.begin.yaml
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Markup Diff
+ scope
+ markup.changed.diff
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Diff
+ scope
+ meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ Diff Inserted
+ scope
+ markup.inserted.diff
+ settings
+
+ foreground
+ #a6e3a1
+
+
+
+ name
+ Diff Deleted
+ scope
+ markup.deleted.diff
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ name
+ dotenv left-hand side assignments
+ scope
+ variable.other.env
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ dotenv reference to existing env variable
+ scope
+ string.quoted variable.other.env
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ GDScript functions
+ scope
+ support.function.builtin.gdscript
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ GDScript constants
+ scope
+ constant.language.gdscript
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Comment keywords
+ scope
+ comment meta.annotation.go
+ settings
+
+ foreground
+ #eba0ac
+
+
+
+ name
+ go:embed, go:build, etc.
+ scope
+ comment meta.annotation.parameters.go
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Go constants (nil, true, false)
+ scope
+ constant.language.go
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ GraphQL variables
+ scope
+ variable.graphql
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ GraphQL aliases
+ scope
+ string.unquoted.alias.graphql
+ settings
+
+ foreground
+ #f2cdcd
+
+
+
+ name
+ GraphQL enum members
+ scope
+ constant.character.enum.graphql
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ GraphQL field in types
+ scope
+ meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql
+ settings
+
+ foreground
+ #f2cdcd
+
+
+
+ name
+ HTML/XML DOCTYPE as keyword
+ scope
+ keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ HTML/XML-like <tags/>
+ scope
+ entity.name.tag
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+
+
+
+
+ name
+ Special characters like &
+ scope
+ 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
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ name
+ HTML/XML tag attribute values
+ scope
+ entity.other.attribute-name
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Components
+ scope
+ support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue
+ settings
+
+ foreground
+ #f5c2e7
+ fontStyle
+
+
+
+
+ name
+ Annotations
+ scope
+ punctuation.definition.annotation, storage.type.annotation
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Java enums
+ scope
+ constant.other.enum.java
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Java imports
+ scope
+ storage.modifier.import.java
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Javadoc
+ scope
+ comment.block.javadoc.java keyword.other.documentation.javadoc.java
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Exported Variable
+ scope
+ meta.export variable.other.readwrite.js
+ settings
+
+ foreground
+ #eba0ac
+
+
+
+ name
+ JS/TS constants & properties
+ scope
+ variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ JSDoc; these are mainly params, so styled as such
+ scope
+ variable.other.jsdoc, comment.block.documentation variable.other
+ settings
+
+ foreground
+ #eba0ac
+ fontStyle
+
+
+
+
+ name
+ JSDoc keywords
+ scope
+ storage.type.class.jsdoc
+ settings
+
+ fontStyle
+
+
+
+
+ scope
+ support.type.object.console.js
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Node constants as keywords (module, etc.)
+ scope
+ support.constant.node, support.type.object.module.js
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ implements as keyword
+ scope
+ storage.modifier.implements
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ Builtin types
+ scope
+ constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ scope
+ variable.parameter.generic
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Arrow functions
+ scope
+ keyword.declaration.function.arrow.js, storage.type.function.arrow.ts
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)
+ scope
+ punctuation.decorator.ts
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+ italic
+
+
+
+ name
+ Extra JS/TS keywords
+ scope
+ 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
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ Julia macros
+ scope
+ support.function.macro.julia
+ settings
+
+ foreground
+ #94e2d5
+ fontStyle
+ italic
+
+
+
+ name
+ Julia language constants (true, false)
+ scope
+ constant.language.julia
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Julia other constants (these seem to be arguments inside arrays)
+ scope
+ constant.other.symbol.julia
+ settings
+
+ foreground
+ #eba0ac
+
+
+
+ name
+ LaTeX preamble
+ scope
+ text.tex keyword.control.preamble
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ LaTeX be functions
+ scope
+ text.tex support.function.be
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ LaTeX math
+ scope
+ constant.other.general.math.tex
+ settings
+
+ foreground
+ #f2cdcd
+
+
+
+ name
+ Liquid Builtin Objects & User Defined Variables
+ scope
+ variable.language.liquid
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Lua docstring keywords
+ scope
+ comment.line.double-dash.documentation.lua storage.type.annotation.lua
+ settings
+
+ foreground
+ #cba6f7
+ fontStyle
+
+
+
+
+ name
+ Lua docstring variables
+ scope
+ comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #fab387
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #a6e3a1
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #74c7ec
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #b4befe
+
+
+
+ scope
+ markup.bold
+ settings
+
+ foreground
+ #f38ba8
+ fontStyle
+ bold
+
+
+
+ scope
+ markup.italic
+ settings
+
+ foreground
+ #f38ba8
+ fontStyle
+ italic
+
+
+
+ scope
+ markup.strikethrough
+ settings
+
+ foreground
+ #a6adc8
+ fontStyle
+ strikethrough
+
+
+
+ name
+ Markdown auto links
+ scope
+ punctuation.definition.link, markup.underline.link
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ Markdown links
+ scope
+ 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
+ settings
+
+ foreground
+ #b4befe
+
+
+
+ name
+ Markdown code spans
+ scope
+ 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
+ settings
+
+ foreground
+ #a6e3a1
+
+
+
+ name
+ Markdown triple backtick language identifier
+ scope
+ fenced_code.block.language
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ Markdown triple backticks
+ scope
+ markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc
+ settings
+
+ foreground
+ #9399b2
+
+
+
+ name
+ Markdown quotes
+ scope
+ markup.quote, punctuation.definition.quote.begin
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Markdown separators
+ scope
+ meta.separator.markdown
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Markdown list bullets
+ scope
+ punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Quarto headings
+ scope
+ markup.heading.quarto
+ settings
+
+ fontStyle
+ bold
+
+
+
+ name
+ Nix attribute names
+ scope
+ entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ Nix parameter names
+ scope
+ variable.parameter.name.nix
+ settings
+
+ foreground
+ #cdd6f4
+ fontStyle
+
+
+
+
+ name
+ Nix interpolated parameter names
+ scope
+ meta.embedded variable.parameter.name.nix
+ settings
+
+ foreground
+ #b4befe
+ fontStyle
+
+
+
+
+ name
+ Nix paths
+ scope
+ string.unquoted.path.nix
+ settings
+
+ foreground
+ #f5c2e7
+ fontStyle
+
+
+
+
+ name
+ PHP Attributes
+ scope
+ support.attribute.builtin, meta.attribute.php
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ PHP Parameters (needed for the leading dollar sign)
+ scope
+ meta.function.parameters.php punctuation.definition.variable.php
+ settings
+
+ foreground
+ #eba0ac
+
+
+
+ name
+ PHP Constants (null, __FILE__, etc.)
+ scope
+ constant.language.php
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ PHP functions
+ scope
+ text.html.php support.function
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ PHPdoc keywords
+ scope
+ keyword.other.phpdoc.php
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Python argument functions reset to text, otherwise they inherit blue from function-call
+ scope
+ support.variable.magic.python, meta.function-call.arguments.python
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Python double underscore functions
+ scope
+ support.function.magic.python
+ settings
+
+ foreground
+ #89dceb
+ fontStyle
+ italic
+
+
+
+ name
+ Python `self` keyword
+ scope
+ variable.parameter.function.language.special.self.python, variable.language.special.self.python
+ settings
+
+ foreground
+ #f38ba8
+ fontStyle
+ italic
+
+
+
+ name
+ python keyword flow/logical (for ... in)
+ scope
+ keyword.control.flow.python, keyword.operator.logical.python
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ python storage type
+ scope
+ storage.type.function.python
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ python function support
+ scope
+ support.token.decorator.python, meta.function.decorator.identifier.python
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ python function calls
+ scope
+ meta.function-call.python
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ python function decorators
+ scope
+ entity.name.function.decorator.python, punctuation.definition.decorator.python
+ settings
+
+ foreground
+ #fab387
+ fontStyle
+ italic
+
+
+
+ name
+ python placeholder reset to normal string
+ scope
+ constant.character.format.placeholder.other.python
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Python exception & builtins such as exit()
+ scope
+ support.type.exception.python, support.function.builtin.python
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ entity.name.type
+ scope
+ support.type.python
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ python constants (True/False)
+ scope
+ constant.language.python
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Arguments accessed later in the function body
+ scope
+ meta.indexed-name.python, meta.item-access.python
+ settings
+
+ foreground
+ #eba0ac
+ fontStyle
+ italic
+
+
+
+ name
+ Python f-strings/binary/unicode storage types
+ scope
+ storage.type.string.python
+ settings
+
+ foreground
+ #a6e3a1
+ fontStyle
+ italic
+
+
+
+ name
+ Python type hints
+ scope
+ meta.function.parameters.python
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Regex string begin/end in JS/TS
+ scope
+ string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Regex anchors (^, $)
+ scope
+ keyword.control.anchor.regexp
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ Regex regular string match
+ scope
+ string.regexp.ts
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Regex group parenthesis & backreference (\1, \2, \3, ...)
+ scope
+ punctuation.definition.group.regexp, keyword.other.back-reference.regexp
+ settings
+
+ foreground
+ #a6e3a1
+
+
+
+ name
+ Regex character class []
+ scope
+ punctuation.definition.character-class.regexp
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Regex character classes (\d, \w, \s)
+ scope
+ constant.other.character-class.regexp
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Regex range
+ scope
+ constant.other.character-class.range.regexp
+ settings
+
+ foreground
+ #f5e0dc
+
+
+
+ name
+ Regex quantifier
+ scope
+ keyword.operator.quantifier.regexp
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Regex constant/numeric
+ scope
+ constant.character.numeric.regexp
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds
+ scope
+ punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ Rust attribute
+ scope
+ meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+ italic
+
+
+
+ name
+ Rust attribute strings
+ scope
+ meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Rust keyword
+ scope
+ 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
+ settings
+
+ foreground
+ #cba6f7
+ fontStyle
+
+
+
+
+ name
+ Rust u/i32, u/i64, etc.
+ scope
+ entity.name.type.numeric.rust
+ settings
+
+ foreground
+ #cba6f7
+ fontStyle
+
+
+
+
+ name
+ Rust generic
+ scope
+ meta.generic.rust
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Rust impl
+ scope
+ entity.name.impl.rust
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+ italic
+
+
+
+ name
+ Rust module
+ scope
+ entity.name.module.rust
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Rust trait
+ scope
+ entity.name.trait.rust
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+ italic
+
+
+
+ name
+ Rust struct
+ scope
+ storage.type.source.rust
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Rust union
+ scope
+ entity.name.union.rust
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Rust enum member
+ scope
+ meta.enum.rust storage.type.source.rust
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Rust macro
+ scope
+ support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+ italic
+
+
+
+ name
+ Rust lifetime
+ scope
+ storage.modifier.lifetime.rust, entity.name.type.lifetime
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+ italic
+
+
+
+ name
+ Rust string formatting
+ scope
+ string.quoted.double.rust constant.other.placeholder.rust
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Rust return type generic
+ scope
+ meta.function.return-type.rust meta.generic.rust storage.type.rust
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Rust functions
+ scope
+ meta.function.call.rust
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ Rust angle brackets
+ scope
+ punctuation.brackets.angle.rust
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ Rust constants
+ scope
+ constant.other.caps.rust
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Rust function parameters
+ scope
+ meta.function.definition.rust variable.other.rust
+ settings
+
+ foreground
+ #eba0ac
+
+
+
+ name
+ Rust closure variables
+ scope
+ meta.function.call.rust variable.other.rust
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Rust self
+ scope
+ variable.language.self.rust
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ name
+ Rust metavariable names
+ scope
+ variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Shell shebang
+ scope
+ comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell
+ settings
+
+ foreground
+ #f5c2e7
+ fontStyle
+ italic
+
+
+
+ name
+ Shell shebang command
+ scope
+ comment.line.shebang constant.language
+ settings
+
+ foreground
+ #94e2d5
+ fontStyle
+ italic
+
+
+
+ name
+ Shell interpolated command
+ scope
+ 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
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ name
+ Shell interpolated command variable
+ scope
+ meta.string meta.interpolation.parameter.shell variable.other.readwrite
+ settings
+
+ foreground
+ #fab387
+ fontStyle
+ italic
+
+
+
+ scope
+ source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Shell EOF
+ scope
+ entity.name.tag.heredoc.shell
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ Shell quoted variable
+ scope
+ string.quoted.double.shell variable.other.normal.shell
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ scope
+ markup.heading.typst
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ name
+ JSON Keys
+ scope
+ source.json meta.mapping.key string
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ JSON key surrounding quotes
+ scope
+ source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end
+ settings
+
+ foreground
+ #9399b2
+
+
+
+ scope
+ markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ scope
+ markup.heading.commands.man
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ scope
+ markup.heading.env.man
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Man page options
+ scope
+ entity.name
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ scope
+ markup.heading.1.markdown
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ scope
+ markup.heading.2.markdown
+ settings
+
+ foreground
+ #fab387
+
+
+
+ scope
+ markup.heading.markdown
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+
+
\ No newline at end of file
diff --git a/mac/.config/yazi/flavors/dracula.yazi/LICENSE b/mac/.config/yazi/flavors/dracula.yazi/LICENSE
new file mode 100644
index 0000000..fb5b1d6
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/dracula.yazi/LICENSE-tmtheme b/mac/.config/yazi/flavors/dracula.yazi/LICENSE-tmtheme
new file mode 100644
index 0000000..f9105d5
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/dracula.yazi/README.md b/mac/.config/yazi/flavors/dracula.yazi/README.md
new file mode 100644
index 0000000..8429ef6
--- /dev/null
+++ b/mac/.config/yazi/flavors/dracula.yazi/README.md
@@ -0,0 +1,36 @@
+
+

+
+
+
+ Dracula Flavor for Yazi
+
+
+## 👀 Preview
+
+
+
+## 🎨 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/dracula.yazi/flavor.toml b/mac/.config/yazi/flavors/dracula.yazi/flavor.toml
new file mode 100644
index 0000000..3434eb9
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/dracula.yazi/preview.png b/mac/.config/yazi/flavors/dracula.yazi/preview.png
new file mode 100644
index 0000000..7d8adf3
Binary files /dev/null and b/mac/.config/yazi/flavors/dracula.yazi/preview.png differ
diff --git a/mac/.config/yazi/flavors/dracula.yazi/tmtheme.xml b/mac/.config/yazi/flavors/dracula.yazi/tmtheme.xml
new file mode 100644
index 0000000..c3434ec
--- /dev/null
+++ b/mac/.config/yazi/flavors/dracula.yazi/tmtheme.xml
@@ -0,0 +1,940 @@
+
+
+
+
+
+
+
+ name
+ Dracula
+ settings
+
+
+ settings
+
+ background
+ #282a36
+ caret
+ #f8f8f0
+ block_caret
+ #999a9e
+ foreground
+ #f8f8f2
+ invisibles
+ #3B3A32
+ lineHighlight
+ #44475a
+ selection
+ #44475a
+ findHighlight
+ #effb7b
+ findHighlightForeground
+ #000000
+ selectionBorder
+ #222218
+ activeGuide
+ #9D550FB0
+ bracketsForeground
+ #F8F8F2A5
+ bracketsOptions
+ underline
+ bracketContentsForeground
+ #F8F8F2A5
+ bracketContentsOptions
+ underline
+ tagsOptions
+ stippled_underline
+
+
+
+ name
+ Comment
+ scope
+ comment
+ settings
+
+ foreground
+ #6272a4
+ fontStyle
+
+
+
+
+ name
+ String
+ scope
+ string
+ settings
+
+ foreground
+ #f1fa8c
+
+
+
+ name
+ Number
+ scope
+ constant.numeric
+ settings
+
+ foreground
+ #bd93f9
+
+
+
+ name
+ Built-in constant
+ scope
+ constant.language
+ settings
+
+ foreground
+ #bd93f9
+
+
+
+ name
+ User-defined constant
+ scope
+ constant.character, constant.other
+ settings
+
+ foreground
+ #bd93f9
+
+
+
+ name
+ Variable
+ scope
+ variable
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Ruby's @variable
+ scope
+ variable.other.readwrite.instance
+ settings
+
+ fontStyle
+
+ foreground
+ #ffb86c
+
+
+
+ name
+ String interpolation
+ scope
+ constant.character.escaped, constant.character.escape, string source, string source.ruby
+ settings
+
+ fontStyle
+
+ foreground
+ #ff79c6
+
+
+
+ name
+ Ruby Regexp
+ scope
+ source.ruby string.regexp.classic.ruby,source.ruby string.regexp.mod-r.ruby
+ settings
+
+ fontStyle
+
+ foreground
+ #ff5555
+
+
+
+ name
+ Keyword
+ scope
+ keyword
+ settings
+
+ foreground
+ #ff79c6
+
+
+
+ name
+ Storage
+ scope
+ storage
+ settings
+
+ fontStyle
+
+ foreground
+ #ff79c6
+
+
+
+ name
+ Storage type
+ scope
+ storage.type
+ settings
+
+ fontStyle
+ italic
+ foreground
+ #8be9fd
+
+
+
+ name
+ Storage Type Namespace
+ scope
+ storage.type.namespace
+ settings
+
+ fontStyle
+ italic
+ foreground
+ #8be9fd
+
+
+
+ name
+ Storage Type Class
+ scope
+ storage.type.class
+ settings
+
+ fontStyle
+ italic
+ foreground
+ #ff79c6
+
+
+
+ name
+ Class name
+ scope
+ entity.name.class
+ settings
+
+ fontStyle
+ underline
+ foreground
+ #8be9fd
+
+
+
+ name
+ Meta Path
+ scope
+ meta.path
+ settings
+
+ fontStyle
+ underline
+ foreground
+ #66d9ef
+
+
+
+ name
+ Inherited class
+ scope
+ entity.other.inherited-class
+ settings
+
+ fontStyle
+ italic underline
+ foreground
+ #8be9fd
+
+
+
+ name
+ Function name
+ scope
+ entity.name.function
+ settings
+
+ fontStyle
+
+ foreground
+ #50fa7b
+
+
+
+ name
+ Function argument
+ scope
+ variable.parameter
+ settings
+
+ fontStyle
+ italic
+ foreground
+ #ffb86c
+
+
+
+ name
+ Tag name
+ scope
+ entity.name.tag
+ settings
+
+ fontStyle
+
+ foreground
+ #ff79c6
+
+
+
+ name
+ Tag attribute
+ scope
+ entity.other.attribute-name
+ settings
+
+ fontStyle
+
+ foreground
+ #50fa7b
+
+
+
+ name
+ Library function
+ scope
+ support.function
+ settings
+
+ fontStyle
+
+ foreground
+ #8be9fd
+
+
+
+ name
+ Library constant
+ scope
+ support.constant
+ settings
+
+ fontStyle
+
+ foreground
+ #6be5fd
+
+
+
+ name
+ Library class/type
+ scope
+ support.type, support.class
+ settings
+
+ fontStyle
+ italic
+ foreground
+ #66d9ef
+
+
+
+ name
+ Library variable
+ scope
+ support.other.variable
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Support Other Namespace
+ scope
+ support.other.namespace
+ settings
+
+ fontStyle
+ italic
+ foreground
+ #66d9ef
+
+
+
+ name
+ Invalid
+ scope
+ invalid
+ settings
+
+ background
+ #ff79c6
+ fontStyle
+
+ foreground
+ #F8F8F0
+
+
+
+ name
+ Invalid deprecated
+ scope
+ invalid.deprecated
+ settings
+
+ background
+ #bd93f9
+ foreground
+ #F8F8F0
+
+
+
+ name
+ JSON String
+ scope
+ meta.structure.dictionary.json string.quoted.double.json
+ settings
+
+ foreground
+ #CFCFC2
+
+
+
+ name
+ diff.header
+ scope
+ meta.diff, meta.diff.header
+ settings
+
+ foreground
+ #6272a4
+
+
+
+ name
+ diff.deleted
+ scope
+ markup.deleted
+ settings
+
+ foreground
+ #ff79c6
+
+
+
+ name
+ diff.inserted
+ scope
+ markup.inserted
+ settings
+
+ foreground
+ #50fa7b
+
+
+
+ name
+ diff.changed
+ scope
+ markup.changed
+ settings
+
+ foreground
+ #E6DB74
+
+
+
+ scope
+ constant.numeric.line-number.find-in-files - match
+ settings
+
+ foreground
+ #bd93f9
+
+
+
+ scope
+ entity.name.filename
+ settings
+
+ foreground
+ #E6DB74
+
+
+
+ scope
+ message.error
+ settings
+
+ foreground
+ #F83333
+
+
+
+ name
+ JSON Punctuation
+ scope
+ punctuation.definition.string.begin.json - meta.structure.dictionary.value.json, punctuation.definition.string.end.json - meta.structure.dictionary.value.json
+ settings
+
+ foreground
+ #EEEEEE
+
+
+
+ name
+ JSON Structure
+ scope
+ meta.structure.dictionary.json string.quoted.double.json
+ settings
+
+ foreground
+ #8be9fd
+
+
+
+ name
+ JSON String
+ scope
+ meta.structure.dictionary.value.json string.quoted.double.json
+ settings
+
+ foreground
+ #f1fa8c
+
+
+
+ name
+ JSON: 6 deep
+ scope
+ meta meta meta meta meta meta meta.structure.dictionary.value string
+ settings
+
+ foreground
+ #50fa7b
+
+
+
+ name
+ JSON: 5 deep
+ scope
+ meta meta meta meta meta meta.structure.dictionary.value string
+ settings
+
+ foreground
+ #ffb86c
+
+
+
+ name
+ JSON: 4 deep
+ scope
+ meta meta meta meta meta.structure.dictionary.value string
+ settings
+
+ foreground
+ #ff79c6
+
+
+
+ name
+ JSON: 3 deep
+ scope
+ meta meta meta meta.structure.dictionary.value string
+ settings
+
+ foreground
+ #bd93f9
+
+
+
+ name
+ JSON: 2 deep
+ scope
+ meta meta meta.structure.dictionary.value string
+ settings
+
+ foreground
+ #50fa7b
+
+
+
+ name
+ JSON: 1 deep
+ scope
+ meta meta.structure.dictionary.value string
+ settings
+
+ foreground
+ #ffb86c
+
+
+
+
+
+ name
+ Markup: strike
+ scope
+ markup.strike
+ settings
+
+ fontStyle
+ italic
+ foreground
+ #FFB86C
+
+
+
+ name
+ Markup: bold
+ scope
+ markup.bold
+ settings
+
+ fontStyle
+ bold
+ foreground
+ #FFB86C
+
+
+
+ name
+ Markup: italic
+ scope
+ markup.italic
+ settings
+
+ fontStyle
+ italic
+ foreground
+ #FFB86C
+
+
+
+ name
+ Markdown: heading
+ scope
+ markup.heading
+ settings
+
+ foreground
+ #8BE9FD
+
+
+
+ name
+ Markdown: List Items Punctuation
+ scope
+ punctuation.definition.list_item.markdown
+ settings
+
+ foreground
+ #FF79C6
+
+
+
+ name
+ Markdown: Blockquote
+ scope
+ markup.quote
+ settings
+
+ fontStyle
+ italic
+ foreground
+ #6272A4
+
+
+
+ name
+ Markdown: Blockquote Punctuation
+ scope
+ punctuation.definition.blockquote.markdown
+ settings
+
+ fontStyle
+ italic
+ background
+ #6272A4
+ foreground
+ #6272A4
+
+
+
+ name
+ Markdown: Separator
+ scope
+ meta.separator
+ settings
+
+ foreground
+ #6272A4
+
+
+
+ name
+ Markup: raw inline
+ scope
+ text.html.markdown markup.raw.inline
+ settings
+
+ foreground
+ #50FA7B
+
+
+
+ name
+ Markup: underline
+ scope
+ markup.underline
+ settings
+
+ fontStyle
+ underline
+ foreground
+ #BD93F9
+
+
+
+ name
+ Markup: Raw block
+ scope
+ markup.raw.block
+ settings
+
+ foreground
+ #CFCFC2
+
+
+
+ name
+ Markdown: Raw Block fenced source
+ scope
+ markup.raw.block.fenced.markdown source
+ settings
+
+ foreground
+ #F8F8F2
+
+
+
+ name
+ Markdown: Fenced Bode Block
+ scope
+ punctuation.definition.fenced.markdown, variable.language.fenced.markdown
+ settings
+
+ fontStyle
+ italic
+ foreground
+ #6272A4
+
+
+
+ name
+ Markdown: Fenced Language
+ scope
+ variable.language.fenced.markdown
+ settings
+
+ fontStyle
+ italic
+ foreground
+ #6272A4
+
+
+
+ name
+ Punctuation Accessor
+ scope
+ punctuation.accessor
+ settings
+
+ foreground
+ #FF79C6
+
+
+
+ name
+ Meta Function Return Type
+ scope
+ meta.function.return-type
+ settings
+
+ foreground
+ #FF79C6
+
+
+
+ name
+ Punctuation Section Block Begin
+ scope
+ punctuation.section.block.begin
+ settings
+
+ foreground
+ #ffffff
+
+
+
+ name
+ Punctuation Section Block End
+ scope
+ punctuation.section.block.end
+ settings
+
+ foreground
+ #ffffff
+
+
+
+ name
+ Punctuation Section Embedded Begin
+ scope
+ punctuation.section.embedded.begin
+ settings
+
+ foreground
+ #ff79c6
+
+
+
+ name
+ Punctuation Section Embedded End
+ scope
+ punctuation.section.embedded.end
+ settings
+
+ foreground
+ #ff79c6
+
+
+
+ name
+ Punctuation Separator Namespace
+ scope
+ punctuation.separator.namespace
+ settings
+
+ foreground
+ #ff79c6
+
+
+
+ name
+ Variable Function
+ scope
+ variable.function
+ settings
+
+ foreground
+ #50fa7b
+
+
+
+ name
+ Variable Other
+ scope
+ variable.other
+ settings
+
+ foreground
+ #ffffff
+
+
+
+ name
+ Variable Language
+ scope
+ variable.language
+ settings
+
+ foreground
+ #bd93f9
+
+
+
+ name
+ Entity Name Module Ruby
+ scope
+ entity.name.module.ruby
+ settings
+
+ foreground
+ #8be9fd
+
+
+
+ name
+ Entity Name Constant Ruby
+ scope
+ entity.name.constant.ruby
+ settings
+
+ foreground
+ #bd93f9
+
+
+
+ name
+ Support Function Builtin Ruby
+ scope
+ support.function.builtin.ruby
+ settings
+
+ foreground
+ #ffffff
+
+
+
+ name
+ Storage Type Namespace CS
+ scope
+ storage.type.namespace.cs
+ settings
+
+ foreground
+ #ff79c6
+
+
+
+ name
+ Entity Name Namespace CS
+ scope
+ entity.name.namespace.cs
+ settings
+
+ foreground
+ #8be9fd
+
+
+
+ uuid
+ 83091B89-765E-4F0D-9275-0EC6CB084126
+ colorSpaceName
+ sRGB
+ semanticClass
+ theme.dracula
+ author
+ Zeno Rocha
+
+
diff --git a/mac/.config/yazi/flavors/everforest-medium.yazi b/mac/.config/yazi/flavors/everforest-medium.yazi
new file mode 160000
index 0000000..0158f0f
--- /dev/null
+++ b/mac/.config/yazi/flavors/everforest-medium.yazi
@@ -0,0 +1 @@
+Subproject commit 0158f0f6ce19c9bbc37550a7bed77d67b3fa4e7d
diff --git a/mac/.config/yazi/flavors/gruvbox-dark.yazi b/mac/.config/yazi/flavors/gruvbox-dark.yazi
new file mode 160000
index 0000000..e5e1aef
--- /dev/null
+++ b/mac/.config/yazi/flavors/gruvbox-dark.yazi
@@ -0,0 +1 @@
+Subproject commit e5e1aefbfb5641b487cb4a11ccbc57346ec8e130
diff --git a/mac/.config/yazi/flavors/kanagawa-dragon.yazi b/mac/.config/yazi/flavors/kanagawa-dragon.yazi
new file mode 160000
index 0000000..4905527
--- /dev/null
+++ b/mac/.config/yazi/flavors/kanagawa-dragon.yazi
@@ -0,0 +1 @@
+Subproject commit 49055274ff53772a13a8c092188e4f6d148d1694
diff --git a/mac/.config/yazi/flavors/kanagawa-lotus.yazi b/mac/.config/yazi/flavors/kanagawa-lotus.yazi
new file mode 160000
index 0000000..4275a1a
--- /dev/null
+++ b/mac/.config/yazi/flavors/kanagawa-lotus.yazi
@@ -0,0 +1 @@
+Subproject commit 4275a1a96243c8e7d12057488bce1360a3c74756
diff --git a/mac/.config/yazi/flavors/kanagawa.yazi b/mac/.config/yazi/flavors/kanagawa.yazi
new file mode 160000
index 0000000..a0b1d9d
--- /dev/null
+++ b/mac/.config/yazi/flavors/kanagawa.yazi
@@ -0,0 +1 @@
+Subproject commit a0b1d9dec31387b5f8a82c96044e6419b6c46534
diff --git a/mac/.config/yazi/flavors/rose-pine-moon.yazi b/mac/.config/yazi/flavors/rose-pine-moon.yazi
new file mode 160000
index 0000000..aa2d937
--- /dev/null
+++ b/mac/.config/yazi/flavors/rose-pine-moon.yazi
@@ -0,0 +1 @@
+Subproject commit aa2d937daf2ede05442bd3818691882a7ad0e700
diff --git a/mac/.config/yazi/flavors/rose-pine.yazi b/mac/.config/yazi/flavors/rose-pine.yazi
new file mode 160000
index 0000000..8343340
--- /dev/null
+++ b/mac/.config/yazi/flavors/rose-pine.yazi
@@ -0,0 +1 @@
+Subproject commit 834334048d0bc8c7c344a5a8abce0b0cb35612d3
diff --git a/mac/.config/yazi/flavors/scripts/README.md b/mac/.config/yazi/flavors/scripts/README.md
new file mode 100644
index 0000000..17a1ffe
--- /dev/null
+++ b/mac/.config/yazi/flavors/scripts/README.md
@@ -0,0 +1,36 @@
+
+

+
+
+
+ ${variant_cap} Flavor for Yazi
+
+
+## 👀 Preview
+
+
+
+## 🎨 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/scripts/generate.js b/mac/.config/yazi/flavors/scripts/generate.js
new file mode 100644
index 0000000..194de0f
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/scripts/template.toml b/mac/.config/yazi/flavors/scripts/template.toml
new file mode 100644
index 0000000..2eb31d2
--- /dev/null
+++ b/mac/.config/yazi/flavors/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/tokyo-night.yazi b/mac/.config/yazi/flavors/tokyo-night.yazi
new file mode 160000
index 0000000..5f56364
--- /dev/null
+++ b/mac/.config/yazi/flavors/tokyo-night.yazi
@@ -0,0 +1 @@
+Subproject commit 5f5636427f9bb16cc3f7c5e5693c60914c73f036
diff --git a/mac/.config/yazi/flavors/vscode-dark-modern.yazi b/mac/.config/yazi/flavors/vscode-dark-modern.yazi
new file mode 160000
index 0000000..cd60541
--- /dev/null
+++ b/mac/.config/yazi/flavors/vscode-dark-modern.yazi
@@ -0,0 +1 @@
+Subproject commit cd605412a6326ba6e99c3386ed47455854707b68
diff --git a/mac/.config/yazi/flavors/vscode-dark-plus.yazi b/mac/.config/yazi/flavors/vscode-dark-plus.yazi
new file mode 160000
index 0000000..113cc48
--- /dev/null
+++ b/mac/.config/yazi/flavors/vscode-dark-plus.yazi
@@ -0,0 +1 @@
+Subproject commit 113cc480e45d56851fa04e3a38e767a60445bf77
diff --git a/mac/.config/yazi/flavors/vscode-light-modern.yazi b/mac/.config/yazi/flavors/vscode-light-modern.yazi
new file mode 160000
index 0000000..c054b12
--- /dev/null
+++ b/mac/.config/yazi/flavors/vscode-light-modern.yazi
@@ -0,0 +1 @@
+Subproject commit c054b127da55e32bce5928fc2287ee3fb30f873b
diff --git a/mac/.config/yazi/flavors/vscode-light-plus.yazi b/mac/.config/yazi/flavors/vscode-light-plus.yazi
new file mode 160000
index 0000000..83c8be6
--- /dev/null
+++ b/mac/.config/yazi/flavors/vscode-light-plus.yazi
@@ -0,0 +1 @@
+Subproject commit 83c8be6e0d0240c5fec6be5b8b6d907a097a0e0a
diff --git a/mac/.config/yazi/plugins.bak/chmod.yazi/README.md b/mac/.config/yazi/plugins.bak/chmod.yazi/README.md
deleted file mode 100644
index b2ad136..0000000
--- a/mac/.config/yazi/plugins.bak/chmod.yazi/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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 c => m 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
deleted file mode 100644
index a50a864..0000000
--- a/mac/.config/yazi/plugins.bak/chmod.yazi/main.lua
+++ /dev/null
@@ -1,42 +0,0 @@
---- @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
deleted file mode 100644
index 1976541..0000000
--- a/mac/.config/yazi/plugins.bak/diff.yazi/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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 = ""
-run = "plugin diff"
-desc = "Diff the selected with the hovered file"
-```
-
-Make sure the C + d 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
deleted file mode 100644
index 21dde6d..0000000
--- a/mac/.config/yazi/plugins.bak/diff.yazi/main.lua
+++ /dev/null
@@ -1,41 +0,0 @@
---- @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
deleted file mode 100644
index 269ca8e..0000000
--- a/mac/.config/yazi/plugins.bak/full-border.yazi/README.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# full-border.yazi
-
-Add a full border to Yazi to make it look fancier.
-
-
-
-## 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
deleted file mode 100644
index a917e1e..0000000
--- a/mac/.config/yazi/plugins.bak/full-border.yazi/main.lua
+++ /dev/null
@@ -1,43 +0,0 @@
---- @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
deleted file mode 100644
index 96a87a8..0000000
--- a/mac/.config/yazi/plugins.bak/git.yazi/README.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# 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
deleted file mode 100644
index e6b3a36..0000000
--- a/mac/.config/yazi/plugins.bak/git.yazi/main.lua
+++ /dev/null
@@ -1,261 +0,0 @@
---- @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
deleted file mode 100644
index 9936849..0000000
--- a/mac/.config/yazi/plugins.bak/git.yazi/types.lua
+++ /dev/null
@@ -1,12 +0,0 @@
----@class State
----@field dirs table Mapping between a directory and its corresponding repository
----@field repos table 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
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
deleted file mode 100644
index d24f2e7..0000000
--- a/mac/.config/yazi/plugins.bak/jump-to-char.yazi/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# jump-to-char.yazi
-
-Vim-like `f`, jump to the next file whose name starts with ``.
-
-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 f 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
deleted file mode 100644
index 8a434f1..0000000
--- a/mac/.config/yazi/plugins.bak/jump-to-char.yazi/main.lua
+++ /dev/null
@@ -1,32 +0,0 @@
---- @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
deleted file mode 100644
index e944442..0000000
--- a/mac/.config/yazi/plugins.bak/lsar.yazi/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# 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
deleted file mode 100644
index 69bc480..0000000
--- a/mac/.config/yazi/plugins.bak/lsar.yazi/main.lua
+++ /dev/null
@@ -1,43 +0,0 @@
---- @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
deleted file mode 100644
index e5c060b..0000000
--- a/mac/.config/yazi/plugins.bak/mactag.yazi/README.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 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
deleted file mode 100644
index 309a46a..0000000
--- a/mac/.config/yazi/plugins.bak/mactag.yazi/main.lua
+++ /dev/null
@@ -1,105 +0,0 @@
---- @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
deleted file mode 100644
index 3c2ee1f..0000000
--- a/mac/.config/yazi/plugins.bak/mime-ext.yazi/README.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# 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
deleted file mode 100644
index 06c0005..0000000
--- a/mac/.config/yazi/plugins.bak/mime-ext.yazi/main.lua
+++ /dev/null
@@ -1,1126 +0,0 @@
---- @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
deleted file mode 100644
index b35881f..0000000
--- a/mac/.config/yazi/plugins.bak/mount.yazi/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# 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 |
-| ------------ | ------------- | --------------------- |
-| q | - | Quit the plugin |
-| k | ↑ | Move up |
-| j | ↓ | Move down |
-| l | → | Enter the mount point |
-| m | - | Mount the partition |
-| u | - | Unmount the partition |
-| e | - | 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
deleted file mode 100644
index 31c2e28..0000000
--- a/mac/.config/yazi/plugins.bak/mount.yazi/main.lua
+++ /dev/null
@@ -1,304 +0,0 @@
---- @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 = "", run = "up" },
- { on = "", run = "down" },
- { on = "", 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
deleted file mode 100644
index 1cb238f..0000000
--- a/mac/.config/yazi/plugins.bak/piper.yazi/README.md
+++ /dev/null
@@ -1,90 +0,0 @@
-# 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
deleted file mode 100644
index aef08eb..0000000
--- a/mac/.config/yazi/plugins.bak/piper.yazi/main.lua
+++ /dev/null
@@ -1,70 +0,0 @@
---- @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
deleted file mode 100644
index 742f2e1..0000000
--- a/mac/.config/yazi/plugins.bak/smart-enter.yazi/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# 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 l 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
deleted file mode 100644
index e9e2ec6..0000000
--- a/mac/.config/yazi/plugins.bak/smart-enter.yazi/main.lua
+++ /dev/null
@@ -1,11 +0,0 @@
---- @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
deleted file mode 100644
index 97be2ac..0000000
--- a/mac/.config/yazi/plugins.bak/smart-filter.yazi/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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 F 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
deleted file mode 100644
index 146e265..0000000
--- a/mac/.config/yazi/plugins.bak/smart-filter.yazi/main.lua
+++ /dev/null
@@ -1,51 +0,0 @@
---- @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
deleted file mode 100644
index ea5b606..0000000
--- a/mac/.config/yazi/plugins.bak/smart-paste.yazi/LICENSE
+++ /dev/null
@@ -1 +0,0 @@
-../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
deleted file mode 100644
index b32f475..0000000
--- a/mac/.config/yazi/plugins.bak/smart-paste.yazi/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# 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
deleted file mode 100644
index 0837a4b..0000000
--- a/mac/.config/yazi/plugins.bak/smart-paste.yazi/main.lua
+++ /dev/null
@@ -1,14 +0,0 @@
---- @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
deleted file mode 100644
index 8068691..0000000
--- a/mac/.config/yazi/plugins.bak/sudo-demo.yazi/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# 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 = ""
-run = "plugin sudo-demo"
-```
-
-Press Ctrl + t 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
deleted file mode 100644
index 599afe4..0000000
--- a/mac/.config/yazi/plugins.bak/sudo-demo.yazi/main.lua
+++ /dev/null
@@ -1,45 +0,0 @@
---- @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
deleted file mode 100644
index 3ef4095..0000000
--- a/mac/.config/yazi/plugins.bak/toggle-pane.yazi/README.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# 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
deleted file mode 100644
index 72bbf0e..0000000
--- a/mac/.config/yazi/plugins.bak/toggle-pane.yazi/main.lua
+++ /dev/null
@@ -1,45 +0,0 @@
---- @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
deleted file mode 100644
index 9be8025..0000000
--- a/mac/.config/yazi/plugins.bak/zoom.yazi/README.md
+++ /dev/null
@@ -1,56 +0,0 @@
-> [!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
deleted file mode 100644
index 8aea0cd..0000000
--- a/mac/.config/yazi/plugins.bak/zoom.yazi/main.lua
+++ /dev/null
@@ -1,119 +0,0 @@
---- @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 }
diff --git a/mac/.config/yazi/plugins/chmod.yazi/README.md b/mac/.config/yazi/plugins/chmod.yazi/README.md
new file mode 100644
index 0000000..b2ad136
--- /dev/null
+++ b/mac/.config/yazi/plugins/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 c => m 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/chmod.yazi/main.lua b/mac/.config/yazi/plugins/chmod.yazi/main.lua
new file mode 100644
index 0000000..a50a864
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/diff.yazi/README.md b/mac/.config/yazi/plugins/diff.yazi/README.md
new file mode 100644
index 0000000..1976541
--- /dev/null
+++ b/mac/.config/yazi/plugins/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 = ""
+run = "plugin diff"
+desc = "Diff the selected with the hovered file"
+```
+
+Make sure the C + d 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/diff.yazi/main.lua b/mac/.config/yazi/plugins/diff.yazi/main.lua
new file mode 100644
index 0000000..21dde6d
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/full-border.yazi/README.md b/mac/.config/yazi/plugins/full-border.yazi/README.md
new file mode 100644
index 0000000..269ca8e
--- /dev/null
+++ b/mac/.config/yazi/plugins/full-border.yazi/README.md
@@ -0,0 +1,32 @@
+# full-border.yazi
+
+Add a full border to Yazi to make it look fancier.
+
+
+
+## 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/full-border.yazi/main.lua b/mac/.config/yazi/plugins/full-border.yazi/main.lua
new file mode 100644
index 0000000..a917e1e
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/git.yazi/README.md b/mac/.config/yazi/plugins/git.yazi/README.md
new file mode 100644
index 0000000..96a87a8
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/git.yazi/main.lua b/mac/.config/yazi/plugins/git.yazi/main.lua
new file mode 100644
index 0000000..e6b3a36
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/git.yazi/types.lua b/mac/.config/yazi/plugins/git.yazi/types.lua
new file mode 100644
index 0000000..9936849
--- /dev/null
+++ b/mac/.config/yazi/plugins/git.yazi/types.lua
@@ -0,0 +1,12 @@
+---@class State
+---@field dirs table Mapping between a directory and its corresponding repository
+---@field repos table 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
diff --git a/mac/.config/yazi/plugins/jump-to-char.yazi/README.md b/mac/.config/yazi/plugins/jump-to-char.yazi/README.md
new file mode 100644
index 0000000..d24f2e7
--- /dev/null
+++ b/mac/.config/yazi/plugins/jump-to-char.yazi/README.md
@@ -0,0 +1,28 @@
+# jump-to-char.yazi
+
+Vim-like `f`, jump to the next file whose name starts with ``.
+
+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 f 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/jump-to-char.yazi/main.lua b/mac/.config/yazi/plugins/jump-to-char.yazi/main.lua
new file mode 100644
index 0000000..8a434f1
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/lsar.yazi/README.md b/mac/.config/yazi/plugins/lsar.yazi/README.md
new file mode 100644
index 0000000..e944442
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/lsar.yazi/main.lua b/mac/.config/yazi/plugins/lsar.yazi/main.lua
new file mode 100644
index 0000000..69bc480
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/mactag.yazi/README.md b/mac/.config/yazi/plugins/mactag.yazi/README.md
new file mode 100644
index 0000000..e5c060b
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/mactag.yazi/main.lua b/mac/.config/yazi/plugins/mactag.yazi/main.lua
new file mode 100644
index 0000000..309a46a
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/mime-ext.yazi/README.md b/mac/.config/yazi/plugins/mime-ext.yazi/README.md
new file mode 100644
index 0000000..3c2ee1f
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/mime-ext.yazi/main.lua b/mac/.config/yazi/plugins/mime-ext.yazi/main.lua
new file mode 100644
index 0000000..06c0005
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/mount.yazi/README.md b/mac/.config/yazi/plugins/mount.yazi/README.md
new file mode 100644
index 0000000..b35881f
--- /dev/null
+++ b/mac/.config/yazi/plugins/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 |
+| ------------ | ------------- | --------------------- |
+| q | - | Quit the plugin |
+| k | ↑ | Move up |
+| j | ↓ | Move down |
+| l | → | Enter the mount point |
+| m | - | Mount the partition |
+| u | - | Unmount the partition |
+| e | - | 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/mount.yazi/main.lua b/mac/.config/yazi/plugins/mount.yazi/main.lua
new file mode 100644
index 0000000..31c2e28
--- /dev/null
+++ b/mac/.config/yazi/plugins/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 = "", run = "up" },
+ { on = "", run = "down" },
+ { on = "", 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/piper.yazi/README.md b/mac/.config/yazi/plugins/piper.yazi/README.md
new file mode 100644
index 0000000..1cb238f
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/piper.yazi/main.lua b/mac/.config/yazi/plugins/piper.yazi/main.lua
new file mode 100644
index 0000000..aef08eb
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/smart-enter.yazi/README.md b/mac/.config/yazi/plugins/smart-enter.yazi/README.md
new file mode 100644
index 0000000..742f2e1
--- /dev/null
+++ b/mac/.config/yazi/plugins/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 l 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/smart-enter.yazi/main.lua b/mac/.config/yazi/plugins/smart-enter.yazi/main.lua
new file mode 100644
index 0000000..e9e2ec6
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/smart-filter.yazi/README.md b/mac/.config/yazi/plugins/smart-filter.yazi/README.md
new file mode 100644
index 0000000..97be2ac
--- /dev/null
+++ b/mac/.config/yazi/plugins/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 F 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/smart-filter.yazi/main.lua b/mac/.config/yazi/plugins/smart-filter.yazi/main.lua
new file mode 100644
index 0000000..146e265
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/smart-paste.yazi/LICENSE b/mac/.config/yazi/plugins/smart-paste.yazi/LICENSE
new file mode 100644
index 0000000..ea5b606
--- /dev/null
+++ b/mac/.config/yazi/plugins/smart-paste.yazi/LICENSE
@@ -0,0 +1 @@
+../LICENSE
\ No newline at end of file
diff --git a/mac/.config/yazi/plugins/smart-paste.yazi/README.md b/mac/.config/yazi/plugins/smart-paste.yazi/README.md
new file mode 100644
index 0000000..b32f475
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/smart-paste.yazi/main.lua b/mac/.config/yazi/plugins/smart-paste.yazi/main.lua
new file mode 100644
index 0000000..0837a4b
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/sudo-demo.yazi/README.md b/mac/.config/yazi/plugins/sudo-demo.yazi/README.md
new file mode 100644
index 0000000..8068691
--- /dev/null
+++ b/mac/.config/yazi/plugins/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 = ""
+run = "plugin sudo-demo"
+```
+
+Press Ctrl + t 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/sudo-demo.yazi/main.lua b/mac/.config/yazi/plugins/sudo-demo.yazi/main.lua
new file mode 100644
index 0000000..599afe4
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/toggle-pane.yazi/README.md b/mac/.config/yazi/plugins/toggle-pane.yazi/README.md
new file mode 100644
index 0000000..3ef4095
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/toggle-pane.yazi/main.lua b/mac/.config/yazi/plugins/toggle-pane.yazi/main.lua
new file mode 100644
index 0000000..72bbf0e
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/zoom.yazi/README.md b/mac/.config/yazi/plugins/zoom.yazi/README.md
new file mode 100644
index 0000000..9be8025
--- /dev/null
+++ b/mac/.config/yazi/plugins/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/zoom.yazi/main.lua b/mac/.config/yazi/plugins/zoom.yazi/main.lua
new file mode 100644
index 0000000..8aea0cd
--- /dev/null
+++ b/mac/.config/yazi/plugins/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 }
--
cgit v1.2.3