diff options
| author | Tom Li Dobnik <tomlidobnik1@gmail.com> | 2025-08-09 17:12:43 +0200 |
|---|---|---|
| committer | Tom Li Dobnik <tomlidobnik1@gmail.com> | 2025-08-09 17:12:43 +0200 |
| commit | ea82cbb1c0b778dd946c717cceace53fab391ba8 (patch) | |
| tree | f0c84a86f48d61d918b6de9dc464c08370ab6a7c /.config/yazi | |
init
Diffstat (limited to '.config/yazi')
| -rw-r--r-- | .config/yazi/flavors/nord.yazi/DO_NOT_MODIFY_ANYTHING_IN_THIS_DIRECTORY | 0 | ||||
| -rw-r--r-- | .config/yazi/flavors/nord.yazi/flavor.toml | 152 | ||||
| -rw-r--r-- | .config/yazi/flavors/nord.yazi/tmtheme.xml | 1873 | ||||
| -rw-r--r-- | .config/yazi/keymap.toml | 9 | ||||
| -rw-r--r-- | .config/yazi/keymap.toml-1748684127440481 | 9 | ||||
| -rw-r--r-- | .config/yazi/package.toml | 12 | ||||
| -rw-r--r-- | .config/yazi/plugins/compress.yazi/LICENSE | 21 | ||||
| -rw-r--r-- | .config/yazi/plugins/compress.yazi/README.md | 48 | ||||
| -rw-r--r-- | .config/yazi/plugins/compress.yazi/main.lua | 228 | ||||
| -rw-r--r-- | .config/yazi/plugins/smart-enter.yazi/LICENSE | 21 | ||||
| -rw-r--r-- | .config/yazi/plugins/smart-enter.yazi/README.md | 40 | ||||
| -rw-r--r-- | .config/yazi/plugins/smart-enter.yazi/main.lua | 10 | ||||
| -rw-r--r-- | .config/yazi/theme.toml | 2 | ||||
| -rw-r--r-- | .config/yazi/yazi.toml | 2 |
14 files changed, 2427 insertions, 0 deletions
diff --git a/.config/yazi/flavors/nord.yazi/DO_NOT_MODIFY_ANYTHING_IN_THIS_DIRECTORY b/.config/yazi/flavors/nord.yazi/DO_NOT_MODIFY_ANYTHING_IN_THIS_DIRECTORY new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.config/yazi/flavors/nord.yazi/DO_NOT_MODIFY_ANYTHING_IN_THIS_DIRECTORY diff --git a/.config/yazi/flavors/nord.yazi/flavor.toml b/.config/yazi/flavors/nord.yazi/flavor.toml new file mode 100644 index 0000000..766613c --- /dev/null +++ b/.config/yazi/flavors/nord.yazi/flavor.toml @@ -0,0 +1,152 @@ +# vim:fileencoding=utf-8:foldmethod=marker
+
+# : Manager {{{
+[manager]
+cwd = { fg = "#88c0d0" }
+
+# Hovered
+hovered = { reversed = true }
+preview_hovered = { underline = true }
+
+# Find
+find_keyword = { fg = "#ebcb8b", bold = true, italic = true, underline = true }
+find_position = { fg = "#b48ead", bg = "reset", bold = true, italic = true }
+
+# Marker
+marker_copied = { fg = "#a3be8c", bg = "#a3be8c" }
+marker_cut = { fg = "#bf616a", bg = "#bf616a" }
+marker_marked = { fg = "#88c0d0", bg = "#88c0d0" }
+marker_selected = { fg = "#ebcb8b", bg = "#ebcb8b" }
+
+# Tab
+tab_active = { reversed = true }
+tab_inactive = {}
+tab_width = 1
+
+# Count
+count_copied = { fg = "#2e3440", bg = "#a3be8c" }
+count_cut = { fg = "#2e3440", bg = "#bf616a" }
+count_selected = { fg = "#2e3440", bg = "#ebcb8b" }
+
+# Border
+border_symbol = "│"
+border_style = { fg = "#3b4252" }
+
+# : }}}
+
+# : Status {{{
+
+[status]
+separator_open = ""
+separator_close = ""
+separator_style = { fg = "#434c5e", bg = "#434c5e" }
+
+# Mode
+mode_normal = { fg = "#2e3440", bg = "#5e81ac", bold = true }
+mode_select = { fg = "#2e3440", bg = "#a3be8c", bold = true }
+mode_unset = { fg = "#2e3440", bg = "#f2cdcd", bold = true }
+
+# Progress
+progress_label = { fg = "#eceff4", bold = true }
+progress_normal = { fg = "#5e81ac", bg = "#434c5e" }
+progress_error = { fg = "#bf616a", bg = "#434c5e" }
+
+# Permissions
+permissions_t = { fg = "#5e81ac" }
+permissions_r = { fg = "#ebcb8b" }
+permissions_w = { fg = "#bf616a" }
+permissions_x = { fg = "#a3be8c" }
+permissions_s = { fg = "#7f849c" }
+
+# : }}}
+
+# : Select {{{
+
+[select]
+border = { fg = "#5e81ac" }
+active = { fg = "#b48ead", bold = true }
+inactive = {}
+
+# : }}}
+
+# : Input {{{
+
+[input]
+border = { fg = "#5e81ac" }
+title = {}
+value = {}
+selected = { reversed = true }
+
+# : }}}
+
+# : Completion {{{
+
+[completion]
+border = { fg = "#5e81ac" }
+
+# : }}}
+
+# : Tasks {{{
+
+[tasks]
+border = { fg = "#5e81ac" }
+title = {}
+hovered = { fg = "#b48ead", underline = true }
+
+# : }}}
+
+# : Which {{{
+
+[which]
+mask = { bg = "#2e3440" }
+cand = { fg = "#88c0d0" }
+rest = { fg = "#4c566a" }
+desc = { fg = "#b48ead" }
+separator = " "
+separator_style = { fg = "#585b70" }
+
+# : }}}
+
+# : Help {{{
+
+[help]
+on = { fg = "#88c0d0" }
+run = { fg = "#b48ead" }
+hovered = { reversed = true, bold = true }
+footer = { fg = "#45475a", bg = "#cdd6f4" }
+
+# : }}}
+
+# : Notify {{{
+
+[notify]
+title_info = { fg = "#a3be8c" }
+title_warn = { fg = "#ebcb8b" }
+title_error = { fg = "#bf616a" }
+
+# : }}}
+
+# : File-specific styles {{{
+
+[filetype]
+
+rules = [
+ # Images
+ { mime = "image/*", fg = "#88c0d0" },
+
+ # Media
+ { mime = "{audio,video}/*", fg = "#ebcb8b" },
+
+ # Archives
+ { mime = "application/*zip", fg = "#b48ead" },
+ { mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#b48ead" },
+
+ # Documents
+ { mime = "application/{pdf,doc,rtf,vnd.*}", fg = "#a3be8c" },
+
+ # Fallback
+ { name = "*", fg = "#e5e9f0" },
+ { name = "*/", fg = "#5e81ac" },
+]
+
+# : }}}
diff --git a/.config/yazi/flavors/nord.yazi/tmtheme.xml b/.config/yazi/flavors/nord.yazi/tmtheme.xml new file mode 100644 index 0000000..c8778de --- /dev/null +++ b/.config/yazi/flavors/nord.yazi/tmtheme.xml @@ -0,0 +1,1873 @@ +<!--
+Copyright (c) 2017-present Arctic Ice Studio <development@arcticicestudio.com>
+Copyright (c) 2017-present Sven Greb <code@svengreb.de>
+
+Project: Nord Sublime Text
+Repository: https://github.com/arcticicestudio/nord-sublime-text
+License: MIT
+References
+ https://www.sublimetext.com/docs/3/color_schemes.html
+ https://www.sublimetext.com/docs/3/themes.html
+ https://www.sublimetext.com/docs/3/scope_naming.html
+-->
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>name</key>
+ <string>Nord</string>
+ <key>comment</key>
+ <string>A arctic, north-bluish clean and elegant Visual Studio Code theme.</string>
+ <key>author</key>
+ <string>Arctic Ice Studio</string>
+ <key>semanticClass</key>
+ <string>nord</string>
+ <key>colorSpaceName</key>
+ <string>sRGB</string>
+ <key>settings</key>
+ <array>
+ <!--+ - - - - - - - - +
+ + Global Settings +
+ + - - - - - - - - +-->
+ <dict>
+ <key>settings</key>
+ <dict>
+ <key>background</key>
+ <string>#2e3440</string>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ <key>caret</key>
+ <string>#d8dee9</string>
+ <key>invisibles</key>
+ <string>#4c566a</string>
+ <key>lineHighlight</key>
+ <string>#434c5e52</string>
+ <!-- +- Accents -+ -->
+ <key>misspelling</key>
+ <string>#bf616a</string>
+ <key>minimapBorder</key>
+ <string>#434c5e52</string>
+ <key>accent</key>
+ <string>#88C0D0</string>
+ <!-- +- Gutter -+ -->
+ <key>gutter</key>
+ <string>#2e3440</string>
+ <key>gutterForeground</key>
+ <string>#d8dee966</string>
+ <!-- +- Selection -+ -->
+ <key>selection</key>
+ <string>#434c5ecc</string>
+ <key>selectionBorder</key>
+ <string>#434c5ecc</string>
+ <key>inactiveSelection</key>
+ <string>#434c5e99</string>
+ <!-- +- Find -+ -->
+ <key>highlight</key>
+ <string>#88c0d0</string>
+ <key>findHighlight</key>
+ <string>#88c0d0</string>
+ <key>findHighlightForeground</key>
+ <string>#2e3440</string>
+ <!-- +- Guides -+ -->
+ <key>guide</key>
+ <string>#434c5eb3</string>
+ <key>activeGuide</key>
+ <string>#88c0d0cc</string>
+ <key>stackGuide</key>
+ <string>#88c0d066</string>
+ <!-- +- Brackets -+ -->
+ <key>bracketsOptions</key>
+ <string>underline</string>
+ <key>bracketsForeground</key>
+ <string>#88c0d0</string>
+ <key>bracketsContentsOptions</key>
+ <string>underline</string>
+ <key>bracketsContentsForeground</key>
+ <string>#88c0d0</string>
+ <!-- +- Tags -+ -->
+ <key>tagsOptions</key>
+ <string>underline</string>
+ <key>tagsForeground</key>
+ <string>#88c0d0</string>
+ <!-- +- Shadows -+ -->
+ <key>shadow</key>
+ <string>#2e3440</string>
+ <key>shadowWidth</key>
+ <string>8</string>
+ </dict>
+ </dict>
+ <!--+ - - - - - - -+
+ + Scope Styles +
+ + - - - - - - -+-->
+ <dict>
+ <key>name</key>
+ <string>[Comment] Comment</string>
+ <key>scope</key>
+ <string>
+ comment,
+ punctuation.definition.comment
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#616e88</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Constants] Numeric</string>
+ <key>scope</key>
+ <string>constant.numeric</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#b48ead</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Constants] BuiltIn</string>
+ <key>scope</key>
+ <string>constant.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Constants] Escape</string>
+ <key>scope</key>
+ <string>constant.character.escape</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ebcb8b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Constants] Placeholder</string>
+ <key>scope</key>
+ <string>constant.other.placeholder</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ebcb8b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Constants] Other</string>
+ <key>scope</key>
+ <string>constant.other</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Entity] Class</string>
+ <key>scope</key>
+ <string>entity.name.class</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Struct</string>
+ <key>scope</key>
+ <string>entity.name.struct</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Enum</string>
+ <key>scope</key>
+ <string>entity.name.enum</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Unions</string>
+ <key>scope</key>
+ <string>entity.name.union</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Traits</string>
+ <key>scope</key>
+ <string>entity.name.trait</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Interface</string>
+ <key>scope</key>
+ <string>entity.name.interface</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Type</string>
+ <key>scope</key>
+ <string>entity.name.type</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Inherited Class/Interface/Trait</string>
+ <key>scope</key>
+ <string>entity.other.inherited-class</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Function</string>
+ <key>scope</key>
+ <string>entity.name.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#88c0d0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Constructor</string>
+ <key>scope</key>
+ <string>entity.name.function.constructor</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#88c0d0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Destructor</string>
+ <key>scope</key>
+ <string>entity.name.function.destructor</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#88c0d0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Namespace</string>
+ <key>scope</key>
+ <string>entity.name.namespace</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Constant</string>
+ <key>scope</key>
+ <string>entity.name.constant</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Label/Goto</string>
+ <key>scope</key>
+ <string>entity.name.label</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#5e81ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Section</string>
+ <key>scope</key>
+ <string>entity.name.section</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#88c0d0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Tag</string>
+ <key>scope</key>
+ <string>entity.name.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Entity] Attribute Name</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Invalid] Illegal</string>
+ <key>scope</key>
+ <string>invalid.illegal</string>
+ <key>settings</key>
+ <dict>
+ <key>background</key>
+ <string>#bf616a</string>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Invalid] Deprecated</string>
+ <key>scope</key>
+ <string>invalid.deprecated</string>
+ <key>settings</key>
+ <dict>
+ <key>background</key>
+ <string>#ebcb8b</string>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Keyword] Control</string>
+ <key>scope</key>
+ <string>keyword.control</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Keyword] Control Conditional</string>
+ <key>scope</key>
+ <string>keyword.control.conditional</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Keyword] Control Import</string>
+ <key>scope</key>
+ <string>keyword.control.import</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Keyword] Punctuation Definition</string>
+ <key>scope</key>
+ <string>punctuation.definition.keyword</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Keyword] Other</string>
+ <key>scope</key>
+ <string>keyword.other</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Keyword] Operator</string>
+ <key>scope</key>
+ <string>
+ keyword.operator,
+ keyword.operator.assignment,
+ keyword.operator.arithmetic,
+ keyword.operator.bitwise,
+ keyword.operator.logical,
+ keyword.operator.word
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Markup] Heading</string>
+ <key>scope</key>
+ <string>markup.heading</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#88c0d0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markup] List</string>
+ <key>scope</key>
+ <string>
+ markup.list.unnumbered,
+ markup.list.numbered
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markup] Bold</string>
+ <key>scope</key>
+ <string>markup.bold</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markup] Italic</string>
+ <key>scope</key>
+ <string>markup.italic</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markup] Inserted</string>
+ <key>scope</key>
+ <string>markup.inserted</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a3be8c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markup] Deleted</string>
+ <key>scope</key>
+ <string>markup.deleted</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#bf616a</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markup] Changed</string>
+ <key>scope</key>
+ <string>markup.changed</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ebcb8b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markup] Quote</string>
+ <key>scope</key>
+ <string>markup.quote</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#616e88</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markup] Raw</string>
+ <key>scope</key>
+ <string>
+ markup.raw.inline,
+ markup.raw.block
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markup] Other</string>
+ <key>scope</key>
+ <string>markup.other</string>
+ <key>settings</key>
+ <dict>
+ <key>background</key>
+ <string>#eceff4</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Punctuation] Separator/Terminator</string>
+ <key>scope</key>
+ <string>
+ punctuation.separator,
+ punctuation.terminator
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eceff4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Punctuation] Separator Continuation/Accessor</string>
+ <key>scope</key>
+ <string>
+ punctuation.separator.continuation,
+ punctuation.accessor
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Punctuation] Definition Tag</string>
+ <key>scope</key>
+ <string>punctuation.definition.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Storage] Type</string>
+ <key>scope</key>
+ <string>
+ storage.type,
+ storage.modifier
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[String] Quoted/Unquoted</string>
+ <key>scope</key>
+ <string>
+ string.quoted.single,
+ string.quoted.double,
+ string.quoted.triple,
+ string.quoted.other,
+ string.unquoted
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a3be8c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[String] Punctuation Definition</string>
+ <key>scope</key>
+ <string>
+ punctuation.definition.string.begin,
+ punctuation.definition.string.end
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a3be8c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[String] RegExp</string>
+ <key>scope</key>
+ <string>string.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ebcb8b</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Support] Constant</string>
+ <key>scope</key>
+ <string>support.constant</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Support] Function</string>
+ <key>scope</key>
+ <string>support.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#88c0d0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Support] Module</string>
+ <key>scope</key>
+ <string>support.module</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Support] Type</string>
+ <key>scope</key>
+ <string>support.type</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Support] Class</string>
+ <key>scope</key>
+ <string>support.class</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Text] HTML/XML</string>
+ <key>scope</key>
+ <string>
+ text.html.basic,
+ text.xml
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eceff4</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Variable] Other/ReadWrite</string>
+ <key>scope</key>
+ <string>
+ variable.other,
+ variable.other.readwrite
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Variable] Punctuation Definition</string>
+ <key>scope</key>
+ <string>punctuation.definition.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Variable] Constant</string>
+ <key>scope</key>
+ <string>variable.other.constant</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Variable] Language</string>
+ <key>scope</key>
+ <string>variable.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Variable] Parameter</string>
+ <key>scope</key>
+ <string>variable.parameter</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Variable] Other Member</string>
+ <key>scope</key>
+ <string>variable.other.member</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Variable] Function</string>
+ <key>scope</key>
+ <string>variable.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#88c0d0</string>
+ </dict>
+ </dict>
+
+ <!--+ - - - - - - - +
+ + UI Components +
+ + - - - - - - - +-->
+ <dict>
+ <key>name</key>
+ <string>[Find Results] Gutter Number</string>
+ <key>scope</key>
+ <string>constant.numeric.line-number.find-in-files</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d8dee966</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Find Results] Gutter Number Match</string>
+ <key>scope</key>
+ <string>constant.numeric.line-number.match.find-in-files</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#88c0d0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Find Results] Filename</string>
+ <key>scope</key>
+ <string>entity.name.filename.find-in-files</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Find Results] Text</string>
+ <key>scope</key>
+ <string>text.find-in-files</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ </dict>
+ </dict>
+
+ <!--+ - - - - - - - - +
+ + Language Scopes +
+ + - - - - - - - - +-->
+ <dict>
+ <key>name</key>
+ <string>[C/C++] Preprocessor/Include</string>
+ <key>scope</key>
+ <string>
+ source.c keyword.control.import.include.c,
+ source.c meta.preprocessor.c keyword.control.import.c,
+ source.c++ keyword.control.import.include.c++,
+ source.c++ meta.preprocessor.c++ keyword.control.import.c++
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#5e81ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[C/C++] BuiltIn Function</string>
+ <key>scope</key>
+ <string>
+ source.c keyword.operator.word.c,
+ source.c++ keyword.operator.word.c++
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#88c0d0</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[CSS/Sass] Property Name</string>
+ <key>scope</key>
+ <string>
+ source.css support.type.property-name.css,
+ source.sass support.type.property-name.sass,
+ source.css support.type.vendor-prefix.css
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[CSS/Sass] RGB Value</string>
+ <key>scope</key>
+ <string>
+ source.css constant.other.color.rgb-value.css,
+ source.sass constant.other.rgb-value.sass
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#b48ead</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[CSS] Property Value</string>
+ <key>scope</key>
+ <string>
+ source.css support.constant.color.w3c-special-color-keyword.css,
+ source.css support.constant.property-value.css,
+ source.sass support.constant.property-value.sass
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[CSS] Pseudo Class</string>
+ <key>scope</key>
+ <string>source.css entity.other.pseudo-class.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[CSS/Sass] At-Rule</string>
+ <key>scope</key>
+ <string>
+ source.css keyword.control.at-rule.media.css,
+ source.css punctuation.definition.keyword.css,
+ source.sass keyword.control.at-rule.sass
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d08770</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[CSS] Color Names</string>
+ <key>scope</key>
+ <string>source.css support.constant.color.w3c-standard-color-name.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[CSS/Sass] ID</string>
+ <key>scope</key>
+ <string>
+ source.css entity.other.attribute-name.id.css,
+ source.sass entity.other.attribute-name.id.sass
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[diff] Meta Range Context</string>
+ <key>scope</key>
+ <string>source.diff meta.diff.range.context</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[diff] Meta Header From-File</string>
+ <key>scope</key>
+ <string>source.diff meta.diff.header.from-file</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[diff] Punctuation Definition From-File</string>
+ <key>scope</key>
+ <string>source.diff punctuation.definition.from-file</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8FBCBB</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[diff] Punctuation Definition Separator</string>
+ <key>scope</key>
+ <string>source.diff punctuation.definition.separator</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Go] BuiltIn Function</string>
+ <key>scope</key>
+ <string>source.go support.function.builtin.go</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[HTML] Entity</string>
+ <key>scope</key>
+ <string>text.html.basic constant.character.entity.html</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ebcb8b</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Java] Annotation</string>
+ <key>scope</key>
+ <string>
+ variable.annotation.java,
+ punctuation.definition.annotation.java
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d08770</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Java] Punctuation</string>
+ <key>scope</key>
+ <string>punctuation.accessor.dot.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eceff4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Java] Package</string>
+ <key>scope</key>
+ <string>support.other.package.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Java] JavaDoc Comment Block Documentation HTML Entities</string>
+ <key>scope</key>
+ <string>source.java comment.block.documentation.javadoc punctuation.definition.entity.html</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Java] Constant</string>
+ <key>scope</key>
+ <string>source.java entity.name.constant</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Java] JavaDoc Tags</string>
+ <key>scope</key>
+ <string>
+ source.java keyword.other.documentation,
+ source.java comment.block.documentation.javadoc punctuation.definition.keyword.javadoc
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Java] Generic</string>
+ <key>scope</key>
+ <string>source.java variable.parameter.type.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Java] Interface</string>
+ <key>scope</key>
+ <string>source.java entity.other.inherited-class.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Java] Implements Keyword</string>
+ <key>scope</key>
+ <string>source.java keyword.declaration.implements.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[JSON] Key</string>
+ <key>scope</key>
+ <string>
+ source.json meta.structure.dictionary.json meta.structure.dictionary.key.json string.quoted.double.json,
+ source.json.sublime meta.structure.dictionary.json meta.structure.dictionary.key.json string.quoted.double.json
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[JSON] Quote Punctuation</string>
+ <key>scope</key>
+ <string>
+ source.json meta.structure.dictionary.json punctuation.definition.string.begin.json,
+ source.json meta.structure.dictionary.json punctuation.definition.string.end.json,
+ source.json.sublime meta.structure.dictionary.json punctuation.definition.string.begin.json,
+ source.json.sublime meta.structure.dictionary.json punctuation.definition.string.end.json
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eceff4</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Markdown] Fenced Code Block</string>
+ <key>scope</key>
+ <string>
+ text.html.markdown punctuation.definition.raw.code-fence.begin.markdown,
+ text.html.markdown punctuation.definition.raw.code-fence.end.markdown,
+ text.html.markdown markup.raw.code-fence.markdown constant.other.language-name.markdown
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markdown] List Bullet</string>
+ <key>scope</key>
+ <string>
+ text.html.markdown punctuation.definition.list_item.markdown,
+ text.html.markdown markup.list.numbered.bullet.markdown
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markdown] Quote Punctuation</string>
+ <key>scope</key>
+ <string>text.html.markdown markup.quote.markdown punctuation.definition.blockquote.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8FBCBB</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markdown] Link Description</string>
+ <key>scope</key>
+ <string>
+ text.html.markdown meta.link.inline.description.markdown,
+ text.html.markdown meta.image.inline.description.markdown,
+ text.html.markdown meta.link.reference.description.markdown,
+ text.html.markdown constant.other.reference.link.markdown,
+ text.html.markdown entity.name.reference.link.markdown
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#88C0D0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markdown] Link Punctuation</string>
+ <key>scope</key>
+ <string>
+ text.html.markdown punctuation.definition.link.begin.markdown,
+ text.html.markdown punctuation.definition.link.end.markdown,
+ text.html.markdown punctuation.definition.image.begin.markdown,
+ text.html.markdown punctuation.definition.image.end.markdown,
+ text.html.markdown punctuation.definition.constant.begin.markdown,
+ text.html.markdown punctuation.definition.constant.end.markdown
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markdown] Table Punctuation</string>
+ <key>scope</key>
+ <string>
+ text.html.markdown punctuation.separator.table-cell.markdown,
+ text.html.markdown punctuation.section.table-header.markdown
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markdown] Table Header</string>
+ <key>scope</key>
+ <string>text.html.markdown meta.table.header.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#88c0d0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Markdown] Horizontal Line</string>
+ <key>scope</key>
+ <string>text.html.markdown punctuation.definition.thematic-break.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[PHP] Embedded Tag</string>
+ <key>scope</key>
+ <string>
+ embedding.php text.html.basic punctuation.section.embedded.begin.php,
+ embedding.php text.html.basic punctuation.section.embedded.end.php
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#5e81ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[PHP] PHPDoc Tag</string>
+ <key>scope</key>
+ <string>embedding.php text.html.basic comment.block.documentation.phpdoc.php keyword.other.phpdoc.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[PHP] Namespace</string>
+ <key>scope</key>
+ <string>embedding.php text.html.basic support.other.namespace.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Python] Decorator</string>
+ <key>scope</key>
+ <string>
+ source.python meta.annotation.python meta.qualified-name.python support.function.builtin.python,
+ source.python punctuation.definition.annotation.python
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d08770</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Python] BuiltIn Function</string>
+ <key>scope</key>
+ <string>support.function.builtin.python</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Python] Exception</string>
+ <key>scope</key>
+ <string>source.python support.type.exception.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Python] Type</string>
+ <key>scope</key>
+ <string>source.python support.type.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Sass] Variable</string>
+ <key>scope</key>
+ <string>source.sass variable.parameter.sass</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Ruby] BuiltIn Function</string>
+ <key>scope</key>
+ <string>source.ruby support.function.builtin.ruby</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[Shell] BuiltIn Function</string>
+ <key>scope</key>
+ <string>source.shell support.function.builtin.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[XML] Namespace</string>
+ <key>scope</key>
+ <string>text.xml entity.name.tag.namespace</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[XML] Doctype/Preprocessor</string>
+ <key>scope</key>
+ <string>
+ text.xml meta.tag.sgml.doctype.xml,
+ text.xml meta.tag.preprocessor entity.name.tag,
+ text.xml meta.tag.preprocessor.xml punctuation.definition.tag.begin.xml,
+ text.xml meta.tag.preprocessor.xml punctuation.definition.tag.end.xml,
+ text.xml meta.tag.sgml.doctype.xml punctuation.definition.tag.begin.xml,
+ text.xml meta.tag.sgml.doctype.xml punctuation.definition.tag.end.xml
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#5e81ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[XML] CDATA Tag</string>
+ <key>scope</key>
+ <string>
+ text.xml string.unquoted.cdata.xml punctuation.definition.string.begin.xml,
+ text.xml string.unquoted.cdata.xml punctuation.definition.string.end.xml
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#D08770</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[YAML] Entity Name Tag</string>
+ <key>scope</key>
+ <string>source.yaml entity.name.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+
+ <!--+ - - - - - - - - +
+ + Package Support +
+ + - - - - - - - - +-->
+ <!-- UI -->
+ <dict>
+ <key>name</key>
+ <string>[SublimeLinter] Warning</string>
+ <key>scope</key>
+ <string>sublimelinter.mark.warning</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ebcb8b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[SublimeLinter] Error</string>
+ <key>scope</key>
+ <string>sublimelinter.mark.error</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#bf616a</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[SublimeLinter] Gutter Mark</string>
+ <key>scope</key>
+ <string>sublimelinter.gutter-mark</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>lime</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[GitGutter] Ignored</string>
+ <key>scope</key>
+ <string>markup.ignored.git_gutter</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#616e88</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[GitGutter] Untracked</string>
+ <key>scope</key>
+ <string>markup.untracked.git_gutter</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#88c0d0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[GitGutter] Inserted</string>
+ <key>scope</key>
+ <string>markup.inserted.git_gutter</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a3be8c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[GitGutter] Changed</string>
+ <key>scope</key>
+ <string>markup.changed.git_gutter</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ebcb8b</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[GitGutter] Deleted</string>
+ <key>scope</key>
+ <string>markup.deleted.git_gutter</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#bf616a</string>
+ </dict>
+ </dict>
+
+ <!-- Languages -->
+ <dict>
+ <key>name</key>
+ <string>[Babel] Decorator</string>
+ <key>scope</key>
+ <string>
+ source.js tag.decorator.js entity.name.tag.js,
+ source.js tag.decorator.js punctuation.definition.tag.js
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d08770</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Babel] String (Interpolated/Template Expression)</string>
+ <key>scope</key>
+ <string>
+ source.js string.quoted.js,
+ source.js string.quoted.jsx,
+ source.js meta.class.js meta.class.property.js string.interpolated.js,
+ source.js string.interpolated.js,
+ source.js string.template.js
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a3be8c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Babel] Constant</string>
+ <key>scope</key>
+ <string>source.js variable.other.constant.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Babel] Object Key/Variable</string>
+ <key>scope</key>
+ <string>
+ source.js constant.other.object.key.js string.unquoted.label.js,
+ source.js variable.other.readwrite.js
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Babel] Arrow Function</string>
+ <key>scope</key>
+ <string>source.js meta.class.js meta.class.property.js variable.other.property.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#88c0d0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Babel] Static Variable</string>
+ <key>scope</key>
+ <string>source.js variable.other.property.static.js</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Babel] Class</string>
+ <key>scope</key>
+ <string>source.js variable.other.class.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Babel] String Interpolated/Template Expression Keyword</string>
+ <key>scope</key>
+ <string>
+ source.js string.interpolated.js keyword.other.substitution.begin.js,
+ source.js string.interpolated.js keyword.other.substitution.end.js,
+ source.js punctuation.definition.template-expression.begin.js,
+ source.js punctuation.definition.template-expression.end.js
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#5e81ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Babel] Spread Operator</string>
+ <key>scope</key>
+ <string>source.js keyword.operator.spread.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[Babel] Export</string>
+ <key>scope</key>
+ <string>source.js meta.export.js variable.other.readwrite.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+
+ <dict>
+ <key>name</key>
+ <string>[TypeScript] Inherited Class</string>
+ <key>scope</key>
+ <string>source.ts meta.class.ts entity.other.inherited-class.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[TypeScript] Class/Enum</string>
+ <key>scope</key>
+ <string>
+ source.ts entity.name.type.class.ts,
+ source.ts entity.name.type.enum.ts
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[TypeScript] Type</string>
+ <key>scope</key>
+ <string>source.ts entity.name.type.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[TypeScript] Primitive</string>
+ <key>scope</key>
+ <string>source.ts support.type.primitive.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#81a1c1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[TypeScript] Decorator</string>
+ <key>scope</key>
+ <string>
+ source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts variable.other.readwrite.ts,
+ source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts punctuation.decorator.ts
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d08770</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[TypeScript] Interpolated String Keyword</string>
+ <key>scope</key>
+ <string>
+ source.ts punctuation.definition.template-expression.begin.ts,
+ source.ts punctuation.definition.template-expression.end.ts
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#5e81ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[TypeScript] Interpolated String</string>
+ <key>scope</key>
+ <string>source.ts string.template.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a3be8c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[TypeScript] Static Support Function</string>
+ <key>scope</key>
+ <string>source.ts support.function.math.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[TypeScript] Constant</string>
+ <key>scope</key>
+ <string>
+ source.ts variable.other.constant.property.ts,
+ source.ts variable.other.enummember.ts,
+ source.ts variable.other.constant.ts
+ </string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#d8dee9</string>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>[TypeScript] JSDoc Tag</string>
+ <key>scope</key>
+ <string>source.ts comment.block.documentation.ts storage.type.class.jsdoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8fbcbb</string>
+ </dict>
+ </dict>
+ </array>
+ <key>uuid</key>
+ <string>8F96BB94-BF86-4D5E-9733-0428E66FB894</string>
+ </dict>
+</plist>
diff --git a/.config/yazi/keymap.toml b/.config/yazi/keymap.toml new file mode 100644 index 0000000..5a8bef4 --- /dev/null +++ b/.config/yazi/keymap.toml @@ -0,0 +1,9 @@ +[[mgr.prepend_keymap]] +on = ["c", "a"] +run = "plugin compress" +desc = "Archive selected files" + +[[mgr.prepend_keymap]] +on = "l" +run = "plugin smart-enter" +desc = "Enter the child directory, or open the file" diff --git a/.config/yazi/keymap.toml-1748684127440481 b/.config/yazi/keymap.toml-1748684127440481 new file mode 100644 index 0000000..ede28eb --- /dev/null +++ b/.config/yazi/keymap.toml-1748684127440481 @@ -0,0 +1,9 @@ +[[manager.prepend_keymap]] +on = ["c", "a"] +run = "plugin compress" +desc = "Archive selected files" + +[[manager.prepend_keymap]] +on = "l" +run = "plugin smart-enter" +desc = "Enter the child directory, or open the file" diff --git a/.config/yazi/package.toml b/.config/yazi/package.toml new file mode 100644 index 0000000..869975b --- /dev/null +++ b/.config/yazi/package.toml @@ -0,0 +1,12 @@ +[[plugin.deps]] +use = "KKV9/compress" +rev = "60b24af" +hash = "ee025be766240cc98e671754ac836da3" + +[[plugin.deps]] +use = "yazi-rs/plugins:smart-enter" +rev = "600614a" +hash = "c1a2739e9ef2d837030ccb4267be3ed1" + +[flavor] +deps = [] diff --git a/.config/yazi/plugins/compress.yazi/LICENSE b/.config/yazi/plugins/compress.yazi/LICENSE new file mode 100644 index 0000000..7ce7a2f --- /dev/null +++ b/.config/yazi/plugins/compress.yazi/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Ciarán O'Brien + +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/.config/yazi/plugins/compress.yazi/README.md b/.config/yazi/plugins/compress.yazi/README.md new file mode 100644 index 0000000..385fe38 --- /dev/null +++ b/.config/yazi/plugins/compress.yazi/README.md @@ -0,0 +1,48 @@ +# ~~archive.yazi~~ compress.yazi + +A Yazi plugin that compresses selected files to an archive. Supporting yazi versions 0.2.5 and up. + +## Supported file types + +| Extention | Unix Command | Windows Command | +| ------------- | ------------- | --------------- | +| .zip | zip -r | 7z a -tzip | +| .7z | 7z a | 7z a | +| .tar | tar rpf | tar rpf | +| .tar.gz | gzip | 7z a -tgzip | +| .tar.xz | xz | 7z a -txz | +| .tar.bz2 | bzip2 | 7z a -tbzip2 | +| .tar.zst | zstd | zstd | + + +**NOTE:** Windows users are required to install 7-Zip and add 7z.exe to the `path` environment variable, only tar archives will be available otherwise. + + +## Install + +```bash +# For Unix platforms +git clone https://github.com/KKV9/compress.yazi.git ~/.config/yazi/plugins/compress.yazi + +## For Windows +git clone https://github.com/KKV9/compress.yazi.git %AppData%\yazi\config\plugins\compress.yazi + +# Or with yazi plugin manager +ya pack -a KKV9/compress +``` + +- Add this to your `keymap.toml`: + +```toml +[[manager.prepend_keymap]] +on = [ "c", "a" ] +run = "plugin compress" +desc = "Archive selected files" +``` + +## Usage + + - Select files or folders to add, then press `c` `a` to create a new archive. + - Type a name for the new file. + - The file extention must match one of the supported filetype extentions. + - The desired archive/compression command must be installed on your system. diff --git a/.config/yazi/plugins/compress.yazi/main.lua b/.config/yazi/plugins/compress.yazi/main.lua new file mode 100644 index 0000000..333587f --- /dev/null +++ b/.config/yazi/plugins/compress.yazi/main.lua @@ -0,0 +1,228 @@ +-- Send error notification
+local function notify_error(message, urgency)
+ ya.notify({
+ title = "Archive",
+ content = message,
+ level = urgency,
+ timeout = 5,
+ })
+end
+
+-- Check for windows
+local is_windows = ya.target_family() == "windows"
+
+-- Make table of selected or hovered: path = filenames
+local selected_or_hovered = ya.sync(function()
+ local tab, paths, names, path_fnames = cx.active, {}, {}, {}
+ for _, u in pairs(tab.selected) do
+ paths[#paths + 1] = tostring(u:parent())
+ names[#names + 1] = tostring(u:name())
+ end
+ if #paths == 0 and tab.current.hovered then
+ paths[1] = tostring(tab.current.hovered.url:parent())
+ names[1] = tostring(tab.current.hovered.name)
+ end
+ for idx, name in ipairs(names) do
+ if not path_fnames[paths[idx]] then
+ path_fnames[paths[idx]] = {}
+ end
+ table.insert(path_fnames[paths[idx]], name)
+ end
+ return path_fnames, tostring(tab.current.cwd)
+end)
+
+-- Check if archive command is available
+local function is_command_available(cmd)
+ local stat_cmd
+
+ if is_windows then
+ stat_cmd = string.format("where %s > nul 2>&1", cmd)
+ else
+ stat_cmd = string.format("command -v %s >/dev/null 2>&1", cmd)
+ end
+
+ local cmd_exists = os.execute(stat_cmd)
+ if cmd_exists then
+ return true
+ else
+ return false
+ end
+end
+
+-- Archive command list --> string
+local function find_binary(cmd_list)
+ for _, cmd in ipairs(cmd_list) do
+ if is_command_available(cmd) then
+ return cmd
+ end
+ end
+ return cmd_list[1] -- Return first command as fallback
+end
+
+-- Check if file exists
+local function file_exists(name)
+ local f = io.open(name, "r")
+ if f ~= nil then
+ io.close(f)
+ return true
+ else
+ return false
+ end
+end
+
+-- Append filename to it's parent directory
+local function combine_url(path, file)
+ path, file = Url(path), Url(file)
+ return tostring(path:join(file))
+end
+
+return {
+ entry = function()
+ -- Exit visual mode
+ ya.manager_emit("escape", { visual = true })
+
+ -- Define file table and output_dir (pwd)
+ local path_fnames, output_dir = selected_or_hovered()
+
+ -- Get input
+ local output_name, event = ya.input({
+ title = "Create archive:",
+ position = { "top-center", y = 3, w = 40 },
+ })
+ if event ~= 1 then
+ return
+ end
+
+ -- Use appropriate archive command
+ local archive_commands = {
+ ["%.zip$"] = { command = "zip", args = { "-r" } },
+ ["%.7z$"] = { command = { "7z", "7zz" }, args = { "a" } },
+ ["%.tar.gz$"] = { command = "tar", args = { "rpf" }, compress = "gzip" },
+ ["%.tar.xz$"] = { command = "tar", args = { "rpf" }, compress = "xz" },
+ ["%.tar.bz2$"] = { command = "tar", args = { "rpf" }, compress = "bzip2" },
+ ["%.tar.zst$"] = { command = "tar", args = { "rpf" }, compress = "zstd", compress_args = { "--rm" } },
+ ["%.tar$"] = { command = "tar", args = { "rpf" } },
+ }
+
+ if is_windows then
+ archive_commands = {
+ ["%.zip$"] = { command = "7z", args = { "a", "-tzip" } },
+ ["%.7z$"] = { command = "7z", args = { "a" } },
+ ["%.tar.gz$"] = {
+ command = "tar",
+ args = { "rpf" },
+ compress = "7z",
+ compress_args = { "a", "-tgzip", "-sdel", output_name },
+ },
+ ["%.tar.xz$"] = {
+ command = "tar",
+ args = { "rpf" },
+ compress = "7z",
+ compress_args = { "a", "-txz", "-sdel", output_name },
+ },
+ ["%.tar.bz2$"] = {
+ command = "tar",
+ args = { "rpf" },
+ compress = "7z",
+ compress_args = { "a", "-tbzip2", "-sdel", output_name },
+ },
+ ["%.tar.zst$"] = { command = "tar", args = { "rpf" }, compress = "zstd", compress_args = { "--rm" } },
+ ["%.tar$"] = { command = "tar", args = { "rpf" } },
+ }
+ end
+
+ -- Match user input to archive command
+ local archive_cmd, archive_args, archive_compress, archive_compress_args
+ for pattern, cmd_pair in pairs(archive_commands) do
+ if output_name:match(pattern) then
+ archive_cmd = cmd_pair.command
+ archive_args = cmd_pair.args
+ archive_compress = cmd_pair.compress
+ archive_compress_args = cmd_pair.compress_args or {}
+ end
+ end
+
+ -- Check if archive command has multiple names
+ if type(archive_cmd) == "table" then
+ archive_cmd = find_binary(archive_cmd)
+ end
+
+ -- Check if no archive command is available for the extention
+ if not archive_cmd then
+ notify_error("Unsupported file extention", "error")
+ return
+ end
+
+ -- Exit if archive command is not available
+ if not is_command_available(archive_cmd) then
+ notify_error(string.format("%s not available", archive_cmd), "error")
+ return
+ end
+
+ -- Exit if compress command is not available
+ if archive_compress and not is_command_available(archive_compress) then
+ notify_error(string.format("%s compression not available", archive_compress), "error")
+ return
+ end
+
+ -- If file exists show overwrite prompt
+ local output_url = combine_url(output_dir, output_name)
+ while true do
+ if file_exists(output_url) then
+ local overwrite_answer = ya.input({
+ title = "Overwrite " .. output_name .. "? y/N:",
+ position = { "top-center", y = 3, w = 40 },
+ })
+ if overwrite_answer:lower() ~= "y" then
+ notify_error("Operation canceled", "warn")
+ return -- If no overwrite selected, exit
+ else
+ local rm_status, rm_err = os.remove(output_url)
+ if not rm_status then
+ notify_error(string.format("Failed to remove %s, exit code %s", output_name, rm_err), "error")
+ return
+ end -- If overwrite fails, exit
+ end
+ end
+ if archive_compress and not output_name:match("%.tar$") then
+ output_name = output_name:match("(.*%.tar)") -- Test for .tar and .tar.*
+ output_url = combine_url(output_dir, output_name) -- Update output_url
+ else
+ break
+ end
+ end
+
+ -- Add to output archive in each path, their respective files
+ for path, names in pairs(path_fnames) do
+ local archive_status, archive_err =
+ Command(archive_cmd):args(archive_args):arg(output_url):args(names):cwd(path):spawn():wait()
+ if not archive_status or not archive_status.success then
+ notify_error(
+ string.format(
+ "%s with selected files failed, exit code %s",
+ archive_args,
+ archive_status and archive_status.code or archive_err
+ ),
+ "error"
+ )
+ end
+ end
+
+ -- Use compress command if needed
+ if archive_compress then
+ local compress_status, compress_err =
+ Command(archive_compress):args(archive_compress_args):arg(output_name):cwd(output_dir):spawn():wait()
+ if not compress_status or not compress_status.success then
+ notify_error(
+ string.format(
+ "%s with %s failed, exit code %s",
+ archive_compress,
+ output_name,
+ compress_status and compress_status.code or compress_err
+ ),
+ "error"
+ )
+ end
+ end
+ end,
+}
diff --git a/.config/yazi/plugins/smart-enter.yazi/LICENSE b/.config/yazi/plugins/smart-enter.yazi/LICENSE new file mode 100644 index 0000000..fb5b1d6 --- /dev/null +++ b/.config/yazi/plugins/smart-enter.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/.config/yazi/plugins/smart-enter.yazi/README.md b/.config/yazi/plugins/smart-enter.yazi/README.md new file mode 100644 index 0000000..d4c6bbd --- /dev/null +++ b/.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 pack -a yazi-rs/plugins:smart-enter +``` + +## Usage + +Bind your <kbd>l</kbd> key to the plugin, in your `~/.config/yazi/keymap.toml`: + +```toml +[[manager.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/#manager.open +[enter]: https://yazi-rs.github.io/docs/configuration/keymap/#manager.enter diff --git a/.config/yazi/plugins/smart-enter.yazi/main.lua b/.config/yazi/plugins/smart-enter.yazi/main.lua new file mode 100644 index 0000000..37a465a --- /dev/null +++ b/.config/yazi/plugins/smart-enter.yazi/main.lua @@ -0,0 +1,10 @@ +--- @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.manager_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/.config/yazi/theme.toml b/.config/yazi/theme.toml new file mode 100644 index 0000000..651f857 --- /dev/null +++ b/.config/yazi/theme.toml @@ -0,0 +1,2 @@ +[flavor] +use = "nord" diff --git a/.config/yazi/yazi.toml b/.config/yazi/yazi.toml new file mode 100644 index 0000000..465b12c --- /dev/null +++ b/.config/yazi/yazi.toml @@ -0,0 +1,2 @@ +[opener] +edit = [{ run = 'nvim "$@"', block = true }] |
