better structure
This commit is contained in:
11
config/yazi/apply-color
Executable file
11
config/yazi/apply-color
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
path=$(dirname "$(readlink -f "$0")")
|
||||
. "$path"/../../utils/apply-color-helper
|
||||
|
||||
cp -f "$path"/../../assets/yazi-themes/catppuccin-mocha-"$colorName".toml "$path"/../yazi/theme.toml || {
|
||||
log_error "Failed to copy theme file"
|
||||
exit 1
|
||||
}
|
||||
|
||||
log_success "yazi"
|
||||
1
config/yazi/bookmark
Executable file
1
config/yazi/bookmark
Executable file
@@ -0,0 +1 @@
|
||||
backgrounds /home/kolkas/Pictures/backgrounds/ 0
|
||||
21
config/yazi/flavors/onedark.yazi/LICENSE
Normal file
21
config/yazi/flavors/onedark.yazi/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023 - sxyazi
|
||||
|
||||
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.
|
||||
21
config/yazi/flavors/onedark.yazi/LICENSE-tmtheme
Normal file
21
config/yazi/flavors/onedark.yazi/LICENSE-tmtheme
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Himanshu
|
||||
|
||||
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.
|
||||
37
config/yazi/flavors/onedark.yazi/README.md
Normal file
37
config/yazi/flavors/onedark.yazi/README.md
Normal file
@@ -0,0 +1,37 @@
|
||||
<div align="center">
|
||||
<img src="https://github.com/sxyazi/yazi/blob/main/assets/logo.png?raw=true" alt="Yazi logo" width="20%">
|
||||
</div>
|
||||
|
||||
<h3 align="center">
|
||||
Onedark Flavor for <a href="https://github.com/sxyazi/yazi">Yazi</a>
|
||||
</h3>
|
||||
|
||||
## 👀 Preview
|
||||
|
||||
<img src="preview.png" width="600" />
|
||||
|
||||
## 🎨 Installation
|
||||
|
||||
```bash
|
||||
# Linux/macOS
|
||||
git clone https://github.com/BennyOe/onedark.yazi.git ~/.config/yazi/flavors/onedark.yazi
|
||||
|
||||
# Windows
|
||||
git clone https://github.com/BennyOe/onedark.yazi.git %AppData%\yazi\config\flavors\onedark.yazi
|
||||
```
|
||||
|
||||
## ⚙️ Usage
|
||||
|
||||
Add the these lines to your `theme.toml` configuration file to use it:
|
||||
|
||||
|
||||
```toml
|
||||
[flavor]
|
||||
dark = "onedark"
|
||||
```
|
||||
|
||||
## 📜 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.
|
||||
151
config/yazi/flavors/onedark.yazi/flavor.toml
Normal file
151
config/yazi/flavors/onedark.yazi/flavor.toml
Normal file
@@ -0,0 +1,151 @@
|
||||
# : Manager {{{
|
||||
[manager]
|
||||
cwd = { fg = "#61AFEF" } # Blue
|
||||
|
||||
# Hovered
|
||||
hovered = { bg = "#282C34" } # Darkened background
|
||||
preview_hovered = { underline = true }
|
||||
|
||||
# Find
|
||||
find_keyword = { fg = "#E06C75", italic = true, underline = true } # Red
|
||||
find_position = { fg = "#E5C07B", italic = true } # Orange
|
||||
|
||||
# Marker
|
||||
marker_copied = { fg = "#ABB2BF", bg = "#98C379" } # Light gray on Green
|
||||
marker_cut = { fg = "#ABB2BF", bg = "#E06C75" } # Light gray on Red
|
||||
marker_marked = { fg = "#ABB2BF", bg = "#56B6C2" } # Light gray on cyan
|
||||
marker_selected = { fg = "#ABB2BF", bg = "#E5C07B" } # Light gray on Orange
|
||||
|
||||
# Tab
|
||||
tab_active = { bg = "#282C34", fg = "#61AFEF" } # Darkened background, Blue text
|
||||
tab_inactive = {}
|
||||
tab_width = 1
|
||||
|
||||
# Count
|
||||
count_copied = { fg = "#98C379", bg = "#282C34" } # Green on Darkened background
|
||||
count_cut = { fg = "#E06C75", bg = "#282C34" } # Red on Darkened background
|
||||
count_selected = { fg = "#98C379", bg = "#282C34" } # Green on Darkened background
|
||||
|
||||
# Border
|
||||
border_symbol = "│"
|
||||
border_style = { fg = "#282C34" } # Darkened background
|
||||
|
||||
# : }}}
|
||||
|
||||
# : Status {{{
|
||||
[status]
|
||||
separator_open = ""
|
||||
separator_close = ""
|
||||
separator_style = { fg = "#61AFEF", bg = "#282C34" } # Blue on Darkened background
|
||||
|
||||
# Mode
|
||||
mode_normal = { fg = "#282C34", bg = "#61AFEF", bold = true } # Dark gray on Blue
|
||||
mode_select = { fg = "#282C34", bg = "#61AFEF", bold = true } # Dark gray on Blue
|
||||
mode_unset = { fg = "#282C34", bg = "#61AFEF", bold = true } # Dark gray on Blue
|
||||
|
||||
# Progress
|
||||
progress_label = { fg = "#ABB2BF", bold = true } # Light gray
|
||||
progress_normal = { fg = "#98C379", bg = "#282C34" } # Green on Darkened background
|
||||
progress_error = { fg = "#E06C75", bg = "#282C34" } # Red on Darkened background
|
||||
|
||||
# Permissions
|
||||
permissions_t = { fg = "#98C379" } # Green
|
||||
permissions_r = { fg = "#E06C75" } # Red
|
||||
permissions_w = { fg = "#E5C07B" } # Orange
|
||||
permissions_x = { fg = "#98C379" } # Green
|
||||
permissions_s = { fg = "#ABB2BF" } # Light gray
|
||||
|
||||
# : }}}
|
||||
|
||||
# : Select {{{
|
||||
[select]
|
||||
border = { fg = "#98C379" } # Green
|
||||
active = { fg = "#E5C07B", bold = true } # Orange
|
||||
inactive = {}
|
||||
|
||||
# : }}}
|
||||
|
||||
# : Input {{{
|
||||
[input]
|
||||
border = { fg = "#98C379" } # Green
|
||||
title = {}
|
||||
value = {}
|
||||
selected = { reversed = true }
|
||||
|
||||
# : }}}
|
||||
|
||||
# : Completion {{{
|
||||
[completion]
|
||||
border = { fg = "#98C379" } # Green
|
||||
|
||||
# : }}}
|
||||
|
||||
# : Tasks {{{
|
||||
[tasks]
|
||||
border = { fg = "#98C379" } # Green
|
||||
title = {}
|
||||
hovered = { fg = "#E5C07B", underline = true } # Orange
|
||||
|
||||
# : }}}
|
||||
|
||||
# : Which {{{
|
||||
[which]
|
||||
mask = { bg = "#282C34" } # Darkened background
|
||||
cand = { fg = "#98C379" } # Green
|
||||
rest = { fg = "#ABB2BF" } # Light gray
|
||||
desc = { fg = "#E5C07B" } # Orange
|
||||
separator = " "
|
||||
separator_style = { fg = "#ABB2BF" } # Light gray
|
||||
|
||||
# : }}}
|
||||
|
||||
# : Help {{{
|
||||
[help]
|
||||
on = { fg = "#98C379" } # Green
|
||||
run = { fg = "#E5C07B" } # Orange
|
||||
hovered = { reversed = true, bold = true }
|
||||
footer = { fg = "#ABB2BF", bg = "#000000" } # Light gray on Black
|
||||
|
||||
# : }}}
|
||||
|
||||
# : Notify {{{
|
||||
[notify]
|
||||
title_info = { fg = "#98C379" } # Green
|
||||
title_warn = { fg = "#E06C75" } # Red
|
||||
title_error = { fg = "#E5C07B" } # Orange
|
||||
|
||||
# : }}}
|
||||
|
||||
# : File-specific styles {{{
|
||||
|
||||
[filetype]
|
||||
|
||||
rules = [
|
||||
# Images
|
||||
{ mime = "image/*", fg = "#E5C07B" }, # Orange
|
||||
|
||||
# Media
|
||||
{ mime = "video/*", fg = "#E06C75" }, # Red
|
||||
{ mime = "audio/*", fg = "#E06C75" }, # Red
|
||||
|
||||
# Archives
|
||||
{ mime = "application/zip", fg = "#C678DD" }, # Magenta
|
||||
{ mime = "application/x-tar", fg = "#C678DD" }, # Magenta
|
||||
{ mime = "application/x-bzip*", fg = "#C678DD" }, # Magenta
|
||||
{ mime = "application/x-bzip2", fg = "#C678DD" }, # Magenta
|
||||
{ mime = "application/x-7z-compressed", fg = "#C678DD" }, # Magenta
|
||||
{ mime = "application/x-rar", fg = "#C678DD" }, # Magenta
|
||||
{ mime = "application/x-xz", fg = "#C678DD" }, # Magenta
|
||||
|
||||
# Documents
|
||||
{ mime = "application/doc", fg = "#98C379" }, # Green
|
||||
{ mime = "application/pdf", fg = "#98C379" }, # Green
|
||||
{ mime = "application/rtf", fg = "#98C379" }, # Green
|
||||
{ mime = "application/vnd.*", fg = "#98C379" }, # Green
|
||||
|
||||
# Fallback
|
||||
{ name = "*", fg = "#ABB2BF" }, # Blue
|
||||
{ name = "*/", fg = "#61AFEF" } # Blue
|
||||
]
|
||||
|
||||
# : }}}
|
||||
BIN
config/yazi/flavors/onedark.yazi/preview.png
Normal file
BIN
config/yazi/flavors/onedark.yazi/preview.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1010 KiB |
560
config/yazi/flavors/onedark.yazi/tmtheme.xml
Normal file
560
config/yazi/flavors/onedark.yazi/tmtheme.xml
Normal file
@@ -0,0 +1,560 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>author</key>
|
||||
<string>Template: Chris Kempson, Scheme: Lalit Magant (http://github.com/tilal6991)</string>
|
||||
<key>name</key>
|
||||
<string>Base16 OneDark</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.base16.onedark</string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>gutterSettings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#353b45</string>
|
||||
<key>divider</key>
|
||||
<string>#353b45</string>
|
||||
<key>foreground</key>
|
||||
<string>#545862</string>
|
||||
<key>selectionBackground</key>
|
||||
<string>#3e4451</string>
|
||||
<key>selectionForeground</key>
|
||||
<string>#565c64</string>
|
||||
</dict>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#282c34</string>
|
||||
<key>caret</key>
|
||||
<string>#abb2bf</string>
|
||||
<key>foreground</key>
|
||||
<string>#abb2bf</string>
|
||||
<key>invisibles</key>
|
||||
<string>#545862</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#54586255</string>
|
||||
<key>selection</key>
|
||||
<string>#3e4451</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Text</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#abb2bf</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comments</string>
|
||||
<key>scope</key>
|
||||
<string>comment, punctuation.definition.comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#545862</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.string, punctuation.definition.variable, punctuation.definition.string, punctuation.definition.parameters, punctuation.definition.string, punctuation.definition.array</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#abb2bf</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Delimiters</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#abb2bf</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operators</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#abb2bf</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keywords</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c678dd</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variables</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e06c75</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Functions</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, meta.require, support.function.any-method, variable.function, variable.annotation, support.macro</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#61afef</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Labels</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.label</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#be5046</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Classes</string>
|
||||
<key>scope</key>
|
||||
<string>support.class, entity.name.class, entity.name.type.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e5c07b</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Classes</string>
|
||||
<key>scope</key>
|
||||
<string>meta.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c8ccd4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Methods</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.special-method</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#61afef</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c678dd</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#56b6c2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Strings, Inherited Class</string>
|
||||
<key>scope</key>
|
||||
<string>string, constant.other.symbol, entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#98c379</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Integers</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d19a66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Floats</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d19a66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Boolean</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d19a66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constants</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d19a66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tags</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e06c75</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Attributes</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d19a66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Attribute IDs</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name.id, punctuation.definition.entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#61afef</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Selector</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c678dd</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Values</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d19a66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Headings</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading punctuation.definition.heading, entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#61afef</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Units</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.unit</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d19a66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Bold</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold, punctuation.definition.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#e5c07b</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Italic</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic, punctuation.definition.italic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#c678dd</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Code</string>
|
||||
<key>scope</key>
|
||||
<string>markup.raw.inline</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#98c379</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Link Text</string>
|
||||
<key>scope</key>
|
||||
<string>string.other.link, punctuation.definition.string.end.markdown, punctuation.definition.string.begin.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e06c75</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Link Url</string>
|
||||
<key>scope</key>
|
||||
<string>meta.link</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d19a66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Lists</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e06c75</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Quotes</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d19a66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Separator</string>
|
||||
<key>scope</key>
|
||||
<string>meta.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#3e4451</string>
|
||||
<key>foreground</key>
|
||||
<string>#abb2bf</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#98c379</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e06c75</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c678dd</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Colors</string>
|
||||
<key>scope</key>
|
||||
<string>constant.other.color</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#56b6c2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Regular Expressions</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#56b6c2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Escape Characters</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.escape</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#56b6c2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.embedded, variable.interpolation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c678dd</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Illegal</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.illegal</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#e06c75</string>
|
||||
<key>foreground</key>
|
||||
<string>#c8ccd4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Broken</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.broken</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#d19a66</string>
|
||||
<key>foreground</key>
|
||||
<string>#282c34</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#be5046</string>
|
||||
<key>foreground</key>
|
||||
<string>#c8ccd4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Unimplemented</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.unimplemented</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#545862</string>
|
||||
<key>foreground</key>
|
||||
<string>#c8ccd4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>uuid</string>
|
||||
</dict>
|
||||
</plist>
|
||||
29
config/yazi/init.lua
Executable file
29
config/yazi/init.lua
Executable file
@@ -0,0 +1,29 @@
|
||||
require("yaziline"):setup({
|
||||
separator_style = "angly",
|
||||
select_symbol = "",
|
||||
yank_symbol = "",
|
||||
filename_max_length = 24, -- trim when filename > 24
|
||||
filename_trim_length = 6, -- trim 6 chars from both ends
|
||||
})
|
||||
-- require("starship"):setup {
|
||||
-- config_file = "~/.config/yazi/starship.toml",
|
||||
-- }
|
||||
require("git"):setup({})
|
||||
|
||||
Status:children_add(function()
|
||||
local h = cx.active.current.hovered
|
||||
if h == nil or ya.target_family() ~= "unix" then
|
||||
return ui.Line({})
|
||||
end
|
||||
|
||||
return ui.Line({
|
||||
ui.Span(ya.user_name(h.cha.uid) or tostring(h.cha.uid)):fg("magenta"),
|
||||
ui.Span(":"),
|
||||
ui.Span(ya.group_name(h.cha.gid) or tostring(h.cha.gid)):fg("magenta"),
|
||||
ui.Span(" "),
|
||||
})
|
||||
end, 500, Status.RIGHT)
|
||||
|
||||
require("yamb"):setup({
|
||||
cli = "fzf",
|
||||
})
|
||||
546
config/yazi/keymap.toml
Executable file
546
config/yazi/keymap.toml
Executable file
@@ -0,0 +1,546 @@
|
||||
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config0
|
||||
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
|
||||
"$schema" = "https://yazi-rs.github.io/schemas/keymap.json"
|
||||
|
||||
[mgr]
|
||||
prepend_keymap = [
|
||||
{ on = "l", run = 'plugin smart-enter' },
|
||||
{ on = "<Enter>", run = 'plugin smart-enter' },
|
||||
{ on = "S", run = 'shell "$SHELL" --block --confirm' },
|
||||
{ on = [
|
||||
"#",
|
||||
"a",
|
||||
], run = "plugin yamb save", desc = "Add bookmark" },
|
||||
{ on = [
|
||||
"#",
|
||||
"#",
|
||||
], run = "plugin yamb jump_by_fzf", desc = "Jump bookmark by fzf" },
|
||||
{ on = [
|
||||
"#",
|
||||
"r",
|
||||
], run = "plugin yamb delete_by_key", desc = "Delete bookmark by key" },
|
||||
{ on = [
|
||||
"P",
|
||||
], run = "spot", desc = "Open spotter" },
|
||||
{ on = [
|
||||
"c",
|
||||
"a",
|
||||
], run = "plugin compress", desc = "Archive selected files" },
|
||||
]
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
|
||||
{ on = "<C-[>", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
|
||||
#{ on = "q", run = "quit", desc = "Exit the process" },
|
||||
{ on = "q", run = "close", desc = "Close the current tab, or quit if it is last tab" },
|
||||
{ on = "Q", run = "quit --no-cwd-file", desc = "Exit the process without writing cwd-file" },
|
||||
{ on = "<C-z>", run = "suspend", desc = "Suspend the process" },
|
||||
|
||||
{ on = "R", run = "reload", desc = "Refresh the current directory" },
|
||||
|
||||
# Hopping
|
||||
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<C-k>", run = "arrow -50%", desc = "Move cursor up half page" },
|
||||
{ on = "<C-j>", run = "arrow 50%", desc = "Move cursor down half page" },
|
||||
|
||||
{ on = "K", run = "arrow -5", desc = "Move cursor up 5 rows" },
|
||||
{ on = "J", run = "arrow 5", desc = "Move cursor down 5 rows" },
|
||||
|
||||
{ on = "<S-PageUp>", run = "arrow -50%", desc = "Move cursor up half page" },
|
||||
{ on = "<S-PageDown>", run = "arrow 50%", desc = "Move cursor down half page" },
|
||||
{ on = "<PageUp>", run = "arrow -100%", desc = "Move cursor up one page" },
|
||||
{ on = "<PageDown>", run = "arrow 100%", desc = "Move cursor down one page" },
|
||||
|
||||
{ on = [
|
||||
"g",
|
||||
"g",
|
||||
], run = "arrow bot", desc = "Move cursor to the top" },
|
||||
{ on = "G", run = "arrow top", desc = "Move cursor to the bottom" },
|
||||
|
||||
# Navigation
|
||||
{ on = "h", run = "leave", desc = "Go back to the parent directory" },
|
||||
|
||||
{ on = "<Left>", run = "leave", desc = "Go back to the parent directory" },
|
||||
{ on = "<Right>", run = "enter", desc = "Enter the child directory" },
|
||||
|
||||
{ on = "N", run = "back", desc = "Go back to the previous directory" },
|
||||
{ on = "I", run = "forward", desc = "Go forward to the next directory" },
|
||||
|
||||
# Selection
|
||||
{ on = "<Space>", run = [
|
||||
"toggle",
|
||||
"arrow 1",
|
||||
], desc = "Toggle the current selection state" },
|
||||
{ on = "v", run = "toggle_all", desc = "Enter visual mode (selection mode)" },
|
||||
{ on = "V", run = "visual_mode --unset", desc = "Enter visual mode (unset mode)" },
|
||||
# { on = "<C-a>", run = "select_all --state=true", desc = "Select all files" },
|
||||
# { on = "<C-r>", run = "select_all --state=none", desc = "Inverse selection of all files" },
|
||||
|
||||
# Find
|
||||
{ on = "<C-p>", run = "plugin fzf", desc = "Jump to a directory or reveal a file using fzf" },
|
||||
{ on = [
|
||||
"z",
|
||||
"o",
|
||||
], run = "plugin zoxide", desc = "Jump to a directory using zoxide" },
|
||||
# { on = "f", run = "search fd", desc = "Search files by name using fd" },
|
||||
{ on = "F", run = "search rg", desc = "Search files by content using ripgrep" },
|
||||
{ on = "<C-s>", run = "escape --search", desc = "Cancel the ongoing search" },
|
||||
{ on = "f", run = "filter --smart", desc = "Filter files" },
|
||||
{ on = "/", run = "find --smart", desc = "Find next file" },
|
||||
{ on = "?", run = "find --previous --smart", desc = "Find previous file" },
|
||||
{ on = "n", run = "find_arrow", desc = "Go to the next found" },
|
||||
{ on = "N", run = "find_arrow --previous", desc = "Go to the previous found" },
|
||||
|
||||
# Shell
|
||||
{ on = "<C-g>", run = "shell --confirm --block lazygit", desc = "Lazygit" },
|
||||
{ on = ";", run = "shell --interactive", desc = "Run a shell command" },
|
||||
{ on = ":", run = "shell --block --interactive", desc = "Run a shell command (block until finishes)" },
|
||||
|
||||
# Hidden files
|
||||
{ on = ".", run = "hidden toggle", desc = "Toggle the visibility of hidden files" },
|
||||
|
||||
# Open
|
||||
{ on = "r", run = "open --interactive", desc = "Open selected files interactively" },
|
||||
|
||||
# Create
|
||||
{ on = "T", run = "create", desc = "Create a file (ends with / for directories)" },
|
||||
{ on = "M", run = "create --dir", desc = "Create a directory" },
|
||||
|
||||
# Rename
|
||||
{ on = [
|
||||
"c",
|
||||
"w",
|
||||
], run = "rename --empty=all", desc = "Rename selected file(s)" },
|
||||
{ on = "k", run = "rename --cursor=start", desc = "Rename selected file(s)" },
|
||||
{ on = "a", run = "rename --cursor=before_ext", desc = "Rename selected file(s)" },
|
||||
{ on = "A", run = "rename --cursor=end", desc = "Rename selected file(s)" },
|
||||
|
||||
# Operation: D
|
||||
{ on = [
|
||||
"d",
|
||||
"d",
|
||||
], run = "yank --cut", desc = "Yank selected files (cut)" },
|
||||
# { on = ["d"], run = "remove", desc = "Trash selected files" },
|
||||
{ on = [
|
||||
"d",
|
||||
"D",
|
||||
], run = "remove --permanently", desc = "Permanently delete selected files" },
|
||||
|
||||
# Operation: Y
|
||||
{ on = [
|
||||
"y",
|
||||
"y",
|
||||
], run = "yank", desc = "Yank selected files (copy)" },
|
||||
{ on = [
|
||||
"y",
|
||||
"p",
|
||||
], run = "copy path", desc = "Copy the file path" },
|
||||
{ on = [
|
||||
"y",
|
||||
"d",
|
||||
], run = "copy dirname", desc = "Copy the directory path" },
|
||||
{ on = [
|
||||
"y",
|
||||
"f",
|
||||
], run = "copy filename", desc = "Copy the filename" },
|
||||
{ on = [
|
||||
"y",
|
||||
"n",
|
||||
], run = "copy name_without_ext", desc = "Copy the filename without extension" },
|
||||
{ on = [
|
||||
"y",
|
||||
"c",
|
||||
], run = "unyank", desc = "Cancel the yank status" },
|
||||
|
||||
# Operation: P
|
||||
{ on = [
|
||||
"p",
|
||||
"p",
|
||||
], run = "paste", desc = "Paste yanked files" },
|
||||
{ on = [
|
||||
"p",
|
||||
"P",
|
||||
], run = "paste --force", desc = "Paste yanked files (overwrite if the destination exists)" },
|
||||
{ on = [
|
||||
"p",
|
||||
"l",
|
||||
], run = "link", desc = "Symlink the absolute path of yanked files" },
|
||||
{ on = [
|
||||
"p",
|
||||
"L",
|
||||
], run = "link --relative", desc = "Symlink the relative path of yanked files" },
|
||||
{ on = [
|
||||
"p",
|
||||
"h",
|
||||
], run = "hardlink", desc = "Hardlink yanked files" },
|
||||
|
||||
# Linemode
|
||||
{ on = [
|
||||
"m",
|
||||
"s",
|
||||
], run = "linemode size", desc = "Set linemode to size" },
|
||||
{ on = [
|
||||
"m",
|
||||
"p",
|
||||
], run = "linemode perm", desc = "Set linemode to permissions" },
|
||||
{ on = [
|
||||
"m",
|
||||
"c",
|
||||
], run = "linemode btime", desc = "Set linemode to btime" },
|
||||
{ on = [
|
||||
"m",
|
||||
"m",
|
||||
], run = "linemode mtime", desc = "Set linemode to mtime" },
|
||||
{ on = [
|
||||
"m",
|
||||
"o",
|
||||
], run = "linemode owner", desc = "Set linemode to owner" },
|
||||
{ on = [
|
||||
"m",
|
||||
"n",
|
||||
], run = "linemode none", desc = "Set linemode to none" },
|
||||
|
||||
|
||||
# Sorting
|
||||
{ on = [
|
||||
"o",
|
||||
"M",
|
||||
], run = [
|
||||
"sort mtime --reverse=no",
|
||||
"linemode mtime",
|
||||
], desc = "Sort by modified time" },
|
||||
{ on = [
|
||||
"o",
|
||||
"m",
|
||||
], run = [
|
||||
"sort mtime --reverse",
|
||||
"linemode mtime",
|
||||
], desc = "Sort by modified time (reverse)" },
|
||||
{ on = [
|
||||
"o",
|
||||
"C",
|
||||
], run = [
|
||||
"sort btime --reverse=no",
|
||||
"linemode btime",
|
||||
], desc = "Sort by created time" },
|
||||
{ on = [
|
||||
"o",
|
||||
"c",
|
||||
], run = [
|
||||
"sort btime --reverse",
|
||||
"linemode btime",
|
||||
], desc = "Sort by created time (reverse)" },
|
||||
{ on = [
|
||||
"o",
|
||||
"E",
|
||||
], run = "sort extension --reverse=no", desc = "Sort by extension" },
|
||||
{ on = [
|
||||
"o",
|
||||
"e",
|
||||
], run = "sort extension --reverse", desc = "Sort by extension (reverse)" },
|
||||
{ on = [
|
||||
"o",
|
||||
"a",
|
||||
], run = "sort alphabetical --reverse=no", desc = "Sort alphabetically" },
|
||||
{ on = [
|
||||
"o",
|
||||
"A",
|
||||
], run = "sort alphabetical --reverse", desc = "Sort alphabetically (reverse)" },
|
||||
{ on = [
|
||||
"o",
|
||||
"n",
|
||||
], run = "sort natural --reverse=no", desc = "Sort naturally" },
|
||||
{ on = [
|
||||
"o",
|
||||
"N",
|
||||
], run = "sort natural --reverse", desc = "Sort naturally (reverse)" },
|
||||
{ on = [
|
||||
"o",
|
||||
"s",
|
||||
], run = [
|
||||
"sort size --reverse=no",
|
||||
"linemode size",
|
||||
], desc = "Sort by size" },
|
||||
{ on = [
|
||||
"o",
|
||||
"S",
|
||||
], run = [
|
||||
"sort size --reverse",
|
||||
"linemode size",
|
||||
], desc = "Sort by size (reverse)" },
|
||||
|
||||
# Goto
|
||||
{ on = [
|
||||
"g",
|
||||
"r",
|
||||
], run = "cd /", desc = "Go to the root directory" },
|
||||
{ on = [
|
||||
"g",
|
||||
"h",
|
||||
], run = "cd ~", desc = "Go to the home directory" },
|
||||
{ on = [
|
||||
"g",
|
||||
"c",
|
||||
], run = "cd ~/.config", desc = "Go to the config directory" },
|
||||
{ on = [
|
||||
"g",
|
||||
"d",
|
||||
], run = "cd ~/Downloads", desc = "Go to the downloads directory" },
|
||||
{ on = [
|
||||
"g",
|
||||
"D",
|
||||
], run = "cd ~/Desktop", desc = "Go to the desktop directory" },
|
||||
{ on = [
|
||||
"g",
|
||||
"i",
|
||||
], run = "cd ~/Github", desc = "Go to the Github directory" },
|
||||
{ on = [
|
||||
"g",
|
||||
"f",
|
||||
"f",
|
||||
], run = "cd ~/.config" },
|
||||
{ on = [
|
||||
"g",
|
||||
"f",
|
||||
"n",
|
||||
], run = "cd ~/.config/nvim" },
|
||||
{ on = [
|
||||
"g",
|
||||
"f",
|
||||
"y",
|
||||
], run = "cd ~/.config/yazi" },
|
||||
{ on = [
|
||||
"g",
|
||||
"f",
|
||||
"l",
|
||||
], run = "cd ~/.config/jesseduffield/lazygit" },
|
||||
{ on = [
|
||||
"g",
|
||||
"<Space>",
|
||||
], run = "cd --interactive", desc = "Go to a directory interactively" },
|
||||
|
||||
# Tabs
|
||||
{ on = [
|
||||
"t",
|
||||
"u",
|
||||
], run = "tab_create --current", desc = "Create a new tab with CWD" },
|
||||
{ on = [
|
||||
"t",
|
||||
"n",
|
||||
], run = "tab_switch -1 --relative", desc = "Switch to the previous tab" },
|
||||
{ on = [
|
||||
"t",
|
||||
"i",
|
||||
], run = "tab_switch 1 --relative", desc = "Switch to the next tab" },
|
||||
#{ on = ["t", ""], run = "tab_swap -1", desc = "Swap current tab with previous tab" },
|
||||
#{ on = ["}"], run = "tab_swap 1", desc = "Swap current tab with next tab" },
|
||||
{ on = "1", run = "tab_switch 0", desc = "Switch to the first tab" },
|
||||
{ on = "2", run = "tab_switch 1", desc = "Switch to the second tab" },
|
||||
{ on = "3", run = "tab_switch 2", desc = "Switch to the third tab" },
|
||||
{ on = "4", run = "tab_switch 3", desc = "Switch to the fourth tab" },
|
||||
{ on = "5", run = "tab_switch 4", desc = "Switch to the fifth tab" },
|
||||
{ on = "6", run = "tab_switch 5", desc = "Switch to the sixth tab" },
|
||||
{ on = "7", run = "tab_switch 6", desc = "Switch to the seventh tab" },
|
||||
{ on = "8", run = "tab_switch 7", desc = "Switch to the eighth tab" },
|
||||
{ on = "9", run = "tab_switch 8", desc = "Switch to the ninth tab" },
|
||||
|
||||
# Tasks
|
||||
{ on = "w", run = "tasks_show", desc = "Show task manager" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[spot]
|
||||
keymap = [
|
||||
# Navigation
|
||||
{ on = "u", run = "arrow -1", desc = "Move up" },
|
||||
{ on = "e", run = "arrow 1", desc = "Move down" },
|
||||
|
||||
# Close
|
||||
{ on = "<Esc>", run = "close", desc = "Close spotter" },
|
||||
{ on = "q", run = "close", desc = "Close spotter" },
|
||||
|
||||
# Swipe through files
|
||||
{ on = "<C-u>", run = "swipe -5", desc = "Swipe 5 files up" },
|
||||
{ on = "<C-e>", run = "swipe 5", desc = "Swipe 5 files down" },
|
||||
|
||||
# Copy content
|
||||
{ on = "y", run = "copy cell", desc = "Copy cell content" },
|
||||
]
|
||||
|
||||
[tasks]
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "close", desc = "Close task manager" },
|
||||
{ on = "<C-[>", run = "close", desc = "Close task manager" },
|
||||
{ on = "<C-c>", run = "close", desc = "Close task manager" },
|
||||
{ on = "w", run = "close", desc = "Close task manager" },
|
||||
|
||||
{ on = "u", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "e", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Enter>", run = "inspect", desc = "Inspect the task" },
|
||||
{ on = "x", run = "cancel", desc = "Cancel the task" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[pick]
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "close", desc = "Cancel selection" },
|
||||
{ on = "<C-[>", run = "close", desc = "Cancel selection" },
|
||||
{ on = "<C-c>", run = "close", desc = "Cancel selection" },
|
||||
{ on = "<Enter>", run = "close --submit", desc = "Submit the selection" },
|
||||
|
||||
{ on = "u", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "e", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[input]
|
||||
|
||||
keymap = [
|
||||
{ on = "<C-c>", run = "close", desc = "Cancel input" },
|
||||
{ on = "<Enter>", run = "close --submit", desc = "Submit the input" },
|
||||
{ on = "<Esc>", run = "escape", desc = "Go back the normal mode, or cancel input" },
|
||||
{ on = "<C-[>", run = "escape", desc = "Go back the normal mode, or cancel input" },
|
||||
|
||||
# Mode
|
||||
{ on = "k", run = "insert", desc = "Enter insert mode" },
|
||||
{ on = "a", run = "insert --append", desc = "Enter append mode" },
|
||||
{ on = "K", run = [
|
||||
"move -999",
|
||||
"insert",
|
||||
], desc = "Move to the BOL, and enter insert mode" },
|
||||
{ on = "A", run = [
|
||||
"move 999",
|
||||
"insert --append",
|
||||
], desc = "Move to the EOL, and enter append mode" },
|
||||
{ on = "v", run = "visual", desc = "Enter visual mode" },
|
||||
{ on = "V", run = [
|
||||
"move -999",
|
||||
"visual",
|
||||
"move 999",
|
||||
], desc = "Enter visual mode and select all" },
|
||||
|
||||
# Character-wise movement
|
||||
{ on = "n", run = "move -1", desc = "Move back a character" },
|
||||
{ on = "i", run = "move 1", desc = "Move forward a character" },
|
||||
{ on = "<Left>", run = "move -1", desc = "Move back a character" },
|
||||
{ on = "<Right>", run = "move 1", desc = "Move forward a character" },
|
||||
{ on = "<C-b>", run = "move -1", desc = "Move back a character" },
|
||||
{ on = "<C-f>", run = "move 1", desc = "Move forward a character" },
|
||||
|
||||
# Word-wise movement
|
||||
{ on = "b", run = "backward", desc = "Move back to the start of the current or previous word" },
|
||||
{ on = "w", run = "forward", desc = "Move forward to the start of the next word" },
|
||||
{ on = "h", run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
|
||||
{ on = "<A-b>", run = "backward", desc = "Move back to the start of the current or previous word" },
|
||||
{ on = "<A-f>", run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
|
||||
|
||||
# Line-wise movement
|
||||
{ on = "N", run = "move -999", desc = "Move to the BOL" },
|
||||
{ on = "I", run = "move 999", desc = "Move to the EOL" },
|
||||
{ on = "<C-a>", run = "move -999", desc = "Move to the BOL" },
|
||||
{ on = "<C-e>", run = "move 999", desc = "Move to the EOL" },
|
||||
{ on = "<Home>", run = "move -999", desc = "Move to the BOL" },
|
||||
{ on = "<End>", run = "move 999", desc = "Move to the EOL" },
|
||||
|
||||
# Delete
|
||||
{ on = "<Backspace>", run = "backspace", desc = "Delete the character before the cursor" },
|
||||
{ on = "<Delete>", run = "backspace --under", desc = "Delete the character under the cursor" },
|
||||
{ on = "<C-h>", run = "backspace", desc = "Delete the character before the cursor" },
|
||||
{ on = "<C-d>", run = "backspace --under", desc = "Delete the character under the cursor" },
|
||||
|
||||
# Kill
|
||||
{ on = "<C-u>", run = "kill bol", desc = "Kill backwards to the BOL" },
|
||||
{ on = "<C-k>", run = "kill eol", desc = "Kill forwards to the EOL" },
|
||||
{ on = "<C-w>", run = "kill backward", desc = "Kill backwards to the start of the current word" },
|
||||
{ on = "<A-d>", run = "kill forward", desc = "Kill forwards to the end of the current word" },
|
||||
|
||||
# Cut/Yank/Paste
|
||||
{ on = "d", run = "delete --cut", desc = "Cut the selected characters" },
|
||||
{ on = "D", run = [
|
||||
"delete --cut",
|
||||
"move 999",
|
||||
], desc = "Cut until the EOL" },
|
||||
{ on = "c", run = "delete --cut --insert", desc = "Cut the selected characters, and enter insert mode" },
|
||||
{ on = "C", run = [
|
||||
"delete --cut --insert",
|
||||
"move 999",
|
||||
], desc = "Cut until the EOL, and enter insert mode" },
|
||||
{ on = "x", run = [
|
||||
"delete --cut",
|
||||
"move 1 --in-operating",
|
||||
], desc = "Cut the current character" },
|
||||
{ on = "y", run = "yank", desc = "Copy the selected characters" },
|
||||
{ on = "p", run = "paste", desc = "Paste the copied characters after the cursor" },
|
||||
{ on = "P", run = "paste --before", desc = "Paste the copied characters before the cursor" },
|
||||
|
||||
# Undo/Redo
|
||||
{ on = "l", run = "undo", desc = "Undo the last operation" },
|
||||
{ on = "<C-r>", run = "redo", desc = "Redo the last operation" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[completion]
|
||||
|
||||
keymap = [
|
||||
{ on = "<C-c>", run = "close", desc = "Cancel completion" },
|
||||
{ on = "<Tab>", run = "close --submit", desc = "Submit the completion" },
|
||||
{ on = "<Enter>", run = [
|
||||
"close --submit",
|
||||
"close_input --submit",
|
||||
], desc = "Submit the completion and input" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<C-u>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<C-e>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[help]
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "escape", desc = "Clear the filter, or hide the help" },
|
||||
{ on = "<C-[>", run = "escape", desc = "Clear the filter, or hide the help" },
|
||||
{ on = "q", run = "close", desc = "Exit the process" },
|
||||
{ on = "<C-c>", run = "close", desc = "Hide the help" },
|
||||
|
||||
# Navigation
|
||||
{ on = "u", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "e", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
# Filtering
|
||||
{ on = "f", run = "filter", desc = "Apply a filter for the help items" },
|
||||
]
|
||||
355
config/yazi/keymap.toml-1748477627476447
Executable file
355
config/yazi/keymap.toml-1748477627476447
Executable file
@@ -0,0 +1,355 @@
|
||||
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config0
|
||||
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
|
||||
"$schema" = "https://yazi-rs.github.io/schemas/keymap.json"
|
||||
|
||||
[manager]
|
||||
prepend_keymap = [
|
||||
{ on = "l", run = 'plugin smart-enter' },
|
||||
{ on = "<Enter>", run = 'plugin smart-enter' },
|
||||
{ on = "S", run = 'shell "$SHELL" --block --confirm' },
|
||||
{ on = [
|
||||
"'",
|
||||
"a",
|
||||
], run = "plugin yamb save", desc = "Add bookmark" },
|
||||
{ on = [
|
||||
"'",
|
||||
"'",
|
||||
], run = "plugin yamb jump_by_fzf", desc = "Jump bookmark by fzf" },
|
||||
{ on = [
|
||||
"'",
|
||||
"r",
|
||||
], run = "plugin yamb delete_by_key", desc = "Delete bookmark by key" },
|
||||
{ on = [
|
||||
"P",
|
||||
], run = "spot", desc = "Open spotter" },
|
||||
{ on = [
|
||||
"c",
|
||||
"a",
|
||||
], run = "plugin compress", desc = "Archive selected files" },
|
||||
]
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
|
||||
{ on = "<C-[>", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
|
||||
#{ on = "q", run = "quit", desc = "Exit the process" },
|
||||
{ on = "q", run = "close", desc = "Close the current tab, or quit if it is last tab" },
|
||||
{ on = "Q", run = "quit --no-cwd-file", desc = "Exit the process without writing cwd-file" },
|
||||
{ on = "<C-z>", run = "suspend", desc = "Suspend the process" },
|
||||
|
||||
{ on = "R", run = "reload", desc = "Refresh the current directory" },
|
||||
|
||||
# Hopping
|
||||
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<C-k>", run = "arrow -50%", desc = "Move cursor up half page" },
|
||||
{ on = "<C-j>", run = "arrow 50%", desc = "Move cursor down half page" },
|
||||
|
||||
{ on = "K", run = "arrow -5", desc = "Move cursor up 5 rows" },
|
||||
{ on = "J", run = "arrow 5", desc = "Move cursor down 5 rows" },
|
||||
|
||||
{ on = "<S-PageUp>", run = "arrow -50%", desc = "Move cursor up half page" },
|
||||
{ on = "<S-PageDown>", run = "arrow 50%", desc = "Move cursor down half page" },
|
||||
{ on = "<PageUp>", run = "arrow -100%", desc = "Move cursor up one page" },
|
||||
{ on = "<PageDown>", run = "arrow 100%", desc = "Move cursor down one page" },
|
||||
|
||||
{ on = ["g", "g"], run = "arrow bot", desc = "Move cursor to the top" },
|
||||
{ on = "G", run = "arrow top", desc = "Move cursor to the bottom" },
|
||||
|
||||
# Navigation
|
||||
{ on = "h", run = "leave", desc = "Go back to the parent directory" },
|
||||
|
||||
{ on = "<Left>", run = "leave", desc = "Go back to the parent directory" },
|
||||
{ on = "<Right>", run = "enter", desc = "Enter the child directory" },
|
||||
|
||||
{ on = "N", run = "back", desc = "Go back to the previous directory" },
|
||||
{ on = "I", run = "forward", desc = "Go forward to the next directory" },
|
||||
|
||||
# Selection
|
||||
{ on = "<Space>", run = ["toggle", "arrow 1"], desc = "Toggle the current selection state" },
|
||||
{ on = "v", run = "toggle_all", desc = "Enter visual mode (selection mode)" },
|
||||
{ on = "V", run = "visual_mode --unset", desc = "Enter visual mode (unset mode)" },
|
||||
# { on = "<C-a>", run = "select_all --state=true", desc = "Select all files" },
|
||||
# { on = "<C-r>", run = "select_all --state=none", desc = "Inverse selection of all files" },
|
||||
|
||||
# Find
|
||||
{ on = "<C-p>", run = "plugin fzf", desc = "Jump to a directory or reveal a file using fzf" },
|
||||
{ on = ["z", "o"], run = "plugin zoxide", desc = "Jump to a directory using zoxide" },
|
||||
# { on = "f", run = "search fd", desc = "Search files by name using fd" },
|
||||
{ on = "F", run = "search rg", desc = "Search files by content using ripgrep" },
|
||||
{ on = "<C-s>", run = "escape --search", desc = "Cancel the ongoing search" },
|
||||
{ on = "f", run = "filter --smart", desc = "Filter files" },
|
||||
{ on = "/", run = "find --smart", desc = "Find next file" },
|
||||
{ on = "?", run = "find --previous --smart", desc = "Find previous file" },
|
||||
{ on = "n", run = "find_arrow", desc = "Go to the next found" },
|
||||
{ on = "N", run = "find_arrow --previous", desc = "Go to the previous found" },
|
||||
|
||||
# Shell
|
||||
{ on = "<C-g>", run = "shell --confirm --block lazygit", desc = "Lazygit" },
|
||||
{ on = ";", run = "shell --interactive", desc = "Run a shell command" },
|
||||
{ on = ":", run = "shell --block --interactive", desc = "Run a shell command (block until finishes)" },
|
||||
|
||||
# Hidden files
|
||||
{ on = ".", run = "hidden toggle", desc = "Toggle the visibility of hidden files" },
|
||||
|
||||
# Open
|
||||
{ on = "r", run = "open --interactive", desc = "Open selected files interactively" },
|
||||
|
||||
# Create
|
||||
{ on = "T", run = "create", desc = "Create a file (ends with / for directories)" },
|
||||
{ on = "M", run = "create --dir", desc = "Create a directory" },
|
||||
|
||||
# Rename
|
||||
{ on = ["c", "w"], run = "rename --empty=all", desc = "Rename selected file(s)" },
|
||||
{ on = "k", run = "rename --cursor=start", desc = "Rename selected file(s)" },
|
||||
{ on = "a", run = "rename --cursor=before_ext", desc = "Rename selected file(s)" },
|
||||
{ on = "A", run = "rename --cursor=end", desc = "Rename selected file(s)" },
|
||||
|
||||
# Operation: D
|
||||
{ on = ["d", "d"], run = "yank --cut", desc = "Yank selected files (cut)" },
|
||||
# { on = ["d"], run = "remove", desc = "Trash selected files" },
|
||||
{ on = ["d", "D"], run = "remove --permanently", desc = "Permanently delete selected files" },
|
||||
|
||||
# Operation: Y
|
||||
{ on = ["y", "y"], run = "yank", desc = "Yank selected files (copy)" },
|
||||
{ on = ["y", "p"], run = "copy path", desc = "Copy the file path" },
|
||||
{ on = ["y", "d"], run = "copy dirname", desc = "Copy the directory path" },
|
||||
{ on = ["y", "f"], run = "copy filename", desc = "Copy the filename" },
|
||||
{ on = ["y", "n"], run = "copy name_without_ext", desc = "Copy the filename without extension" },
|
||||
{ on = ["y", "c"], run = "unyank", desc = "Cancel the yank status" },
|
||||
|
||||
# Operation: P
|
||||
{ on = ["p", "p"], run = "paste", desc = "Paste yanked files" },
|
||||
{ on = ["p", "P"], run = "paste --force", desc = "Paste yanked files (overwrite if the destination exists)" },
|
||||
{ on = ["p", "l"], run = "link", desc = "Symlink the absolute path of yanked files" },
|
||||
{ on = ["p", "L"], run = "link --relative", desc = "Symlink the relative path of yanked files" },
|
||||
{ on = ["p", "h"], run = "hardlink", desc = "Hardlink yanked files" },
|
||||
|
||||
# Linemode
|
||||
{ on = ["m", "s"], run = "linemode size", desc = "Set linemode to size" },
|
||||
{ on = ["m", "p"], run = "linemode perm", desc = "Set linemode to permissions" },
|
||||
{ on = ["m", "c"], run = "linemode btime", desc = "Set linemode to btime" },
|
||||
{ on = ["m", "m"], run = "linemode mtime", desc = "Set linemode to mtime" },
|
||||
{ on = ["m", "o"], run = "linemode owner", desc = "Set linemode to owner" },
|
||||
{ on = ["m", "n"], run = "linemode none", desc = "Set linemode to none" },
|
||||
|
||||
|
||||
# Sorting
|
||||
{ on = ["o", "M"], run = ["sort mtime --reverse=no", "linemode mtime"], desc = "Sort by modified time" },
|
||||
{ on = ["o", "m"], run = ["sort mtime --reverse", "linemode mtime"], desc = "Sort by modified time (reverse)" },
|
||||
{ on = ["o", "C"], run = ["sort btime --reverse=no", "linemode btime"], desc = "Sort by created time" },
|
||||
{ on = ["o", "c"], run = ["sort btime --reverse", "linemode btime"], desc = "Sort by created time (reverse)" },
|
||||
{ on = ["o", "E"], run = "sort extension --reverse=no", desc = "Sort by extension" },
|
||||
{ on = ["o", "e"], run = "sort extension --reverse", desc = "Sort by extension (reverse)" },
|
||||
{ on = ["o", "a"], run = "sort alphabetical --reverse=no", desc = "Sort alphabetically" },
|
||||
{ on = ["o", "A"], run = "sort alphabetical --reverse", desc = "Sort alphabetically (reverse)" },
|
||||
{ on = ["o", "n"], run = "sort natural --reverse=no", desc = "Sort naturally" },
|
||||
{ on = ["o", "N"], run = "sort natural --reverse", desc = "Sort naturally (reverse)" },
|
||||
{ on = ["o", "s"], run = ["sort size --reverse=no", "linemode size"], desc = "Sort by size" },
|
||||
{ on = ["o", "S"], run = ["sort size --reverse", "linemode size"], desc = "Sort by size (reverse)" },
|
||||
|
||||
# Goto
|
||||
{ on = ["g", "r"], run = "cd /", desc = "Go to the root directory" },
|
||||
{ on = ["g", "h"], run = "cd ~", desc = "Go to the home directory" },
|
||||
{ on = ["g", "c"], run = "cd ~/.config", desc = "Go to the config directory" },
|
||||
{ on = ["g", "d"], run = "cd ~/Downloads", desc = "Go to the downloads directory" },
|
||||
{ on = ["g", "D"], run = "cd ~/Desktop", desc = "Go to the desktop directory" },
|
||||
{ on = ["g", "i"], run = "cd ~/Github", desc = "Go to the Github directory" },
|
||||
{ on = ["g", "f", "f"], run = "cd ~/.config" },
|
||||
{ on = ["g", "f", "n"], run = "cd ~/.config/nvim" },
|
||||
{ on = ["g", "f", "y"], run = "cd ~/.config/yazi" },
|
||||
{ on = ["g", "f", "l"], run = "cd ~/.config/jesseduffield/lazygit" },
|
||||
{ on = ["g", "<Space>"], run = "cd --interactive", desc = "Go to a directory interactively" },
|
||||
|
||||
# Tabs
|
||||
{ on = ["t", "u"], run = "tab_create --current", desc = "Create a new tab with CWD" },
|
||||
{ on = ["t", "n"], run = "tab_switch -1 --relative", desc = "Switch to the previous tab" },
|
||||
{ on = ["t", "i"], run = "tab_switch 1 --relative", desc = "Switch to the next tab" },
|
||||
#{ on = ["t", ""], run = "tab_swap -1", desc = "Swap current tab with previous tab" },
|
||||
#{ on = ["}"], run = "tab_swap 1", desc = "Swap current tab with next tab" },
|
||||
{ on = "1", run = "tab_switch 0", desc = "Switch to the first tab" },
|
||||
{ on = "2", run = "tab_switch 1", desc = "Switch to the second tab" },
|
||||
{ on = "3", run = "tab_switch 2", desc = "Switch to the third tab" },
|
||||
{ on = "4", run = "tab_switch 3", desc = "Switch to the fourth tab" },
|
||||
{ on = "5", run = "tab_switch 4", desc = "Switch to the fifth tab" },
|
||||
{ on = "6", run = "tab_switch 5", desc = "Switch to the sixth tab" },
|
||||
{ on = "7", run = "tab_switch 6", desc = "Switch to the seventh tab" },
|
||||
{ on = "8", run = "tab_switch 7", desc = "Switch to the eighth tab" },
|
||||
{ on = "9", run = "tab_switch 8", desc = "Switch to the ninth tab" },
|
||||
|
||||
# Tasks
|
||||
{ on = "w", run = "tasks_show", desc = "Show task manager" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[spot]
|
||||
keymap = [
|
||||
# Navigation
|
||||
{ on = "u", run = "arrow -1", desc = "Move up" },
|
||||
{ on = "e", run = "arrow 1", desc = "Move down" },
|
||||
|
||||
# Close
|
||||
{ on = "<Esc>", run = "close", desc = "Close spotter" },
|
||||
{ on = "q", run = "close", desc = "Close spotter" },
|
||||
|
||||
# Swipe through files
|
||||
{ on = "<C-u>", run = "swipe -5", desc = "Swipe 5 files up" },
|
||||
{ on = "<C-e>", run = "swipe 5", desc = "Swipe 5 files down" },
|
||||
|
||||
# Copy content
|
||||
{ on = "y", run = "copy cell", desc = "Copy cell content" },
|
||||
]
|
||||
|
||||
[tasks]
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "close", desc = "Close task manager" },
|
||||
{ on = "<C-[>", run = "close", desc = "Close task manager" },
|
||||
{ on = "<C-c>", run = "close", desc = "Close task manager" },
|
||||
{ on = "w", run = "close", desc = "Close task manager" },
|
||||
|
||||
{ on = "u", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "e", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Enter>", run = "inspect", desc = "Inspect the task" },
|
||||
{ on = "x", run = "cancel", desc = "Cancel the task" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[pick]
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "close", desc = "Cancel selection" },
|
||||
{ on = "<C-[>", run = "close", desc = "Cancel selection" },
|
||||
{ on = "<C-c>", run = "close", desc = "Cancel selection" },
|
||||
{ on = "<Enter>", run = "close --submit", desc = "Submit the selection" },
|
||||
|
||||
{ on = "u", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "e", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[input]
|
||||
|
||||
keymap = [
|
||||
{ on = "<C-c>", run = "close", desc = "Cancel input" },
|
||||
{ on = "<Enter>", run = "close --submit", desc = "Submit the input" },
|
||||
{ on = "<Esc>", run = "escape", desc = "Go back the normal mode, or cancel input" },
|
||||
{ on = "<C-[>", run = "escape", desc = "Go back the normal mode, or cancel input" },
|
||||
|
||||
# Mode
|
||||
{ on = "k", run = "insert", desc = "Enter insert mode" },
|
||||
{ on = "a", run = "insert --append", desc = "Enter append mode" },
|
||||
{ on = "K", run = ["move -999", "insert"], desc = "Move to the BOL, and enter insert mode" },
|
||||
{ on = "A", run = ["move 999", "insert --append"], desc = "Move to the EOL, and enter append mode" },
|
||||
{ on = "v", run = "visual", desc = "Enter visual mode" },
|
||||
{ on = "V", run = ["move -999", "visual", "move 999"], desc = "Enter visual mode and select all" },
|
||||
|
||||
# Character-wise movement
|
||||
{ on = "n", run = "move -1", desc = "Move back a character" },
|
||||
{ on = "i", run = "move 1", desc = "Move forward a character" },
|
||||
{ on = "<Left>", run = "move -1", desc = "Move back a character" },
|
||||
{ on = "<Right>", run = "move 1", desc = "Move forward a character" },
|
||||
{ on = "<C-b>", run = "move -1", desc = "Move back a character" },
|
||||
{ on = "<C-f>", run = "move 1", desc = "Move forward a character" },
|
||||
|
||||
# Word-wise movement
|
||||
{ on = "b", run = "backward", desc = "Move back to the start of the current or previous word" },
|
||||
{ on = "w", run = "forward", desc = "Move forward to the start of the next word" },
|
||||
{ on = "h", run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
|
||||
{ on = "<A-b>", run = "backward", desc = "Move back to the start of the current or previous word" },
|
||||
{ on = "<A-f>", run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
|
||||
|
||||
# Line-wise movement
|
||||
{ on = "N", run = "move -999", desc = "Move to the BOL" },
|
||||
{ on = "I", run = "move 999", desc = "Move to the EOL" },
|
||||
{ on = "<C-a>", run = "move -999", desc = "Move to the BOL" },
|
||||
{ on = "<C-e>", run = "move 999", desc = "Move to the EOL" },
|
||||
{ on = "<Home>", run = "move -999", desc = "Move to the BOL" },
|
||||
{ on = "<End>", run = "move 999", desc = "Move to the EOL" },
|
||||
|
||||
# Delete
|
||||
{ on = "<Backspace>", run = "backspace", desc = "Delete the character before the cursor" },
|
||||
{ on = "<Delete>", run = "backspace --under", desc = "Delete the character under the cursor" },
|
||||
{ on = "<C-h>", run = "backspace", desc = "Delete the character before the cursor" },
|
||||
{ on = "<C-d>", run = "backspace --under", desc = "Delete the character under the cursor" },
|
||||
|
||||
# Kill
|
||||
{ on = "<C-u>", run = "kill bol", desc = "Kill backwards to the BOL" },
|
||||
{ on = "<C-k>", run = "kill eol", desc = "Kill forwards to the EOL" },
|
||||
{ on = "<C-w>", run = "kill backward", desc = "Kill backwards to the start of the current word" },
|
||||
{ on = "<A-d>", run = "kill forward", desc = "Kill forwards to the end of the current word" },
|
||||
|
||||
# Cut/Yank/Paste
|
||||
{ on = "d", run = "delete --cut", desc = "Cut the selected characters" },
|
||||
{ on = "D", run = ["delete --cut", "move 999"], desc = "Cut until the EOL" },
|
||||
{ on = "c", run = "delete --cut --insert", desc = "Cut the selected characters, and enter insert mode" },
|
||||
{ on = "C", run = ["delete --cut --insert", "move 999"], desc = "Cut until the EOL, and enter insert mode" },
|
||||
{ on = "x", run = ["delete --cut", "move 1 --in-operating"], desc = "Cut the current character" },
|
||||
{ on = "y", run = "yank", desc = "Copy the selected characters" },
|
||||
{ on = "p", run = "paste", desc = "Paste the copied characters after the cursor" },
|
||||
{ on = "P", run = "paste --before", desc = "Paste the copied characters before the cursor" },
|
||||
|
||||
# Undo/Redo
|
||||
{ on = "l", run = "undo", desc = "Undo the last operation" },
|
||||
{ on = "<C-r>", run = "redo", desc = "Redo the last operation" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[completion]
|
||||
|
||||
keymap = [
|
||||
{ on = "<C-c>", run = "close", desc = "Cancel completion" },
|
||||
{ on = "<Tab>", run = "close --submit", desc = "Submit the completion" },
|
||||
{ on = "<Enter>", run = ["close --submit", "close_input --submit"], desc = "Submit the completion and input" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<C-u>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<C-e>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[help]
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "escape", desc = "Clear the filter, or hide the help" },
|
||||
{ on = "<C-[>", run = "escape", desc = "Clear the filter, or hide the help" },
|
||||
{ on = "q", run = "close", desc = "Exit the process" },
|
||||
{ on = "<C-c>", run = "close", desc = "Hide the help" },
|
||||
|
||||
# Navigation
|
||||
{ on = "u", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "e", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
# Filtering
|
||||
{ on = "f", run = "filter", desc = "Apply a filter for the help items" },
|
||||
]
|
||||
27
config/yazi/package.toml
Normal file
27
config/yazi/package.toml
Normal file
@@ -0,0 +1,27 @@
|
||||
[[plugin.deps]]
|
||||
use = "yazi-rs/plugins:git"
|
||||
rev = "d1c8baa"
|
||||
hash = "63b6c222bf2103b3023389dde5e2ecfe"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "yazi-rs/plugins:smart-enter"
|
||||
rev = "d1c8baa"
|
||||
hash = "56fdabc96fc1f4d53c96eb884b02a5be"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "h-hg/yamb"
|
||||
rev = "22af003"
|
||||
hash = "7cc42012a7c2099f80064d228feb8d44"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "KKV9/compress"
|
||||
rev = "c264639"
|
||||
hash = "e17c11b605d989568a1d1741ca17c584"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "llanosrocas/yaziline"
|
||||
rev = "e79b067"
|
||||
hash = "f590c5b7d0730e8d6023b1b34ddf7ead"
|
||||
|
||||
[flavor]
|
||||
deps = []
|
||||
21
config/yazi/plugins/compress.yazi/LICENSE
Normal file
21
config/yazi/plugins/compress.yazi/LICENSE
Normal file
@@ -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.
|
||||
173
config/yazi/plugins/compress.yazi/README.md
Normal file
173
config/yazi/plugins/compress.yazi/README.md
Normal file
@@ -0,0 +1,173 @@
|
||||
<h1 align="center">🗜️ compress.yazi</h1>
|
||||
<p align="center">
|
||||
<b>A blazing fast, flexible archive plugin for <a href="https://github.com/sxyazi/yazi">Yazi</a></b><br>
|
||||
<i>Effortlessly compress your files and folders with style!</i>
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
## 📖 Table of Contents
|
||||
|
||||
- [Features](#-features)
|
||||
- [Supported File Types](#-supported-file-types)
|
||||
- [Installation](#%EF%B8%8F-installation)
|
||||
- [Keymap Example](#-keymap-example)
|
||||
- [Usage](#%EF%B8%8F-usage)
|
||||
- [Flags](#%EF%B8%8F-flags)
|
||||
- [Tips](#-tips)
|
||||
- [Credits](#-credits)
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Features
|
||||
|
||||
- 🗂️ **Multi-format support:** zip, 7z, rar, tar, tar.gz, tar.xz, tar.bz2, tar.zst, tar.lz4, tar.lha
|
||||
- 🌍 **Cross-platform:** Works on Unix & Windows
|
||||
- 🔒 **Password protection:** Secure your archives (zip/7z/rar)
|
||||
- 🛡️ **Header encryption:** Hide file lists (7z/rar)
|
||||
- ⚡ **Compression level:** Choose your balance of speed vs. size
|
||||
- 🛑 **Overwrite safety:** Never lose files by accident
|
||||
- 🎯 **Seamless Yazi integration:** Fast, native-like UX
|
||||
|
||||
---
|
||||
|
||||
## 📦 Supported File Types
|
||||
|
||||
| Extension | Default Command | 7z Command | Bsdtar Command (Win10+ & Unix) |
|
||||
| ------------- | ----------------- | -------------- | ------------------------------ |
|
||||
| `.zip` | `zip -r` | `7z a -tzip` | `tar -caf` |
|
||||
| `.7z` | `7z a` | `7z a` | |
|
||||
| `.rar` | `rar a` | | |
|
||||
| `.tar` | `tar rpf` | | `tar rpf` |
|
||||
| `.tar.gz` | `tar rpf + gzip` | `7z a -tgzip` | `tar -czf` |
|
||||
| `.tar.xz` | `tar rpf + xz` | `7z a -txz` | `tar -cJf` |
|
||||
| `.tar.bz2` | `tar rpf + bzip2` | `7z a -tbzip2` | `tar -cjf` |
|
||||
| `.tar.zst` | `tar rpf + zstd` | | `tar --zstd -cf` |
|
||||
| `.tar.lz4` | `tar rpf + lz4` | | |
|
||||
| `.tar.lha` | `tar rpf + lha` | | |
|
||||
|
||||
---
|
||||
|
||||
## ⚡️ Installation
|
||||
|
||||
```bash
|
||||
# Unix
|
||||
git clone https://github.com/KKV9/compress.yazi.git ~/.config/yazi/plugins/compress.yazi
|
||||
|
||||
# Windows (CMD, not PowerShell!)
|
||||
git clone https://github.com/KKV9/compress.yazi.git %AppData%\yazi\config\plugins\compress.yazi
|
||||
|
||||
# Or with yazi plugin manager
|
||||
ya pkg add KKV9/compress
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 🔧 Extras (Windows)
|
||||
|
||||
To enable additional compression formats and features on Windows, follow these steps:
|
||||
|
||||
1. **Install [7-Zip](https://www.7-zip.org/):**
|
||||
Add `C:\Program Files\7-Zip` to your `PATH`.
|
||||
This enables support for `.7z` archives and password-protected `.zip` files.
|
||||
|
||||
2. **Alternative: Install [Nanazip](https://github.com/M2Team/NanaZip):**
|
||||
A modern alternative to 7-Zip with similar functionality and extra features.
|
||||
|
||||
3. **Install [WinRAR](https://www.win-rar.com/download.html):**
|
||||
Add `C:\Program Files\WinRAR` to your `PATH`.
|
||||
This enables support for `.rar` archives.
|
||||
|
||||
4. **Install Additional Tools:**
|
||||
To use formats like `lha`, `lz4`, `gzip`, etc., install their respective tools and ensure they are added to your `PATH`.
|
||||
|
||||
---
|
||||
|
||||
## 🎹 Keymap Example
|
||||
|
||||
Add this to your `keymap.toml`:
|
||||
|
||||
|
||||
```toml
|
||||
[[mgr.prepend_keymap]]
|
||||
on = [ "c", "a", "a" ]
|
||||
run = "plugin compress"
|
||||
desc = "Archive selected files"
|
||||
|
||||
[[mgr.prepend_keymap]]
|
||||
on = [ "c", "a", "p" ]
|
||||
run = "plugin compress -p"
|
||||
desc = "Archive selected files (password)"
|
||||
|
||||
[[mgr.prepend_keymap]]
|
||||
on = [ "c", "a", "h" ]
|
||||
run = "plugin compress -ph"
|
||||
desc = "Archive selected files (password+header)"
|
||||
|
||||
[[mgr.prepend_keymap]]
|
||||
on = [ "c", "a", "l" ]
|
||||
run = "plugin compress -l"
|
||||
desc = "Archive selected files (compression level)"
|
||||
|
||||
[[mgr.prepend_keymap]]
|
||||
on = [ "c", "a", "u" ]
|
||||
run = "plugin compress -phl"
|
||||
desc = "Archive selected files (password+header+level)"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Usage
|
||||
|
||||
1. **Select files/folders** in Yazi.
|
||||
2. Press <kbd>c</kbd> <kbd>a</kbd> to open the archive dialog.
|
||||
3. Choose:
|
||||
- <kbd>a</kbd> for a standard archive
|
||||
- <kbd>p</kbd> for password protection (zip/7z/rar)
|
||||
- <kbd>h</kbd> to encrypt header (7z/rar)
|
||||
- <kbd>l</kbd> to set compression level (all compression algorithims)
|
||||
- <kbd>u</kbd> for all options together
|
||||
4. **Type a name** for your archive (or leave blank for suggested name).
|
||||
5. **Enter password** and/or **compression level** if prompted.
|
||||
6. **Overwrite protect** if a file already exists, the new file will be given a suffix _#.
|
||||
7. Enjoy your shiny new archive!
|
||||
|
||||
---
|
||||
|
||||
## 🏳️🌈 Flags
|
||||
|
||||
- Combine flags for more power!
|
||||
- when separating flags with spaces, make sure to single quote them (eg., `'-ph rar'`)
|
||||
- `-p` Password protect (zip/7z/rar)
|
||||
- `-h` Encrypt header (7z/rar)
|
||||
- `-l` Set compression level (all compression algorithims)
|
||||
- `<extention>` Specify a default extention (eg., `7z`, `tar.gz`)
|
||||
|
||||
#### Combining multiple flags:
|
||||
```toml
|
||||
[[mgr.prepend_keymap]]
|
||||
on = [ "c", "a", "7" ]
|
||||
run = "plugin compress '-ph 7z'"
|
||||
desc = "Archive selected files to 7z (password+header)"
|
||||
[[mgr.prepend_keymap]]
|
||||
on = [ "c", "a", "r" ]
|
||||
run = "plugin compress '-p -l rar'"
|
||||
desc = "Archive selected files to rar (password+level)"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💡 Tips
|
||||
|
||||
- The file extension **must** match a supported type.
|
||||
- The required compression tool **must** be installed and in your `PATH` (7zip/rar etc.).
|
||||
- If no extention is provided, the default extention (zip) will be appended automatically.
|
||||
|
||||
---
|
||||
|
||||
## 📣 Credits
|
||||
|
||||
Made with ❤️ for [Yazi](https://github.com/sxyazi/yazi) by [KKV9](https://github.com/KKV9).
|
||||
Contributions are welcome! Feel free to submit a pull request.
|
||||
|
||||
---
|
||||
496
config/yazi/plugins/compress.yazi/main.lua
Normal file
496
config/yazi/plugins/compress.yazi/main.lua
Normal file
@@ -0,0 +1,496 @@
|
||||
-- Check for windows
|
||||
local is_windows = ya.target_family() == "windows"
|
||||
-- Define flags and strings
|
||||
local is_password, is_encrypted, is_level, cmd_password, cmd_level, default_extension = false, false, false, "", "", "zip"
|
||||
|
||||
-- Function to check valid filename
|
||||
local function is_valid_filename(name)
|
||||
-- Trim whitespace from both ends
|
||||
name = name:match("^%s*(.-)%s*$")
|
||||
if name == "" then
|
||||
return false
|
||||
end
|
||||
if is_windows then
|
||||
-- Windows forbidden chars and reserved names
|
||||
if name:find('[<>:"/\\|%?%*]') then
|
||||
return false
|
||||
end
|
||||
else
|
||||
-- Unix forbidden chars
|
||||
if name:find("/") or name:find("%z") then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
-- Function to send notifications
|
||||
local function notify_error(message, urgency)
|
||||
ya.notify(
|
||||
{
|
||||
title = "Archive",
|
||||
content = message,
|
||||
level = urgency,
|
||||
timeout = 5
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
-- Function to check if 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
|
||||
|
||||
-- Function to change command arrays --> string -- Use first command available or first command
|
||||
local function find_command_name(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
|
||||
|
||||
-- Function to append filename to it's parent directory url
|
||||
local function combine_url(path, file)
|
||||
path, file = Url(path), Url(file)
|
||||
return tostring(path:join(file))
|
||||
end
|
||||
|
||||
-- Function to make a table of selected or hovered files: 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, names, tostring(tab.current.cwd)
|
||||
end
|
||||
)
|
||||
|
||||
-- Table of archive commands
|
||||
local archive_commands = {
|
||||
["%.zip$"] = {
|
||||
{command = "zip", args = {"-r"}, level_arg = "-", level_min = 0, level_max = 9, passwordable = true},
|
||||
{
|
||||
command = {"7z", "7zz", "7za"},
|
||||
args = {"a", "-tzip"},
|
||||
level_arg = "-mx=",
|
||||
level_min = 0,
|
||||
level_max = 9,
|
||||
passwordable = true
|
||||
},
|
||||
{
|
||||
command = {"tar", "bsdtar"},
|
||||
args = {"-caf"},
|
||||
level_arg = {"--option", "compression-level="},
|
||||
level_min = 1,
|
||||
level_max = 9
|
||||
}
|
||||
},
|
||||
["%.7z$"] = {
|
||||
{
|
||||
command = {"7z", "7zz", "7za"},
|
||||
args = {"a"},
|
||||
level_arg = "-mx=",
|
||||
level_min = 0,
|
||||
level_max = 9,
|
||||
header_arg = "-mhe=on",
|
||||
passwordable = true
|
||||
}
|
||||
},
|
||||
["%.rar$"] = {
|
||||
{
|
||||
command = "rar",
|
||||
args = {"a"},
|
||||
level_arg = "-m",
|
||||
level_min = 0,
|
||||
level_max = 5,
|
||||
header_arg = "-hp",
|
||||
passwordable = true
|
||||
}
|
||||
},
|
||||
["%.tar.gz$"] = {
|
||||
{command = {"tar", "bsdtar"}, args = {"rpf"}, level_arg = "-", level_min = 1, level_max = 9, compress = "gzip"},
|
||||
{
|
||||
command = {"tar", "bsdtar"},
|
||||
args = {"rpf"},
|
||||
level_arg = "-mx=",
|
||||
level_min = 1,
|
||||
level_max = 9,
|
||||
compress = "7z",
|
||||
compress_args = {"a", "-tgzip"}
|
||||
},
|
||||
{
|
||||
command = {"tar", "bsdtar"},
|
||||
args = {"-czf"},
|
||||
level_arg = {"--option", "gzip:compression-level="},
|
||||
level_min = 1,
|
||||
level_max = 9
|
||||
}
|
||||
},
|
||||
["%.tar.xz$"] = {
|
||||
{command = {"tar", "bsdtar"}, args = {"rpf"}, level_arg = "-", level_min = 1, level_max = 9, compress = "xz"},
|
||||
{
|
||||
command = {"tar", "bsdtar"},
|
||||
args = {"rpf"},
|
||||
level_arg = "-mx=",
|
||||
level_min = 1,
|
||||
level_max = 9,
|
||||
compress = "7z",
|
||||
compress_args = {"a", "-txz"}
|
||||
},
|
||||
{
|
||||
command = {"tar", "bsdtar"},
|
||||
args = {"-cJf"},
|
||||
level_arg = {"--option", "xz:compression-level="},
|
||||
level_min = 1,
|
||||
level_max = 9
|
||||
}
|
||||
},
|
||||
["%.tar.bz2$"] = {
|
||||
{command = {"tar", "bsdtar"}, args = {"rpf"}, level_arg = "-", level_min = 1, level_max = 9, compress = "bzip2"},
|
||||
{
|
||||
command = {"tar", "bsdtar"},
|
||||
args = {"rpf"},
|
||||
level_arg = "-mx=",
|
||||
level_min = 1,
|
||||
level_max = 9,
|
||||
compress = "7z",
|
||||
compress_args = {"a", "-tbzip2"}
|
||||
},
|
||||
{
|
||||
command = {"tar", "bsdtar"},
|
||||
args = {"-cjf"},
|
||||
level_arg = {"--option", "bzip2:compression-level="},
|
||||
level_min = 1,
|
||||
level_max = 9
|
||||
}
|
||||
},
|
||||
["%.tar.zst$"] = {
|
||||
{
|
||||
command = {"tar", "bsdtar"},
|
||||
args = {"rpf"},
|
||||
level_arg = "-",
|
||||
level_min = 1,
|
||||
level_max = 22,
|
||||
compress = "zstd",
|
||||
compress_args = {"--ultra"}
|
||||
}
|
||||
},
|
||||
["%.tar.lz4$"] = {
|
||||
{
|
||||
command = {"tar", "bsdtar"},
|
||||
args = {"rpf"},
|
||||
level_arg = "-",
|
||||
level_min = 1,
|
||||
level_max = 12,
|
||||
compress = "lz4"
|
||||
}
|
||||
},
|
||||
["%.tar.lha$"] = {
|
||||
{
|
||||
command = {"tar", "bsdtar"},
|
||||
args = {"rpf"},
|
||||
level_arg = "-o",
|
||||
level_min = 5,
|
||||
level_max = 7,
|
||||
compress = "lha",
|
||||
compress_args = {"-a"}
|
||||
}
|
||||
},
|
||||
["%.tar$"] = {
|
||||
{command = {"tar", "bsdtar"}, args = {"rpf"}}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
entry = function(_, job)
|
||||
-- Parse flags and default extension
|
||||
if job.args ~= nil then
|
||||
for _, arg in ipairs(job.args) do
|
||||
if arg:match("^%-(%w+)$") then
|
||||
-- Handle combined flags (e.g., -phl)
|
||||
for flag in arg:sub(2):gmatch(".") do
|
||||
if flag == "p" then
|
||||
is_password = true
|
||||
elseif flag == "h" then
|
||||
is_encrypted = true
|
||||
elseif flag == "l" then
|
||||
is_level = true
|
||||
end
|
||||
end
|
||||
elseif arg:match("^%w[%w\\.]*$") then
|
||||
-- Handle default extension (e.g., 7z, zip)
|
||||
if archive_commands["%." .. arg .. "$"] then
|
||||
default_extension = arg
|
||||
else
|
||||
notify_error(string.format("Unsupported extension: %s", arg), "warn")
|
||||
end
|
||||
else
|
||||
notify_error(string.format("Unknown argument: %s", arg), "warn")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Exit visual mode
|
||||
ya.emit("escape", {visual = true})
|
||||
-- Define file table and output_dir (pwd)
|
||||
local path_fnames, fnames, output_dir = selected_or_hovered()
|
||||
-- Get archive filename
|
||||
local output_name, event =
|
||||
ya.input(
|
||||
{
|
||||
title = "Create archive:",
|
||||
position = {"top-center", y = 3, w = 40}
|
||||
}
|
||||
)
|
||||
if event ~= 1 then
|
||||
return
|
||||
end
|
||||
|
||||
-- Determine the default name for the archive
|
||||
local default_name = #fnames == 1 and fnames[1] or Url(output_dir).name
|
||||
output_name = output_name == "" and string.format("%s.%s", default_name, default_extension) or output_name
|
||||
|
||||
-- Add default extension if none is specified
|
||||
if not output_name:match("%.%w+$") then
|
||||
output_name = string.format("%s.%s", output_name, default_extension)
|
||||
end
|
||||
|
||||
-- Validate the final archive filename
|
||||
if not is_valid_filename(output_name) then
|
||||
notify_error("Invalid archive filename", "error")
|
||||
return
|
||||
end
|
||||
|
||||
-- Match user input to archive command
|
||||
local archive_cmd,
|
||||
archive_args,
|
||||
archive_compress,
|
||||
archive_level_arg,
|
||||
archive_level_min,
|
||||
archive_level_max,
|
||||
archive_header_arg,
|
||||
archive_passwordable,
|
||||
archive_compress_args
|
||||
local matched_pattern = false
|
||||
for pattern, cmd_list in pairs(archive_commands) do
|
||||
if output_name:match(pattern) then
|
||||
matched_pattern = true -- Mark that file extension is correct
|
||||
for _, cmd in ipairs(cmd_list) do
|
||||
-- Check if archive_cmd is available
|
||||
local find_command = type(cmd.command) == "table" and find_command_name(cmd.command) or cmd.command
|
||||
if is_command_available(find_command) then
|
||||
-- Check if compress_cmd (if listed) is available
|
||||
if cmd.compress == nil or is_command_available(cmd.compress) then
|
||||
archive_cmd = find_command
|
||||
archive_args = cmd.args
|
||||
archive_compress = cmd.compress or ""
|
||||
archive_level_arg = is_level and cmd.level_arg or ""
|
||||
archive_level_min = cmd.level_min
|
||||
archive_level_max = cmd.level_max
|
||||
archive_header_arg = is_encrypted and cmd.header_arg or ""
|
||||
archive_passwordable = cmd.passwordable or false
|
||||
archive_compress_args = cmd.compress_args or {}
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
if archive_cmd then
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Check if no archive command is available for the extension
|
||||
if not matched_pattern then
|
||||
notify_error("Unsupported file extension", "error")
|
||||
return
|
||||
end
|
||||
|
||||
-- Check if no suitable archive program was found
|
||||
if not archive_cmd then
|
||||
notify_error("Could not find a suitable archive program for the selected file extension", "error")
|
||||
return
|
||||
end
|
||||
|
||||
-- Check if archive command has multiple names
|
||||
if type(archive_cmd) == "table" then
|
||||
archive_cmd = find_command_name(archive_cmd)
|
||||
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
|
||||
|
||||
-- Add password arg if selected
|
||||
if archive_passwordable and is_password then
|
||||
local output_password, event =
|
||||
ya.input(
|
||||
{
|
||||
title = "Enter password:",
|
||||
obscure = true,
|
||||
position = {"top-center", y = 3, w = 40}
|
||||
}
|
||||
)
|
||||
if event ~= 1 then
|
||||
return
|
||||
end
|
||||
if output_password ~= "" then
|
||||
cmd_password = "-P" .. output_password
|
||||
if archive_cmd == "rar" and is_encrypted then
|
||||
cmd_password = archive_header_arg .. output_password -- Add archive arg for rar
|
||||
end
|
||||
table.insert(archive_args, cmd_password)
|
||||
end
|
||||
end
|
||||
|
||||
-- Add header arg if selected for 7z
|
||||
if is_encrypted and archive_header_arg ~= "" and archive_cmd ~= "rar" then
|
||||
table.insert(archive_args, archive_header_arg)
|
||||
end
|
||||
|
||||
-- Add level arg if selected
|
||||
if archive_level_arg ~= "" and is_level then
|
||||
local output_level, event =
|
||||
ya.input(
|
||||
{
|
||||
title = string.format("Enter compression level (%s - %s)", archive_level_min, archive_level_max),
|
||||
position = {"top-center", y = 3, w = 40}
|
||||
}
|
||||
)
|
||||
if event ~= 1 then
|
||||
return
|
||||
end
|
||||
-- Validate user input for compression level
|
||||
if
|
||||
output_level ~= "" and tonumber(output_level) ~= nil and tonumber(output_level) >= archive_level_min and
|
||||
tonumber(output_level) <= archive_level_max
|
||||
then
|
||||
cmd_level =
|
||||
type(archive_level_arg) == "table" and archive_level_arg[#archive_level_arg] .. output_level or
|
||||
archive_level_arg .. output_level
|
||||
local target_args = archive_compress == "" and archive_args or archive_compress_args
|
||||
if type(archive_level_arg) == "table" then
|
||||
-- Insert each element of archive_level_arg (except last) into target_args at the correct position
|
||||
for i = 1, #archive_level_arg - 1 do
|
||||
table.insert(target_args, i, archive_level_arg[i])
|
||||
end
|
||||
table.insert(target_args, #archive_level_arg, cmd_level) -- Add level at the end
|
||||
else
|
||||
-- Insert the compression level argument at the start if not a table
|
||||
table.insert(target_args, 1, cmd_level)
|
||||
end
|
||||
else
|
||||
notify_error("Invalid level specified. Using defaults.", "warn")
|
||||
end
|
||||
end
|
||||
|
||||
-- Store the original output name for later use
|
||||
local original_name = output_name
|
||||
|
||||
-- If compression is needed, adjust the output name to exclude extensions like ".tar"
|
||||
if archive_compress ~= "" then
|
||||
output_name = output_name:match("(.*%.tar)") or output_name
|
||||
end
|
||||
|
||||
-- Create a temporary directory for intermediate files
|
||||
local temp_dir_name = ".tmp_compress"
|
||||
local temp_dir = combine_url(output_dir, temp_dir_name)
|
||||
local temp_dir, _ = tostring(fs.unique_name(Url(temp_dir)))
|
||||
|
||||
-- Attempt to create the temporary directory
|
||||
local temp_dir_status, temp_dir_err = fs.create("dir_all", Url(temp_dir))
|
||||
if not temp_dir_status then
|
||||
-- Notify the user if the temporary directory creation fails
|
||||
notify_error(string.format("Failed to create temp directory, error code: %s", temp_dir_err), "error")
|
||||
return
|
||||
end
|
||||
|
||||
-- Define the temporary output file path within the temporary directory
|
||||
local temp_output_url = combine_url(temp_dir, output_name)
|
||||
|
||||
-- Add files to the output archive
|
||||
for filepath, filenames in pairs(path_fnames) do
|
||||
-- Execute the archive command for each path and its respective files
|
||||
local archive_status, archive_err =
|
||||
Command(archive_cmd):arg(archive_args):arg(temp_output_url):arg(filenames):cwd(filepath):spawn():wait()
|
||||
if not archive_status or not archive_status.success then
|
||||
-- Notify the user if the archiving process fails and clean up the temporary directory
|
||||
notify_error(string.format("Failed to create archive %s with '%s', error: %s", output_name, archive_cmd, archive_err), "error")
|
||||
local cleanup_status, cleanup_err = fs.remove("dir_all", Url(temp_dir))
|
||||
if not cleanup_status then
|
||||
notify_error(string.format("Failed to clean up temporary directory %s, error: %s", temp_dir, cleanup_err), "error")
|
||||
end
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- If compression is required, execute the compression command
|
||||
if archive_compress ~= "" then
|
||||
local compress_status, compress_err =
|
||||
Command(archive_compress):arg(archive_compress_args):arg(temp_output_url):spawn():wait()
|
||||
if not compress_status or not compress_status.success then
|
||||
-- Notify the user if the compression process fails and clean up the temporary directory
|
||||
notify_error(string.format("Failed to compress archive %s with '%s', error: %s", output_name, archive_compress, compress_err), "error")
|
||||
local cleanup_status, cleanup_err = fs.remove("dir_all", Url(temp_dir))
|
||||
if not cleanup_status then
|
||||
notify_error(string.format("Failed to clean up temporary directory %s, error: %s", temp_dir, cleanup_err), "error")
|
||||
end
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- Move the final file from the temporary directory to the output directory
|
||||
local final_output_url, temp_url_processed = combine_url(output_dir, original_name), combine_url(temp_dir, original_name)
|
||||
final_output_url, _ = tostring(fs.unique_name(Url(final_output_url)))
|
||||
local move_status, move_err = os.rename(temp_url_processed, final_output_url)
|
||||
if not move_status then
|
||||
-- Notify the user if the move operation fails and clean up the temporary directory
|
||||
notify_error(string.format("Failed to move %s to %s, error: %s", temp_url_processed, final_output_url, move_err), "error")
|
||||
local cleanup_status, cleanup_err = fs.remove("dir_all", Url(temp_dir))
|
||||
if not cleanup_status then
|
||||
notify_error(string.format("Failed to clean up temporary directory %s, error: %s", temp_dir, cleanup_err), "error")
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
-- Cleanup the temporary directory after successful operation
|
||||
local cleanup_status, cleanup_err = fs.remove("dir_all", Url(temp_dir))
|
||||
if not cleanup_status then
|
||||
notify_error(string.format("Failed to clean up temporary directory %s, error: %s", temp_dir, cleanup_err), "error")
|
||||
end
|
||||
end
|
||||
}
|
||||
21
config/yazi/plugins/git.yazi/LICENSE
Normal file
21
config/yazi/plugins/git.yazi/LICENSE
Normal file
@@ -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.
|
||||
78
config/yazi/plugins/git.yazi/README.md
Normal file
78
config/yazi/plugins/git.yazi/README.md
Normal file
@@ -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.
|
||||
261
config/yazi/plugins/git.yazi/main.lua
Normal file
261
config/yazi/plugins/git.yazi/main.lua
Normal file
@@ -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 }
|
||||
21
config/yazi/plugins/smart-enter.yazi/LICENSE
Normal file
21
config/yazi/plugins/smart-enter.yazi/LICENSE
Normal file
@@ -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.
|
||||
40
config/yazi/plugins/smart-enter.yazi/README.md
Normal file
40
config/yazi/plugins/smart-enter.yazi/README.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# smart-enter.yazi
|
||||
|
||||
[`Open`][open] files or [`enter`][enter] directories all in one key!
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
ya pkg add yazi-rs/plugins:smart-enter
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Bind your <kbd>l</kbd> key to the plugin, in your `~/.config/yazi/keymap.toml`:
|
||||
|
||||
```toml
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "l"
|
||||
run = "plugin smart-enter"
|
||||
desc = "Enter the child directory, or open the file"
|
||||
```
|
||||
|
||||
## Advanced
|
||||
|
||||
By default, `--hovered` is passed to the [`open`][open] command, make the behavior consistent with [`enter`][enter] avoiding accidental triggers,
|
||||
which means both will only target the currently hovered file.
|
||||
|
||||
If you still want `open` to target multiple selected files, add this to your `~/.config/yazi/init.lua`:
|
||||
|
||||
```lua
|
||||
require("smart-enter"):setup {
|
||||
open_multi = true,
|
||||
}
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
|
||||
|
||||
[open]: https://yazi-rs.github.io/docs/configuration/keymap/#mgr.open
|
||||
[enter]: https://yazi-rs.github.io/docs/configuration/keymap/#mgr.enter
|
||||
11
config/yazi/plugins/smart-enter.yazi/main.lua
Normal file
11
config/yazi/plugins/smart-enter.yazi/main.lua
Normal file
@@ -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 }
|
||||
21
config/yazi/plugins/yamb.yazi/LICENSE
Normal file
21
config/yazi/plugins/yamb.yazi/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2024 Hunter Hwang
|
||||
|
||||
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.
|
||||
112
config/yazi/plugins/yamb.yazi/README.md
Normal file
112
config/yazi/plugins/yamb.yazi/README.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Yet another bookmarks
|
||||
|
||||
A [Yazi](https://github.com/sxyazi/yazi) plugin for bookmark management, supporting the following features
|
||||
|
||||
- Persistent bookmarks. No bookmarks are lost after you close yazi.
|
||||
- Quickly jump, delete, and rename a bookmark by keymap.
|
||||
- Support fuzzy search through [fzf](https://github.com/junegunn/fzf).
|
||||
- Configure your bookmarks using Lua language.
|
||||
|
||||
## Installation
|
||||
|
||||
> [!NOTE]
|
||||
> Yazi >= 0.25.
|
||||
|
||||
```sh
|
||||
# Linux/macOS
|
||||
git clone https://github.com/h-hg/yamb.yazi.git ~/.config/yazi/plugins/yamb.yazi
|
||||
|
||||
# Windows
|
||||
git clone https://github.com/h-hg/yamb.yazi.git $env:APPDATA\yazi\config\plugins\yamb.yazi
|
||||
|
||||
# if you are using Yazi version >= 3.0
|
||||
ya pack -a h-hg/yamb
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Add this to your `init.lua`
|
||||
|
||||
```lua
|
||||
-- You can configure your bookmarks by lua language
|
||||
local bookmarks = {}
|
||||
|
||||
local path_sep = package.config:sub(1, 1)
|
||||
local home_path = ya.target_family() == "windows" and os.getenv("USERPROFILE") or os.getenv("HOME")
|
||||
if ya.target_family() == "windows" then
|
||||
table.insert(bookmarks, {
|
||||
tag = "Scoop Local",
|
||||
|
||||
path = (os.getenv("SCOOP") or home_path .. "\\scoop") .. "\\",
|
||||
key = "p"
|
||||
})
|
||||
table.insert(bookmarks, {
|
||||
tag = "Scoop Global",
|
||||
path = (os.getenv("SCOOP_GLOBAL") or "C:\\ProgramData\\scoop") .. "\\",
|
||||
key = "P"
|
||||
})
|
||||
end
|
||||
table.insert(bookmarks, {
|
||||
tag = "Desktop",
|
||||
path = home_path .. path_sep .. "Desktop" .. path_sep,
|
||||
key = "d"
|
||||
})
|
||||
|
||||
require("yamb"):setup {
|
||||
-- Optional, the path ending with path seperator represents folder.
|
||||
bookmarks = bookmarks,
|
||||
-- Optional, recieve notification everytime you jump.
|
||||
jump_notify = true,
|
||||
-- Optional, the cli of fzf.
|
||||
cli = "fzf",
|
||||
-- Optional, a string used for randomly generating keys, where the preceding characters have higher priority.
|
||||
keys = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
||||
-- Optional, the path of bookmarks
|
||||
path = (ya.target_family() == "windows" and os.getenv("APPDATA") .. "\\yazi\\config\\bookmark") or
|
||||
(os.getenv("HOME") .. "/.config/yazi/bookmark"),
|
||||
}
|
||||
```
|
||||
|
||||
Add this to your `keymap.toml`:
|
||||
|
||||
```toml
|
||||
[[manager.prepend_keymap]]
|
||||
on = [ "u", "a" ]
|
||||
run = "plugin yamb save"
|
||||
desc = "Add bookmark"
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
on = [ "u", "g" ]
|
||||
run = "plugin yamb jump_by_key"
|
||||
desc = "Jump bookmark by key"
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
on = [ "u", "G" ]
|
||||
run = "plugin yamb jump_by_fzf"
|
||||
desc = "Jump bookmark by fzf"
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
on = [ "u", "d" ]
|
||||
run = "plugin yamb delete_by_key"
|
||||
desc = "Delete bookmark by key"
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
on = [ "u", "D" ]
|
||||
run = "plugin yamb delete_by_fzf"
|
||||
desc = "Delete bookmark by fzf"
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
on = [ "u", "A" ]
|
||||
run = "plugin yamb delete_all"
|
||||
desc = "Delete all bookmarks"
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
on = [ "u", "r" ]
|
||||
run = "plugin yamb rename_by_key"
|
||||
desc = "Rename bookmark by key"
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
on = [ "u", "R" ]
|
||||
run = "plugin yamb rename_by_fzf"
|
||||
desc = "Rename bookmark by fzf"
|
||||
```
|
||||
355
config/yazi/plugins/yamb.yazi/main.lua
Normal file
355
config/yazi/plugins/yamb.yazi/main.lua
Normal file
@@ -0,0 +1,355 @@
|
||||
local path_sep = package.config:sub(1, 1)
|
||||
|
||||
local get_hovered_path = ya.sync(function(state)
|
||||
local h = cx.active.current.hovered
|
||||
if h then
|
||||
local path = tostring(h.url)
|
||||
if h.cha.is_dir then
|
||||
return path .. path_sep
|
||||
end
|
||||
return path
|
||||
else
|
||||
return ''
|
||||
end
|
||||
end)
|
||||
|
||||
local get_state_attr = ya.sync(function(state, attr)
|
||||
return state[attr]
|
||||
end)
|
||||
|
||||
local set_state_attr = ya.sync(function(state, attr, value)
|
||||
state[attr] = value
|
||||
end)
|
||||
|
||||
local set_bookmarks = ya.sync(function(state, path, value)
|
||||
state.bookmarks[path] = value
|
||||
end)
|
||||
|
||||
local sort_bookmarks = function(bookmarks, key1, key2, reverse)
|
||||
reverse = reverse or false
|
||||
table.sort(bookmarks, function(x, y)
|
||||
if x[key1] == nil and y[key1] == nil then
|
||||
return x[key2] < y[key2]
|
||||
elseif x[key1] == nil then
|
||||
return false
|
||||
elseif y[key1] == nil then
|
||||
return true
|
||||
else
|
||||
return x[key1] < y[key1]
|
||||
end
|
||||
end)
|
||||
if reverse then
|
||||
local n = #bookmarks
|
||||
for i = 1, math.floor(n / 2) do
|
||||
bookmarks[i], bookmarks[n - i + 1] = bookmarks[n - i + 1], bookmarks[i]
|
||||
end
|
||||
end
|
||||
return bookmarks
|
||||
end
|
||||
|
||||
local save_to_file = function(mb_path, bookmarks)
|
||||
local file = io.open(mb_path, "w")
|
||||
if file == nil then
|
||||
return
|
||||
end
|
||||
local array = {}
|
||||
for _, item in pairs(bookmarks) do
|
||||
table.insert(array, item)
|
||||
end
|
||||
sort_bookmarks(array, "tag", "key", true)
|
||||
for _, item in ipairs(array) do
|
||||
file:write(string.format("%s\t%s\t%s\n", item.tag, item.path, item.key))
|
||||
end
|
||||
file:close()
|
||||
end
|
||||
|
||||
local fzf_find = function(cli, mb_path)
|
||||
local permit = ya.hide()
|
||||
local cmd = string.format("%s < \"%s\"", cli, mb_path)
|
||||
local handle = io.popen(cmd, "r")
|
||||
local result = ""
|
||||
if handle then
|
||||
-- strip
|
||||
result = string.gsub(handle:read("*all") or "", "^%s*(.-)%s*$", "%1")
|
||||
handle:close()
|
||||
end
|
||||
permit:drop()
|
||||
local tag, path, key = string.match(result or "", "(.-)\t(.-)\t(.*)")
|
||||
return path
|
||||
end
|
||||
|
||||
local which_find = function(bookmarks)
|
||||
local cands = {}
|
||||
for path, item in pairs(bookmarks) do
|
||||
if #item.tag ~= 0 then
|
||||
table.insert(cands, { desc = item.tag, on = item.key, path = item.path })
|
||||
end
|
||||
end
|
||||
sort_bookmarks(cands, "on", "desc", false)
|
||||
if #cands == 0 then
|
||||
ya.notify {
|
||||
title = "Bookmarks",
|
||||
content = "Empty bookmarks",
|
||||
timeout = 2,
|
||||
level = "info",
|
||||
}
|
||||
return nil
|
||||
end
|
||||
local idx = ya.which { cands = cands }
|
||||
if idx == nil then
|
||||
return nil
|
||||
end
|
||||
return cands[idx].path
|
||||
end
|
||||
|
||||
local action_jump = function(bookmarks, path, jump_notify)
|
||||
if path == nil then
|
||||
return
|
||||
end
|
||||
local tag = bookmarks[path].tag
|
||||
if string.sub(path, -1) == path_sep then
|
||||
ya.manager_emit("cd", { path })
|
||||
else
|
||||
ya.manager_emit("reveal", { path })
|
||||
end
|
||||
if jump_notify then
|
||||
ya.notify {
|
||||
title = "Bookmarks",
|
||||
content = 'Jump to "' .. tag .. '"',
|
||||
timeout = 2,
|
||||
level = "info",
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
local generate_key = function(bookmarks)
|
||||
local keys = get_state_attr("keys")
|
||||
local key2rank = get_state_attr("key2rank")
|
||||
local mb = {}
|
||||
for _, item in pairs(bookmarks) do
|
||||
if #item.key == 1 then
|
||||
table.insert(mb, item.key)
|
||||
end
|
||||
end
|
||||
if #mb == 0 then
|
||||
return keys[1]
|
||||
end
|
||||
table.sort(mb, function(a, b)
|
||||
return key2rank[a] < key2rank[b]
|
||||
end)
|
||||
local idx = 1
|
||||
for _, key in ipairs(keys) do
|
||||
if idx > #mb or key2rank[key] < key2rank[mb[idx]] then
|
||||
return key
|
||||
end
|
||||
idx = idx + 1
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
local action_save = function(mb_path, bookmarks, path)
|
||||
if path == nil or #path == 0 then
|
||||
return
|
||||
end
|
||||
|
||||
local path_obj = bookmarks[path]
|
||||
-- check tag
|
||||
local tag = path_obj and path_obj.tag or path:match(".*[\\/]([^\\/]+)[\\/]?$")
|
||||
while true do
|
||||
local value, event = ya.input({
|
||||
title = "Tag (alias name)",
|
||||
value = tag,
|
||||
position = { "top-center", y = 3, w = 40 },
|
||||
})
|
||||
if event ~= 1 then
|
||||
return
|
||||
end
|
||||
tag = value or ''
|
||||
if #tag == 0 then
|
||||
ya.notify {
|
||||
title = "Bookmarks",
|
||||
content = "Empty tag",
|
||||
timeout = 2,
|
||||
level = "info",
|
||||
}
|
||||
else
|
||||
-- check the tag
|
||||
local tag_obj = nil
|
||||
for _, item in pairs(bookmarks) do
|
||||
if item.tag == tag then
|
||||
tag_obj = item
|
||||
break
|
||||
end
|
||||
end
|
||||
if tag_obj == nil or tag_obj.path == path then
|
||||
break
|
||||
end
|
||||
ya.notify {
|
||||
title = "Bookmarks",
|
||||
content = "Duplicated tag",
|
||||
timeout = 2,
|
||||
level = "info",
|
||||
}
|
||||
end
|
||||
end
|
||||
-- check key
|
||||
local key = path_obj and path_obj.key or generate_key(bookmarks)
|
||||
while true do
|
||||
local value, event = ya.input({
|
||||
title = "Key (1 character, optional)",
|
||||
value = key,
|
||||
position = { "top-center", y = 3, w = 40 },
|
||||
})
|
||||
if event ~= 1 then
|
||||
return
|
||||
end
|
||||
key = value or ""
|
||||
if key == "" then
|
||||
key = ""
|
||||
break
|
||||
elseif #key == 1 then
|
||||
-- check the key
|
||||
local key_obj = nil
|
||||
for _, item in pairs(bookmarks) do
|
||||
if item.key == key then
|
||||
key_obj = item
|
||||
break
|
||||
end
|
||||
end
|
||||
if key_obj == nil or key_obj.path == path then
|
||||
break
|
||||
else
|
||||
ya.notify {
|
||||
title = "Bookmarks",
|
||||
content = "Duplicated key",
|
||||
timeout = 2,
|
||||
level = "info",
|
||||
}
|
||||
end
|
||||
else
|
||||
ya.notify {
|
||||
title = "Bookmarks",
|
||||
content = "The length of key shoule be 1",
|
||||
timeout = 2,
|
||||
level = "info",
|
||||
}
|
||||
end
|
||||
end
|
||||
-- save
|
||||
set_bookmarks(path, { tag = tag, path = path, key = key })
|
||||
bookmarks = get_state_attr("bookmarks")
|
||||
save_to_file(mb_path, bookmarks)
|
||||
ya.notify {
|
||||
title = "Bookmarks",
|
||||
content = '"' .. tag .. '" saved"',
|
||||
timeout = 2,
|
||||
level = "info",
|
||||
}
|
||||
end
|
||||
|
||||
local action_delete = function(mb_path, bookmarks, path)
|
||||
if path == nil then
|
||||
return
|
||||
end
|
||||
local tag = bookmarks[path].tag
|
||||
set_bookmarks(path, nil)
|
||||
bookmarks = get_state_attr("bookmarks")
|
||||
save_to_file(mb_path, bookmarks)
|
||||
ya.notify {
|
||||
title = "Bookmarks",
|
||||
content = '"' .. tag .. '" deleted',
|
||||
timeout = 2,
|
||||
level = "info",
|
||||
}
|
||||
end
|
||||
|
||||
local action_delete_all = function(mb_path)
|
||||
local value, event = ya.input({
|
||||
title = "Delete all bookmarks? (y/n)",
|
||||
position = { "top-center", y = 3, w = 40 },
|
||||
})
|
||||
if event ~= 1 then
|
||||
return
|
||||
end
|
||||
if string.lower(value) == "y" then
|
||||
set_state_attr("bookmarks", {})
|
||||
save_to_file(mb_path, {})
|
||||
ya.notify {
|
||||
title = "Bookmarks",
|
||||
content = "All bookmarks deleted",
|
||||
timeout = 2,
|
||||
level = "info",
|
||||
}
|
||||
else
|
||||
ya.notify {
|
||||
title = "Bookmarks",
|
||||
content = "Cancel delete",
|
||||
timeout = 2,
|
||||
level = "info",
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
return {
|
||||
setup = function(state, options)
|
||||
state.path = options.path or
|
||||
(ya.target_family() == "windows" and os.getenv("APPDATA") .. "\\yazi\\config\\bookmark") or
|
||||
(os.getenv("HOME") .. "/.config/yazi/bookmark")
|
||||
state.cli = options.cli or "fzf"
|
||||
state.jump_notify = options.jump_notify and true
|
||||
-- init the keys
|
||||
local keys = options.keys or "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
state.keys = {}
|
||||
state.key2rank = {}
|
||||
for i = 1, #keys do
|
||||
local char = keys:sub(i, i)
|
||||
table.insert(state.keys, char)
|
||||
state.key2rank[char] = i
|
||||
end
|
||||
|
||||
-- init the bookmarks
|
||||
local bookmarks = {}
|
||||
for _, item in pairs(options.bookmarks or {}) do
|
||||
bookmarks[item.path] = { tag = item.tag, path = item.path, key = item.key }
|
||||
end
|
||||
-- load the config
|
||||
local file = io.open(state.path, "r")
|
||||
if file ~= nil then
|
||||
for line in file:lines() do
|
||||
local tag, path, key = string.match(line, "(.-)\t(.-)\t(.*)")
|
||||
if tag and path then
|
||||
key = key or ""
|
||||
bookmarks[path] = { tag = tag, path = path, key = key }
|
||||
end
|
||||
end
|
||||
file:close()
|
||||
end
|
||||
-- create bookmarks file to enable fzf
|
||||
save_to_file(state.path, bookmarks)
|
||||
state.bookmarks = bookmarks
|
||||
end,
|
||||
entry = function(self, jobs)
|
||||
local action = jobs.args[1]
|
||||
if not action then
|
||||
return
|
||||
end
|
||||
local mb_path, cli, bookmarks, jump_notify = get_state_attr("path"), get_state_attr("cli"), get_state_attr("bookmarks"), get_state_attr("jump_notify")
|
||||
if action == "save" then
|
||||
action_save(mb_path, bookmarks, get_hovered_path())
|
||||
elseif action == "delete_by_key" then
|
||||
action_delete(mb_path, bookmarks, which_find(bookmarks))
|
||||
elseif action == "delete_by_fzf" then
|
||||
action_delete(mb_path, bookmarks, fzf_find(cli, mb_path))
|
||||
elseif action == "delete_all" then
|
||||
action_delete_all(mb_path)
|
||||
elseif action == "jump_by_key" then
|
||||
action_jump(bookmarks, which_find(bookmarks), jump_notify)
|
||||
elseif action == "jump_by_fzf" then
|
||||
action_jump(bookmarks, fzf_find(cli, mb_path), jump_notify)
|
||||
elseif action == "rename_by_key" then
|
||||
action_save(mb_path, bookmarks, which_find(bookmarks))
|
||||
elseif action == "rename_by_fzf" then
|
||||
action_save(mb_path, bookmarks, fzf_find(cli, mb_path))
|
||||
end
|
||||
end,
|
||||
}
|
||||
21
config/yazi/plugins/yaziline.yazi/LICENSE
Normal file
21
config/yazi/plugins/yaziline.yazi/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2024 llanosrocas
|
||||
|
||||
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.
|
||||
166
config/yazi/plugins/yaziline.yazi/README.md
Normal file
166
config/yazi/plugins/yaziline.yazi/README.md
Normal file
@@ -0,0 +1,166 @@
|
||||
# yaziline.yazi
|
||||
|
||||
Simple lualine-like status line for yazi.
|
||||
|
||||
Read more about features and configuration [here](#features).
|
||||
|
||||

|
||||
|
||||
## Requirements
|
||||
|
||||
- yazi version >= [25.5.28](https://github.com/sxyazi/yazi/releases/tag/v25.5.28)
|
||||
- Font with symbol support. For example [Nerd Fonts](https://www.nerdfonts.com/).
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
ya pkg add llanosrocas/yaziline
|
||||
```
|
||||
|
||||
Or manually copy `main.lua` to the `~/.config/yazi/plugins/yaziline.yazi/main.lua`
|
||||
|
||||
## Usage
|
||||
|
||||
Add this to your `~/.config/yazi/init.lua`:
|
||||
|
||||
```lua
|
||||
require("yaziline"):setup()
|
||||
```
|
||||
|
||||
Optionally, configure line:
|
||||
|
||||
```lua
|
||||
require("yaziline"):setup({
|
||||
color = "#98c379", -- main theme color
|
||||
secondary_color = "#5A6078", -- secondary color
|
||||
default_files_color = "darkgray", -- color of the file counter when it's inactive
|
||||
selected_files_color = "white",
|
||||
yanked_files_color = "green",
|
||||
cut_files_color = "red",
|
||||
|
||||
separator_style = "angly", -- "angly" | "curvy" | "liney" | "empty"
|
||||
separator_open = "",
|
||||
separator_close = "",
|
||||
separator_open_thin = "",
|
||||
separator_close_thin = "",
|
||||
separator_head = "",
|
||||
separator_tail = "",
|
||||
|
||||
select_symbol = "",
|
||||
yank_symbol = "",
|
||||
|
||||
filename_max_length = 24, -- truncate when filename > 24
|
||||
filename_truncate_length = 6, -- leave 6 chars on both sides
|
||||
filename_truncate_separator = "..." -- the separator of the truncated filename
|
||||
})
|
||||
```
|
||||
|
||||
```
|
||||
MODE size long_file...name.md S 0 Y 0
|
||||
| | | | | | | | |
|
||||
| | | | | | | | └─── yank_symbol
|
||||
| | | | | | | └─────── select_symbol
|
||||
| | | | | | └───────── separator_close_thin
|
||||
| | | | | └─────────────────── filename_truncate_separator
|
||||
| | | | └─────────────────────────────── separator_close
|
||||
| | | └────────────────────────────────── secondary_color
|
||||
| | └────────────────────────────────────── separator_close
|
||||
| └────────────────────────────────────────── color
|
||||
└───────────────────────────────────────────── separator_head
|
||||
```
|
||||
|
||||
## Features
|
||||
|
||||
### Preconfigured separators
|
||||
|
||||
Choose your style:
|
||||
|
||||
- `angly`
|
||||

|
||||
- `curvy`
|
||||

|
||||
- `liney`
|
||||

|
||||
- `empty`
|
||||

|
||||
|
||||
### Separator customization
|
||||
|
||||
You can provide your own symbols for separators combined with preconfigured separators. For example:
|
||||
|
||||
```lua
|
||||
require("yaziline"):setup({
|
||||
-- Optinal config
|
||||
separator_style = "angly", -- preconfigured style
|
||||
separator_open = "", -- instead of
|
||||
separator_close = "", -- instead of
|
||||
separator_open_thin = "", -- change to anything
|
||||
separator_close_thin = "", -- change to anything
|
||||
separator_head = "", -- to match the style
|
||||
separator_tail = "" -- to match the style
|
||||
})
|
||||
```
|
||||
|
||||

|
||||
|
||||
_You can find more symbols [here](https://www.nerdfonts.com/cheat-sheet)_
|
||||
|
||||
### File actions icons
|
||||
|
||||
You can provide your own symbols for `select` and `yank`. For example:
|
||||
|
||||
```lua
|
||||
require("yaziline"):setup({
|
||||
-- Optinal config
|
||||
select_symbol = "", -- "S" by default
|
||||
yank_symbol = "" -- "Y" by default
|
||||
})
|
||||
```
|
||||
|
||||

|
||||
|
||||
_You can find more symbols [here](https://www.nerdfonts.com/cheat-sheet)_
|
||||
|
||||
### Colors and font weight
|
||||
|
||||
By default yaziline uses color values from your `theme.toml` (or flavor) but you can set custom colors in the `init.lua`:
|
||||
|
||||
```lua
|
||||
require("yaziline"):setup({
|
||||
color = "#98c379",
|
||||
default_files_color = "darkgray",
|
||||
selected_files_color = "white",
|
||||
yanked_files_color = "green",
|
||||
cut_files_color = "red",
|
||||
})
|
||||
```
|
||||
|
||||
For example, here is how my line looks like:
|
||||
|
||||

|
||||
|
||||
### Selected and Yanked Counter
|
||||
|
||||
Displays the number of selected ('S') and yanked ('Y') files on the left. If files are cut, the yank counter changes color, since its `yank --cut` under the hood.
|
||||
|
||||
### Truncated filename
|
||||
|
||||
Displays the truncated filename on the left, which is useful for smaller windows or long filenames. By default, it's 24 characters with trimming to 12 (6 + 6). Adjust in the `setup`.
|
||||
|
||||
```lua
|
||||
require("yaziline"):setup({
|
||||
filename_max_length = 24, -- truncate when filename > 24
|
||||
filename_truncate_length = 6, -- leave 6 chars on both sides
|
||||
filename_truncate_separator = "..." -- the separator of the truncated filename
|
||||
})
|
||||
```
|
||||
|
||||
### ISO Date for 'Modified'
|
||||
|
||||
On the right, you'll find the date and time the file was modified, formatted in an [ISO](https://en.wikipedia.org/wiki/ISO_8601)-like string for universal date representation. Adjust in the `Status:date` function.
|
||||
|
||||
## Credits
|
||||
|
||||
- [yazi source code](https://github.com/sxyazi/yazi)
|
||||
- [yatline.yazi](https://github.com/imsi32/yatline.yazi/tree/main)
|
||||
- [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim)
|
||||
212
config/yazi/plugins/yaziline.yazi/main.lua
Normal file
212
config/yazi/plugins/yaziline.yazi/main.lua
Normal file
@@ -0,0 +1,212 @@
|
||||
---@diagnostic disable: undefined-global
|
||||
|
||||
local function setup(_, options)
|
||||
options = options or {}
|
||||
|
||||
local default_separators = {
|
||||
angly = { "", "", "", "" },
|
||||
curvy = { "", "", "", "" },
|
||||
liney = { "", "", "|", "|" },
|
||||
empty = { "", "", "", "" },
|
||||
}
|
||||
local separators = default_separators[options.separator_style or "angly"]
|
||||
|
||||
local config = {
|
||||
separator_styles = {
|
||||
separator_open = options.separator_open or separators[1],
|
||||
separator_close = options.separator_close or separators[2],
|
||||
separator_open_thin = options.separator_open_thin or separators[3],
|
||||
separator_close_thin = options.separator_close_thin or separators[4],
|
||||
separator_head = options.separator_head or "",
|
||||
separator_tail = options.separator_tail or "",
|
||||
},
|
||||
select_symbol = options.select_symbol or "S",
|
||||
yank_symbol = options.yank_symbol or "Y",
|
||||
|
||||
filename_max_length = options.filename_max_length or 24,
|
||||
filename_truncate_length = options.filename_truncate_length or 6,
|
||||
filename_truncate_separator = options.filename_truncate_separator or "...",
|
||||
|
||||
color = options.color or nil,
|
||||
secondary_color = options.secondary_color or nil,
|
||||
default_files_color = options.default_files_color
|
||||
or th.which.separator_style.fg
|
||||
or "darkgray",
|
||||
selected_files_color = options.selected_files_color
|
||||
or th.mgr.count_selected.bg
|
||||
or "white",
|
||||
yanked_files_color = options.selected_files_color
|
||||
or th.mgr.count_copied.bg
|
||||
or "green",
|
||||
cut_files_color = options.cut_files_color
|
||||
or th.mgr.count_cut.bg
|
||||
or "red",
|
||||
}
|
||||
|
||||
local current_separator_style = config.separator_styles
|
||||
|
||||
function Header:count()
|
||||
return ui.Line({})
|
||||
end
|
||||
|
||||
function Status:mode()
|
||||
local mode = tostring(self._tab.mode):upper()
|
||||
|
||||
local style = self:style()
|
||||
return ui.Line({
|
||||
ui.Span(current_separator_style.separator_head)
|
||||
:fg(config.color or style.main.bg),
|
||||
ui.Span(" " .. mode .. " ")
|
||||
:fg(th.which.mask.bg)
|
||||
:bg(config.color or style.main.bg),
|
||||
})
|
||||
end
|
||||
|
||||
function Status:size()
|
||||
local h = self._current.hovered
|
||||
local size = h and (h:size() or h.cha.len) or 0
|
||||
|
||||
local style = self:style()
|
||||
return ui.Span(current_separator_style.separator_close .. " " .. ya.readable_size(size) .. " ")
|
||||
:fg(config.color or style.main.bg)
|
||||
:bg(config.secondary_color or th.which.separator_style.fg)
|
||||
end
|
||||
|
||||
function Status:utf8_sub(str, start_char, end_char)
|
||||
local start_byte = utf8.offset(str, start_char)
|
||||
local end_byte = end_char and (utf8.offset(str, end_char + 1) - 1) or #str
|
||||
|
||||
if not start_byte or not end_byte then
|
||||
return ""
|
||||
end
|
||||
|
||||
return string.sub(str, start_byte, end_byte)
|
||||
end
|
||||
|
||||
function Status:truncate_name(filename, max_length)
|
||||
local base_name, extension = filename:match("^(.+)(%.[^%.]+)$")
|
||||
base_name = base_name or filename
|
||||
extension = extension or ""
|
||||
|
||||
if utf8.len(base_name) > max_length then
|
||||
base_name = self:utf8_sub(base_name, 1, config.filename_truncate_length)
|
||||
.. config.filename_truncate_separator
|
||||
.. self:utf8_sub(base_name, -config.filename_truncate_length)
|
||||
end
|
||||
|
||||
return base_name .. extension
|
||||
end
|
||||
|
||||
function Status:name()
|
||||
local h = self._current.hovered
|
||||
if not h then
|
||||
return ui.Line({
|
||||
ui.Span(current_separator_style.separator_close .. " ")
|
||||
:fg(config.secondary_color or th.which.separator_style.fg),
|
||||
ui.Span("Empty dir")
|
||||
:fg(config.color or style.main.bg),
|
||||
})
|
||||
end
|
||||
|
||||
local truncated_name = self:truncate_name(h.name, config.filename_max_length)
|
||||
|
||||
local style = self:style()
|
||||
return ui.Line({
|
||||
ui.Span(current_separator_style.separator_close .. " ")
|
||||
:fg(config.secondary_color or th.which.separator_style.fg),
|
||||
ui.Span(truncated_name)
|
||||
:fg(config.color or style.main.bg),
|
||||
})
|
||||
end
|
||||
|
||||
function Status:files()
|
||||
local files_yanked = #cx.yanked
|
||||
local files_selected = #cx.active.selected
|
||||
local files_cut = cx.yanked.is_cut
|
||||
|
||||
local selected_fg = files_selected > 0
|
||||
and config.selected_files_color
|
||||
or config.default_files_color
|
||||
local yanked_fg = files_yanked > 0
|
||||
and
|
||||
(files_cut
|
||||
and config.cut_files_color
|
||||
or config.yanked_files_color
|
||||
)
|
||||
or config.default_files_color
|
||||
|
||||
local yanked_text = files_yanked > 0
|
||||
and config.yank_symbol .. " " .. files_yanked
|
||||
or config.yank_symbol .. " 0"
|
||||
|
||||
return ui.Line({
|
||||
ui.Span(" " .. current_separator_style.separator_close_thin .. " ")
|
||||
:fg(th.which.separator_style.fg),
|
||||
ui.Span(config.select_symbol .. " " .. files_selected .. " ")
|
||||
:fg(selected_fg),
|
||||
ui.Span(yanked_text .. " ")
|
||||
:fg(yanked_fg),
|
||||
})
|
||||
end
|
||||
|
||||
function Status:modified()
|
||||
local hovered = cx.active.current.hovered
|
||||
|
||||
if not hovered then
|
||||
return ""
|
||||
end
|
||||
|
||||
local cha = hovered.cha
|
||||
local time = (cha.mtime or 0) // 1
|
||||
|
||||
return ui.Span(os.date("%Y-%m-%d %H:%M", time) .. " " .. current_separator_style.separator_open_thin .. " ")
|
||||
:fg(th.which.separator_style.fg)
|
||||
end
|
||||
|
||||
function Status:percent()
|
||||
local percent = 0
|
||||
local cursor = self._tab.current.cursor
|
||||
local length = #self._tab.current.files
|
||||
if cursor ~= 0 and length ~= 0 then
|
||||
percent = math.floor((cursor + 1) * 100 / length)
|
||||
end
|
||||
|
||||
if percent == 0 then
|
||||
percent = " Top "
|
||||
elseif percent == 100 then
|
||||
percent = " Bot "
|
||||
else
|
||||
percent = string.format(" %2d%% ", percent)
|
||||
end
|
||||
|
||||
local style = self:style()
|
||||
return ui.Line({
|
||||
ui.Span(" " .. current_separator_style.separator_open)
|
||||
:fg(config.secondary_color or th.which.separator_style.fg),
|
||||
ui.Span(percent)
|
||||
:fg(config.color or style.main.bg)
|
||||
:bg(config.secondary_color or th.which.separator_style.fg),
|
||||
ui.Span(current_separator_style.separator_open)
|
||||
:fg(config.color or style.main.bg)
|
||||
:bg(config.secondary_color or th.which.separator_style.fg),
|
||||
})
|
||||
end
|
||||
|
||||
function Status:position()
|
||||
local cursor = self._tab.current.cursor
|
||||
local length = #self._tab.current.files
|
||||
|
||||
local style = self:style()
|
||||
return ui.Line({
|
||||
ui.Span(string.format(" %2d/%-2d ", math.min(cursor + 1, length), length))
|
||||
:fg(th.which.mask.bg)
|
||||
:bg(config.color or style.main.bg),
|
||||
ui.Span(current_separator_style.separator_tail):fg(config.color or style.main.bg),
|
||||
})
|
||||
end
|
||||
|
||||
Status:children_add(Status.files, 4000, Status.LEFT)
|
||||
Status:children_add(Status.modified, 0, Status.RIGHT)
|
||||
end
|
||||
|
||||
return { setup = setup }
|
||||
8
config/yazi/starship.toml
Executable file
8
config/yazi/starship.toml
Executable file
@@ -0,0 +1,8 @@
|
||||
[aws]
|
||||
disabled = true
|
||||
|
||||
[gcloud]
|
||||
disabled = true
|
||||
|
||||
[lua]
|
||||
disabled = true
|
||||
756
config/yazi/theme.toml
Executable file
756
config/yazi/theme.toml
Executable file
@@ -0,0 +1,756 @@
|
||||
[mgr]
|
||||
cwd = { fg = "#94e2d5" }
|
||||
|
||||
hovered = { fg = "#1e1e2e", bg = "#89b4fa" }
|
||||
preview_hovered = { fg = "#1e1e2e", bg = "#cdd6f4" }
|
||||
|
||||
find_keyword = { fg = "#f9e2af", italic = true }
|
||||
find_position = { fg = "#f5c2e7", bg = "reset", italic = true }
|
||||
|
||||
marker_copied = { fg = "#a6e3a1", bg = "#a6e3a1" }
|
||||
marker_cut = { fg = "#f38ba8", bg = "#f38ba8" }
|
||||
marker_marked = { fg = "#94e2d5", bg = "#94e2d5" }
|
||||
marker_selected = { fg = "#89b4fa", bg = "#89b4fa" }
|
||||
|
||||
count_copied = { fg = "#1e1e2e", bg = "#a6e3a1" }
|
||||
count_cut = { fg = "#1e1e2e", bg = "#f38ba8" }
|
||||
count_selected = { fg = "#1e1e2e", bg = "#89b4fa" }
|
||||
|
||||
border_symbol = "│"
|
||||
border_style = { fg = "#7f849c" }
|
||||
|
||||
syntect_theme = "~/.config/yazi/Catppuccin-mocha.tmTheme"
|
||||
|
||||
[tabs]
|
||||
active = { fg = "#1e1e2e", bg = "#cdd6f4", bold = true }
|
||||
inactive = { fg = "#cdd6f4", bg = "#45475a" }
|
||||
|
||||
[mode]
|
||||
normal_main = { fg = "#1e1e2e", bg = "#89b4fa", bold = true }
|
||||
normal_alt = { fg = "#89b4fa", bg = "#313244"}
|
||||
|
||||
select_main = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
|
||||
select_alt = { fg = "#a6e3a1", bg = "#313244"}
|
||||
|
||||
unset_main = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
|
||||
unset_alt = { fg = "#f2cdcd", bg = "#313244"}
|
||||
|
||||
[status]
|
||||
separator_open = ""
|
||||
separator_close = ""
|
||||
|
||||
progress_label = { fg = "#ffffff", bold = true }
|
||||
progress_normal = { fg = "#89b4fa", bg = "#45475a" }
|
||||
progress_error = { fg = "#f38ba8", bg = "#45475a" }
|
||||
|
||||
perm_type = { fg = "#89b4fa" }
|
||||
perm_read = { fg = "#f9e2af" }
|
||||
perm_write = { fg = "#f38ba8" }
|
||||
perm_exec = { fg = "#a6e3a1" }
|
||||
perm_sep = { fg = "#7f849c" }
|
||||
|
||||
[input]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = {}
|
||||
value = {}
|
||||
selected = { reversed = true }
|
||||
|
||||
[pick]
|
||||
border = { fg = "#89b4fa" }
|
||||
active = { fg = "#f5c2e7" }
|
||||
inactive = {}
|
||||
|
||||
[confirm]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = { fg = "#89b4fa" }
|
||||
content = {}
|
||||
list = {}
|
||||
btn_yes = { reversed = true }
|
||||
btn_no = {}
|
||||
|
||||
[cmp]
|
||||
border = { fg = "#89b4fa" }
|
||||
|
||||
[tasks]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = {}
|
||||
hovered = { underline = true }
|
||||
|
||||
[which]
|
||||
mask = { bg = "#313244" }
|
||||
cand = { fg = "#94e2d5" }
|
||||
rest = { fg = "#9399b2" }
|
||||
desc = { fg = "#f5c2e7" }
|
||||
separator = " "
|
||||
separator_style = { fg = "#585b70" }
|
||||
|
||||
[help]
|
||||
on = { fg = "#94e2d5" }
|
||||
run = { fg = "#f5c2e7" }
|
||||
desc = { fg = "#9399b2" }
|
||||
hovered = { bg = "#585b70", bold = true }
|
||||
footer = { fg = "#cdd6f4", bg = "#45475a" }
|
||||
|
||||
[notify]
|
||||
title_info = { fg = "#94e2d5" }
|
||||
title_warn = { fg = "#f9e2af" }
|
||||
title_error = { fg = "#f38ba8" }
|
||||
|
||||
[filetype]
|
||||
rules = [
|
||||
# Media
|
||||
{ mime = "image/*", fg = "#94e2d5" },
|
||||
{ mime = "{audio,video}/*", fg = "#f9e2af" },
|
||||
|
||||
# Archives
|
||||
{ mime = "application/*zip", fg = "#f5c2e7" },
|
||||
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#f5c2e7" },
|
||||
|
||||
# Documents
|
||||
{ mime = "application/{pdf,doc,rtf}", fg = "#a6e3a1" },
|
||||
|
||||
# Fallback
|
||||
{ name = "*", fg = "#cdd6f4" },
|
||||
{ name = "*/", fg = "#89b4fa" }
|
||||
]
|
||||
|
||||
[spot]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = { fg = "#89b4fa" }
|
||||
tbl_cell = { fg = "#89b4fa", reversed = true }
|
||||
tbl_col = { bold = true }
|
||||
|
||||
[icon]
|
||||
files = [
|
||||
{ name = "kritadisplayrc", text = "", fg = "#cba6f7" },
|
||||
{ name = ".gtkrc-2.0", text = "", fg = "#f5e0dc" },
|
||||
{ name = "bspwmrc", text = "", fg = "#313244" },
|
||||
{ name = "webpack", text = "", fg = "#74c7ec" },
|
||||
{ name = "tsconfig.json", text = "", fg = "#74c7ec" },
|
||||
{ name = ".vimrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "gemfile$", text = "", fg = "#313244" },
|
||||
{ name = "xmobarrc", text = "", fg = "#f38ba8" },
|
||||
{ name = "avif", text = "", fg = "#7f849c" },
|
||||
{ name = "fp-info-cache", text = "", fg = "#f5e0dc" },
|
||||
{ name = ".zshrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "robots.txt", text = "", fg = "#6c7086" },
|
||||
{ name = "dockerfile", text = "", fg = "#89b4fa" },
|
||||
{ name = ".git-blame-ignore-revs", text = "", fg = "#fab387" },
|
||||
{ name = ".nvmrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "hyprpaper.conf", text = "", fg = "#74c7ec" },
|
||||
{ name = ".prettierignore", text = "", fg = "#89b4fa" },
|
||||
{ name = "rakefile", text = "", fg = "#313244" },
|
||||
{ name = "code_of_conduct", text = "", fg = "#f38ba8" },
|
||||
{ name = "cmakelists.txt", text = "", fg = "#cdd6f4" },
|
||||
{ name = ".env", text = "", fg = "#f9e2af" },
|
||||
{ name = "copying.lesser", text = "", fg = "#f9e2af" },
|
||||
{ name = "readme", text = "", fg = "#f5e0dc" },
|
||||
{ name = "settings.gradle", text = "", fg = "#585b70" },
|
||||
{ name = "gruntfile.coffee", text = "", fg = "#fab387" },
|
||||
{ name = ".eslintignore", text = "", fg = "#585b70" },
|
||||
{ name = "kalgebrarc", text = "", fg = "#89b4fa" },
|
||||
{ name = "kdenliverc", text = "", fg = "#89b4fa" },
|
||||
{ name = ".prettierrc.cjs", text = "", fg = "#89b4fa" },
|
||||
{ name = "cantorrc", text = "", fg = "#89b4fa" },
|
||||
{ name = "rmd", text = "", fg = "#74c7ec" },
|
||||
{ name = "vagrantfile$", text = "", fg = "#6c7086" },
|
||||
{ name = ".Xauthority", text = "", fg = "#fab387" },
|
||||
{ name = "prettier.config.ts", text = "", fg = "#89b4fa" },
|
||||
{ name = "node_modules", text = "", fg = "#f38ba8" },
|
||||
{ name = ".prettierrc.toml", text = "", fg = "#89b4fa" },
|
||||
{ name = "build.zig.zon", text = "", fg = "#fab387" },
|
||||
{ name = ".ds_store", text = "", fg = "#45475a" },
|
||||
{ name = "PKGBUILD", text = "", fg = "#89b4fa" },
|
||||
{ name = ".prettierrc", text = "", fg = "#89b4fa" },
|
||||
{ name = ".bash_profile", text = "", fg = "#a6e3a1" },
|
||||
{ name = ".npmignore", text = "", fg = "#f38ba8" },
|
||||
{ name = ".mailmap", text = "", fg = "#fab387" },
|
||||
{ name = ".codespellrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "svelte.config.js", text = "", fg = "#fab387" },
|
||||
{ name = "eslint.config.ts", text = "", fg = "#585b70" },
|
||||
{ name = "config", text = "", fg = "#7f849c" },
|
||||
{ name = ".gitlab-ci.yml", text = "", fg = "#fab387" },
|
||||
{ name = ".gitconfig", text = "", fg = "#fab387" },
|
||||
{ name = "_gvimrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = ".xinitrc", text = "", fg = "#fab387" },
|
||||
{ name = "checkhealth", text = "", fg = "#89b4fa" },
|
||||
{ name = "sxhkdrc", text = "", fg = "#313244" },
|
||||
{ name = ".bashrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "tailwind.config.mjs", text = "", fg = "#74c7ec" },
|
||||
{ name = "ext_typoscript_setup.txt", text = "", fg = "#fab387" },
|
||||
{ name = "commitlint.config.ts", text = "", fg = "#94e2d5" },
|
||||
{ name = "py.typed", text = "", fg = "#f9e2af" },
|
||||
{ name = ".nanorc", text = "", fg = "#313244" },
|
||||
{ name = "commit_editmsg", text = "", fg = "#fab387" },
|
||||
{ name = ".luaurc", text = "", fg = "#89b4fa" },
|
||||
{ name = "fp-lib-table", text = "", fg = "#f5e0dc" },
|
||||
{ name = ".editorconfig", text = "", fg = "#f5e0dc" },
|
||||
{ name = "justfile", text = "", fg = "#7f849c" },
|
||||
{ name = "kdeglobals", text = "", fg = "#89b4fa" },
|
||||
{ name = "license.md", text = "", fg = "#f9e2af" },
|
||||
{ name = ".clang-format", text = "", fg = "#7f849c" },
|
||||
{ name = "docker-compose.yaml", text = "", fg = "#89b4fa" },
|
||||
{ name = "copying", text = "", fg = "#f9e2af" },
|
||||
{ name = "go.mod", text = "", fg = "#74c7ec" },
|
||||
{ name = "lxqt.conf", text = "", fg = "#89b4fa" },
|
||||
{ name = "brewfile", text = "", fg = "#313244" },
|
||||
{ name = "gulpfile.coffee", text = "", fg = "#f38ba8" },
|
||||
{ name = ".dockerignore", text = "", fg = "#89b4fa" },
|
||||
{ name = ".settings.json", text = "", fg = "#6c7086" },
|
||||
{ name = "tailwind.config.js", text = "", fg = "#74c7ec" },
|
||||
{ name = ".clang-tidy", text = "", fg = "#7f849c" },
|
||||
{ name = ".gvimrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "nuxt.config.cjs", text = "", fg = "#a6e3a1" },
|
||||
{ name = "xsettingsd.conf", text = "", fg = "#fab387" },
|
||||
{ name = "nuxt.config.js", text = "", fg = "#a6e3a1" },
|
||||
{ name = "eslint.config.cjs", text = "", fg = "#585b70" },
|
||||
{ name = "sym-lib-table", text = "", fg = "#f5e0dc" },
|
||||
{ name = ".condarc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "xmonad.hs", text = "", fg = "#f38ba8" },
|
||||
{ name = "tmux.conf", text = "", fg = "#a6e3a1" },
|
||||
{ name = "xmobarrc.hs", text = "", fg = "#f38ba8" },
|
||||
{ name = ".prettierrc.yaml", text = "", fg = "#89b4fa" },
|
||||
{ name = ".pre-commit-config.yaml", text = "", fg = "#fab387" },
|
||||
{ name = "i3blocks.conf", text = "", fg = "#f5e0dc" },
|
||||
{ name = "xorg.conf", text = "", fg = "#fab387" },
|
||||
{ name = ".zshenv", text = "", fg = "#a6e3a1" },
|
||||
{ name = "vlcrc", text = "", fg = "#fab387" },
|
||||
{ name = "license", text = "", fg = "#f9e2af" },
|
||||
{ name = "unlicense", text = "", fg = "#f9e2af" },
|
||||
{ name = "tmux.conf.local", text = "", fg = "#a6e3a1" },
|
||||
{ name = ".SRCINFO", text = "", fg = "#89b4fa" },
|
||||
{ name = "tailwind.config.ts", text = "", fg = "#74c7ec" },
|
||||
{ name = "security.md", text = "", fg = "#bac2de" },
|
||||
{ name = "security", text = "", fg = "#bac2de" },
|
||||
{ name = ".eslintrc", text = "", fg = "#585b70" },
|
||||
{ name = "gradle.properties", text = "", fg = "#585b70" },
|
||||
{ name = "code_of_conduct.md", text = "", fg = "#f38ba8" },
|
||||
{ name = "PrusaSlicerGcodeViewer.ini", text = "", fg = "#fab387" },
|
||||
{ name = "PrusaSlicer.ini", text = "", fg = "#fab387" },
|
||||
{ name = "procfile", text = "", fg = "#7f849c" },
|
||||
{ name = "mpv.conf", text = "", fg = "#1e1e2e" },
|
||||
{ name = ".prettierrc.json5", text = "", fg = "#89b4fa" },
|
||||
{ name = "i3status.conf", text = "", fg = "#f5e0dc" },
|
||||
{ name = "prettier.config.mjs", text = "", fg = "#89b4fa" },
|
||||
{ name = ".pylintrc", text = "", fg = "#7f849c" },
|
||||
{ name = "prettier.config.cjs", text = "", fg = "#89b4fa" },
|
||||
{ name = ".luacheckrc", text = "", fg = "#89b4fa" },
|
||||
{ name = "containerfile", text = "", fg = "#89b4fa" },
|
||||
{ name = "eslint.config.mjs", text = "", fg = "#585b70" },
|
||||
{ name = "gruntfile.js", text = "", fg = "#fab387" },
|
||||
{ name = "bun.lockb", text = "", fg = "#f5e0dc" },
|
||||
{ name = ".gitattributes", text = "", fg = "#fab387" },
|
||||
{ name = "gruntfile.ts", text = "", fg = "#fab387" },
|
||||
{ name = "pom.xml", text = "", fg = "#313244" },
|
||||
{ name = "favicon.ico", text = "", fg = "#f9e2af" },
|
||||
{ name = "package-lock.json", text = "", fg = "#313244" },
|
||||
{ name = "build", text = "", fg = "#a6e3a1" },
|
||||
{ name = "package.json", text = "", fg = "#f38ba8" },
|
||||
{ name = "nuxt.config.ts", text = "", fg = "#a6e3a1" },
|
||||
{ name = "nuxt.config.mjs", text = "", fg = "#a6e3a1" },
|
||||
{ name = "mix.lock", text = "", fg = "#7f849c" },
|
||||
{ name = "makefile", text = "", fg = "#7f849c" },
|
||||
{ name = "gulpfile.js", text = "", fg = "#f38ba8" },
|
||||
{ name = "lxde-rc.xml", text = "", fg = "#9399b2" },
|
||||
{ name = "kritarc", text = "", fg = "#cba6f7" },
|
||||
{ name = "gtkrc", text = "", fg = "#f5e0dc" },
|
||||
{ name = "ionic.config.json", text = "", fg = "#89b4fa" },
|
||||
{ name = ".prettierrc.mjs", text = "", fg = "#89b4fa" },
|
||||
{ name = ".prettierrc.yml", text = "", fg = "#89b4fa" },
|
||||
{ name = ".npmrc", text = "", fg = "#f38ba8" },
|
||||
{ name = "weston.ini", text = "", fg = "#f9e2af" },
|
||||
{ name = "gulpfile.babel.js", text = "", fg = "#f38ba8" },
|
||||
{ name = "i18n.config.ts", text = "", fg = "#7f849c" },
|
||||
{ name = "commitlint.config.js", text = "", fg = "#94e2d5" },
|
||||
{ name = ".gitmodules", text = "", fg = "#fab387" },
|
||||
{ name = "gradle-wrapper.properties", text = "", fg = "#585b70" },
|
||||
{ name = "hypridle.conf", text = "", fg = "#74c7ec" },
|
||||
{ name = "vercel.json", text = "▲", fg = "#f5e0dc" },
|
||||
{ name = "hyprlock.conf", text = "", fg = "#74c7ec" },
|
||||
{ name = "go.sum", text = "", fg = "#74c7ec" },
|
||||
{ name = "kdenlive-layoutsrc", text = "", fg = "#89b4fa" },
|
||||
{ name = "gruntfile.babel.js", text = "", fg = "#fab387" },
|
||||
{ name = "compose.yml", text = "", fg = "#89b4fa" },
|
||||
{ name = "i18n.config.js", text = "", fg = "#7f849c" },
|
||||
{ name = "readme.md", text = "", fg = "#f5e0dc" },
|
||||
{ name = "gradlew", text = "", fg = "#585b70" },
|
||||
{ name = "go.work", text = "", fg = "#74c7ec" },
|
||||
{ name = "gulpfile.ts", text = "", fg = "#f38ba8" },
|
||||
{ name = "gnumakefile", text = "", fg = "#7f849c" },
|
||||
{ name = "FreeCAD.conf", text = "", fg = "#f38ba8" },
|
||||
{ name = "compose.yaml", text = "", fg = "#89b4fa" },
|
||||
{ name = "eslint.config.js", text = "", fg = "#585b70" },
|
||||
{ name = "hyprland.conf", text = "", fg = "#74c7ec" },
|
||||
{ name = "docker-compose.yml", text = "", fg = "#89b4fa" },
|
||||
{ name = "groovy", text = "", fg = "#585b70" },
|
||||
{ name = "QtProject.conf", text = "", fg = "#a6e3a1" },
|
||||
{ name = "platformio.ini", text = "", fg = "#fab387" },
|
||||
{ name = "build.gradle", text = "", fg = "#585b70" },
|
||||
{ name = ".nuxtrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "_vimrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = ".zprofile", text = "", fg = "#a6e3a1" },
|
||||
{ name = ".xsession", text = "", fg = "#fab387" },
|
||||
{ name = "prettier.config.js", text = "", fg = "#89b4fa" },
|
||||
{ name = ".babelrc", text = "", fg = "#f9e2af" },
|
||||
{ name = "workspace", text = "", fg = "#a6e3a1" },
|
||||
{ name = ".prettierrc.json", text = "", fg = "#89b4fa" },
|
||||
{ name = ".prettierrc.js", text = "", fg = "#89b4fa" },
|
||||
{ name = ".Xresources", text = "", fg = "#fab387" },
|
||||
{ name = ".gitignore", text = "", fg = "#fab387" },
|
||||
{ name = ".justfile", text = "", fg = "#7f849c" },
|
||||
]
|
||||
exts = [
|
||||
{ name = "otf", text = "", fg = "#f5e0dc" },
|
||||
{ name = "import", text = "", fg = "#f5e0dc" },
|
||||
{ name = "krz", text = "", fg = "#cba6f7" },
|
||||
{ name = "adb", text = "", fg = "#94e2d5" },
|
||||
{ name = "ttf", text = "", fg = "#f5e0dc" },
|
||||
{ name = "webpack", text = "", fg = "#74c7ec" },
|
||||
{ name = "dart", text = "", fg = "#585b70" },
|
||||
{ name = "vsh", text = "", fg = "#7f849c" },
|
||||
{ name = "doc", text = "", fg = "#585b70" },
|
||||
{ name = "zsh", text = "", fg = "#a6e3a1" },
|
||||
{ name = "ex", text = "", fg = "#7f849c" },
|
||||
{ name = "hx", text = "", fg = "#fab387" },
|
||||
{ name = "fodt", text = "", fg = "#74c7ec" },
|
||||
{ name = "mojo", text = "", fg = "#fab387" },
|
||||
{ name = "templ", text = "", fg = "#f9e2af" },
|
||||
{ name = "nix", text = "", fg = "#74c7ec" },
|
||||
{ name = "cshtml", text = "", fg = "#585b70" },
|
||||
{ name = "fish", text = "", fg = "#585b70" },
|
||||
{ name = "ply", text = "", fg = "#7f849c" },
|
||||
{ name = "sldprt", text = "", fg = "#a6e3a1" },
|
||||
{ name = "gemspec", text = "", fg = "#313244" },
|
||||
{ name = "mjs", text = "", fg = "#f9e2af" },
|
||||
{ name = "csh", text = "", fg = "#585b70" },
|
||||
{ name = "cmake", text = "", fg = "#cdd6f4" },
|
||||
{ name = "fodp", text = "", fg = "#fab387" },
|
||||
{ name = "vi", text = "", fg = "#f9e2af" },
|
||||
{ name = "msf", text = "", fg = "#89b4fa" },
|
||||
{ name = "blp", text = "", fg = "#89b4fa" },
|
||||
{ name = "less", text = "", fg = "#45475a" },
|
||||
{ name = "sh", text = "", fg = "#585b70" },
|
||||
{ name = "odg", text = "", fg = "#f9e2af" },
|
||||
{ name = "mint", text = "", fg = "#a6e3a1" },
|
||||
{ name = "dll", text = "", fg = "#11111b" },
|
||||
{ name = "odf", text = "", fg = "#f38ba8" },
|
||||
{ name = "sqlite3", text = "", fg = "#f5e0dc" },
|
||||
{ name = "Dockerfile", text = "", fg = "#89b4fa" },
|
||||
{ name = "ksh", text = "", fg = "#585b70" },
|
||||
{ name = "rmd", text = "", fg = "#74c7ec" },
|
||||
{ name = "wv", text = "", fg = "#74c7ec" },
|
||||
{ name = "xml", text = "", fg = "#fab387" },
|
||||
{ name = "markdown", text = "", fg = "#cdd6f4" },
|
||||
{ name = "qml", text = "", fg = "#a6e3a1" },
|
||||
{ name = "3gp", text = "", fg = "#fab387" },
|
||||
{ name = "pxi", text = "", fg = "#89b4fa" },
|
||||
{ name = "flac", text = "", fg = "#6c7086" },
|
||||
{ name = "gpr", text = "", fg = "#cba6f7" },
|
||||
{ name = "huff", text = "", fg = "#585b70" },
|
||||
{ name = "json", text = "", fg = "#f9e2af" },
|
||||
{ name = "gv", text = "", fg = "#585b70" },
|
||||
{ name = "bmp", text = "", fg = "#7f849c" },
|
||||
{ name = "lock", text = "", fg = "#bac2de" },
|
||||
{ name = "sha384", text = "", fg = "#7f849c" },
|
||||
{ name = "cobol", text = "⚙", fg = "#585b70" },
|
||||
{ name = "cob", text = "⚙", fg = "#585b70" },
|
||||
{ name = "java", text = "", fg = "#f38ba8" },
|
||||
{ name = "cjs", text = "", fg = "#f9e2af" },
|
||||
{ name = "qm", text = "", fg = "#74c7ec" },
|
||||
{ name = "ebuild", text = "", fg = "#45475a" },
|
||||
{ name = "mustache", text = "", fg = "#fab387" },
|
||||
{ name = "terminal", text = "", fg = "#a6e3a1" },
|
||||
{ name = "ejs", text = "", fg = "#f9e2af" },
|
||||
{ name = "brep", text = "", fg = "#a6e3a1" },
|
||||
{ name = "rar", text = "", fg = "#fab387" },
|
||||
{ name = "gradle", text = "", fg = "#585b70" },
|
||||
{ name = "gnumakefile", text = "", fg = "#7f849c" },
|
||||
{ name = "applescript", text = "", fg = "#7f849c" },
|
||||
{ name = "elm", text = "", fg = "#74c7ec" },
|
||||
{ name = "ebook", text = "", fg = "#fab387" },
|
||||
{ name = "kra", text = "", fg = "#cba6f7" },
|
||||
{ name = "tf", text = "", fg = "#585b70" },
|
||||
{ name = "xls", text = "", fg = "#585b70" },
|
||||
{ name = "fnl", text = "", fg = "#f9e2af" },
|
||||
{ name = "kdbx", text = "", fg = "#a6e3a1" },
|
||||
{ name = "kicad_pcb", text = "", fg = "#f5e0dc" },
|
||||
{ name = "cfg", text = "", fg = "#7f849c" },
|
||||
{ name = "ape", text = "", fg = "#74c7ec" },
|
||||
{ name = "org", text = "", fg = "#94e2d5" },
|
||||
{ name = "yml", text = "", fg = "#7f849c" },
|
||||
{ name = "swift", text = "", fg = "#fab387" },
|
||||
{ name = "eln", text = "", fg = "#7f849c" },
|
||||
{ name = "sol", text = "", fg = "#74c7ec" },
|
||||
{ name = "awk", text = "", fg = "#585b70" },
|
||||
{ name = "7z", text = "", fg = "#fab387" },
|
||||
{ name = "apl", text = "⍝", fg = "#fab387" },
|
||||
{ name = "epp", text = "", fg = "#fab387" },
|
||||
{ name = "app", text = "", fg = "#45475a" },
|
||||
{ name = "dot", text = "", fg = "#585b70" },
|
||||
{ name = "kpp", text = "", fg = "#cba6f7" },
|
||||
{ name = "eot", text = "", fg = "#f5e0dc" },
|
||||
{ name = "hpp", text = "", fg = "#7f849c" },
|
||||
{ name = "spec.tsx", text = "", fg = "#585b70" },
|
||||
{ name = "hurl", text = "", fg = "#f38ba8" },
|
||||
{ name = "cxxm", text = "", fg = "#74c7ec" },
|
||||
{ name = "c", text = "", fg = "#89b4fa" },
|
||||
{ name = "fcmacro", text = "", fg = "#f38ba8" },
|
||||
{ name = "sass", text = "", fg = "#f38ba8" },
|
||||
{ name = "yaml", text = "", fg = "#7f849c" },
|
||||
{ name = "xz", text = "", fg = "#fab387" },
|
||||
{ name = "material", text = "", fg = "#f38ba8" },
|
||||
{ name = "json5", text = "", fg = "#f9e2af" },
|
||||
{ name = "signature", text = "λ", fg = "#fab387" },
|
||||
{ name = "3mf", text = "", fg = "#7f849c" },
|
||||
{ name = "jpg", text = "", fg = "#7f849c" },
|
||||
{ name = "xpi", text = "", fg = "#fab387" },
|
||||
{ name = "fcmat", text = "", fg = "#f38ba8" },
|
||||
{ name = "pot", text = "", fg = "#74c7ec" },
|
||||
{ name = "bin", text = "", fg = "#45475a" },
|
||||
{ name = "xlsx", text = "", fg = "#585b70" },
|
||||
{ name = "aac", text = "", fg = "#74c7ec" },
|
||||
{ name = "kicad_sym", text = "", fg = "#f5e0dc" },
|
||||
{ name = "xcstrings", text = "", fg = "#74c7ec" },
|
||||
{ name = "lff", text = "", fg = "#f5e0dc" },
|
||||
{ name = "xcf", text = "", fg = "#585b70" },
|
||||
{ name = "azcli", text = "", fg = "#6c7086" },
|
||||
{ name = "license", text = "", fg = "#f9e2af" },
|
||||
{ name = "jsonc", text = "", fg = "#f9e2af" },
|
||||
{ name = "xaml", text = "", fg = "#585b70" },
|
||||
{ name = "md5", text = "", fg = "#7f849c" },
|
||||
{ name = "xm", text = "", fg = "#74c7ec" },
|
||||
{ name = "sln", text = "", fg = "#6c7086" },
|
||||
{ name = "jl", text = "", fg = "#7f849c" },
|
||||
{ name = "ml", text = "", fg = "#fab387" },
|
||||
{ name = "http", text = "", fg = "#89b4fa" },
|
||||
{ name = "x", text = "", fg = "#89b4fa" },
|
||||
{ name = "wvc", text = "", fg = "#74c7ec" },
|
||||
{ name = "wrz", text = "", fg = "#7f849c" },
|
||||
{ name = "csproj", text = "", fg = "#585b70" },
|
||||
{ name = "wrl", text = "", fg = "#7f849c" },
|
||||
{ name = "wma", text = "", fg = "#74c7ec" },
|
||||
{ name = "woff2", text = "", fg = "#f5e0dc" },
|
||||
{ name = "woff", text = "", fg = "#f5e0dc" },
|
||||
{ name = "tscn", text = "", fg = "#7f849c" },
|
||||
{ name = "webmanifest", text = "", fg = "#f9e2af" },
|
||||
{ name = "webm", text = "", fg = "#fab387" },
|
||||
{ name = "fcbak", text = "", fg = "#f38ba8" },
|
||||
{ name = "log", text = "", fg = "#cdd6f4" },
|
||||
{ name = "wav", text = "", fg = "#74c7ec" },
|
||||
{ name = "wasm", text = "", fg = "#585b70" },
|
||||
{ name = "styl", text = "", fg = "#a6e3a1" },
|
||||
{ name = "gif", text = "", fg = "#7f849c" },
|
||||
{ name = "resi", text = "", fg = "#f38ba8" },
|
||||
{ name = "aiff", text = "", fg = "#74c7ec" },
|
||||
{ name = "sha256", text = "", fg = "#7f849c" },
|
||||
{ name = "igs", text = "", fg = "#a6e3a1" },
|
||||
{ name = "vsix", text = "", fg = "#6c7086" },
|
||||
{ name = "vim", text = "", fg = "#a6e3a1" },
|
||||
{ name = "diff", text = "", fg = "#45475a" },
|
||||
{ name = "drl", text = "", fg = "#eba0ac" },
|
||||
{ name = "erl", text = "", fg = "#f38ba8" },
|
||||
{ name = "vhdl", text = "", fg = "#a6e3a1" },
|
||||
{ name = "🔥", text = "", fg = "#fab387" },
|
||||
{ name = "hrl", text = "", fg = "#f38ba8" },
|
||||
{ name = "fsi", text = "", fg = "#74c7ec" },
|
||||
{ name = "mm", text = "", fg = "#74c7ec" },
|
||||
{ name = "bz", text = "", fg = "#fab387" },
|
||||
{ name = "vh", text = "", fg = "#a6e3a1" },
|
||||
{ name = "kdb", text = "", fg = "#a6e3a1" },
|
||||
{ name = "gz", text = "", fg = "#fab387" },
|
||||
{ name = "cpp", text = "", fg = "#74c7ec" },
|
||||
{ name = "ui", text = "", fg = "#6c7086" },
|
||||
{ name = "txt", text = "", fg = "#a6e3a1" },
|
||||
{ name = "spec.ts", text = "", fg = "#74c7ec" },
|
||||
{ name = "ccm", text = "", fg = "#f38ba8" },
|
||||
{ name = "typoscript", text = "", fg = "#fab387" },
|
||||
{ name = "typ", text = "", fg = "#89dceb" },
|
||||
{ name = "txz", text = "", fg = "#fab387" },
|
||||
{ name = "test.ts", text = "", fg = "#74c7ec" },
|
||||
{ name = "tsx", text = "", fg = "#585b70" },
|
||||
{ name = "mk", text = "", fg = "#7f849c" },
|
||||
{ name = "webp", text = "", fg = "#7f849c" },
|
||||
{ name = "opus", text = "", fg = "#6c7086" },
|
||||
{ name = "bicep", text = "", fg = "#74c7ec" },
|
||||
{ name = "ts", text = "", fg = "#74c7ec" },
|
||||
{ name = "tres", text = "", fg = "#7f849c" },
|
||||
{ name = "torrent", text = "", fg = "#94e2d5" },
|
||||
{ name = "cxx", text = "", fg = "#74c7ec" },
|
||||
{ name = "iso", text = "", fg = "#f2cdcd" },
|
||||
{ name = "ixx", text = "", fg = "#74c7ec" },
|
||||
{ name = "hxx", text = "", fg = "#7f849c" },
|
||||
{ name = "gql", text = "", fg = "#f38ba8" },
|
||||
{ name = "tmux", text = "", fg = "#a6e3a1" },
|
||||
{ name = "ini", text = "", fg = "#7f849c" },
|
||||
{ name = "m3u8", text = "", fg = "#f38ba8" },
|
||||
{ name = "image", text = "", fg = "#f2cdcd" },
|
||||
{ name = "tfvars", text = "", fg = "#585b70" },
|
||||
{ name = "tex", text = "", fg = "#45475a" },
|
||||
{ name = "cbl", text = "⚙", fg = "#585b70" },
|
||||
{ name = "flc", text = "", fg = "#f5e0dc" },
|
||||
{ name = "elc", text = "", fg = "#7f849c" },
|
||||
{ name = "test.tsx", text = "", fg = "#585b70" },
|
||||
{ name = "twig", text = "", fg = "#a6e3a1" },
|
||||
{ name = "sql", text = "", fg = "#f5e0dc" },
|
||||
{ name = "test.jsx", text = "", fg = "#74c7ec" },
|
||||
{ name = "htm", text = "", fg = "#fab387" },
|
||||
{ name = "gcode", text = "", fg = "#6c7086" },
|
||||
{ name = "test.js", text = "", fg = "#f9e2af" },
|
||||
{ name = "ino", text = "", fg = "#74c7ec" },
|
||||
{ name = "tcl", text = "", fg = "#585b70" },
|
||||
{ name = "cljs", text = "", fg = "#74c7ec" },
|
||||
{ name = "tsconfig", text = "", fg = "#fab387" },
|
||||
{ name = "img", text = "", fg = "#f2cdcd" },
|
||||
{ name = "t", text = "", fg = "#74c7ec" },
|
||||
{ name = "fcstd1", text = "", fg = "#f38ba8" },
|
||||
{ name = "out", text = "", fg = "#45475a" },
|
||||
{ name = "jsx", text = "", fg = "#74c7ec" },
|
||||
{ name = "bash", text = "", fg = "#a6e3a1" },
|
||||
{ name = "edn", text = "", fg = "#74c7ec" },
|
||||
{ name = "rss", text = "", fg = "#fab387" },
|
||||
{ name = "flf", text = "", fg = "#f5e0dc" },
|
||||
{ name = "cache", text = "", fg = "#f5e0dc" },
|
||||
{ name = "sbt", text = "", fg = "#f38ba8" },
|
||||
{ name = "cppm", text = "", fg = "#74c7ec" },
|
||||
{ name = "svelte", text = "", fg = "#fab387" },
|
||||
{ name = "mo", text = "∞", fg = "#7f849c" },
|
||||
{ name = "sv", text = "", fg = "#a6e3a1" },
|
||||
{ name = "ko", text = "", fg = "#f5e0dc" },
|
||||
{ name = "suo", text = "", fg = "#6c7086" },
|
||||
{ name = "sldasm", text = "", fg = "#a6e3a1" },
|
||||
{ name = "icalendar", text = "", fg = "#313244" },
|
||||
{ name = "go", text = "", fg = "#74c7ec" },
|
||||
{ name = "sublime", text = "", fg = "#fab387" },
|
||||
{ name = "stl", text = "", fg = "#7f849c" },
|
||||
{ name = "mobi", text = "", fg = "#fab387" },
|
||||
{ name = "graphql", text = "", fg = "#f38ba8" },
|
||||
{ name = "m3u", text = "", fg = "#f38ba8" },
|
||||
{ name = "cpy", text = "⚙", fg = "#585b70" },
|
||||
{ name = "kdenlive", text = "", fg = "#89b4fa" },
|
||||
{ name = "pyo", text = "", fg = "#f9e2af" },
|
||||
{ name = "po", text = "", fg = "#74c7ec" },
|
||||
{ name = "scala", text = "", fg = "#f38ba8" },
|
||||
{ name = "exs", text = "", fg = "#7f849c" },
|
||||
{ name = "odp", text = "", fg = "#fab387" },
|
||||
{ name = "dump", text = "", fg = "#f5e0dc" },
|
||||
{ name = "stp", text = "", fg = "#a6e3a1" },
|
||||
{ name = "step", text = "", fg = "#a6e3a1" },
|
||||
{ name = "ste", text = "", fg = "#a6e3a1" },
|
||||
{ name = "aif", text = "", fg = "#74c7ec" },
|
||||
{ name = "strings", text = "", fg = "#74c7ec" },
|
||||
{ name = "cp", text = "", fg = "#74c7ec" },
|
||||
{ name = "fsscript", text = "", fg = "#74c7ec" },
|
||||
{ name = "mli", text = "", fg = "#fab387" },
|
||||
{ name = "bak", text = "", fg = "#7f849c" },
|
||||
{ name = "ssa", text = "", fg = "#f9e2af" },
|
||||
{ name = "toml", text = "", fg = "#585b70" },
|
||||
{ name = "makefile", text = "", fg = "#7f849c" },
|
||||
{ name = "php", text = "", fg = "#7f849c" },
|
||||
{ name = "zst", text = "", fg = "#fab387" },
|
||||
{ name = "spec.jsx", text = "", fg = "#74c7ec" },
|
||||
{ name = "kbx", text = "", fg = "#6c7086" },
|
||||
{ name = "fbx", text = "", fg = "#7f849c" },
|
||||
{ name = "blend", text = "", fg = "#fab387" },
|
||||
{ name = "ifc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "spec.js", text = "", fg = "#f9e2af" },
|
||||
{ name = "so", text = "", fg = "#f5e0dc" },
|
||||
{ name = "desktop", text = "", fg = "#45475a" },
|
||||
{ name = "sml", text = "λ", fg = "#fab387" },
|
||||
{ name = "slvs", text = "", fg = "#a6e3a1" },
|
||||
{ name = "pp", text = "", fg = "#fab387" },
|
||||
{ name = "ps1", text = "", fg = "#6c7086" },
|
||||
{ name = "dropbox", text = "", fg = "#6c7086" },
|
||||
{ name = "kicad_mod", text = "", fg = "#f5e0dc" },
|
||||
{ name = "bat", text = "", fg = "#a6e3a1" },
|
||||
{ name = "slim", text = "", fg = "#fab387" },
|
||||
{ name = "skp", text = "", fg = "#a6e3a1" },
|
||||
{ name = "css", text = "", fg = "#89b4fa" },
|
||||
{ name = "xul", text = "", fg = "#fab387" },
|
||||
{ name = "ige", text = "", fg = "#a6e3a1" },
|
||||
{ name = "glb", text = "", fg = "#fab387" },
|
||||
{ name = "ppt", text = "", fg = "#f38ba8" },
|
||||
{ name = "sha512", text = "", fg = "#7f849c" },
|
||||
{ name = "ics", text = "", fg = "#313244" },
|
||||
{ name = "mdx", text = "", fg = "#74c7ec" },
|
||||
{ name = "sha1", text = "", fg = "#7f849c" },
|
||||
{ name = "f3d", text = "", fg = "#a6e3a1" },
|
||||
{ name = "ass", text = "", fg = "#f9e2af" },
|
||||
{ name = "godot", text = "", fg = "#7f849c" },
|
||||
{ name = "ifb", text = "", fg = "#313244" },
|
||||
{ name = "cson", text = "", fg = "#f9e2af" },
|
||||
{ name = "lib", text = "", fg = "#11111b" },
|
||||
{ name = "luac", text = "", fg = "#74c7ec" },
|
||||
{ name = "heex", text = "", fg = "#7f849c" },
|
||||
{ name = "scm", text = "", fg = "#f5e0dc" },
|
||||
{ name = "psd1", text = "", fg = "#7f849c" },
|
||||
{ name = "sc", text = "", fg = "#f38ba8" },
|
||||
{ name = "scad", text = "", fg = "#f9e2af" },
|
||||
{ name = "kts", text = "", fg = "#6c7086" },
|
||||
{ name = "svh", text = "", fg = "#a6e3a1" },
|
||||
{ name = "mts", text = "", fg = "#74c7ec" },
|
||||
{ name = "nfo", text = "", fg = "#f9e2af" },
|
||||
{ name = "pck", text = "", fg = "#7f849c" },
|
||||
{ name = "rproj", text = "", fg = "#a6e3a1" },
|
||||
{ name = "rlib", text = "", fg = "#fab387" },
|
||||
{ name = "cljd", text = "", fg = "#74c7ec" },
|
||||
{ name = "ods", text = "", fg = "#a6e3a1" },
|
||||
{ name = "res", text = "", fg = "#f38ba8" },
|
||||
{ name = "apk", text = "", fg = "#a6e3a1" },
|
||||
{ name = "haml", text = "", fg = "#f5e0dc" },
|
||||
{ name = "d.ts", text = "", fg = "#fab387" },
|
||||
{ name = "razor", text = "", fg = "#585b70" },
|
||||
{ name = "rake", text = "", fg = "#313244" },
|
||||
{ name = "patch", text = "", fg = "#45475a" },
|
||||
{ name = "cuh", text = "", fg = "#7f849c" },
|
||||
{ name = "d", text = "", fg = "#f38ba8" },
|
||||
{ name = "query", text = "", fg = "#a6e3a1" },
|
||||
{ name = "psb", text = "", fg = "#74c7ec" },
|
||||
{ name = "nu", text = ">", fg = "#a6e3a1" },
|
||||
{ name = "mov", text = "", fg = "#fab387" },
|
||||
{ name = "lrc", text = "", fg = "#f9e2af" },
|
||||
{ name = "pyx", text = "", fg = "#89b4fa" },
|
||||
{ name = "pyw", text = "", fg = "#89b4fa" },
|
||||
{ name = "cu", text = "", fg = "#a6e3a1" },
|
||||
{ name = "bazel", text = "", fg = "#a6e3a1" },
|
||||
{ name = "obj", text = "", fg = "#7f849c" },
|
||||
{ name = "pyi", text = "", fg = "#f9e2af" },
|
||||
{ name = "pyd", text = "", fg = "#f9e2af" },
|
||||
{ name = "exe", text = "", fg = "#45475a" },
|
||||
{ name = "pyc", text = "", fg = "#f9e2af" },
|
||||
{ name = "fctb", text = "", fg = "#f38ba8" },
|
||||
{ name = "part", text = "", fg = "#94e2d5" },
|
||||
{ name = "blade.php", text = "", fg = "#f38ba8" },
|
||||
{ name = "git", text = "", fg = "#fab387" },
|
||||
{ name = "psd", text = "", fg = "#74c7ec" },
|
||||
{ name = "qss", text = "", fg = "#a6e3a1" },
|
||||
{ name = "csv", text = "", fg = "#a6e3a1" },
|
||||
{ name = "psm1", text = "", fg = "#7f849c" },
|
||||
{ name = "dconf", text = "", fg = "#f5e0dc" },
|
||||
{ name = "config.ru", text = "", fg = "#313244" },
|
||||
{ name = "prisma", text = "", fg = "#6c7086" },
|
||||
{ name = "conf", text = "", fg = "#7f849c" },
|
||||
{ name = "clj", text = "", fg = "#a6e3a1" },
|
||||
{ name = "o", text = "", fg = "#45475a" },
|
||||
{ name = "mp4", text = "", fg = "#fab387" },
|
||||
{ name = "cc", text = "", fg = "#f38ba8" },
|
||||
{ name = "kicad_prl", text = "", fg = "#f5e0dc" },
|
||||
{ name = "bz3", text = "", fg = "#fab387" },
|
||||
{ name = "asc", text = "", fg = "#6c7086" },
|
||||
{ name = "png", text = "", fg = "#7f849c" },
|
||||
{ name = "android", text = "", fg = "#a6e3a1" },
|
||||
{ name = "pm", text = "", fg = "#74c7ec" },
|
||||
{ name = "h", text = "", fg = "#7f849c" },
|
||||
{ name = "pls", text = "", fg = "#f38ba8" },
|
||||
{ name = "ipynb", text = "", fg = "#fab387" },
|
||||
{ name = "pl", text = "", fg = "#74c7ec" },
|
||||
{ name = "ads", text = "", fg = "#f5e0dc" },
|
||||
{ name = "sqlite", text = "", fg = "#f5e0dc" },
|
||||
{ name = "pdf", text = "", fg = "#585b70" },
|
||||
{ name = "pcm", text = "", fg = "#6c7086" },
|
||||
{ name = "ico", text = "", fg = "#f9e2af" },
|
||||
{ name = "a", text = "", fg = "#f5e0dc" },
|
||||
{ name = "R", text = "", fg = "#6c7086" },
|
||||
{ name = "ogg", text = "", fg = "#6c7086" },
|
||||
{ name = "pxd", text = "", fg = "#89b4fa" },
|
||||
{ name = "kdenlivetitle", text = "", fg = "#89b4fa" },
|
||||
{ name = "jxl", text = "", fg = "#7f849c" },
|
||||
{ name = "nswag", text = "", fg = "#a6e3a1" },
|
||||
{ name = "nim", text = "", fg = "#f9e2af" },
|
||||
{ name = "bqn", text = "⎉", fg = "#6c7086" },
|
||||
{ name = "cts", text = "", fg = "#74c7ec" },
|
||||
{ name = "fcparam", text = "", fg = "#f38ba8" },
|
||||
{ name = "rs", text = "", fg = "#fab387" },
|
||||
{ name = "mpp", text = "", fg = "#74c7ec" },
|
||||
{ name = "fdmdownload", text = "", fg = "#94e2d5" },
|
||||
{ name = "pptx", text = "", fg = "#f38ba8" },
|
||||
{ name = "jpeg", text = "", fg = "#7f849c" },
|
||||
{ name = "bib", text = "", fg = "#f9e2af" },
|
||||
{ name = "vhd", text = "", fg = "#a6e3a1" },
|
||||
{ name = "m", text = "", fg = "#89b4fa" },
|
||||
{ name = "js", text = "", fg = "#f9e2af" },
|
||||
{ name = "eex", text = "", fg = "#7f849c" },
|
||||
{ name = "tbc", text = "", fg = "#585b70" },
|
||||
{ name = "astro", text = "", fg = "#f38ba8" },
|
||||
{ name = "sha224", text = "", fg = "#7f849c" },
|
||||
{ name = "xcplayground", text = "", fg = "#fab387" },
|
||||
{ name = "el", text = "", fg = "#7f849c" },
|
||||
{ name = "m4v", text = "", fg = "#fab387" },
|
||||
{ name = "m4a", text = "", fg = "#74c7ec" },
|
||||
{ name = "cs", text = "", fg = "#585b70" },
|
||||
{ name = "hs", text = "", fg = "#7f849c" },
|
||||
{ name = "tgz", text = "", fg = "#fab387" },
|
||||
{ name = "fs", text = "", fg = "#74c7ec" },
|
||||
{ name = "luau", text = "", fg = "#89b4fa" },
|
||||
{ name = "dxf", text = "", fg = "#a6e3a1" },
|
||||
{ name = "download", text = "", fg = "#94e2d5" },
|
||||
{ name = "cast", text = "", fg = "#fab387" },
|
||||
{ name = "qrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "lua", text = "", fg = "#74c7ec" },
|
||||
{ name = "lhs", text = "", fg = "#7f849c" },
|
||||
{ name = "md", text = "", fg = "#cdd6f4" },
|
||||
{ name = "leex", text = "", fg = "#7f849c" },
|
||||
{ name = "ai", text = "", fg = "#f9e2af" },
|
||||
{ name = "lck", text = "", fg = "#bac2de" },
|
||||
{ name = "kt", text = "", fg = "#6c7086" },
|
||||
{ name = "bicepparam", text = "", fg = "#7f849c" },
|
||||
{ name = "hex", text = "", fg = "#6c7086" },
|
||||
{ name = "zig", text = "", fg = "#fab387" },
|
||||
{ name = "bzl", text = "", fg = "#a6e3a1" },
|
||||
{ name = "cljc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "kicad_dru", text = "", fg = "#f5e0dc" },
|
||||
{ name = "fctl", text = "", fg = "#f38ba8" },
|
||||
{ name = "f#", text = "", fg = "#74c7ec" },
|
||||
{ name = "odt", text = "", fg = "#74c7ec" },
|
||||
{ name = "conda", text = "", fg = "#a6e3a1" },
|
||||
{ name = "vala", text = "", fg = "#585b70" },
|
||||
{ name = "erb", text = "", fg = "#313244" },
|
||||
{ name = "mp3", text = "", fg = "#74c7ec" },
|
||||
{ name = "bz2", text = "", fg = "#fab387" },
|
||||
{ name = "coffee", text = "", fg = "#f9e2af" },
|
||||
{ name = "cr", text = "", fg = "#f5e0dc" },
|
||||
{ name = "f90", text = "", fg = "#585b70" },
|
||||
{ name = "jwmrc", text = "", fg = "#6c7086" },
|
||||
{ name = "c++", text = "", fg = "#f38ba8" },
|
||||
{ name = "fcscript", text = "", fg = "#f38ba8" },
|
||||
{ name = "fods", text = "", fg = "#a6e3a1" },
|
||||
{ name = "cue", text = "", fg = "#f38ba8" },
|
||||
{ name = "srt", text = "", fg = "#f9e2af" },
|
||||
{ name = "info", text = "", fg = "#f9e2af" },
|
||||
{ name = "hh", text = "", fg = "#7f849c" },
|
||||
{ name = "sig", text = "λ", fg = "#fab387" },
|
||||
{ name = "html", text = "", fg = "#fab387" },
|
||||
{ name = "iges", text = "", fg = "#a6e3a1" },
|
||||
{ name = "kicad_wks", text = "", fg = "#f5e0dc" },
|
||||
{ name = "hbs", text = "", fg = "#fab387" },
|
||||
{ name = "fcstd", text = "", fg = "#f38ba8" },
|
||||
{ name = "gresource", text = "", fg = "#f5e0dc" },
|
||||
{ name = "sub", text = "", fg = "#f9e2af" },
|
||||
{ name = "ical", text = "", fg = "#313244" },
|
||||
{ name = "crdownload", text = "", fg = "#94e2d5" },
|
||||
{ name = "pub", text = "", fg = "#f9e2af" },
|
||||
{ name = "vue", text = "", fg = "#a6e3a1" },
|
||||
{ name = "gd", text = "", fg = "#7f849c" },
|
||||
{ name = "fsx", text = "", fg = "#74c7ec" },
|
||||
{ name = "mkv", text = "", fg = "#fab387" },
|
||||
{ name = "py", text = "", fg = "#f9e2af" },
|
||||
{ name = "kicad_sch", text = "", fg = "#f5e0dc" },
|
||||
{ name = "epub", text = "", fg = "#fab387" },
|
||||
{ name = "env", text = "", fg = "#f9e2af" },
|
||||
{ name = "magnet", text = "", fg = "#45475a" },
|
||||
{ name = "elf", text = "", fg = "#45475a" },
|
||||
{ name = "fodg", text = "", fg = "#f9e2af" },
|
||||
{ name = "svg", text = "", fg = "#fab387" },
|
||||
{ name = "dwg", text = "", fg = "#a6e3a1" },
|
||||
{ name = "docx", text = "", fg = "#585b70" },
|
||||
{ name = "pro", text = "", fg = "#f9e2af" },
|
||||
{ name = "db", text = "", fg = "#f5e0dc" },
|
||||
{ name = "rb", text = "", fg = "#313244" },
|
||||
{ name = "r", text = "", fg = "#6c7086" },
|
||||
{ name = "scss", text = "", fg = "#f38ba8" },
|
||||
{ name = "cow", text = "", fg = "#fab387" },
|
||||
{ name = "gleam", text = "", fg = "#f5c2e7" },
|
||||
{ name = "v", text = "", fg = "#a6e3a1" },
|
||||
{ name = "kicad_pro", text = "", fg = "#f5e0dc" },
|
||||
{ name = "liquid", text = "", fg = "#a6e3a1" },
|
||||
{ name = "zip", text = "", fg = "#fab387" },
|
||||
]
|
||||
750
config/yazi/theme.toml-1748477627539223
Executable file
750
config/yazi/theme.toml-1748477627539223
Executable file
@@ -0,0 +1,750 @@
|
||||
[manager]
|
||||
cwd = { fg = "#94e2d5" }
|
||||
|
||||
hovered = { fg = "#1e1e2e", bg = "#89b4fa" }
|
||||
preview_hovered = { fg = "#1e1e2e", bg = "#cdd6f4" }
|
||||
|
||||
find_keyword = { fg = "#f9e2af", italic = true }
|
||||
find_position = { fg = "#f5c2e7", bg = "reset", italic = true }
|
||||
|
||||
marker_copied = { fg = "#a6e3a1", bg = "#a6e3a1" }
|
||||
marker_cut = { fg = "#f38ba8", bg = "#f38ba8" }
|
||||
marker_marked = { fg = "#94e2d5", bg = "#94e2d5" }
|
||||
marker_selected = { fg = "#89b4fa", bg = "#89b4fa" }
|
||||
|
||||
tab_active = { fg = "#1e1e2e", bg = "#cdd6f4" }
|
||||
tab_inactive = { fg = "#cdd6f4", bg = "#45475a" }
|
||||
tab_width = 1
|
||||
|
||||
count_copied = { fg = "#1e1e2e", bg = "#a6e3a1" }
|
||||
count_cut = { fg = "#1e1e2e", bg = "#f38ba8" }
|
||||
count_selected = { fg = "#1e1e2e", bg = "#89b4fa" }
|
||||
|
||||
border_symbol = "│"
|
||||
border_style = { fg = "#7f849c" }
|
||||
|
||||
syntect_theme = "~/.config/yazi/Catppuccin-mocha.tmTheme"
|
||||
|
||||
[mode]
|
||||
normal_main = { fg = "#1e1e2e", bg = "#89b4fa", bold = true }
|
||||
normal_alt = { fg = "#89b4fa", bg = "#313244"}
|
||||
|
||||
select_main = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
|
||||
select_alt = { fg = "#a6e3a1", bg = "#313244"}
|
||||
|
||||
unset_main = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
|
||||
unset_alt = { fg = "#f2cdcd", bg = "#313244"}
|
||||
|
||||
[status]
|
||||
separator_open = ""
|
||||
separator_close = ""
|
||||
|
||||
progress_label = { fg = "#ffffff", bold = true }
|
||||
progress_normal = { fg = "#89b4fa", bg = "#45475a" }
|
||||
progress_error = { fg = "#f38ba8", bg = "#45475a" }
|
||||
|
||||
perm_type = { fg = "#89b4fa" }
|
||||
perm_read = { fg = "#f9e2af" }
|
||||
perm_write = { fg = "#f38ba8" }
|
||||
perm_exec = { fg = "#a6e3a1" }
|
||||
perm_sep = { fg = "#7f849c" }
|
||||
|
||||
[input]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = {}
|
||||
value = {}
|
||||
selected = { reversed = true }
|
||||
|
||||
[pick]
|
||||
border = { fg = "#89b4fa" }
|
||||
active = { fg = "#f5c2e7" }
|
||||
inactive = {}
|
||||
|
||||
[confirm]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = { fg = "#89b4fa" }
|
||||
content = {}
|
||||
list = {}
|
||||
btn_yes = { reversed = true }
|
||||
btn_no = {}
|
||||
|
||||
[completion]
|
||||
border = { fg = "#89b4fa" }
|
||||
|
||||
[tasks]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = {}
|
||||
hovered = { underline = true }
|
||||
|
||||
[which]
|
||||
mask = { bg = "#313244" }
|
||||
cand = { fg = "#94e2d5" }
|
||||
rest = { fg = "#9399b2" }
|
||||
desc = { fg = "#f5c2e7" }
|
||||
separator = " "
|
||||
separator_style = { fg = "#585b70" }
|
||||
|
||||
[help]
|
||||
on = { fg = "#94e2d5" }
|
||||
run = { fg = "#f5c2e7" }
|
||||
desc = { fg = "#9399b2" }
|
||||
hovered = { bg = "#585b70", bold = true }
|
||||
footer = { fg = "#cdd6f4", bg = "#45475a" }
|
||||
|
||||
[notify]
|
||||
title_info = { fg = "#94e2d5" }
|
||||
title_warn = { fg = "#f9e2af" }
|
||||
title_error = { fg = "#f38ba8" }
|
||||
|
||||
[filetype]
|
||||
rules = [
|
||||
# Media
|
||||
{ mime = "image/*", fg = "#94e2d5" },
|
||||
{ mime = "{audio,video}/*", fg = "#f9e2af" },
|
||||
|
||||
# Archives
|
||||
{ mime = "application/*zip", fg = "#f5c2e7" },
|
||||
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#f5c2e7" },
|
||||
|
||||
# Documents
|
||||
{ mime = "application/{pdf,doc,rtf}", fg = "#a6e3a1" },
|
||||
|
||||
# Fallback
|
||||
{ name = "*", fg = "#cdd6f4" },
|
||||
{ name = "*/", fg = "#89b4fa" }
|
||||
]
|
||||
|
||||
[icon]
|
||||
files = [
|
||||
{ name = "kritadisplayrc", text = "", fg = "#cba6f7" },
|
||||
{ name = ".gtkrc-2.0", text = "", fg = "#f5e0dc" },
|
||||
{ name = "bspwmrc", text = "", fg = "#313244" },
|
||||
{ name = "webpack", text = "", fg = "#74c7ec" },
|
||||
{ name = "tsconfig.json", text = "", fg = "#74c7ec" },
|
||||
{ name = ".vimrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "gemfile$", text = "", fg = "#313244" },
|
||||
{ name = "xmobarrc", text = "", fg = "#f38ba8" },
|
||||
{ name = "avif", text = "", fg = "#7f849c" },
|
||||
{ name = "fp-info-cache", text = "", fg = "#f5e0dc" },
|
||||
{ name = ".zshrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "robots.txt", text = "", fg = "#6c7086" },
|
||||
{ name = "dockerfile", text = "", fg = "#89b4fa" },
|
||||
{ name = ".git-blame-ignore-revs", text = "", fg = "#fab387" },
|
||||
{ name = ".nvmrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "hyprpaper.conf", text = "", fg = "#74c7ec" },
|
||||
{ name = ".prettierignore", text = "", fg = "#89b4fa" },
|
||||
{ name = "rakefile", text = "", fg = "#313244" },
|
||||
{ name = "code_of_conduct", text = "", fg = "#f38ba8" },
|
||||
{ name = "cmakelists.txt", text = "", fg = "#cdd6f4" },
|
||||
{ name = ".env", text = "", fg = "#f9e2af" },
|
||||
{ name = "copying.lesser", text = "", fg = "#f9e2af" },
|
||||
{ name = "readme", text = "", fg = "#f5e0dc" },
|
||||
{ name = "settings.gradle", text = "", fg = "#585b70" },
|
||||
{ name = "gruntfile.coffee", text = "", fg = "#fab387" },
|
||||
{ name = ".eslintignore", text = "", fg = "#585b70" },
|
||||
{ name = "kalgebrarc", text = "", fg = "#89b4fa" },
|
||||
{ name = "kdenliverc", text = "", fg = "#89b4fa" },
|
||||
{ name = ".prettierrc.cjs", text = "", fg = "#89b4fa" },
|
||||
{ name = "cantorrc", text = "", fg = "#89b4fa" },
|
||||
{ name = "rmd", text = "", fg = "#74c7ec" },
|
||||
{ name = "vagrantfile$", text = "", fg = "#6c7086" },
|
||||
{ name = ".Xauthority", text = "", fg = "#fab387" },
|
||||
{ name = "prettier.config.ts", text = "", fg = "#89b4fa" },
|
||||
{ name = "node_modules", text = "", fg = "#f38ba8" },
|
||||
{ name = ".prettierrc.toml", text = "", fg = "#89b4fa" },
|
||||
{ name = "build.zig.zon", text = "", fg = "#fab387" },
|
||||
{ name = ".ds_store", text = "", fg = "#45475a" },
|
||||
{ name = "PKGBUILD", text = "", fg = "#89b4fa" },
|
||||
{ name = ".prettierrc", text = "", fg = "#89b4fa" },
|
||||
{ name = ".bash_profile", text = "", fg = "#a6e3a1" },
|
||||
{ name = ".npmignore", text = "", fg = "#f38ba8" },
|
||||
{ name = ".mailmap", text = "", fg = "#fab387" },
|
||||
{ name = ".codespellrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "svelte.config.js", text = "", fg = "#fab387" },
|
||||
{ name = "eslint.config.ts", text = "", fg = "#585b70" },
|
||||
{ name = "config", text = "", fg = "#7f849c" },
|
||||
{ name = ".gitlab-ci.yml", text = "", fg = "#fab387" },
|
||||
{ name = ".gitconfig", text = "", fg = "#fab387" },
|
||||
{ name = "_gvimrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = ".xinitrc", text = "", fg = "#fab387" },
|
||||
{ name = "checkhealth", text = "", fg = "#89b4fa" },
|
||||
{ name = "sxhkdrc", text = "", fg = "#313244" },
|
||||
{ name = ".bashrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "tailwind.config.mjs", text = "", fg = "#74c7ec" },
|
||||
{ name = "ext_typoscript_setup.txt", text = "", fg = "#fab387" },
|
||||
{ name = "commitlint.config.ts", text = "", fg = "#94e2d5" },
|
||||
{ name = "py.typed", text = "", fg = "#f9e2af" },
|
||||
{ name = ".nanorc", text = "", fg = "#313244" },
|
||||
{ name = "commit_editmsg", text = "", fg = "#fab387" },
|
||||
{ name = ".luaurc", text = "", fg = "#89b4fa" },
|
||||
{ name = "fp-lib-table", text = "", fg = "#f5e0dc" },
|
||||
{ name = ".editorconfig", text = "", fg = "#f5e0dc" },
|
||||
{ name = "justfile", text = "", fg = "#7f849c" },
|
||||
{ name = "kdeglobals", text = "", fg = "#89b4fa" },
|
||||
{ name = "license.md", text = "", fg = "#f9e2af" },
|
||||
{ name = ".clang-format", text = "", fg = "#7f849c" },
|
||||
{ name = "docker-compose.yaml", text = "", fg = "#89b4fa" },
|
||||
{ name = "copying", text = "", fg = "#f9e2af" },
|
||||
{ name = "go.mod", text = "", fg = "#74c7ec" },
|
||||
{ name = "lxqt.conf", text = "", fg = "#89b4fa" },
|
||||
{ name = "brewfile", text = "", fg = "#313244" },
|
||||
{ name = "gulpfile.coffee", text = "", fg = "#f38ba8" },
|
||||
{ name = ".dockerignore", text = "", fg = "#89b4fa" },
|
||||
{ name = ".settings.json", text = "", fg = "#6c7086" },
|
||||
{ name = "tailwind.config.js", text = "", fg = "#74c7ec" },
|
||||
{ name = ".clang-tidy", text = "", fg = "#7f849c" },
|
||||
{ name = ".gvimrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "nuxt.config.cjs", text = "", fg = "#a6e3a1" },
|
||||
{ name = "xsettingsd.conf", text = "", fg = "#fab387" },
|
||||
{ name = "nuxt.config.js", text = "", fg = "#a6e3a1" },
|
||||
{ name = "eslint.config.cjs", text = "", fg = "#585b70" },
|
||||
{ name = "sym-lib-table", text = "", fg = "#f5e0dc" },
|
||||
{ name = ".condarc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "xmonad.hs", text = "", fg = "#f38ba8" },
|
||||
{ name = "tmux.conf", text = "", fg = "#a6e3a1" },
|
||||
{ name = "xmobarrc.hs", text = "", fg = "#f38ba8" },
|
||||
{ name = ".prettierrc.yaml", text = "", fg = "#89b4fa" },
|
||||
{ name = ".pre-commit-config.yaml", text = "", fg = "#fab387" },
|
||||
{ name = "i3blocks.conf", text = "", fg = "#f5e0dc" },
|
||||
{ name = "xorg.conf", text = "", fg = "#fab387" },
|
||||
{ name = ".zshenv", text = "", fg = "#a6e3a1" },
|
||||
{ name = "vlcrc", text = "", fg = "#fab387" },
|
||||
{ name = "license", text = "", fg = "#f9e2af" },
|
||||
{ name = "unlicense", text = "", fg = "#f9e2af" },
|
||||
{ name = "tmux.conf.local", text = "", fg = "#a6e3a1" },
|
||||
{ name = ".SRCINFO", text = "", fg = "#89b4fa" },
|
||||
{ name = "tailwind.config.ts", text = "", fg = "#74c7ec" },
|
||||
{ name = "security.md", text = "", fg = "#bac2de" },
|
||||
{ name = "security", text = "", fg = "#bac2de" },
|
||||
{ name = ".eslintrc", text = "", fg = "#585b70" },
|
||||
{ name = "gradle.properties", text = "", fg = "#585b70" },
|
||||
{ name = "code_of_conduct.md", text = "", fg = "#f38ba8" },
|
||||
{ name = "PrusaSlicerGcodeViewer.ini", text = "", fg = "#fab387" },
|
||||
{ name = "PrusaSlicer.ini", text = "", fg = "#fab387" },
|
||||
{ name = "procfile", text = "", fg = "#7f849c" },
|
||||
{ name = "mpv.conf", text = "", fg = "#1e1e2e" },
|
||||
{ name = ".prettierrc.json5", text = "", fg = "#89b4fa" },
|
||||
{ name = "i3status.conf", text = "", fg = "#f5e0dc" },
|
||||
{ name = "prettier.config.mjs", text = "", fg = "#89b4fa" },
|
||||
{ name = ".pylintrc", text = "", fg = "#7f849c" },
|
||||
{ name = "prettier.config.cjs", text = "", fg = "#89b4fa" },
|
||||
{ name = ".luacheckrc", text = "", fg = "#89b4fa" },
|
||||
{ name = "containerfile", text = "", fg = "#89b4fa" },
|
||||
{ name = "eslint.config.mjs", text = "", fg = "#585b70" },
|
||||
{ name = "gruntfile.js", text = "", fg = "#fab387" },
|
||||
{ name = "bun.lockb", text = "", fg = "#f5e0dc" },
|
||||
{ name = ".gitattributes", text = "", fg = "#fab387" },
|
||||
{ name = "gruntfile.ts", text = "", fg = "#fab387" },
|
||||
{ name = "pom.xml", text = "", fg = "#313244" },
|
||||
{ name = "favicon.ico", text = "", fg = "#f9e2af" },
|
||||
{ name = "package-lock.json", text = "", fg = "#313244" },
|
||||
{ name = "build", text = "", fg = "#a6e3a1" },
|
||||
{ name = "package.json", text = "", fg = "#f38ba8" },
|
||||
{ name = "nuxt.config.ts", text = "", fg = "#a6e3a1" },
|
||||
{ name = "nuxt.config.mjs", text = "", fg = "#a6e3a1" },
|
||||
{ name = "mix.lock", text = "", fg = "#7f849c" },
|
||||
{ name = "makefile", text = "", fg = "#7f849c" },
|
||||
{ name = "gulpfile.js", text = "", fg = "#f38ba8" },
|
||||
{ name = "lxde-rc.xml", text = "", fg = "#9399b2" },
|
||||
{ name = "kritarc", text = "", fg = "#cba6f7" },
|
||||
{ name = "gtkrc", text = "", fg = "#f5e0dc" },
|
||||
{ name = "ionic.config.json", text = "", fg = "#89b4fa" },
|
||||
{ name = ".prettierrc.mjs", text = "", fg = "#89b4fa" },
|
||||
{ name = ".prettierrc.yml", text = "", fg = "#89b4fa" },
|
||||
{ name = ".npmrc", text = "", fg = "#f38ba8" },
|
||||
{ name = "weston.ini", text = "", fg = "#f9e2af" },
|
||||
{ name = "gulpfile.babel.js", text = "", fg = "#f38ba8" },
|
||||
{ name = "i18n.config.ts", text = "", fg = "#7f849c" },
|
||||
{ name = "commitlint.config.js", text = "", fg = "#94e2d5" },
|
||||
{ name = ".gitmodules", text = "", fg = "#fab387" },
|
||||
{ name = "gradle-wrapper.properties", text = "", fg = "#585b70" },
|
||||
{ name = "hypridle.conf", text = "", fg = "#74c7ec" },
|
||||
{ name = "vercel.json", text = "▲", fg = "#f5e0dc" },
|
||||
{ name = "hyprlock.conf", text = "", fg = "#74c7ec" },
|
||||
{ name = "go.sum", text = "", fg = "#74c7ec" },
|
||||
{ name = "kdenlive-layoutsrc", text = "", fg = "#89b4fa" },
|
||||
{ name = "gruntfile.babel.js", text = "", fg = "#fab387" },
|
||||
{ name = "compose.yml", text = "", fg = "#89b4fa" },
|
||||
{ name = "i18n.config.js", text = "", fg = "#7f849c" },
|
||||
{ name = "readme.md", text = "", fg = "#f5e0dc" },
|
||||
{ name = "gradlew", text = "", fg = "#585b70" },
|
||||
{ name = "go.work", text = "", fg = "#74c7ec" },
|
||||
{ name = "gulpfile.ts", text = "", fg = "#f38ba8" },
|
||||
{ name = "gnumakefile", text = "", fg = "#7f849c" },
|
||||
{ name = "FreeCAD.conf", text = "", fg = "#f38ba8" },
|
||||
{ name = "compose.yaml", text = "", fg = "#89b4fa" },
|
||||
{ name = "eslint.config.js", text = "", fg = "#585b70" },
|
||||
{ name = "hyprland.conf", text = "", fg = "#74c7ec" },
|
||||
{ name = "docker-compose.yml", text = "", fg = "#89b4fa" },
|
||||
{ name = "groovy", text = "", fg = "#585b70" },
|
||||
{ name = "QtProject.conf", text = "", fg = "#a6e3a1" },
|
||||
{ name = "platformio.ini", text = "", fg = "#fab387" },
|
||||
{ name = "build.gradle", text = "", fg = "#585b70" },
|
||||
{ name = ".nuxtrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "_vimrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = ".zprofile", text = "", fg = "#a6e3a1" },
|
||||
{ name = ".xsession", text = "", fg = "#fab387" },
|
||||
{ name = "prettier.config.js", text = "", fg = "#89b4fa" },
|
||||
{ name = ".babelrc", text = "", fg = "#f9e2af" },
|
||||
{ name = "workspace", text = "", fg = "#a6e3a1" },
|
||||
{ name = ".prettierrc.json", text = "", fg = "#89b4fa" },
|
||||
{ name = ".prettierrc.js", text = "", fg = "#89b4fa" },
|
||||
{ name = ".Xresources", text = "", fg = "#fab387" },
|
||||
{ name = ".gitignore", text = "", fg = "#fab387" },
|
||||
{ name = ".justfile", text = "", fg = "#7f849c" },
|
||||
]
|
||||
exts = [
|
||||
{ name = "otf", text = "", fg = "#f5e0dc" },
|
||||
{ name = "import", text = "", fg = "#f5e0dc" },
|
||||
{ name = "krz", text = "", fg = "#cba6f7" },
|
||||
{ name = "adb", text = "", fg = "#94e2d5" },
|
||||
{ name = "ttf", text = "", fg = "#f5e0dc" },
|
||||
{ name = "webpack", text = "", fg = "#74c7ec" },
|
||||
{ name = "dart", text = "", fg = "#585b70" },
|
||||
{ name = "vsh", text = "", fg = "#7f849c" },
|
||||
{ name = "doc", text = "", fg = "#585b70" },
|
||||
{ name = "zsh", text = "", fg = "#a6e3a1" },
|
||||
{ name = "ex", text = "", fg = "#7f849c" },
|
||||
{ name = "hx", text = "", fg = "#fab387" },
|
||||
{ name = "fodt", text = "", fg = "#74c7ec" },
|
||||
{ name = "mojo", text = "", fg = "#fab387" },
|
||||
{ name = "templ", text = "", fg = "#f9e2af" },
|
||||
{ name = "nix", text = "", fg = "#74c7ec" },
|
||||
{ name = "cshtml", text = "", fg = "#585b70" },
|
||||
{ name = "fish", text = "", fg = "#585b70" },
|
||||
{ name = "ply", text = "", fg = "#7f849c" },
|
||||
{ name = "sldprt", text = "", fg = "#a6e3a1" },
|
||||
{ name = "gemspec", text = "", fg = "#313244" },
|
||||
{ name = "mjs", text = "", fg = "#f9e2af" },
|
||||
{ name = "csh", text = "", fg = "#585b70" },
|
||||
{ name = "cmake", text = "", fg = "#cdd6f4" },
|
||||
{ name = "fodp", text = "", fg = "#fab387" },
|
||||
{ name = "vi", text = "", fg = "#f9e2af" },
|
||||
{ name = "msf", text = "", fg = "#89b4fa" },
|
||||
{ name = "blp", text = "", fg = "#89b4fa" },
|
||||
{ name = "less", text = "", fg = "#45475a" },
|
||||
{ name = "sh", text = "", fg = "#585b70" },
|
||||
{ name = "odg", text = "", fg = "#f9e2af" },
|
||||
{ name = "mint", text = "", fg = "#a6e3a1" },
|
||||
{ name = "dll", text = "", fg = "#11111b" },
|
||||
{ name = "odf", text = "", fg = "#f38ba8" },
|
||||
{ name = "sqlite3", text = "", fg = "#f5e0dc" },
|
||||
{ name = "Dockerfile", text = "", fg = "#89b4fa" },
|
||||
{ name = "ksh", text = "", fg = "#585b70" },
|
||||
{ name = "rmd", text = "", fg = "#74c7ec" },
|
||||
{ name = "wv", text = "", fg = "#74c7ec" },
|
||||
{ name = "xml", text = "", fg = "#fab387" },
|
||||
{ name = "markdown", text = "", fg = "#cdd6f4" },
|
||||
{ name = "qml", text = "", fg = "#a6e3a1" },
|
||||
{ name = "3gp", text = "", fg = "#fab387" },
|
||||
{ name = "pxi", text = "", fg = "#89b4fa" },
|
||||
{ name = "flac", text = "", fg = "#6c7086" },
|
||||
{ name = "gpr", text = "", fg = "#cba6f7" },
|
||||
{ name = "huff", text = "", fg = "#585b70" },
|
||||
{ name = "json", text = "", fg = "#f9e2af" },
|
||||
{ name = "gv", text = "", fg = "#585b70" },
|
||||
{ name = "bmp", text = "", fg = "#7f849c" },
|
||||
{ name = "lock", text = "", fg = "#bac2de" },
|
||||
{ name = "sha384", text = "", fg = "#7f849c" },
|
||||
{ name = "cobol", text = "⚙", fg = "#585b70" },
|
||||
{ name = "cob", text = "⚙", fg = "#585b70" },
|
||||
{ name = "java", text = "", fg = "#f38ba8" },
|
||||
{ name = "cjs", text = "", fg = "#f9e2af" },
|
||||
{ name = "qm", text = "", fg = "#74c7ec" },
|
||||
{ name = "ebuild", text = "", fg = "#45475a" },
|
||||
{ name = "mustache", text = "", fg = "#fab387" },
|
||||
{ name = "terminal", text = "", fg = "#a6e3a1" },
|
||||
{ name = "ejs", text = "", fg = "#f9e2af" },
|
||||
{ name = "brep", text = "", fg = "#a6e3a1" },
|
||||
{ name = "rar", text = "", fg = "#fab387" },
|
||||
{ name = "gradle", text = "", fg = "#585b70" },
|
||||
{ name = "gnumakefile", text = "", fg = "#7f849c" },
|
||||
{ name = "applescript", text = "", fg = "#7f849c" },
|
||||
{ name = "elm", text = "", fg = "#74c7ec" },
|
||||
{ name = "ebook", text = "", fg = "#fab387" },
|
||||
{ name = "kra", text = "", fg = "#cba6f7" },
|
||||
{ name = "tf", text = "", fg = "#585b70" },
|
||||
{ name = "xls", text = "", fg = "#585b70" },
|
||||
{ name = "fnl", text = "", fg = "#f9e2af" },
|
||||
{ name = "kdbx", text = "", fg = "#a6e3a1" },
|
||||
{ name = "kicad_pcb", text = "", fg = "#f5e0dc" },
|
||||
{ name = "cfg", text = "", fg = "#7f849c" },
|
||||
{ name = "ape", text = "", fg = "#74c7ec" },
|
||||
{ name = "org", text = "", fg = "#94e2d5" },
|
||||
{ name = "yml", text = "", fg = "#7f849c" },
|
||||
{ name = "swift", text = "", fg = "#fab387" },
|
||||
{ name = "eln", text = "", fg = "#7f849c" },
|
||||
{ name = "sol", text = "", fg = "#74c7ec" },
|
||||
{ name = "awk", text = "", fg = "#585b70" },
|
||||
{ name = "7z", text = "", fg = "#fab387" },
|
||||
{ name = "apl", text = "⍝", fg = "#fab387" },
|
||||
{ name = "epp", text = "", fg = "#fab387" },
|
||||
{ name = "app", text = "", fg = "#45475a" },
|
||||
{ name = "dot", text = "", fg = "#585b70" },
|
||||
{ name = "kpp", text = "", fg = "#cba6f7" },
|
||||
{ name = "eot", text = "", fg = "#f5e0dc" },
|
||||
{ name = "hpp", text = "", fg = "#7f849c" },
|
||||
{ name = "spec.tsx", text = "", fg = "#585b70" },
|
||||
{ name = "hurl", text = "", fg = "#f38ba8" },
|
||||
{ name = "cxxm", text = "", fg = "#74c7ec" },
|
||||
{ name = "c", text = "", fg = "#89b4fa" },
|
||||
{ name = "fcmacro", text = "", fg = "#f38ba8" },
|
||||
{ name = "sass", text = "", fg = "#f38ba8" },
|
||||
{ name = "yaml", text = "", fg = "#7f849c" },
|
||||
{ name = "xz", text = "", fg = "#fab387" },
|
||||
{ name = "material", text = "", fg = "#f38ba8" },
|
||||
{ name = "json5", text = "", fg = "#f9e2af" },
|
||||
{ name = "signature", text = "λ", fg = "#fab387" },
|
||||
{ name = "3mf", text = "", fg = "#7f849c" },
|
||||
{ name = "jpg", text = "", fg = "#7f849c" },
|
||||
{ name = "xpi", text = "", fg = "#fab387" },
|
||||
{ name = "fcmat", text = "", fg = "#f38ba8" },
|
||||
{ name = "pot", text = "", fg = "#74c7ec" },
|
||||
{ name = "bin", text = "", fg = "#45475a" },
|
||||
{ name = "xlsx", text = "", fg = "#585b70" },
|
||||
{ name = "aac", text = "", fg = "#74c7ec" },
|
||||
{ name = "kicad_sym", text = "", fg = "#f5e0dc" },
|
||||
{ name = "xcstrings", text = "", fg = "#74c7ec" },
|
||||
{ name = "lff", text = "", fg = "#f5e0dc" },
|
||||
{ name = "xcf", text = "", fg = "#585b70" },
|
||||
{ name = "azcli", text = "", fg = "#6c7086" },
|
||||
{ name = "license", text = "", fg = "#f9e2af" },
|
||||
{ name = "jsonc", text = "", fg = "#f9e2af" },
|
||||
{ name = "xaml", text = "", fg = "#585b70" },
|
||||
{ name = "md5", text = "", fg = "#7f849c" },
|
||||
{ name = "xm", text = "", fg = "#74c7ec" },
|
||||
{ name = "sln", text = "", fg = "#6c7086" },
|
||||
{ name = "jl", text = "", fg = "#7f849c" },
|
||||
{ name = "ml", text = "", fg = "#fab387" },
|
||||
{ name = "http", text = "", fg = "#89b4fa" },
|
||||
{ name = "x", text = "", fg = "#89b4fa" },
|
||||
{ name = "wvc", text = "", fg = "#74c7ec" },
|
||||
{ name = "wrz", text = "", fg = "#7f849c" },
|
||||
{ name = "csproj", text = "", fg = "#585b70" },
|
||||
{ name = "wrl", text = "", fg = "#7f849c" },
|
||||
{ name = "wma", text = "", fg = "#74c7ec" },
|
||||
{ name = "woff2", text = "", fg = "#f5e0dc" },
|
||||
{ name = "woff", text = "", fg = "#f5e0dc" },
|
||||
{ name = "tscn", text = "", fg = "#7f849c" },
|
||||
{ name = "webmanifest", text = "", fg = "#f9e2af" },
|
||||
{ name = "webm", text = "", fg = "#fab387" },
|
||||
{ name = "fcbak", text = "", fg = "#f38ba8" },
|
||||
{ name = "log", text = "", fg = "#cdd6f4" },
|
||||
{ name = "wav", text = "", fg = "#74c7ec" },
|
||||
{ name = "wasm", text = "", fg = "#585b70" },
|
||||
{ name = "styl", text = "", fg = "#a6e3a1" },
|
||||
{ name = "gif", text = "", fg = "#7f849c" },
|
||||
{ name = "resi", text = "", fg = "#f38ba8" },
|
||||
{ name = "aiff", text = "", fg = "#74c7ec" },
|
||||
{ name = "sha256", text = "", fg = "#7f849c" },
|
||||
{ name = "igs", text = "", fg = "#a6e3a1" },
|
||||
{ name = "vsix", text = "", fg = "#6c7086" },
|
||||
{ name = "vim", text = "", fg = "#a6e3a1" },
|
||||
{ name = "diff", text = "", fg = "#45475a" },
|
||||
{ name = "drl", text = "", fg = "#eba0ac" },
|
||||
{ name = "erl", text = "", fg = "#f38ba8" },
|
||||
{ name = "vhdl", text = "", fg = "#a6e3a1" },
|
||||
{ name = "🔥", text = "", fg = "#fab387" },
|
||||
{ name = "hrl", text = "", fg = "#f38ba8" },
|
||||
{ name = "fsi", text = "", fg = "#74c7ec" },
|
||||
{ name = "mm", text = "", fg = "#74c7ec" },
|
||||
{ name = "bz", text = "", fg = "#fab387" },
|
||||
{ name = "vh", text = "", fg = "#a6e3a1" },
|
||||
{ name = "kdb", text = "", fg = "#a6e3a1" },
|
||||
{ name = "gz", text = "", fg = "#fab387" },
|
||||
{ name = "cpp", text = "", fg = "#74c7ec" },
|
||||
{ name = "ui", text = "", fg = "#6c7086" },
|
||||
{ name = "txt", text = "", fg = "#a6e3a1" },
|
||||
{ name = "spec.ts", text = "", fg = "#74c7ec" },
|
||||
{ name = "ccm", text = "", fg = "#f38ba8" },
|
||||
{ name = "typoscript", text = "", fg = "#fab387" },
|
||||
{ name = "typ", text = "", fg = "#89dceb" },
|
||||
{ name = "txz", text = "", fg = "#fab387" },
|
||||
{ name = "test.ts", text = "", fg = "#74c7ec" },
|
||||
{ name = "tsx", text = "", fg = "#585b70" },
|
||||
{ name = "mk", text = "", fg = "#7f849c" },
|
||||
{ name = "webp", text = "", fg = "#7f849c" },
|
||||
{ name = "opus", text = "", fg = "#6c7086" },
|
||||
{ name = "bicep", text = "", fg = "#74c7ec" },
|
||||
{ name = "ts", text = "", fg = "#74c7ec" },
|
||||
{ name = "tres", text = "", fg = "#7f849c" },
|
||||
{ name = "torrent", text = "", fg = "#94e2d5" },
|
||||
{ name = "cxx", text = "", fg = "#74c7ec" },
|
||||
{ name = "iso", text = "", fg = "#f2cdcd" },
|
||||
{ name = "ixx", text = "", fg = "#74c7ec" },
|
||||
{ name = "hxx", text = "", fg = "#7f849c" },
|
||||
{ name = "gql", text = "", fg = "#f38ba8" },
|
||||
{ name = "tmux", text = "", fg = "#a6e3a1" },
|
||||
{ name = "ini", text = "", fg = "#7f849c" },
|
||||
{ name = "m3u8", text = "", fg = "#f38ba8" },
|
||||
{ name = "image", text = "", fg = "#f2cdcd" },
|
||||
{ name = "tfvars", text = "", fg = "#585b70" },
|
||||
{ name = "tex", text = "", fg = "#45475a" },
|
||||
{ name = "cbl", text = "⚙", fg = "#585b70" },
|
||||
{ name = "flc", text = "", fg = "#f5e0dc" },
|
||||
{ name = "elc", text = "", fg = "#7f849c" },
|
||||
{ name = "test.tsx", text = "", fg = "#585b70" },
|
||||
{ name = "twig", text = "", fg = "#a6e3a1" },
|
||||
{ name = "sql", text = "", fg = "#f5e0dc" },
|
||||
{ name = "test.jsx", text = "", fg = "#74c7ec" },
|
||||
{ name = "htm", text = "", fg = "#fab387" },
|
||||
{ name = "gcode", text = "", fg = "#6c7086" },
|
||||
{ name = "test.js", text = "", fg = "#f9e2af" },
|
||||
{ name = "ino", text = "", fg = "#74c7ec" },
|
||||
{ name = "tcl", text = "", fg = "#585b70" },
|
||||
{ name = "cljs", text = "", fg = "#74c7ec" },
|
||||
{ name = "tsconfig", text = "", fg = "#fab387" },
|
||||
{ name = "img", text = "", fg = "#f2cdcd" },
|
||||
{ name = "t", text = "", fg = "#74c7ec" },
|
||||
{ name = "fcstd1", text = "", fg = "#f38ba8" },
|
||||
{ name = "out", text = "", fg = "#45475a" },
|
||||
{ name = "jsx", text = "", fg = "#74c7ec" },
|
||||
{ name = "bash", text = "", fg = "#a6e3a1" },
|
||||
{ name = "edn", text = "", fg = "#74c7ec" },
|
||||
{ name = "rss", text = "", fg = "#fab387" },
|
||||
{ name = "flf", text = "", fg = "#f5e0dc" },
|
||||
{ name = "cache", text = "", fg = "#f5e0dc" },
|
||||
{ name = "sbt", text = "", fg = "#f38ba8" },
|
||||
{ name = "cppm", text = "", fg = "#74c7ec" },
|
||||
{ name = "svelte", text = "", fg = "#fab387" },
|
||||
{ name = "mo", text = "∞", fg = "#7f849c" },
|
||||
{ name = "sv", text = "", fg = "#a6e3a1" },
|
||||
{ name = "ko", text = "", fg = "#f5e0dc" },
|
||||
{ name = "suo", text = "", fg = "#6c7086" },
|
||||
{ name = "sldasm", text = "", fg = "#a6e3a1" },
|
||||
{ name = "icalendar", text = "", fg = "#313244" },
|
||||
{ name = "go", text = "", fg = "#74c7ec" },
|
||||
{ name = "sublime", text = "", fg = "#fab387" },
|
||||
{ name = "stl", text = "", fg = "#7f849c" },
|
||||
{ name = "mobi", text = "", fg = "#fab387" },
|
||||
{ name = "graphql", text = "", fg = "#f38ba8" },
|
||||
{ name = "m3u", text = "", fg = "#f38ba8" },
|
||||
{ name = "cpy", text = "⚙", fg = "#585b70" },
|
||||
{ name = "kdenlive", text = "", fg = "#89b4fa" },
|
||||
{ name = "pyo", text = "", fg = "#f9e2af" },
|
||||
{ name = "po", text = "", fg = "#74c7ec" },
|
||||
{ name = "scala", text = "", fg = "#f38ba8" },
|
||||
{ name = "exs", text = "", fg = "#7f849c" },
|
||||
{ name = "odp", text = "", fg = "#fab387" },
|
||||
{ name = "dump", text = "", fg = "#f5e0dc" },
|
||||
{ name = "stp", text = "", fg = "#a6e3a1" },
|
||||
{ name = "step", text = "", fg = "#a6e3a1" },
|
||||
{ name = "ste", text = "", fg = "#a6e3a1" },
|
||||
{ name = "aif", text = "", fg = "#74c7ec" },
|
||||
{ name = "strings", text = "", fg = "#74c7ec" },
|
||||
{ name = "cp", text = "", fg = "#74c7ec" },
|
||||
{ name = "fsscript", text = "", fg = "#74c7ec" },
|
||||
{ name = "mli", text = "", fg = "#fab387" },
|
||||
{ name = "bak", text = "", fg = "#7f849c" },
|
||||
{ name = "ssa", text = "", fg = "#f9e2af" },
|
||||
{ name = "toml", text = "", fg = "#585b70" },
|
||||
{ name = "makefile", text = "", fg = "#7f849c" },
|
||||
{ name = "php", text = "", fg = "#7f849c" },
|
||||
{ name = "zst", text = "", fg = "#fab387" },
|
||||
{ name = "spec.jsx", text = "", fg = "#74c7ec" },
|
||||
{ name = "kbx", text = "", fg = "#6c7086" },
|
||||
{ name = "fbx", text = "", fg = "#7f849c" },
|
||||
{ name = "blend", text = "", fg = "#fab387" },
|
||||
{ name = "ifc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "spec.js", text = "", fg = "#f9e2af" },
|
||||
{ name = "so", text = "", fg = "#f5e0dc" },
|
||||
{ name = "desktop", text = "", fg = "#45475a" },
|
||||
{ name = "sml", text = "λ", fg = "#fab387" },
|
||||
{ name = "slvs", text = "", fg = "#a6e3a1" },
|
||||
{ name = "pp", text = "", fg = "#fab387" },
|
||||
{ name = "ps1", text = "", fg = "#6c7086" },
|
||||
{ name = "dropbox", text = "", fg = "#6c7086" },
|
||||
{ name = "kicad_mod", text = "", fg = "#f5e0dc" },
|
||||
{ name = "bat", text = "", fg = "#a6e3a1" },
|
||||
{ name = "slim", text = "", fg = "#fab387" },
|
||||
{ name = "skp", text = "", fg = "#a6e3a1" },
|
||||
{ name = "css", text = "", fg = "#89b4fa" },
|
||||
{ name = "xul", text = "", fg = "#fab387" },
|
||||
{ name = "ige", text = "", fg = "#a6e3a1" },
|
||||
{ name = "glb", text = "", fg = "#fab387" },
|
||||
{ name = "ppt", text = "", fg = "#f38ba8" },
|
||||
{ name = "sha512", text = "", fg = "#7f849c" },
|
||||
{ name = "ics", text = "", fg = "#313244" },
|
||||
{ name = "mdx", text = "", fg = "#74c7ec" },
|
||||
{ name = "sha1", text = "", fg = "#7f849c" },
|
||||
{ name = "f3d", text = "", fg = "#a6e3a1" },
|
||||
{ name = "ass", text = "", fg = "#f9e2af" },
|
||||
{ name = "godot", text = "", fg = "#7f849c" },
|
||||
{ name = "ifb", text = "", fg = "#313244" },
|
||||
{ name = "cson", text = "", fg = "#f9e2af" },
|
||||
{ name = "lib", text = "", fg = "#11111b" },
|
||||
{ name = "luac", text = "", fg = "#74c7ec" },
|
||||
{ name = "heex", text = "", fg = "#7f849c" },
|
||||
{ name = "scm", text = "", fg = "#f5e0dc" },
|
||||
{ name = "psd1", text = "", fg = "#7f849c" },
|
||||
{ name = "sc", text = "", fg = "#f38ba8" },
|
||||
{ name = "scad", text = "", fg = "#f9e2af" },
|
||||
{ name = "kts", text = "", fg = "#6c7086" },
|
||||
{ name = "svh", text = "", fg = "#a6e3a1" },
|
||||
{ name = "mts", text = "", fg = "#74c7ec" },
|
||||
{ name = "nfo", text = "", fg = "#f9e2af" },
|
||||
{ name = "pck", text = "", fg = "#7f849c" },
|
||||
{ name = "rproj", text = "", fg = "#a6e3a1" },
|
||||
{ name = "rlib", text = "", fg = "#fab387" },
|
||||
{ name = "cljd", text = "", fg = "#74c7ec" },
|
||||
{ name = "ods", text = "", fg = "#a6e3a1" },
|
||||
{ name = "res", text = "", fg = "#f38ba8" },
|
||||
{ name = "apk", text = "", fg = "#a6e3a1" },
|
||||
{ name = "haml", text = "", fg = "#f5e0dc" },
|
||||
{ name = "d.ts", text = "", fg = "#fab387" },
|
||||
{ name = "razor", text = "", fg = "#585b70" },
|
||||
{ name = "rake", text = "", fg = "#313244" },
|
||||
{ name = "patch", text = "", fg = "#45475a" },
|
||||
{ name = "cuh", text = "", fg = "#7f849c" },
|
||||
{ name = "d", text = "", fg = "#f38ba8" },
|
||||
{ name = "query", text = "", fg = "#a6e3a1" },
|
||||
{ name = "psb", text = "", fg = "#74c7ec" },
|
||||
{ name = "nu", text = ">", fg = "#a6e3a1" },
|
||||
{ name = "mov", text = "", fg = "#fab387" },
|
||||
{ name = "lrc", text = "", fg = "#f9e2af" },
|
||||
{ name = "pyx", text = "", fg = "#89b4fa" },
|
||||
{ name = "pyw", text = "", fg = "#89b4fa" },
|
||||
{ name = "cu", text = "", fg = "#a6e3a1" },
|
||||
{ name = "bazel", text = "", fg = "#a6e3a1" },
|
||||
{ name = "obj", text = "", fg = "#7f849c" },
|
||||
{ name = "pyi", text = "", fg = "#f9e2af" },
|
||||
{ name = "pyd", text = "", fg = "#f9e2af" },
|
||||
{ name = "exe", text = "", fg = "#45475a" },
|
||||
{ name = "pyc", text = "", fg = "#f9e2af" },
|
||||
{ name = "fctb", text = "", fg = "#f38ba8" },
|
||||
{ name = "part", text = "", fg = "#94e2d5" },
|
||||
{ name = "blade.php", text = "", fg = "#f38ba8" },
|
||||
{ name = "git", text = "", fg = "#fab387" },
|
||||
{ name = "psd", text = "", fg = "#74c7ec" },
|
||||
{ name = "qss", text = "", fg = "#a6e3a1" },
|
||||
{ name = "csv", text = "", fg = "#a6e3a1" },
|
||||
{ name = "psm1", text = "", fg = "#7f849c" },
|
||||
{ name = "dconf", text = "", fg = "#f5e0dc" },
|
||||
{ name = "config.ru", text = "", fg = "#313244" },
|
||||
{ name = "prisma", text = "", fg = "#6c7086" },
|
||||
{ name = "conf", text = "", fg = "#7f849c" },
|
||||
{ name = "clj", text = "", fg = "#a6e3a1" },
|
||||
{ name = "o", text = "", fg = "#45475a" },
|
||||
{ name = "mp4", text = "", fg = "#fab387" },
|
||||
{ name = "cc", text = "", fg = "#f38ba8" },
|
||||
{ name = "kicad_prl", text = "", fg = "#f5e0dc" },
|
||||
{ name = "bz3", text = "", fg = "#fab387" },
|
||||
{ name = "asc", text = "", fg = "#6c7086" },
|
||||
{ name = "png", text = "", fg = "#7f849c" },
|
||||
{ name = "android", text = "", fg = "#a6e3a1" },
|
||||
{ name = "pm", text = "", fg = "#74c7ec" },
|
||||
{ name = "h", text = "", fg = "#7f849c" },
|
||||
{ name = "pls", text = "", fg = "#f38ba8" },
|
||||
{ name = "ipynb", text = "", fg = "#fab387" },
|
||||
{ name = "pl", text = "", fg = "#74c7ec" },
|
||||
{ name = "ads", text = "", fg = "#f5e0dc" },
|
||||
{ name = "sqlite", text = "", fg = "#f5e0dc" },
|
||||
{ name = "pdf", text = "", fg = "#585b70" },
|
||||
{ name = "pcm", text = "", fg = "#6c7086" },
|
||||
{ name = "ico", text = "", fg = "#f9e2af" },
|
||||
{ name = "a", text = "", fg = "#f5e0dc" },
|
||||
{ name = "R", text = "", fg = "#6c7086" },
|
||||
{ name = "ogg", text = "", fg = "#6c7086" },
|
||||
{ name = "pxd", text = "", fg = "#89b4fa" },
|
||||
{ name = "kdenlivetitle", text = "", fg = "#89b4fa" },
|
||||
{ name = "jxl", text = "", fg = "#7f849c" },
|
||||
{ name = "nswag", text = "", fg = "#a6e3a1" },
|
||||
{ name = "nim", text = "", fg = "#f9e2af" },
|
||||
{ name = "bqn", text = "⎉", fg = "#6c7086" },
|
||||
{ name = "cts", text = "", fg = "#74c7ec" },
|
||||
{ name = "fcparam", text = "", fg = "#f38ba8" },
|
||||
{ name = "rs", text = "", fg = "#fab387" },
|
||||
{ name = "mpp", text = "", fg = "#74c7ec" },
|
||||
{ name = "fdmdownload", text = "", fg = "#94e2d5" },
|
||||
{ name = "pptx", text = "", fg = "#f38ba8" },
|
||||
{ name = "jpeg", text = "", fg = "#7f849c" },
|
||||
{ name = "bib", text = "", fg = "#f9e2af" },
|
||||
{ name = "vhd", text = "", fg = "#a6e3a1" },
|
||||
{ name = "m", text = "", fg = "#89b4fa" },
|
||||
{ name = "js", text = "", fg = "#f9e2af" },
|
||||
{ name = "eex", text = "", fg = "#7f849c" },
|
||||
{ name = "tbc", text = "", fg = "#585b70" },
|
||||
{ name = "astro", text = "", fg = "#f38ba8" },
|
||||
{ name = "sha224", text = "", fg = "#7f849c" },
|
||||
{ name = "xcplayground", text = "", fg = "#fab387" },
|
||||
{ name = "el", text = "", fg = "#7f849c" },
|
||||
{ name = "m4v", text = "", fg = "#fab387" },
|
||||
{ name = "m4a", text = "", fg = "#74c7ec" },
|
||||
{ name = "cs", text = "", fg = "#585b70" },
|
||||
{ name = "hs", text = "", fg = "#7f849c" },
|
||||
{ name = "tgz", text = "", fg = "#fab387" },
|
||||
{ name = "fs", text = "", fg = "#74c7ec" },
|
||||
{ name = "luau", text = "", fg = "#89b4fa" },
|
||||
{ name = "dxf", text = "", fg = "#a6e3a1" },
|
||||
{ name = "download", text = "", fg = "#94e2d5" },
|
||||
{ name = "cast", text = "", fg = "#fab387" },
|
||||
{ name = "qrc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "lua", text = "", fg = "#74c7ec" },
|
||||
{ name = "lhs", text = "", fg = "#7f849c" },
|
||||
{ name = "md", text = "", fg = "#cdd6f4" },
|
||||
{ name = "leex", text = "", fg = "#7f849c" },
|
||||
{ name = "ai", text = "", fg = "#f9e2af" },
|
||||
{ name = "lck", text = "", fg = "#bac2de" },
|
||||
{ name = "kt", text = "", fg = "#6c7086" },
|
||||
{ name = "bicepparam", text = "", fg = "#7f849c" },
|
||||
{ name = "hex", text = "", fg = "#6c7086" },
|
||||
{ name = "zig", text = "", fg = "#fab387" },
|
||||
{ name = "bzl", text = "", fg = "#a6e3a1" },
|
||||
{ name = "cljc", text = "", fg = "#a6e3a1" },
|
||||
{ name = "kicad_dru", text = "", fg = "#f5e0dc" },
|
||||
{ name = "fctl", text = "", fg = "#f38ba8" },
|
||||
{ name = "f#", text = "", fg = "#74c7ec" },
|
||||
{ name = "odt", text = "", fg = "#74c7ec" },
|
||||
{ name = "conda", text = "", fg = "#a6e3a1" },
|
||||
{ name = "vala", text = "", fg = "#585b70" },
|
||||
{ name = "erb", text = "", fg = "#313244" },
|
||||
{ name = "mp3", text = "", fg = "#74c7ec" },
|
||||
{ name = "bz2", text = "", fg = "#fab387" },
|
||||
{ name = "coffee", text = "", fg = "#f9e2af" },
|
||||
{ name = "cr", text = "", fg = "#f5e0dc" },
|
||||
{ name = "f90", text = "", fg = "#585b70" },
|
||||
{ name = "jwmrc", text = "", fg = "#6c7086" },
|
||||
{ name = "c++", text = "", fg = "#f38ba8" },
|
||||
{ name = "fcscript", text = "", fg = "#f38ba8" },
|
||||
{ name = "fods", text = "", fg = "#a6e3a1" },
|
||||
{ name = "cue", text = "", fg = "#f38ba8" },
|
||||
{ name = "srt", text = "", fg = "#f9e2af" },
|
||||
{ name = "info", text = "", fg = "#f9e2af" },
|
||||
{ name = "hh", text = "", fg = "#7f849c" },
|
||||
{ name = "sig", text = "λ", fg = "#fab387" },
|
||||
{ name = "html", text = "", fg = "#fab387" },
|
||||
{ name = "iges", text = "", fg = "#a6e3a1" },
|
||||
{ name = "kicad_wks", text = "", fg = "#f5e0dc" },
|
||||
{ name = "hbs", text = "", fg = "#fab387" },
|
||||
{ name = "fcstd", text = "", fg = "#f38ba8" },
|
||||
{ name = "gresource", text = "", fg = "#f5e0dc" },
|
||||
{ name = "sub", text = "", fg = "#f9e2af" },
|
||||
{ name = "ical", text = "", fg = "#313244" },
|
||||
{ name = "crdownload", text = "", fg = "#94e2d5" },
|
||||
{ name = "pub", text = "", fg = "#f9e2af" },
|
||||
{ name = "vue", text = "", fg = "#a6e3a1" },
|
||||
{ name = "gd", text = "", fg = "#7f849c" },
|
||||
{ name = "fsx", text = "", fg = "#74c7ec" },
|
||||
{ name = "mkv", text = "", fg = "#fab387" },
|
||||
{ name = "py", text = "", fg = "#f9e2af" },
|
||||
{ name = "kicad_sch", text = "", fg = "#f5e0dc" },
|
||||
{ name = "epub", text = "", fg = "#fab387" },
|
||||
{ name = "env", text = "", fg = "#f9e2af" },
|
||||
{ name = "magnet", text = "", fg = "#45475a" },
|
||||
{ name = "elf", text = "", fg = "#45475a" },
|
||||
{ name = "fodg", text = "", fg = "#f9e2af" },
|
||||
{ name = "svg", text = "", fg = "#fab387" },
|
||||
{ name = "dwg", text = "", fg = "#a6e3a1" },
|
||||
{ name = "docx", text = "", fg = "#585b70" },
|
||||
{ name = "pro", text = "", fg = "#f9e2af" },
|
||||
{ name = "db", text = "", fg = "#f5e0dc" },
|
||||
{ name = "rb", text = "", fg = "#313244" },
|
||||
{ name = "r", text = "", fg = "#6c7086" },
|
||||
{ name = "scss", text = "", fg = "#f38ba8" },
|
||||
{ name = "cow", text = "", fg = "#fab387" },
|
||||
{ name = "gleam", text = "", fg = "#f5c2e7" },
|
||||
{ name = "v", text = "", fg = "#a6e3a1" },
|
||||
{ name = "kicad_pro", text = "", fg = "#f5e0dc" },
|
||||
{ name = "liquid", text = "", fg = "#a6e3a1" },
|
||||
{ name = "zip", text = "", fg = "#fab387" },
|
||||
]
|
||||
199
config/yazi/yazi.toml
Executable file
199
config/yazi/yazi.toml
Executable file
@@ -0,0 +1,199 @@
|
||||
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
|
||||
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
|
||||
"$schema" = "https://yazi-rs.github.io/schemas/yazi.json"
|
||||
|
||||
[mgr]
|
||||
ratio = [1, 3, 4]
|
||||
sort_by = "alphabetical"
|
||||
sort_sensitive = false
|
||||
sort_reverse = false
|
||||
sort_dir_first = true
|
||||
sort_translit = false
|
||||
linemode = "size"
|
||||
show_hidden = false
|
||||
show_symlink = true
|
||||
scrolloff = 5
|
||||
mouse_events = ["click", "scroll"]
|
||||
title_format = "Yazi: {cwd}"
|
||||
|
||||
[preview]
|
||||
tab_size = 2
|
||||
max_width = 600
|
||||
max_height = 900
|
||||
cache_dir = ""
|
||||
image_filter = "triangle"
|
||||
image_quality = 75
|
||||
sixel_fraction = 15
|
||||
ueberzug_scale = 1
|
||||
ueberzug_offset = [0, 0, 0, 0]
|
||||
|
||||
[opener]
|
||||
edit = [
|
||||
{ run = '${EDITOR:-vi} "$@"', desc = "$EDITOR", block = true, for = "unix" },
|
||||
{ run = 'code %*', orphan = true, desc = "code", for = "windows" },
|
||||
{ run = 'code -w %*', block = true, desc = "code (block)", for = "windows" },
|
||||
]
|
||||
open = [
|
||||
{ run = 'xdg-open "$1"', desc = "Open", for = "linux" },
|
||||
{ run = 'open "$@"', desc = "Open", for = "macos" },
|
||||
{ run = 'start "" "%1"', orphan = true, desc = "Open", for = "windows" },
|
||||
]
|
||||
reveal = [
|
||||
{ run = 'xdg-open "$(dirname "$1")"', desc = "Reveal", for = "linux" },
|
||||
{ run = 'open -R "$1"', desc = "Reveal", for = "macos" },
|
||||
{ run = 'explorer /select,"%1"', orphan = true, desc = "Reveal", for = "windows" },
|
||||
{ run = '''exiftool "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show EXIF", for = "unix" },
|
||||
]
|
||||
extract = [
|
||||
{ run = 'ya pub extract --list "$@"', desc = "Extract here", for = "unix" },
|
||||
{ run = 'ya pub extract --list %*', desc = "Extract here", for = "windows" },
|
||||
]
|
||||
play = [
|
||||
{ run = 'mpv --force-window "$@"', orphan = true, for = "unix" },
|
||||
{ run = 'mpv --force-window %*', orphan = true, for = "windows" },
|
||||
{ run = '''mediainfo "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show media info", for = "unix" },
|
||||
]
|
||||
|
||||
[open]
|
||||
rules = [
|
||||
# Folder
|
||||
{ name = "*/", use = ["edit", "open", "reveal"] },
|
||||
# Text
|
||||
{ mime = "text/*", use = ["edit", "reveal"] },
|
||||
# Image
|
||||
{ mime = "image/*", use = ["open", "reveal"] },
|
||||
# Media
|
||||
{ mime = "{audio,video}/*", use = ["play", "reveal"] },
|
||||
# Archive
|
||||
{ mime = "application/{,g}zip", use = ["extract", "reveal"] },
|
||||
{ mime = "application/{tar,bzip*,7z*,xz,rar}", use = ["extract", "reveal"] },
|
||||
# JSON
|
||||
{ mime = "application/{json,ndjson}", use = ["edit", "reveal"] },
|
||||
{ mime = "*/javascript", use = ["edit", "reveal"] },
|
||||
# Empty file
|
||||
{ mime = "inode/empty", use = ["edit", "reveal"] },
|
||||
# Fallback
|
||||
{ name = "*", use = ["edit", "open", "reveal"] },
|
||||
]
|
||||
|
||||
[tasks]
|
||||
micro_workers = 10
|
||||
macro_workers = 25
|
||||
bizarre_retry = 5
|
||||
image_alloc = 536870912 # 512MB
|
||||
image_bound = [0, 0]
|
||||
suppress_preload = false
|
||||
|
||||
[plugin]
|
||||
fetchers = [
|
||||
# Mimetype
|
||||
{ id = "mime", name = "*", run = "mime", if = "!mime", prio = "high" },
|
||||
{ id = "git", name = "*", run = "git", prio = "normal" },
|
||||
{ id = "git", name = "*/", run = "git", prio = "normal" },
|
||||
]
|
||||
preloaders = [
|
||||
# Image
|
||||
{ mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
|
||||
{ mime = "image/*", run = "image" },
|
||||
# Video
|
||||
{ mime = "video/*", run = "video" },
|
||||
# PDF
|
||||
{ mime = "application/pdf", run = "pdf" },
|
||||
# Font
|
||||
{ mime = "font/*", run = "font" },
|
||||
{ mime = "application/vnd.ms-opentype", run = "font" },
|
||||
]
|
||||
previewers = [
|
||||
{ name = "*/", run = "folder", sync = true },
|
||||
# Code
|
||||
{ mime = "text/*", run = "code" },
|
||||
{ mime = "*/{xml,javascript,x-wine-extension-ini}", run = "code" },
|
||||
# JSON
|
||||
{ mime = "application/{json,x-ndjson}", run = "json" },
|
||||
# Image
|
||||
{ mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
|
||||
{ mime = "image/*", run = "image" },
|
||||
# Video
|
||||
{ mime = "video/*", run = "video" },
|
||||
# PDF
|
||||
{ mime = "application/pdf", run = "pdf" },
|
||||
# Archive
|
||||
{ mime = "application/{,g}zip", run = "archive" },
|
||||
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar,iso9660-image}", run = "archive" },
|
||||
# Font
|
||||
{ mime = "font/*", run = "font" },
|
||||
{ mime = "application/vnd.ms-opentype", run = "font" },
|
||||
# Empty file
|
||||
{ mime = "inode/x-empty", run = "empty" },
|
||||
# Fallback
|
||||
{ name = "*", run = "file" },
|
||||
]
|
||||
|
||||
[input]
|
||||
cursor_blink = false
|
||||
|
||||
# cd
|
||||
cd_title = "Change directory:"
|
||||
cd_origin = "top-center"
|
||||
cd_offset = [0, 2, 50, 3]
|
||||
|
||||
# create
|
||||
create_title = ["Create:", "Create (dir):"]
|
||||
create_origin = "top-center"
|
||||
create_offset = [0, 2, 50, 3]
|
||||
|
||||
# rename
|
||||
rename_title = "Rename:"
|
||||
rename_origin = "hovered"
|
||||
rename_offset = [0, 1, 50, 3]
|
||||
|
||||
# trash
|
||||
trash_title = "Move {n} selected file{s} to trash? (y/N)"
|
||||
trash_origin = "top-center"
|
||||
trash_offset = [0, 2, 50, 3]
|
||||
|
||||
# delete
|
||||
delete_title = "Delete {n} selected file{s} permanently? (y/N)"
|
||||
delete_origin = "top-center"
|
||||
delete_offset = [0, 2, 50, 3]
|
||||
|
||||
# filter
|
||||
filter_title = "Filter:"
|
||||
filter_origin = "top-center"
|
||||
filter_offset = [0, 2, 50, 3]
|
||||
|
||||
# find
|
||||
find_title = ["Find next:", "Find previous:"]
|
||||
find_origin = "top-center"
|
||||
find_offset = [0, 2, 50, 3]
|
||||
|
||||
# search
|
||||
search_title = "Search via {n}:"
|
||||
search_origin = "top-center"
|
||||
search_offset = [0, 2, 50, 3]
|
||||
|
||||
# shell
|
||||
shell_title = ["Shell:", "Shell (block):"]
|
||||
shell_origin = "top-center"
|
||||
shell_offset = [0, 2, 50, 3]
|
||||
|
||||
# overwrite
|
||||
overwrite_title = "Overwrite an existing file? (y/N)"
|
||||
overwrite_origin = "top-center"
|
||||
overwrite_offset = [0, 2, 50, 3]
|
||||
|
||||
# quit
|
||||
quit_title = "{n} task{s} running, sure to quit? (y/N)"
|
||||
quit_origin = "top-center"
|
||||
quit_offset = [0, 2, 50, 3]
|
||||
|
||||
[pick]
|
||||
open_title = "Open with:"
|
||||
open_origin = "hovered"
|
||||
open_offset = [0, 1, 50, 7]
|
||||
|
||||
[which]
|
||||
sort_by = "none"
|
||||
sort_sensitive = false
|
||||
sort_reverse = false
|
||||
sort_translit = false
|
||||
199
config/yazi/yazi.toml-1748477627471979
Executable file
199
config/yazi/yazi.toml-1748477627471979
Executable file
@@ -0,0 +1,199 @@
|
||||
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
|
||||
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
|
||||
"$schema" = "https://yazi-rs.github.io/schemas/yazi.json"
|
||||
|
||||
[manager]
|
||||
ratio = [1, 3, 4]
|
||||
sort_by = "alphabetical"
|
||||
sort_sensitive = false
|
||||
sort_reverse = false
|
||||
sort_dir_first = true
|
||||
sort_translit = false
|
||||
linemode = "size"
|
||||
show_hidden = false
|
||||
show_symlink = true
|
||||
scrolloff = 5
|
||||
mouse_events = ["click", "scroll"]
|
||||
title_format = "Yazi: {cwd}"
|
||||
|
||||
[preview]
|
||||
tab_size = 2
|
||||
max_width = 600
|
||||
max_height = 900
|
||||
cache_dir = ""
|
||||
image_filter = "triangle"
|
||||
image_quality = 75
|
||||
sixel_fraction = 15
|
||||
ueberzug_scale = 1
|
||||
ueberzug_offset = [0, 0, 0, 0]
|
||||
|
||||
[opener]
|
||||
edit = [
|
||||
{ run = '${EDITOR:-vi} "$@"', desc = "$EDITOR", block = true, for = "unix" },
|
||||
{ run = 'code %*', orphan = true, desc = "code", for = "windows" },
|
||||
{ run = 'code -w %*', block = true, desc = "code (block)", for = "windows" },
|
||||
]
|
||||
open = [
|
||||
{ run = 'xdg-open "$1"', desc = "Open", for = "linux" },
|
||||
{ run = 'open "$@"', desc = "Open", for = "macos" },
|
||||
{ run = 'start "" "%1"', orphan = true, desc = "Open", for = "windows" },
|
||||
]
|
||||
reveal = [
|
||||
{ run = 'xdg-open "$(dirname "$1")"', desc = "Reveal", for = "linux" },
|
||||
{ run = 'open -R "$1"', desc = "Reveal", for = "macos" },
|
||||
{ run = 'explorer /select,"%1"', orphan = true, desc = "Reveal", for = "windows" },
|
||||
{ run = '''exiftool "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show EXIF", for = "unix" },
|
||||
]
|
||||
extract = [
|
||||
{ run = 'ya pub extract --list "$@"', desc = "Extract here", for = "unix" },
|
||||
{ run = 'ya pub extract --list %*', desc = "Extract here", for = "windows" },
|
||||
]
|
||||
play = [
|
||||
{ run = 'mpv --force-window "$@"', orphan = true, for = "unix" },
|
||||
{ run = 'mpv --force-window %*', orphan = true, for = "windows" },
|
||||
{ run = '''mediainfo "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show media info", for = "unix" },
|
||||
]
|
||||
|
||||
[open]
|
||||
rules = [
|
||||
# Folder
|
||||
{ name = "*/", use = ["edit", "open", "reveal"] },
|
||||
# Text
|
||||
{ mime = "text/*", use = ["edit", "reveal"] },
|
||||
# Image
|
||||
{ mime = "image/*", use = ["open", "reveal"] },
|
||||
# Media
|
||||
{ mime = "{audio,video}/*", use = ["play", "reveal"] },
|
||||
# Archive
|
||||
{ mime = "application/{,g}zip", use = ["extract", "reveal"] },
|
||||
{ mime = "application/{tar,bzip*,7z*,xz,rar}", use = ["extract", "reveal"] },
|
||||
# JSON
|
||||
{ mime = "application/{json,ndjson}", use = ["edit", "reveal"] },
|
||||
{ mime = "*/javascript", use = ["edit", "reveal"] },
|
||||
# Empty file
|
||||
{ mime = "inode/empty", use = ["edit", "reveal"] },
|
||||
# Fallback
|
||||
{ name = "*", use = ["edit", "open", "reveal"] },
|
||||
]
|
||||
|
||||
[tasks]
|
||||
micro_workers = 10
|
||||
macro_workers = 25
|
||||
bizarre_retry = 5
|
||||
image_alloc = 536870912 # 512MB
|
||||
image_bound = [0, 0]
|
||||
suppress_preload = false
|
||||
|
||||
[plugin]
|
||||
fetchers = [
|
||||
# Mimetype
|
||||
{ id = "mime", name = "*", run = "mime", if = "!mime", prio = "high" },
|
||||
{ id = "git", name = "*", run = "git", prio = "normal" },
|
||||
{ id = "git", name = "*/", run = "git", prio = "normal" },
|
||||
]
|
||||
preloaders = [
|
||||
# Image
|
||||
{ mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
|
||||
{ mime = "image/*", run = "image" },
|
||||
# Video
|
||||
{ mime = "video/*", run = "video" },
|
||||
# PDF
|
||||
{ mime = "application/pdf", run = "pdf" },
|
||||
# Font
|
||||
{ mime = "font/*", run = "font" },
|
||||
{ mime = "application/vnd.ms-opentype", run = "font" },
|
||||
]
|
||||
previewers = [
|
||||
{ name = "*/", run = "folder", sync = true },
|
||||
# Code
|
||||
{ mime = "text/*", run = "code" },
|
||||
{ mime = "*/{xml,javascript,x-wine-extension-ini}", run = "code" },
|
||||
# JSON
|
||||
{ mime = "application/{json,x-ndjson}", run = "json" },
|
||||
# Image
|
||||
{ mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
|
||||
{ mime = "image/*", run = "image" },
|
||||
# Video
|
||||
{ mime = "video/*", run = "video" },
|
||||
# PDF
|
||||
{ mime = "application/pdf", run = "pdf" },
|
||||
# Archive
|
||||
{ mime = "application/{,g}zip", run = "archive" },
|
||||
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar,iso9660-image}", run = "archive" },
|
||||
# Font
|
||||
{ mime = "font/*", run = "font" },
|
||||
{ mime = "application/vnd.ms-opentype", run = "font" },
|
||||
# Empty file
|
||||
{ mime = "inode/x-empty", run = "empty" },
|
||||
# Fallback
|
||||
{ name = "*", run = "file" },
|
||||
]
|
||||
|
||||
[input]
|
||||
cursor_blink = false
|
||||
|
||||
# cd
|
||||
cd_title = "Change directory:"
|
||||
cd_origin = "top-center"
|
||||
cd_offset = [0, 2, 50, 3]
|
||||
|
||||
# create
|
||||
create_title = ["Create:", "Create (dir):"]
|
||||
create_origin = "top-center"
|
||||
create_offset = [0, 2, 50, 3]
|
||||
|
||||
# rename
|
||||
rename_title = "Rename:"
|
||||
rename_origin = "hovered"
|
||||
rename_offset = [0, 1, 50, 3]
|
||||
|
||||
# trash
|
||||
trash_title = "Move {n} selected file{s} to trash? (y/N)"
|
||||
trash_origin = "top-center"
|
||||
trash_offset = [0, 2, 50, 3]
|
||||
|
||||
# delete
|
||||
delete_title = "Delete {n} selected file{s} permanently? (y/N)"
|
||||
delete_origin = "top-center"
|
||||
delete_offset = [0, 2, 50, 3]
|
||||
|
||||
# filter
|
||||
filter_title = "Filter:"
|
||||
filter_origin = "top-center"
|
||||
filter_offset = [0, 2, 50, 3]
|
||||
|
||||
# find
|
||||
find_title = ["Find next:", "Find previous:"]
|
||||
find_origin = "top-center"
|
||||
find_offset = [0, 2, 50, 3]
|
||||
|
||||
# search
|
||||
search_title = "Search via {n}:"
|
||||
search_origin = "top-center"
|
||||
search_offset = [0, 2, 50, 3]
|
||||
|
||||
# shell
|
||||
shell_title = ["Shell:", "Shell (block):"]
|
||||
shell_origin = "top-center"
|
||||
shell_offset = [0, 2, 50, 3]
|
||||
|
||||
# overwrite
|
||||
overwrite_title = "Overwrite an existing file? (y/N)"
|
||||
overwrite_origin = "top-center"
|
||||
overwrite_offset = [0, 2, 50, 3]
|
||||
|
||||
# quit
|
||||
quit_title = "{n} task{s} running, sure to quit? (y/N)"
|
||||
quit_origin = "top-center"
|
||||
quit_offset = [0, 2, 50, 3]
|
||||
|
||||
[pick]
|
||||
open_title = "Open with:"
|
||||
open_origin = "hovered"
|
||||
open_offset = [0, 1, 50, 7]
|
||||
|
||||
[which]
|
||||
sort_by = "none"
|
||||
sort_sensitive = false
|
||||
sort_reverse = false
|
||||
sort_translit = false
|
||||
Reference in New Issue
Block a user