summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorl3wdfut4pwr <l3wdfut4pwr@gmail.com>2026-06-14 19:29:33 +0300
committerl3wdfut4pwr <l3wdfut4pwr@gmail.com>2026-06-14 19:29:33 +0300
commit56082af20a8712570edd6ed523baad4755ecd241 (patch)
tree2366ad69de817a80403cdcbe5cdd48ad90106bd6 /config
init
Diffstat (limited to 'config')
-rw-r--r--config/Thunar/accels.scm125
-rw-r--r--config/Thunar/uca.xml15
-rw-r--r--config/bat/config2
-rw-r--r--config/bat/themes/Catppuccin Macchiato.tmTheme2112
-rw-r--r--config/dconf/userbin0 -> 1938 bytes
-rw-r--r--config/gtk-3.0/settings.ini17
l---------config/gtk-4.0/assets1
l---------config/gtk-4.0/gtk-dark.css1
l---------config/gtk-4.0/gtk.css1
-rw-r--r--config/gtk-4.0/settings.ini7
-rw-r--r--config/hypr/animations.conf34
-rw-r--r--config/hypr/decoration.conf20
-rw-r--r--config/hypr/hyprland.conf30
-rw-r--r--config/hypr/hyprpaper.conf9
-rw-r--r--config/hypr/hyprtoolkit.conf8
-rw-r--r--config/hypr/keybindings.conf86
-rw-r--r--config/hypr/macchiato.conf78
-rw-r--r--config/hypr/source.conf9
-rwxr-xr-xconfig/hypr/wallpapers.sh34
-rw-r--r--config/hypr/windowrule.conf23
-rw-r--r--config/kitty/current-theme.conf80
-rw-r--r--config/kitty/kitty.conf19
-rw-r--r--config/kitty/kitty.conf.bak3010
-rw-r--r--config/mako/config9
-rw-r--r--config/mimeapps.list18
-rw-r--r--config/nvim/.gitignore8
-rw-r--r--config/nvim/.neoconf.json15
-rw-r--r--config/nvim/LICENSE201
-rw-r--r--config/nvim/README.md4
-rw-r--r--config/nvim/init.lua2
-rw-r--r--config/nvim/lazy-lock.json54
-rw-r--r--config/nvim/lazyvim.json29
-rw-r--r--config/nvim/lua/config/autocmds.lua8
-rw-r--r--config/nvim/lua/config/keymaps.lua34
-rw-r--r--config/nvim/lua/config/lazy.lua52
-rw-r--r--config/nvim/lua/config/options.lua15
-rw-r--r--config/nvim/lua/plugins/checkmate.lua40
-rw-r--r--config/nvim/lua/plugins/conform.lua10
-rw-r--r--config/nvim/lua/plugins/core.lua8
-rw-r--r--config/nvim/lua/plugins/lsp.lua30
-rw-r--r--config/nvim/lua/plugins/lualine.lua73
-rw-r--r--config/nvim/lua/plugins/renderer-markdown.lua402
-rw-r--r--config/nvim/stylua.toml3
-rw-r--r--config/nwg-look/config7
-rw-r--r--config/qt5ct/colors/catppuccin-macchiato-lavender.conf4
-rw-r--r--config/qt5ct/qt5ct.conf31
-rw-r--r--config/qt6ct/colors/catppuccin-macchiato-lavender.conf4
-rw-r--r--config/qt6ct/qt6ct.conf31
-rw-r--r--config/waybar/config52
-rwxr-xr-xconfig/waybar/scripts/power.sh24
-rw-r--r--config/waybar/style.css49
-rw-r--r--config/wofi/config18
-rw-r--r--config/yazi/init.lua0
-rw-r--r--config/yazi/keymap.toml24
-rw-r--r--config/yazi/package.toml2
-rw-r--r--config/yazi/theme.toml772
-rw-r--r--config/yazi/yazi.toml28
57 files changed, 7782 insertions, 0 deletions
diff --git a/config/Thunar/accels.scm b/config/Thunar/accels.scm
new file mode 100644
index 000000000..27ba19332
--- /dev/null
+++ b/config/Thunar/accels.scm
@@ -0,0 +1,125 @@
+; thunar GtkAccelMap rc-file -*- scheme -*-
+; this file is an automated accelerator map dump
+;
+; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-type" "")
+; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-last-modified" "")
+; (gtk_accel_path "<Actions>/Thunarwindow/menu" "")
+; (gtk_accel_path "<Actions>/ThunarActionManager/cut" "<Primary>x")
+; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-size" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/file-menu" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/close-tab" "<Primary>w")
+; (gtk_accel_path "<Actions>/ThunarWindow/switch-previous-tab-alt" "<Primary><Shift>ISO_Left_Tab")
+; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-size" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/new-window" "<Primary>n")
+; (gtk_accel_path "<Actions>/ThunarWindow/clear-directory-specific-settings" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/close-window" "<Primary>q")
+; (gtk_accel_path "<Actions>/ThunarWindow/open-parent" "<Alt>Up")
+; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-menu" "")
+; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-size-in-bytes" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/switch-previous-tab" "<Primary>Page_Up")
+; (gtk_accel_path "<Actions>/ThunarActionManager/open" "<Primary>o")
+; (gtk_accel_path "<Actions>/ThunarStandardView/sort-ascending" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/toggle-split-view" "F3")
+; (gtk_accel_path "<Actions>/ThunarActionManager/copy-2" "<Primary>Insert")
+; (gtk_accel_path "<Actions>/ThunarActionManager/trash-delete" "Delete")
+; (gtk_accel_path "<Actions>/ThunarWindow/open-recent" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/view-configure-toolbar" "")
+; (gtk_accel_path "<Actions>/ThunarStandardView/forward" "<Alt>Right")
+; (gtk_accel_path "<Actions>/ThunarActionManager/restore" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/open-location-alt" "<Alt>d")
+; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out-alt" "<Primary>KP_Subtract")
+; (gtk_accel_path "<Actions>/ThunarStandardView/select-by-pattern" "<Primary>s")
+; (gtk_accel_path "<Actions>/ThunarWindow/open-file-menu" "F10")
+; (gtk_accel_path "<Actions>/ThunarWindow/contents" "F1")
+; (gtk_accel_path "<Actions>/ThunarWindow/show-highlight" "")
+; (gtk_accel_path "<Actions>/ThunarStandardView/sort-descending" "")
+; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-name" "")
+; (gtk_accel_path "<Actions>/ThunarStandardView/select-all-files" "<Primary>a")
+; (gtk_accel_path "<Actions>/ThunarActionManager/execute" "")
+; (gtk_accel_path "<Actions>/ThunarStandardView/properties" "<Alt>Return")
+; (gtk_accel_path "<Actions>/ThunarActionManager/cut-2" "")
+; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-dtime" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/switch-next-tab" "<Primary>Page_Down")
+; (gtk_accel_path "<Actions>/ThunarWindow/open-templates" "")
+; (gtk_accel_path "<Actions>/ThunarActionManager/paste-2" "<Shift>Insert")
+; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-filetype" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/close-all-windows" "<Primary><Shift>w")
+; (gtk_accel_path "<Actions>/ThunarStandardView/create-document" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/detach-tab" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/cancel-search" "Escape")
+; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in-alt2" "<Primary>equal")
+; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-hidden-count" "")
+; (gtk_accel_path "<Actions>/ThunarShortcutsPane/sendto-shortcuts" "<Primary>d")
+; (gtk_accel_path "<Actions>/ThunarActionManager/undo" "<Primary>z")
+; (gtk_accel_path "<Actions>/ThunarStandardView/toggle-sort-order" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-entry" "")
+; (gtk_accel_path "<Actions>/ThunarActionManager/paste" "<Primary>v")
+; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in-alt1" "<Primary>KP_Add")
+; (gtk_accel_path "<Actions>/ThunarWindow/view-menubar" "<Primary>m")
+; (gtk_accel_path "<Actions>/ThunarStandardView/back" "<Alt>Left")
+; (gtk_accel_path "<Actions>/ThunarWindow/open-desktop" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/view-as-detailed-list" "<Primary>2")
+; (gtk_accel_path "<Actions>/ThunarActionManager/restore-show" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/sendto-menu" "")
+; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-display-name" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/go-menu" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out" "<Primary>minus")
+; (gtk_accel_path "<Actions>/ThunarWindow/remove-from-recent" "")
+; (gtk_accel_path "<Actions>/ThunarActionManager/open-with-other" "")
+; (gtk_accel_path "<Actions>/ThunarStandardView/invert-selection" "<Primary><Shift>i")
+; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-shortcuts" "<Primary>b")
+; (gtk_accel_path "<Actions>/ThunarWindow/reload-alt-2" "Reload")
+; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-menu" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/reload" "<Primary>r")
+; (gtk_accel_path "<Actions>/ThunarWindow/edit-menu" "")
+; (gtk_accel_path "<Actions>/ThunarActionManager/copy" "<Primary>c")
+; (gtk_accel_path "<Actions>/ThunarWindow/bookmarks-menu" "")
+; (gtk_accel_path "<Actions>/ThunarStandardView/forward-alt" "Forward")
+; (gtk_accel_path "<Actions>/ThunarActionManager/move-to-trash" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/reload-alt-1" "F5")
+; (gtk_accel_path "<Actions>/ThunarActionManager/delete-3" "<Shift>KP_Delete")
+; (gtk_accel_path "<Actions>/ThunarStandardView/unselect-all-files" "Escape")
+; (gtk_accel_path "<Actions>/ThunarWindow/contents/help-menu" "")
+; (gtk_accel_path "<Actions>/ThunarStandardView/arrange-items-menu" "")
+; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-mtime" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/open-computer" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/toggle-image-preview" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/toggle-side-pane" "F9")
+; (gtk_accel_path "<Actions>/ThunarWindow/view-as-icons" "<Primary>1")
+; (gtk_accel_path "<Actions>/ThunarActionManager/delete-2" "<Shift>Delete")
+; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in" "<Primary>plus")
+; (gtk_accel_path "<Actions>/ThunarStandardView/rename" "F2")
+; (gtk_accel_path "<Actions>/ThunarWindow/open-location" "<Primary>l")
+; (gtk_accel_path "<Actions>/ThunarWindow/view-as-compact-list" "<Primary>3")
+; (gtk_accel_path "<Actions>/ThunarWindow/view-menu" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/search" "<Primary>f")
+; (gtk_accel_path "<Actions>/ThunarWindow/new-tab" "<Primary>t")
+; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset" "<Primary>0")
+; (gtk_accel_path "<Actions>/ThunarStandardView/back-alt2" "Back")
+; (gtk_accel_path "<Actions>/ThunarActionManager/open-in-new-tab" "<Primary><Shift>p")
+; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-buttons" "")
+; (gtk_accel_path "<Actions>/ThunarActionManager/redo" "<Primary><Shift>z")
+; (gtk_accel_path "<Actions>/ThunarWindow/open-trash" "")
+; (gtk_accel_path "<Actions>/ThunarActionManager/open-in-new-window" "<Primary><Shift>o")
+; (gtk_accel_path "<Actions>/ThunarWindow/view-statusbar" "")
+; (gtk_accel_path "<Actions>/ThunarActionManager/open-location" "")
+; (gtk_accel_path "<Actions>/ThunarStandardView/duplicate" "")
+; (gtk_accel_path "<Actions>/ThunarActionManager/trash-delete-2" "KP_Delete")
+; (gtk_accel_path "<Actions>/ThunarStandardView/back-alt1" "BackSpace")
+; (gtk_accel_path "<Actions>/ThunarStandardView/create-folder" "<Primary><Shift>n")
+; (gtk_accel_path "<Actions>/ThunarWindow/open-home" "<Alt>Home")
+; (gtk_accel_path "<Actions>/ThunarWindow/switch-focused-split-view-pane" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/show-hidden" "<Primary>h")
+; (gtk_accel_path "<Actions>/ThunarStandardView/set-default-app" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/empty-trash" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/preferences" "")
+; (gtk_accel_path "<Actions>/ThunarActionManager/delete" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/open-network" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-tree" "<Primary>e")
+; (gtk_accel_path "<Actions>/ThunarWindow/open-file-system" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/search-alt" "Search")
+; (gtk_accel_path "<Actions>/ThunarWindow/switch-next-tab-alt" "<Primary>Tab")
+; (gtk_accel_path "<Actions>/ThunarActionManager/sendto-desktop" "")
+; (gtk_accel_path "<Actions>/ThunarStandardView/make-link" "")
+; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset-alt" "<Primary>KP_0")
+; (gtk_accel_path "<Actions>/ThunarWindow/about" "")
diff --git a/config/Thunar/uca.xml b/config/Thunar/uca.xml
new file mode 100644
index 000000000..a50176a09
--- /dev/null
+++ b/config/Thunar/uca.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<actions>
+<action>
+ <icon>utilities-terminal</icon>
+ <name>Open Terminal Here</name>
+ <submenu></submenu>
+ <unique-id>1767704064992768-1</unique-id>
+ <command>exo-open --working-directory %f --launch TerminalEmulator</command>
+ <description>Example for a custom action</description>
+ <range></range>
+ <patterns>*</patterns>
+ <startup-notify/>
+ <directories/>
+</action>
+</actions>
diff --git a/config/bat/config b/config/bat/config
new file mode 100644
index 000000000..fedea0f95
--- /dev/null
+++ b/config/bat/config
@@ -0,0 +1,2 @@
+--theme="Catppuccin Macchiato"
+--style=plain
diff --git a/config/bat/themes/Catppuccin Macchiato.tmTheme b/config/bat/themes/Catppuccin Macchiato.tmTheme
new file mode 100644
index 000000000..8f2131260
--- /dev/null
+++ b/config/bat/themes/Catppuccin Macchiato.tmTheme
@@ -0,0 +1,2112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>name</key>
+ <string>Catppuccin Macchiato</string>
+ <key>semanticClass</key>
+ <string>theme.dark.catppuccin-macchiato</string>
+ <key>uuid</key>
+ <string>02b2bdf3-9eb7-4396-bf04-f17f1468f99f</string>
+ <key>author</key>
+ <string>Catppuccin Org</string>
+ <key>colorSpaceName</key>
+ <string>sRGB</string>
+ <key>settings</key>
+ <array>
+ <dict>
+ <key>settings</key>
+ <dict>
+ <key>background</key>
+ <string>#24273a</string>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ <key>caret</key>
+ <string>#f4dbd6</string>
+ <key>lineHighlight</key>
+ <string>#363a4f</string>
+ <key>misspelling</key>
+ <string>#ed8796</string>
+ <key>accent</key>
+ <string>#c6a0f6</string>
+ <key>selection</key>
+ <string>#939ab740</string>
+ <key>activeGuide</key>
+ <string>#494d64</string>
+ <key>findHighlight</key>
+ <string>#455c6d</string>
+ <key>gutterForeground</key>
+ <string>#8087a2</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Basic text &amp; variable names (incl. leading punctuation)</string>
+ <key>scope</key>
+ <string>text, source, variable.other.readwrite, punctuation.definition.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Parentheses, Brackets, Braces</string>
+ <key>scope</key>
+ <string>punctuation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#939ab7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Comments</string>
+ <key>scope</key>
+ <string>comment, punctuation.definition.comment</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#939ab7</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>string, punctuation.definition.string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>constant.character.escape</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Booleans, constants, numbers</string>
+ <key>scope</key>
+ <string>constant.numeric, variable.other.constant, entity.name.constant, constant.language.boolean, constant.language.false, constant.language.true, keyword.other.unit.user-defined, keyword.other.unit.suffix.floating-point</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.name.tag.documentation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Punctuation</string>
+ <key>scope</key>
+ <string>keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Classes</string>
+ <key>scope</key>
+ <string>entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Enum</string>
+ <key>scope</key>
+ <string>entity.name.enum</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Enum member</string>
+ <key>scope</key>
+ <string>meta.enum variable.other.readwrite, variable.other.enummember</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Object properties</string>
+ <key>scope</key>
+ <string>meta.property.object</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Types</string>
+ <key>scope</key>
+ <string>meta.type, meta.type-alias, support.type, entity.name.type</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Decorators</string>
+ <key>scope</key>
+ <string>meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>variable.parameter, meta.function.parameters</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Built-ins</string>
+ <key>scope</key>
+ <string>constant.language, support.function.builtin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.other.attribute-name.documentation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Preprocessor directives</string>
+ <key>scope</key>
+ <string>keyword.control.directive, punctuation.definition.directive</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Type parameters</string>
+ <key>scope</key>
+ <string>punctuation.definition.typeparameters</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Namespaces</string>
+ <key>scope</key>
+ <string>entity.name.namespace</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Property names (left hand assignments in json/yaml/css)</string>
+ <key>scope</key>
+ <string>support.type.property-name.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>This/Self keyword</string>
+ <key>scope</key>
+ <string>variable.language.this, variable.language.this punctuation.definition.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Object properties</string>
+ <key>scope</key>
+ <string>variable.object.property</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>String template interpolation</string>
+ <key>scope</key>
+ <string>string.template variable, string variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>`new` as bold</string>
+ <key>scope</key>
+ <string>keyword.operator.new</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ extern keyword</string>
+ <key>scope</key>
+ <string>storage.modifier.specifier.extern.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ scope resolution</string>
+ <key>scope</key>
+ <string>entity.name.scope-resolution.template.call.cpp, entity.name.scope-resolution.parameter.cpp, entity.name.scope-resolution.cpp, entity.name.scope-resolution.function.definition.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ doc keywords</string>
+ <key>scope</key>
+ <string>storage.type.class.doxygen</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ operators</string>
+ <key>scope</key>
+ <string>storage.modifier.reference.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C# Interpolated Strings</string>
+ <key>scope</key>
+ <string>meta.interpolation.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C# xml-style docs</string>
+ <key>scope</key>
+ <string>comment.block.documentation.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Classes, reflecting the className color in JSX</string>
+ <key>scope</key>
+ <string>source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Operators</string>
+ <key>scope</key>
+ <string>punctuation.separator.operator.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Pseudo classes</string>
+ <key>scope</key>
+ <string>source.css entity.other.attribute-name.pseudo-class</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.css constant.other.unicode-range</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.css variable.parameter.url</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS vendored property names</string>
+ <key>scope</key>
+ <string>support.type.vendored.property-name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Less/SCSS right-hand variables (@/$-prefixed)</string>
+ <key>scope</key>
+ <string>source.css meta.property-value variable, source.css meta.property-value variable.other.less, source.css meta.property-value variable.other.less punctuation.definition.variable.less, meta.definition.variable.scss</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS variables (--prefixed)</string>
+ <key>scope</key>
+ <string>source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS Percentage values, styled the same as numbers</string>
+ <key>scope</key>
+ <string>keyword.other.unit.percentage.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS Attribute selectors, styled the same as strings</string>
+ <key>scope</key>
+ <string>source.css meta.attribute-selector</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON/YAML keys, other left-hand assignments</string>
+ <key>scope</key>
+ <string>keyword.other.definition.ini, punctuation.support.type.property-name.json, support.type.property-name.json, punctuation.support.type.property-name.toml, support.type.property-name.toml, entity.name.tag.yaml, punctuation.support.type.property-name.yaml, support.type.property-name.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON/YAML constants</string>
+ <key>scope</key>
+ <string>constant.language.json, constant.language.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML anchors</string>
+ <key>scope</key>
+ <string>entity.name.type.anchor.yaml, variable.other.alias.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TOML tables / ini groups</string>
+ <key>scope</key>
+ <string>support.type.property-name.table, entity.name.section.group-title.ini</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TOML dates</string>
+ <key>scope</key>
+ <string>constant.other.time.datetime.offset.toml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML anchor puctuation</string>
+ <key>scope</key>
+ <string>punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML triple dashes</string>
+ <key>scope</key>
+ <string>entity.other.document.begin.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markup Diff</string>
+ <key>scope</key>
+ <string>markup.changed.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff</string>
+ <key>scope</key>
+ <string>meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff Inserted</string>
+ <key>scope</key>
+ <string>markup.inserted.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff Deleted</string>
+ <key>scope</key>
+ <string>markup.deleted.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>dotenv left-hand side assignments</string>
+ <key>scope</key>
+ <string>variable.other.env</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>dotenv reference to existing env variable</string>
+ <key>scope</key>
+ <string>string.quoted variable.other.env</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GDScript functions</string>
+ <key>scope</key>
+ <string>support.function.builtin.gdscript</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GDScript constants</string>
+ <key>scope</key>
+ <string>constant.language.gdscript</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Comment keywords</string>
+ <key>scope</key>
+ <string>comment meta.annotation.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>go:embed, go:build, etc.</string>
+ <key>scope</key>
+ <string>comment meta.annotation.parameters.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Go constants (nil, true, false)</string>
+ <key>scope</key>
+ <string>constant.language.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL variables</string>
+ <key>scope</key>
+ <string>variable.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL aliases</string>
+ <key>scope</key>
+ <string>string.unquoted.alias.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f0c6c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL enum members</string>
+ <key>scope</key>
+ <string>constant.character.enum.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL field in types</string>
+ <key>scope</key>
+ <string>meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f0c6c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML DOCTYPE as keyword</string>
+ <key>scope</key>
+ <string>keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML-like &lt;tags/&gt;</string>
+ <key>scope</key>
+ <string>entity.name.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Special characters like &amp;amp;</string>
+ <key>scope</key>
+ <string>text.html constant.character.entity, text.html constant.character.entity punctuation, constant.character.entity.xml, constant.character.entity.xml punctuation, constant.character.entity.js.jsx, constant.charactger.entity.js.jsx punctuation, constant.character.entity.tsx, constant.character.entity.tsx punctuation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML tag attribute values</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Components</string>
+ <key>scope</key>
+ <string>support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Annotations</string>
+ <key>scope</key>
+ <string>punctuation.definition.annotation, storage.type.annotation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Java enums</string>
+ <key>scope</key>
+ <string>constant.other.enum.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Java imports</string>
+ <key>scope</key>
+ <string>storage.modifier.import.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Javadoc</string>
+ <key>scope</key>
+ <string>comment.block.javadoc.java keyword.other.documentation.javadoc.java</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Exported Variable</string>
+ <key>scope</key>
+ <string>meta.export variable.other.readwrite.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JS/TS constants &amp; properties</string>
+ <key>scope</key>
+ <string>variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSDoc; these are mainly params, so styled as such</string>
+ <key>scope</key>
+ <string>variable.other.jsdoc, comment.block.documentation variable.other</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSDoc keywords</string>
+ <key>scope</key>
+ <string>storage.type.class.jsdoc</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>support.type.object.console.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Node constants as keywords (module, etc.)</string>
+ <key>scope</key>
+ <string>support.constant.node, support.type.object.module.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>implements as keyword</string>
+ <key>scope</key>
+ <string>storage.modifier.implements</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Builtin types</string>
+ <key>scope</key>
+ <string>constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>variable.parameter.generic</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Arrow functions</string>
+ <key>scope</key>
+ <string>keyword.declaration.function.arrow.js, storage.type.function.arrow.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)</string>
+ <key>scope</key>
+ <string>punctuation.decorator.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Extra JS/TS keywords</string>
+ <key>scope</key>
+ <string>keyword.operator.expression.in.js, keyword.operator.expression.in.ts, keyword.operator.expression.infer.ts, keyword.operator.expression.instanceof.js, keyword.operator.expression.instanceof.ts, keyword.operator.expression.is, keyword.operator.expression.keyof.ts, keyword.operator.expression.of.js, keyword.operator.expression.of.ts, keyword.operator.expression.typeof.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia macros</string>
+ <key>scope</key>
+ <string>support.function.macro.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia language constants (true, false)</string>
+ <key>scope</key>
+ <string>constant.language.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia other constants (these seem to be arguments inside arrays)</string>
+ <key>scope</key>
+ <string>constant.other.symbol.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX preamble</string>
+ <key>scope</key>
+ <string>text.tex keyword.control.preamble</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX be functions</string>
+ <key>scope</key>
+ <string>text.tex support.function.be</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX math</string>
+ <key>scope</key>
+ <string>constant.other.general.math.tex</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f0c6c6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Liquid Builtin Objects &amp; User Defined Variables</string>
+ <key>scope</key>
+ <string>variable.language.liquid</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Lua docstring keywords</string>
+ <key>scope</key>
+ <string>comment.line.double-dash.documentation.lua storage.type.annotation.lua</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Lua docstring variables</string>
+ <key>scope</key>
+ <string>comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.1.markdown punctuation.definition.heading.markdown, heading.1.markdown, heading.1.quarto punctuation.definition.heading.quarto, heading.1.quarto, markup.heading.atx.1.mdx, markup.heading.atx.1.mdx punctuation.definition.heading.mdx, markup.heading.setext.1.markdown, markup.heading.heading-0.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.2.markdown punctuation.definition.heading.markdown, heading.2.markdown, heading.2.quarto punctuation.definition.heading.quarto, heading.2.quarto, markup.heading.atx.2.mdx, markup.heading.atx.2.mdx punctuation.definition.heading.mdx, markup.heading.setext.2.markdown, markup.heading.heading-1.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.3.markdown punctuation.definition.heading.markdown, heading.3.markdown, heading.3.quarto punctuation.definition.heading.quarto, heading.3.quarto, markup.heading.atx.3.mdx, markup.heading.atx.3.mdx punctuation.definition.heading.mdx, markup.heading.heading-2.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.4.markdown punctuation.definition.heading.markdown, heading.4.markdown, heading.4.quarto punctuation.definition.heading.quarto, heading.4.quarto, markup.heading.atx.4.mdx, markup.heading.atx.4.mdx punctuation.definition.heading.mdx, markup.heading.heading-3.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.5.markdown punctuation.definition.heading.markdown, heading.5.markdown, heading.5.quarto punctuation.definition.heading.quarto, heading.5.quarto, markup.heading.atx.5.mdx, markup.heading.atx.5.mdx punctuation.definition.heading.mdx, markup.heading.heading-4.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#7dc4e4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.6.markdown punctuation.definition.heading.markdown, heading.6.markdown, heading.6.quarto punctuation.definition.heading.quarto, heading.6.quarto, markup.heading.atx.6.mdx, markup.heading.atx.6.mdx punctuation.definition.heading.mdx, markup.heading.heading-5.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#b7bdf8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.bold</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.italic</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.strikethrough</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a5adcb</string>
+ <key>fontStyle</key>
+ <string>strikethrough</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown auto links</string>
+ <key>scope</key>
+ <string>punctuation.definition.link, markup.underline.link</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown links</string>
+ <key>scope</key>
+ <string>text.html.markdown punctuation.definition.link.title, text.html.quarto punctuation.definition.link.title, string.other.link.title.markdown, string.other.link.title.quarto, markup.link, punctuation.definition.constant.markdown, punctuation.definition.constant.quarto, constant.other.reference.link.markdown, constant.other.reference.link.quarto, markup.substitution.attribute-reference</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#b7bdf8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown code spans</string>
+ <key>scope</key>
+ <string>punctuation.definition.raw.markdown, punctuation.definition.raw.quarto, markup.inline.raw.string.markdown, markup.inline.raw.string.quarto, markup.raw.block.markdown, markup.raw.block.quarto</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown triple backtick language identifier</string>
+ <key>scope</key>
+ <string>fenced_code.block.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown triple backticks</string>
+ <key>scope</key>
+ <string>markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#939ab7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown quotes</string>
+ <key>scope</key>
+ <string>markup.quote, punctuation.definition.quote.begin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown separators</string>
+ <key>scope</key>
+ <string>meta.separator.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown list bullets</string>
+ <key>scope</key>
+ <string>punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Quarto headings</string>
+ <key>scope</key>
+ <string>markup.heading.quarto</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix attribute names</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix parameter names</string>
+ <key>scope</key>
+ <string>variable.parameter.name.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix interpolated parameter names</string>
+ <key>scope</key>
+ <string>meta.embedded variable.parameter.name.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#b7bdf8</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix paths</string>
+ <key>scope</key>
+ <string>string.unquoted.path.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Attributes</string>
+ <key>scope</key>
+ <string>support.attribute.builtin, meta.attribute.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Parameters (needed for the leading dollar sign)</string>
+ <key>scope</key>
+ <string>meta.function.parameters.php punctuation.definition.variable.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Constants (null, __FILE__, etc.)</string>
+ <key>scope</key>
+ <string>constant.language.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP functions</string>
+ <key>scope</key>
+ <string>text.html.php support.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHPdoc keywords</string>
+ <key>scope</key>
+ <string>keyword.other.phpdoc.php</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python argument functions reset to text, otherwise they inherit blue from function-call</string>
+ <key>scope</key>
+ <string>support.variable.magic.python, meta.function-call.arguments.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python double underscore functions</string>
+ <key>scope</key>
+ <string>support.function.magic.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python `self` keyword</string>
+ <key>scope</key>
+ <string>variable.parameter.function.language.special.self.python, variable.language.special.self.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python keyword flow/logical (for ... in)</string>
+ <key>scope</key>
+ <string>keyword.control.flow.python, keyword.operator.logical.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python storage type</string>
+ <key>scope</key>
+ <string>storage.type.function.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function support</string>
+ <key>scope</key>
+ <string>support.token.decorator.python, meta.function.decorator.identifier.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function calls</string>
+ <key>scope</key>
+ <string>meta.function-call.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function decorators</string>
+ <key>scope</key>
+ <string>entity.name.function.decorator.python, punctuation.definition.decorator.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python placeholder reset to normal string</string>
+ <key>scope</key>
+ <string>constant.character.format.placeholder.other.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python exception &amp; builtins such as exit()</string>
+ <key>scope</key>
+ <string>support.type.exception.python, support.function.builtin.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>entity.name.type</string>
+ <key>scope</key>
+ <string>support.type.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python constants (True/False)</string>
+ <key>scope</key>
+ <string>constant.language.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Arguments accessed later in the function body</string>
+ <key>scope</key>
+ <string>meta.indexed-name.python, meta.item-access.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python f-strings/binary/unicode storage types</string>
+ <key>scope</key>
+ <string>storage.type.string.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python type hints</string>
+ <key>scope</key>
+ <string>meta.function.parameters.python</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex string begin/end in JS/TS</string>
+ <key>scope</key>
+ <string>string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex anchors (^, $)</string>
+ <key>scope</key>
+ <string>keyword.control.anchor.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex regular string match</string>
+ <key>scope</key>
+ <string>string.regexp.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex group parenthesis &amp; backreference (\1, \2, \3, ...)</string>
+ <key>scope</key>
+ <string>punctuation.definition.group.regexp, keyword.other.back-reference.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6da95</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex character class []</string>
+ <key>scope</key>
+ <string>punctuation.definition.character-class.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex character classes (\d, \w, \s)</string>
+ <key>scope</key>
+ <string>constant.other.character-class.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex range</string>
+ <key>scope</key>
+ <string>constant.other.character-class.range.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f4dbd6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex quantifier</string>
+ <key>scope</key>
+ <string>keyword.operator.quantifier.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex constant/numeric</string>
+ <key>scope</key>
+ <string>constant.character.numeric.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds</string>
+ <key>scope</key>
+ <string>punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust attribute</string>
+ <key>scope</key>
+ <string>meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust attribute strings</string>
+ <key>scope</key>
+ <string>meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust keyword</string>
+ <key>scope</key>
+ <string>entity.name.function.macro.rules.rust, storage.type.module.rust, storage.modifier.rust, storage.type.struct.rust, storage.type.enum.rust, storage.type.trait.rust, storage.type.union.rust, storage.type.impl.rust, storage.type.rust, storage.type.function.rust, storage.type.type.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust u/i32, u/i64, etc.</string>
+ <key>scope</key>
+ <string>entity.name.type.numeric.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust generic</string>
+ <key>scope</key>
+ <string>meta.generic.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust impl</string>
+ <key>scope</key>
+ <string>entity.name.impl.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust module</string>
+ <key>scope</key>
+ <string>entity.name.module.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust trait</string>
+ <key>scope</key>
+ <string>entity.name.trait.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust struct</string>
+ <key>scope</key>
+ <string>storage.type.source.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust union</string>
+ <key>scope</key>
+ <string>entity.name.union.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust enum member</string>
+ <key>scope</key>
+ <string>meta.enum.rust storage.type.source.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust macro</string>
+ <key>scope</key>
+ <string>support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust lifetime</string>
+ <key>scope</key>
+ <string>storage.modifier.lifetime.rust, entity.name.type.lifetime</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust string formatting</string>
+ <key>scope</key>
+ <string>string.quoted.double.rust constant.other.placeholder.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust return type generic</string>
+ <key>scope</key>
+ <string>meta.function.return-type.rust meta.generic.rust storage.type.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust functions</string>
+ <key>scope</key>
+ <string>meta.function.call.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust angle brackets</string>
+ <key>scope</key>
+ <string>punctuation.brackets.angle.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#91d7e3</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust constants</string>
+ <key>scope</key>
+ <string>constant.other.caps.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust function parameters</string>
+ <key>scope</key>
+ <string>meta.function.definition.rust variable.other.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ee99a0</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust closure variables</string>
+ <key>scope</key>
+ <string>meta.function.call.rust variable.other.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust self</string>
+ <key>scope</key>
+ <string>variable.language.self.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust metavariable names</string>
+ <key>scope</key>
+ <string>variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell shebang</string>
+ <key>scope</key>
+ <string>comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell shebang command</string>
+ <key>scope</key>
+ <string>comment.line.shebang constant.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell interpolated command</string>
+ <key>scope</key>
+ <string>meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation, meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell interpolated command variable</string>
+ <key>scope</key>
+ <string>meta.string meta.interpolation.parameter.shell variable.other.readwrite</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell EOF</string>
+ <key>scope</key>
+ <string>entity.name.tag.heredoc.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell quoted variable</string>
+ <key>scope</key>
+ <string>string.quoted.double.shell variable.other.normal.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cad3f5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.typst</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON Keys</string>
+ <key>scope</key>
+ <string>source.json meta.mapping.key string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON key surrounding quotes</string>
+ <key>scope</key>
+ <string>source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#939ab7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#c6a0f6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.commands.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8aadf4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.env.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5bde6</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Man page options</string>
+ <key>scope</key>
+ <string>entity.name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#8bd5ca</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.1.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#ed8796</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.2.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5a97f</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eed49f</string>
+ </dict>
+ </dict>
+ </array>
+ </dict>
+</plist> \ No newline at end of file
diff --git a/config/dconf/user b/config/dconf/user
new file mode 100644
index 000000000..88e91d9df
--- /dev/null
+++ b/config/dconf/user
Binary files differ
diff --git a/config/gtk-3.0/settings.ini b/config/gtk-3.0/settings.ini
new file mode 100644
index 000000000..5466ffa14
--- /dev/null
+++ b/config/gtk-3.0/settings.ini
@@ -0,0 +1,17 @@
+[Settings]
+gtk-theme-name=catppuccin-macchiato-lavender-standard+default
+gtk-icon-theme-name=Papirus-Dark
+gtk-font-name=JetBrainsMono Nerd Font Mono 12
+gtk-cursor-theme-name=default
+gtk-cursor-theme-size=18
+gtk-toolbar-style=GTK_TOOLBAR_ICONS
+gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
+gtk-button-images=0
+gtk-menu-images=0
+gtk-enable-event-sounds=1
+gtk-enable-input-feedback-sounds=0
+gtk-xft-antialias=1
+gtk-xft-hinting=0
+gtk-xft-hintstyle=hintnone
+gtk-xft-rgba=rgb
+gtk-application-prefer-dark-theme=1
diff --git a/config/gtk-4.0/assets b/config/gtk-4.0/assets
new file mode 120000
index 000000000..ec27b9c76
--- /dev/null
+++ b/config/gtk-4.0/assets
@@ -0,0 +1 @@
+/usr/share/themes/catppuccin-macchiato-lavender-standard+default/gtk-4.0/assets \ No newline at end of file
diff --git a/config/gtk-4.0/gtk-dark.css b/config/gtk-4.0/gtk-dark.css
new file mode 120000
index 000000000..fcb679635
--- /dev/null
+++ b/config/gtk-4.0/gtk-dark.css
@@ -0,0 +1 @@
+/usr/share/themes/catppuccin-macchiato-lavender-standard+default/gtk-4.0/gtk-dark.css \ No newline at end of file
diff --git a/config/gtk-4.0/gtk.css b/config/gtk-4.0/gtk.css
new file mode 120000
index 000000000..1fa42a68f
--- /dev/null
+++ b/config/gtk-4.0/gtk.css
@@ -0,0 +1 @@
+/usr/share/themes/catppuccin-macchiato-lavender-standard+default/gtk-4.0/gtk.css \ No newline at end of file
diff --git a/config/gtk-4.0/settings.ini b/config/gtk-4.0/settings.ini
new file mode 100644
index 000000000..b4d9a357d
--- /dev/null
+++ b/config/gtk-4.0/settings.ini
@@ -0,0 +1,7 @@
+[Settings]
+gtk-theme-name=catppuccin-macchiato-lavender-standard+default
+gtk-icon-theme-name=Papirus-Dark
+gtk-font-name=JetBrainsMono Nerd Font Mono 12
+gtk-cursor-theme-name=default
+gtk-cursor-theme-size=18
+gtk-application-prefer-dark-theme=1
diff --git a/config/hypr/animations.conf b/config/hypr/animations.conf
new file mode 100644
index 000000000..4b0a89742
--- /dev/null
+++ b/config/hypr/animations.conf
@@ -0,0 +1,34 @@
+animations {
+ enabled = true
+
+bezier = easeOutQuint, 0.23, 1, 0.32, 1
+bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1
+bezier = linear, 0, 0, 1, 1
+bezier = almostLinear, 0.5, 0.5, 0.75, 1
+bezier = quick, 0.15, 0, 0.1, 1
+
+animation = global, 1, 5.42, default
+
+animation = border, 1, 2.92, easeOutQuint
+animation = windows, 1, 2.59, easeOutQuint
+animation = windowsIn, 1, 2.22, easeOutQuint, popin 87%
+animation = windowsOut, 1, 0.81, linear, popin 87%
+
+animation = fadeIn, 1, 0.94, almostLinear
+animation = fadeOut, 1, 0.79, almostLinear
+animation = fade, 1, 1.65, quick
+
+animation = layers, 1, 2.07, easeOutQuint
+animation = layersIn, 1, 2.17, easeOutQuint, fade
+animation = layersOut, 1, 0.81, linear, fade
+
+animation = fadeLayersIn, 1, 0.97, almostLinear
+animation = fadeLayersOut, 1, 0.76, almostLinear
+
+animation = workspaces, 0, 0, almostLinear
+animation = workspacesIn, 0, 0, almostLinear
+animation = workspacesOut, 0, 0, almostLinear
+
+animation = zoomFactor, 1, 4.46, quick
+}
+
diff --git a/config/hypr/decoration.conf b/config/hypr/decoration.conf
new file mode 100644
index 000000000..50253a39c
--- /dev/null
+++ b/config/hypr/decoration.conf
@@ -0,0 +1,20 @@
+
+general {
+ gaps_in = 0
+ gaps_out = 0
+ border_size = 2
+ col.active_border = $lavender
+ col.inactive_border = $base
+ resize_on_border = false
+ allow_tearing = false
+ layout = dwindle
+}
+
+decoration {
+ rounding = 0
+ rounding_power = 0
+ active_opacity = 1.0
+ inactive_opacity = 1.0
+}
+
+
diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf
new file mode 100644
index 000000000..31017f56e
--- /dev/null
+++ b/config/hypr/hyprland.conf
@@ -0,0 +1,30 @@
+source = ./source.conf
+source = ./macchiato.conf
+source = ./decoration.conf
+source = ./keybindings.conf
+source = ./animations.conf
+source = ./windowrule.conf
+
+monitor = HDMI-A-1, 1920x1080@100, 0x0, 1
+
+exec-once = waybar &
+exec-once = hyprpaper &
+//exec-once = qs -c noctalia-shell
+dwindle {
+ preserve_split = true
+}
+
+master {
+ new_status = master
+}
+input {
+ kb_layout = us, ru
+ kb_variant =
+ kb_model =
+ kb_options = grp:alt_shift_toggle, caps:none
+ kb_rules =
+ #left_handed = true
+ follow_mouse = 1
+ sensitivity = 0
+}
+
diff --git a/config/hypr/hyprpaper.conf b/config/hypr/hyprpaper.conf
new file mode 100644
index 000000000..4fd142fc6
--- /dev/null
+++ b/config/hypr/hyprpaper.conf
@@ -0,0 +1,9 @@
+splash = false
+ipc = true
+
+wallpaper {
+ monitor = HDMI-A-1
+ path = ~/Pictures/Wallpapers2/
+ fit_mode = cover
+ timeout = 30
+}
diff --git a/config/hypr/hyprtoolkit.conf b/config/hypr/hyprtoolkit.conf
new file mode 100644
index 000000000..6f6aacf23
--- /dev/null
+++ b/config/hypr/hyprtoolkit.conf
@@ -0,0 +1,8 @@
+# Catppuccin Macchiato (Lavender)
+background=0xff181926
+base=0xff24273a
+alternate_base=0xff1e2030
+text=0xffcad3f5
+bright_text=0xffb8c0e0
+accent=0xffb7bdf8
+accent_secondary=0xffb7bdf8
diff --git a/config/hypr/keybindings.conf b/config/hypr/keybindings.conf
new file mode 100644
index 000000000..7f4e17e9f
--- /dev/null
+++ b/config/hypr/keybindings.conf
@@ -0,0 +1,86 @@
+$mainMod = SUPER
+
+$mainMod = SUPER
+$ipc = qs -c noctalia-shell ipc call
+
+bind = $mainMod, S, exec, $ipc controlCenter toggle
+bind = $mainMod, Q, exec, kitty
+bind = $mainMod, C, killactive,
+bind = $mainMod, B, exec, firefox-esr
+bind = $mainMod, R, exec, wofi --show drun --window --normal-window
+//bind = $mainMod, R, exec, $ipc launcher toggle
+
+bind = $mainMod, P, exec, hyprpicker -a
+
+bind = $mainMod, I, exec, ~/.config/waybar/scripts/power.sh
+
+bind =, Print, exec, grim -g "$(slurp)" - | tee ~/Pictures/Screenshots/Screenshot-$(date +%F_%H-%M-%S).png | wl-copy
+bind = SHIFT, Print, exec, grim - | tee ~/Pictures/Screenshots/Screenshot-$(date +%F_%H-%M-%S).png | wl-copy
+
+bind = $mainMod, M, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float * 1.5')
+bind = $mainMod, N, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float * 0.5) | if . < 1 then 1 else . end')
+
+bind = $mainMod, E, exec, kitty yazi
+bind = $mainMod, T, exec, thunar
+
+bind = $mainMod, F, fullscreen,
+bind = $mainMod, V, togglefloating,
+
+bind = $mainMod ALT, H, resizeactive, -60 0
+bind = $mainMod ALT, L, resizeactive, 60 0
+bind = $mainMod ALT, K, resizeactive, 0 -60
+bind = $mainMod ALT, J, resizeactive, 0 60
+
+bind = SUPER SHIFT, H, movewindow, l
+bind = SUPER SHIFT, L, movewindow, r
+bind = SUPER SHIFT, K, movewindow, u
+bind = SUPER SHIFT, J, movewindow, d
+
+bind = $mainMod, H, movefocus, l
+bind = $mainMod, L, movefocus, r
+bind = $mainMod, K, movefocus, u
+bind = $mainMod, J, movefocus, d
+
+bind = $mainMod, Page_Down, workspace, e+1
+bind = $mainMod, Page_Up, workspace, e-1
+
+bind = $mainMod, 1, workspace, 1
+bind = $mainMod, 2, workspace, 2
+bind = $mainMod, 3, workspace, 3
+bind = $mainMod, 4, workspace, 4
+bind = $mainMod, 5, workspace, 5
+bind = $mainMod, 6, workspace, 6
+bind = $mainMod, 7, workspace, 7
+bind = $mainMod, 8, workspace, 8
+bind = $mainMod, 9, workspace, 9
+bind = $mainMod, 0, workspace, 10
+
+bind = $mainMod+ALT, 1, exec, hyprctl dispatch swapactiveworkspaces 1
+bind = $mainMod+ALT, 2, exec, hyprctl dispatch swapactiveworkspaces 2
+bind = $mainMod+ALT, 3, exec, hyprctl dispatch swapactiveworkspaces 3
+bind = $mainMod+ALT, 4, exec, hyprctl dispatch swapactiveworkspaces 4
+bind = $mainMod+ALT, 5, exec, hyprctl dispatch swapactiveworkspaces 5
+bind = $mainMod+ALT, 6, exec, hyprctl dispatch swapactiveworkspaces 6
+bind = $mainMod+SHIFT, 7, exec, hyprctl dispatch swapactiveworkspaces 7
+bind = $mainMod+SHIFT, 8, exec, hyprctl dispatch swapactiveworkspaces 8
+bind = $mainMod+SHIFT, 9, exec, hyprctl dispatch swapactiveworkspaces 9
+bind = $mainMod+SHIFT, 0, exec, hyprctl dispatch swapactiveworkspaces 10
+
+bind = $mainMod SHIFT, 1, movetoworkspace, 1
+bind = $mainMod SHIFT, 2, movetoworkspace, 2
+bind = $mainMod SHIFT, 3, movetoworkspace, 3
+bind = $mainMod SHIFT, 4, movetoworkspace, 4
+bind = $mainMod SHIFT, 5, movetoworkspace, 5
+bind = $mainMod SHIFT, 6, movetoworkspace, 6
+bind = $mainMod SHIFT, 7, movetoworkspace, 7
+bind = $mainMod SHIFT, 8, movetoworkspace, 8
+bind = $mainMod SHIFT, 9, movetoworkspace, 9
+bind = $mainMod SHIFT, 0, movetoworkspace, 10
+
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+bind = $mainMod, F1, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
+bind = $mainMod, F2, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
+bind = $mainMod, F3, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
+bind = $mainMod, F4, exec, playerctl play-pause
diff --git a/config/hypr/macchiato.conf b/config/hypr/macchiato.conf
new file mode 100644
index 000000000..9e7071a72
--- /dev/null
+++ b/config/hypr/macchiato.conf
@@ -0,0 +1,78 @@
+
+$rosewater = rgb(f4dbd6)
+$rosewaterAlpha = f4dbd6
+
+$flamingo = rgb(f0c6c6)
+$flamingoAlpha = f0c6c6
+
+$pink = rgb(f5bde6)
+$pinkAlpha = f5bde6
+
+$mauve = rgb(c6a0f6)
+$mauveAlpha = c6a0f6
+
+$red = rgb(ed8796)
+$redAlpha = ed8796
+
+$maroon = rgb(ee99a0)
+$maroonAlpha = ee99a0
+
+$peach = rgb(f5a97f)
+$peachAlpha = f5a97f
+
+$yellow = rgb(eed49f)
+$yellowAlpha = eed49f
+
+$green = rgb(a6da95)
+$greenAlpha = a6da95
+
+$teal = rgb(8bd5ca)
+$tealAlpha = 8bd5ca
+
+$sky = rgb(91d7e3)
+$skyAlpha = 91d7e3
+
+$sapphire = rgb(7dc4e4)
+$sapphireAlpha = 7dc4e4
+
+$blue = rgb(8aadf4)
+$blueAlpha = 8aadf4
+
+$lavender = rgb(b7bdf8)
+$lavenderAlpha = b7bdf8
+
+$text = rgb(cad3f5)
+$textAlpha = cad3f5
+
+$subtext1 = rgb(b8c0e0)
+$subtext1Alpha = b8c0e0
+
+$subtext0 = rgb(a5adcb)
+$subtext0Alpha = a5adcb
+
+$overlay2 = rgb(939ab7)
+$overlay2Alpha = 939ab7
+
+$overlay1 = rgb(8087a2)
+$overlay1Alpha = 8087a2
+
+$overlay0 = rgb(6e738d)
+$overlay0Alpha = 6e738d
+
+$surface2 = rgb(5b6078)
+$surface2Alpha = 5b6078
+
+$surface1 = rgb(494d64)
+$surface1Alpha = 494d64
+
+$surface0 = rgb(363a4f)
+$surface0Alpha = 363a4f
+
+$base = rgb(24273a)
+$baseAlpha = 24273a
+
+$mantle = rgb(1e2030)
+$mantleAlpha = 1e2030
+
+$crust = rgb(181926)
+$crustAlpha = 181926
diff --git a/config/hypr/source.conf b/config/hypr/source.conf
new file mode 100644
index 000000000..b7f3829ae
--- /dev/null
+++ b/config/hypr/source.conf
@@ -0,0 +1,9 @@
+env = XDG_CURRENT_DESKTOP,Hyprland
+env = XDG_SESSION_TYPE,wayland
+env = XDG_SESSION_DESKTOP,Hyprland
+env = QT_QPA_PLATFORM,wayland;xcb
+env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
+env = QT_QPA_PLATFORMTHEME,qt6ct
+env = XCURSOR_SIZE,18
+env = HYPRCURSOR_SIZE,18
+env = HYPRLAND_NO_EXPLICIT_SYNC,1
diff --git a/config/hypr/wallpapers.sh b/config/hypr/wallpapers.sh
new file mode 100755
index 000000000..cf797abcc
--- /dev/null
+++ b/config/hypr/wallpapers.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+# lightning-randomize-wallpapers-unique.sh
+
+WALLPAPER_DIR="$HOME/Pictures/Wallpapers"
+cd "$WALLPAPER_DIR" || exit 1
+
+# Собираем все картинки в массив
+files=(*.{jpg,jpeg,png})
+[ ${#files[@]} -eq 0 ] && exit 0
+
+# Массив для уже сгенерированных имён
+declare -A used_names
+
+# Перемешиваем массив файлов
+shuffled=($(printf "%s\n" "${files[@]}" | shuf))
+
+# Функция генерации случайного имени с проверкой уникальности
+generate_unique_name() {
+ local ext=$1
+ local name
+ while :; do
+ name="$(tr -dc a-z0-9 </dev/urandom | head -c 3).$ext"
+ [[ -z "${used_names[$name]}" ]] && break
+ done
+ used_names[$name]=1
+ echo "$name"
+}
+
+# Переименовываем файлы
+for file in "${shuffled[@]}"; do
+ ext="${file##*.}"
+ rand_name=$(generate_unique_name "$ext")
+ mv "$file" "$rand_name"
+done
diff --git a/config/hypr/windowrule.conf b/config/hypr/windowrule.conf
new file mode 100644
index 000000000..d8b11ba2e
--- /dev/null
+++ b/config/hypr/windowrule.conf
@@ -0,0 +1,23 @@
+windowrule {
+ name = suppress-maximize-events
+ match:class = .*
+ suppress_event = maximize
+}
+
+windowrule {
+ name = fix-xwayland-drags
+ match:class = ^$
+ match:title = ^$
+ match:xwayland = true
+ match:float = true
+ match:fullscreen = false
+ match:pin = false
+ no_focus = true
+}
+
+windowrule {
+ name = move-hyprland-run
+ match:class = hyprland-run
+ move = 20 monitor_h-120
+ float = yes
+}
diff --git a/config/kitty/current-theme.conf b/config/kitty/current-theme.conf
new file mode 100644
index 000000000..a45b09fe0
--- /dev/null
+++ b/config/kitty/current-theme.conf
@@ -0,0 +1,80 @@
+# vim:ft=kitty
+
+## name: Catppuccin-Macchiato
+## author: Pocco81 (https://github.com/Pocco81)
+## license: MIT
+## upstream: https://github.com/catppuccin/kitty/blob/main/macchiato.conf
+## blurb: Soothing pastel theme for the high-spirited!
+
+
+
+# The basic colors
+foreground #CAD3F5
+background #24273A
+selection_foreground #24273A
+selection_background #F4DBD6
+
+# Cursor colors
+cursor #F4DBD6
+cursor_text_color #24273A
+
+# URL underline color when hovering with mouse
+url_color #F4DBD6
+
+# Kitty window border colors
+active_border_color #B7BDF8
+inactive_border_color #6E738D
+bell_border_color #EED49F
+
+# OS Window titlebar colors
+wayland_titlebar_color system
+macos_titlebar_color system
+
+# Tab bar colors
+active_tab_foreground #181926
+active_tab_background #C6A0F6
+inactive_tab_foreground #CAD3F5
+inactive_tab_background #1E2030
+tab_bar_background #181926
+
+# Colors for marks (marked text in the terminal)
+mark1_foreground #24273A
+mark1_background #B7BDF8
+mark2_foreground #24273A
+mark2_background #C6A0F6
+mark3_foreground #24273A
+mark3_background #7DC4E4
+
+# The 16 terminal colors
+
+# black
+color0 #494D64
+color8 #5B6078
+
+# red
+color1 #ED8796
+color9 #ED8796
+
+# green
+color2 #A6DA95
+color10 #A6DA95
+
+# yellow
+color3 #EED49F
+color11 #EED49F
+
+# blue
+color4 #8AADF4
+color12 #8AADF4
+
+# magenta
+color5 #F5BDE6
+color13 #F5BDE6
+
+# cyan
+color6 #8BD5CA
+color14 #8BD5CA
+
+# white
+color7 #B8C0E0
+color15 #A5ADCB
diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf
new file mode 100644
index 000000000..c870e997f
--- /dev/null
+++ b/config/kitty/kitty.conf
@@ -0,0 +1,19 @@
+# Разрешить чтение без вопросов
+clipboard_control write-clipboard write-primary read-clipboard read-primary
+
+# ВАЖНО: для Tmux важно отключить append, если он вызывает проблемы
+clipboard_control write-clipboard write-primary no-append
+include current-theme.conf
+font_size 16.0
+confirm_os_window_close 0
+paste_actions no-op
+padding_width 0
+dynamic_padding no
+shell zsh
+clipboard_control read-clipboard write-clipboard
+font_family PxPlus IBM VGA8
+symbol_map U+e000-U+f8ff JetBrainsMono Nerd Font
+bold_font auto
+italic_font auto
+bold_italic_font auto
+map ctrl+shift+h no_op
diff --git a/config/kitty/kitty.conf.bak b/config/kitty/kitty.conf.bak
new file mode 100644
index 000000000..61d9cccdb
--- /dev/null
+++ b/config/kitty/kitty.conf.bak
@@ -0,0 +1,3010 @@
+# vim:fileencoding=utf-8:foldmethod=marker
+# BEGIN_KITTY_THEME
+# Catppuccin-Macchiato
+include current-theme.conf
+font_size 12.0
+confirm_os_window_close 0
+paste_actions no-op
+padding_width 0
+dynamic_padding no
+
+# END_KITTY_THEME
+
+#: Fonts {{{
+
+#: kitty has very powerful font management. You can configure
+#: individual font faces and even specify special fonts for particular
+#: characters.
+
+# font_family monospace
+# bold_font auto
+# italic_font auto
+# bold_italic_font auto
+
+#: You can specify different fonts for the bold/italic/bold-italic
+#: variants. The easiest way to select fonts is to run the `kitten
+#: choose-fonts` command which will present a nice UI for you to
+#: select the fonts you want with previews and support for selecting
+#: variable fonts and font features. If you want to learn to select
+#: fonts manually, read the font specification syntax
+#: <https://sw.kovidgoyal.net/kitty/kittens/choose-fonts/#font-spec-
+#: syntax>.
+
+# font_size 11.0
+
+#: Font size (in pts).
+
+# force_ltr no
+
+#: kitty does not support BIDI (bidirectional text), however, for RTL
+#: scripts, words are automatically displayed in RTL. That is to say,
+#: in an RTL script, the words "HELLO WORLD" display in kitty as
+#: "WORLD HELLO", and if you try to select a substring of an RTL-
+#: shaped string, you will get the character that would be there had
+#: the string been LTR. For example, assuming the Hebrew word ירושלים,
+#: selecting the character that on the screen appears to be ם actually
+#: writes into the selection buffer the character י. kitty's default
+#: behavior is useful in conjunction with a filter to reverse the word
+#: order, however, if you wish to manipulate RTL glyphs, it can be
+#: very challenging to work with, so this option is provided to turn
+#: it off. Furthermore, this option can be used with the command line
+#: program GNU FriBidi <https://github.com/fribidi/fribidi#executable>
+#: to get BIDI support, because it will force kitty to always treat
+#: the text as LTR, which FriBidi expects for terminals.
+
+# symbol_map
+
+#: E.g. symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols
+
+#: Map the specified Unicode codepoints to a particular font. Useful
+#: if you need special rendering for some symbols, such as for
+#: Powerline. Avoids the need for patched fonts. Each Unicode code
+#: point is specified in the form `U+<code point in hexadecimal>`. You
+#: can specify multiple code points, separated by commas and ranges
+#: separated by hyphens. This option can be specified multiple times.
+#: The syntax is::
+
+#: symbol_map codepoints Font Family Name
+
+# narrow_symbols
+
+#: E.g. narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1
+
+#: Usually, for Private Use Unicode characters and some symbol/dingbat
+#: characters, if the character is followed by one or more spaces,
+#: kitty will use those extra cells to render the character larger, if
+#: the character in the font has a wide aspect ratio. Using this
+#: option you can force kitty to restrict the specified code points to
+#: render in the specified number of cells (defaulting to one cell).
+#: This option can be specified multiple times. The syntax is::
+
+#: narrow_symbols codepoints [optionally the number of cells]
+
+# disable_ligatures never
+
+#: Choose how you want to handle multi-character ligatures. The
+#: default is to always render them. You can tell kitty to not render
+#: them when the cursor is over them by using cursor to make editing
+#: easier, or have kitty never render them at all by using always, if
+#: you don't like them. The ligature strategy can be set per-window
+#: either using the kitty remote control facility or by defining
+#: shortcuts for it in kitty.conf, for example::
+
+#: map alt+1 disable_ligatures_in active always
+#: map alt+2 disable_ligatures_in all never
+#: map alt+3 disable_ligatures_in tab cursor
+
+#: Note that this refers to programming ligatures, typically
+#: implemented using the calt OpenType feature. For disabling general
+#: ligatures, use the font_features option.
+
+# font_features
+
+#: E.g. font_features none
+
+#: Choose exactly which OpenType features to enable or disable. Note
+#: that for the main fonts, features can be specified when selecting
+#: the font using the choose-fonts kitten. This setting is useful for
+#: fallback fonts.
+
+#: Some fonts might have features worthwhile in a terminal. For
+#: example, Fira Code includes a discretionary feature, zero, which in
+#: that font changes the appearance of the zero (0), to make it more
+#: easily distinguishable from Ø. Fira Code also includes other
+#: discretionary features known as Stylistic Sets which have the tags
+#: ss01 through ss20.
+
+#: For the exact syntax to use for individual features, see the
+#: HarfBuzz documentation <https://harfbuzz.github.io/harfbuzz-hb-
+#: common.html#hb-feature-from-string>.
+
+#: Note that this code is indexed by PostScript name, and not the font
+#: family. This allows you to define very precise feature settings;
+#: e.g. you can disable a feature in the italic font but not in the
+#: regular font.
+
+#: On Linux, font features are first read from the FontConfig database
+#: and then this option is applied, so they can be configured in a
+#: single, central place.
+
+#: To get the PostScript name for a font, use the `fc-scan file.ttf`
+#: command on Linux or the `Font Book tool on macOS
+#: <https://apple.stackexchange.com/questions/79875/how-can-i-get-the-
+#: postscript-name-of-a-ttf-font-installed-in-os-x>`__.
+
+#: Enable alternate zero and oldstyle numerals::
+
+#: font_features FiraCode-Retina +zero +onum
+
+#: Enable only alternate zero in the bold font::
+
+#: font_features FiraCode-Bold +zero
+
+#: Disable the normal ligatures, but keep the calt feature which (in
+#: this font) breaks up monotony::
+
+#: font_features TT2020StyleB-Regular -liga +calt
+
+#: In conjunction with force_ltr, you may want to disable Arabic
+#: shaping entirely, and only look at their isolated forms if they
+#: show up in a document. You can do this with e.g.::
+
+#: font_features UnifontMedium +isol -medi -fina -init
+
+# modify_font
+
+#: Modify font characteristics such as the position or thickness of
+#: the underline and strikethrough. The modifications can have the
+#: suffix px for pixels or % for percentage of original value. No
+#: suffix means use pts. For example::
+
+#: modify_font underline_position -2
+#: modify_font underline_thickness 150%
+#: modify_font strikethrough_position 2px
+
+#: Additionally, you can modify the size of the cell in which each
+#: font glyph is rendered and the baseline at which the glyph is
+#: placed in the cell. For example::
+
+#: modify_font cell_width 80%
+#: modify_font cell_height -2px
+#: modify_font baseline 3
+
+#: Note that modifying the baseline will automatically adjust the
+#: underline and strikethrough positions by the same amount.
+#: Increasing the baseline raises glyphs inside the cell and
+#: decreasing it lowers them. Decreasing the cell size might cause
+#: rendering artifacts, so use with care.
+
+# box_drawing_scale 0.001, 1, 1.5, 2
+
+#: The sizes of the lines used for the box drawing Unicode characters.
+#: These values are in pts. They will be scaled by the monitor DPI to
+#: arrive at a pixel value. There must be four values corresponding to
+#: thin, normal, thick, and very thick lines.
+
+# undercurl_style thin-sparse
+
+#: The style with which undercurls are rendered. This option takes the
+#: form (thin|thick)-(sparse|dense). Thin and thick control the
+#: thickness of the undercurl. Sparse and dense control how often the
+#: curl oscillates. With sparse the curl will peak once per character,
+#: with dense twice. Changing this option dynamically via reloading
+#: the config or remote control is undefined.
+
+# underline_exclusion 1
+
+#: By default kitty renders gaps in underlines when they overlap with
+#: descenders (the parts of letters below the baseline, such as for y,
+#: q, p etc.). This option controls the thickness of the gaps. It can
+#: be either a unitless number in which case it is a fraction of the
+#: underline thickness as specified in the font or it can have a
+#: suffix of px for pixels or pt for points. Set to zero to disable
+#: the gaps. Changing this option dynamically via reloading the config
+#: or remote control is undefined.
+
+# text_composition_strategy platform
+
+#: Control how kitty composites text glyphs onto the background color.
+#: The default value of platform tries for text rendering as close to
+#: "native" for the platform kitty is running on as possible.
+
+#: A value of legacy uses the old (pre kitty 0.28) strategy for how
+#: glyphs are composited. This will make dark text on light
+#: backgrounds look thicker and light text on dark backgrounds
+#: thinner. It might also make some text appear like the strokes are
+#: uneven.
+
+#: You can fine tune the actual contrast curve used for glyph
+#: composition by specifying up to two space-separated numbers for
+#: this setting.
+
+#: The first number is the gamma adjustment, which controls the
+#: thickness of dark text on light backgrounds. Increasing the value
+#: will make text appear thicker. The default value for this is 1.0 on
+#: Linux and 1.7 on macOS. Valid values are 0.01 and above. The result
+#: is scaled based on the luminance difference between the background
+#: and the foreground. Dark text on light backgrounds receives the
+#: full impact of the curve while light text on dark backgrounds is
+#: affected very little.
+
+#: The second number is an additional multiplicative contrast. It is
+#: percentage ranging from 0 to 100. The default value is 0 on Linux
+#: and 30 on macOS.
+
+#: If you wish to achieve similar looking thickness in light and dark
+#: themes, a good way to experiment is start by setting the value to
+#: 1.0 0 and use a dark theme. Then adjust the second parameter until
+#: it looks good. Then switch to a light theme and adjust the first
+#: parameter until the perceived thickness matches the dark theme.
+
+# text_fg_override_threshold 0
+
+#: A setting to prevent low contrast between foreground and background
+#: colors. Useful when working with applications that use colors that
+#: do not contrast well with your preferred color scheme. The default
+#: value is 0, which means no color overriding is performed. There are
+#: two modes of operation:
+
+#: A value with the suffix ratio represents the minimum accepted
+#: contrast ratio between the foreground and background color.
+#: Possible values range from 0.0 ratio to 21.0 ratio. For example, to
+#: meet WCAG level AA
+#: <https://en.wikipedia.org/wiki/Web_Content_Accessibility_Guidelines>
+#: a value of 4.5 ratio can be provided. The algorithm is implemented
+#: using HSLuv <https://www.hsluv.org/> which enables it to change the
+#: perceived lightness of a color just as much as needed without
+#: really changing its hue and saturation.
+
+#: A value with the suffix % represents the minimum accepted
+#: difference in luminance between the foreground and background
+#: color, below which kitty will override the foreground color. It is
+#: percentage ranging from 0 % to 100 %. If the difference in
+#: luminance of the foreground and background is below this threshold,
+#: the foreground color will be set to white if the background is dark
+#: or black if the background is light.
+
+#: WARNING: Some programs use characters (such as block characters)
+#: for graphics display and may expect to be able to set the
+#: foreground and background to the same color (or similar colors). If
+#: you see unexpected stripes, dots, lines, incorrect color, no color
+#: where you expect color, or any kind of graphic display problem try
+#: setting text_fg_override_threshold to 0 to see if this is the cause
+#: of the problem or consider using the ratio mode of operation
+#: described above instead of the % mode of operation.
+
+#: }}}
+
+#: Text cursor customization {{{
+
+# cursor #cccccc
+
+#: Default text cursor color. If set to the special value none the
+#: cursor will be rendered with a "reverse video" effect. Its color
+#: will be the color of the text in the cell it is over and the text
+#: will be rendered with the background color of the cell. Note that
+#: if the program running in the terminal sets a cursor color, this
+#: takes precedence. Also, the cursor colors are modified if the cell
+#: background and foreground colors have very low contrast. Note that
+#: some themes set this value, so if you want to override it, place
+#: your value after the lines where the theme file is included.
+
+# cursor_text_color #111111
+
+#: The color of text under the cursor. If you want it rendered with
+#: the background color of the cell underneath instead, use the
+#: special keyword: `background`. Note that if cursor is set to none
+#: then this option is ignored. Note that some themes set this value,
+#: so if you want to override it, place your value after the lines
+#: where the theme file is included.
+
+# cursor_shape block
+
+#: The cursor shape can be one of block, beam, underline. Note that
+#: when reloading the config this will be changed only if the cursor
+#: shape has not been set by the program running in the terminal. This
+#: sets the default cursor shape, applications running in the terminal
+#: can override it. In particular, shell integration
+#: <https://sw.kovidgoyal.net/kitty/shell-integration/> in kitty sets
+#: the cursor shape to beam at shell prompts. You can avoid this by
+#: setting shell_integration to no-cursor.
+
+# cursor_shape_unfocused hollow
+
+#: Defines the text cursor shape when the OS window is not focused.
+#: The unfocused cursor shape can be one of block, beam, underline,
+#: hollow and unchanged (leave the cursor shape as it is).
+
+# cursor_beam_thickness 1.5
+
+#: The thickness of the beam cursor (in pts).
+
+# cursor_underline_thickness 2.0
+
+#: The thickness of the underline cursor (in pts).
+
+# cursor_blink_interval -1
+
+#: The interval to blink the cursor (in seconds). Set to zero to
+#: disable blinking. Negative values mean use system default. Note
+#: that the minimum interval will be limited to repaint_delay. You can
+#: also animate the cursor blink by specifying an easing function. For
+#: example, setting this to option to 0.5 ease-in-out will cause the
+#: cursor blink to be animated over a second, in the first half of the
+#: second it will go from opaque to transparent and then back again
+#: over the next half. You can specify different easing functions for
+#: the two halves, for example: -1 linear ease-out. kitty supports all
+#: the CSS easing functions <https://developer.mozilla.org/en-
+#: US/docs/Web/CSS/easing-function>. Note that turning on animations
+#: uses extra power as it means the screen is redrawn multiple times
+#: per blink interval. See also, cursor_stop_blinking_after. This
+#: setting also controls blinking text, which blinks in exact rhythm
+#: with the cursor.
+
+# cursor_stop_blinking_after 15.0
+
+#: Stop blinking cursor after the specified number of seconds of
+#: keyboard inactivity. Set to zero to never stop blinking. This
+#: setting also controls blinking text, which blinks in exact rhythm
+#: with the cursor.
+
+# cursor_trail 0
+
+#: Set this to a value larger than zero to enable a "cursor trail"
+#: animation. This is an animation that shows a "trail" following the
+#: movement of the text cursor. It makes it easy to follow large
+#: cursor jumps and makes for a cool visual effect of the cursor
+#: zooming around the screen. The actual value of this option controls
+#: when the animation is triggered. It is a number of milliseconds.
+#: The trail animation only follows cursors that have stayed in their
+#: position for longer than the specified number of milliseconds. This
+#: prevents trails from appearing for cursors that rapidly change
+#: their positions during UI updates in complex applications. See
+#: cursor_trail_decay to control the animation speed and
+#: cursor_trail_start_threshold to control when a cursor trail is
+#: started.
+
+# cursor_trail_decay 0.1 0.4
+
+#: Controls the decay times for the cursor trail effect when the
+#: cursor_trail is enabled. This option accepts two positive float
+#: values specifying the fastest and slowest decay times in seconds.
+#: The first value corresponds to the fastest decay time (minimum),
+#: and the second value corresponds to the slowest decay time
+#: (maximum). The second value must be equal to or greater than the
+#: first value. Smaller values result in a faster decay of the cursor
+#: trail. Adjust these values to control how quickly the cursor trail
+#: fades away.
+
+# cursor_trail_start_threshold 2
+
+#: Set the distance threshold for starting the cursor trail. This
+#: option accepts a positive integer value that represents the minimum
+#: number of cells the cursor must move before the trail is started.
+#: When the cursor moves less than this threshold, the trail is
+#: skipped, reducing unnecessary cursor trail animation.
+
+# cursor_trail_color none
+
+#: Set the color of the cursor trail when cursor_trail is enabled. If
+#: set to 'none' (the default), the cursor trail will use the cursor's
+#: background color. Otherwise, specify a color value (e.g., #ff0000
+#: for red, or a named color like 'red'). This allows you to customize
+#: the appearance of the cursor trail independently of the cursor
+#: color.
+
+#: }}}
+
+#: Scrollback {{{
+
+# scrollback_lines 2000
+
+#: Number of lines of history to keep in memory for scrolling back.
+#: Memory is allocated on demand. Negative numbers are (effectively)
+#: infinite scrollback. Note that using very large scrollback is not
+#: recommended as it can slow down performance of the terminal and
+#: also use large amounts of RAM. Instead, consider using
+#: scrollback_pager_history_size. Note that on config reload if this
+#: is changed it will only affect newly created windows, not existing
+#: ones.
+
+# scrollbar scrolled
+
+#: Control when the scrollbar is displayed.
+
+#: scrolled
+#: means when the scrolling backwards has started.
+#: hovered
+#: means when the mouse is hovering on the right edge of the window.
+#: scrolled-and-hovered
+#: means when the mouse is over the scrollbar region *and* scrolling backwards has started.
+#: always
+#: means whenever any scrollback is present
+#: never
+#: means disable the scrollbar.
+
+# scrollbar_interactive yes
+
+#: If disabled, the scrollbar will not be controllable via th emouse
+#: and all mouse events will pass through the scrollbar.
+
+# scrollbar_jump_on_click yes
+
+#: When enabled clicking in the scrollbar track will cause the scroll
+#: position to jump to the clicked location, otherwise the scroll
+#: position will only move towards the position by a single screenful,
+#: which is how traditional scrollbars behave.
+
+# scrollbar_width 0.5
+
+#: The width of the scroll bar in units of cell width.
+
+# scrollbar_hover_width 1
+
+#: The width of the scroll bar when the mouse is hovering over it, in
+#: units of cell width.
+
+# scrollbar_handle_opacity 0.5
+
+#: The opacity of the scrollbar handle, 0 being fully transparent and
+#: 1 being full opaque.
+
+# scrollbar_radius 0.3
+
+#: The radius (curvature) of the scrollbar handle in units of cell
+#: width. Should be less than scrollbar_width.
+
+# scrollbar_gap 0.1
+
+#: The gap between the scrollbar and the window edge in units of cell
+#: width.
+
+# scrollbar_min_handle_height 1
+
+#: The minimum height of the scrollbar handle in units of cell height.
+#: Prevents the handle from becoming too small when there is a lot of
+#: scrollback.
+
+# scrollbar_hitbox_expansion 0.25
+
+#: The extra area around the handle to allow easier grabbing of the
+#: scollbar in units of cell width.
+
+# scrollbar_track_opacity 0
+
+#: The opacity of the scrollbar track, 0 being fully transparent and 1
+#: being full opaque.
+
+# scrollbar_track_hover_opacity 0.1
+
+#: The opacity of the scrollbar track when the mouse is over the
+#: scrollbar, 0 being fully transparent and 1 being full opaque.
+
+# scrollbar_handle_color foreground
+
+#: The color of the scrollbar handle. A value of foreground means to
+#: use the current foreground text color, a value of
+#: selection_background means to use the current selection background
+#: color. Also, you can use an arbitrary color, such as #12af59 or
+#: red.
+
+# scrollbar_track_color foreground
+
+#: The color of the scrollbar track. A value of foreground means to
+#: use the current foreground text color, a value of
+#: selection_background means to use the current selection background
+#: color. Also, you can use an arbitrary color, such as #12af59 or
+#: red.
+
+# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
+
+#: Program with which to view scrollback in a new window. The
+#: scrollback buffer is passed as STDIN to this program. If you change
+#: it, make sure the program you use can handle ANSI escape sequences
+#: for colors and text formatting. INPUT_LINE_NUMBER in the command
+#: line above will be replaced by an integer representing which line
+#: should be at the top of the screen. Similarly CURSOR_LINE and
+#: CURSOR_COLUMN will be replaced by the current cursor position or
+#: set to 0 if there is no cursor, for example, when showing the last
+#: command output.
+
+#: If you would rather use neovim to view the scrollback, use
+#: something like this::
+
+#: scrollback_pager nvim --cmd 'set eventignore=FileType' +'nnoremap q ZQ' +'call nvim_open_term(0, {})' +'set nomodified nolist' +'$' -
+
+#: The above works for neovim 0.12 and newer. There is also a
+#: dedicated plugin kitty-scrollback.nvim
+#: <https://github.com/mikesmithgh/kitty-scrollback.nvim> you can use
+#: with more features that works with older neovim as well.
+
+# scrollback_pager_history_size 0
+
+#: Separate scrollback history size (in MB), used only for browsing
+#: the scrollback buffer with pager. This separate buffer is not
+#: available for interactive scrolling but will be piped to the pager
+#: program when viewing scrollback buffer in a separate window. The
+#: current implementation stores the data in UTF-8, so approximately
+#: 10000 lines per megabyte at 100 chars per line, for pure ASCII,
+#: unformatted text. A value of zero or less disables this feature.
+#: The maximum allowed size is 4GB. Note that on config reload if this
+#: is changed it will only affect newly created windows, not existing
+#: ones.
+
+# scrollback_fill_enlarged_window no
+
+#: Fill new space with lines from the scrollback buffer after
+#: enlarging a window.
+
+# wheel_scroll_multiplier 5.0
+
+#: Multiplier for the number of lines scrolled by the mouse wheel.
+#: Note that this is only used for low precision scrolling devices,
+#: not for high precision scrolling devices on platforms such as macOS
+#: and Wayland. Use negative numbers to change scroll direction. See
+#: also wheel_scroll_min_lines.
+
+# wheel_scroll_min_lines 1
+
+#: The minimum number of lines scrolled by the mouse wheel. The scroll
+#: multiplier wheel_scroll_multiplier only takes effect after it
+#: reaches this number. Note that this is only used for low precision
+#: scrolling devices like wheel mice that scroll by very small amounts
+#: when using the wheel. With a negative number, the minimum number of
+#: lines will always be added.
+
+# touch_scroll_multiplier 1.0
+
+#: Multiplier for the number of lines scrolled by a touchpad. Note
+#: that this is only used for high precision scrolling devices on
+#: platforms such as macOS and Wayland. Use negative numbers to change
+#: scroll direction.
+
+#: }}}
+
+#: Mouse {{{
+
+# mouse_hide_wait 3.0
+
+#: Hide mouse cursor after the specified number of seconds of the
+#: mouse not being used. Set to zero to disable mouse cursor hiding.
+#: Set to a negative value to hide the mouse cursor immediately when
+#: typing text. Disabled by default on macOS as getting it to work
+#: robustly with the ever-changing sea of bugs that is Cocoa is too
+#: much effort.
+
+#: By default, once the cursor is hidden, it is immediately unhidden
+#: on any further mouse events.
+
+#: Two formats are supported:
+#: - <hide-wait>
+#: - <hide-wait> <unhide-wait> <unhide-threshold> <scroll-unhide>
+
+#: To change the unhide behavior, the optional parameters <unhide-
+#: wait>, <unhide-threshold>, and <scroll-unhide> may be set.
+
+#: <unhide-wait>
+#: Waits for the specified number of seconds after mouse events before unhiding the
+#: mouse cursor. Set to zero to unhide mouse cursor immediately on mouse activity.
+#: This is useful to prevent the mouse cursor from unhiding on accidental swipes on
+#: the trackpad.
+
+#: <unhide-threshold>
+#: Sets the threshold of mouse activity required to unhide the mouse cursor, when
+#: the <unhide-wait> option is non-zero. When <unhide-wait> is zero, this has no
+#: effect.
+
+#: For example, if <unhide-threshold> is 40 and <unhide-wait> is 2.5, when kitty
+#: detects a mouse event, it records the number of mouse events in the next 2.5
+#: seconds, and checks if that exceeds 40 * 2.5 = 100. If it does, then the mouse
+#: cursor is unhidden, otherwise nothing happens.
+
+#: <scroll-unhide>
+#: Controls what mouse events may unhide the mouse cursor. If enabled, both scroll
+#: and movement events may unhide the cursor. If disabled, only mouse movements can
+#: unhide the cursor.
+
+#: Examples of valid values:
+#: - 0.0
+#: - 1.0
+#: - -1.0
+#: - 0.1 3.0 40 yes
+
+# url_color #0087bd
+# url_style curly
+
+#: The color and style for highlighting URLs on mouse-over. url_style
+#: can be one of: none, straight, double, curly, dotted, dashed.
+
+# open_url_with default
+
+#: The program to open clicked URLs. The special value default will
+#: first look for any URL handlers defined via the open_actions
+#: <https://sw.kovidgoyal.net/kitty/open_actions/> facility and if non
+#: are found, it will use the Operating System's default URL handler
+#: (open on macOS and xdg-open on Linux).
+
+# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh
+
+#: The set of URL prefixes to look for when detecting a URL under the
+#: mouse cursor.
+
+# detect_urls yes
+
+#: Detect URLs under the mouse. Detected URLs are highlighted with an
+#: underline and the mouse cursor becomes a hand over them. Even if
+#: this option is disabled, URLs are still clickable. See also the
+#: underline_hyperlinks option to control how hyperlinks (as opposed
+#: to plain text URLs) are displayed.
+
+# url_excluded_characters
+
+#: Additional characters to be disallowed from URLs, when detecting
+#: URLs under the mouse cursor. By default, all characters that are
+#: legal in URLs are allowed. Additionally, newlines are allowed (but
+#: stripped). This is to accommodate programs such as mutt that add
+#: hard line breaks even for continued lines. \n can be added to this
+#: option to disable this behavior. Special characters can be
+#: specified using backslash escapes, to specify a backslash use a
+#: double backslash.
+
+# show_hyperlink_targets no
+
+#: When the mouse hovers over a terminal hyperlink, show the actual
+#: URL that will be activated when the hyperlink is clicked.
+
+# underline_hyperlinks hover
+
+#: Control how hyperlinks are underlined. They can either be
+#: underlined on mouse hover, always (i.e. permanently underlined) or
+#: never which means that kitty will not apply any underline styling
+#: to hyperlinks. Note that the value of always only applies to real
+#: (OSC 8) hyperlinks not text that is detected to be a URL on mouse
+#: hover. Uses the url_style and url_color settings for the underline
+#: style. Note that reloading the config and changing this value
+#: to/from always will only affect text subsequently received by
+#: kitty.
+
+# copy_on_select no
+
+#: Copy to clipboard or a private buffer on select. With this set to
+#: clipboard, selecting text with the mouse will cause the text to be
+#: copied to clipboard. Useful on platforms such as macOS that do not
+#: have the concept of primary selection. You can instead specify a
+#: name such as a1 to copy to a private kitty buffer. Map a shortcut
+#: with the paste_from_buffer action to paste from this private
+#: buffer. For example::
+
+#: copy_on_select a1
+#: map shift+cmd+v paste_from_buffer a1
+
+#: Note that copying to the clipboard is a security risk, as all
+#: programs, including websites open in your browser can read the
+#: contents of the system clipboard.
+
+# clear_selection_on_clipboard_loss no
+
+#: When the contents of the clipboard no longer reflect the current
+#: selection, clear it. This is primarily useful on platforms such as
+#: Linux where selecting text automatically copies it to a special
+#: "primary selection" clipboard or if you have copy_on_select set to
+#: clipboard.
+
+#: Note that on macOS the system does not provide notifications when
+#: the clipboard owner is changed, so there, copying to clipboard in a
+#: non-kitty application will not clear selections even if
+#: copy_on_select is enabled.
+
+# paste_actions quote-urls-at-prompt,confirm
+
+#: A comma separated list of actions to take when pasting text into
+#: the terminal. The supported paste actions are:
+
+#: quote-urls-at-prompt:
+#: If the text being pasted is a URL and the cursor is at a shell prompt,
+#: automatically quote the URL (needs shell_integration).
+#: replace-dangerous-control-codes
+#: Replace dangerous control codes from pasted text, without confirmation.
+#: replace-newline
+#: Replace the newline character from pasted text, without confirmation.
+#: confirm:
+#: Confirm the paste if the text to be pasted contains any terminal control codes
+#: as this can be dangerous, leading to code execution if the shell/program running
+#: in the terminal does not properly handle these.
+#: confirm-if-large
+#: Confirm the paste if it is very large (larger than 16KB) as pasting
+#: large amounts of text into shells can be very slow.
+#: filter:
+#: Run the filter_paste() function from the file paste-actions.py in
+#: the kitty config directory on the pasted text. The text returned by the
+#: function will be actually pasted.
+#: no-op:
+#: Has no effect.
+
+# strip_trailing_spaces never
+
+#: Remove spaces at the end of lines when copying to clipboard. A
+#: value of smart will do it when using normal selections, but not
+#: rectangle selections. A value of always will always do it.
+
+# select_by_word_characters @-./_~?&=%+#
+
+#: Characters considered part of a word when double clicking. In
+#: addition to these characters any character that is marked as an
+#: alphanumeric character in the Unicode database will be matched.
+
+# select_by_word_characters_forward
+
+#: Characters considered part of a word when extending the selection
+#: forward on double clicking. In addition to these characters any
+#: character that is marked as an alphanumeric character in the
+#: Unicode database will be matched.
+
+#: If empty (default) select_by_word_characters will be used for both
+#: directions.
+
+# click_interval -1.0
+
+#: The interval between successive clicks to detect double/triple
+#: clicks (in seconds). Negative numbers will use the system default
+#: instead, if available, or fallback to 0.5.
+
+# focus_follows_mouse no
+
+#: Set the active window to the window under the mouse when moving the
+#: mouse around. On macOS, this will also cause the OS Window under
+#: the mouse to be focused automatically when the mouse enters it.
+
+# pointer_shape_when_grabbed arrow
+
+#: The shape of the mouse pointer when the program running in the
+#: terminal grabs the mouse.
+
+# default_pointer_shape beam
+
+#: The default shape of the mouse pointer.
+
+# pointer_shape_when_dragging beam crosshair
+
+#: The default shape of the mouse pointer when dragging across text.
+#: The optional second value sets the shape when dragging in
+#: rectangular selection mode.
+
+#: Mouse actions {{{
+
+#: Mouse buttons can be mapped to perform arbitrary actions. The
+#: syntax is:
+
+#: .. code-block:: none
+
+#: mouse_map button-name event-type modes action
+
+#: Where button-name is one of left, middle, right, b1 ... b8 with
+#: added keyboard modifiers. For example: ctrl+shift+left refers to
+#: holding the Ctrl+Shift keys while clicking with the left mouse
+#: button. The value b1 ... b8 can be used to refer to up to eight
+#: buttons on a mouse.
+
+#: event-type is one of press, release, doublepress, triplepress,
+#: click, doubleclick. modes indicates whether the action is performed
+#: when the mouse is grabbed by the program running in the terminal,
+#: or not. The values are grabbed or ungrabbed or a comma separated
+#: combination of them. grabbed refers to when the program running in
+#: the terminal has requested mouse events. Note that the click and
+#: double click events have a delay of click_interval to disambiguate
+#: from double and triple presses.
+
+#: You can run kitty with the kitty --debug-input command line option
+#: to see mouse events. See the builtin actions below to get a sense
+#: of what is possible.
+
+#: If you want to unmap a button, map it to nothing. For example, to
+#: disable opening of URLs with a plain click::
+
+#: mouse_map left click ungrabbed
+
+#: See all the mappable actions including mouse actions here
+#: <https://sw.kovidgoyal.net/kitty/actions/>.
+
+#: .. note::
+#: Once a selection is started, releasing the button that started it will
+#: automatically end it and no release event will be dispatched.
+
+# clear_all_mouse_actions no
+
+#: Remove all mouse action definitions up to this point. Useful, for
+#: instance, to remove the default mouse actions.
+
+#: Click the link under the mouse or move the cursor
+
+# mouse_map left click ungrabbed mouse_handle_click selection link prompt
+
+#:: First check for a selection and if one exists do nothing. Then
+#:: check for a link under the mouse cursor and if one exists, click
+#:: it. Finally check if the click happened at the current shell
+#:: prompt and if so, move the cursor to the click location. Note
+#:: that this requires shell integration
+#:: <https://sw.kovidgoyal.net/kitty/shell-integration/> to work.
+
+#: Click the link under the mouse or move the cursor even when grabbed
+
+# mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt
+
+#:: Same as above, except that the action is performed even when the
+#:: mouse is grabbed by the program running in the terminal.
+
+#: Click the link under the mouse cursor
+
+# mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link
+
+#:: Variant with Ctrl+Shift is present because the simple click based
+#:: version has an unavoidable delay of click_interval, to
+#:: disambiguate clicks from double clicks.
+
+#: Discard press event for link click
+
+# mouse_map ctrl+shift+left press grabbed discard_event
+
+#:: Prevent this press event from being sent to the program that has
+#:: grabbed the mouse, as the corresponding release event is used to
+#:: open a URL.
+
+#: Paste from the primary selection
+
+# mouse_map middle release ungrabbed paste_from_selection
+
+#: Start selecting text
+
+# mouse_map left press ungrabbed mouse_selection normal
+
+#: Start selecting text in a rectangle
+
+# mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle
+
+#: Select a word
+
+# mouse_map left doublepress ungrabbed mouse_selection word
+
+#: Select a line
+
+# mouse_map left triplepress ungrabbed mouse_selection line
+
+#: Select line from point
+
+# mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point
+
+#:: Select from the clicked point to the end of the line. If you
+#:: would like to select the word at the point and then extend to the
+#:: rest of the line, change `line_from_point` to
+#:: `word_and_line_from_point`.
+
+#: Extend the current selection
+
+# mouse_map right press ungrabbed mouse_selection extend
+
+#:: If you want only the end of the selection to be moved instead of
+#:: the nearest boundary, use move-end instead of extend.
+
+#: Paste from the primary selection even when grabbed
+
+# mouse_map shift+middle release ungrabbed,grabbed paste_selection
+# mouse_map shift+middle press grabbed discard_event
+
+#: Start selecting text even when grabbed
+
+# mouse_map shift+left press ungrabbed,grabbed mouse_selection normal
+
+#: Start selecting text in a rectangle even when grabbed
+
+# mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle
+
+#: Select a word even when grabbed
+
+# mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word
+
+#: Select a line even when grabbed
+
+# mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line
+
+#: Select line from point even when grabbed
+
+# mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point
+
+#:: Select from the clicked point to the end of the line even when
+#:: grabbed. If you would like to select the word at the point and
+#:: then extend to the rest of the line, change `line_from_point` to
+#:: `word_and_line_from_point`.
+
+#: Extend the current selection even when grabbed
+
+# mouse_map shift+right press ungrabbed,grabbed mouse_selection extend
+
+#: Show clicked command output in pager
+
+# mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output
+
+#:: Requires shell integration
+#:: <https://sw.kovidgoyal.net/kitty/shell-integration/> to work.
+
+#: }}}
+
+#: }}}
+
+#: Performance tuning {{{
+
+# repaint_delay 10
+
+#: Delay between screen updates (in milliseconds). Decreasing it,
+#: increases frames-per-second (FPS) at the cost of more CPU usage.
+#: The default value yields ~100 FPS which is more than sufficient for
+#: most uses. Note that to actually achieve 100 FPS, you have to
+#: either set sync_to_monitor to no or use a monitor with a high
+#: refresh rate. Also, to minimize latency when there is pending input
+#: to be processed, this option is ignored.
+
+# input_delay 3
+
+#: Delay before input from the program running in the terminal is
+#: processed (in milliseconds). Note that decreasing it will increase
+#: responsiveness, but also increase CPU usage and might cause flicker
+#: in full screen programs that redraw the entire screen on each loop,
+#: because kitty is so fast that partial screen updates will be drawn.
+#: This setting is ignored when the input buffer is almost full.
+
+# sync_to_monitor yes
+
+#: Sync screen updates to the refresh rate of the monitor. This
+#: prevents screen tearing
+#: <https://en.wikipedia.org/wiki/Screen_tearing> when scrolling.
+#: However, it limits the rendering speed to the refresh rate of your
+#: monitor. With a very high speed mouse/high keyboard repeat rate,
+#: you may notice some slight input latency. If so, set this to no.
+
+#: }}}
+
+#: Terminal bell {{{
+
+# enable_audio_bell yes
+
+#: The audio bell. Useful to disable it in environments that require
+#: silence.
+
+# visual_bell_duration 0.0
+
+#: The visual bell duration (in seconds). Flash the screen when a bell
+#: occurs for the specified number of seconds. Set to zero to disable.
+#: The flash is animated, fading in and out over the specified
+#: duration. The easing function used for the fading can be
+#: controlled. For example, 2.0 linear will casuse the flash to fade
+#: in and out linearly. The default if unspecified is to use ease-in-
+#: out which fades slowly at the start, middle and end. You can
+#: specify different easing functions for the fade-in and fade-out
+#: parts, like this: 2.0 ease-in linear. kitty supports all the CSS
+#: easing functions <https://developer.mozilla.org/en-
+#: US/docs/Web/CSS/easing-function>.
+
+# visual_bell_color none
+
+#: The color used by visual bell. Set to none will fall back to
+#: selection background color. If you feel that the visual bell is too
+#: bright, you can set it to a darker color.
+
+# window_alert_on_bell yes
+
+#: Request window attention on bell. Makes the dock icon bounce on
+#: macOS or the taskbar flash on Linux.
+
+# bell_on_tab "🔔 "
+
+#: Some text or a Unicode symbol to show on the tab if a window in the
+#: tab that does not have focus has a bell. If you want to use leading
+#: or trailing spaces, surround the text with quotes. See
+#: tab_title_template for how this is rendered.
+
+#: For backwards compatibility, values of yes, y and true are
+#: converted to the default bell symbol and no, n, false and none are
+#: converted to the empty string.
+
+# command_on_bell none
+
+#: Program to run when a bell occurs. The environment variable
+#: KITTY_CHILD_CMDLINE can be used to get the program running in the
+#: window in which the bell occurred.
+
+# bell_path none
+
+#: Path to a sound file to play as the bell sound. If set to none, the
+#: system default bell sound is used. Must be in a format supported by
+#: the operating systems sound API, such as WAV or OGA on Linux
+#: (libcanberra) or AIFF, MP3 or WAV on macOS (NSSound). Relative
+#: paths are resolved with respect to the kitty config directory.
+
+# linux_bell_theme __custom
+
+#: The XDG Sound Theme kitty will use to play the bell sound. On
+#: Wayland, when the compositor supports it, it is asked to play the
+#: system default bell sound, and this setting has no effect. Note
+#: that Hyprland claims to support this protocol, but does not
+#: actually play a sound
+#: <https://github.com/hyprwm/Hyprland/issues/10488>. This setting
+#: defaults to the custom theme name specified in the XDG Sound theme
+#: specification <https://specifications.freedesktop.org/sound-theme-
+#: spec/latest/sound_lookup.html>, falling back to the default
+#: freedesktop theme if it does not exist. To change your sound theme
+#: desktop wide, create
+#: :file:~/.local/share/sounds/__custom/index.theme` with the
+#: contents:
+
+#: [Sound Theme]
+
+#: Inherits=name-of-the-sound-theme-you-want-to-use
+
+#: Replace name-of-the-sound-theme-you-want-to-use with the actual
+#: theme name. Now all compliant applications should use sounds from
+#: this theme.
+
+#: }}}
+
+#: Window layout {{{
+
+# remember_window_size yes
+# initial_window_width 640
+# initial_window_height 400
+
+#: If enabled, the OS Window size will be remembered so that new
+#: instances of kitty will have the same size as the previous
+#: instance. If disabled, the OS Window will initially have size
+#: configured by initial_window_width/height, in pixels. You can use a
+#: suffix of "c" on the width/height values to have them interpreted
+#: as number of cells instead of pixels.
+
+# remember_window_position no
+
+#: If enabled, the OS Window position will be remembered so that new
+#: instances of kitty will have the same position as the previous
+#: instance. If disabled, the OS Window will be placed by the window
+#: manager. Note that remembering of position only works if the
+#: underlying desktop environment/window manager supports it. It never
+#: works on Wayland. See also kitty --position to specify the position
+#: when launching kitty.
+
+# enabled_layouts *
+
+#: The enabled window layouts. A comma separated list of layout names.
+#: The special value all means all layouts. The first listed layout
+#: will be used as the startup layout. Default configuration is all
+#: layouts in alphabetical order. For a list of available layouts, see
+#: the layouts <https://sw.kovidgoyal.net/kitty/overview/#layouts>.
+
+# window_resize_step_cells 2
+# window_resize_step_lines 2
+
+#: The step size (in units of cell width/cell height) to use when
+#: resizing kitty windows in a layout with the shortcut
+#: start_resizing_window. The cells value is used for horizontal
+#: resizing, and the lines value is used for vertical resizing.
+
+# window_border_width 0.5pt
+
+#: The width of window borders. Can be either in pixels (px) or pts
+#: (pt). Values in pts will be rounded to the nearest number of pixels
+#: based on screen resolution. If not specified, the unit is assumed
+#: to be pts. Note that borders are displayed only when more than one
+#: window is visible. They are meant to separate multiple windows.
+
+# draw_minimal_borders yes
+
+#: Draw only the minimum borders needed. This means that only the
+#: borders that separate the window from a neighbor are drawn. Note
+#: that setting a non-zero window_margin_width overrides this and
+#: causes all borders to be drawn.
+
+# draw_window_borders_for_single_window no
+
+#: Draw borders around a window even when there is only a single
+#: window visible. When enabled and there is only a single window,
+#: full borders are drawn around it (as if draw_minimal_borders is
+#: false). The border will show in the active color when the window is
+#: focused and the OS window has focus, and in the inactive color when
+#: the OS window loses focus. This provides a clear visual indicator
+#: of whether the kitty window is focused. When there are multiple
+#: windows visible, this option has no effect and normal border
+#: drawing rules apply.
+
+# window_margin_width 0
+
+#: The window margin (in pts) (blank area outside the border). A
+#: single value sets all four sides. Two values set the vertical and
+#: horizontal sides. Three values set top, horizontal and bottom. Four
+#: values set top, right, bottom and left.
+
+# single_window_margin_width -1
+
+#: The window margin to use when only a single window is visible (in
+#: pts). Negative values will cause the value of window_margin_width
+#: to be used instead. A single value sets all four sides. Two values
+#: set the vertical and horizontal sides. Three values set top,
+#: horizontal and bottom. Four values set top, right, bottom and left.
+
+# window_padding_width 0
+
+#: The window padding (in pts) (blank area between the text and the
+#: window border). A single value sets all four sides. Two values set
+#: the vertical and horizontal sides. Three values set top, horizontal
+#: and bottom. Four values set top, right, bottom and left.
+
+# single_window_padding_width -1
+
+#: The window padding to use when only a single window is visible (in
+#: pts). Negative values will cause the value of window_padding_width
+#: to be used instead. A single value sets all four sides. Two values
+#: set the vertical and horizontal sides. Three values set top,
+#: horizontal and bottom. Four values set top, right, bottom and left.
+
+# placement_strategy center
+
+#: When the window size is not an exact multiple of the cell size, the
+#: cell area of the terminal window will have some extra padding on
+#: the sides. You can control how that padding is distributed with
+#: this option. Using a value of center means the cell area will be
+#: placed centrally. A value of top-left means the padding will be
+#: only at the bottom and right edges. The value can be one of: top-
+#: left, top, top-right, left, center, right, bottom-left, bottom,
+#: bottom-right.
+
+# active_border_color #00ff00
+
+#: The color for the border of the active window. Set this to none to
+#: not draw borders around the active window.
+
+# inactive_border_color #cccccc
+
+#: The color for the border of inactive windows.
+
+# bell_border_color #ff5a00
+
+#: The color for the border of inactive windows in which a bell has
+#: occurred.
+
+# inactive_text_alpha 1.0
+
+#: Fade the text in inactive windows by the specified amount (a number
+#: between zero and one, with zero being fully faded).
+
+# hide_window_decorations no
+
+#: Hide the window decorations (title-bar and window borders) with
+#: yes. On macOS, titlebar-only and titlebar-and-corners can be used
+#: to only hide the titlebar and the rounded corners. Whether this
+#: works and exactly what effect it has depends on the window
+#: manager/operating system. Note that the effects of changing this
+#: option when reloading config are undefined. When using titlebar-
+#: only, it is useful to also set window_margin_width and
+#: placement_strategy to prevent the rounded corners from clipping
+#: text. Or use titlebar-and-corners.
+
+# window_logo_path none
+
+#: Path to a logo image. Must be in PNG/JPEG/WEBP/GIF/TIFF/BMP format.
+#: Relative paths are interpreted relative to the kitty config
+#: directory. The logo is displayed in a corner of every kitty window.
+#: The position is controlled by window_logo_position. Individual
+#: windows can be configured to have different logos either using the
+#: launch action or the remote control
+#: <https://sw.kovidgoyal.net/kitty/remote-control/> facility.
+
+# window_logo_position bottom-right
+
+#: Where to position the window logo in the window. The value can be
+#: one of: top-left, top, top-right, left, center, right, bottom-left,
+#: bottom, bottom-right.
+
+# window_logo_alpha 0.5
+
+#: The amount the logo should be faded into the background. With zero
+#: being fully faded and one being fully opaque.
+
+# window_logo_scale 0
+
+#: The percentage (0-100] of the window size to which the logo should
+#: scale. Using a single number means the logo is scaled to that
+#: percentage of the shortest window dimension, while preserving
+#: aspect ratio of the logo image.
+
+#: Using two numbers means the width and height of the logo are scaled
+#: to the respective percentage of the window's width and height.
+
+#: Using zero as the percentage disables scaling in that dimension. A
+#: single zero (the default) disables all scaling of the window logo.
+
+# resize_debounce_time 0.1 0.5
+
+#: The time to wait (in seconds) before asking the program running in
+#: kitty to resize and redraw the screen during a live resize of the
+#: OS window, when no new resize events have been received, i.e. when
+#: resizing is either paused or finished. On platforms such as macOS,
+#: where the operating system sends events corresponding to the start
+#: and end of a live resize, the second number is used for redraw-
+#: after-pause since kitty can distinguish between a pause and end of
+#: resizing. On such systems the first number is ignored and redraw is
+#: immediate after end of resize. On other systems only the first
+#: number is used so that kitty is "ready" quickly after the end of
+#: resizing, while not also continuously redrawing, to save energy.
+
+# resize_in_steps no
+
+#: Resize the OS window in steps as large as the cells, instead of
+#: with the usual pixel accuracy. Combined with initial_window_width
+#: and initial_window_height in number of cells, this option can be
+#: used to keep the margins as small as possible when resizing the OS
+#: window. Note that this does not currently work on Wayland.
+
+# visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
+
+#: The list of characters for visual window selection. For example,
+#: for selecting a window to focus on with focus_visible_window. The
+#: value should be a series of unique numbers or alphabets, case
+#: insensitive, from the set 0-9A-Z\-=[];',./\\`. Specify your
+#: preference as a string of characters.
+
+# confirm_os_window_close -1
+
+#: Ask for confirmation when closing an OS window or a tab with at
+#: least this number of kitty windows in it by window manager (e.g.
+#: clicking the window close button or pressing the operating system
+#: shortcut to close windows) or by the close_tab action. A value of
+#: zero disables confirmation. This confirmation also applies to
+#: requests to quit the entire application (all OS windows, via the
+#: quit action). Negative values are converted to positive ones,
+#: however, with shell_integration enabled, using negative values
+#: means windows sitting at a shell prompt are not counted, only
+#: windows where some command is currently running. You can also have
+#: backgrounded jobs prevent closing, by adding count-background to
+#: the setting, for example: -1 count-background. Note that if you
+#: want confirmation when closing individual windows, you can map the
+#: close_window_with_confirmation action.
+
+#: }}}
+
+#: Tab bar {{{
+
+# tab_bar_edge bottom
+
+#: The edge to show the tab bar on, top or bottom.
+
+# tab_bar_margin_width 0.0
+
+#: The margin to the left and right of the tab bar (in pts).
+
+# tab_bar_margin_height 0.0 0.0
+
+#: The margin above and below the tab bar (in pts). The first number
+#: is the margin between the edge of the OS Window and the tab bar.
+#: The second number is the margin between the tab bar and the
+#: contents of the current tab.
+
+# tab_bar_style fade
+
+#: The tab bar style, can be one of:
+
+#: fade
+#: Each tab's edges fade into the background color. (See also tab_fade)
+#: slant
+#: Tabs look like the tabs in a physical file.
+#: separator
+#: Tabs are separated by a configurable separator. (See also
+#: tab_separator)
+#: powerline
+#: Tabs are shown as a continuous line with "fancy" separators.
+#: (See also tab_powerline_style)
+#: custom
+#: A user-supplied Python function called draw_tab is loaded from the file
+#: tab_bar.py in the kitty config directory. For examples of how to
+#: write such a function, see the functions named draw_tab_with_* in
+#: kitty's source code: kitty/tab_bar.py. See also
+#: this discussion <https://github.com/kovidgoyal/kitty/discussions/4447>
+#: for examples from kitty users.
+#: hidden
+#: The tab bar is hidden. If you use this, you might want to create
+#: a mapping for the select_tab action which presents you with a list of
+#: tabs and allows for easy switching to a tab.
+
+# tab_bar_filter
+
+#: A search expression <https://sw.kovidgoyal.net/kitty/remote-
+#: control/#search-syntax>. Only tabs that match this expression will
+#: be shown in the tab bar. The currently active tab is always shown,
+#: regardless of whether it matches or not. When using this option,
+#: the tab bar may be displayed with less tabs than specified in
+#: tab_bar_min_tabs, as evaluating the filter is expensive and is done
+#: only at display time. This is most useful when using sessions
+#: <https://sw.kovidgoyal.net/kitty/sessions/>. An expression of
+#: session:~ or session:^$ will show only tabs that belong to the
+#: current session or no session. The various tab navigation actions
+#: such as goto_tab, next_tab, previous_tab, etc. are automatically
+#: restricted to work only on matching tabs.
+
+# tab_bar_align left
+
+#: The horizontal alignment of the tab bar, can be one of: left,
+#: center, right.
+
+# tab_bar_min_tabs 2
+
+#: The minimum number of tabs that must exist before the tab bar is
+#: shown.
+
+# tab_switch_strategy previous
+
+#: The algorithm to use when switching to a tab when the current tab
+#: is closed. The default of previous will switch to the last used
+#: tab. A value of left will switch to the tab to the left of the
+#: closed tab. A value of right will switch to the tab to the right of
+#: the closed tab. A value of last will switch to the right-most tab.
+
+# tab_fade 0.25 0.5 0.75 1
+
+#: Control how each tab fades into the background when using fade for
+#: the tab_bar_style. Each number is an alpha (between zero and one)
+#: that controls how much the corresponding cell fades into the
+#: background, with zero being no fade and one being full fade. You
+#: can change the number of cells used by adding/removing entries to
+#: this list.
+
+# tab_separator " ┇"
+
+#: The separator between tabs in the tab bar when using separator as
+#: the tab_bar_style.
+
+# tab_powerline_style angled
+
+#: The powerline separator style between tabs in the tab bar when
+#: using powerline as the tab_bar_style, can be one of: angled,
+#: slanted, round.
+
+# tab_activity_symbol none
+
+#: Some text or a Unicode symbol to show on the tab if a window in the
+#: tab that does not have focus has some activity. If you want to use
+#: leading or trailing spaces, surround the text with quotes. See
+#: tab_title_template for how this is rendered.
+
+# tab_title_max_length 0
+
+#: The maximum number of cells that can be used to render the text in
+#: a tab. A value of zero means that no limit is applied.
+
+# tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{tab.last_focused_progress_percent}{title}"
+
+#: A template to render the tab title. The default just renders the
+#: title with optional symbols for bell and activity. If you wish to
+#: include the tab-index as well, use something like: {index}:{title}.
+#: Useful if you have shortcuts mapped for goto_tab N. If you prefer
+#: to see the index as a superscript, use {sup.index}. All data
+#: available is:
+
+#: title
+#: The current tab title.
+#: index
+#: The tab index usable with goto_tab N goto_tab shortcuts.
+#: layout_name
+#: The current layout name.
+#: session_name
+#: The name of the kitty session file from which this tab was created, if any.
+#: active_session_name
+#: The name of the kitty session file from which the active window in this tab was created, if any.
+#: num_windows
+#: The number of windows in the tab.
+#: num_window_groups
+#: The number of window groups (a window group is a window and all of its overlay windows) in the tab.
+#: tab.active_wd
+#: The working directory of the currently active window in the tab
+#: (expensive, requires syscall). Use tab.active_oldest_wd to get
+#: the directory of the oldest foreground process rather than the newest.
+#: tab.active_exe
+#: The name of the executable running in the foreground of the currently
+#: active window in the tab (expensive, requires syscall). Use
+#: tab.active_oldest_exe for the oldest foreground process.
+#: max_title_length
+#: The maximum title length available.
+#: keyboard_mode
+#: The name of the current keyboard mode <https://sw.kovidgoyal.net/kitty/mapping/#modal-mappings> or the empty string if no keyboard mode is active.
+#: tab.last_focused_progress_percent
+#: If a command running in a window reports the progress for a task, show this progress as a percentage
+#: from the most recently focused window in the tab. Empty string if no progress is reported.
+#: tab.progress_percent
+#: If a command running in a window reports the progress for a task, show this progress as a percentage
+#: from all windows in the tab, averaged. Empty string is no progress is reported.
+#: custom
+#: This will call a function named draw_title(data) from the file tab_bar.py placed in
+#: the kitty config directory. The function will be passed a dictionary of data, the same data that
+#: can be used in this template. It can then perform arbitrarily complex processing and return a string.
+#: For example: tab_title_template "{custom}" will use the output of the function as the tab title.
+#: Any print statements in the draw_title() will print to the STDOUT of the kitty process, useful
+#: for debugging.
+
+
+#: Note that formatting is done by Python's string formatting
+#: machinery, so you can use, for instance, {layout_name[:2].upper()}
+#: to show only the first two letters of the layout name, upper-cased.
+#: If you want to style the text, you can use styling directives, for
+#: example:
+#: `{fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}`.
+#: Similarly, for bold and italic:
+#: `{fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}`.
+#: The 256 eight terminal colors can be used as `fmt.fg.color0`
+#: through `fmt.fg.color255`. Note that for backward compatibility, if
+#: {bell_symbol} or {activity_symbol} are not present in the template,
+#: they are prepended to it.
+
+# active_tab_title_template none
+
+#: Template to use for active tabs. If not specified falls back to
+#: tab_title_template.
+
+# active_tab_foreground #000
+# active_tab_background #eee
+# active_tab_font_style bold-italic
+# inactive_tab_foreground #444
+# inactive_tab_background #999
+# inactive_tab_font_style normal
+
+#: Tab bar colors and styles.
+
+# tab_bar_background none
+
+#: Background color for the tab bar. Defaults to using the terminal
+#: background color.
+
+# tab_bar_margin_color none
+
+#: Color for the tab bar margin area. Defaults to using the terminal
+#: background color for margins above and below the tab bar. For side
+#: margins the default color is chosen to match the background color
+#: of the neighboring tab.
+
+#: }}}
+
+#: Color scheme {{{
+
+# foreground #dddddd
+# background #000000
+
+#: The foreground and background colors.
+
+# background_opacity 1.0
+
+#: The opacity of the terminal background color. A number between zero
+#: and one, where one is opaque and zero is fully transparent. This
+#: will only work if supported by the OS (for instance, when using a
+#: compositor under X11). Note that it only sets the background
+#: color's opacity in cells that have the same background color as the
+#: default terminal background, so that things like the status bar in
+#: vim, powerline prompts, etc. still look good. But it means that if
+#: you use a color theme with a background color in your editor, it
+#: will not be rendered as transparent. Instead you should change the
+#: default background color in your kitty config and not use a
+#: background color in the editor color scheme. Or use the escape
+#: codes to set the terminals default colors in a shell script to
+#: launch your editor. See also transparent_background_colors. Be
+#: aware that using a value less than 1.0 is a (possibly significant)
+#: performance hit. When using a low value for this setting, it is
+#: desirable that you set the background color to a color the matches
+#: the general color of the desktop background, for best text
+#: rendering. Note also, that this setting does not apply to the
+#: background_image, if any. The background image can itself have
+#: transparency via its alpha channel if desired, and that will be
+#: respected.
+
+#: If you want to dynamically change transparency of windows, set
+#: dynamic_background_opacity to yes (this is off by default as it has
+#: a performance cost). Changing this option when reloading the config
+#: will only work if dynamic_background_opacity was enabled in the
+#: original config.
+
+# background_blur 0
+
+#: Set to a positive value to enable background blur (blurring of the
+#: visuals behind a transparent window) on platforms that support it.
+#: Only takes effect when background_opacity is less than one. On
+#: macOS, this will also control the blur radius (amount of blurring).
+#: Setting it to too high a value will cause severe performance issues
+#: and/or rendering artifacts. Usually, values up to 64 work well.
+#: Note that this might cause performance issues, depending on how the
+#: platform implements it, so use with care. Currently supported on
+#: macOS and KDE.
+
+# transparent_background_colors
+
+#: A space separated list of upto 7 colors, with opacity. When the
+#: background color of a cell matches one of these colors, it is
+#: rendered semi-transparent using the specified opacity.
+
+#: Useful in more complex UIs like editors where you could want more
+#: than a single background color to be rendered as transparent, for
+#: instance, for a cursor highlight line background or a highlighted
+#: block. Terminal applications can set this color using The kitty
+#: color control <https://sw.kovidgoyal.net/kitty/color-stack/#color-
+#: control> escape code.
+
+#: The syntax for specifying colors is: color@opacity, where the
+#: @opacity part is optional. When unspecified, the value of
+#: background_opacity is used. For example::
+
+#: transparent_background_colors red@0.5 #00ff00@0.3
+
+#: Note that you must also set background_opacity to something less
+#: than 1 for this setting to work properly.
+
+# dynamic_background_opacity no
+
+#: Allow changing of the background_opacity dynamically, using either
+#: keyboard shortcuts (increase_background_opacity and
+#: decrease_background_opacity) or the remote control facility.
+#: Changing this option by reloading the config is not supported.
+
+# background_image none
+
+#: Path to a background image. Must be in PNG/JPEG/WEBP/TIFF/GIF/BMP
+#: format. Note that when using auto_color_scheme
+#: <https://sw.kovidgoyal.net/kitty/kittens/themes/#auto-color-scheme>
+#: this option is overridden by the color scheme file and must be set
+#: inside it to take effect.
+
+# background_image_layout tiled
+
+#: Whether to tile, scale or clamp the background image. The value can
+#: be one of tiled, mirror-tiled, scaled, clamped, centered or
+#: cscaled. The scaled and cscaled values scale the image to the
+#: window size, with cscaled preserving the image aspect ratio. Note
+#: that when using auto_color_scheme
+#: <https://sw.kovidgoyal.net/kitty/kittens/themes/#auto-color-scheme>
+#: this option is overridden by the color scheme file and must be set
+#: inside it to take effect.
+
+# background_image_linear no
+
+#: When background image is scaled, whether linear interpolation
+#: should be used. Note that when using auto_color_scheme
+#: <https://sw.kovidgoyal.net/kitty/kittens/themes/#auto-color-scheme>
+#: this option is overridden by the color scheme file and must be set
+#: inside it to take effect.
+
+# background_tint 0.0
+
+#: How much to tint the background image by the background color. This
+#: option makes it easier to read the text. Tinting is done using the
+#: current background color for each window. This option applies only
+#: if background_image is set. Note that when using auto_color_scheme
+#: <https://sw.kovidgoyal.net/kitty/kittens/themes/#auto-color-scheme>
+#: this option is overridden by the color scheme file and must be set
+#: inside it to take effect.
+
+# background_tint_gaps 1.0
+
+#: How much to tint the background image at the window gaps by the
+#: background color, after applying background_tint. Since this is
+#: multiplicative with background_tint, it can be used to lighten the
+#: tint over the window gaps for a *separated* look. Note that when
+#: using auto_color_scheme
+#: <https://sw.kovidgoyal.net/kitty/kittens/themes/#auto-color-scheme>
+#: this option is overridden by the color scheme file and must be set
+#: inside it to take effect.
+
+# dim_opacity 0.4
+
+#: How much to dim text that has the DIM/FAINT attribute set. One
+#: means no dimming and zero means fully dimmed (i.e. invisible).
+
+# selection_foreground #000000
+# selection_background #fffacd
+
+#: The foreground and background colors for text selected with the
+#: mouse. Setting both of these to none will cause a "reverse video"
+#: effect for selections, where the selection will be the cell text
+#: color and the text will become the cell background color. Setting
+#: only selection_foreground to none will cause the foreground color
+#: to be used unchanged. Note that these colors can be overridden by
+#: the program running in the terminal.
+
+#: The color table {{{
+
+#: The 256 terminal colors. There are 8 basic colors, each color has a
+#: dull and bright version, for the first 16 colors. You can set the
+#: remaining 240 colors as color16 to color255.
+
+# color0 #000000
+# color8 #767676
+
+#: black
+
+# color1 #cc0403
+# color9 #f2201f
+
+#: red
+
+# color2 #19cb00
+# color10 #23fd00
+
+#: green
+
+# color3 #cecb00
+# color11 #fffd00
+
+#: yellow
+
+# color4 #0d73cc
+# color12 #1a8fff
+
+#: blue
+
+# color5 #cb1ed1
+# color13 #fd28ff
+
+#: magenta
+
+# color6 #0dcdcd
+# color14 #14ffff
+
+#: cyan
+
+# color7 #dddddd
+# color15 #ffffff
+
+#: white
+
+# mark1_foreground black
+
+#: Color for marks of type 1
+
+# mark1_background #98d3cb
+
+#: Color for marks of type 1 (light steel blue)
+
+# mark2_foreground black
+
+#: Color for marks of type 2
+
+# mark2_background #f2dcd3
+
+#: Color for marks of type 1 (beige)
+
+# mark3_foreground black
+
+#: Color for marks of type 3
+
+# mark3_background #f274bc
+
+#: Color for marks of type 3 (violet)
+
+#: }}}
+
+#: }}}
+
+#: Advanced {{{
+
+# shell .
+
+#: The shell program to execute. The default value of . means to use
+#: the value of of the SHELL environment variable or if unset,
+#: whatever shell is set as the default shell for the current user.
+#: Note that on macOS if you change this, you might need to add
+#: --login and --interactive to ensure that the shell starts in
+#: interactive mode and reads its startup rc files. Environment
+#: variables are expanded in this setting.
+
+# editor .
+
+#: The terminal based text editor (such as vim or nano) to use when
+#: editing the kitty config file or similar tasks.
+
+#: The default value of . means to use the environment variables
+#: VISUAL and EDITOR in that order. If these variables aren't set,
+#: kitty will run your shell ($SHELL -l -i -c env) to see if your
+#: shell startup rc files set VISUAL or EDITOR. If that doesn't work,
+#: kitty will cycle through various known editors (vim, emacs, etc.)
+#: and take the first one that exists on your system.
+
+# close_on_child_death no
+
+#: Close the window when the child process (usually the shell) exits.
+#: With the default value no, the terminal will remain open when the
+#: child exits as long as there are still other processes outputting
+#: to the terminal (for example disowned or backgrounded processes).
+#: When enabled with yes, the window will close as soon as the child
+#: process exits. Note that setting it to yes means that any
+#: background processes still using the terminal can fail silently
+#: because their stdout/stderr/stdin no longer work.
+
+# remote_control_password
+
+#: Allow other programs to control kitty using passwords. This option
+#: can be specified multiple times to add multiple passwords. If no
+#: passwords are present kitty will ask the user for permission if a
+#: program tries to use remote control with a password. A password can
+#: also *optionally* be associated with a set of allowed remote
+#: control actions. For example::
+
+#: remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab
+
+#: Only the specified actions will be allowed when using this
+#: password. Glob patterns can be used too, for example::
+
+#: remote_control_password "my passphrase" set-tab-* resize-*
+
+#: To get a list of available actions, run::
+
+#: kitten @ --help
+
+#: A set of actions to be allowed when no password is sent can be
+#: specified by using an empty password. For example::
+
+#: remote_control_password "" *-colors
+
+#: Finally, the path to a python module can be specified that provides
+#: a function is_cmd_allowed that is used to check every remote
+#: control command. For example::
+
+#: remote_control_password "my passphrase" my_rc_command_checker.py
+
+#: Relative paths are resolved from the kitty configuration directory.
+#: See rc_custom_auth <https://sw.kovidgoyal.net/kitty/remote-
+#: control/#rc-custom-auth> for details.
+
+# allow_remote_control no
+
+#: Allow other programs to control kitty. If you turn this on, other
+#: programs can control all aspects of kitty, including sending text
+#: to kitty windows, opening new windows, closing windows, reading the
+#: content of windows, etc. Note that this even works over SSH
+#: connections. The default setting of no prevents any form of remote
+#: control. The meaning of the various values are:
+
+#: password
+#: Remote control requests received over both the TTY device and the socket
+#: are confirmed based on passwords, see remote_control_password.
+
+#: socket-only
+#: Remote control requests received over a socket are accepted
+#: unconditionally. Requests received over the TTY are denied.
+#: See listen_on.
+
+#: socket
+#: Remote control requests received over a socket are accepted
+#: unconditionally. Requests received over the TTY are confirmed based on
+#: password.
+
+#: no
+#: Remote control is completely disabled.
+
+#: yes
+#: Remote control requests are always accepted.
+
+# listen_on none
+
+#: Listen to the specified socket for remote control connections. Note
+#: that this will apply to all kitty instances. It can be overridden
+#: by the kitty --listen-on command line option. For UNIX sockets,
+#: such as unix:${TEMP}/mykitty or unix:@mykitty (on Linux).
+#: Environment variables are expanded and relative paths are resolved
+#: with respect to the temporary directory. If {kitty_pid} is present,
+#: then it is replaced by the PID of the kitty process, otherwise the
+#: PID of the kitty process is appended to the value, with a hyphen.
+#: For TCP sockets such as tcp:localhost:0 a random port is always
+#: used even if a non-zero port number is specified. See the help for
+#: kitty --listen-on for more details. Note that this will be ignored
+#: unless allow_remote_control is set to either: yes, socket or
+#: socket-only. Changing this option by reloading the config is not
+#: supported.
+
+# env
+
+#: Specify the environment variables to be set in all child processes.
+#: Using the name with an equal sign (e.g. env VAR=) will set it to
+#: the empty string. Specifying only the name (e.g. env VAR) will
+#: remove the variable from the child process' environment. Note that
+#: environment variables are expanded recursively, for example::
+
+#: env VAR1=a
+#: env VAR2=${HOME}/${VAR1}/b
+
+#: The value of VAR2 will be <path to home directory>/a/b.
+
+#: Use the special value read_from_shell to have kitty read the
+#: specified variables from your login shell shell configuration.
+#: Useful if your shell startup files setup a bunch of environment
+#: variables that you want available to kitty and in kitty session
+#: files. Each variable name is treated as a glob pattern to match.
+#: For example: env read_from_shell=PATH LANG LC_* XDG_* EDITOR
+#: VISUAL. Note that these variables are only read after the
+#: configuration is fully processed, thus they are not available for
+#: recursive expansion and they will override any variables set by
+#: other env directives.
+
+# filter_notification
+
+#: Specify rules to filter out notifications sent by applications
+#: running in kitty. Can be specified multiple times to create
+#: multiple filter rules. A rule specification is of the form
+#: field:regexp. A filter rule can match on any of the fields: title,
+#: body, app, type. The special value of all filters out all
+#: notifications. Rules can be combined using Boolean operators. Some
+#: examples::
+
+#: filter_notification title:hello or body:"abc.*def"
+#: # filter out notification from vim except for ones about updates, (?i)
+#: # makes matching case insensitive.
+#: filter_notification app:"[ng]?vim" and not body:"(?i)update"
+#: # filter out all notifications
+#: filter_notification all
+
+#: The field app is the name of the application sending the
+#: notification and type is the type of the notification. Not all
+#: applications will send these fields, so you can also match on the
+#: title and body of the notification text. More sophisticated
+#: programmatic filtering and custom actions on notifications can be
+#: done by creating a notifications.py file in the kitty config
+#: directory (~/.config/kitty). An annotated sample is available
+#: <https://github.com/kovidgoyal/kitty/blob/master/docs/notifications.py>.
+
+# watcher
+
+#: Path to python file which will be loaded for watchers
+#: <https://sw.kovidgoyal.net/kitty/launch/#watchers>. Can be
+#: specified more than once to load multiple watchers. The watchers
+#: will be added to every kitty window. Relative paths are resolved
+#: relative to the kitty config directory. Note that reloading the
+#: config will only affect windows created after the reload.
+
+# exe_search_path
+
+#: Control where kitty finds the programs to run. The default search
+#: order is: First search the system wide PATH, then ~/.local/bin and
+#: ~/bin. If still not found, the PATH defined in the login shell
+#: after sourcing all its startup files is tried. Finally, if present,
+#: the PATH specified by the env option is tried.
+
+#: This option allows you to prepend, append, or remove paths from
+#: this search order. It can be specified multiple times for multiple
+#: paths. A simple path will be prepended to the search order. A path
+#: that starts with the + sign will be append to the search order,
+#: after ~/bin above. A path that starts with the - sign will be
+#: removed from the entire search order. For example::
+
+#: exe_search_path /some/prepended/path
+#: exe_search_path +/some/appended/path
+#: exe_search_path -/some/excluded/path
+
+# update_check_interval 24
+
+#: The interval to periodically check if an update to kitty is
+#: available (in hours). If an update is found, a system notification
+#: is displayed informing you of the available update. The default is
+#: to check every 24 hours, set to zero to disable. Update checking is
+#: only done by the official binary builds. Distro packages or source
+#: builds do not do update checking. Changing this option by reloading
+#: the config is not supported.
+
+# startup_session none
+
+#: Path to a session file to use for all kitty instances. Can be
+#: overridden by using the kitty --session =none command line option
+#: for individual instances. See sessions
+#: <https://sw.kovidgoyal.net/kitty/sessions/> in the kitty
+#: documentation for details. Note that relative paths are interpreted
+#: with respect to the kitty config directory. Environment variables
+#: in the path are expanded. Changing this option by reloading the
+#: config is not supported. Note that if kitty is invoked with command
+#: line arguments specifying a command to run, this option is ignored.
+
+# clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask
+
+#: Allow programs running in kitty to read and write from the
+#: clipboard. You can control exactly which actions are allowed. The
+#: possible actions are: write-clipboard, read-clipboard, write-
+#: primary, read-primary, read-clipboard-ask, read-primary-ask. The
+#: default is to allow writing to the clipboard and primary selection
+#: and to ask for permission when a program tries to read from the
+#: clipboard. Note that disabling the read confirmation is a security
+#: risk as it means that any program, even the ones running on a
+#: remote server via SSH can read your clipboard. See also
+#: clipboard_max_size.
+
+# clipboard_max_size 512
+
+#: The maximum size (in MB) of data from programs running in kitty
+#: that will be stored for writing to the system clipboard. A value of
+#: zero means no size limit is applied. See also clipboard_control.
+
+# file_transfer_confirmation_bypass
+
+#: The password that can be supplied to the file transfer kitten
+#: <https://sw.kovidgoyal.net/kitty/kittens/transfer/> to skip the
+#: transfer confirmation prompt. This should only be used when
+#: initiating transfers from trusted computers, over trusted networks
+#: or encrypted transports, as it allows any programs running on the
+#: remote machine to read/write to the local filesystem, without
+#: permission.
+
+# allow_hyperlinks yes
+
+#: Process hyperlink escape sequences (OSC 8). If disabled OSC 8
+#: escape sequences are ignored. Otherwise they become clickable
+#: links, that you can click with the mouse or by using the hints
+#: kitten <https://sw.kovidgoyal.net/kitty/kittens/hints/>. The
+#: special value of ask means that kitty will ask before opening the
+#: link when clicked.
+
+# shell_integration enabled
+
+#: Enable shell integration on supported shells. This enables features
+#: such as jumping to previous prompts, browsing the output of the
+#: previous command in a pager, etc. on supported shells. Set to
+#: disabled to turn off shell integration, completely. It is also
+#: possible to disable individual features, set to a space separated
+#: list of these values: no-rc, no-cursor, no-title, no-cwd, no-
+#: prompt-mark, no-complete, no-sudo. See Shell integration
+#: <https://sw.kovidgoyal.net/kitty/shell-integration/> for details.
+
+# allow_cloning ask
+
+#: Control whether programs running in the terminal can request new
+#: windows to be created. The canonical example is clone-in-kitty
+#: <https://sw.kovidgoyal.net/kitty/shell-integration/#clone-shell>.
+#: By default, kitty will ask for permission for each clone request.
+#: Allowing cloning unconditionally gives programs running in the
+#: terminal (including over SSH) permission to execute arbitrary code,
+#: as the user who is running the terminal, on the computer that the
+#: terminal is running on.
+
+# clone_source_strategies venv,conda,env_var,path
+
+#: Control what shell code is sourced when running clone-in-kitty in
+#: the newly cloned window. The supported strategies are:
+
+#: venv
+#: Source the file $VIRTUAL_ENV/bin/activate. This is used by the
+#: Python stdlib venv module and allows cloning venvs automatically.
+#: conda
+#: Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual
+#: environments created by conda.
+#: env_var
+#: Execute the contents of the environment variable
+#: KITTY_CLONE_SOURCE_CODE with eval.
+#: path
+#: Source the file pointed to by the environment variable
+#: KITTY_CLONE_SOURCE_PATH.
+
+#: This option must be a comma separated list of the above values.
+#: Only the first valid match, in the order specified, is sourced.
+
+# notify_on_cmd_finish never
+
+#: Show a desktop notification when a long-running command finishes
+#: (needs shell_integration). The possible values are:
+
+#: never
+#: Never send a notification.
+
+#: unfocused
+#: Only send a notification when the window does not have keyboard focus.
+
+#: invisible
+#: Only send a notification when the window both is unfocused and not visible
+#: to the user, for example, because it is in an inactive tab or its OS window
+#: is not currently visible (on platforms that support OS window visibility querying
+#: this considers an OS Window visible iff it is active).
+
+#: always
+#: Always send a notification, regardless of window state.
+
+#: There are two optional arguments:
+
+#: First, the minimum duration for what is considered a long running
+#: command. The default is 5 seconds. Specify a second argument to set
+#: the duration. For example: invisible 15. Do not set the value too
+#: small, otherwise a command that launches a new OS Window and exits
+#: will spam a notification.
+
+#: Second, the action to perform. The default is notify. The possible
+#: values are:
+
+#: notify
+#: Send a desktop notification. The subsequent arguments are optional and specify when
+#: the notification is automatically cleared. The set of possible events when the notification is
+#: cleared are: focus and next. focus means that when the notification
+#: policy is unfocused or invisible the notification is automatically cleared
+#: when the window regains focus. The value of next means that the previous notification
+#: is cleared when the next notification is shown. The default when no arguments are specified
+#: is: focus next.
+
+#: bell
+#: Ring the terminal bell.
+
+#: notify-bell
+#: Send a desktop notification and ring the terminal bell.
+#: The arguments are the same as for `notify`.
+
+#: command
+#: Run a custom command. All subsequent arguments are the cmdline to run.
+
+#: Some more examples::
+
+#: # Send a notification when a command takes more than 5 seconds in an unfocused window
+#: notify_on_cmd_finish unfocused
+#: # Send a notification when a command takes more than 10 seconds in a invisible window
+#: notify_on_cmd_finish invisible 10.0
+#: # Ring a bell when a command takes more than 10 seconds in a invisible window
+#: notify_on_cmd_finish invisible 10.0 bell
+#: # Run 'notify-send' when a command takes more than 10 seconds in a invisible window
+#: # Here %c is replaced by the current command line and %s by the job exit code
+#: notify_on_cmd_finish invisible 10.0 command notify-send "job finished with status: %s" %c
+#: # Do not clear previous notification when next command finishes or window regains focus
+#: notify_on_cmd_finish invisible 5.0 notify
+
+# term xterm-kitty
+
+#: The value of the TERM environment variable to set. Changing this
+#: can break many terminal programs, only change it if you know what
+#: you are doing, not because you read some advice on "Stack Overflow"
+#: to change it. The TERM variable is used by various programs to get
+#: information about the capabilities and behavior of the terminal. If
+#: you change it, depending on what programs you run, and how
+#: different the terminal you are changing it to is, various things
+#: from key-presses, to colors, to various advanced features may not
+#: work. Changing this option by reloading the config will only affect
+#: newly created windows.
+
+# terminfo_type path
+
+#: The value of the TERMINFO environment variable to set. This
+#: variable is used by programs running in the terminal to search for
+#: terminfo databases. The default value of path causes kitty to set
+#: it to a filesystem location containing the kitty terminfo database.
+#: A value of direct means put the entire database into the env var
+#: directly. This can be useful when connecting to containers, for
+#: example. But, note that not all software supports this. A value of
+#: none means do not touch the variable.
+
+# forward_stdio no
+
+#: Forward STDOUT and STDERR of the kitty process to child processes.
+#: This is useful for debugging as it allows child processes to print
+#: to kitty's STDOUT directly. For example, echo hello world
+#: >&$KITTY_STDIO_FORWARDED in a shell will print to the parent
+#: kitty's STDOUT. Sets the KITTY_STDIO_FORWARDED=fdnum environment
+#: variable so child processes know about the forwarding. Note that on
+#: macOS this prevents the shell from being run via the login utility
+#: so getlogin() will not work in programs run in this session.
+
+# menu_map
+
+#: Specify entries for various menus in kitty. Currently only the
+#: global menubar on macOS is supported. For example::
+
+#: menu_map global "Actions::Launch something special" launch --hold --type=os-window sh -c "echo hello world"
+
+#: This will create a menu entry named "Launch something special" in
+#: an "Actions" menu in the macOS global menubar. Sub-menus can be
+#: created by adding more levels separated by the :: characters.
+
+#: }}}
+
+#: OS specific tweaks {{{
+
+# wayland_titlebar_color system
+
+#: The color of the kitty window's titlebar on Wayland systems with
+#: client side window decorations such as GNOME. A value of system
+#: means to use the default system colors, a value of background means
+#: to use the background color of the currently active kitty window
+#: and finally you can use an arbitrary color, such as #12af59 or red.
+
+# macos_titlebar_color system
+
+#: The color of the kitty window's titlebar on macOS. A value of
+#: system means to use the default system color, light or dark can
+#: also be used to set it explicitly. A value of background means to
+#: use the background color of the currently active window and finally
+#: you can use an arbitrary color, such as #12af59 or red.
+
+# macos_option_as_alt no
+
+#: Use the Option key as an Alt key on macOS. With this set to no,
+#: kitty will use the macOS native Option+Key to enter Unicode
+#: character behavior. This will break any Alt+Key keyboard shortcuts
+#: in your terminal programs, but you can use the macOS Unicode input
+#: technique. You can use the values: left, right or both to use only
+#: the left, right or both Option keys as Alt, instead. Note that
+#: kitty itself always treats Option the same as Alt. This means you
+#: cannot use this option to configure different kitty shortcuts for
+#: Option+Key vs. Alt+Key. Also, any kitty shortcuts using
+#: Option/Alt+Key will take priority, so that any such key presses
+#: will not be passed to terminal programs running inside kitty.
+#: Changing this option by reloading the config is not supported.
+
+# macos_hide_from_tasks no
+
+#: Hide the kitty window from running tasks on macOS (⌘+Tab and the
+#: Dock). Changing this option by reloading the config is not
+#: supported.
+
+# macos_quit_when_last_window_closed no
+
+#: Have kitty quit when all the top-level windows are closed on macOS.
+#: By default, kitty will stay running, even with no open windows, as
+#: is the expected behavior on macOS.
+
+# macos_window_resizable yes
+
+#: Disable this if you want kitty top-level OS windows to not be
+#: resizable on macOS.
+
+# macos_thicken_font 0
+
+#: Draw an extra border around the font with the given width, to
+#: increase legibility at small font sizes on macOS. For example, a
+#: value of 0.75 will result in rendering that looks similar to sub-
+#: pixel antialiasing at common font sizes. Note that in modern kitty,
+#: this option is obsolete (although still supported). Consider using
+#: text_composition_strategy instead.
+
+# macos_traditional_fullscreen no
+
+#: Use the macOS traditional full-screen transition, that is faster,
+#: but less pretty.
+
+# macos_show_window_title_in all
+
+#: Control where the window title is displayed on macOS. A value of
+#: window will show the title of the currently active window at the
+#: top of the macOS window. A value of menubar will show the title of
+#: the currently active window in the macOS global menu bar, making
+#: use of otherwise wasted space. A value of all will show the title
+#: in both places, and none hides the title. See
+#: macos_menubar_title_max_length for how to control the length of the
+#: title in the menu bar.
+
+# macos_menubar_title_max_length 0
+
+#: The maximum number of characters from the window title to show in
+#: the macOS global menu bar. Values less than one means that there is
+#: no maximum limit.
+
+# macos_custom_beam_cursor no
+
+#: Use a custom mouse cursor for macOS that is easier to see on both
+#: light and dark backgrounds. Nowadays, the default macOS cursor
+#: already comes with a white border. WARNING: this might make your
+#: mouse cursor invisible on dual GPU machines. Changing this option
+#: by reloading the config is not supported.
+
+# macos_colorspace srgb
+
+#: The colorspace in which to interpret terminal colors. The default
+#: of srgb will cause colors to match those seen in web browsers. The
+#: value of default will use whatever the native colorspace of the
+#: display is. The value of displayp3 will use Apple's special
+#: snowflake display P3 color space, which will result in over
+#: saturated (brighter) colors with some color shift. Reloading
+#: configuration will change this value only for newly created OS
+#: windows.
+
+# linux_display_server auto
+
+#: Choose between Wayland and X11 backends. By default, an appropriate
+#: backend based on the system state is chosen automatically. Set it
+#: to x11 or wayland to force the choice. Changing this option by
+#: reloading the config is not supported.
+
+# wayland_enable_ime yes
+
+#: Enable Input Method Extension on Wayland. This is typically used
+#: for inputting text in East Asian languages. However, its
+#: implementation in Wayland is often buggy and introduces latency
+#: into the input loop, so disable this if you know you dont need it.
+#: Changing this option by reloading the config is not supported, it
+#: will not have any effect.
+
+#: }}}
+
+#: Keyboard shortcuts {{{
+
+#: Keys are identified simply by their lowercase Unicode characters.
+#: For example: a for the A key, [ for the left square bracket key,
+#: etc. For functional keys, such as Enter or Escape, the names are
+#: present at Functional key definitions
+#: <https://sw.kovidgoyal.net/kitty/keyboard-protocol/#functional>.
+#: For modifier keys, the names are ctrl (control, ⌃), shift (⇧), alt
+#: (opt, option, ⌥), super (cmd, command, ⌘).
+
+#: Simple shortcut mapping is done with the map directive. For full
+#: details on advanced mapping including modal and per application
+#: maps, see mapping <https://sw.kovidgoyal.net/kitty/mapping/>. Some
+#: quick examples to illustrate common tasks::
+
+#: # unmap a keyboard shortcut, passing it to the program running in kitty
+#: map kitty_mod+space
+#: # completely ignore a keyboard event
+#: map ctrl+alt+f1 discard_event
+#: # combine multiple actions
+#: map kitty_mod+e combine : new_window : next_layout
+#: # multi-key shortcuts
+#: map ctrl+x>ctrl+y>z action
+
+#: The full list of actions that can be mapped to key presses is
+#: available here <https://sw.kovidgoyal.net/kitty/actions/>.
+
+# kitty_mod ctrl+shift
+
+#: Special modifier key alias for default shortcuts. You can change
+#: the value of this option to alter all default shortcuts that use
+#: kitty_mod.
+
+# clear_all_shortcuts no
+
+#: Remove all shortcut definitions up to this point. Useful, for
+#: instance, to remove the default shortcuts.
+
+# action_alias
+
+#: E.g. action_alias launch_tab launch --type=tab --cwd=current
+
+#: Define action aliases to avoid repeating the same options in
+#: multiple mappings. Aliases can be defined for any action and will
+#: be expanded recursively. For example, the above alias allows you to
+#: create mappings to launch a new tab in the current working
+#: directory without duplication::
+
+#: map f1 launch_tab vim
+#: map f2 launch_tab emacs
+
+#: Similarly, to alias kitten invocation::
+
+#: action_alias hints kitten hints --hints-offset=0
+
+# kitten_alias
+
+#: E.g. kitten_alias hints hints --hints-offset=0
+
+#: Like action_alias above, but specifically for kittens. Generally,
+#: prefer to use action_alias. This option is a legacy version,
+#: present for backwards compatibility. It causes all invocations of
+#: the aliased kitten to be substituted. So the example above will
+#: cause all invocations of the hints kitten to have the --hints-
+#: offset=0 option applied.
+
+#: Clipboard {{{
+
+#: Copy to clipboard
+
+# map kitty_mod+c copy_to_clipboard
+
+#:: There is also a copy_or_interrupt action that can be optionally
+#:: mapped to Ctrl+C. It will copy only if there is a selection and
+#:: send an interrupt otherwise. Similarly,
+#:: copy_and_clear_or_interrupt will copy and clear the selection or
+#:: send an interrupt if there is no selection. The copy_or_noop
+#:: action will copy if there is a selection and pass the key through
+#:: to the application running in the terminal if there is no
+#:: selection.
+
+#: Copy to clipboard or pass through
+
+# map cmd+c copy_or_noop
+
+#: Paste from clipboard
+
+# map kitty_mod+v paste_from_clipboard
+# map cmd+v paste_from_clipboard
+
+#: Paste from selection
+
+# map kitty_mod+s paste_from_selection
+# map shift+insert paste_from_selection
+
+#: Pass selection to program
+
+# map kitty_mod+o pass_selection_to_program
+
+#:: You can also pass the contents of the current selection to any
+#:: program with pass_selection_to_program. By default, the system's
+#:: open program is used, but you can specify your own, the selection
+#:: will be passed as a command line argument to the program. For
+#:: example::
+
+#:: map kitty_mod+o pass_selection_to_program firefox
+
+#:: You can pass the current selection to a terminal program running
+#:: in a new kitty window, by using the @selection placeholder::
+
+#:: map kitty_mod+y new_window less @selection
+
+#: }}}
+
+#: Scrolling {{{
+
+#: Scroll line up
+
+# map kitty_mod+up scroll_line_up
+# map kitty_mod+k scroll_line_up
+# map opt+cmd+page_up scroll_line_up
+# map cmd+up scroll_line_up
+
+#: Scroll line down
+
+# map kitty_mod+down scroll_line_down
+# map kitty_mod+j scroll_line_down
+# map opt+cmd+page_down scroll_line_down
+# map cmd+down scroll_line_down
+
+#: Scroll page up
+
+# map kitty_mod+page_up scroll_page_up
+# map cmd+page_up scroll_page_up
+
+#: Scroll page down
+
+# map kitty_mod+page_down scroll_page_down
+# map cmd+page_down scroll_page_down
+
+#: Scroll to top
+
+# map kitty_mod+home scroll_home
+# map cmd+home scroll_home
+
+#: Scroll to bottom
+
+# map kitty_mod+end scroll_end
+# map cmd+end scroll_end
+
+#: Scroll to previous shell prompt
+
+# map kitty_mod+z scroll_to_prompt -1
+
+#:: Use a parameter of 0 for scroll_to_prompt to scroll to the last
+#:: jumped to or the last clicked position. Requires shell
+#:: integration <https://sw.kovidgoyal.net/kitty/shell-integration/>
+#:: to work.
+
+#: Scroll to next shell prompt
+
+# map kitty_mod+x scroll_to_prompt 1
+
+#: Browse scrollback buffer in pager
+
+# map kitty_mod+h show_scrollback
+
+#:: You can pipe the contents of the current screen and history
+#:: buffer as STDIN to an arbitrary program using launch --stdin-
+#:: source. For example, the following opens the scrollback buffer in
+#:: less in an overlay window::
+
+#:: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
+
+#:: For more details on piping screen and buffer contents to external
+#:: programs, see launch <https://sw.kovidgoyal.net/kitty/launch/>.
+
+#: Browse output of the last shell command in pager
+
+# map kitty_mod+g show_last_command_output
+
+#:: You can also define additional shortcuts to get the command
+#:: output. For example, to get the first command output on screen::
+
+#:: map f1 show_first_command_output_on_screen
+
+#:: To get the command output that was last accessed by a keyboard
+#:: action or mouse action::
+
+#:: map f1 show_last_visited_command_output
+
+#:: You can pipe the output of the last command run in the shell
+#:: using the launch action. For example, the following opens the
+#:: output in less in an overlay window::
+
+#:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R
+
+#:: To get the output of the first command on the screen, use
+#:: @first_cmd_output_on_screen. To get the output of the last jumped
+#:: to command, use @last_visited_cmd_output.
+
+#:: Requires shell integration
+#:: <https://sw.kovidgoyal.net/kitty/shell-integration/> to work.
+
+#: Search the scrollback within a pager
+
+# map kitty_mod+/ search_scrollback
+# map cmd+f search_scrollback
+
+#:: Search for currently selected text in the scrollback using the
+#:: configured scrollback_pager. Assumes that pressing the / key
+#:: triggers search mode in the pager. If you want to create a manual
+#:: mapping with a special pager for this, you can use something
+#:: like:
+
+#:: map f1 combine : launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay mypager : send_key /
+
+#:: For more sophisticated control, such as using the current
+#:: selection, use remote_control_script.
+
+#: }}}
+
+#: Window management {{{
+
+#: New window
+
+# map kitty_mod+enter new_window
+# map cmd+enter new_window
+
+#:: You can open a new kitty window running an arbitrary program, for
+#:: example::
+
+#:: map kitty_mod+y launch mutt
+
+#:: You can open a new window with the current working directory set
+#:: to the working directory of the current window using::
+
+#:: map ctrl+alt+enter launch --cwd=current
+
+#:: You can open a new window that is allowed to control kitty via
+#:: the kitty remote control facility with launch --allow-remote-
+#:: control. Any programs running in that window will be allowed to
+#:: control kitty. For example::
+
+#:: map ctrl+enter launch --allow-remote-control some_program
+
+#:: You can open a new window next to the currently active window or
+#:: as the first window, with::
+
+#:: map ctrl+n launch --location=neighbor
+#:: map ctrl+f launch --location=first
+
+#:: For more details, see launch
+#:: <https://sw.kovidgoyal.net/kitty/launch/>.
+
+#: New OS window
+
+# map kitty_mod+n new_os_window
+# map cmd+n new_os_window
+
+#:: Works like new_window above, except that it opens a top-level OS
+#:: window. In particular you can use new_os_window_with_cwd to open
+#:: a window with the current working directory.
+
+#: Close window
+
+# map kitty_mod+w close_window
+# map shift+cmd+d close_window
+
+#: Next window
+
+# map kitty_mod+] next_window
+
+#: Previous window
+
+# map kitty_mod+[ previous_window
+
+#: Move window forward
+
+# map kitty_mod+f move_window_forward
+
+#: Move window backward
+
+# map kitty_mod+b move_window_backward
+
+#: Move window to top
+
+# map kitty_mod+` move_window_to_top
+
+#: Start resizing window
+
+# map kitty_mod+r start_resizing_window
+# map cmd+r start_resizing_window
+
+#: First window
+
+# map kitty_mod+1 first_window
+# map cmd+1 first_window
+
+#: Second window
+
+# map kitty_mod+2 second_window
+# map cmd+2 second_window
+
+#: Third window
+
+# map kitty_mod+3 third_window
+# map cmd+3 third_window
+
+#: Fourth window
+
+# map kitty_mod+4 fourth_window
+# map cmd+4 fourth_window
+
+#: Fifth window
+
+# map kitty_mod+5 fifth_window
+# map cmd+5 fifth_window
+
+#: Sixth window
+
+# map kitty_mod+6 sixth_window
+# map cmd+6 sixth_window
+
+#: Seventh window
+
+# map kitty_mod+7 seventh_window
+# map cmd+7 seventh_window
+
+#: Eighth window
+
+# map kitty_mod+8 eighth_window
+# map cmd+8 eighth_window
+
+#: Ninth window
+
+# map kitty_mod+9 ninth_window
+# map cmd+9 ninth_window
+
+#: Tenth window
+
+# map kitty_mod+0 tenth_window
+
+#: Visually select and focus window
+
+# map kitty_mod+f7 focus_visible_window
+
+#:: Display overlay numbers and alphabets on the window, and switch
+#:: the focus to the window when you press the key. When there are
+#:: only two windows, the focus will be switched directly without
+#:: displaying the overlay. You can change the overlay characters and
+#:: their order with option visual_window_select_characters.
+
+#: Visually swap window with another
+
+# map kitty_mod+f8 swap_with_window
+
+#:: Works like focus_visible_window above, but swaps the window.
+
+#: }}}
+
+#: Tab management {{{
+
+#: Next tab
+
+# map kitty_mod+right next_tab
+# map shift+cmd+] next_tab
+# map ctrl+tab next_tab
+
+#: Previous tab
+
+# map kitty_mod+left previous_tab
+# map shift+cmd+[ previous_tab
+# map ctrl+shift+tab previous_tab
+
+#: New tab
+
+# map kitty_mod+t new_tab
+# map cmd+t new_tab
+
+#: Close tab
+
+# map kitty_mod+q close_tab
+# map cmd+w close_tab
+
+#: Close OS window
+
+# map shift+cmd+w close_os_window
+
+#: Move tab forward
+
+# map kitty_mod+. move_tab_forward
+
+#: Move tab backward
+
+# map kitty_mod+, move_tab_backward
+
+#: Set tab title
+
+# map kitty_mod+alt+t set_tab_title
+# map shift+cmd+i set_tab_title
+
+
+#: You can also create shortcuts to go to specific tabs, with 1 being
+#: the first tab, 2 the second tab and -1 being the previously active
+#: tab, -2 being the tab active before the previously active tab and
+#: so on. Any number larger than the number of tabs goes to the last
+#: tab and any number less than the number of previously used tabs in
+#: the history goes to the oldest previously used tab in the history::
+
+#: map ctrl+alt+1 goto_tab 1
+#: map ctrl+alt+2 goto_tab 2
+
+#: Just as with new_window above, you can also pass the name of
+#: arbitrary commands to run when using new_tab and new_tab_with_cwd.
+#: Finally, if you want the new tab to open next to the current tab
+#: rather than at the end of the tabs list, use::
+
+#: map ctrl+t new_tab !neighbor [optional cmd to run]
+#: }}}
+
+#: Layout management {{{
+
+#: Next layout
+
+# map kitty_mod+l next_layout
+
+
+#: You can also create shortcuts to switch to specific layouts::
+
+#: map ctrl+alt+t goto_layout tall
+#: map ctrl+alt+s goto_layout stack
+
+#: Similarly, to switch back to the previous layout::
+
+#: map ctrl+alt+p last_used_layout
+
+#: There is also a toggle_layout action that switches to the named
+#: layout or back to the previous layout if in the named layout.
+#: Useful to temporarily "zoom" the active window by switching to the
+#: stack layout::
+
+#: map ctrl+alt+z toggle_layout stack
+#: }}}
+
+#: Font sizes {{{
+
+#: You can change the font size for all top-level kitty OS windows at
+#: a time or only the current one.
+
+#: Increase font size
+
+# map kitty_mod+equal change_font_size all +2.0
+# map kitty_mod+plus change_font_size all +2.0
+# map kitty_mod+kp_add change_font_size all +2.0
+# map cmd+plus change_font_size all +2.0
+# map cmd+equal change_font_size all +2.0
+# map shift+cmd+equal change_font_size all +2.0
+
+#: Decrease font size
+
+# map kitty_mod+minus change_font_size all -2.0
+# map kitty_mod+kp_subtract change_font_size all -2.0
+# map cmd+minus change_font_size all -2.0
+# map shift+cmd+minus change_font_size all -2.0
+
+#: Reset font size
+
+# map kitty_mod+backspace change_font_size all 0
+# map cmd+0 change_font_size all 0
+
+
+#: To setup shortcuts for specific font sizes::
+
+#: map kitty_mod+f6 change_font_size all 10.0
+
+#: To setup shortcuts to change only the current OS window's font
+#: size::
+
+#: map kitty_mod+f6 change_font_size current 10.0
+
+#: To setup shortcuts to multiply/divide the font size::
+
+#: map kitty_mod+f6 change_font_size all *2.0
+#: map kitty_mod+f6 change_font_size all /2.0
+#: }}}
+
+#: Select and act on visible text {{{
+
+#: Use the hints kitten to select text and either pass it to an
+#: external program or insert it into the terminal or copy it to the
+#: clipboard.
+
+#: Open URL
+
+# map kitty_mod+e open_url_with_hints
+
+#:: Open a currently visible URL using the keyboard. The program used
+#:: to open the URL is specified in open_url_with.
+
+#: Insert selected path
+
+# map kitty_mod+p>f kitten hints --type path --program -
+
+#:: Select a path/filename and insert it into the terminal. Useful,
+#:: for instance to run git commands on a filename output from a
+#:: previous git command.
+
+#: Open selected path
+
+# map kitty_mod+p>shift+f kitten hints --type path
+
+#:: Select a path/filename and open it with the default open program.
+
+#: Insert chosen file
+
+# map kitty_mod+p>c kitten choose-files
+
+#:: Select a file using the choose-files
+#:: <https://sw.kovidgoyal.net/kitty/kittens/choose-files/> kitten
+#:: and insert it into the terminal.
+
+#: Insert chosen directory
+
+# map kitty_mod+p>d kitten choose-files --mode=dir
+
+#:: Select a directory using the choose-files
+#:: <https://sw.kovidgoyal.net/kitty/kittens/choose-files/> kitten
+#:: and insert it into the terminal.
+
+#: Insert selected line
+
+# map kitty_mod+p>l kitten hints --type line --program -
+
+#:: Select a line of text and insert it into the terminal. Useful for
+#:: the output of things like: `ls -1`.
+
+#: Insert selected word
+
+# map kitty_mod+p>w kitten hints --type word --program -
+
+#:: Select words and insert into terminal.
+
+#: Insert selected hash
+
+# map kitty_mod+p>h kitten hints --type hash --program -
+
+#:: Select something that looks like a hash and insert it into the
+#:: terminal. Useful with git, which uses SHA1 hashes to identify
+#:: commits.
+
+#: Open the selected file at the selected line
+
+# map kitty_mod+p>n kitten hints --type linenum
+
+#:: Select something that looks like filename:linenum and open it in
+#:: your default editor at the specified line number.
+
+#: Open the selected hyperlink
+
+# map kitty_mod+p>y kitten hints --type hyperlink
+
+#:: Select a hyperlink (i.e. a URL that has been marked as such by
+#:: the terminal program, for example, by `ls --hyperlink=auto`).
+
+
+#: The hints kitten has many more modes of operation that you can map
+#: to different shortcuts. For a full description see hints kitten
+#: <https://sw.kovidgoyal.net/kitty/kittens/hints/>.
+#: }}}
+
+#: Miscellaneous {{{
+
+#: Show documentation
+
+# map kitty_mod+f1 show_kitty_doc overview
+
+#: Toggle fullscreen
+
+# map kitty_mod+f11 toggle_fullscreen
+# map ctrl+cmd+f toggle_fullscreen
+
+#: Toggle maximized
+
+# map kitty_mod+f10 toggle_maximized
+
+#: Toggle macOS secure keyboard entry
+
+# map opt+cmd+s toggle_macos_secure_keyboard_entry
+
+#: macOS Cycle through OS Windows
+
+# map cmd+` macos_cycle_through_os_windows
+
+#: macOS Cycle through OS Windows backwards
+
+# map cmd+shift+` macos_cycle_through_os_windows_backwards
+
+#: Unicode input
+
+# map kitty_mod+u kitten unicode_input
+# map ctrl+cmd+space kitten unicode_input
+
+#: Edit config file
+
+# map kitty_mod+f2 edit_config_file
+# map cmd+, edit_config_file
+
+#: Open the kitty command shell
+
+# map kitty_mod+escape kitty_shell window
+
+#:: Open the kitty shell in a new window / tab / overlay / os_window
+#:: to control kitty using commands.
+
+#: Increase background opacity
+
+# map kitty_mod+a>m set_background_opacity +0.1
+
+#: Decrease background opacity
+
+# map kitty_mod+a>l set_background_opacity -0.1
+
+#: Make background fully opaque
+
+# map kitty_mod+a>1 set_background_opacity 1
+
+#: Reset background opacity
+
+# map kitty_mod+a>d set_background_opacity default
+
+#: Reset the terminal
+
+# map kitty_mod+delete clear_terminal reset active
+# map opt+cmd+r clear_terminal reset active
+
+#:: You can create shortcuts to clear/reset the terminal. For
+#:: example::
+
+#:: # Reset the terminal
+#:: map f1 clear_terminal reset active
+#:: # Clear the terminal screen by erasing all contents
+#:: map f1 clear_terminal clear active
+#:: # Clear the terminal scrollback by erasing it
+#:: map f1 clear_terminal scrollback active
+#:: # Scroll the contents of the screen into the scrollback
+#:: map f1 clear_terminal scroll active
+#:: # Clear everything on screen up to the line with the cursor or the start of the current prompt (needs shell integration)
+#:: map f1 clear_terminal to_cursor active
+#:: # Same as above except cleared lines are moved into scrollback
+#:: map f1 clear_terminal to_cursor_scroll active
+#:: # Erase the last command and its output (needs shell integration to work)
+#:: map f1 clear_terminal last_command active
+
+#:: If you want to operate on all kitty windows instead of just the
+#:: current one, use all instead of active.
+
+#:: Some useful functions that can be defined in the shell rc files
+#:: to perform various kinds of clearing of the current window:
+
+#:: .. code-block:: sh
+
+#:: clear-only-screen() {
+#:: printf "\e[H\e[2J"
+#:: }
+
+#:: clear-screen-and-scrollback() {
+#:: printf "\e[H\e[3J"
+#:: }
+
+#:: clear-screen-saving-contents-in-scrollback() {
+#:: printf "\e[H\e[22J"
+#:: }
+
+#:: For instance, using these escape codes, it is possible to remap
+#:: Ctrl+L to both scroll the current screen contents into the
+#:: scrollback buffer and clear the screen, instead of just clearing
+#:: the screen. For ZSH, in ~/.zshrc, add:
+
+#:: .. code-block:: zsh
+
+#:: ctrl_l() {
+#:: builtin print -rn -- $'\r\e[0J\e[H\e[22J' >"$TTY"
+#:: builtin zle .reset-prompt
+#:: builtin zle -R
+#:: }
+#:: zle -N ctrl_l
+#:: bindkey '^l' ctrl_l
+
+#:: Alternatively, you can just add map ctrl+l clear_terminal
+#:: to_cursor_scroll active to kitty.conf which works with no changes
+#:: to the shell rc files, but only clears up to the prompt, it does
+#:: not clear any text at the prompt itself.
+
+#: Clear to start
+
+# map cmd+k clear_terminal to_cursor active
+
+#: Clear scrollback
+
+# map option+cmd+k clear_terminal scrollback active
+
+#: Clear the last command
+
+# map cmd+l clear_terminal last_command active
+
+#: Clear screen
+
+# map cmd+ctrl+l clear_terminal to_cursor_scroll active
+
+#: Reload kitty.conf
+
+# map kitty_mod+f5 load_config_file
+# map ctrl+cmd+, load_config_file
+
+#:: Reload kitty.conf, applying any changes since the last time it
+#:: was loaded. Note that a handful of options cannot be dynamically
+#:: changed and require a full restart of kitty. Particularly, when
+#:: changing shortcuts for actions located on the macOS global menu
+#:: bar, a full restart is needed. You can also map a keybinding to
+#:: load a different config file, for example::
+
+#:: map f5 load_config /path/to/alternative/kitty.conf
+
+#:: Note that all options from the original kitty.conf are discarded,
+#:: in other words the new configuration *replace* the old ones.
+
+#: Debug kitty configuration
+
+# map kitty_mod+f6 debug_config
+# map opt+cmd+, debug_config
+
+#:: Show details about exactly what configuration kitty is running
+#:: with and its host environment. Useful for debugging issues.
+
+#: Send arbitrary text on key presses
+
+#:: E.g. map ctrl+shift+alt+h send_text all Hello World
+
+#:: You can tell kitty to send arbitrary (UTF-8) encoded text to the
+#:: client program when pressing specified shortcut keys. For
+#:: example::
+
+#:: map ctrl+alt+a send_text all Special text
+
+#:: This will send "Special text" when you press the Ctrl+Alt+A key
+#:: combination. The text to be sent decodes ANSI C escapes
+#:: <https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-
+#:: Quoting.html> so you can use escapes like \e to send control
+#:: codes or \u21fb to send Unicode characters (or you can just input
+#:: the Unicode characters directly as UTF-8 text). You can use
+#:: `kitten show-key` to get the key escape codes you want to
+#:: emulate.
+
+#:: The first argument to send_text is the keyboard modes in which to
+#:: activate the shortcut. The possible values are normal,
+#:: application, kitty or a comma separated combination of them. The
+#:: modes normal and application refer to the DECCKM cursor key mode
+#:: for terminals, and kitty refers to the kitty extended keyboard
+#:: protocol. The special value all means all of them.
+
+#:: Some more examples::
+
+#:: # Output a word and move the cursor to the start of the line (like typing and pressing Home)
+#:: map ctrl+alt+a send_text normal Word\e[H
+#:: map ctrl+alt+a send_text application Word\eOH
+#:: # Run a command at a shell prompt (like typing the command and pressing Enter)
+#:: map ctrl+alt+a send_text normal,application some command with arguments\r
+
+#: Open kitty Website
+
+# map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/
+
+#: Hide macOS kitty application
+
+# map cmd+h hide_macos_app
+
+#: Hide macOS other applications
+
+# map opt+cmd+h hide_macos_other_apps
+
+#: Minimize macOS window
+
+# map cmd+m minimize_macos_window
+
+#: Quit kitty
+
+# map cmd+q quit
+
+#: }}}
+
+#: }}}
+
+
+# BEGIN_KITTY_FONTS
+font_family family="JetBrainsMonoNL Nerd Font Mono"
+bold_font auto
+italic_font auto
+bold_italic_font auto
+# END_KITTY_FONTS
diff --git a/config/mako/config b/config/mako/config
new file mode 100644
index 000000000..746e08ce9
--- /dev/null
+++ b/config/mako/config
@@ -0,0 +1,9 @@
+default-timeout=4500
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#b7bdf8
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/config/mimeapps.list b/config/mimeapps.list
new file mode 100644
index 000000000..9dc18fded
--- /dev/null
+++ b/config/mimeapps.list
@@ -0,0 +1,18 @@
+
+[Default Applications]
+x-scheme-handler/viber=viber.desktop
+image/jpeg=feh.desktop
+image/png=feh.desktop
+image/gif=feh.desktop
+image/bmp=feh.desktop
+image/x-xcf=feh.desktop
+text/html=firefox.desktop
+x-scheme-handler/http=firefox.desktop
+x-scheme-handler/https=firefox.desktop
+x-scheme-handler/about=firefox.desktop
+x-scheme-handler/unknown=firefox.desktop
+video/mp4=mpv.desktop
+video/x-matroska=mpv.desktop
+video/avi=mpv.desktop
+video/webm=mpv.desktop
+video/mpeg=mpv.desktop
diff --git a/config/nvim/.gitignore b/config/nvim/.gitignore
new file mode 100644
index 000000000..cc5457ab8
--- /dev/null
+++ b/config/nvim/.gitignore
@@ -0,0 +1,8 @@
+tt.*
+.tests
+doc/tags
+debug
+.repro
+foo.*
+*.log
+data
diff --git a/config/nvim/.neoconf.json b/config/nvim/.neoconf.json
new file mode 100644
index 000000000..7c4808746
--- /dev/null
+++ b/config/nvim/.neoconf.json
@@ -0,0 +1,15 @@
+{
+ "neodev": {
+ "library": {
+ "enabled": true,
+ "plugins": true
+ }
+ },
+ "neoconf": {
+ "plugins": {
+ "lua_ls": {
+ "enabled": true
+ }
+ }
+ }
+}
diff --git a/config/nvim/LICENSE b/config/nvim/LICENSE
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/config/nvim/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/config/nvim/README.md b/config/nvim/README.md
new file mode 100644
index 000000000..185280b01
--- /dev/null
+++ b/config/nvim/README.md
@@ -0,0 +1,4 @@
+# 💤 LazyVim
+
+A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
+Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
diff --git a/config/nvim/init.lua b/config/nvim/init.lua
new file mode 100644
index 000000000..2514f9ed9
--- /dev/null
+++ b/config/nvim/init.lua
@@ -0,0 +1,2 @@
+-- bootstrap lazy.nvim, LazyVim and your plugins
+require("config.lazy")
diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json
new file mode 100644
index 000000000..d10a5c625
--- /dev/null
+++ b/config/nvim/lazy-lock.json
@@ -0,0 +1,54 @@
+{
+ "LazyVim": { "branch": "main", "commit": "83d90f339defdb109a6ede333865a66ffc7ef6aa" },
+ "SchemaStore.nvim": { "branch": "main", "commit": "6d0329adb9c8cbe51b9a28299890a5eb104db7dc" },
+ "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
+ "catppuccin": { "branch": "main", "commit": "16408d203973da7e43fab87c6f9d3bf7fa98fa8b" },
+ "checkmate.nvim": { "branch": "main", "commit": "fc8edd6ecf8e4095ef878780e4bed83cc5c56c14" },
+ "cmake-tools.nvim": { "branch": "master", "commit": "e100f40b117381dadf42a34b0718f8e4350715b2" },
+ "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
+ "cmp-git": { "branch": "main", "commit": "b24309c386c9666c549a1abaedd4956541676d06" },
+ "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
+ "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
+ "conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" },
+ "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
+ "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
+ "fzf-lua": { "branch": "main", "commit": "fea9eedc6894c44d44cbb772a5cd11c93b82d7a1" },
+ "gitsigns.nvim": { "branch": "main", "commit": "dd3f588bacbeb041be6facf1742e42097f62165d" },
+ "grug-far.nvim": { "branch": "main", "commit": "5506c2f59dc9ab2ed6c233585412b24d31d51521" },
+ "inc-rename.nvim": { "branch": "main", "commit": "0074b551a17338ccdcd299bd86687cc651bcb33d" },
+ "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
+ "lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" },
+ "lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" },
+ "mason-lspconfig.nvim": { "branch": "main", "commit": "25f609e7fca78af7cede4f9fa3af8a94b1c4950b" },
+ "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
+ "mini.ai": { "branch": "main", "commit": "43eb2074843950a3a25aae56a5f41362ec043bfa" },
+ "mini.hipatterns": { "branch": "main", "commit": "a3ffba45e4119917b254c372df82e79f7d8c4aad" },
+ "mini.icons": { "branch": "main", "commit": "7fdae2443a0e2910015ca39ad74b50524ee682d3" },
+ "mini.nvim": { "branch": "main", "commit": "402ee6c6ec8ea44b22330446c8fb4e615fd3953e" },
+ "mini.pairs": { "branch": "main", "commit": "42387c7fe68fc0b6e95eaf37f1bb76e7bffaa0d9" },
+ "mini.surround": { "branch": "main", "commit": "2715e04bea3ec9244f15b421dc5b18c0fe326210" },
+ "neo-tree.nvim": { "branch": "main", "commit": "b48ed11632c8208ffb27dab6acfbf16e4f9e3376" },
+ "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
+ "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
+ "nvim-cmp": { "branch": "main", "commit": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca" },
+ "nvim-lint": { "branch": "master", "commit": "4b03656c09c1561f89b6aa0665c15d292ba9499d" },
+ "nvim-lspconfig": { "branch": "master", "commit": "ffd2b00f8dd0ee07bd1252ef3857e28ea3272d56" },
+ "nvim-snippets": { "branch": "main", "commit": "56b4052f71220144689caaa2e5b66222ba5661eb" },
+ "nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
+ "nvim-treesitter-textobjects": { "branch": "main", "commit": "93d60a475f0b08a8eceb99255863977d3a25f310" },
+ "nvim-ts-autotag": { "branch": "main", "commit": "8e1c0a389f20bf7f5b0dd0e00306c1247bda2595" },
+ "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
+ "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
+ "render-markdown.nvim": { "branch": "main", "commit": "687de727de91a63b0bff9cff4e71d73f9d40fa77" },
+ "snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" },
+ "tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "3d3cd95e4a4135c250faf83dd5ed61b8e5502b86" },
+ "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
+ "tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" },
+ "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
+ "ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" },
+ "venv-selector.nvim": { "branch": "main", "commit": "bcb2f58533c59b01565285eba49693f00bc460f5" },
+ "vim-dadbod": { "branch": "master", "commit": "6d1d41da4873a445c5605f2005ad2c68c99d8770" },
+ "vim-dadbod-completion": { "branch": "master", "commit": "a8dac0b3cf6132c80dc9b18bef36d4cf7a9e1fe6" },
+ "vim-dadbod-ui": { "branch": "master", "commit": "07e92e22114cc5b1ba4938d99897d85b58e20475" },
+ "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
+}
diff --git a/config/nvim/lazyvim.json b/config/nvim/lazyvim.json
new file mode 100644
index 000000000..144c4f9d5
--- /dev/null
+++ b/config/nvim/lazyvim.json
@@ -0,0 +1,29 @@
+{
+ "extras": [
+ "lazyvim.plugins.extras.coding.mini-surround",
+ "lazyvim.plugins.extras.coding.nvim-cmp",
+ "lazyvim.plugins.extras.editor.fzf",
+ "lazyvim.plugins.extras.editor.inc-rename",
+ "lazyvim.plugins.extras.editor.neo-tree",
+ "lazyvim.plugins.extras.editor.telescope",
+ "lazyvim.plugins.extras.formatting.black",
+ "lazyvim.plugins.extras.formatting.prettier",
+ "lazyvim.plugins.extras.lang.cmake",
+ "lazyvim.plugins.extras.lang.docker",
+ "lazyvim.plugins.extras.lang.git",
+ "lazyvim.plugins.extras.lang.json",
+ "lazyvim.plugins.extras.lang.python",
+ "lazyvim.plugins.extras.lang.sql",
+ "lazyvim.plugins.extras.lang.tailwind",
+ "lazyvim.plugins.extras.lang.toml",
+ "lazyvim.plugins.extras.lang.typescript",
+ "lazyvim.plugins.extras.lang.yaml",
+ "lazyvim.plugins.extras.util.dot",
+ "lazyvim.plugins.extras.util.mini-hipatterns"
+ ],
+ "install_version": 8,
+ "news": {
+ "NEWS.md": "11866"
+ },
+ "version": 8
+} \ No newline at end of file
diff --git a/config/nvim/lua/config/autocmds.lua b/config/nvim/lua/config/autocmds.lua
new file mode 100644
index 000000000..4221e7586
--- /dev/null
+++ b/config/nvim/lua/config/autocmds.lua
@@ -0,0 +1,8 @@
+-- Autocmds are automatically loaded on the VeryLazy event
+-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
+--
+-- Add any additional autocmds here
+-- with `vim.api.nvim_create_autocmd`
+--
+-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
+-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
diff --git a/config/nvim/lua/config/keymaps.lua b/config/nvim/lua/config/keymaps.lua
new file mode 100644
index 000000000..7bd83b378
--- /dev/null
+++ b/config/nvim/lua/config/keymaps.lua
@@ -0,0 +1,34 @@
+vim.keymap.set("n", "<leader>c", function()
+ local line = vim.api.nvim_get_current_line()
+
+ if line:match("%[ %]") then
+ line = line:gsub("%[ %]", "[x]", 1)
+ elseif line:match("%[x%]") then
+ line = line:gsub("%[x%]", "[ ]", 1)
+ elseif line:match("^%s*%- ") then
+ line = line:gsub("^%s*%- ", "- [ ] ", 1)
+ else
+ return
+ end
+
+ vim.api.nvim_set_current_line(line)
+end, { desc = "Toggle markdown checkbox" })
+
+vim.keymap.set("n", "<leader>a", function()
+ local line = vim.api.nvim_get_current_line()
+
+ if line:match("^%s*%- %[[ x]%]") then
+ line = line:gsub("^%s*%- %[[ x]%]%s*", "", 1)
+ else
+ line = "- [ ] " .. line
+ end
+
+ vim.api.nvim_set_current_line(line)
+end, { desc = "Add / Remove markdown checkbox" })
+
+vim.keymap.set("t", "<C-\\>", "<C-\\><C-n>", { silent = true, desc = "Exit terminal mode" })
+vim.keymap.set("t", "<C-q>", "<C-\\><C-n>", { silent = true, desc = "Exit terminal mode" })
+
+vim.keymap.set("n", "<leader>d", '"_dd', { desc = "Delete line (no register)" })
+vim.keymap.set("n", "<leader>x", '"_x', { desc = "Delete char (no register)" })
+vim.keymap.set("i", "<Esc>", "<Esc>`^", { noremap = true, silent = true })
diff --git a/config/nvim/lua/config/lazy.lua b/config/nvim/lua/config/lazy.lua
new file mode 100644
index 000000000..285d95d28
--- /dev/null
+++ b/config/nvim/lua/config/lazy.lua
@@ -0,0 +1,52 @@
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not (vim.uv or vim.loop).fs_stat(lazypath) then
+ local lazyrepo = "https://github.com/folke/lazy.nvim.git"
+ local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
+ if vim.v.shell_error ~= 0 then
+ vim.api.nvim_echo({
+ { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
+ { out, "WarningMsg" },
+ { "\nPress any key to exit..." },
+ }, true, {})
+ vim.fn.getchar()
+ os.exit(1)
+ end
+end
+vim.opt.rtp:prepend(lazypath)
+
+require("lazy").setup({
+ spec = {
+ -- add LazyVim and import its plugins
+ { "LazyVim/LazyVim", import = "lazyvim.plugins" },
+ -- import/override with your plugins
+ { import = "plugins" },
+ },
+ defaults = {
+ -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
+ -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
+ lazy = false,
+ -- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
+ -- have outdated releases, which may break your Neovim install.
+ version = false, -- always use the latest git commit
+ -- version = "*", -- try installing the latest stable version for plugins that support semver
+ },
+ checker = {
+ enabled = true, -- check for plugin updates periodically
+ notify = false, -- notify on update
+ }, -- automatically check for plugin updates
+ performance = {
+ rtp = {
+ -- disable some rtp plugins
+ disabled_plugins = {
+ "gzip",
+ -- "matchit",
+ -- "matchparen",
+ -- "netrwPlugin",
+ "tarPlugin",
+ "tohtml",
+ "tutor",
+ "zipPlugin",
+ },
+ },
+ },
+})
diff --git a/config/nvim/lua/config/options.lua b/config/nvim/lua/config/options.lua
new file mode 100644
index 000000000..39b20e38b
--- /dev/null
+++ b/config/nvim/lua/config/options.lua
@@ -0,0 +1,15 @@
+vim.opt.number = true
+vim.opt.relativenumber = false
+vim.o.foldenable = false
+vim.o.foldmethod = "manual"
+vim.o.foldexpr = ""
+vim.api.nvim_create_autocmd("VimEnter", {
+ callback = function()
+ vim.api.nvim_set_hl(0, "IncSearch", { fg = "#1e2030", bg = "#b7bdf8" })
+ vim.api.nvim_create_autocmd("TextYankPost", {
+ callback = function()
+ vim.highlight.on_yank({ higroup = "Highlightedyank", timeout = 200 })
+ end,
+ })
+ end,
+})
diff --git a/config/nvim/lua/plugins/checkmate.lua b/config/nvim/lua/plugins/checkmate.lua
new file mode 100644
index 000000000..8cdebda4b
--- /dev/null
+++ b/config/nvim/lua/plugins/checkmate.lua
@@ -0,0 +1,40 @@
+return {
+ "bngarren/checkmate.nvim",
+ ft = { "markdown", "md" },
+ opts = {
+ files = { "*.md" },
+ default_list_marker = "-",
+ todo_states = {
+ unchecked = { marker = "□", order = 1 },
+ checked = { marker = "✔", order = 2 },
+ },
+ archive = {
+ heading = { level = 2, title = "Archive" },
+ newest_first = true,
+ parent_spacing = 0,
+ },
+ enter_insert_after_new = true,
+ use_metadata_keymaps = true,
+ smart_toggle = {
+ enabled = true,
+ include_cycle = false,
+ check_down = "direct_children",
+ uncheck_down = "none",
+ check_up = "direct_children",
+ uncheck_up = "direct_children",
+ },
+ show_todo_count = true,
+ todo_count_position = "eol",
+ todo_count_recursive = true,
+ },
+ keys = {
+ { "<leader>X", "<cmd>Checkmate toggle<CR>", desc = "Toggle todo item", mode = "n" },
+ { "<leader>C", "<cmd>Checkmate check<CR>", desc = "Check todo item", mode = "n" },
+ { "<leader>U", "<cmd>Checkmate uncheck<CR>", desc = "Uncheck todo item", mode = "n" },
+ { "<leader>N", "<cmd>Checkmate create<CR>", desc = "Create todo item", mode = "n" },
+ { "<leader>A", "<cmd>Checkmate archive<CR>", desc = "Archive completed items", mode = "n" },
+
+ { "<leader>R", "<cmd>Checkmate remove<CR>", desc = "Remove todo marker", mode = "n" },
+ { "<leader>F", "<cmd>Checkmate select_todo<CR>", desc = "Select todo", mode = "n" },
+ },
+}
diff --git a/config/nvim/lua/plugins/conform.lua b/config/nvim/lua/plugins/conform.lua
new file mode 100644
index 000000000..32ccedafe
--- /dev/null
+++ b/config/nvim/lua/plugins/conform.lua
@@ -0,0 +1,10 @@
+return {
+ "stevearc/conform.nvim",
+ opts = {
+ formatters_by_ft = {
+ python = { "ruff_organize_imports", "ruff_format" },
+
+ markdown = {},
+ },
+ },
+}
diff --git a/config/nvim/lua/plugins/core.lua b/config/nvim/lua/plugins/core.lua
new file mode 100644
index 000000000..84bb0c8f4
--- /dev/null
+++ b/config/nvim/lua/plugins/core.lua
@@ -0,0 +1,8 @@
+return {
+ {
+ "LazyVim/LazyVim",
+ opts = {
+ colorscheme = "catppuccin-macchiato",
+ },
+ },
+}
diff --git a/config/nvim/lua/plugins/lsp.lua b/config/nvim/lua/plugins/lsp.lua
new file mode 100644
index 000000000..3da2aabf2
--- /dev/null
+++ b/config/nvim/lua/plugins/lsp.lua
@@ -0,0 +1,30 @@
+return {
+ {
+ "neovim/nvim-lspconfig",
+ opts = {
+ setup = {
+ tailwindcss = function(_, opts)
+ opts.settings = {
+ tailwindCSS = {
+ validate = true,
+ lint = {
+ cssConflict = "ignore",
+ invalidApply = "error",
+ invalidConfigPath = "error",
+ invalidScreen = "error",
+ invalidTailwindDirective = "error",
+ invalidVariant = "error",
+ recommendedVariantOrder = "ignore",
+ suggestCanonicalClasses = "ignore",
+ },
+ },
+ }
+
+ require("lspconfig").tailwindcss.setup(opts)
+
+ return true
+ end,
+ },
+ },
+ },
+}
diff --git a/config/nvim/lua/plugins/lualine.lua b/config/nvim/lua/plugins/lualine.lua
new file mode 100644
index 000000000..a07bbac9a
--- /dev/null
+++ b/config/nvim/lua/plugins/lualine.lua
@@ -0,0 +1,73 @@
+return {
+ {
+ "nvim-lualine/lualine.nvim",
+ event = "VeryLazy",
+ opts = function()
+ local icons = LazyVim.config.icons
+
+ return {
+ options = {
+ theme = "auto",
+ globalstatus = vim.o.laststatus == 3,
+ disabled_filetypes = {
+ statusline = { "dashboard", "alpha", "ministarter", "snacks_dashboard" },
+ },
+ },
+ sections = {
+ lualine_a = { "mode" },
+ lualine_b = { "branch" },
+
+ lualine_c = {
+ LazyVim.lualine.root_dir(),
+ {
+ "diagnostics",
+ symbols = {
+ error = icons.diagnostics.Error,
+ warn = icons.diagnostics.Warn,
+ info = icons.diagnostics.Info,
+ hint = icons.diagnostics.Hint,
+ },
+ },
+ { "filetype", icon_only = true, separator = "", padding = { left = 1, right = 0 } },
+ { LazyVim.lualine.pretty_path() },
+ },
+
+ lualine_x = {
+ {
+ "diff",
+ symbols = {
+ added = icons.git.added,
+ modified = icons.git.modified,
+ removed = icons.git.removed,
+ },
+ source = function()
+ local gitsigns = vim.b.gitsigns_status_dict
+ if gitsigns then
+ return {
+ added = gitsigns.added,
+ modified = gitsigns.changed,
+ removed = gitsigns.removed,
+ }
+ end
+ end,
+ },
+ },
+
+ lualine_y = {},
+
+ lualine_z = {
+ {
+ function()
+ local l = vim.fn.line(".")
+ local c = vim.fn.col(".")
+ return string.format("%d:%d", l, c)
+ end,
+ padding = { left = 1, right = 1 },
+ },
+ },
+ },
+ extensions = { "neo-tree", "lazy", "fzf" },
+ }
+ end,
+ },
+}
diff --git a/config/nvim/lua/plugins/renderer-markdown.lua b/config/nvim/lua/plugins/renderer-markdown.lua
new file mode 100644
index 000000000..160556a35
--- /dev/null
+++ b/config/nvim/lua/plugins/renderer-markdown.lua
@@ -0,0 +1,402 @@
+return {
+ {
+ "MeanderingProgrammer/render-markdown.nvim",
+ ft = { "markdown" },
+ cmd = { "RenderMarkdown" },
+ dependencies = {
+ "nvim-treesitter/nvim-treesitter",
+ "nvim-mini/mini.nvim",
+ },
+ opts = {
+ file_types = { "markdown" },
+
+ sign = {
+ enabled = true,
+ priority = nil,
+ highlight = "RenderMarkdownSign",
+ },
+
+ heading = {
+ enabled = true,
+ render_modes = false,
+ atx = true,
+ setext = true,
+ sign = true,
+ icons = { "󰲡 ", "󰲣 ", "󰲥 ", "󰲧 ", "󰲩 ", "󰲫 " },
+ position = "overlay",
+ signs = { "󰫎 " },
+ width = "full",
+ left_margin = 0,
+ left_pad = 0,
+ right_pad = 0,
+ min_width = 0,
+ border = true,
+ border_virtual = true,
+ border_prefix = false,
+ above = "▄",
+ below = "▀",
+ backgrounds = {
+ "RenderMarkdownH1Bg",
+ "RenderMarkdownH2Bg",
+ "RenderMarkdownH3Bg",
+ "RenderMarkdownH4Bg",
+ "RenderMarkdownH5Bg",
+ "RenderMarkdownH6Bg",
+ },
+ foregrounds = {
+ "RenderMarkdownH1",
+ "RenderMarkdownH2",
+ "RenderMarkdownH3",
+ "RenderMarkdownH4",
+ "RenderMarkdownH5",
+ "RenderMarkdownH6",
+ },
+ custom = {},
+ },
+
+ code = {
+ enabled = true,
+ render_modes = false,
+ sign = true,
+ conceal_delimiters = true,
+ language = true,
+ position = "left",
+ language_icon = true,
+ language_name = true,
+ language_info = true,
+ language_pad = 2,
+ disable = {},
+ disable_background = { "diff" },
+ width = "block",
+ left_margin = 0,
+ left_pad = 2,
+ right_pad = 4,
+ min_width = 45,
+ border = "thick",
+ language_border = " ",
+ language_left = "",
+ language_right = "",
+ above = "▄",
+ below = "▀",
+ inline = true,
+ inline_left = "",
+ inline_right = "",
+ inline_pad = 0,
+ priority = 140,
+ highlight = "RenderMarkdownCode",
+ highlight_info = "RenderMarkdownCodeInfo",
+ highlight_language = nil,
+ highlight_border = "RenderMarkdownCodeBorder",
+ highlight_fallback = "RenderMarkdownCodeFallback",
+ highlight_inline = "RenderMarkdownCodeInline",
+ highlight_inline_left = nil,
+ highlight_inline_right = nil,
+ style = "language",
+ },
+
+ dash = {
+ enabled = true,
+ render_modes = false,
+ icon = "─",
+ width = "full",
+ left_margin = 0,
+ priority = nil,
+ highlight = "RenderMarkdownDash",
+ },
+
+ bullet = {
+ enabled = true,
+ render_modes = false,
+ icons = { "●", "○", "◆", "◇" },
+ ordered_icons = function(ctx)
+ local value = vim.trim(ctx.value)
+ local index = tonumber(value:sub(1, #value - 1))
+ return ("%d."):format(index > 1 and index or ctx.index)
+ end,
+ left_pad = 0,
+ right_pad = 0,
+ highlight = "RenderMarkdownBullet",
+ },
+
+ checkbox = {
+ enabled = true,
+ render_modes = false,
+ bullet = false,
+ left_pad = 0,
+ right_pad = 1,
+ unchecked = {
+ icon = "󰄱 ",
+ highlight = "RenderMarkdownUnchecked",
+ scope_highlight = nil,
+ },
+ checked = {
+ icon = "󰱒 ",
+ highlight = "RenderMarkdownChecked",
+ scope_highlight = nil,
+ },
+ },
+
+ quote = {
+ enabled = true,
+ render_modes = false,
+ icon = "▋",
+ repeat_linebreak = true,
+ highlight = {
+ "RenderMarkdownQuote1",
+ "RenderMarkdownQuote2",
+ "RenderMarkdownQuote3",
+ "RenderMarkdownQuote4",
+ "RenderMarkdownQuote5",
+ "RenderMarkdownQuote6",
+ },
+ },
+
+ pipe_table = {
+ enabled = true,
+ render_modes = false,
+ preset = "round",
+ cell = "padded",
+ cell_offset = function()
+ return 0
+ end,
+ padding = 1,
+ min_width = 12,
+ border = {
+ "┌",
+ "┬",
+ "┐",
+ "├",
+ "┼",
+ "┤",
+ "└",
+ "┴",
+ "┘",
+ "│",
+ "─",
+ },
+ border_enabled = true,
+ alignment_indicator = "┅",
+ },
+
+ callout = {
+ note = {
+ raw = "[!NOTE]",
+ rendered = "󰋽 Note",
+ highlight = "RenderMarkdownInfo",
+ category = "github",
+ },
+ tip = {
+ raw = "[!TIP]",
+ rendered = "󰌶 Tip",
+ highlight = "RenderMarkdownSuccess",
+ category = "github",
+ },
+ important = {
+ raw = "[!IMPORTANT]",
+ rendered = "󰅾 Important",
+ highlight = "RenderMarkdownHint",
+ category = "github",
+ },
+ warning = {
+ raw = "[!WARNING]",
+ rendered = "󰀪 Warning",
+ highlight = "RenderMarkdownWarn",
+ category = "github",
+ },
+ caution = {
+ raw = "[!CAUTION]",
+ rendered = "󰳦 Caution",
+ highlight = "RenderMarkdownError",
+ category = "github",
+ },
+
+ abstract = {
+ raw = "[!ABSTRACT]",
+ rendered = "󰨸 Abstract",
+ highlight = "RenderMarkdownInfo",
+ category = "obsidian",
+ },
+ summary = {
+ raw = "[!SUMMARY]",
+ rendered = "󰨸 Summary",
+ highlight = "RenderMarkdownInfo",
+ category = "obsidian",
+ },
+ tldr = {
+ raw = "[!TLDR]",
+ rendered = "󰨸 Tldr",
+ highlight = "RenderMarkdownInfo",
+ category = "obsidian",
+ },
+ info = {
+ raw = "[!INFO]",
+ rendered = "󰋽 Info",
+ highlight = "RenderMarkdownInfo",
+ category = "obsidian",
+ },
+ todo = {
+ raw = "[!TODO]",
+ rendered = "󰗡 Todo",
+ highlight = "RenderMarkdownInfo",
+ category = "obsidian",
+ },
+ hint = {
+ raw = "[!HINT]",
+ rendered = "󰌶 Hint",
+ highlight = "RenderMarkdownSuccess",
+ category = "obsidian",
+ },
+ success = {
+ raw = "[!SUCCESS]",
+ rendered = "󰄬 Success",
+ highlight = "RenderMarkdownSuccess",
+ category = "obsidian",
+ },
+ check = {
+ raw = "[!CHECK]",
+ rendered = "󰄬 Check",
+ highlight = "RenderMarkdownSuccess",
+ category = "obsidian",
+ },
+ done = {
+ raw = "[!DONE]",
+ rendered = "󰄬 Done",
+ highlight = "RenderMarkdownSuccess",
+ category = "obsidian",
+ },
+ question = {
+ raw = "[!QUESTION]",
+ rendered = "󰘥 Question",
+ highlight = "RenderMarkdownWarn",
+ category = "obsidian",
+ },
+ help = {
+ raw = "[!HELP]",
+ rendered = "󰘥 Help",
+ highlight = "RenderMarkdownWarn",
+ category = "obsidian",
+ },
+ faq = {
+ raw = "[!FAQ]",
+ rendered = "󰘥 Faq",
+ highlight = "RenderMarkdownWarn",
+ category = "obsidian",
+ },
+ attention = {
+ raw = "[!ATTENTION]",
+ rendered = "󰀪 Attention",
+ highlight = "RenderMarkdownWarn",
+ category = "obsidian",
+ },
+ failure = {
+ raw = "[!FAILURE]",
+ rendered = "󰅖 Failure",
+ highlight = "RenderMarkdownError",
+ category = "obsidian",
+ },
+ fail = {
+ raw = "[!FAIL]",
+ rendered = "󰅖 Fail",
+ highlight = "RenderMarkdownError",
+ category = "obsidian",
+ },
+ missing = {
+ raw = "[!MISSING]",
+ rendered = "󰅖 Missing",
+ highlight = "RenderMarkdownError",
+ category = "obsidian",
+ },
+ danger = {
+ raw = "[!DANGER]",
+ rendered = "󱐌 Danger",
+ highlight = "RenderMarkdownError",
+ category = "obsidian",
+ },
+ error = {
+ raw = "[!ERROR]",
+ rendered = "󱐌 Error",
+ highlight = "RenderMarkdownError",
+ category = "obsidian",
+ },
+ bug = {
+ raw = "[!BUG]",
+ rendered = "󰨰 Bug",
+ highlight = "RenderMarkdownError",
+ category = "obsidian",
+ },
+ example = {
+ raw = "[!EXAMPLE]",
+ rendered = "󰉹 Example",
+ highlight = "RenderMarkdownHint",
+ category = "obsidian",
+ },
+ quote = {
+ raw = "[!QUOTE]",
+ rendered = "󱆨 Quote",
+ highlight = "RenderMarkdownQuote",
+ category = "obsidian",
+ },
+ cite = {
+ raw = "[!CITE]",
+ rendered = "󱆨 Cite",
+ highlight = "RenderMarkdownQuote",
+ category = "obsidian",
+ },
+ },
+
+ link = {
+ enabled = true,
+ render_modes = false,
+ footnote = {
+ enabled = true,
+ icon = "󰯔 ",
+ body = function(ctx)
+ return ctx.text
+ end,
+ superscript = true,
+ prefix = "",
+ suffix = "",
+ },
+ image = "󰥶 ",
+ image_custom = true,
+ email = "󰀓 ",
+ hyperlink = "󰌹 ",
+ highlight = "RenderMarkdownLink",
+ highlight_title = "RenderMarkdownLinkTitle",
+ wiki = {
+ enabled = true,
+ icon = "󱗖 ",
+ body = function()
+ return nil
+ end,
+ highlight = "RenderMarkdownWikiLink",
+ scope_highlight = nil,
+ },
+ custom = {
+ web = { pattern = "^http", icon = "󰖟 " },
+ github = { pattern = "github%.com", icon = "󰊤 " },
+ python = { pattern = "%.py$", icon = "󰌠 " },
+ },
+ },
+
+ indent = {
+ enabled = true,
+ render_modes = false,
+ per_level = 2,
+ skip_level = 1,
+ skip_heading = false,
+ icon = "▎",
+ priority = 0,
+ highlight = "RenderMarkdownIndent",
+ },
+
+ paragraph = {
+ enabled = true,
+ render_modes = false,
+ left_margin = 0,
+ indent = 0,
+ min_width = 0,
+ },
+ },
+ },
+}
diff --git a/config/nvim/stylua.toml b/config/nvim/stylua.toml
new file mode 100644
index 000000000..5d6c50dce
--- /dev/null
+++ b/config/nvim/stylua.toml
@@ -0,0 +1,3 @@
+indent_type = "Spaces"
+indent_width = 2
+column_width = 120 \ No newline at end of file
diff --git a/config/nwg-look/config b/config/nwg-look/config
new file mode 100644
index 000000000..3f49ae54b
--- /dev/null
+++ b/config/nwg-look/config
@@ -0,0 +1,7 @@
+{
+ "export-settings-ini": true,
+ "export-gtkrc-20": true,
+ "export-index-theme": true,
+ "export-xsettingsd": true,
+ "export-gtk4-symlinks": true
+} \ No newline at end of file
diff --git a/config/qt5ct/colors/catppuccin-macchiato-lavender.conf b/config/qt5ct/colors/catppuccin-macchiato-lavender.conf
new file mode 100644
index 000000000..39c07024a
--- /dev/null
+++ b/config/qt5ct/colors/catppuccin-macchiato-lavender.conf
@@ -0,0 +1,4 @@
+[ColorScheme]
+active_colors= #ffcad3f5, #ff494d64, #ff5b6078, #ff363a4f, #ff181926, #ff1e2030, #ffcad3f5, #ffcad3f5, #ffcad3f5, #ff24273a, #ff1e2030, #ff181926, #ffb7bdf8, #ff181926, #ff8aadf4, #ffb7bdf8, #ff1e2030, #ffffffff, #ff24273a, #ffcad3f5, #806e738d, #ffb7bdf8
+inactive_colors=#ff8087a2, #ff24273a, #ff494d64, #ff363a4f, #ff181926, #ff1e2030, #ff8087a2, #ffcad3f5, #ff8087a2, #ff24273a, #ff1e2030, #ff181926, #ff363a4f, #ff8087a2, #ff8087a2, #ff8087a2, #ff1e2030, #ffffffff, #ff24273a, #ffcad3f5, #806e738d, #ff363a4f
+disabled_colors=#ff6e738d, #ff363a4f, #ff494d64, #ff363a4f, #ff181926, #ff1e2030, #ff6e738d, #ffcad3f5, #ff6e738d, #ff24273a, #ff1e2030, #ff181926, #ff1e2030, #ff6e738d, #ffaab8d4, #ffcbcee5, #ff1e2030, #ffffffff, #ff24273a, #ffcad3f5, #806e738d, #ff1e2030
diff --git a/config/qt5ct/qt5ct.conf b/config/qt5ct/qt5ct.conf
new file mode 100644
index 000000000..8e5259398
--- /dev/null
+++ b/config/qt5ct/qt5ct.conf
@@ -0,0 +1,31 @@
+[Appearance]
+color_scheme_path=/home/l3wdfut4pwr/.config/qt5ct/colors/catppuccin-macchiato-lavender.conf
+custom_palette=true
+standard_dialogs=default
+style=Fusion
+
+[Fonts]
+fixed="Sans Serif,9,-1,5,50,0,0,0,0,0"
+general="Sans Serif,9,-1,5,50,0,0,0,0,0"
+
+[Interface]
+activate_item_on_single_click=1
+buttonbox_layout=0
+cursor_flash_time=1000
+dialog_buttons_have_icons=1
+double_click_interval=400
+gui_effects=@Invalid()
+keyboard_scheme=2
+menus_have_icons=true
+show_shortcuts_in_context_menus=true
+stylesheets=@Invalid()
+toolbutton_style=4
+underline_shortcut=1
+wheel_scroll_lines=3
+
+[SettingsWindow]
+geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3\xc7\0\0\x2#\0\0\ai\0\0\x4!\0\0\x3\xc7\0\0\x2#\0\0\ai\0\0\x4!\0\0\0\0\0\0\0\0\a\x80\0\0\x3\xc7\0\0\x2#\0\0\ai\0\0\x4!)
+
+[Troubleshooting]
+force_raster_widgets=1
+ignored_applications=@Invalid()
diff --git a/config/qt6ct/colors/catppuccin-macchiato-lavender.conf b/config/qt6ct/colors/catppuccin-macchiato-lavender.conf
new file mode 100644
index 000000000..39c07024a
--- /dev/null
+++ b/config/qt6ct/colors/catppuccin-macchiato-lavender.conf
@@ -0,0 +1,4 @@
+[ColorScheme]
+active_colors= #ffcad3f5, #ff494d64, #ff5b6078, #ff363a4f, #ff181926, #ff1e2030, #ffcad3f5, #ffcad3f5, #ffcad3f5, #ff24273a, #ff1e2030, #ff181926, #ffb7bdf8, #ff181926, #ff8aadf4, #ffb7bdf8, #ff1e2030, #ffffffff, #ff24273a, #ffcad3f5, #806e738d, #ffb7bdf8
+inactive_colors=#ff8087a2, #ff24273a, #ff494d64, #ff363a4f, #ff181926, #ff1e2030, #ff8087a2, #ffcad3f5, #ff8087a2, #ff24273a, #ff1e2030, #ff181926, #ff363a4f, #ff8087a2, #ff8087a2, #ff8087a2, #ff1e2030, #ffffffff, #ff24273a, #ffcad3f5, #806e738d, #ff363a4f
+disabled_colors=#ff6e738d, #ff363a4f, #ff494d64, #ff363a4f, #ff181926, #ff1e2030, #ff6e738d, #ffcad3f5, #ff6e738d, #ff24273a, #ff1e2030, #ff181926, #ff1e2030, #ff6e738d, #ffaab8d4, #ffcbcee5, #ff1e2030, #ffffffff, #ff24273a, #ffcad3f5, #806e738d, #ff1e2030
diff --git a/config/qt6ct/qt6ct.conf b/config/qt6ct/qt6ct.conf
new file mode 100644
index 000000000..dc60517fd
--- /dev/null
+++ b/config/qt6ct/qt6ct.conf
@@ -0,0 +1,31 @@
+[Appearance]
+color_scheme_path=/home/l3wdfut4pwr/.config/qt6ct/colors/catppuccin-macchiato-lavender.conf
+custom_palette=true
+standard_dialogs=default
+style=Fusion
+
+[Fonts]
+fixed="Noto Sans,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
+general="Noto Sans,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
+
+[Interface]
+activate_item_on_single_click=1
+buttonbox_layout=0
+cursor_flash_time=1000
+dialog_buttons_have_icons=1
+double_click_interval=400
+gui_effects=@Invalid()
+keyboard_scheme=2
+menus_have_icons=true
+show_shortcuts_in_context_menus=true
+stylesheets=@Invalid()
+toolbutton_style=4
+underline_shortcut=1
+wheel_scroll_lines=3
+
+[SettingsWindow]
+geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\xa2\0\0\x1\xfe\0\0\0\0\0\0\0\0\0\0\x3\xa2\0\0\x1\xfe\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x3\xa2\0\0\x1\xfe)
+
+[Troubleshooting]
+force_raster_widgets=1
+ignored_applications=@Invalid()
diff --git a/config/waybar/config b/config/waybar/config
new file mode 100644
index 000000000..712a093a3
--- /dev/null
+++ b/config/waybar/config
@@ -0,0 +1,52 @@
+{
+ "layer": "top",
+ "height": 26,
+ "position": "top",
+ "modules-left": ["hyprland/workspaces"],
+ "modules-center": ["clock"],
+ "modules-right": ["custom/capslock","pulseaudio", "tray"],
+// "hyprland/language"
+"clock": {
+ "format": "{:%H:%M:%S}",
+ "interval": 1,
+ "tooltip": false
+},
+
+"hyprland/workspaces": {
+ "format": "{id}",
+ "all-outputs": true,
+ "move-to-monitor": true,
+ "persistent-workspaces": {
+ "*": [1,2,3,4,5,6,7,8,9,10]
+ }
+},
+
+// "hyprland/language": {
+// "format": "{}",
+// "format-en": "us",
+// "format-ru": "ru",
+// "tooltip": false
+// },
+
+"pulseaudio": {
+ "format": "{icon} {volume}%",
+ "format-muted": " {volume}%",
+ "scroll-step": 1,
+ "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
+ "on-click-right": "pavucontrol",
+ "tooltip": false,
+ "format-icons": {
+ "default": "󰕾",
+ "muted": "󰝟"
+ }
+},
+
+ "tray": {
+ "icon-size": 16,
+ "spacing": 6,
+ "show-passive-items": true,
+ "reverse-direction": false,
+ "expand": false
+ }
+}
+
diff --git a/config/waybar/scripts/power.sh b/config/waybar/scripts/power.sh
new file mode 100755
index 000000000..df0643dba
--- /dev/null
+++ b/config/waybar/scripts/power.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+choice=$(printf "Poweroff\nReboot\nLogout" | wofi \
+ --dmenu \
+ --window \
+ --normal-window \
+ --hide-scroll true \
+ --hide-search true \
+ --prompt "" \
+ --width 10 \
+ --lines 3 \
+ --columns 1)
+
+case "$choice" in
+Poweroff)
+ hyprshutdown --post-cmd 'systemctl poweroff'
+ ;;
+Reboot)
+ hyprshutdown --post-cmd 'systemctl reboot'
+ ;;
+Logout)
+ hyprshutdown
+ ;;
+esac
diff --git a/config/waybar/style.css b/config/waybar/style.css
new file mode 100644
index 000000000..77670841e
--- /dev/null
+++ b/config/waybar/style.css
@@ -0,0 +1,49 @@
+* {
+ font-size: 12px;
+ min-height: 1px;
+}
+#waybar {
+ font-family: "Inter Variable", "PxPlus IBM VGA8", "Symbols Nerd Font Mono";
+ background: #24273a;
+}
+
+#clock,
+#hyprland-language,
+#pulseaudio,
+#network,
+#memory,
+#cpu,
+#language,
+/*#pulseaudio,*/
+#tray,
+#workspaces button {
+ padding: 4px 12px;
+ border-radius: 6px;
+ background: #363a4f;
+ color: #cad3f5;
+ /* border-bottom: 1px solid #b7bdf8; */
+ margin: 0 2px;
+}
+#pulseaudio {
+ margin-right: 1px;
+}
+#workspaces {
+ margin-left: -1px;
+}
+
+#tray {
+ margin-right: 1px;
+ margin-left: 3px;
+}
+
+#language {
+ min-width: 14px;
+}
+
+#workspaces button.empty {
+ background: #1e2030;
+}
+
+#workspaces button.active {
+ background: #6e738d;
+}
diff --git a/config/wofi/config b/config/wofi/config
new file mode 100644
index 000000000..17d9615db
--- /dev/null
+++ b/config/wofi/config
@@ -0,0 +1,18 @@
+# Навигация курсора
+key_up=k
+key_down=j
+key_left=h
+key_right=l
+
+# Подтверждение выбора
+key_submit=Return
+
+# Выход
+key_exit=Escape
+
+# Можно оставить стрелки как запасной вариант
+key_up=Up
+key_down=Down
+key_left=Left
+key_right=Right
+
diff --git a/config/yazi/init.lua b/config/yazi/init.lua
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/config/yazi/init.lua
diff --git a/config/yazi/keymap.toml b/config/yazi/keymap.toml
new file mode 100644
index 000000000..8892bd432
--- /dev/null
+++ b/config/yazi/keymap.toml
@@ -0,0 +1,24 @@
+[[mgr.prepend_keymap]]
+on = "+"
+run = "plugin zoom 1"
+desc = "Zoom in hovered file"
+
+[[mgr.prepend_keymap]]
+on = "-"
+run = "plugin zoom -1"
+desc = "Zoom out hovered file"
+
+[[mgr.prepend_keymap]]
+on = ["M", "m"]
+run = "plugin gvfs -- jump-to-device --name sftp://arkadii@192.168.0.171/"
+desc = "Jump/mount FTP/SFTP 192.168.0.171"
+
+[[mgr.prepend_keymap]]
+on = ["R"]
+run = "plugin rotate-image"
+desc = "Rotate images"
+
+[[mgr.prepend_keymap]]
+on = [ "c", "m" ]
+run = "plugin chmod"
+desc = "Chmod on selected files"
diff --git a/config/yazi/package.toml b/config/yazi/package.toml
new file mode 100644
index 000000000..b00fa5586
--- /dev/null
+++ b/config/yazi/package.toml
@@ -0,0 +1,2 @@
+[flavor]
+deps = []
diff --git a/config/yazi/theme.toml b/config/yazi/theme.toml
new file mode 100644
index 000000000..d61a5e208
--- /dev/null
+++ b/config/yazi/theme.toml
@@ -0,0 +1,772 @@
+[app]
+overall = { bg = "#24273a" }
+
+[mgr]
+cwd = { fg = "#8bd5ca" }
+
+find_keyword = { fg = "#eed49f", italic = true }
+find_position = { fg = "#f5bde6", bg = "reset", italic = true }
+
+marker_copied = { fg = "#a6da95", bg = "#a6da95" }
+marker_cut = { fg = "#ed8796", bg = "#ed8796" }
+marker_marked = { fg = "#8bd5ca", bg = "#8bd5ca" }
+marker_selected = { fg = "#b7bdf8", bg = "#b7bdf8" }
+
+count_copied = { fg = "#24273a", bg = "#a6da95" }
+count_cut = { fg = "#24273a", bg = "#ed8796" }
+count_selected = { fg = "#24273a", bg = "#b7bdf8" }
+
+border_symbol = "│"
+border_style = { fg = "#8087a2" }
+
+syntect_theme = "~/.config/yazi/Catppuccin-macchiato.tmTheme"
+
+[tabs]
+active = { fg = "#24273a", bg = "#cad3f5", bold = true }
+inactive = { fg = "#cad3f5", bg = "#494d64" }
+
+[mode]
+normal_main = { fg = "#24273a", bg = "#b7bdf8", bold = true }
+normal_alt = { fg = "#b7bdf8", bg = "#363a4f"}
+
+select_main = { fg = "#24273a", bg = "#a6da95", bold = true }
+select_alt = { fg = "#a6da95", bg = "#363a4f"}
+
+unset_main = { fg = "#24273a", bg = "#f0c6c6", bold = true }
+unset_alt = { fg = "#f0c6c6", bg = "#363a4f"}
+
+[indicator]
+parent = { fg = "#24273a", bg = "#cad3f5" }
+current = { fg = "#24273a", bg = "#b7bdf8" }
+preview = { fg = "#24273a", bg = "#cad3f5" }
+
+[status]
+sep_left = { open = "", close = "" }
+sep_right = { open = "", close = "" }
+
+progress_label = { fg = "#ffffff", bold = true }
+progress_normal = { fg = "#a6da95", bg = "#494d64" }
+progress_error = { fg = "#eed49f", bg = "#ed8796" }
+
+perm_type = { fg = "#8aadf4" }
+perm_read = { fg = "#eed49f" }
+perm_write = { fg = "#ed8796" }
+perm_exec = { fg = "#a6da95" }
+perm_sep = { fg = "#8087a2" }
+
+[input]
+border = { fg = "#b7bdf8" }
+title = {}
+value = {}
+selected = { reversed = true }
+
+[pick]
+border = { fg = "#b7bdf8" }
+active = { fg = "#f5bde6" }
+inactive = {}
+
+[confirm]
+border = { fg = "#b7bdf8" }
+title = { fg = "#b7bdf8" }
+body = {}
+list = {}
+btn_yes = { reversed = true }
+btn_no = {}
+
+[cmp]
+border = { fg = "#b7bdf8" }
+
+[tasks]
+border = { fg = "#b7bdf8" }
+title = {}
+hovered = { fg = "#f5bde6", bold = true }
+
+[which]
+mask = { bg = "#363a4f" }
+cand = { fg = "#8bd5ca" }
+rest = { fg = "#939ab7" }
+desc = { fg = "#f5bde6" }
+separator = "  "
+separator_style = { fg = "#5b6078" }
+
+[help]
+on = { fg = "#8bd5ca" }
+run = { fg = "#f5bde6" }
+desc = { fg = "#939ab7" }
+hovered = { bg = "#5b6078", bold = true }
+footer = { fg = "#cad3f5", bg = "#494d64" }
+
+[notify]
+title_info = { fg = "#8bd5ca" }
+title_warn = { fg = "#eed49f" }
+title_error = { fg = "#ed8796" }
+
+[filetype]
+rules = [
+ # Media
+ { mime = "image/*", fg = "#b7bdf8" },
+ { mime = "{audio,video}/*", fg = "#b7bdf8" },
+
+ # Archives
+ { mime = "application/*zip", fg = "#b7bdf8" },
+ { mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#b7bdf8" },
+
+ # Documents
+ { mime = "application/{pdf,doc,rtf}", fg = "#b7bdf8" },
+
+ # Virtual file system
+ { mime = "vfs/{absent,stale}", fg = "#b7bdf8" },
+
+ # Special file
+ { url = "*", is = "orphan", bg = "#ed8796" },
+ { url = "*", is = "exec" , fg = "#b7bdf8" },
+
+ # Dummy file
+ { url = "*", is = "dummy", bg = "#ed8796" },
+ { url = "*/", is = "dummy", bg = "#ed8796" },
+ { url = "*/", fg = "#b7bdf8" }, # директории
+ # Fallback
+ { url = "*", fg = "#b7bdf8" },
+ { url = "*/", fg = "#b7bdf8" },
+]
+
+[spot]
+border = { fg = "#b7bdf8" }
+title = { fg = "#b7bdf8" }
+tbl_cell = { fg = "#b7bdf8", reversed = true }
+tbl_col = { bold = true }
+
+[icon]
+files = [
+ { name = "kritadisplayrc", text = "", fg = "#b7bdf8" },
+ { name = ".gtkrc-2.0", text = "", fg = "#b7bdf8" },
+ { name = "bspwmrc", text = "", fg = "#b7bdf8" },
+ { name = "webpack", text = "󰜫", fg = "#b7bdf8" },
+ { name = "tsconfig.json", text = "", fg = "#b7bdf8" },
+ { name = ".vimrc", text = "", fg = "#b7bdf8" },
+ { name = "gemfile$", text = "", fg = "#b7bdf8" },
+ { name = "xmobarrc", text = "", fg = "#b7bdf8" },
+ { name = "avif", text = "", fg = "#b7bdf8" },
+ { name = "fp-info-cache", text = "", fg = "#b7bdf8" },
+ { name = ".zshrc", text = "", fg = "#b7bdf8" },
+ { name = "robots.txt", text = "󰚩", fg = "#b7bdf8" },
+ { name = "dockerfile", text = "󰡨", fg = "#b7bdf8" },
+ { name = ".git-blame-ignore-revs", text = "", fg = "#b7bdf8" },
+ { name = ".nvmrc", text = "", fg = "#b7bdf8" },
+ { name = "hyprpaper.conf", text = "", fg = "#b7bdf8" },
+ { name = ".prettierignore", text = "", fg = "#b7bdf8" },
+ { name = "rakefile", text = "", fg = "#b7bdf8" },
+ { name = "code_of_conduct", text = "", fg = "#b7bdf8" },
+ { name = "cmakelists.txt", text = "", fg = "#b7bdf8" },
+ { name = ".env", text = "", fg = "#b7bdf8" },
+ { name = "copying.lesser", text = "", fg = "#b7bdf8" },
+ { name = "readme", text = "󰂺", fg = "#b7bdf8" },
+ { name = "settings.gradle", text = "", fg = "#b7bdf8" },
+ { name = "gruntfile.coffee", text = "", fg = "#b7bdf8" },
+ { name = ".eslintignore", text = "", fg = "#b7bdf8" },
+ { name = "kalgebrarc", text = "", fg = "#b7bdf8" },
+ { name = "kdenliverc", text = "", fg = "#b7bdf8" },
+ { name = ".prettierrc.cjs", text = "", fg = "#b7bdf8" },
+ { name = "cantorrc", text = "", fg = "#b7bdf8" },
+ { name = "rmd", text = "", fg = "#b7bdf8" },
+ { name = "vagrantfile$", text = "", fg = "#b7bdf8" },
+ { name = ".Xauthority", text = "", fg = "#b7bdf8" },
+ { name = "prettier.config.ts", text = "", fg = "#b7bdf8" },
+ { name = "node_modules", text = "", fg = "#b7bdf8" },
+ { name = ".prettierrc.toml", text = "", fg = "#b7bdf8" },
+ { name = "build.zig.zon", text = "", fg = "#b7bdf8" },
+ { name = ".ds_store", text = "", fg = "#b7bdf8" },
+ { name = "PKGBUILD", text = "", fg = "#b7bdf8" },
+ { name = ".prettierrc", text = "", fg = "#b7bdf8" },
+ { name = ".bash_profile", text = "", fg = "#b7bdf8" },
+ { name = ".npmignore", text = "", fg = "#b7bdf8" },
+ { name = ".mailmap", text = "󰊢", fg = "#b7bdf8" },
+ { name = ".codespellrc", text = "󰓆", fg = "#b7bdf8" },
+ { name = "svelte.config.js", text = "", fg = "#b7bdf8" },
+ { name = "eslint.config.ts", text = "", fg = "#b7bdf8" },
+ { name = "config", text = "", fg = "#b7bdf8" },
+ { name = ".gitlab-ci.yml", text = "", fg = "#b7bdf8" },
+ { name = ".gitconfig", text = "", fg = "#b7bdf8" },
+ { name = "_gvimrc", text = "", fg = "#b7bdf8" },
+ { name = ".xinitrc", text = "", fg = "#b7bdf8" },
+ { name = "checkhealth", text = "󰓙", fg = "#b7bdf8" },
+ { name = "sxhkdrc", text = "", fg = "#b7bdf8" },
+ { name = ".bashrc", text = "", fg = "#b7bdf8" },
+ { name = "tailwind.config.mjs", text = "󱏿", fg = "#b7bdf8" },
+ { name = "ext_typoscript_setup.txt", text = "", fg = "#b7bdf8" },
+ { name = "commitlint.config.ts", text = "󰜘", fg = "#b7bdf8" },
+ { name = "py.typed", text = "", fg = "#b7bdf8" },
+ { name = ".nanorc", text = "", fg = "#b7bdf8" },
+ { name = "commit_editmsg", text = "", fg = "#b7bdf8" },
+ { name = ".luaurc", text = "", fg = "#b7bdf8" },
+ { name = "fp-lib-table", text = "", fg = "#b7bdf8" },
+ { name = ".editorconfig", text = "", fg = "#b7bdf8" },
+ { name = "justfile", text = "", fg = "#b7bdf8" },
+ { name = "kdeglobals", text = "", fg = "#b7bdf8" },
+ { name = "license.md", text = "", fg = "#b7bdf8" },
+ { name = ".clang-format", text = "", fg = "#b7bdf8" },
+ { name = "docker-compose.yaml", text = "󰡨", fg = "#b7bdf8" },
+ { name = "copying", text = "", fg = "#b7bdf8" },
+ { name = "go.mod", text = "", fg = "#b7bdf8" },
+ { name = "lxqt.conf", text = "", fg = "#b7bdf8" },
+ { name = "brewfile", text = "", fg = "#b7bdf8" },
+ { name = "gulpfile.coffee", text = "", fg = "#b7bdf8" },
+ { name = ".dockerignore", text = "󰡨", fg = "#b7bdf8" },
+ { name = ".settings.json", text = "", fg = "#b7bdf8" },
+ { name = "tailwind.config.js", text = "󱏿", fg = "#b7bdf8" },
+ { name = ".clang-tidy", text = "", fg = "#b7bdf8" },
+ { name = ".gvimrc", text = "", fg = "#b7bdf8" },
+ { name = "nuxt.config.cjs", text = "󱄆", fg = "#b7bdf8" },
+ { name = "xsettingsd.conf", text = "", fg = "#b7bdf8" },
+ { name = "nuxt.config.js", text = "󱄆", fg = "#b7bdf8" },
+ { name = "eslint.config.cjs", text = "", fg = "#b7bdf8" },
+ { name = "sym-lib-table", text = "", fg = "#b7bdf8" },
+ { name = ".condarc", text = "", fg = "#b7bdf8" },
+ { name = "xmonad.hs", text = "", fg = "#b7bdf8" },
+ { name = "tmux.conf", text = "", fg = "#b7bdf8" },
+ { name = "xmobarrc.hs", text = "", fg = "#b7bdf8" },
+ { name = ".prettierrc.yaml", text = "", fg = "#b7bdf8" },
+ { name = ".pre-commit-config.yaml", text = "󰛢", fg = "#b7bdf8" },
+ { name = "i3blocks.conf", text = "", fg = "#b7bdf8" },
+ { name = "xorg.conf", text = "", fg = "#b7bdf8" },
+ { name = ".zshenv", text = "", fg = "#b7bdf8" },
+ { name = "vlcrc", text = "󰕼", fg = "#b7bdf8" },
+ { name = "license", text = "", fg = "#b7bdf8" },
+ { name = "unlicense", text = "", fg = "#b7bdf8" },
+ { name = "tmux.conf.local", text = "", fg = "#b7bdf8" },
+ { name = ".SRCINFO", text = "󰣇", fg = "#b7bdf8" },
+ { name = "tailwind.config.ts", text = "󱏿", fg = "#b7bdf8" },
+ { name = "security.md", text = "󰒃", fg = "#b7bdf8" },
+ { name = "security", text = "󰒃", fg = "#b7bdf8" },
+ { name = ".eslintrc", text = "", fg = "#b7bdf8" },
+ { name = "gradle.properties", text = "", fg = "#b7bdf8" },
+ { name = "code_of_conduct.md", text = "", fg = "#b7bdf8" },
+ { name = "PrusaSlicerGcodeViewer.ini", text = "", fg = "#b7bdf8" },
+ { name = "PrusaSlicer.ini", text = "", fg = "#b7bdf8" },
+ { name = "procfile", text = "", fg = "#b7bdf8" },
+ { name = "mpv.conf", text = "", fg = "#b7bdf8" },
+ { name = ".prettierrc.json5", text = "", fg = "#b7bdf8" },
+ { name = "i3status.conf", text = "", fg = "#b7bdf8" },
+ { name = "prettier.config.mjs", text = "", fg = "#b7bdf8" },
+ { name = ".pylintrc", text = "", fg = "#b7bdf8" },
+ { name = "prettier.config.cjs", text = "", fg = "#b7bdf8" },
+ { name = ".luacheckrc", text = "", fg = "#b7bdf8" },
+ { name = "containerfile", text = "󰡨", fg = "#b7bdf8" },
+ { name = "eslint.config.mjs", text = "", fg = "#b7bdf8" },
+ { name = "gruntfile.js", text = "", fg = "#b7bdf8" },
+ { name = "bun.lockb", text = "", fg = "#b7bdf8" },
+ { name = ".gitattributes", text = "", fg = "#b7bdf8" },
+ { name = "gruntfile.ts", text = "", fg = "#b7bdf8" },
+ { name = "pom.xml", text = "", fg = "#b7bdf8" },
+ { name = "favicon.ico", text = "", fg = "#b7bdf8" },
+ { name = "package-lock.json", text = "", fg = "#b7bdf8" },
+ { name = "build", text = "", fg = "#b7bdf8" },
+ { name = "package.json", text = "", fg = "#b7bdf8" },
+ { name = "nuxt.config.ts", text = "󱄆", fg = "#b7bdf8" },
+ { name = "nuxt.config.mjs", text = "󱄆", fg = "#b7bdf8" },
+ { name = "mix.lock", text = "", fg = "#b7bdf8" },
+ { name = "makefile", text = "", fg = "#b7bdf8" },
+ { name = "gulpfile.js", text = "", fg = "#b7bdf8" },
+ { name = "lxde-rc.xml", text = "", fg = "#b7bdf8" },
+ { name = "kritarc", text = "", fg = "#b7bdf8" },
+ { name = "gtkrc", text = "", fg = "#b7bdf8" },
+ { name = "ionic.config.json", text = "", fg = "#b7bdf8" },
+ { name = ".prettierrc.mjs", text = "", fg = "#b7bdf8" },
+ { name = ".prettierrc.yml", text = "", fg = "#b7bdf8" },
+ { name = ".npmrc", text = "", fg = "#b7bdf8" },
+ { name = "weston.ini", text = "", fg = "#b7bdf8" },
+ { name = "gulpfile.babel.js", text = "", fg = "#b7bdf8" },
+ { name = "i18n.config.ts", text = "󰗊", fg = "#b7bdf8" },
+ { name = "commitlint.config.js", text = "󰜘", fg = "#b7bdf8" },
+ { name = ".gitmodules", text = "", fg = "#b7bdf8" },
+ { name = "gradle-wrapper.properties", text = "", fg = "#b7bdf8" },
+ { name = "hypridle.conf", text = "", fg = "#b7bdf8" },
+ { name = "vercel.json", text = "▲", fg = "#b7bdf8" },
+ { name = "hyprlock.conf", text = "", fg = "#b7bdf8" },
+ { name = "go.sum", text = "", fg = "#b7bdf8" },
+ { name = "kdenlive-layoutsrc", text = "", fg = "#b7bdf8" },
+ { name = "gruntfile.babel.js", text = "", fg = "#b7bdf8" },
+ { name = "compose.yml", text = "󰡨", fg = "#b7bdf8" },
+ { name = "i18n.config.js", text = "󰗊", fg = "#b7bdf8" },
+ { name = "readme.md", text = "󰂺", fg = "#b7bdf8" },
+ { name = "gradlew", text = "", fg = "#b7bdf8" },
+ { name = "go.work", text = "", fg = "#b7bdf8" },
+ { name = "gulpfile.ts", text = "", fg = "#b7bdf8" },
+ { name = "gnumakefile", text = "", fg = "#b7bdf8" },
+ { name = "FreeCAD.conf", text = "", fg = "#b7bdf8" },
+ { name = "compose.yaml", text = "󰡨", fg = "#b7bdf8" },
+ { name = "eslint.config.js", text = "", fg = "#b7bdf8" },
+ { name = "hyprland.conf", text = "", fg = "#b7bdf8" },
+ { name = "docker-compose.yml", text = "󰡨", fg = "#b7bdf8" },
+ { name = "groovy", text = "", fg = "#b7bdf8" },
+ { name = "QtProject.conf", text = "", fg = "#b7bdf8" },
+ { name = "platformio.ini", text = "", fg = "#b7bdf8" },
+ { name = "build.gradle", text = "", fg = "#b7bdf8" },
+ { name = ".nuxtrc", text = "󱄆", fg = "#b7bdf8" },
+ { name = "_vimrc", text = "", fg = "#b7bdf8" },
+ { name = ".zprofile", text = "", fg = "#b7bdf8" },
+ { name = ".xsession", text = "", fg = "#b7bdf8" },
+ { name = "prettier.config.js", text = "", fg = "#b7bdf8" },
+ { name = ".babelrc", text = "", fg = "#b7bdf8" },
+ { name = "workspace", text = "", fg = "#b7bdf8" },
+ { name = ".prettierrc.json", text = "", fg = "#b7bdf8" },
+ { name = ".prettierrc.js", text = "", fg = "#b7bdf8" },
+ { name = ".Xresources", text = "", fg = "#b7bdf8" },
+ { name = ".gitignore", text = "", fg = "#b7bdf8" },
+ { name = ".justfile", text = "", fg = "#b7bdf8" },
+]
+exts = [
+ { name = "otf", text = "", fg = "#b7bdf8" },
+ { name = "import", text = "", fg = "#b7bdf8" },
+ { name = "krz", text = "", fg = "#b7bdf8" },
+ { name = "adb", text = "", fg = "#b7bdf8" },
+ { name = "ttf", text = "", fg = "#b7bdf8" },
+ { name = "webpack", text = "󰜫", fg = "#b7bdf8" },
+ { name = "dart", text = "", fg = "#b7bdf8" },
+ { name = "vsh", text = "", fg = "#b7bdf8" },
+ { name = "doc", text = "󰈬", fg = "#b7bdf8" },
+ { name = "zsh", text = "", fg = "#b7bdf8" },
+ { name = "ex", text = "", fg = "#b7bdf8" },
+ { name = "hx", text = "", fg = "#b7bdf8" },
+ { name = "fodt", text = "", fg = "#b7bdf8" },
+ { name = "mojo", text = "", fg = "#b7bdf8" },
+ { name = "templ", text = "", fg = "#b7bdf8" },
+ { name = "nix", text = "", fg = "#b7bdf8" },
+ { name = "cshtml", text = "󱦗", fg = "#b7bdf8" },
+ { name = "fish", text = "", fg = "#b7bdf8" },
+ { name = "ply", text = "󰆧", fg = "#b7bdf8" },
+ { name = "sldprt", text = "󰻫", fg = "#b7bdf8" },
+ { name = "gemspec", text = "", fg = "#b7bdf8" },
+ { name = "mjs", text = "", fg = "#b7bdf8" },
+ { name = "csh", text = "", fg = "#b7bdf8" },
+ { name = "cmake", text = "", fg = "#b7bdf8" },
+ { name = "fodp", text = "", fg = "#b7bdf8" },
+ { name = "vi", text = "", fg = "#b7bdf8" },
+ { name = "msf", text = "", fg = "#b7bdf8" },
+ { name = "blp", text = "󰺾", fg = "#b7bdf8" },
+ { name = "less", text = "", fg = "#b7bdf8" },
+ { name = "sh", text = "", fg = "#b7bdf8" },
+ { name = "odg", text = "", fg = "#b7bdf8" },
+ { name = "mint", text = "󰌪", fg = "#b7bdf8" },
+ { name = "dll", text = "", fg = "#b7bdf8" },
+ { name = "odf", text = "", fg = "#b7bdf8" },
+ { name = "sqlite3", text = "", fg = "#b7bdf8" },
+ { name = "Dockerfile", text = "󰡨", fg = "#b7bdf8" },
+ { name = "ksh", text = "", fg = "#b7bdf8" },
+ { name = "rmd", text = "", fg = "#b7bdf8" },
+ { name = "wv", text = "", fg = "#b7bdf8" },
+ { name = "xml", text = "󰗀", fg = "#b7bdf8" },
+ { name = "markdown", text = "", fg = "#b7bdf8" },
+ { name = "qml", text = "", fg = "#b7bdf8" },
+ { name = "3gp", text = "", fg = "#b7bdf8" },
+ { name = "pxi", text = "", fg = "#b7bdf8" },
+ { name = "flac", text = "", fg = "#b7bdf8" },
+ { name = "gpr", text = "", fg = "#b7bdf8" },
+ { name = "huff", text = "󰡘", fg = "#b7bdf8" },
+ { name = "json", text = "", fg = "#b7bdf8" },
+ { name = "gv", text = "󱁉", fg = "#b7bdf8" },
+ { name = "bmp", text = "", fg = "#b7bdf8" },
+ { name = "lock", text = "", fg = "#b7bdf8" },
+ { name = "sha384", text = "󰕥", fg = "#b7bdf8" },
+ { name = "cobol", text = "⚙", fg = "#b7bdf8" },
+ { name = "cob", text = "⚙", fg = "#b7bdf8" },
+ { name = "java", text = "", fg = "#b7bdf8" },
+ { name = "cjs", text = "", fg = "#b7bdf8" },
+ { name = "qm", text = "", fg = "#b7bdf8" },
+ { name = "ebuild", text = "", fg = "#b7bdf8" },
+ { name = "mustache", text = "", fg = "#b7bdf8" },
+ { name = "terminal", text = "", fg = "#b7bdf8" },
+ { name = "ejs", text = "", fg = "#b7bdf8" },
+ { name = "brep", text = "󰻫", fg = "#b7bdf8" },
+ { name = "rar", text = "", fg = "#b7bdf8" },
+ { name = "gradle", text = "", fg = "#b7bdf8" },
+ { name = "gnumakefile", text = "", fg = "#b7bdf8" },
+ { name = "applescript", text = "", fg = "#b7bdf8" },
+ { name = "elm", text = "", fg = "#b7bdf8" },
+ { name = "ebook", text = "", fg = "#b7bdf8" },
+ { name = "kra", text = "", fg = "#b7bdf8" },
+ { name = "tf", text = "", fg = "#b7bdf8" },
+ { name = "xls", text = "󰈛", fg = "#b7bdf8" },
+ { name = "fnl", text = "", fg = "#b7bdf8" },
+ { name = "kdbx", text = "", fg = "#b7bdf8" },
+ { name = "kicad_pcb", text = "", fg = "#b7bdf8" },
+ { name = "cfg", text = "", fg = "#b7bdf8" },
+ { name = "ape", text = "", fg = "#b7bdf8" },
+ { name = "org", text = "", fg = "#b7bdf8" },
+ { name = "yml", text = "", fg = "#b7bdf8" },
+ { name = "swift", text = "", fg = "#b7bdf8" },
+ { name = "eln", text = "", fg = "#b7bdf8" },
+ { name = "sol", text = "", fg = "#b7bdf8" },
+ { name = "awk", text = "", fg = "#b7bdf8" },
+ { name = "7z", text = "", fg = "#b7bdf8" },
+ { name = "apl", text = "⍝", fg = "#b7bdf8" },
+ { name = "epp", text = "", fg = "#b7bdf8" },
+ { name = "app", text = "", fg = "#b7bdf8" },
+ { name = "dot", text = "󱁉", fg = "#b7bdf8" },
+ { name = "kpp", text = "", fg = "#b7bdf8" },
+ { name = "eot", text = "", fg = "#b7bdf8" },
+ { name = "hpp", text = "", fg = "#b7bdf8" },
+ { name = "spec.tsx", text = "", fg = "#b7bdf8" },
+ { name = "hurl", text = "", fg = "#b7bdf8" },
+ { name = "cxxm", text = "", fg = "#b7bdf8" },
+ { name = "c", text = "", fg = "#b7bdf8" },
+ { name = "fcmacro", text = "", fg = "#b7bdf8" },
+ { name = "sass", text = "", fg = "#b7bdf8" },
+ { name = "yaml", text = "", fg = "#b7bdf8" },
+ { name = "xz", text = "", fg = "#b7bdf8" },
+ { name = "material", text = "󰔉", fg = "#b7bdf8" },
+ { name = "json5", text = "", fg = "#b7bdf8" },
+ { name = "signature", text = "λ", fg = "#b7bdf8" },
+ { name = "3mf", text = "󰆧", fg = "#b7bdf8" },
+ { name = "jpg", text = "", fg = "#b7bdf8" },
+ { name = "xpi", text = "", fg = "#b7bdf8" },
+ { name = "fcmat", text = "", fg = "#b7bdf8" },
+ { name = "pot", text = "", fg = "#b7bdf8" },
+ { name = "bin", text = "", fg = "#b7bdf8" },
+ { name = "xlsx", text = "󰈛", fg = "#b7bdf8" },
+ { name = "aac", text = "", fg = "#b7bdf8" },
+ { name = "kicad_sym", text = "", fg = "#b7bdf8" },
+ { name = "xcstrings", text = "", fg = "#b7bdf8" },
+ { name = "lff", text = "", fg = "#b7bdf8" },
+ { name = "xcf", text = "", fg = "#b7bdf8" },
+ { name = "azcli", text = "", fg = "#b7bdf8" },
+ { name = "license", text = "", fg = "#b7bdf8" },
+ { name = "jsonc", text = "", fg = "#b7bdf8" },
+ { name = "xaml", text = "󰙳", fg = "#b7bdf8" },
+ { name = "md5", text = "󰕥", fg = "#b7bdf8" },
+ { name = "xm", text = "", fg = "#b7bdf8" },
+ { name = "sln", text = "", fg = "#b7bdf8" },
+ { name = "jl", text = "", fg = "#b7bdf8" },
+ { name = "ml", text = "", fg = "#b7bdf8" },
+ { name = "http", text = "", fg = "#b7bdf8" },
+ { name = "x", text = "", fg = "#b7bdf8" },
+ { name = "wvc", text = "", fg = "#b7bdf8" },
+ { name = "wrz", text = "󰆧", fg = "#b7bdf8" },
+ { name = "csproj", text = "󰪮", fg = "#b7bdf8" },
+ { name = "wrl", text = "󰆧", fg = "#b7bdf8" },
+ { name = "wma", text = "", fg = "#b7bdf8" },
+ { name = "woff2", text = "", fg = "#b7bdf8" },
+ { name = "woff", text = "", fg = "#b7bdf8" },
+ { name = "tscn", text = "", fg = "#b7bdf8" },
+ { name = "webmanifest", text = "", fg = "#b7bdf8" },
+ { name = "webm", text = "", fg = "#b7bdf8" },
+ { name = "fcbak", text = "", fg = "#b7bdf8" },
+ { name = "log", text = "󰌱", fg = "#b7bdf8" },
+ { name = "wav", text = "", fg = "#b7bdf8" },
+ { name = "wasm", text = "", fg = "#b7bdf8" },
+ { name = "styl", text = "", fg = "#b7bdf8" },
+ { name = "gif", text = "", fg = "#b7bdf8" },
+ { name = "resi", text = "", fg = "#b7bdf8" },
+ { name = "aiff", text = "", fg = "#b7bdf8" },
+ { name = "sha256", text = "󰕥", fg = "#b7bdf8" },
+ { name = "igs", text = "󰻫", fg = "#b7bdf8" },
+ { name = "vsix", text = "", fg = "#b7bdf8" },
+ { name = "vim", text = "", fg = "#b7bdf8" },
+ { name = "diff", text = "", fg = "#b7bdf8" },
+ { name = "drl", text = "", fg = "#b7bdf8" },
+ { name = "erl", text = "", fg = "#b7bdf8" },
+ { name = "vhdl", text = "󰍛", fg = "#b7bdf8" },
+ { name = "🔥", text = "", fg = "#b7bdf8" },
+ { name = "hrl", text = "", fg = "#b7bdf8" },
+ { name = "fsi", text = "", fg = "#b7bdf8" },
+ { name = "mm", text = "", fg = "#b7bdf8" },
+ { name = "bz", text = "", fg = "#b7bdf8" },
+ { name = "vh", text = "󰍛", fg = "#b7bdf8" },
+ { name = "kdb", text = "", fg = "#b7bdf8" },
+ { name = "gz", text = "", fg = "#b7bdf8" },
+ { name = "cpp", text = "", fg = "#b7bdf8" },
+ { name = "ui", text = "", fg = "#b7bdf8" },
+ { name = "txt", text = "󰈙", fg = "#b7bdf8" },
+ { name = "spec.ts", text = "", fg = "#b7bdf8" },
+ { name = "ccm", text = "", fg = "#b7bdf8" },
+ { name = "typoscript", text = "", fg = "#b7bdf8" },
+ { name = "typ", text = "", fg = "#b7bdf8" },
+ { name = "txz", text = "", fg = "#b7bdf8" },
+ { name = "test.ts", text = "", fg = "#b7bdf8" },
+ { name = "tsx", text = "", fg = "#b7bdf8" },
+ { name = "mk", text = "", fg = "#b7bdf8" },
+ { name = "webp", text = "", fg = "#b7bdf8" },
+ { name = "opus", text = "", fg = "#b7bdf8" },
+ { name = "bicep", text = "", fg = "#b7bdf8" },
+ { name = "ts", text = "", fg = "#b7bdf8" },
+ { name = "tres", text = "", fg = "#b7bdf8" },
+ { name = "torrent", text = "", fg = "#b7bdf8" },
+ { name = "cxx", text = "", fg = "#b7bdf8" },
+ { name = "iso", text = "", fg = "#b7bdf8" },
+ { name = "ixx", text = "", fg = "#b7bdf8" },
+ { name = "hxx", text = "", fg = "#b7bdf8" },
+ { name = "gql", text = "", fg = "#b7bdf8" },
+ { name = "tmux", text = "", fg = "#b7bdf8" },
+ { name = "ini", text = "", fg = "#b7bdf8" },
+ { name = "m3u8", text = "󰲹", fg = "#b7bdf8" },
+ { name = "image", text = "", fg = "#b7bdf8" },
+ { name = "tfvars", text = "", fg = "#b7bdf8" },
+ { name = "tex", text = "", fg = "#b7bdf8" },
+ { name = "cbl", text = "⚙", fg = "#b7bdf8" },
+ { name = "flc", text = "", fg = "#b7bdf8" },
+ { name = "elc", text = "", fg = "#b7bdf8" },
+ { name = "test.tsx", text = "", fg = "#b7bdf8" },
+ { name = "twig", text = "", fg = "#b7bdf8" },
+ { name = "sql", text = "", fg = "#b7bdf8" },
+ { name = "test.jsx", text = "", fg = "#b7bdf8" },
+ { name = "htm", text = "", fg = "#b7bdf8" },
+ { name = "gcode", text = "󰐫", fg = "#b7bdf8" },
+ { name = "test.js", text = "", fg = "#b7bdf8" },
+ { name = "ino", text = "", fg = "#b7bdf8" },
+ { name = "tcl", text = "󰛓", fg = "#b7bdf8" },
+ { name = "cljs", text = "", fg = "#b7bdf8" },
+ { name = "tsconfig", text = "", fg = "#b7bdf8" },
+ { name = "img", text = "", fg = "#b7bdf8" },
+ { name = "t", text = "", fg = "#b7bdf8" },
+ { name = "fcstd1", text = "", fg = "#b7bdf8" },
+ { name = "out", text = "", fg = "#b7bdf8" },
+ { name = "jsx", text = "", fg = "#b7bdf8" },
+ { name = "bash", text = "", fg = "#b7bdf8" },
+ { name = "edn", text = "", fg = "#b7bdf8" },
+ { name = "rss", text = "", fg = "#b7bdf8" },
+ { name = "flf", text = "", fg = "#b7bdf8" },
+ { name = "cache", text = "", fg = "#b7bdf8" },
+ { name = "sbt", text = "", fg = "#b7bdf8" },
+ { name = "cppm", text = "", fg = "#b7bdf8" },
+ { name = "svelte", text = "", fg = "#b7bdf8" },
+ { name = "mo", text = "∞", fg = "#b7bdf8" },
+ { name = "sv", text = "󰍛", fg = "#b7bdf8" },
+ { name = "ko", text = "", fg = "#b7bdf8" },
+ { name = "suo", text = "", fg = "#b7bdf8" },
+ { name = "sldasm", text = "󰻫", fg = "#b7bdf8" },
+ { name = "icalendar", text = "", fg = "#b7bdf8" },
+ { name = "go", text = "", fg = "#b7bdf8" },
+ { name = "sublime", text = "", fg = "#b7bdf8" },
+ { name = "stl", text = "󰆧", fg = "#b7bdf8" },
+ { name = "mobi", text = "", fg = "#b7bdf8" },
+ { name = "graphql", text = "", fg = "#b7bdf8" },
+ { name = "m3u", text = "󰲹", fg = "#b7bdf8" },
+ { name = "cpy", text = "⚙", fg = "#b7bdf8" },
+ { name = "kdenlive", text = "", fg = "#b7bdf8" },
+ { name = "pyo", text = "", fg = "#b7bdf8" },
+ { name = "po", text = "", fg = "#b7bdf8" },
+ { name = "scala", text = "", fg = "#b7bdf8" },
+ { name = "exs", text = "", fg = "#b7bdf8" },
+ { name = "odp", text = "", fg = "#b7bdf8" },
+ { name = "dump", text = "", fg = "#b7bdf8" },
+ { name = "stp", text = "󰻫", fg = "#b7bdf8" },
+ { name = "step", text = "󰻫", fg = "#b7bdf8" },
+ { name = "ste", text = "󰻫", fg = "#b7bdf8" },
+ { name = "aif", text = "", fg = "#b7bdf8" },
+ { name = "strings", text = "", fg = "#b7bdf8" },
+ { name = "cp", text = "", fg = "#b7bdf8" },
+ { name = "fsscript", text = "", fg = "#b7bdf8" },
+ { name = "mli", text = "", fg = "#b7bdf8" },
+ { name = "bak", text = "󰁯", fg = "#b7bdf8" },
+ { name = "ssa", text = "󰨖", fg = "#b7bdf8" },
+ { name = "toml", text = "", fg = "#b7bdf8" },
+ { name = "makefile", text = "", fg = "#b7bdf8" },
+ { name = "php", text = "", fg = "#b7bdf8" },
+ { name = "zst", text = "", fg = "#b7bdf8" },
+ { name = "spec.jsx", text = "", fg = "#b7bdf8" },
+ { name = "kbx", text = "󰯄", fg = "#b7bdf8" },
+ { name = "fbx", text = "󰆧", fg = "#b7bdf8" },
+ { name = "blend", text = "󰂫", fg = "#b7bdf8" },
+ { name = "ifc", text = "󰻫", fg = "#b7bdf8" },
+ { name = "spec.js", text = "", fg = "#b7bdf8" },
+ { name = "so", text = "", fg = "#b7bdf8" },
+ { name = "desktop", text = "", fg = "#b7bdf8" },
+ { name = "sml", text = "λ", fg = "#b7bdf8" },
+ { name = "slvs", text = "󰻫", fg = "#b7bdf8" },
+ { name = "pp", text = "", fg = "#b7bdf8" },
+ { name = "ps1", text = "󰨊", fg = "#b7bdf8" },
+ { name = "dropbox", text = "", fg = "#b7bdf8" },
+ { name = "kicad_mod", text = "", fg = "#b7bdf8" },
+ { name = "bat", text = "", fg = "#b7bdf8" },
+ { name = "slim", text = "", fg = "#b7bdf8" },
+ { name = "skp", text = "󰻫", fg = "#b7bdf8" },
+ { name = "css", text = "", fg = "#b7bdf8" },
+ { name = "xul", text = "", fg = "#b7bdf8" },
+ { name = "ige", text = "󰻫", fg = "#b7bdf8" },
+ { name = "glb", text = "", fg = "#b7bdf8" },
+ { name = "ppt", text = "󰈧", fg = "#b7bdf8" },
+ { name = "sha512", text = "󰕥", fg = "#b7bdf8" },
+ { name = "ics", text = "", fg = "#b7bdf8" },
+ { name = "mdx", text = "", fg = "#b7bdf8" },
+ { name = "sha1", text = "󰕥", fg = "#b7bdf8" },
+ { name = "f3d", text = "󰻫", fg = "#b7bdf8" },
+ { name = "ass", text = "󰨖", fg = "#b7bdf8" },
+ { name = "godot", text = "", fg = "#b7bdf8" },
+ { name = "ifb", text = "", fg = "#b7bdf8" },
+ { name = "cson", text = "", fg = "#b7bdf8" },
+ { name = "lib", text = "", fg = "#b7bdf8" },
+ { name = "luac", text = "", fg = "#b7bdf8" },
+ { name = "heex", text = "", fg = "#b7bdf8" },
+ { name = "scm", text = "󰘧", fg = "#b7bdf8" },
+ { name = "psd1", text = "󰨊", fg = "#b7bdf8" },
+ { name = "sc", text = "", fg = "#b7bdf8" },
+ { name = "scad", text = "", fg = "#b7bdf8" },
+ { name = "kts", text = "", fg = "#b7bdf8" },
+ { name = "svh", text = "󰍛", fg = "#b7bdf8" },
+ { name = "mts", text = "", fg = "#b7bdf8" },
+ { name = "nfo", text = "", fg = "#b7bdf8" },
+ { name = "pck", text = "", fg = "#b7bdf8" },
+ { name = "rproj", text = "󰗆", fg = "#b7bdf8" },
+ { name = "rlib", text = "", fg = "#b7bdf8" },
+ { name = "cljd", text = "", fg = "#b7bdf8" },
+ { name = "ods", text = "", fg = "#b7bdf8" },
+ { name = "res", text = "", fg = "#b7bdf8" },
+ { name = "apk", text = "", fg = "#b7bdf8" },
+ { name = "haml", text = "", fg = "#b7bdf8" },
+ { name = "d.ts", text = "", fg = "#b7bdf8" },
+ { name = "razor", text = "󱦘", fg = "#b7bdf8" },
+ { name = "rake", text = "", fg = "#b7bdf8" },
+ { name = "patch", text = "", fg = "#b7bdf8" },
+ { name = "cuh", text = "", fg = "#b7bdf8" },
+ { name = "d", text = "", fg = "#b7bdf8" },
+ { name = "query", text = "", fg = "#b7bdf8" },
+ { name = "psb", text = "", fg = "#b7bdf8" },
+ { name = "nu", text = ">", fg = "#b7bdf8" },
+ { name = "mov", text = "", fg = "#b7bdf8" },
+ { name = "lrc", text = "󰨖", fg = "#b7bdf8" },
+ { name = "pyx", text = "", fg = "#b7bdf8" },
+ { name = "pyw", text = "", fg = "#b7bdf8" },
+ { name = "cu", text = "", fg = "#b7bdf8" },
+ { name = "bazel", text = "", fg = "#b7bdf8" },
+ { name = "obj", text = "󰆧", fg = "#b7bdf8" },
+ { name = "pyi", text = "", fg = "#b7bdf8" },
+ { name = "pyd", text = "", fg = "#b7bdf8" },
+ { name = "exe", text = "", fg = "#b7bdf8" },
+ { name = "pyc", text = "", fg = "#b7bdf8" },
+ { name = "fctb", text = "", fg = "#b7bdf8" },
+ { name = "part", text = "", fg = "#b7bdf8" },
+ { name = "blade.php", text = "", fg = "#b7bdf8" },
+ { name = "git", text = "", fg = "#b7bdf8" },
+ { name = "psd", text = "", fg = "#b7bdf8" },
+ { name = "qss", text = "", fg = "#b7bdf8" },
+ { name = "csv", text = "", fg = "#b7bdf8" },
+ { name = "psm1", text = "󰨊", fg = "#b7bdf8" },
+ { name = "dconf", text = "", fg = "#b7bdf8" },
+ { name = "config.ru", text = "", fg = "#b7bdf8" },
+ { name = "prisma", text = "", fg = "#b7bdf8" },
+ { name = "conf", text = "", fg = "#b7bdf8" },
+ { name = "clj", text = "", fg = "#b7bdf8" },
+ { name = "o", text = "", fg = "#b7bdf8" },
+ { name = "mp4", text = "", fg = "#b7bdf8" },
+ { name = "cc", text = "", fg = "#b7bdf8" },
+ { name = "kicad_prl", text = "", fg = "#b7bdf8" },
+ { name = "bz3", text = "", fg = "#b7bdf8" },
+ { name = "asc", text = "󰦝", fg = "#b7bdf8" },
+ { name = "png", text = "", fg = "#b7bdf8" },
+ { name = "android", text = "", fg = "#b7bdf8" },
+ { name = "pm", text = "", fg = "#b7bdf8" },
+ { name = "h", text = "", fg = "#b7bdf8" },
+ { name = "pls", text = "󰲹", fg = "#b7bdf8" },
+ { name = "ipynb", text = "", fg = "#b7bdf8" },
+ { name = "pl", text = "", fg = "#b7bdf8" },
+ { name = "ads", text = "", fg = "#b7bdf8" },
+ { name = "sqlite", text = "", fg = "#b7bdf8" },
+ { name = "pdf", text = "", fg = "#b7bdf8" },
+ { name = "pcm", text = "", fg = "#b7bdf8" },
+ { name = "ico", text = "", fg = "#b7bdf8" },
+ { name = "a", text = "", fg = "#b7bdf8" },
+ { name = "R", text = "󰟔", fg = "#b7bdf8" },
+ { name = "ogg", text = "", fg = "#b7bdf8" },
+ { name = "pxd", text = "", fg = "#b7bdf8" },
+ { name = "kdenlivetitle", text = "", fg = "#b7bdf8" },
+ { name = "jxl", text = "", fg = "#b7bdf8" },
+ { name = "nswag", text = "", fg = "#b7bdf8" },
+ { name = "nim", text = "", fg = "#b7bdf8" },
+ { name = "bqn", text = "⎉", fg = "#b7bdf8" },
+ { name = "cts", text = "", fg = "#b7bdf8" },
+ { name = "fcparam", text = "", fg = "#b7bdf8" },
+ { name = "rs", text = "", fg = "#b7bdf8" },
+ { name = "mpp", text = "", fg = "#b7bdf8" },
+ { name = "fdmdownload", text = "", fg = "#b7bdf8" },
+ { name = "pptx", text = "󰈧", fg = "#b7bdf8" },
+ { name = "jpeg", text = "", fg = "#b7bdf8" },
+ { name = "bib", text = "󱉟", fg = "#b7bdf8" },
+ { name = "vhd", text = "󰍛", fg = "#b7bdf8" },
+ { name = "m", text = "", fg = "#b7bdf8" },
+ { name = "js", text = "", fg = "#b7bdf8" },
+ { name = "eex", text = "", fg = "#b7bdf8" },
+ { name = "tbc", text = "󰛓", fg = "#b7bdf8" },
+ { name = "astro", text = "", fg = "#b7bdf8" },
+ { name = "sha224", text = "󰕥", fg = "#b7bdf8" },
+ { name = "xcplayground", text = "", fg = "#b7bdf8" },
+ { name = "el", text = "", fg = "#b7bdf8" },
+ { name = "m4v", text = "", fg = "#b7bdf8" },
+ { name = "m4a", text = "", fg = "#b7bdf8" },
+ { name = "cs", text = "󰌛", fg = "#b7bdf8" },
+ { name = "hs", text = "", fg = "#b7bdf8" },
+ { name = "tgz", text = "", fg = "#b7bdf8" },
+ { name = "fs", text = "", fg = "#b7bdf8" },
+ { name = "luau", text = "", fg = "#b7bdf8" },
+ { name = "dxf", text = "󰻫", fg = "#b7bdf8" },
+ { name = "download", text = "", fg = "#b7bdf8" },
+ { name = "cast", text = "", fg = "#b7bdf8" },
+ { name = "qrc", text = "", fg = "#b7bdf8" },
+ { name = "lua", text = "", fg = "#b7bdf8" },
+ { name = "lhs", text = "", fg = "#b7bdf8" },
+ { name = "md", text = "", fg = "#b7bdf8" },
+ { name = "leex", text = "", fg = "#b7bdf8" },
+ { name = "ai", text = "", fg = "#b7bdf8" },
+ { name = "lck", text = "", fg = "#b7bdf8" },
+ { name = "kt", text = "", fg = "#b7bdf8" },
+ { name = "bicepparam", text = "", fg = "#b7bdf8" },
+ { name = "hex", text = "", fg = "#b7bdf8" },
+ { name = "zig", text = "", fg = "#b7bdf8" },
+ { name = "bzl", text = "", fg = "#b7bdf8" },
+ { name = "cljc", text = "", fg = "#b7bdf8" },
+ { name = "kicad_dru", text = "", fg = "#b7bdf8" },
+ { name = "fctl", text = "", fg = "#b7bdf8" },
+ { name = "f#", text = "", fg = "#b7bdf8" },
+ { name = "odt", text = "", fg = "#b7bdf8" },
+ { name = "conda", text = "", fg = "#b7bdf8" },
+ { name = "vala", text = "", fg = "#b7bdf8" },
+ { name = "erb", text = "", fg = "#b7bdf8" },
+ { name = "mp3", text = "", fg = "#b7bdf8" },
+ { name = "bz2", text = "", fg = "#b7bdf8" },
+ { name = "coffee", text = "", fg = "#b7bdf8" },
+ { name = "cr", text = "", fg = "#b7bdf8" },
+ { name = "f90", text = "󱈚", fg = "#b7bdf8" },
+ { name = "jwmrc", text = "", fg = "#b7bdf8" },
+ { name = "c++", text = "", fg = "#b7bdf8" },
+ { name = "fcscript", text = "", fg = "#b7bdf8" },
+ { name = "fods", text = "", fg = "#b7bdf8" },
+ { name = "cue", text = "󰲹", fg = "#b7bdf8" },
+ { name = "srt", text = "󰨖", fg = "#b7bdf8" },
+ { name = "info", text = "", fg = "#b7bdf8" },
+ { name = "hh", text = "", fg = "#b7bdf8" },
+ { name = "sig", text = "λ", fg = "#b7bdf8" },
+ { name = "html", text = "", fg = "#b7bdf8" },
+ { name = "iges", text = "󰻫", fg = "#b7bdf8" },
+ { name = "kicad_wks", text = "", fg = "#b7bdf8" },
+ { name = "hbs", text = "", fg = "#b7bdf8" },
+ { name = "fcstd", text = "", fg = "#b7bdf8" },
+ { name = "gresource", text = "", fg = "#b7bdf8" },
+ { name = "sub", text = "󰨖", fg = "#b7bdf8" },
+ { name = "ical", text = "", fg = "#b7bdf8" },
+ { name = "crdownload", text = "", fg = "#b7bdf8" },
+ { name = "pub", text = "󰷖", fg = "#b7bdf8" },
+ { name = "vue", text = "", fg = "#b7bdf8" },
+ { name = "gd", text = "", fg = "#b7bdf8" },
+ { name = "fsx", text = "", fg = "#b7bdf8" },
+ { name = "mkv", text = "", fg = "#b7bdf8" },
+ { name = "py", text = "", fg = "#b7bdf8" },
+ { name = "kicad_sch", text = "", fg = "#b7bdf8" },
+ { name = "epub", text = "", fg = "#b7bdf8" },
+ { name = "env", text = "", fg = "#b7bdf8" },
+ { name = "magnet", text = "", fg = "#b7bdf8" },
+ { name = "elf", text = "", fg = "#b7bdf8" },
+ { name = "fodg", text = "", fg = "#b7bdf8" },
+ { name = "svg", text = "󰜡", fg = "#b7bdf8" },
+ { name = "dwg", text = "󰻫", fg = "#b7bdf8" },
+ { name = "docx", text = "󰈬", fg = "#b7bdf8" },
+ { name = "pro", text = "", fg = "#b7bdf8" },
+ { name = "db", text = "", fg = "#b7bdf8" },
+ { name = "rb", text = "", fg = "#b7bdf8" },
+ { name = "r", text = "󰟔", fg = "#b7bdf8" },
+ { name = "scss", text = "", fg = "#b7bdf8" },
+ { name = "cow", text = "󰆚", fg = "#b7bdf8" },
+ { name = "gleam", text = "", fg = "#b7bdf8" },
+ { name = "v", text = "󰍛", fg = "#b7bdf8" },
+ { name = "kicad_pro", text = "", fg = "#b7bdf8" },
+ { name = "liquid", text = "", fg = "#b7bdf8" },
+ { name = "zip", text = "", fg = "#b7bdf8" },
+]
diff --git a/config/yazi/yazi.toml b/config/yazi/yazi.toml
new file mode 100644
index 000000000..136965e3f
--- /dev/null
+++ b/config/yazi/yazi.toml
@@ -0,0 +1,28 @@
+[mgr]
+linemode = "mtime"
+sort_by = "alphabetical"
+show_symlink = true
+show_hidden = true
+ratio = [1, 1, 3]
+
+[preview]
+max_width = 1920
+max_height = 1080
+image_quality = 90
+image_delay = 0
+
+[open]
+rules = [
+ { mime = "text/*", use = "nvim" },
+ { mime = "image/*", use = "feh" }
+]
+
+[opener]
+nvim = [
+ { run = 'nvim "$@"', block = true }
+]
+
+feh = [
+ { run = 'feh "$@"', block = false }
+]
+