aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreric.marin <maarin.eric@gmail.com>2025-12-02 08:54:27 +0100
committerericmarin <maarin.eric@gmail.com>2026-03-20 10:24:05 +0100
commit2781082f1085757a0cfb929ba37de968726ec751 (patch)
tree96f908c8eccf11d19d77c37c333ed56aa4a437d5
parentc2acdf9cca1de631c7d1c60d7cfba2a7ab816e59 (diff)
downloaddotfiles-2781082f1085757a0cfb929ba37de968726ec751.tar.gz
dotfiles-2781082f1085757a0cfb929ba37de968726ec751.zip
xd
-rw-r--r--README.md2
-rw-r--r--fastfetch/config.jsonc2
-rw-r--r--fish/conf.d/fish_frozen_key_bindings.fish14
-rw-r--r--fish/conf.d/fish_frozen_theme.fish48
-rw-r--r--fish/config.fish23
-rw-r--r--fish/functions/cat.fish3
-rw-r--r--fish/functions/rm.fish3
-rw-r--r--nvim/lua/config/options.lua12
-rw-r--r--nvim/lua/plugins/gitsigns.lua57
-rw-r--r--nvim/lua/plugins/image.lua11
-rw-r--r--nvim/lua/plugins/mini-starter.lua108
-rw-r--r--nvim/lua/plugins/neorg.lua219
-rw-r--r--nvim/lua/plugins/nvim-lspconfig.lua2
-rw-r--r--nvim/lua/plugins/nvim-treesitter.lua100
-rw-r--r--nvim/lua/plugins/toggleterm.lua110
-rwxr-xr-xscripts/set_background19
-rwxr-xr-xscripts/set_random4
-rwxr-xr-xscripts/wallpapermenu20
-rw-r--r--systemd/user/polkit-gnome-agent.service8
-rw-r--r--systemd/user/random-wallpaper.service2
-rw-r--r--systemd/user/random-wallpaper.timer6
-rw-r--r--systemd/user/swaybg.service9
-rw-r--r--systemd/user/swayidle.service8
-rw-r--r--systemd/user/swww.service8
-rw-r--r--wallust/templates/foot2
-rw-r--r--wallust/templates/niri63
-rw-r--r--wallust/templates/rofi-applauncher2
-rw-r--r--wallust/templates/rofi-wallpapermenu3
-rw-r--r--wallust/templates/swaylock2
-rw-r--r--wallust/templates/waybar4
-rw-r--r--wallust/wallust.toml6
-rw-r--r--yazi/init.lua1
-rw-r--r--yazi/keymap.toml368
-rw-r--r--yazi/package.toml7
-rw-r--r--yazi/theme.toml959
-rw-r--r--yazi/yazi.toml213
36 files changed, 2104 insertions, 324 deletions
diff --git a/README.md b/README.md
index 15a2b22..c32db93 100644
--- a/README.md
+++ b/README.md
@@ -9,4 +9,4 @@ These are current my dotfiles:
- Editor: [neovim](https://github.com/neovim/neovim)
- Colorscheme: [wallust](https://codeberg.org/explosion-mental/wallust)
-The missing configuration files are in ```wallust/templates/```
+The missing configuration files are in ```wallust/templates/```.
diff --git a/fastfetch/config.jsonc b/fastfetch/config.jsonc
index 44efac7..472ad13 100644
--- a/fastfetch/config.jsonc
+++ b/fastfetch/config.jsonc
@@ -3,7 +3,7 @@
// | __| |__ | | | | __| __| | | | --| |
// |__| |__|__|_____| |_| |__| |_____| |_| |_____|__|__| ARCH
//
-// by Bina
+// by Bina, modified by eric-marin
// execute with: fastfetch --colors-block-range-start 9 --colors-block-width 3
diff --git a/fish/conf.d/fish_frozen_key_bindings.fish b/fish/conf.d/fish_frozen_key_bindings.fish
new file mode 100644
index 0000000..495aee9
--- /dev/null
+++ b/fish/conf.d/fish_frozen_key_bindings.fish
@@ -0,0 +1,14 @@
+# This file was created by fish when upgrading to version 4.3, to migrate
+# the 'fish_key_bindings' variable from its old default scope (universal)
+# to its new default scope (global). We recommend you delete this file
+# and configure key bindings in ~/.config/fish/config.fish if needed.
+
+# set --global fish_key_bindings fish_default_key_bindings
+
+# Prior to version 4.3, fish shipped an event handler that runs
+# `set --universal fish_key_bindings fish_default_key_bindings`
+# whenever the fish_key_bindings variable is erased.
+# This means that as long as any fish < 4.3 is still running on this system,
+# we cannot complete the migration.
+# As a workaround, erase the universal variable at every shell startup.
+set --erase --universal fish_key_bindings
diff --git a/fish/conf.d/fish_frozen_theme.fish b/fish/conf.d/fish_frozen_theme.fish
new file mode 100644
index 0000000..59c07df
--- /dev/null
+++ b/fish/conf.d/fish_frozen_theme.fish
@@ -0,0 +1,48 @@
+# This file was created by fish when upgrading to version 4.3, to migrate
+# theme variables from universal to global scope.
+# Don't edit this file, as it will be written by the web-config tool (`fish_config`).
+# To customize your theme, delete this file and see
+# help interactive#syntax-highlighting
+# or
+# man fish-interactive | less +/^SYNTAX.HIGHLIGHTING
+# for appropriate commands to add to ~/.config/fish/config.fish instead.
+# See also the release notes for fish 4.3.0 (run `help relnotes`).
+
+set --global fish_color_autosuggestion brblack
+set --global fish_color_cancel --reverse
+set --global fish_color_command blue
+set --global fish_color_comment red
+set --global fish_color_cwd green
+set --global fish_color_cwd_root red
+set --global fish_color_end green
+set --global fish_color_error brred
+set --global fish_color_escape brcyan
+set --global fish_color_history_current --bold
+set --global fish_color_host normal
+set --global fish_color_host_remote yellow
+set --global fish_color_keyword normal
+set --global fish_color_match --background=brblue
+set --global fish_color_normal normal
+set --global fish_color_operator brcyan
+set --global fish_color_option cyan
+set --global fish_color_param cyan
+set --global fish_color_quote yellow
+set --global fish_color_redirection cyan --bold
+set --global fish_color_search_match bryellow --background=brblack
+set --global fish_color_selection white --bold --background=brblack
+set --global fish_color_status red
+set --global fish_color_user brgreen
+set --global fish_color_valid_path --underline
+set --global fish_pager_color_background
+set --global fish_pager_color_completion normal
+set --global fish_pager_color_description yellow --italics
+set --global fish_pager_color_prefix normal --bold --underline
+set --global fish_pager_color_progress brwhite --background=cyan
+set --global fish_pager_color_secondary_background
+set --global fish_pager_color_secondary_completion
+set --global fish_pager_color_secondary_description
+set --global fish_pager_color_secondary_prefix
+set --global fish_pager_color_selected_background --reverse
+set --global fish_pager_color_selected_completion
+set --global fish_pager_color_selected_description
+set --global fish_pager_color_selected_prefix
diff --git a/fish/config.fish b/fish/config.fish
index 50941d1..731f042 100644
--- a/fish/config.fish
+++ b/fish/config.fish
@@ -8,28 +8,15 @@ function fish_prompt
end) \ (set_color $fish_color_cwd) (prompt_pwd --full-length-dirs 5) (set_color normal)
end
-function start_niri
- if systemctl --user -q is-active niri.service
- echo 'A Niri session is already running.'
- exit 1
- end
- systemctl --user reset-failed
- dbus-update-activation-environment --all
- systemctl --user --wait start niri.service
- systemctl --user start --job-mode=replace-irreversibly niri-shutdown.target
- systemctl --user unset-environment WAYLAND_DISPLAY XDG_SESSION_TYPE XDG_CURRENT_DESKTOP NIRI_SOCKET
-end
-
fish_add_path -p ~/.cargo/bin ~/.ghcup/bin
set -U fish_greeting
set EDITOR "neovim"
-export DISPLAY=:0
if status is-login
- start_niri
- kill $fish_pid
+ killall ssh-agent 1> /dev/null 2>&1
+ eval (ssh-agent -c) 1> /dev/null 2>&1
+ ssh-add ~/.ssh/zenbook 1> /dev/null 2>&1
+ exec niri-session -l 1> /dev/null 2>&1
end
-
-# Created by `pipx` on 2025-05-03 19:57:49
-set PATH $PATH /home/eric.marin/.local/bin
+zoxide init fish | source
diff --git a/fish/functions/cat.fish b/fish/functions/cat.fish
new file mode 100644
index 0000000..73b5541
--- /dev/null
+++ b/fish/functions/cat.fish
@@ -0,0 +1,3 @@
+function cat --wraps=bat --description 'alias cat bat'
+ bat $argv
+end
diff --git a/fish/functions/rm.fish b/fish/functions/rm.fish
new file mode 100644
index 0000000..7d8fe20
--- /dev/null
+++ b/fish/functions/rm.fish
@@ -0,0 +1,3 @@
+function rm --wraps=trash --description 'alias rm trash'
+ trash $argv
+end
diff --git a/nvim/lua/config/options.lua b/nvim/lua/config/options.lua
index deeeb2e..e465418 100644
--- a/nvim/lua/config/options.lua
+++ b/nvim/lua/config/options.lua
@@ -2,14 +2,24 @@ local opt = vim.opt
-- Indent
opt.tabstop = 2
+opt.softtabstop = 2
opt.shiftwidth = 2
opt.expandtab = false
opt.smartindent = true
opt.wrap = false
+vim.api.nvim_create_autocmd("FileType", {
+ pattern = "bend",
+ callback = function()
+ vim.opt_local.expandtab = true
+ vim.opt_local.tabstop = 4
+ vim.opt_local.shiftwidth = 4
+ end,
+})
+
-- Appearance
opt.number = true
-opt.relativenumber = true
+opt.relativenumber = false
opt.cursorline = true
opt.termguicolors = true
opt.showmode = true
diff --git a/nvim/lua/plugins/gitsigns.lua b/nvim/lua/plugins/gitsigns.lua
new file mode 100644
index 0000000..2df9a2e
--- /dev/null
+++ b/nvim/lua/plugins/gitsigns.lua
@@ -0,0 +1,57 @@
+local opts = {
+ signs = {
+ add = { text = '┃' },
+ change = { text = '┃' },
+ delete = { text = '_' },
+ topdelete = { text = '‾' },
+ changedelete = { text = '~' },
+ untracked = { text = '┆' },
+ },
+ signs_staged = {
+ add = { text = '┃' },
+ change = { text = '┃' },
+ delete = { text = '_' },
+ topdelete = { text = '‾' },
+ changedelete = { text = '~' },
+ untracked = { text = '┆' },
+ },
+ signs_staged_enable = true,
+ signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
+ numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
+ linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
+ word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
+ watch_gitdir = {
+ follow_files = true
+ },
+ auto_attach = true,
+ attach_to_untracked = false,
+ current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
+ current_line_blame_opts = {
+ virt_text = true,
+ virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
+ delay = 1000,
+ ignore_whitespace = false,
+ virt_text_priority = 100,
+ use_focus = true,
+ },
+ current_line_blame_formatter = '<author>, <author_time:%R> - <summary>',
+ sign_priority = 6,
+ update_debounce = 100,
+ status_formatter = nil, -- Use default
+ max_file_length = 40000, -- Disable if file is longer than this (in lines)
+ preview_config = {
+ -- Options passed to nvim_open_win
+ style = 'minimal',
+ relative = 'cursor',
+ row = 0,
+ col = 1
+ },
+}
+
+return {
+ "lewis6991/gitsigns.nvim",
+ lazy = true,
+ event = "VeryLazy",
+ -- event = { "BufReadPost", "BufWritePost", "BufNewFile" },
+ opts = opts,
+}
diff --git a/nvim/lua/plugins/image.lua b/nvim/lua/plugins/image.lua
new file mode 100644
index 0000000..b1dc285
--- /dev/null
+++ b/nvim/lua/plugins/image.lua
@@ -0,0 +1,11 @@
+return {
+ "3rd/image.nvim",
+ build = false, -- so that it doesn't build the rock https://github.com/3rd/image.nvim/issues/91#issuecomment-2453430239
+ ft = "norg",
+ opts = {
+ backend = "sixel",
+ processor = "magick_cli",
+ only_render_image_at_cursor = true,
+ only_render_image_at_cursor_mode = "popup",
+ }
+}
diff --git a/nvim/lua/plugins/mini-starter.lua b/nvim/lua/plugins/mini-starter.lua
index 8b216a1..67aae04 100644
--- a/nvim/lua/plugins/mini-starter.lua
+++ b/nvim/lua/plugins/mini-starter.lua
@@ -1,5 +1,5 @@
Headers = {
- [[
+ [[
███╗ ██╗ ███████╗ ██████╗ ██╗ ██╗ ██╗ ███╗ ███╗
████╗ ██║ ██╔════╝██╔═══██╗ ██║ ██║ ██║ ████╗ ████║
██╔██╗ ██║ █████╗ ██║ ██║ ██║ ██║ ██║ ██╔████╔██║
@@ -7,7 +7,7 @@ Headers = {
██║ ╚████║ ███████╗╚██████╔╝ ╚████╔╝ ██║ ██║ ╚═╝ ██║
╚═╝ ╚═══╝ ╚══════╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝
]],
- [[
+ [[
███▄ █ ▓█████ ▒█████ ██▒ █▓ ██▓ ███▄ ▄███▓
██ ▀█ █ ▓█ ▀ ▒██▒ ██▒▓██░ █▒▓██▒▓██▒▀█▀ ██▒
▓██ ▀█ ██▒▒███ ▒██░ ██▒ ▓██ █▒░▒██▒▓██ ▓██░
@@ -19,7 +19,7 @@ Headers = {
░ ░ ░ ░ ░ ░ ░ ░
]],
- [[
+ [[
██████ █████ █████ █████ ███
░░██████ ░░███ ░░███ ░░███ ░░░
░███░███ ░███ ██████ ██████ ░███ ░███ ████ █████████████
@@ -29,14 +29,14 @@ Headers = {
█████ ░░█████░░██████ ░░██████ ░░███ █████ █████░███ █████
░░░░░ ░░░░░ ░░░░░░ ░░░░░░ ░░░ ░░░░░ ░░░░░ ░░░ ░░░░░
]],
- [[
+ [[
▐ ▄ ▄▄▄ . ▌ ▐·▪ • ▌ ▄ ·.
•█▌▐█▀▄.▀· ▄█▀▄ ▪█·█▌██ ·██ ▐███▪
▐█▐▐▌▐▀▀▪▄▐█▌.▐▌▐█▐█•▐█·▐█ ▌▐▌▐█·
██▐█▌▐█▄▄▌▐█▌.▐▌ ███ ▐█▌██ ██▌▐█▌
▀▀ █▪ ▀▀▀ ▀█▄▀▪. ▀ ▀▀▀▀▀ █▪▀▀▀
]],
- [[
+ [[
__ __ ________ ______ __ __ ______ __ __
| \ | \ \/ \| \ | \ \ \ / \
| ▓▓\ | ▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓\ ▓▓ | ▓▓\▓▓▓▓▓▓ ▓▓\ / ▓▓
@@ -47,7 +47,7 @@ Headers = {
| ▓▓ \▓▓▓ ▓▓ \\▓▓ ▓▓ \▓▓▓ | ▓▓ \ ▓▓ \▓ | ▓▓
\▓▓ \▓▓\▓▓▓▓▓▓▓▓ \▓▓▓▓▓▓ \▓ \▓▓▓▓▓▓\▓▓ \▓▓
]],
- [[
+ [[
▀███▄ ▀███▀███▀▀▀███ ▄▄█▀▀██▄ ▀████▀ ▀███▀████▀████▄ ▄███▀
███▄ █ ██ ▀█▄██▀ ▀██▄ ▀██ ▄█ ██ ████ ████
█ ███ █ ██ █ ██▀ ▀██ ██▄ ▄█ ██ █ ██ ▄█ ██
@@ -58,7 +58,7 @@ Headers = {
▓ ▓▓▓ ▓▓ ▓▓█▓▓▓ ▓▓▓ ▓▓▒▒ ▒▓ ▒ ▀▓▓▀ ▓▓
▒ ▒ ▒ ▒▓▓▒ ▒▒▒▓▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒▓▒ ▒▒ ▒▒▒ ▒ ▒ ▒▒▒
]],
- [[
+ [[
⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣿⣶⣿⣦⣼⣆
⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦
⠈⢿⣿⣟⠦ ⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄
@@ -71,7 +71,7 @@ Headers = {
⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆
⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⡟⢀⣀⣤⣾⡿⠃
]],
- [[
+ [[
,-. _,---._ __ / \
/ ) .-' `./ / \
( ( ,' `/ /|
@@ -84,13 +84,13 @@ Headers = {
) | \ `.___________|/
`--' `--'
]],
- [[
+ [[
|\ _,,,---,,_
ZZZzz /,`.-'`' -. ;-;;,_
|,4- ) )-,_. ,\ ( `'-'
'---''(_/--' `-'\_)
]],
- [[
+ [[
╭╮╭┬─╮╭─╮┬ ┬┬╭┬╮
│││├┤ │ │╰┐┌╯││││
╯╰╯╰─╯╰─╯ ╰╯ ┴┴ ┴
@@ -98,86 +98,86 @@ Headers = {
}
Quotes = {
- [[
+ [[
I don't care that they stole my idea... I care that they don't have any of their own.
~ Nikola Tesla
]],
- [[
+ [[
Make everything as simple as possible, but not simpler.
~ Albert Einstein
]],
- [[
+ [[
Code never lies, comments sometimes do.
~ Ron Jeffries
]],
- [[
+ [[
Good code is its own best documentation.
~ Steve McConnell
]],
- [[
+ [[
I do not fear computers. I fear the lack of them.
~ Isaac Asimov
]],
- [[
+ [[
If a machine is expected to be infallible, it cannot also be intelligent.
~ Alan Turing
]],
- [[
+ [[
Mathematical reasoning may be regarded.
~ Alan Turing
]],
- [[
+ [[
Anti-social behavior is a trait of intelligence in a world full of conformists.
~ Nikola Tesla
]],
- [[
+ [[
We are very, very small, but we are profoundly capable of very, very big things.
~ Stephen Hawking
]],
- [[
+ [[
Quiet people have the loudest minds.
~ Stephen Hawking
]],
- [[
+ [[
An idiot admires complexity, a genius admires simplicity.
~ Terry Davis
]],
- [[
+ [[
It's hardware that makes a machine fast. It's software that makes a fast machine slow.
~ Craig Reucassel
]],
- [[
+ [[
Computer science is no more about computers than astronomy is about telescopes.
~ Edsger Dijkstra
]],
- [[
+ [[
An algorithm must be seen to be believed.
~ Donald Knuth
]],
- [[
+ [[
In theory there is no difference between theory and practice.
In practice there is.
~ Yogi Berra
]],
- [[
+ [[
If Java had true garbage collection, most programs would delete themselves upon execution.
~ Robert Sewell
]],
- [[
+ [[
If debugging is the process of removing software bugs,
then programming must be the process of putting them in.
~ Edsger Dijkstra
]],
- [[
+ [[
Most of you are familiar with the virtues of a programmer.
There are three, of course: laziness, impatience, and hubris.
~ Larry Wall
]],
- [[
+ [[
The question of whether computers can think is like the question of whether submarines can swim.
~ Edsger Dijkstra
]],
- [[
+ [[
Of course, I'd also suggest that whoever was the genius who thought it was a good idea to read
things ONE F*CKING BYTE AT A TIME with system calls for each byte should be retroactively aborted.
Who the f*ck does idiotic things like that? How did they not die as babies, considering that they
@@ -190,38 +190,38 @@ Quotes = {
math.randomseed(os.time())
local header = function()
- return Headers[math.random(#Headers)]
+ return Headers[math.random(#Headers)]
end
local footer = function()
- return Quotes[math.random(#Quotes)]
+ return Quotes[math.random(#Quotes)]
end
local config = function()
- local starter = require("mini.starter")
- vim.keymap.set("n", "<Space>d", starter.open, { desc = "Dashboard" })
- starter.setup({
- autoopen = true,
- evaluate_single = false,
- items = {
- starter.sections.recent_files(5, false, true),
- { name = "Plugin Manager", action = "Lazy", section = "Actions" },
- { name = "File Browser", action = "Oil --float", section = "Actions" },
- { name = "Neorg Index", action = "Neorg index", section = "Actions" },
- { name = 'Edit new buffer', action = 'enew', section = 'Actions' },
- { name = 'Quit Neovim', action = 'qall', section = 'Actions' },
- },
- header = header,
- footer = footer,
- content_hooks = nil,
- query_updaters = "abcdefghijklmnopqrstuvwxyz0123456789_-.",
- silent = false,
- })
+ local starter = require("mini.starter")
+ vim.keymap.set("n", "<Space>d", starter.open, { desc = "Dashboard" })
+ starter.setup({
+ autoopen = true,
+ evaluate_single = false,
+ items = {
+ starter.sections.recent_files(5, false, true),
+ { name = "Plugin Manager", action = "Lazy", section = "Actions" },
+ { name = "File Browser", action = "Oil --float", section = "Actions" },
+ { name = "Neorg Index", action = "Neorg index", section = "Actions" },
+ { name = 'Edit new buffer', action = 'enew', section = 'Actions' },
+ { name = 'Quit Neovim', action = 'qall', section = 'Actions' },
+ },
+ header = header,
+ footer = footer,
+ content_hooks = nil,
+ query_updaters = "abcdefghijklmnopqrstuvwxyz0123456789_-.",
+ silent = false,
+ })
end
return {
- "echasnovski/mini.starter",
- lazy = false,
- config = config
+ "echasnovski/mini.starter",
+ lazy = false,
+ config = config
}
diff --git a/nvim/lua/plugins/neorg.lua b/nvim/lua/plugins/neorg.lua
index a36aff5..77bb71f 100644
--- a/nvim/lua/plugins/neorg.lua
+++ b/nvim/lua/plugins/neorg.lua
@@ -1,120 +1,117 @@
local config = function()
- vim.api.nvim_create_autocmd("Filetype", {
- pattern = "norg",
- callback = function()
- -- remap keybinds
- vim.keymap.set("n", "<Space>nn", "<Plug>(neorg.dirman.new-note)", { buffer = true })
- vim.keymap.set("n", "<Space>tc", "<cmd>Neorg toc<CR>", { buffer = true })
+ vim.api.nvim_create_autocmd("Filetype", {
+ pattern = "norg",
+ callback = function()
+ -- remap keybinds
+ vim.keymap.set("n", "<Space>nn", "<Plug>(neorg.dirman.new-note)", { buffer = true })
+ vim.keymap.set("n", "<Space>tc", "<cmd>Neorg toc<CR>", { buffer = true })
- vim.keymap.set("i", "<C-d>", "<Plug>(neorg.promo.demote)", { buffer = true })
- vim.keymap.set("i", "<C-t>", "<Plug>(neorg.promo.promote)", { buffer = true })
- vim.keymap.set("i", "<M-CR>", "<Plug>(neorg.itero.next-iteration)", { buffer = true })
- vim.keymap.set("i", "<M-d>", "<Plug>(neorg.tempus.insert-date.insert-mode)", { buffer = true })
+ vim.keymap.set("i", "<C-d>", "<Plug>(neorg.promo.demote)", { buffer = true })
+ vim.keymap.set("i", "<C-t>", "<Plug>(neorg.promo.promote)", { buffer = true })
+ vim.keymap.set("i", "<M-CR>", "<Plug>(neorg.itero.next-iteration)", { buffer = true })
+ vim.keymap.set("i", "<M-d>", "<Plug>(neorg.tempus.insert-date.insert-mode)", { buffer = true })
- vim.keymap.set("n", "<.", "<Plug>(neorg.promo.demote)", { buffer = true })
- vim.keymap.set("n", "<<", "<Plug>(neorg.promo.demote.nested)", { buffer = true })
- vim.keymap.set("n", "<C-Space>", "<Plug>(neorg.qol.todo-items.todo.task-cycle)", { buffer = true })
- vim.keymap.set("n", "<CR>", "<Plug>(neorg.esupports.hop.hop-link)", { buffer = true })
- vim.keymap.set("n", "<Space>cm", "<Plug>(neorg.looking-glass.magnify-code-block)", { buffer = true })
- vim.keymap.set("n", "<Space>id", "<Plug>(neorg.tempus.insert-date)", { buffer = true })
- vim.keymap.set("n", "<Space>li", "<Plug>(neorg.pivot.list.invert)", { buffer = true })
- vim.keymap.set("n", "<Space>lt", "<Plug>(neorg.pivot.list.toggle)", { buffer = true })
- vim.keymap.set("n", "<Space>ma", "<Plug>(neorg.qol.todo-items.todo.task-ambiguous)", { buffer = true })
- vim.keymap.set("n", "<Space>mc", "<Plug>(neorg.qol.todo-items.todo.task-cancelled)", { buffer = true })
- vim.keymap.set("n", "<Space>md", "<Plug>(neorg.qol.todo-items.todo.task-done)", { buffer = true })
- vim.keymap.set("n", "<Space>mh", "<Plug>(neorg.qol.todo-items.todo.task-on-hold)", { buffer = true })
- vim.keymap.set("n", "<Space>mi", "<Plug>(neorg.qol.todo-items.todo.task-important)", { buffer = true })
- vim.keymap.set("n", "<Space>mp", "<Plug>(neorg.qol.todo-items.todo.task-pending)", { buffer = true })
- vim.keymap.set("n", "<Space>mr", "<Plug>(neorg.qol.todo-items.todo.task-recurring)", { buffer = true })
- vim.keymap.set("n", "<Space>mu", "<Plug>(neorg.qol.todo-items.todo.task-undone)", { buffer = true })
- vim.keymap.set("n", "<M-CR>", "<Plug>(neorg.esupports.hop.hop-link.vsplit)", { buffer = true })
- vim.keymap.set("n", "<M-t>", "<Plug>(neorg.esupports.hop.hop-link.tab-drop)", { buffer = true })
- vim.keymap.set("n", ">.", "Plug>(neorg.promo.promote)", { buffer = true })
- vim.keymap.set("n", ">>", "Plug>(neorg.promo.promote.nested)", { buffer = true })
+ vim.keymap.set("n", "<.", "<Plug>(neorg.promo.demote)", { buffer = true })
+ vim.keymap.set("n", "<<", "<Plug>(neorg.promo.demote.nested)", { buffer = true })
+ vim.keymap.set("n", "<C-Space>", "<Plug>(neorg.qol.todo-items.todo.task-cycle)", { buffer = true })
+ vim.keymap.set("n", "<CR>", "<Plug>(neorg.esupports.hop.hop-link)", { buffer = true })
+ vim.keymap.set("n", "<Space>cm", "<Plug>(neorg.looking-glass.magnify-code-block)", { buffer = true })
+ vim.keymap.set("n", "<Space>id", "<Plug>(neorg.tempus.insert-date)", { buffer = true })
+ vim.keymap.set("n", "<Space>li", "<Plug>(neorg.pivot.list.invert)", { buffer = true })
+ vim.keymap.set("n", "<Space>lt", "<Plug>(neorg.pivot.list.toggle)", { buffer = true })
+ vim.keymap.set("n", "<Space>ma", "<Plug>(neorg.qol.todo-items.todo.task-ambiguous)", { buffer = true })
+ vim.keymap.set("n", "<Space>mc", "<Plug>(neorg.qol.todo-items.todo.task-cancelled)", { buffer = true })
+ vim.keymap.set("n", "<Space>md", "<Plug>(neorg.qol.todo-items.todo.task-done)", { buffer = true })
+ vim.keymap.set("n", "<Space>mh", "<Plug>(neorg.qol.todo-items.todo.task-on-hold)", { buffer = true })
+ vim.keymap.set("n", "<Space>mi", "<Plug>(neorg.qol.todo-items.todo.task-important)", { buffer = true })
+ vim.keymap.set("n", "<Space>mp", "<Plug>(neorg.qol.todo-items.todo.task-pending)", { buffer = true })
+ vim.keymap.set("n", "<Space>mr", "<Plug>(neorg.qol.todo-items.todo.task-recurring)", { buffer = true })
+ vim.keymap.set("n", "<Space>mu", "<Plug>(neorg.qol.todo-items.todo.task-undone)", { buffer = true })
+ vim.keymap.set("n", "<M-CR>", "<Plug>(neorg.esupports.hop.hop-link.vsplit)", { buffer = true })
+ vim.keymap.set("n", "<M-t>", "<Plug>(neorg.esupports.hop.hop-link.tab-drop)", { buffer = true })
+ vim.keymap.set("n", ">.", "Plug>(neorg.promo.promote)", { buffer = true })
+ vim.keymap.set("n", ">>", "Plug>(neorg.promo.promote.nested)", { buffer = true })
- vim.keymap.set("v", "<", "<Plug>(neorg.promo.demote.range)", { buffer = true })
- vim.keymap.set("v", ">", "<Plug>(neorg.promo.promote.range)", { buffer = true })
- end,
- })
+ vim.keymap.set("v", "<", "<Plug>(neorg.promo.demote.range)", { buffer = true })
+ vim.keymap.set("v", ">", "<Plug>(neorg.promo.promote.range)", { buffer = true })
+ end,
+ })
- require("neorg").setup({
- load = {
- ["core.defaults"] = {
- config = {
- disable = {
- "core.esupports.metagen",
- "core.journal",
- }
- }
- },
- ["core.keybinds"] = {
- config = {
- default_keybinds = false
- }
- },
- ["core.summary"] = {},
- -- ["core.latex.renderer"] = {},
- ["core.export"] = {},
- ["core.dirman"] = {
- config = {
- default_workspace = "documents",
- workspaces = {
- documents = "~/Documents/neorg",
- physics = "~/Documents/neorg/uni/fisica",
- asd = "~/Documents/neorg/uni/algoritmi-strutture-dati",
- },
- index = "index.norg"
- }
- },
- ["core.completion"] = {
- config = {
- engine = "nvim-cmp"
- }
- },
- ["core.journal"] = {
- config = {
- journal_folder = "journal",
- workspace = "documents"
- }
- },
- ["core.esupports.metagen"] = {
- config = {
- timezone = "implicit-local",
- type = "auto"
- }
- },
- ["core.concealer"] = {
- config = {
- icons = {
- heading = {
- icons = { "󰲠", "󰲢", "󰲤", "󰲦", "󰲨", "󰲪" },
- },
- todo = {
- cancelled = { icon = "" },
- pending = { icon = "󰔛" },
- uncertain = { icon = "" },
- urgent = { icon = "" },
- },
- code_block = {
- conceal = true,
- width = "content",
- padding = {
- right = 1,
- }
- }
- }
- }
- }
- }
- })
+ require("neorg").setup({
+ load = {
+ ["core.defaults"] = {
+ config = {
+ disable = {
+ "core.esupports.metagen",
+ "core.journal",
+ }
+ }
+ },
+ ["core.keybinds"] = {
+ config = {
+ default_keybinds = false
+ }
+ },
+ ["core.summary"] = {},
+ -- ["core.latex.renderer"] = {},
+ ["core.export"] = {},
+ ["core.dirman"] = {
+ config = {
+ default_workspace = "documents",
+ workspaces = {
+ documents = "~/Documents/neorg",
+ physics = "~/Documents/neorg/uni/fisica",
+ asd = "~/Documents/neorg/uni/algoritmi-strutture-dati",
+ },
+ index = "index.norg"
+ }
+ },
+ ["core.completion"] = {
+ config = {
+ engine = "nvim-cmp"
+ }
+ },
+ ["core.journal"] = {
+ config = {
+ journal_folder = "journal",
+ workspace = "documents"
+ }
+ },
+ ["core.esupports.metagen"] = {
+ config = {
+ timezone = "implicit-local",
+ type = "auto"
+ }
+ },
+ ["core.concealer"] = {
+ config = {
+ folds = false,
+ icons = {
+ heading = {
+ icons = { "󰲠", "󰲢", "󰲤", "󰲦", "󰲨", "󰲪" },
+ },
+ todo = {
+ cancelled = { icon = "" },
+ pending = { icon = "󰔛" },
+ uncertain = { icon = "" },
+ urgent = { icon = "" },
+ },
+ code_block = {
+ conceal = true,
+ }
+ }
+ }
+ }
+ }
+ })
end
return {
- "nvim-neorg/neorg",
- lazy = true,
- ft = "norg",
- cmd = "Neorg",
- version = "*", -- Pin Neorg to the latest stable release
- config = config,
- -- dependencies = { "3rd/image.nvim" }
+ "nvim-neorg/neorg",
+ lazy = true,
+ ft = "norg",
+ cmd = "Neorg",
+ version = "*", -- Pin Neorg to the latest stable release
+ config = config,
+ -- dependencies = { "3rd/image.nvim" }
}
diff --git a/nvim/lua/plugins/nvim-lspconfig.lua b/nvim/lua/plugins/nvim-lspconfig.lua
index 45f77b7..e464144 100644
--- a/nvim/lua/plugins/nvim-lspconfig.lua
+++ b/nvim/lua/plugins/nvim-lspconfig.lua
@@ -123,5 +123,5 @@ return {
"neovim/nvim-lspconfig",
config = config,
lazy = true,
- event = { "BufReadPost", "BufWritePost", "BufNewFile" }
+ event = { "FileType" },
}
diff --git a/nvim/lua/plugins/nvim-treesitter.lua b/nvim/lua/plugins/nvim-treesitter.lua
index 103d5d9..c28386d 100644
--- a/nvim/lua/plugins/nvim-treesitter.lua
+++ b/nvim/lua/plugins/nvim-treesitter.lua
@@ -1,53 +1,63 @@
local config = function()
- require("nvim-treesitter.configs").setup({
- ensure_installed = {
- "c",
- "lua",
- "markdown",
- "vim",
- "vimdoc",
- "query",
+ require("nvim-treesitter.configs").setup({
+ ensure_installed = {
+ "c",
+ "lua",
+ "markdown",
+ "vim",
+ "vimdoc",
+ "query",
- "regex",
- "diff",
- "cmake",
- "meson",
- "markdown_inline",
- "bash",
- "toml",
- "latex",
+ "regex",
+ "diff",
+ "cmake",
+ "meson",
+ "markdown_inline",
+ "bash",
+ "toml",
+ "latex",
- "cpp",
- "rust",
- "haskell",
- "nix",
- "javascript",
- "norg",
- "fish",
- "kdl",
- },
- auto_install = false,
- highlight = {
- enable = true,
- additional_vim_regex_highlighting = false,
- },
- incremental_selection = {
- enable = true
- },
- indent = {
- enable = true,
- },
- autotag = {
- enable = true,
- },
- })
+ "cpp",
+ "rust",
+ "haskell",
+ "nix",
+ "javascript",
+ "norg",
+ "fish",
+ "kdl",
+ "bend",
+ },
+ auto_install = false,
+ sync_install = false,
+ highlight = {
+ enable = true,
+ additional_vim_regex_highlighting = false,
+ },
+ incremental_selection = {
+ enable = true
+ },
+ indent = {
+ enable = true,
+ },
+ autotag = {
+ enable = true,
+ },
+ })
- vim.cmd(":TSUpdate")
+ vim.filetype.add({
+ extension = {
+ bend = "bend",
+ },
+ })
+
+ vim.treesitter.language.register("bend", { "bend" })
+
+ vim.cmd(":TSUpdate")
end
return {
- "nvim-treesitter/nvim-treesitter",
- lazy = true,
- event = { "BufReadPost", "BufWritePost", "BufNewFile" },
- config = config,
+ "nvim-treesitter/nvim-treesitter",
+ lazy = true,
+ event = { "BufReadPost", "BufWritePost", "BufNewFile" },
+ config = config,
}
diff --git a/nvim/lua/plugins/toggleterm.lua b/nvim/lua/plugins/toggleterm.lua
index 0426436..902cf4b 100644
--- a/nvim/lua/plugins/toggleterm.lua
+++ b/nvim/lua/plugins/toggleterm.lua
@@ -1,64 +1,64 @@
local init = function()
- local keymap = vim.keymap
- keymap.set("n", "<C-t>", ":ToggleTerm<Enter>",
- { noremap = true, silent = true, desc = "Terminal (ToggleTerm)" }) -- Terminal
- keymap.set("t", "<C-t>", "<C-\\><C-n>:ToggleTerm<Enter>")
- keymap.set("n", "<Space>g", ":ToggleLazyGit<Enter>",
- { noremap = true, silent = true, desc = "LazyGit (ToggleTerm)" }) -- LazyGit
+ local keymap = vim.keymap
+ keymap.set("n", "<C-t>", ":ToggleTerm<Enter>",
+ { noremap = true, silent = true, desc = "Terminal (ToggleTerm)" }) -- Terminal
+ keymap.set("t", "<C-t>", "<C-\\><C-n>:ToggleTerm<Enter>")
+ keymap.set("n", "<Space>g", ":ToggleLazyGit<Enter>",
+ { noremap = true, silent = true, desc = "LazyGit (ToggleTerm)" }) -- LazyGit
end
local config = function()
- require("toggleterm").setup {
- autochdir = false,
- direction = "float",
- open_mapping = [[<c-t>]],
- terminal_mappings = true,
- start_in_insert = true,
- float_opts = {
- border = "curved",
- },
- on_open = function(term)
- local cwd = vim.fn.getcwd()
- if term.dir ~= cwd then
- term:send("cd " .. cwd .. " && clear")
- term.dir = cwd
- end
- end,
- }
- local Terminal = require("toggleterm.terminal").Terminal
- local opts = {
- noremap = true, -- non-recursive
- silent = true, -- do not show message
- }
+ require("toggleterm").setup {
+ autochdir = false,
+ direction = "float",
+ open_mapping = [[<c-t>]],
+ terminal_mappings = true,
+ start_in_insert = true,
+ float_opts = {
+ border = "curved",
+ },
+ on_open = function(term)
+ local cwd = vim.fn.getcwd()
+ if term.dir ~= cwd then
+ term:send("cd " .. cwd .. " && clear")
+ term.dir = cwd
+ end
+ end,
+ }
+ local Terminal = require("toggleterm.terminal").Terminal
+ local opts = {
+ noremap = true, -- non-recursive
+ silent = true, -- do not show message
+ }
- -- LazyGit
- local lazygit = Terminal:new({
- cmd = "lazygit",
- dir = "git_dir",
- direction = "float",
- float_opts = {
- border = "curved",
- },
- -- function to run on opening the terminal
- on_open = function(term)
- vim.cmd("startinsert!")
- vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", ":close<Enter>", opts)
- end,
- -- function to run on closing the terminal
- on_close = function()
- vim.cmd("startinsert!")
- end,
- })
- local function toggle_lazygit()
- lazygit:toggle()
- end
- vim.api.nvim_create_user_command("ToggleLazyGit", toggle_lazygit, {})
+ -- LazyGit
+ local lazygit = Terminal:new({
+ cmd = "lazygit",
+ dir = "git_dir",
+ direction = "float",
+ float_opts = {
+ border = "curved",
+ },
+ -- function to run on opening the terminal
+ on_open = function(term)
+ vim.cmd("startinsert!")
+ vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", ":close<Enter>", opts)
+ end,
+ -- function to run on closing the terminal
+ on_close = function()
+ vim.cmd("startinsert!")
+ end,
+ })
+ local function toggle_lazygit()
+ lazygit:toggle()
+ end
+ vim.api.nvim_create_user_command("ToggleLazyGit", toggle_lazygit, {})
end
return {
- "akinsho/toggleterm.nvim",
- lazy = true,
- cmd = { "ToggleTerm", "ToggleLazyGit" },
- init = init,
- config = config,
+ "akinsho/toggleterm.nvim",
+ lazy = true,
+ cmd = { "ToggleTerm", "ToggleLazyGit" },
+ init = init,
+ config = config,
}
diff --git a/scripts/set_background b/scripts/set_background
index 9a29ffa..be75486 100755
--- a/scripts/set_background
+++ b/scripts/set_background
@@ -1,21 +1,18 @@
#!/usr/bin/fish
-
if test (count $argv) -lt 1; or not test -f $argv[1]
echo "Usage: $(status filename) <img>"
exit 1
end
-set -x SWWW_TRANSITION "any"
-set -x SWWW_TRANSITION_FPS 60
-set -x SWWW_TRANSITION_DURATION 1.5
-
-niri msg action do-screen-transition
-wallust run $argv[1]; and begin
- set -U img $argv[1]
- swww img $argv[1]
+wallust run $argv[1] -Ts; and begin
+ set -U IMG $argv[1]
+ echo "IMG=$IMG" > ~/.config/scripts/IMG.env
+ niri msg action do-screen-transition
+ wallust -q run $IMG
+ systemctl --user restart swaybg.service
makoctl reload
- notify-send -i $img "Wallust" "Changed wallpaper and palette."
+ notify-send -i $IMG "Wallust" "Changed wallpaper and palette."
end; or begin
- notify-send -u critical "Wallust" "Failed to change palette"
+ notify-send -i $argv[1] -u critical "Wallust" "Failed to change palette"
end;
diff --git a/scripts/set_random b/scripts/set_random
index cdc4018..894361c 100755
--- a/scripts/set_random
+++ b/scripts/set_random
@@ -6,8 +6,8 @@ if test (count $argv) -lt 1; or not test -d $argv[1]
end
~/.config/scripts/set_background (
- for file in (find $argv[1] -type f)
- if test -z $img; or test $file != $img
+ for file in (fd . $argv[1] -t f)
+ if test -z $IMG; or test $file != $IMG
echo (math (random) % 1000)":$file"
end
end | sort -n | head -n 1 | cut -d ':' -f2)
diff --git a/scripts/wallpapermenu b/scripts/wallpapermenu
index c90ff7c..85ed1d1 100755
--- a/scripts/wallpapermenu
+++ b/scripts/wallpapermenu
@@ -1,11 +1,15 @@
#!/usr/bin/fish
-set dir "$HOME/Pictures/Backgrounds/"
-set chosen (
- for file in (find $dir -type f)
- if test -z $img; or test $file != $img
- echo -en "$file\0icon\x1fthumbnail://$file\n"
- end
- end | rofi -dmenu -p " " -show-icons -theme ~/.config/rofi/wallpapermenu.rasi)
+if test -z $argv[1]
+ echo "Provide a directory"
+else
+ set dir $argv[1]
+ set chosen (
+ for file in (find $dir -type f)
+ if test -z $IMG; or test $file != $IMG
+ echo -en "$file\0icon\x1fthumbnail://$file\n"
+ end
+ end | rofi -dmenu -p " " -show-icons -theme ~/.config/rofi/wallpapermenu.rasi)
-~/.config/scripts/set_background (echo $chosen)
+ ~/.config/scripts/set_background (echo $chosen)
+end
diff --git a/systemd/user/polkit-gnome-agent.service b/systemd/user/polkit-gnome-agent.service
new file mode 100644
index 0000000..e84a54e
--- /dev/null
+++ b/systemd/user/polkit-gnome-agent.service
@@ -0,0 +1,8 @@
+[Unit]
+PartOf=graphical-session.target
+After=graphical-session.target
+Requisite=graphical-session.target
+
+[Service]
+ExecStart=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+Restart=on-failure
diff --git a/systemd/user/random-wallpaper.service b/systemd/user/random-wallpaper.service
new file mode 100644
index 0000000..e552232
--- /dev/null
+++ b/systemd/user/random-wallpaper.service
@@ -0,0 +1,2 @@
+[Service]
+ExecStart=%h/.config/scripts/set_random %h/Pictures/Backgrounds/
diff --git a/systemd/user/random-wallpaper.timer b/systemd/user/random-wallpaper.timer
new file mode 100644
index 0000000..b7dc913
--- /dev/null
+++ b/systemd/user/random-wallpaper.timer
@@ -0,0 +1,6 @@
+[Timer]
+OnStartupSec=1h
+OnUnitActiveSec=1h
+
+[Install]
+WantedBy=timers.target
diff --git a/systemd/user/swaybg.service b/systemd/user/swaybg.service
new file mode 100644
index 0000000..b298cac
--- /dev/null
+++ b/systemd/user/swaybg.service
@@ -0,0 +1,9 @@
+[Unit]
+PartOf=graphical-session.target
+After=graphical-session.target
+Requisite=graphical-session.target
+
+[Service]
+EnvironmentFile=%h/.config/scripts/IMG.env
+ExecStart=/usr/bin/swaybg -m fill -i "$IMG"
+Restart=always
diff --git a/systemd/user/swayidle.service b/systemd/user/swayidle.service
new file mode 100644
index 0000000..dd74f93
--- /dev/null
+++ b/systemd/user/swayidle.service
@@ -0,0 +1,8 @@
+[Unit]
+PartOf=graphical-session.target
+After=graphical-session.target
+Requisite=graphical-session.target
+
+[Service]
+ExecStart=/usr/bin/swayidle -w
+Restart=on-failure
diff --git a/systemd/user/swww.service b/systemd/user/swww.service
new file mode 100644
index 0000000..07fee1d
--- /dev/null
+++ b/systemd/user/swww.service
@@ -0,0 +1,8 @@
+[Unit]
+PartOf=graphical-session.target
+After=graphical-session.target
+Requisite=graphical-session.target
+
+[Service]
+ExecStart=/usr/bin/swww-daemon
+Restart=on-failure
diff --git a/wallust/templates/foot b/wallust/templates/foot
index 151ecae..4f487ba 100644
--- a/wallust/templates/foot
+++ b/wallust/templates/foot
@@ -10,7 +10,7 @@ blink=yes
[scrollback]
indicator-position=none
-[colors]
+[colors-dark]
foreground={{foreground | strip}}
background={{background | strip}}
diff --git a/wallust/templates/niri b/wallust/templates/niri
index 3f454cb..579c061 100644
--- a/wallust/templates/niri
+++ b/wallust/templates/niri
@@ -116,12 +116,56 @@ overview {
}
animations {
- // off
+ window-resize {
+ spring damping-ratio=0.75 stiffness=250 epsilon=0.0001
+ }
+ window-open {
+ duration-ms 500
+ curve "ease-out-expo"
+ custom-shader r"
+ // Fall from Top
+ vec4 open_color(vec3 coords_geo, vec3 size_geo) {
+ float progress = niri_clamped_progress * niri_clamped_progress;
+ vec2 coords = (coords_geo.xy - vec2(0.5, 0.0)) * size_geo.xy;
+ coords.y += (1.0 - progress) * 1440.0;
+ float random = (niri_random_seed - 0.5) / 2.0;
+ random = sign(random) - random;
+ float max_angle = 0.5 * random;
+ float angle = (1.0 - progress) * max_angle;
+ mat2 rotate = mat2(cos(angle), -sin(angle), sin(angle), cos(angle));
+ coords = rotate * coords;
+ coords_geo = vec3(coords / size_geo.xy + vec2(0.5, 0.0), 1.0);
+ vec3 coords_tex = niri_geo_to_tex * coords_geo;
+ return texture2D(niri_tex, coords_tex.st);
+ }
+ "
+ }
+ window-close {
+ duration-ms 500
+ curve "linear"
+ custom-shader r"
+ // Fall and Rotate
+ vec4 close_color(vec3 coords_geo, vec3 size_geo) {
+ float progress = niri_clamped_progress * niri_clamped_progress;
+ vec2 coords = (coords_geo.xy - vec2(0.5, 1.0)) * size_geo.xy;
+ coords.y -= progress * 1440.0;
+ float random = (niri_random_seed - 0.5) / 2.0;
+ random = sign(random) - random;
+ float max_angle = 0.5 * random;
+ float angle = progress * max_angle;
+ mat2 rotate = mat2(cos(angle), -sin(angle), sin(angle), cos(angle));
+ coords = rotate * coords;
+ coords_geo = vec3(coords / size_geo.xy + vec2(0.5, 1.0), 1.0);
+ vec3 coords_tex = niri_geo_to_tex * coords_geo;
+ return texture2D(niri_tex, coords_tex.st);
+ }
+ "
+ }
}
layer-rule {
- match namespace="^swww-daemon$"
- place-within-backdrop true
+ match namespace="^wallpaper$"
+ place-within-backdrop true
}
window-rule {
@@ -135,6 +179,7 @@ window-rule {
}
window-rule {
match app-id="SFML"
+ open-floating true
}
window-rule {
match is-floating=true
@@ -150,10 +195,13 @@ switch-events {
binds {
Mod+Backslash { show-hotkey-overlay; }
- Mod+Return hotkey-overlay-title="Spawn Terminal" { spawn "foot"; }
- Mod+Space hotkey-overlay-title="Spawn Applauncher" { spawn "rofi" "-show" "drun" "-theme" "~/.config/rofi/applauncher.rasi"; }
- Mod+Escape hotkey-overlay-title="Spawn Powermenu" { spawn "~/.config/scripts/powermenu"; }
- Mod+W hotkey-overlay-title="Spawn Wallpapermenu" { spawn "~/.config/scripts/wallpapermenu"; }
+ Mod+Return hotkey-overlay-title="Spawn Terminal" { spawn "foot"; }
+ Mod+Space hotkey-overlay-title="Spawn Applauncher" { spawn "rofi" "-show" "drun" "-theme" "~/.config/rofi/applauncher.rasi"; }
+ Mod+Escape hotkey-overlay-title="Spawn Powermenu" { spawn "~/.config/scripts/powermenu"; }
+ Mod+W hotkey-overlay-title="Spawn Wallpapermenu" { spawn-sh "~/.config/scripts/wallpapermenu ~/Pictures/Backgrounds/"; }
+ Mod+Alt+W { spawn-sh "~/.config/scripts/wallpapermenu ~/Pictures/Misc/Backgrounds/"; }
+ Mod+Shift+W hotkey-overlay-title="Random Wallpaper" { spawn-sh "~/.config/scripts/set_random ~/Pictures/Backgrounds/"; }
+ Mod+Shift+Alt+W { spawn-sh "~/.config/scripts/set_random ~/Pictures/Misc/Backgrounds/"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn "pamixer" "-i" "5"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "pamixer" "-d" "5"; }
@@ -225,6 +273,7 @@ binds {
Mod+Ctrl+R { reset-window-height; }
Mod+F { maximize-column; }
Mod+Shift+F { fullscreen-window; }
+ Mod+Ctrl+F { maximize-window-to-edges; }
Mod+C { center-column; }
Mod+Minus { set-column-width "-1%"; }
diff --git a/wallust/templates/rofi-applauncher b/wallust/templates/rofi-applauncher
index f27e4b4..0dfb8a4 100644
--- a/wallust/templates/rofi-applauncher
+++ b/wallust/templates/rofi-applauncher
@@ -36,5 +36,5 @@ element-text {
color: inherit;
}
element selected {
- color: {{color4}};
+ color: {{color1}};
}
diff --git a/wallust/templates/rofi-wallpapermenu b/wallust/templates/rofi-wallpapermenu
index fe4fe13..b1ea0da 100644
--- a/wallust/templates/rofi-wallpapermenu
+++ b/wallust/templates/rofi-wallpapermenu
@@ -38,7 +38,8 @@ element-icon {
margin: -100 0;
squared: true;
}
-element selected{
+element selected {
text-color: inherit;
+ border: 5;
border-color: {{color4}};
}
diff --git a/wallust/templates/swaylock b/wallust/templates/swaylock
index e17ce46..2a8a860 100644
--- a/wallust/templates/swaylock
+++ b/wallust/templates/swaylock
@@ -7,7 +7,7 @@ font-size=50
clock
timestr=%H:%M:%S
-datestr=%a %D
+datestr=%a %d/%m/%y
image={{wallpaper}}
effect-blur=5x2
diff --git a/wallust/templates/waybar b/wallust/templates/waybar
index 7b3fb02..da7690b 100644
--- a/wallust/templates/waybar
+++ b/wallust/templates/waybar
@@ -69,7 +69,7 @@ tooltip label {
color: {{foreground}};
}
-#bluetooth.off, #pulseaudio.muted, #network.disconnected, #battery.warning, #idle_inhibitor.deactivated {
+#bluetooth.off, #pulseaudio.muted, #network.disconnected, #battery.warning, #battery.notempty, #idle_inhibitor.deactivated {
background: {{color0}};
}
#bluetooth.off {
@@ -81,7 +81,7 @@ tooltip label {
#network.disconnected {
color: {{color5}};
}
-#battery.warning {
+#battery.warning, #battery.notempty {
color: {{color6}};
}
#battery.charging {
diff --git a/wallust/wallust.toml b/wallust/wallust.toml
index 94a6665..9a63624 100644
--- a/wallust/wallust.toml
+++ b/wallust/wallust.toml
@@ -1,8 +1,8 @@
-backend = "kmeans"
+backend = "full"
check_contrast = true
-color_space = "lab"
+color_space = "salience"
fallback_generator = "complementary"
-palette = "ansidark16"
+palette = "dark16"
[templates]
foot = { src = "foot", dst = "~/.config/foot/foot.ini" }
diff --git a/yazi/init.lua b/yazi/init.lua
new file mode 100644
index 0000000..6c283c4
--- /dev/null
+++ b/yazi/init.lua
@@ -0,0 +1 @@
+require("full-border"):setup()
diff --git a/yazi/keymap.toml b/yazi/keymap.toml
new file mode 100644
index 0000000..397b2ec
--- /dev/null
+++ b/yazi/keymap.toml
@@ -0,0 +1,368 @@
+# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
+# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
+"$schema" = "https://yazi-rs.github.io/schemas/keymap.json"
+
+[mgr]
+
+keymap = [
+ { on = "<Esc>", run = "escape", desc = "Exit visual mode, clear selection, or cancel search" },
+ { on = "<C-[>", run = "escape", desc = "Exit visual mode, clear selection, or cancel search" },
+ { on = "q", run = "quit", desc = "Quit the process" },
+ { on = "Q", run = "quit --no-cwd-file", desc = "Quit without outputting cwd-file" },
+ { on = "<C-c>", run = "close", desc = "Close the current tab, or quit if it's last" },
+ { on = "<C-z>", run = "suspend", desc = "Suspend the process" },
+
+ # Hopping
+ { on = "k", run = "arrow prev", desc = "Previous file" },
+ { on = "j", run = "arrow next", desc = "Next file" },
+
+ { on = "<Up>", run = "arrow prev", desc = "Previous file" },
+ { on = "<Down>", run = "arrow next", desc = "Next file" },
+
+ { on = "<C-u>", run = "arrow -50%", desc = "Move cursor up half page" },
+ { on = "<C-d>", run = "arrow 50%", desc = "Move cursor down half page" },
+ { on = "<C-b>", run = "arrow -100%", desc = "Move cursor up one page" },
+ { on = "<C-f>", run = "arrow 100%", desc = "Move cursor down one page" },
+
+ { on = "<S-PageUp>", run = "arrow -50%", desc = "Move cursor up half page" },
+ { on = "<S-PageDown>", run = "arrow 50%", desc = "Move cursor down half page" },
+ { on = "<PageUp>", run = "arrow -100%", desc = "Move cursor up one page" },
+ { on = "<PageDown>", run = "arrow 100%", desc = "Move cursor down one page" },
+
+ { on = [ "g", "g" ], run = "arrow top", desc = "Go to top" },
+ { on = "G", run = "arrow bot", desc = "Go to bottom" },
+
+ # Navigation
+ { on = "h", run = "leave", desc = "Back to the parent directory" },
+ { on = "l", run = "enter", desc = "Enter the child directory" },
+
+ { on = "<Left>", run = "leave", desc = "Back to the parent directory" },
+ { on = "<Right>", run = "enter", desc = "Enter the child directory" },
+
+ { on = "H", run = "back", desc = "Back to previous directory" },
+ { on = "L", run = "forward", desc = "Forward to next directory" },
+
+ # Toggle
+ { on = "<Space>", run = [ "toggle", "arrow next" ], desc = "Toggle the current selection state" },
+ { on = "<C-a>", run = "toggle_all --state=on", desc = "Select all files" },
+ { on = "<C-r>", run = "toggle_all", desc = "Invert selection of all files" },
+
+ # Visual mode
+ { on = "v", run = "visual_mode", desc = "Enter visual mode (selection mode)" },
+ { on = "V", run = "visual_mode --unset", desc = "Enter visual mode (unset mode)" },
+
+ # Seeking
+ { on = "K", run = "seek -5", desc = "Seek up 5 units in the preview" },
+ { on = "J", run = "seek 5", desc = "Seek down 5 units in the preview" },
+
+ # Spotting
+ { on = "<Tab>", run = "spot", desc = "Spot hovered file" },
+
+ # Operation
+ { on = "o", run = "open", desc = "Open selected files" },
+ { on = "O", run = "open --interactive", desc = "Open selected files interactively" },
+ { on = "<Enter>", run = "open", desc = "Open selected files" },
+ { on = "<S-Enter>", run = "open --interactive", desc = "Open selected files interactively" },
+ { on = "y", run = "yank", desc = "Yank selected files (copy)" },
+ { on = "x", run = "yank --cut", desc = "Yank selected files (cut)" },
+ { on = "p", run = "paste", desc = "Paste yanked files" },
+ { on = "P", run = "paste --force", desc = "Paste yanked files (overwrite if the destination exists)" },
+ { on = "-", run = "link", desc = "Symlink the absolute path of yanked files" },
+ { on = "_", run = "link --relative", desc = "Symlink the relative path of yanked files" },
+ { on = "<C-->", run = "hardlink", desc = "Hardlink yanked files" },
+ { on = "Y", run = "unyank", desc = "Cancel the yank status" },
+ { on = "X", run = "unyank", desc = "Cancel the yank status" },
+ { on = "d", run = "remove", desc = "Trash selected files" },
+ { on = "D", run = "remove --permanently", desc = "Permanently delete selected files" },
+ { on = "a", run = "create", desc = "Create a file (ends with / for directories)" },
+ { on = "r", run = "rename --cursor=before_ext", desc = "Rename selected file(s)" },
+ { on = ";", run = "shell --interactive", desc = "Run a shell command" },
+ { on = ":", run = "shell --block --interactive", desc = "Run a shell command (block until finishes)" },
+ { on = ".", run = "hidden toggle", desc = "Toggle the visibility of hidden files" },
+ { on = "s", run = "search --via=fd", desc = "Search files by name via fd" },
+ { on = "S", run = "search --via=rg", desc = "Search files by content via ripgrep" },
+ { on = "<C-s>", run = "escape --search", desc = "Cancel the ongoing search" },
+ { on = "z", run = "plugin fzf", desc = "Jump to a file/directory via fzf" },
+ { on = "Z", run = "plugin zoxide", desc = "Jump to a directory via zoxide" },
+
+ # Linemode
+ { on = [ "m", "s" ], run = "linemode size", desc = "Linemode: size" },
+ { on = [ "m", "p" ], run = "linemode permissions", desc = "Linemode: permissions" },
+ { on = [ "m", "b" ], run = "linemode btime", desc = "Linemode: btime" },
+ { on = [ "m", "m" ], run = "linemode mtime", desc = "Linemode: mtime" },
+ { on = [ "m", "o" ], run = "linemode owner", desc = "Linemode: owner" },
+ { on = [ "m", "n" ], run = "linemode none", desc = "Linemode: none" },
+
+ # Copy
+ { on = [ "c", "c" ], run = "copy path", desc = "Copy the file path" },
+ { on = [ "c", "d" ], run = "copy dirname", desc = "Copy the directory path" },
+ { on = [ "c", "f" ], run = "copy filename", desc = "Copy the filename" },
+ { on = [ "c", "n" ], run = "copy name_without_ext", desc = "Copy the filename without extension" },
+
+ # Filter
+ { on = "f", run = "filter --smart", desc = "Filter files" },
+
+ # Find
+ { on = "/", run = "find --smart", desc = "Find next file" },
+ { on = "?", run = "find --previous --smart", desc = "Find previous file" },
+ { on = "n", run = "find_arrow", desc = "Next found" },
+ { on = "N", run = "find_arrow --previous", desc = "Previous found" },
+
+ # Sorting
+ { on = [ ",", "m" ], run = [ "sort mtime --reverse=no", "linemode mtime" ], desc = "Sort by modified time" },
+ { on = [ ",", "M" ], run = [ "sort mtime --reverse", "linemode mtime" ], desc = "Sort by modified time (reverse)" },
+ { on = [ ",", "b" ], run = [ "sort btime --reverse=no", "linemode btime" ], desc = "Sort by birth time" },
+ { on = [ ",", "B" ], run = [ "sort btime --reverse", "linemode btime" ], desc = "Sort by birth time (reverse)" },
+ { on = [ ",", "e" ], run = "sort extension --reverse=no", desc = "Sort by extension" },
+ { on = [ ",", "E" ], run = "sort extension --reverse", desc = "Sort by extension (reverse)" },
+ { on = [ ",", "a" ], run = "sort alphabetical --reverse=no", desc = "Sort alphabetically" },
+ { on = [ ",", "A" ], run = "sort alphabetical --reverse", desc = "Sort alphabetically (reverse)" },
+ { on = [ ",", "n" ], run = "sort natural --reverse=no", desc = "Sort naturally" },
+ { on = [ ",", "N" ], run = "sort natural --reverse", desc = "Sort naturally (reverse)" },
+ { on = [ ",", "s" ], run = [ "sort size --reverse=no", "linemode size" ], desc = "Sort by size" },
+ { on = [ ",", "S" ], run = [ "sort size --reverse", "linemode size" ], desc = "Sort by size (reverse)" },
+ { on = [ ",", "r" ], run = "sort random --reverse=no", desc = "Sort randomly" },
+
+ # Goto
+ { on = [ "g", "h" ], run = "cd ~", desc = "Go home" },
+ { on = [ "g", "c" ], run = "cd ~/.config", desc = "Go ~/.config" },
+ { on = [ "g", "d" ], run = "cd ~/Downloads", desc = "Go ~/Downloads" },
+ { on = [ "g", "<Space>" ], run = "cd --interactive", desc = "Jump interactively" },
+ { on = [ "g", "f" ], run = "follow", desc = "Follow hovered symlink" },
+
+ # Tabs
+ { on = "t", run = "tab_create --current", desc = "Create a new tab with CWD" },
+
+ { on = "1", run = "tab_switch 0", desc = "Switch to first tab" },
+ { on = "2", run = "tab_switch 1", desc = "Switch to second tab" },
+ { on = "3", run = "tab_switch 2", desc = "Switch to third tab" },
+ { on = "4", run = "tab_switch 3", desc = "Switch to fourth tab" },
+ { on = "5", run = "tab_switch 4", desc = "Switch to fifth tab" },
+ { on = "6", run = "tab_switch 5", desc = "Switch to sixth tab" },
+ { on = "7", run = "tab_switch 6", desc = "Switch to seventh tab" },
+ { on = "8", run = "tab_switch 7", desc = "Switch to eighth tab" },
+ { on = "9", run = "tab_switch 8", desc = "Switch to ninth tab" },
+
+ { on = "[", run = "tab_switch -1 --relative", desc = "Switch to previous tab" },
+ { on = "]", run = "tab_switch 1 --relative", desc = "Switch to next tab" },
+
+ { on = "{", run = "tab_swap -1", desc = "Swap current tab with previous tab" },
+ { on = "}", run = "tab_swap 1", desc = "Swap current tab with next tab" },
+
+ # Tasks
+ { on = "w", run = "tasks:show", desc = "Show task manager" },
+
+ # Help
+ { on = "~", run = "help", desc = "Open help" },
+ { on = "<F1>", run = "help", desc = "Open help" },
+]
+
+[tasks]
+
+keymap = [
+ { on = "<Esc>", run = "close", desc = "Close task manager" },
+ { on = "<C-[>", run = "close", desc = "Close task manager" },
+ { on = "<C-c>", run = "close", desc = "Close task manager" },
+ { on = "w", run = "close", desc = "Close task manager" },
+
+ { on = "k", run = "arrow prev", desc = "Previous task" },
+ { on = "j", run = "arrow next", desc = "Next task" },
+
+ { on = "<Up>", run = "arrow prev", desc = "Previous task" },
+ { on = "<Down>", run = "arrow next", desc = "Next task" },
+
+ { on = "<Enter>", run = "inspect", desc = "Inspect the task" },
+ { on = "x", run = "cancel", desc = "Cancel the task" },
+
+ # Help
+ { on = "~", run = "help", desc = "Open help" },
+ { on = "<F1>", run = "help", desc = "Open help" },
+]
+
+[spot]
+
+keymap = [
+ { on = "<Esc>", run = "close", desc = "Close the spot" },
+ { on = "<C-[>", run = "close", desc = "Close the spot" },
+ { on = "<C-c>", run = "close", desc = "Close the spot" },
+ { on = "<Tab>", run = "close", desc = "Close the spot" },
+
+ { on = "k", run = "arrow prev", desc = "Previous line" },
+ { on = "j", run = "arrow next", desc = "Next line" },
+ { on = "h", run = "swipe prev", desc = "Swipe to previous file" },
+ { on = "l", run = "swipe next", desc = "Swipe to next file" },
+
+ { on = "<Up>", run = "arrow prev", desc = "Previous line" },
+ { on = "<Down>", run = "arrow next", desc = "Next line" },
+ { on = "<Left>", run = "swipe prev", desc = "Swipe to previous file" },
+ { on = "<Right>", run = "swipe next", desc = "Swipe to next file" },
+
+ # Copy
+ { on = [ "c", "c" ], run = "copy cell", desc = "Copy selected cell" },
+
+ # Help
+ { on = "~", run = "help", desc = "Open help" },
+ { on = "<F1>", run = "help", desc = "Open help" },
+]
+
+[pick]
+
+keymap = [
+ { on = "<Esc>", run = "close", desc = "Cancel pick" },
+ { on = "<C-[>", run = "close", desc = "Cancel pick" },
+ { on = "<C-c>", run = "close", desc = "Cancel pick" },
+ { on = "<Enter>", run = "close --submit", desc = "Submit the pick" },
+
+ { on = "k", run = "arrow prev", desc = "Previous option" },
+ { on = "j", run = "arrow next", desc = "Next option" },
+
+ { on = "<Up>", run = "arrow prev", desc = "Previous option" },
+ { on = "<Down>", run = "arrow next", desc = "Next option" },
+
+ # Help
+ { on = "~", run = "help", desc = "Open help" },
+ { on = "<F1>", run = "help", desc = "Open help" },
+]
+
+[input]
+
+keymap = [
+ { on = "<C-c>", run = "close", desc = "Cancel input" },
+ { on = "<Enter>", run = "close --submit", desc = "Submit input" },
+ { on = "<Esc>", run = "escape", desc = "Back to normal mode, or cancel input" },
+ { on = "<C-[>", run = "escape", desc = "Back to normal mode, or cancel input" },
+
+ # Mode
+ { on = "i", run = "insert", desc = "Enter insert mode" },
+ { on = "I", run = [ "move first-char", "insert" ], desc = "Move to the BOL, and enter insert mode" },
+ { on = "a", run = "insert --append", desc = "Enter append mode" },
+ { on = "A", run = [ "move eol", "insert --append" ], desc = "Move to the EOL, and enter append mode" },
+ { on = "v", run = "visual", desc = "Enter visual mode" },
+ { on = "r", run = "replace", desc = "Replace a single character" },
+
+ # Selection
+ { on = "V", run = [ "move bol", "visual", "move eol" ], desc = "Select from BOL to EOL" },
+ { on = "<C-A>", run = [ "move eol", "visual", "move bol" ], desc = "Select from EOL to BOL" },
+ { on = "<C-E>", run = [ "move bol", "visual", "move eol" ], desc = "Select from BOL to EOL" },
+
+ # Character-wise movement
+ { on = "h", run = "move -1", desc = "Move back a character" },
+ { on = "l", run = "move 1", desc = "Move forward a character" },
+ { on = "<Left>", run = "move -1", desc = "Move back a character" },
+ { on = "<Right>", run = "move 1", desc = "Move forward a character" },
+ { on = "<C-b>", run = "move -1", desc = "Move back a character" },
+ { on = "<C-f>", run = "move 1", desc = "Move forward a character" },
+
+ # Word-wise movement
+ { on = "b", run = "backward", desc = "Move back to the start of the current or previous word" },
+ { on = "B", run = "backward --far", desc = "Move back to the start of the current or previous WORD" },
+ { on = "w", run = "forward", desc = "Move forward to the start of the next word" },
+ { on = "W", run = "forward --far", desc = "Move forward to the start of the next WORD" },
+ { on = "e", run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
+ { on = "E", run = "forward --far --end-of-word", desc = "Move forward to the end of the current or next WORD" },
+ { on = "<A-b>", run = "backward", desc = "Move back to the start of the current or previous word" },
+ { on = "<A-f>", run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
+
+ # Line-wise movement
+ { on = "0", run = "move bol", desc = "Move to the BOL" },
+ { on = "$", run = "move eol", desc = "Move to the EOL" },
+ { on = "_", run = "move first-char", desc = "Move to the first non-whitespace character" },
+ { on = "^", run = "move first-char", desc = "Move to the first non-whitespace character" },
+ { on = "<C-a>", run = "move bol", desc = "Move to the BOL" },
+ { on = "<C-e>", run = "move eol", desc = "Move to the EOL" },
+ { on = "<Home>", run = "move bol", desc = "Move to the BOL" },
+ { on = "<End>", run = "move eol", desc = "Move to the EOL" },
+
+ # Delete
+ { on = "<Backspace>", run = "backspace", desc = "Delete the character before the cursor" },
+ { on = "<Delete>", run = "backspace --under", desc = "Delete the character under the cursor" },
+ { on = "<C-h>", run = "backspace", desc = "Delete the character before the cursor" },
+ { on = "<C-d>", run = "backspace --under", desc = "Delete the character under the cursor" },
+
+ # Kill
+ { on = "<C-u>", run = "kill bol", desc = "Kill backwards to the BOL" },
+ { on = "<C-k>", run = "kill eol", desc = "Kill forwards to the EOL" },
+ { on = "<C-w>", run = "kill backward", desc = "Kill backwards to the start of the current word" },
+ { on = "<A-d>", run = "kill forward", desc = "Kill forwards to the end of the current word" },
+
+ # Cut/Yank/Paste
+ { on = "d", run = "delete --cut", desc = "Cut selected characters" },
+ { on = "D", run = [ "delete --cut", "move eol" ], desc = "Cut until EOL" },
+ { on = "c", run = "delete --cut --insert", desc = "Cut selected characters, and enter insert mode" },
+ { on = "C", run = [ "delete --cut --insert", "move eol" ], desc = "Cut until EOL, and enter insert mode" },
+ { on = "s", run = [ "delete --cut --insert", "move 1" ], desc = "Cut current character, and enter insert mode" },
+ { on = "S", run = [ "move bol", "delete --cut --insert", "move eol" ], desc = "Cut from BOL until EOL, and enter insert mode" },
+ { on = "x", run = [ "delete --cut", "move 1 --in-operating" ], desc = "Cut current character" },
+ { on = "y", run = "yank", desc = "Copy selected characters" },
+ { on = "p", run = "paste", desc = "Paste copied characters after the cursor" },
+ { on = "P", run = "paste --before", desc = "Paste copied characters before the cursor" },
+
+ # Undo/Redo
+ { on = "u", run = "undo", desc = "Undo the last operation" },
+ { on = "<C-r>", run = "redo", desc = "Redo the last operation" },
+
+ # Help
+ { on = "~", run = "help", desc = "Open help" },
+ { on = "<F1>", run = "help", desc = "Open help" },
+]
+
+[confirm]
+
+keymap = [
+ { on = "<Esc>", run = "close", desc = "Cancel the confirm" },
+ { on = "<C-[>", run = "close", desc = "Cancel the confirm" },
+ { on = "<C-c>", run = "close", desc = "Cancel the confirm" },
+ { on = "<Enter>", run = "close --submit", desc = "Submit the confirm" },
+
+ { on = "n", run = "close", desc = "Cancel the confirm" },
+ { on = "y", run = "close --submit", desc = "Submit the confirm" },
+
+ { on = "k", run = "arrow prev", desc = "Previous line" },
+ { on = "j", run = "arrow next", desc = "Next line" },
+
+ { on = "<Up>", run = "arrow prev", desc = "Previous line" },
+ { on = "<Down>", run = "arrow next", desc = "Next line" },
+
+ # Help
+ { on = "~", run = "help", desc = "Open help" },
+ { on = "<F1>", run = "help", desc = "Open help" },
+]
+
+[cmp]
+
+keymap = [
+ { on = "<C-c>", run = "close", desc = "Cancel completion" },
+ { on = "<Tab>", run = "close --submit", desc = "Submit the completion" },
+ { on = "<Enter>", run = [ "close --submit", "input:close --submit" ], desc = "Complete and submit the input" },
+
+ { on = "<A-k>", run = "arrow prev", desc = "Previous item" },
+ { on = "<A-j>", run = "arrow next", desc = "Next item" },
+
+ { on = "<Up>", run = "arrow prev", desc = "Previous item" },
+ { on = "<Down>", run = "arrow next", desc = "Next item" },
+
+ { on = "<C-p>", run = "arrow prev", desc = "Previous item" },
+ { on = "<C-n>", run = "arrow next", desc = "Next item" },
+
+ # Help
+ { on = "~", run = "help", desc = "Open help" },
+ { on = "<F1>", run = "help", desc = "Open help" },
+]
+
+[help]
+
+keymap = [
+ { on = "<Esc>", run = "escape", desc = "Clear the filter, or hide the help" },
+ { on = "<C-[>", run = "escape", desc = "Clear the filter, or hide the help" },
+ { on = "<C-c>", run = "close", desc = "Hide the help" },
+
+ # Navigation
+ { on = "k", run = "arrow prev", desc = "Previous line" },
+ { on = "j", run = "arrow next", desc = "Next line" },
+
+ { on = "<Up>", run = "arrow prev", desc = "Previous line" },
+ { on = "<Down>", run = "arrow next", desc = "Next line" },
+
+ # Filtering
+ { on = "f", run = "filter", desc = "Filter help items" },
+]
diff --git a/yazi/package.toml b/yazi/package.toml
new file mode 100644
index 0000000..da4281b
--- /dev/null
+++ b/yazi/package.toml
@@ -0,0 +1,7 @@
+[[plugin.deps]]
+use = "yazi-rs/plugins:full-border"
+rev = "eaf6920"
+hash = "3996fc74044bc44144b323686f887e1"
+
+[flavor]
+deps = []
diff --git a/yazi/theme.toml b/yazi/theme.toml
new file mode 100644
index 0000000..8bb3558
--- /dev/null
+++ b/yazi/theme.toml
@@ -0,0 +1,959 @@
+# If the user's terminal is in dark mode, Yazi will load `theme-dark.toml` on startup; otherwise, `theme-light.toml`.
+# You can override any parts of them that are not related to the dark/light mode in your own `theme.toml`.
+
+# If you want to dynamically override their content based on dark/light mode, you can specify two different flavors
+# for dark and light modes under `[flavor]`, and do so in those flavors instead.
+"$schema" = "https://yazi-rs.github.io/schemas/theme.json"
+
+# vim:fileencoding=utf-8:foldmethod=marker
+
+# : Flavor {{{
+
+[flavor]
+dark = ""
+light = ""
+
+# : }}}
+
+
+# : Manager {{{
+
+[mgr]
+cwd = { fg = "cyan" }
+
+# Hovered
+hovered = { reversed = true }
+preview_hovered = { underline = true }
+
+# Find
+find_keyword = { fg = "yellow", bold = true, italic = true, underline = true }
+find_position = { fg = "magenta", bg = "reset", bold = true, italic = true }
+
+# Symlink
+symlink_target = { italic = true }
+
+# Marker
+marker_copied = { fg = "lightgreen", bg = "lightgreen" }
+marker_cut = { fg = "lightred", bg = "lightred" }
+marker_marked = { fg = "lightcyan", bg = "lightcyan" }
+marker_selected = { fg = "lightyellow", bg = "lightyellow" }
+
+# Count
+count_copied = { fg = "white", bg = "green" }
+count_cut = { fg = "white", bg = "red" }
+count_selected = { fg = "white", bg = "yellow" }
+
+# Border
+border_symbol = "│"
+border_style = { fg = "gray" }
+
+# Highlighting
+syntect_theme = ""
+
+# : }}}
+
+
+# : Tabs {{{
+
+[tabs]
+active = { bg = "blue", bold = true }
+inactive = { fg = "blue", bg = "gray" }
+
+# Separator
+sep_inner = { open = "", close = "" }
+sep_outer = { open = "", close = "" }
+
+# : }}}
+
+
+# : Mode {{{
+
+[mode]
+normal_main = { bg = "blue", bold = true }
+normal_alt = { fg = "blue", bg = "gray" }
+
+# Select mode
+select_main = { bg = "red", bold = true }
+select_alt = { fg = "red", bg = "gray" }
+
+# Unset mode
+unset_main = { bg = "red", bold = true }
+unset_alt = { fg = "red", bg = "gray" }
+
+# : }}}
+
+
+# : Status bar {{{
+
+[status]
+overall = {}
+sep_left = { open = "", close = "" }
+sep_right = { open = "", close = "" }
+
+
+# Permissions
+perm_sep = { fg = "darkgray" }
+perm_type = { fg = "green" }
+perm_read = { fg = "yellow" }
+perm_write = { fg = "red" }
+perm_exec = { fg = "cyan" }
+
+# Progress
+progress_label = { bold = true }
+progress_normal = { fg = "blue", bg = "black" }
+progress_error = { fg = "red", bg = "black" }
+
+# : }}}
+
+
+# : Which {{{
+
+[which]
+cols = 3
+mask = { bg = "black" }
+cand = { fg = "lightcyan" }
+rest = { fg = "darkgray" }
+desc = { fg = "lightmagenta" }
+separator = "  "
+separator_style = { fg = "darkgray" }
+
+# : }}}
+
+
+# : Confirmation {{{
+
+[confirm]
+border = { fg = "blue" }
+title = { fg = "blue" }
+content = {}
+list = {}
+btn_yes = { reversed = true }
+btn_no = {}
+btn_labels = [ " [Y]es ", " (N)o " ]
+
+# : }}}
+
+
+# : Spotter {{{
+
+[spot]
+border = { fg = "blue" }
+title = { fg = "blue" }
+
+# Table
+tbl_col = { fg = "blue" }
+tbl_cell = { fg = "yellow", reversed = true }
+
+# : }}}
+
+
+# : Notification {{{
+
+[notify]
+title_info = { fg = "green" }
+title_warn = { fg = "yellow" }
+title_error = { fg = "red" }
+
+# Icons
+icon_info = ""
+icon_warn = ""
+icon_error = ""
+
+# : }}}
+
+
+# : Picker {{{
+
+[pick]
+border = { fg = "blue" }
+active = { fg = "magenta", bold = true }
+inactive = {}
+
+# : }}}
+
+
+# : Input {{{
+
+[input]
+border = { fg = "blue" }
+title = {}
+value = {}
+selected = { reversed = true }
+
+# : }}}
+
+
+# : Completion {{{
+
+[cmp]
+border = { fg = "blue" }
+active = { reversed = true }
+inactive = {}
+
+# Icons
+icon_file = ""
+icon_folder = ""
+icon_command = ""
+
+# : }}}
+
+
+# : Task manager {{{
+
+[tasks]
+border = { fg = "blue" }
+title = {}
+hovered = { fg = "magenta", underline = true }
+
+# : }}}
+
+
+# : Help menu {{{
+
+[help]
+on = { fg = "cyan" }
+run = { fg = "magenta" }
+desc = {}
+hovered = { reversed = true, bold = true }
+footer = { fg = "black", bg = "white" }
+
+# : }}}
+
+
+# : File-specific styles {{{
+
+[filetype]
+rules = [
+ # Images
+ { mime = "image/*", fg = "yellow" },
+
+ # Media
+ { mime = "{audio,video}/*", fg = "magenta" },
+
+ # Archives
+ { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "red" },
+
+ # Documents
+ { mime = "application/{pdf,doc,rtf}", fg = "cyan" },
+
+ # Empty files
+ # { mime = "inode/empty", fg = "red" },
+
+ # Special files
+ { name = "*", is = "orphan", bg = "red" },
+ { name = "*", is = "exec" , fg = "green" },
+
+ # Dummy files
+ { name = "*", is = "dummy", bg = "red" },
+ { name = "*/", is = "dummy", bg = "red" },
+
+ # Fallback
+ # { name = "*", fg = "white" },
+ { name = "*/", fg = "blue" }
+]
+
+# : }}}
+
+
+# : Icons {{{
+
+[icon]
+globs = []
+dirs = [
+ { name = ".config", text = "" },
+ { name = ".git", text = "" },
+ { name = ".github", text = "" },
+ { name = ".npm", text = "" },
+ { name = "Desktop", text = "" },
+ { name = "Development", text = "" },
+ { name = "Documents", text = "" },
+ { name = "Downloads", text = "" },
+ { name = "Library", text = "" },
+ { name = "Movies", text = "" },
+ { name = "Music", text = "" },
+ { name = "Pictures", text = "" },
+ { name = "Public", text = "" },
+ { name = "Videos", text = "" },
+]
+files = [
+ { name = ".babelrc", text = "", fg = "#cbcb41" },
+ { name = ".bash_profile", text = "", fg = "#89e051" },
+ { name = ".bashrc", text = "", fg = "#89e051" },
+ { name = ".clang-format", text = "", fg = "#6d8086" },
+ { name = ".clang-tidy", text = "", fg = "#6d8086" },
+ { name = ".codespellrc", text = "󰓆", fg = "#35da60" },
+ { name = ".condarc", text = "", fg = "#43b02a" },
+ { name = ".dockerignore", text = "󰡨", fg = "#458ee6" },
+ { name = ".ds_store", text = "", fg = "#41535b" },
+ { name = ".editorconfig", text = "", fg = "#fff2f2" },
+ { name = ".env", text = "", fg = "#faf743" },
+ { name = ".eslintignore", text = "", fg = "#4b32c3" },
+ { name = ".eslintrc", text = "", fg = "#4b32c3" },
+ { name = ".git-blame-ignore-revs", text = "", fg = "#f54d27" },
+ { name = ".gitattributes", text = "", fg = "#f54d27" },
+ { name = ".gitconfig", text = "", fg = "#f54d27" },
+ { name = ".gitignore", text = "", fg = "#f54d27" },
+ { name = ".gitlab-ci.yml", text = "", fg = "#e24329" },
+ { name = ".gitmodules", text = "", fg = "#f54d27" },
+ { name = ".gtkrc-2.0", text = "", fg = "#ffffff" },
+ { name = ".gvimrc", text = "", fg = "#019833" },
+ { name = ".justfile", text = "", fg = "#6d8086" },
+ { name = ".luacheckrc", text = "", fg = "#00a2ff" },
+ { name = ".luaurc", text = "", fg = "#00a2ff" },
+ { name = ".mailmap", text = "󰊢", fg = "#f54d27" },
+ { name = ".nanorc", text = "", fg = "#440077" },
+ { name = ".npmignore", text = "", fg = "#e8274b" },
+ { name = ".npmrc", text = "", fg = "#e8274b" },
+ { name = ".nuxtrc", text = "󱄆", fg = "#00c58e" },
+ { name = ".nvmrc", text = "", fg = "#5fa04e" },
+ { name = ".pre-commit-config.yaml", text = "󰛢", fg = "#f8b424" },
+ { name = ".prettierignore", text = "", fg = "#4285f4" },
+ { name = ".prettierrc", text = "", fg = "#4285f4" },
+ { name = ".prettierrc.cjs", text = "", fg = "#4285f4" },
+ { name = ".prettierrc.js", text = "", fg = "#4285f4" },
+ { name = ".prettierrc.json", text = "", fg = "#4285f4" },
+ { name = ".prettierrc.json5", text = "", fg = "#4285f4" },
+ { name = ".prettierrc.mjs", text = "", fg = "#4285f4" },
+ { name = ".prettierrc.toml", text = "", fg = "#4285f4" },
+ { name = ".prettierrc.yaml", text = "", fg = "#4285f4" },
+ { name = ".prettierrc.yml", text = "", fg = "#4285f4" },
+ { name = ".pylintrc", text = "", fg = "#6d8086" },
+ { name = ".settings.json", text = "", fg = "#854cc7" },
+ { name = ".SRCINFO", text = "󰣇", fg = "#0f94d2" },
+ { name = ".vimrc", text = "", fg = "#019833" },
+ { name = ".Xauthority", text = "", fg = "#e54d18" },
+ { name = ".xinitrc", text = "", fg = "#e54d18" },
+ { name = ".Xresources", text = "", fg = "#e54d18" },
+ { name = ".xsession", text = "", fg = "#e54d18" },
+ { name = ".zprofile", text = "", fg = "#89e051" },
+ { name = ".zshenv", text = "", fg = "#89e051" },
+ { name = ".zshrc", text = "", fg = "#89e051" },
+ { name = "_gvimrc", text = "", fg = "#019833" },
+ { name = "_vimrc", text = "", fg = "#019833" },
+ { name = "AUTHORS", text = "", fg = "#a172ff" },
+ { name = "AUTHORS.txt", text = "", fg = "#a172ff" },
+ { name = "brewfile", text = "", fg = "#701516" },
+ { name = "bspwmrc", text = "", fg = "#2f2f2f" },
+ { name = "build", text = "", fg = "#89e051" },
+ { name = "build.gradle", text = "", fg = "#005f87" },
+ { name = "build.zig.zon", text = "", fg = "#f69a1b" },
+ { name = "bun.lock", text = "", fg = "#eadcd1" },
+ { name = "bun.lockb", text = "", fg = "#eadcd1" },
+ { name = "cantorrc", text = "", fg = "#1c99f3" },
+ { name = "checkhealth", text = "󰓙", fg = "#75b4fb" },
+ { name = "cmakelists.txt", text = "", fg = "#dce3eb" },
+ { name = "code_of_conduct", text = "", fg = "#e41662" },
+ { name = "code_of_conduct.md", text = "", fg = "#e41662" },
+ { name = "commit_editmsg", text = "", fg = "#f54d27" },
+ { name = "commitlint.config.js", text = "󰜘", fg = "#2b9689" },
+ { name = "commitlint.config.ts", text = "󰜘", fg = "#2b9689" },
+ { name = "compose.yaml", text = "󰡨", fg = "#458ee6" },
+ { name = "compose.yml", text = "󰡨", fg = "#458ee6" },
+ { name = "config", text = "", fg = "#6d8086" },
+ { name = "containerfile", text = "󰡨", fg = "#458ee6" },
+ { name = "copying", text = "", fg = "#cbcb41" },
+ { name = "copying.lesser", text = "", fg = "#cbcb41" },
+ { name = "Directory.Build.props", text = "", fg = "#00a2ff" },
+ { name = "Directory.Build.targets", text = "", fg = "#00a2ff" },
+ { name = "Directory.Packages.props", text = "", fg = "#00a2ff" },
+ { name = "docker-compose.yaml", text = "󰡨", fg = "#458ee6" },
+ { name = "docker-compose.yml", text = "󰡨", fg = "#458ee6" },
+ { name = "dockerfile", text = "󰡨", fg = "#458ee6" },
+ { name = "eslint.config.cjs", text = "", fg = "#4b32c3" },
+ { name = "eslint.config.js", text = "", fg = "#4b32c3" },
+ { name = "eslint.config.mjs", text = "", fg = "#4b32c3" },
+ { name = "eslint.config.ts", text = "", fg = "#4b32c3" },
+ { name = "ext_typoscript_setup.txt", text = "", fg = "#ff8700" },
+ { name = "favicon.ico", text = "", fg = "#cbcb41" },
+ { name = "fp-info-cache", text = "", fg = "#ffffff" },
+ { name = "fp-lib-table", text = "", fg = "#ffffff" },
+ { name = "FreeCAD.conf", text = "", fg = "#cb333b" },
+ { name = "Gemfile", text = "", fg = "#701516" },
+ { name = "gnumakefile", text = "", fg = "#6d8086" },
+ { name = "go.mod", text = "", fg = "#00add8" },
+ { name = "go.sum", text = "", fg = "#00add8" },
+ { name = "go.work", text = "", fg = "#00add8" },
+ { name = "gradle-wrapper.properties", text = "", fg = "#005f87" },
+ { name = "gradle.properties", text = "", fg = "#005f87" },
+ { name = "gradlew", text = "", fg = "#005f87" },
+ { name = "groovy", text = "", fg = "#4a687c" },
+ { name = "gruntfile.babel.js", text = "", fg = "#e37933" },
+ { name = "gruntfile.coffee", text = "", fg = "#e37933" },
+ { name = "gruntfile.js", text = "", fg = "#e37933" },
+ { name = "gruntfile.ts", text = "", fg = "#e37933" },
+ { name = "gtkrc", text = "", fg = "#ffffff" },
+ { name = "gulpfile.babel.js", text = "", fg = "#cc3e44" },
+ { name = "gulpfile.coffee", text = "", fg = "#cc3e44" },
+ { name = "gulpfile.js", text = "", fg = "#cc3e44" },
+ { name = "gulpfile.ts", text = "", fg = "#cc3e44" },
+ { name = "hypridle.conf", text = "", fg = "#00aaae" },
+ { name = "hyprland.conf", text = "", fg = "#00aaae" },
+ { name = "hyprlandd.conf", text = "", fg = "#00aaae" },
+ { name = "hyprlock.conf", text = "", fg = "#00aaae" },
+ { name = "hyprpaper.conf", text = "", fg = "#00aaae" },
+ { name = "i18n.config.js", text = "󰗊", fg = "#7986cb" },
+ { name = "i18n.config.ts", text = "󰗊", fg = "#7986cb" },
+ { name = "i3blocks.conf", text = "", fg = "#e8ebee" },
+ { name = "i3status.conf", text = "", fg = "#e8ebee" },
+ { name = "index.theme", text = "", fg = "#2db96f" },
+ { name = "ionic.config.json", text = "", fg = "#4f8ff7" },
+ { name = "justfile", text = "", fg = "#6d8086" },
+ { name = "kalgebrarc", text = "", fg = "#1c99f3" },
+ { name = "kdeglobals", text = "", fg = "#1c99f3" },
+ { name = "kdenlive-layoutsrc", text = "", fg = "#83b8f2" },
+ { name = "kdenliverc", text = "", fg = "#83b8f2" },
+ { name = "kritadisplayrc", text = "", fg = "#f245fb" },
+ { name = "kritarc", text = "", fg = "#f245fb" },
+ { name = "license", text = "", fg = "#d0bf41" },
+ { name = "license.md", text = "", fg = "#d0bf41" },
+ { name = "lxde-rc.xml", text = "", fg = "#909090" },
+ { name = "lxqt.conf", text = "", fg = "#0192d3" },
+ { name = "makefile", text = "", fg = "#6d8086" },
+ { name = "mix.lock", text = "", fg = "#a074c4" },
+ { name = "mpv.conf", text = "", fg = "#3b1342" },
+ { name = "node_modules", text = "", fg = "#e8274b" },
+ { name = "nuxt.config.cjs", text = "󱄆", fg = "#00c58e" },
+ { name = "nuxt.config.js", text = "󱄆", fg = "#00c58e" },
+ { name = "nuxt.config.mjs", text = "󱄆", fg = "#00c58e" },
+ { name = "nuxt.config.ts", text = "󱄆", fg = "#00c58e" },
+ { name = "package-lock.json", text = "", fg = "#7a0d21" },
+ { name = "package.json", text = "", fg = "#e8274b" },
+ { name = "PKGBUILD", text = "", fg = "#0f94d2" },
+ { name = "platformio.ini", text = "", fg = "#f6822b" },
+ { name = "pom.xml", text = "", fg = "#7a0d21" },
+ { name = "prettier.config.cjs", text = "", fg = "#4285f4" },
+ { name = "prettier.config.js", text = "", fg = "#4285f4" },
+ { name = "prettier.config.mjs", text = "", fg = "#4285f4" },
+ { name = "prettier.config.ts", text = "", fg = "#4285f4" },
+ { name = "procfile", text = "", fg = "#a074c4" },
+ { name = "PrusaSlicer.ini", text = "", fg = "#ec6b23" },
+ { name = "PrusaSlicerGcodeViewer.ini", text = "", fg = "#ec6b23" },
+ { name = "py.typed", text = "", fg = "#ffbc03" },
+ { name = "QtProject.conf", text = "", fg = "#40cd52" },
+ { name = "rakefile", text = "", fg = "#701516" },
+ { name = "readme", text = "󰂺", fg = "#ededed" },
+ { name = "readme.md", text = "󰂺", fg = "#ededed" },
+ { name = "rmd", text = "", fg = "#519aba" },
+ { name = "robots.txt", text = "󰚩", fg = "#5d7096" },
+ { name = "security", text = "󰒃", fg = "#bec4c9" },
+ { name = "security.md", text = "󰒃", fg = "#bec4c9" },
+ { name = "settings.gradle", text = "", fg = "#005f87" },
+ { name = "svelte.config.js", text = "", fg = "#ff3e00" },
+ { name = "sxhkdrc", text = "", fg = "#2f2f2f" },
+ { name = "sym-lib-table", text = "", fg = "#ffffff" },
+ { name = "tailwind.config.js", text = "󱏿", fg = "#20c2e3" },
+ { name = "tailwind.config.mjs", text = "󱏿", fg = "#20c2e3" },
+ { name = "tailwind.config.ts", text = "󱏿", fg = "#20c2e3" },
+ { name = "tmux.conf", text = "", fg = "#14ba19" },
+ { name = "tmux.conf.local", text = "", fg = "#14ba19" },
+ { name = "tsconfig.json", text = "", fg = "#519aba" },
+ { name = "unlicense", text = "", fg = "#d0bf41" },
+ { name = "vagrantfile", text = "", fg = "#1563ff" },
+ { name = "vercel.json", text = "", fg = "#ffffff" },
+ { name = "vlcrc", text = "󰕼", fg = "#ee7a00" },
+ { name = "webpack", text = "󰜫", fg = "#519aba" },
+ { name = "weston.ini", text = "", fg = "#ffbb01" },
+ { name = "workspace", text = "", fg = "#89e051" },
+ { name = "wrangler.jsonc", text = "", fg = "#f48120" },
+ { name = "wrangler.toml", text = "", fg = "#f48120" },
+ { name = "xmobarrc", text = "", fg = "#fd4d5d" },
+ { name = "xmobarrc.hs", text = "", fg = "#fd4d5d" },
+ { name = "xmonad.hs", text = "", fg = "#fd4d5d" },
+ { name = "xorg.conf", text = "", fg = "#e54d18" },
+ { name = "xsettingsd.conf", text = "", fg = "#e54d18" },
+]
+exts = [
+ { name = "3gp", text = "", fg = "#fd971f" },
+ { name = "3mf", text = "󰆧", fg = "#888888" },
+ { name = "7z", text = "", fg = "#eca517" },
+ { name = "a", text = "", fg = "#dcddd6" },
+ { name = "aac", text = "", fg = "#00afff" },
+ { name = "ada", text = "", fg = "#599eff" },
+ { name = "adb", text = "", fg = "#599eff" },
+ { name = "ads", text = "", fg = "#a074c4" },
+ { name = "ai", text = "", fg = "#cbcb41" },
+ { name = "aif", text = "", fg = "#00afff" },
+ { name = "aiff", text = "", fg = "#00afff" },
+ { name = "android", text = "", fg = "#34a853" },
+ { name = "ape", text = "", fg = "#00afff" },
+ { name = "apk", text = "", fg = "#34a853" },
+ { name = "apl", text = "", fg = "#24a148" },
+ { name = "app", text = "", fg = "#9f0500" },
+ { name = "applescript", text = "", fg = "#6d8085" },
+ { name = "asc", text = "󰦝", fg = "#576d7f" },
+ { name = "asm", text = "", fg = "#0091bd" },
+ { name = "ass", text = "󰨖", fg = "#ffb713" },
+ { name = "astro", text = "", fg = "#e23f67" },
+ { name = "avif", text = "", fg = "#a074c4" },
+ { name = "awk", text = "", fg = "#4d5a5e" },
+ { name = "azcli", text = "", fg = "#0078d4" },
+ { name = "bak", text = "󰁯", fg = "#6d8086" },
+ { name = "bash", text = "", fg = "#89e051" },
+ { name = "bat", text = "", fg = "#c1f12e" },
+ { name = "bazel", text = "", fg = "#89e051" },
+ { name = "bib", text = "󱉟", fg = "#cbcb41" },
+ { name = "bicep", text = "", fg = "#519aba" },
+ { name = "bicepparam", text = "", fg = "#9f74b3" },
+ { name = "bin", text = "", fg = "#9f0500" },
+ { name = "blade.php", text = "", fg = "#f05340" },
+ { name = "blend", text = "󰂫", fg = "#ea7600" },
+ { name = "blp", text = "󰺾", fg = "#5796e2" },
+ { name = "bmp", text = "", fg = "#a074c4" },
+ { name = "bqn", text = "", fg = "#24a148" },
+ { name = "brep", text = "󰻫", fg = "#839463" },
+ { name = "bz", text = "", fg = "#eca517" },
+ { name = "bz2", text = "", fg = "#eca517" },
+ { name = "bz3", text = "", fg = "#eca517" },
+ { name = "bzl", text = "", fg = "#89e051" },
+ { name = "c", text = "", fg = "#599eff" },
+ { name = "c++", text = "", fg = "#f34b7d" },
+ { name = "cache", text = "", fg = "#ffffff" },
+ { name = "cast", text = "", fg = "#fd971f" },
+ { name = "cbl", text = "", fg = "#005ca5" },
+ { name = "cc", text = "", fg = "#f34b7d" },
+ { name = "ccm", text = "", fg = "#f34b7d" },
+ { name = "cfg", text = "", fg = "#6d8086" },
+ { name = "cjs", text = "", fg = "#cbcb41" },
+ { name = "clj", text = "", fg = "#8dc149" },
+ { name = "cljc", text = "", fg = "#8dc149" },
+ { name = "cljd", text = "", fg = "#519aba" },
+ { name = "cljs", text = "", fg = "#519aba" },
+ { name = "cmake", text = "", fg = "#dce3eb" },
+ { name = "cob", text = "", fg = "#005ca5" },
+ { name = "cobol", text = "", fg = "#005ca5" },
+ { name = "coffee", text = "", fg = "#cbcb41" },
+ { name = "conda", text = "", fg = "#43b02a" },
+ { name = "conf", text = "", fg = "#6d8086" },
+ { name = "config.ru", text = "", fg = "#701516" },
+ { name = "cow", text = "󰆚", fg = "#965824" },
+ { name = "cp", text = "", fg = "#519aba" },
+ { name = "cpp", text = "", fg = "#519aba" },
+ { name = "cppm", text = "", fg = "#519aba" },
+ { name = "cpy", text = "", fg = "#005ca5" },
+ { name = "cr", text = "", fg = "#c8c8c8" },
+ { name = "crdownload", text = "", fg = "#44cda8" },
+ { name = "cs", text = "󰌛", fg = "#596706" },
+ { name = "csh", text = "", fg = "#4d5a5e" },
+ { name = "cshtml", text = "󱦗", fg = "#512bd4" },
+ { name = "cson", text = "", fg = "#cbcb41" },
+ { name = "csproj", text = "󰪮", fg = "#512bd4" },
+ { name = "css", text = "", fg = "#663399" },
+ { name = "csv", text = "", fg = "#89e051" },
+ { name = "cts", text = "", fg = "#519aba" },
+ { name = "cu", text = "", fg = "#89e051" },
+ { name = "cue", text = "󰲹", fg = "#ed95ae" },
+ { name = "cuh", text = "", fg = "#a074c4" },
+ { name = "cxx", text = "", fg = "#519aba" },
+ { name = "cxxm", text = "", fg = "#519aba" },
+ { name = "d", text = "", fg = "#b03931" },
+ { name = "d.ts", text = "", fg = "#d59855" },
+ { name = "dart", text = "", fg = "#03589c" },
+ { name = "db", text = "", fg = "#dad8d8" },
+ { name = "dconf", text = "", fg = "#ffffff" },
+ { name = "desktop", text = "", fg = "#563d7c" },
+ { name = "diff", text = "", fg = "#41535b" },
+ { name = "dll", text = "", fg = "#4d2c0b" },
+ { name = "doc", text = "󰈬", fg = "#185abd" },
+ { name = "Dockerfile", text = "󰡨", fg = "#458ee6" },
+ { name = "dockerignore", text = "󰡨", fg = "#458ee6" },
+ { name = "docx", text = "󰈬", fg = "#185abd" },
+ { name = "dot", text = "󱁉", fg = "#30638e" },
+ { name = "download", text = "", fg = "#44cda8" },
+ { name = "drl", text = "", fg = "#ffafaf" },
+ { name = "dropbox", text = "", fg = "#0061fe" },
+ { name = "dump", text = "", fg = "#dad8d8" },
+ { name = "dwg", text = "󰻫", fg = "#839463" },
+ { name = "dxf", text = "󰻫", fg = "#839463" },
+ { name = "ebook", text = "", fg = "#eab16d" },
+ { name = "ebuild", text = "", fg = "#4c416e" },
+ { name = "edn", text = "", fg = "#519aba" },
+ { name = "eex", text = "", fg = "#a074c4" },
+ { name = "ejs", text = "", fg = "#cbcb41" },
+ { name = "el", text = "", fg = "#8172be" },
+ { name = "elc", text = "", fg = "#8172be" },
+ { name = "elf", text = "", fg = "#9f0500" },
+ { name = "elm", text = "", fg = "#519aba" },
+ { name = "eln", text = "", fg = "#8172be" },
+ { name = "env", text = "", fg = "#faf743" },
+ { name = "eot", text = "", fg = "#ececec" },
+ { name = "epp", text = "", fg = "#ffa61a" },
+ { name = "epub", text = "", fg = "#eab16d" },
+ { name = "erb", text = "", fg = "#701516" },
+ { name = "erl", text = "", fg = "#b83998" },
+ { name = "ex", text = "", fg = "#a074c4" },
+ { name = "exe", text = "", fg = "#9f0500" },
+ { name = "exs", text = "", fg = "#a074c4" },
+ { name = "f#", text = "", fg = "#519aba" },
+ { name = "f3d", text = "󰻫", fg = "#839463" },
+ { name = "f90", text = "󱈚", fg = "#734f96" },
+ { name = "fbx", text = "󰆧", fg = "#888888" },
+ { name = "fcbak", text = "", fg = "#cb333b" },
+ { name = "fcmacro", text = "", fg = "#cb333b" },
+ { name = "fcmat", text = "", fg = "#cb333b" },
+ { name = "fcparam", text = "", fg = "#cb333b" },
+ { name = "fcscript", text = "", fg = "#cb333b" },
+ { name = "fcstd", text = "", fg = "#cb333b" },
+ { name = "fcstd1", text = "", fg = "#cb333b" },
+ { name = "fctb", text = "", fg = "#cb333b" },
+ { name = "fctl", text = "", fg = "#cb333b" },
+ { name = "fdmdownload", text = "", fg = "#44cda8" },
+ { name = "feature", text = "", fg = "#00a818" },
+ { name = "fish", text = "", fg = "#4d5a5e" },
+ { name = "flac", text = "", fg = "#0075aa" },
+ { name = "flc", text = "", fg = "#ececec" },
+ { name = "flf", text = "", fg = "#ececec" },
+ { name = "fnl", text = "", fg = "#fff3d7" },
+ { name = "fodg", text = "", fg = "#fffb57" },
+ { name = "fodp", text = "", fg = "#fe9c45" },
+ { name = "fods", text = "", fg = "#78fc4e" },
+ { name = "fodt", text = "", fg = "#2dcbfd" },
+ { name = "fs", text = "", fg = "#519aba" },
+ { name = "fsi", text = "", fg = "#519aba" },
+ { name = "fsscript", text = "", fg = "#519aba" },
+ { name = "fsx", text = "", fg = "#519aba" },
+ { name = "gcode", text = "󰐫", fg = "#1471ad" },
+ { name = "gd", text = "", fg = "#6d8086" },
+ { name = "gemspec", text = "", fg = "#701516" },
+ { name = "gif", text = "", fg = "#a074c4" },
+ { name = "git", text = "", fg = "#f14c28" },
+ { name = "glb", text = "", fg = "#ffb13b" },
+ { name = "gleam", text = "", fg = "#ffaff3" },
+ { name = "gnumakefile", text = "", fg = "#6d8086" },
+ { name = "go", text = "", fg = "#00add8" },
+ { name = "godot", text = "", fg = "#6d8086" },
+ { name = "gpr", text = "", fg = "#6d8086" },
+ { name = "gql", text = "", fg = "#e535ab" },
+ { name = "gradle", text = "", fg = "#005f87" },
+ { name = "graphql", text = "", fg = "#e535ab" },
+ { name = "gresource", text = "", fg = "#ffffff" },
+ { name = "gv", text = "󱁉", fg = "#30638e" },
+ { name = "gz", text = "", fg = "#eca517" },
+ { name = "h", text = "", fg = "#a074c4" },
+ { name = "haml", text = "", fg = "#eaeae1" },
+ { name = "hbs", text = "", fg = "#f0772b" },
+ { name = "heex", text = "", fg = "#a074c4" },
+ { name = "hex", text = "", fg = "#2e63ff" },
+ { name = "hh", text = "", fg = "#a074c4" },
+ { name = "hpp", text = "", fg = "#a074c4" },
+ { name = "hrl", text = "", fg = "#b83998" },
+ { name = "hs", text = "", fg = "#a074c4" },
+ { name = "htm", text = "", fg = "#e34c26" },
+ { name = "html", text = "", fg = "#e44d26" },
+ { name = "http", text = "", fg = "#008ec7" },
+ { name = "huff", text = "󰡘", fg = "#4242c7" },
+ { name = "hurl", text = "", fg = "#ff0288" },
+ { name = "hx", text = "", fg = "#ea8220" },
+ { name = "hxx", text = "", fg = "#a074c4" },
+ { name = "ical", text = "", fg = "#2b2e83" },
+ { name = "icalendar", text = "", fg = "#2b2e83" },
+ { name = "ico", text = "", fg = "#cbcb41" },
+ { name = "ics", text = "", fg = "#2b2e83" },
+ { name = "ifb", text = "", fg = "#2b2e83" },
+ { name = "ifc", text = "󰻫", fg = "#839463" },
+ { name = "ige", text = "󰻫", fg = "#839463" },
+ { name = "iges", text = "󰻫", fg = "#839463" },
+ { name = "igs", text = "󰻫", fg = "#839463" },
+ { name = "image", text = "", fg = "#d0bec8" },
+ { name = "img", text = "", fg = "#d0bec8" },
+ { name = "import", text = "", fg = "#ececec" },
+ { name = "info", text = "", fg = "#ffffcd" },
+ { name = "ini", text = "", fg = "#6d8086" },
+ { name = "ino", text = "", fg = "#56b6c2" },
+ { name = "ipynb", text = "", fg = "#f57d01" },
+ { name = "iso", text = "", fg = "#d0bec8" },
+ { name = "ixx", text = "", fg = "#519aba" },
+ { name = "java", text = "", fg = "#cc3e44" },
+ { name = "jl", text = "", fg = "#a270ba" },
+ { name = "jpeg", text = "", fg = "#a074c4" },
+ { name = "jpg", text = "", fg = "#a074c4" },
+ { name = "js", text = "", fg = "#cbcb41" },
+ { name = "json", text = "", fg = "#cbcb41" },
+ { name = "json5", text = "", fg = "#cbcb41" },
+ { name = "jsonc", text = "", fg = "#cbcb41" },
+ { name = "jsx", text = "", fg = "#20c2e3" },
+ { name = "jwmrc", text = "", fg = "#0078cd" },
+ { name = "jxl", text = "", fg = "#a074c4" },
+ { name = "kbx", text = "󰯄", fg = "#737672" },
+ { name = "kdb", text = "", fg = "#529b34" },
+ { name = "kdbx", text = "", fg = "#529b34" },
+ { name = "kdenlive", text = "", fg = "#83b8f2" },
+ { name = "kdenlivetitle", text = "", fg = "#83b8f2" },
+ { name = "kicad_dru", text = "", fg = "#ffffff" },
+ { name = "kicad_mod", text = "", fg = "#ffffff" },
+ { name = "kicad_pcb", text = "", fg = "#ffffff" },
+ { name = "kicad_prl", text = "", fg = "#ffffff" },
+ { name = "kicad_pro", text = "", fg = "#ffffff" },
+ { name = "kicad_sch", text = "", fg = "#ffffff" },
+ { name = "kicad_sym", text = "", fg = "#ffffff" },
+ { name = "kicad_wks", text = "", fg = "#ffffff" },
+ { name = "ko", text = "", fg = "#dcddd6" },
+ { name = "kpp", text = "", fg = "#f245fb" },
+ { name = "kra", text = "", fg = "#f245fb" },
+ { name = "krz", text = "", fg = "#f245fb" },
+ { name = "ksh", text = "", fg = "#4d5a5e" },
+ { name = "kt", text = "", fg = "#7f52ff" },
+ { name = "kts", text = "", fg = "#7f52ff" },
+ { name = "lck", text = "", fg = "#bbbbbb" },
+ { name = "leex", text = "", fg = "#a074c4" },
+ { name = "less", text = "", fg = "#563d7c" },
+ { name = "lff", text = "", fg = "#ececec" },
+ { name = "lhs", text = "", fg = "#a074c4" },
+ { name = "lib", text = "", fg = "#4d2c0b" },
+ { name = "license", text = "", fg = "#cbcb41" },
+ { name = "liquid", text = "", fg = "#95bf47" },
+ { name = "lock", text = "", fg = "#bbbbbb" },
+ { name = "log", text = "󰌱", fg = "#dddddd" },
+ { name = "lrc", text = "󰨖", fg = "#ffb713" },
+ { name = "lua", text = "", fg = "#51a0cf" },
+ { name = "luac", text = "", fg = "#51a0cf" },
+ { name = "luau", text = "", fg = "#00a2ff" },
+ { name = "m", text = "", fg = "#599eff" },
+ { name = "m3u", text = "󰲹", fg = "#ed95ae" },
+ { name = "m3u8", text = "󰲹", fg = "#ed95ae" },
+ { name = "m4a", text = "", fg = "#00afff" },
+ { name = "m4v", text = "", fg = "#fd971f" },
+ { name = "magnet", text = "", fg = "#a51b16" },
+ { name = "makefile", text = "", fg = "#6d8086" },
+ { name = "markdown", text = "", fg = "#dddddd" },
+ { name = "material", text = "", fg = "#b83998" },
+ { name = "md", text = "", fg = "#dddddd" },
+ { name = "md5", text = "󰕥", fg = "#8c86af" },
+ { name = "mdx", text = "", fg = "#519aba" },
+ { name = "mint", text = "󰌪", fg = "#87c095" },
+ { name = "mjs", text = "", fg = "#f1e05a" },
+ { name = "mk", text = "", fg = "#6d8086" },
+ { name = "mkv", text = "", fg = "#fd971f" },
+ { name = "ml", text = "", fg = "#e37933" },
+ { name = "mli", text = "", fg = "#e37933" },
+ { name = "mm", text = "", fg = "#519aba" },
+ { name = "mo", text = "", fg = "#9772fb" },
+ { name = "mobi", text = "", fg = "#eab16d" },
+ { name = "mojo", text = "", fg = "#ff4c1f" },
+ { name = "mov", text = "", fg = "#fd971f" },
+ { name = "mp3", text = "", fg = "#00afff" },
+ { name = "mp4", text = "", fg = "#fd971f" },
+ { name = "mpp", text = "", fg = "#519aba" },
+ { name = "msf", text = "", fg = "#137be1" },
+ { name = "mts", text = "", fg = "#519aba" },
+ { name = "mustache", text = "", fg = "#e37933" },
+ { name = "nfo", text = "", fg = "#ffffcd" },
+ { name = "nim", text = "", fg = "#f3d400" },
+ { name = "nix", text = "", fg = "#7ebae4" },
+ { name = "norg", text = "", fg = "#4878be" },
+ { name = "nswag", text = "", fg = "#85ea2d" },
+ { name = "nu", text = "", fg = "#3aa675" },
+ { name = "o", text = "", fg = "#9f0500" },
+ { name = "obj", text = "󰆧", fg = "#888888" },
+ { name = "odf", text = "", fg = "#ff5a96" },
+ { name = "odg", text = "", fg = "#fffb57" },
+ { name = "odin", text = "󰟢", fg = "#3882d2" },
+ { name = "odp", text = "", fg = "#fe9c45" },
+ { name = "ods", text = "", fg = "#78fc4e" },
+ { name = "odt", text = "", fg = "#2dcbfd" },
+ { name = "oga", text = "", fg = "#0075aa" },
+ { name = "ogg", text = "", fg = "#0075aa" },
+ { name = "ogv", text = "", fg = "#fd971f" },
+ { name = "ogx", text = "", fg = "#fd971f" },
+ { name = "opus", text = "", fg = "#0075aa" },
+ { name = "org", text = "", fg = "#77aa99" },
+ { name = "otf", text = "", fg = "#ececec" },
+ { name = "out", text = "", fg = "#9f0500" },
+ { name = "part", text = "", fg = "#44cda8" },
+ { name = "patch", text = "", fg = "#41535b" },
+ { name = "pck", text = "", fg = "#6d8086" },
+ { name = "pcm", text = "", fg = "#0075aa" },
+ { name = "pdf", text = "", fg = "#b30b00" },
+ { name = "php", text = "", fg = "#a074c4" },
+ { name = "pl", text = "", fg = "#519aba" },
+ { name = "pls", text = "󰲹", fg = "#ed95ae" },
+ { name = "ply", text = "󰆧", fg = "#888888" },
+ { name = "pm", text = "", fg = "#519aba" },
+ { name = "png", text = "", fg = "#a074c4" },
+ { name = "po", text = "", fg = "#2596be" },
+ { name = "pot", text = "", fg = "#2596be" },
+ { name = "pp", text = "", fg = "#ffa61a" },
+ { name = "ppt", text = "󰈧", fg = "#cb4a32" },
+ { name = "pptx", text = "󰈧", fg = "#cb4a32" },
+ { name = "prisma", text = "", fg = "#5a67d8" },
+ { name = "pro", text = "", fg = "#e4b854" },
+ { name = "ps1", text = "󰨊", fg = "#4273ca" },
+ { name = "psb", text = "", fg = "#519aba" },
+ { name = "psd", text = "", fg = "#519aba" },
+ { name = "psd1", text = "󰨊", fg = "#6975c4" },
+ { name = "psm1", text = "󰨊", fg = "#6975c4" },
+ { name = "pub", text = "󰷖", fg = "#e3c58e" },
+ { name = "pxd", text = "", fg = "#5aa7e4" },
+ { name = "pxi", text = "", fg = "#5aa7e4" },
+ { name = "py", text = "", fg = "#ffbc03" },
+ { name = "pyc", text = "", fg = "#ffe291" },
+ { name = "pyd", text = "", fg = "#ffe291" },
+ { name = "pyi", text = "", fg = "#ffbc03" },
+ { name = "pyo", text = "", fg = "#ffe291" },
+ { name = "pyw", text = "", fg = "#5aa7e4" },
+ { name = "pyx", text = "", fg = "#5aa7e4" },
+ { name = "qm", text = "", fg = "#2596be" },
+ { name = "qml", text = "", fg = "#40cd52" },
+ { name = "qrc", text = "", fg = "#40cd52" },
+ { name = "qss", text = "", fg = "#40cd52" },
+ { name = "query", text = "", fg = "#90a850" },
+ { name = "r", text = "󰟔", fg = "#2266ba" },
+ { name = "R", text = "󰟔", fg = "#2266ba" },
+ { name = "rake", text = "", fg = "#701516" },
+ { name = "rar", text = "", fg = "#eca517" },
+ { name = "razor", text = "󱦘", fg = "#512bd4" },
+ { name = "rb", text = "", fg = "#701516" },
+ { name = "res", text = "", fg = "#cc3e44" },
+ { name = "resi", text = "", fg = "#f55385" },
+ { name = "rlib", text = "", fg = "#dea584" },
+ { name = "rmd", text = "", fg = "#519aba" },
+ { name = "rproj", text = "󰗆", fg = "#358a5b" },
+ { name = "rs", text = "", fg = "#dea584" },
+ { name = "rss", text = "", fg = "#fb9d3b" },
+ { name = "s", text = "", fg = "#0071c5" },
+ { name = "sass", text = "", fg = "#f55385" },
+ { name = "sbt", text = "", fg = "#cc3e44" },
+ { name = "sc", text = "", fg = "#cc3e44" },
+ { name = "scad", text = "", fg = "#f9d72c" },
+ { name = "scala", text = "", fg = "#cc3e44" },
+ { name = "scm", text = "󰘧", fg = "#eeeeee" },
+ { name = "scss", text = "", fg = "#f55385" },
+ { name = "sh", text = "", fg = "#4d5a5e" },
+ { name = "sha1", text = "󰕥", fg = "#8c86af" },
+ { name = "sha224", text = "󰕥", fg = "#8c86af" },
+ { name = "sha256", text = "󰕥", fg = "#8c86af" },
+ { name = "sha384", text = "󰕥", fg = "#8c86af" },
+ { name = "sha512", text = "󰕥", fg = "#8c86af" },
+ { name = "sig", text = "󰘧", fg = "#e37933" },
+ { name = "signature", text = "󰘧", fg = "#e37933" },
+ { name = "skp", text = "󰻫", fg = "#839463" },
+ { name = "sldasm", text = "󰻫", fg = "#839463" },
+ { name = "sldprt", text = "󰻫", fg = "#839463" },
+ { name = "slim", text = "", fg = "#e34c26" },
+ { name = "sln", text = "", fg = "#854cc7" },
+ { name = "slnx", text = "", fg = "#854cc7" },
+ { name = "slvs", text = "󰻫", fg = "#839463" },
+ { name = "sml", text = "󰘧", fg = "#e37933" },
+ { name = "so", text = "", fg = "#dcddd6" },
+ { name = "sol", text = "", fg = "#519aba" },
+ { name = "spec.js", text = "", fg = "#cbcb41" },
+ { name = "spec.jsx", text = "", fg = "#20c2e3" },
+ { name = "spec.ts", text = "", fg = "#519aba" },
+ { name = "spec.tsx", text = "", fg = "#1354bf" },
+ { name = "spx", text = "", fg = "#0075aa" },
+ { name = "sql", text = "", fg = "#dad8d8" },
+ { name = "sqlite", text = "", fg = "#dad8d8" },
+ { name = "sqlite3", text = "", fg = "#dad8d8" },
+ { name = "srt", text = "󰨖", fg = "#ffb713" },
+ { name = "ssa", text = "󰨖", fg = "#ffb713" },
+ { name = "ste", text = "󰻫", fg = "#839463" },
+ { name = "step", text = "󰻫", fg = "#839463" },
+ { name = "stl", text = "󰆧", fg = "#888888" },
+ { name = "stories.js", text = "", fg = "#ff4785" },
+ { name = "stories.jsx", text = "", fg = "#ff4785" },
+ { name = "stories.mjs", text = "", fg = "#ff4785" },
+ { name = "stories.svelte", text = "", fg = "#ff4785" },
+ { name = "stories.ts", text = "", fg = "#ff4785" },
+ { name = "stories.tsx", text = "", fg = "#ff4785" },
+ { name = "stories.vue", text = "", fg = "#ff4785" },
+ { name = "stp", text = "󰻫", fg = "#839463" },
+ { name = "strings", text = "", fg = "#2596be" },
+ { name = "styl", text = "", fg = "#8dc149" },
+ { name = "sub", text = "󰨖", fg = "#ffb713" },
+ { name = "sublime", text = "", fg = "#e37933" },
+ { name = "suo", text = "", fg = "#854cc7" },
+ { name = "sv", text = "󰍛", fg = "#019833" },
+ { name = "svelte", text = "", fg = "#ff3e00" },
+ { name = "svg", text = "󰜡", fg = "#ffb13b" },
+ { name = "svgz", text = "󰜡", fg = "#ffb13b" },
+ { name = "svh", text = "󰍛", fg = "#019833" },
+ { name = "swift", text = "", fg = "#e37933" },
+ { name = "t", text = "", fg = "#519aba" },
+ { name = "tbc", text = "󰛓", fg = "#1e5cb3" },
+ { name = "tcl", text = "󰛓", fg = "#1e5cb3" },
+ { name = "templ", text = "", fg = "#dbbd30" },
+ { name = "terminal", text = "", fg = "#31b53e" },
+ { name = "test.js", text = "", fg = "#cbcb41" },
+ { name = "test.jsx", text = "", fg = "#20c2e3" },
+ { name = "test.ts", text = "", fg = "#519aba" },
+ { name = "test.tsx", text = "", fg = "#1354bf" },
+ { name = "tex", text = "", fg = "#3d6117" },
+ { name = "tf", text = "", fg = "#5f43e9" },
+ { name = "tfvars", text = "", fg = "#5f43e9" },
+ { name = "tgz", text = "", fg = "#eca517" },
+ { name = "tmpl", text = "", fg = "#dbbd30" },
+ { name = "tmux", text = "", fg = "#14ba19" },
+ { name = "toml", text = "", fg = "#9c4221" },
+ { name = "torrent", text = "", fg = "#44cda8" },
+ { name = "tres", text = "", fg = "#6d8086" },
+ { name = "ts", text = "", fg = "#519aba" },
+ { name = "tscn", text = "", fg = "#6d8086" },
+ { name = "tsconfig", text = "", fg = "#ff8700" },
+ { name = "tsx", text = "", fg = "#1354bf" },
+ { name = "ttf", text = "", fg = "#ececec" },
+ { name = "twig", text = "", fg = "#8dc149" },
+ { name = "txt", text = "󰈙", fg = "#89e051" },
+ { name = "txz", text = "", fg = "#eca517" },
+ { name = "typ", text = "", fg = "#0dbcc0" },
+ { name = "typoscript", text = "", fg = "#ff8700" },
+ { name = "ui", text = "", fg = "#015bf0" },
+ { name = "v", text = "󰍛", fg = "#019833" },
+ { name = "vala", text = "", fg = "#7b3db9" },
+ { name = "vh", text = "󰍛", fg = "#019833" },
+ { name = "vhd", text = "󰍛", fg = "#019833" },
+ { name = "vhdl", text = "󰍛", fg = "#019833" },
+ { name = "vi", text = "", fg = "#fec60a" },
+ { name = "vim", text = "", fg = "#019833" },
+ { name = "vsh", text = "", fg = "#5d87bf" },
+ { name = "vsix", text = "", fg = "#854cc7" },
+ { name = "vue", text = "", fg = "#8dc149" },
+ { name = "wasm", text = "", fg = "#5c4cdb" },
+ { name = "wav", text = "", fg = "#00afff" },
+ { name = "webm", text = "", fg = "#fd971f" },
+ { name = "webmanifest", text = "", fg = "#f1e05a" },
+ { name = "webp", text = "", fg = "#a074c4" },
+ { name = "webpack", text = "󰜫", fg = "#519aba" },
+ { name = "wma", text = "", fg = "#00afff" },
+ { name = "woff", text = "", fg = "#ececec" },
+ { name = "woff2", text = "", fg = "#ececec" },
+ { name = "wrl", text = "󰆧", fg = "#888888" },
+ { name = "wrz", text = "󰆧", fg = "#888888" },
+ { name = "wv", text = "", fg = "#00afff" },
+ { name = "wvc", text = "", fg = "#00afff" },
+ { name = "x", text = "", fg = "#599eff" },
+ { name = "xaml", text = "󰙳", fg = "#512bd4" },
+ { name = "xcf", text = "", fg = "#635b46" },
+ { name = "xcplayground", text = "", fg = "#e37933" },
+ { name = "xcstrings", text = "", fg = "#2596be" },
+ { name = "xls", text = "󰈛", fg = "#207245" },
+ { name = "xlsx", text = "󰈛", fg = "#207245" },
+ { name = "xm", text = "", fg = "#519aba" },
+ { name = "xml", text = "󰗀", fg = "#e37933" },
+ { name = "xpi", text = "", fg = "#ff1b01" },
+ { name = "xul", text = "", fg = "#e37933" },
+ { name = "xz", text = "", fg = "#eca517" },
+ { name = "yaml", text = "", fg = "#6d8086" },
+ { name = "yml", text = "", fg = "#6d8086" },
+ { name = "zig", text = "", fg = "#f69a1b" },
+ { name = "zip", text = "", fg = "#eca517" },
+ { name = "zsh", text = "", fg = "#89e051" },
+ { name = "zst", text = "", fg = "#eca517" },
+ { name = "🔥", text = "", fg = "#ff4c1f" },
+]
+conds = [
+ # Special files
+ { if = "orphan", text = "" },
+ { if = "link", text = "" },
+ { if = "block", text = "" },
+ { if = "char", text = "" },
+ { if = "fifo", text = "" },
+ { if = "sock", text = "" },
+ { if = "sticky", text = "" },
+ { if = "dummy", text = "" },
+
+ # Fallback
+ { if = "dir", text = "" },
+ { if = "exec", text = "" },
+ { if = "!dir", text = "" },
+]
+
+# : }}}
diff --git a/yazi/yazi.toml b/yazi/yazi.toml
new file mode 100644
index 0000000..8cbefc6
--- /dev/null
+++ b/yazi/yazi.toml
@@ -0,0 +1,213 @@
+# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
+# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
+"$schema" = "https://yazi-rs.github.io/schemas/yazi.json"
+
+[mgr]
+ratio = [ 1, 4, 3 ]
+sort_by = "alphabetical"
+sort_sensitive = false
+sort_reverse = false
+sort_dir_first = true
+sort_translit = false
+linemode = "none"
+show_hidden = false
+show_symlink = true
+scrolloff = 5
+mouse_events = [ "click", "scroll" ]
+title_format = "Yazi: {cwd}"
+
+[preview]
+wrap = "no"
+tab_size = 2
+max_width = 600
+max_height = 900
+cache_dir = ""
+image_delay = 30
+image_filter = "triangle"
+image_quality = 75
+ueberzug_scale = 1
+ueberzug_offset = [ 0, 0, 0, 0 ]
+
+[opener]
+edit = [
+ { run = '${EDITOR} "$@"', desc = "$EDITOR", block = true, for = "unix" },
+]
+open = [
+ { run = 'xdg-open "$1"', desc = "Open", for = "linux" },
+]
+reveal = [
+ { run = 'xdg-open "$(dirname "$1")"', desc = "Reveal", for = "linux" },
+ { run = '''clear; exiftool "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show EXIF", for = "unix" },
+]
+extract = [
+ { run = 'ya pub extract --list "$@"', desc = "Extract here", for = "unix" },
+]
+play = [
+ { run = 'mpv --force-window "$@"', orphan = true, for = "unix" },
+ { run = '''mediainfo "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show media info", for = "unix" },
+]
+
+[open]
+rules = [
+ # Folder
+ { name = "*/", use = [ "edit", "open", "reveal" ] },
+ # Text
+ { mime = "text/*", use = [ "edit", "reveal" ] },
+ # Image
+ { mime = "image/*", use = [ "open", "reveal" ] },
+ # Media
+ { mime = "{audio,video}/*", use = [ "play", "reveal" ] },
+ # Archive
+ { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", use = [ "extract", "reveal" ] },
+ # JSON
+ { mime = "application/{json,ndjson}", use = [ "edit", "reveal" ] },
+ { mime = "*/javascript", use = [ "edit", "reveal" ] },
+ # Empty file
+ { mime = "inode/empty", use = [ "edit", "reveal" ] },
+ # Fallback
+ { name = "*", use = [ "open", "reveal" ] },
+]
+
+[tasks]
+micro_workers = 10
+macro_workers = 10
+bizarre_retry = 3
+image_alloc = 536870912 # 512MB
+image_bound = [ 5000, 5000 ]
+suppress_preload = false
+
+[plugin]
+fetchers = [
+ # Mimetype
+ { id = "mime", name = "*", run = "mime", prio = "high" },
+]
+spotters = [
+ { name = "*/", run = "folder" },
+ # Code
+ { mime = "text/*", run = "code" },
+ { mime = "application/{mbox,javascript,wine-extension-ini}", run = "code" },
+ # Image
+ { mime = "image/{avif,hei?,jxl}", run = "magick" },
+ { mime = "image/svg+xml", run = "svg" },
+ { mime = "image/*", run = "image" },
+ # Video
+ { mime = "video/*", run = "video" },
+ # Fallback
+ { name = "*", run = "file" },
+]
+preloaders = [
+ # Image
+ { mime = "image/{avif,hei?,jxl}", run = "magick" },
+ { mime = "image/svg+xml", run = "svg" },
+ { mime = "image/*", run = "image" },
+ # Video
+ { mime = "video/*", run = "video" },
+ # PDF
+ { mime = "application/pdf", run = "pdf" },
+ # Font
+ { mime = "font/*", run = "font" },
+ { mime = "application/ms-opentype", run = "font" },
+]
+previewers = [
+ { name = "*/", run = "folder" },
+ # Code
+ { mime = "text/*", run = "code" },
+ { mime = "application/{mbox,javascript,wine-extension-ini}", run = "code" },
+ # JSON
+ { mime = "application/{json,ndjson}", run = "json" },
+ # Image
+ { mime = "image/{avif,hei?,jxl}", run = "magick" },
+ { mime = "image/svg+xml", run = "svg" },
+ { mime = "image/*", run = "image" },
+ # Video
+ { mime = "video/*", run = "video" },
+ # PDF
+ { mime = "application/pdf", run = "pdf" },
+ # Archive
+ { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", run = "archive" },
+ { mime = "application/{debian*-package,redhat-package-manager,rpm,android.package-archive}", run = "archive" },
+ { name = "*.{AppImage,appimage}", run = "archive" },
+ # Virtual Disk / Disk Image
+ { mime = "application/{iso9660-image,qemu-disk,ms-wim,apple-diskimage}", run = "archive" },
+ { mime = "application/virtualbox-{vhd,vhdx}", run = "archive" },
+ { name = "*.{img,fat,ext,ext2,ext3,ext4,squashfs,ntfs,hfs,hfsx}", run = "archive" },
+ # Font
+ { mime = "font/*", run = "font" },
+ { mime = "application/ms-opentype", run = "font" },
+ # Empty file
+ { mime = "inode/empty", run = "empty" },
+ # Fallback
+ { name = "*", run = "file" },
+]
+
+[input]
+cursor_blink = false
+
+# cd
+cd_title = "Change directory:"
+cd_origin = "top-center"
+cd_offset = [ 0, 2, 50, 3 ]
+
+# create
+create_title = [ "Create:", "Create (dir):" ]
+create_origin = "top-center"
+create_offset = [ 0, 2, 50, 3 ]
+
+# rename
+rename_title = "Rename:"
+rename_origin = "hovered"
+rename_offset = [ 0, 1, 50, 3 ]
+
+# filter
+filter_title = "Filter:"
+filter_origin = "top-center"
+filter_offset = [ 0, 2, 50, 3 ]
+
+# find
+find_title = [ "Find next:", "Find previous:" ]
+find_origin = "top-center"
+find_offset = [ 0, 2, 50, 3 ]
+
+# search
+search_title = "Search via {n}:"
+search_origin = "top-center"
+search_offset = [ 0, 2, 50, 3 ]
+
+# shell
+shell_title = [ "Shell:", "Shell (block):" ]
+shell_origin = "top-center"
+shell_offset = [ 0, 2, 50, 3 ]
+
+[confirm]
+# trash
+trash_title = "Trash {n} selected file{s}?"
+trash_origin = "center"
+trash_offset = [ 0, 0, 70, 20 ]
+
+# delete
+delete_title = "Permanently delete {n} selected file{s}?"
+delete_origin = "center"
+delete_offset = [ 0, 0, 70, 20 ]
+
+# overwrite
+overwrite_title = "Overwrite file?"
+overwrite_content = "Will overwrite the following file:"
+overwrite_origin = "center"
+overwrite_offset = [ 0, 0, 50, 15 ]
+
+# quit
+quit_title = "Quit?"
+quit_content = "The following tasks are still running, are you sure you want to quit?"
+quit_origin = "center"
+quit_offset = [ 0, 0, 50, 15 ]
+
+[pick]
+open_title = "Open with:"
+open_origin = "hovered"
+open_offset = [ 0, 1, 50, 7 ]
+
+[which]
+sort_by = "none"
+sort_sensitive = false
+sort_reverse = false
+sort_translit = false