Compare commits

..

7 Commits

Author SHA1 Message Date
839bbadee7
old options 2026-04-19 14:46:14 +02:00
5bed96736a
old options 2026-04-19 14:45:50 +02:00
0d4d0254bb
git, oil, telescope 2026-04-19 14:28:43 +02:00
51ab50247e
old options 2026-04-18 19:00:07 +02:00
d24254728d
old options 2026-04-18 18:58:31 +02:00
4c5a9a157c
old options 2026-04-18 18:58:17 +02:00
e73936f278
ciao 2026-04-18 18:11:18 +02:00
48 changed files with 6325 additions and 3865 deletions

View File

@ -7,7 +7,7 @@
[commit]
gpgsign = true
[gpg]
program = gpg
program = gpg2
[pull]
rebase = true
[push]

11
.zshrc
View File

@ -17,9 +17,9 @@ plug "romkatv/powerlevel10k"
#
#
# # Load and initialise completion system
autoload -Uz compinit
fpath+=~/.zfunc
compinit
# autoload -Uz compinit
# fpath+=~/.zfunc
# compinit
# # nvm initialization
# source /usr/share/nvm/init-nvm.sh
@ -38,7 +38,10 @@ export GPG_TTY=$(tty)
export EDITOR="nvim"
source /usr/share/nvm/init-nvm.sh
source "/home/user/.sdkman/bin/sdkman-init.sh"
source "/home/user/.cargo/env"
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
source ~/.cargo/env
export KUBECONFIG=~/.kube/config-server

10
ghostty/config Normal file
View File

@ -0,0 +1,10 @@
font-family = Iosevka NF
font-size = 18
window-decoration = false
mouse-hide-while-typing = true
theme = Gruvbox Dark
shell-integration = zsh

View File

@ -0,0 +1,47 @@
# vim:ft=kitty
## name: Gruvbox Material Dark Hard
## author: Sainnhe Park
## license: MIT
## upstream: https://raw.githubusercontent.com/rsaihe/gruvbox-material-kitty/main/colors/gruvbox-material-dark-hard.conf
## blurb: A modified version of Gruvbox with softer contrasts
background #1d2021
foreground #d4be98
selection_background #d4be98
selection_foreground #1d2021
cursor #a89984
cursor_text_color background
# Black
color0 #665c54
color8 #928374
# Red
color1 #ea6962
color9 #ea6962
# Green
color2 #a9b665
color10 #a9b665
# Yellow
color3 #e78a4e
color11 #d8a657
# Blue
color4 #7daea3
color12 #7daea3
# Magenta
color5 #d3869b
color13 #d3869b
# Cyan
color6 #89b482
color14 #89b482
# White
color7 #d4be98
color15 #d4be98

2646
kitty/kitty.conf Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +0,0 @@
root = true
# Unix-style newlines with a newline ending every file
[*.lua]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2

View File

@ -1,7 +0,0 @@
# NVIM
My basic config made with sweat, blood and spit.
Kanopo

View File

@ -1,4 +1 @@
require("kanopo.options")
require("kanopo.keymaps")
require("kanopo.autocmds")
require("kanopo.lazy")
require('kanopo')

View File

@ -1,3 +1,4 @@
-- Highlight yanked text
local highlight_group = vim.api.nvim_create_augroup("YankHighlight", { clear = true })
vim.api.nvim_create_autocmd("TextYankPost", {
@ -20,11 +21,3 @@ vim.api.nvim_create_autocmd("BufReadPost", {
end
end,
})
-- used just to make lsp for gitlabci for work
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
pattern = "*.gitlab-ci*.{yml,yaml}",
callback = function()
vim.bo.filetype = "yaml.gitlab"
end,
})

9
nvim/lua/kanopo/init.lua Normal file
View File

@ -0,0 +1,9 @@
require('kanopo.options')
require('kanopo.pack')
require('kanopo.autocmds')
require('kanopo.plugins.gruvbox')
require('kanopo.plugins.telescope')
require('kanopo.plugins.oil')
require('kanopo.plugins.neogit')

View File

@ -1,6 +0,0 @@
-- Clear highlights on search when pressing <Esc> in normal mode
-- See `:help hlsearch`
vim.keymap.set("n", "<Esc>", "<cmd>nohlsearch<CR>")
-- Diagnostic keymaps
vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, { desc = "Open diagnostic [Q]uickfix list" })

View File

@ -1,18 +0,0 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup("kanopo.plugins")

View File

@ -1,3 +1,5 @@
require('vim._core.ui2').enable()
-- Leader keys (set early)
vim.g.mapleader = " "
vim.g.maplocalleader = " "
@ -21,10 +23,6 @@ vim.o.splitbelow = true -- open horizontal splits below
-- Editing behavior
vim.o.wrap = false -- do not wrap lines by default
vim.o.breakindent = true -- keep indentation on wrapped lines (if wrap is enabled later)
-- Sync clipboard between OS and Neovim.
-- Schedule the setting after `UiEnter` because it can increase startup-time.
-- Remove this option if you want your OS clipboard to remain independent.
-- See `:help 'clipboard'`
vim.o.clipboard = "unnamedplus"
vim.o.swapfile = false -- no swapfiles
vim.o.undofile = true -- persistent undo
@ -42,7 +40,7 @@ vim.o.smartcase = true -- unless uppercase is used
-- Completion UX (good defaults for omni and popup behavior)
vim.o.completeopt = "menu,menuone,noinsert,noselect"
vim.o.shortmess = (vim.o.shortmess or "") .. "c" -- reduce completion messages
-- vim.o.shortmess = (vim.o.shortmess or "") .. "c" -- reduce completion messages
-- Performance and input timing
vim.o.timeoutlen = 800 -- mapped sequence timeout
@ -52,41 +50,16 @@ vim.o.scrolloff = 10 -- context lines around cursor
-- Fonts/icons (used by statuslines/UIs)
vim.g.have_nerd_font = true
-- Providers (disable unused for faster startup)
vim.g.loaded_perl_provider = 0
vim.g.loaded_ruby_provider = 0
-- If you don't use Python providers via :CheckHealth, consider disabling too:
-- vim.g.loaded_python_provider = 0
-- vim.g.loaded_python3_provider = 0
-- Netrw (disable if using an explorer plugin like oil.nvim; enable if you rely on netrw)
vim.g.loaded_netrw = 0
vim.g.loaded_netrwPlugin = 0
-- If you need netrw again, set both back to nil or 0 and restart:
-- vim.g.loaded_netrw = nil; vim.g.loaded_netrwPlugin = nil
-- Filetype-specific indentation overrides (examples)
local ft_augroup = vim.api.nvim_create_augroup("FileTypeSettings", { clear = true })
-- C-like and web files: 2 spaces (adjust as needed)
vim.api.nvim_create_autocmd("FileType", {
group = ft_augroup,
pattern = { "c", "cpp", "objc", "objcpp", "javascript", "typescript", "tsx", "jsx" },
callback = function()
vim.bo.tabstop = 2
vim.bo.shiftwidth = 2
vim.bo.expandtab = true
end,
})
vim.o.mouse = "a"
vim.o.showmode = false
vim.o.list = true
vim.opt.listchars = { tab = "» ", trail = "·", nbsp = "" }
-- Preview substitutions live, as you type!
vim.o.inccommand = "split"
vim.o.confirm = true

66
nvim/lua/kanopo/pack.lua Normal file
View File

@ -0,0 +1,66 @@
local gh = function(x) return 'https://github.com/' .. x end
local run = function(cmd, cwd)
local result = vim.system(cmd, { cwd = cwd, text = true }):wait()
if result.code ~= 0 then
local details = result.stderr ~= '' and result.stderr or result.stdout or ''
vim.notify(('Pack hook failed: %s\n%s'):format(table.concat(cmd, ' '), details), vim.log.levels.ERROR)
end
end
local post_change = {
['telescope-fzf-native.nvim'] = function(data)
run({ 'make' }, data.path)
end,
['nvim-treesitter'] = function(data)
if not data.active then
vim.cmd.packadd('nvim-treesitter')
end
vim.cmd('TSUpdate')
end,
}
local hooks = function(ev)
local data = ev.data
if not data or (data.kind ~= 'install' and data.kind ~= 'update') then
return
end
local name = data.spec and data.spec.name
local hook = name and post_change[name]
if hook then
hook(data)
end
end
vim.api.nvim_create_autocmd('PackChanged', { callback = hooks })
vim.pack.add({
-- theme
{ src = gh("ellisonleao/gruvbox.nvim") },
-- telescope
{ src = gh("nvim-telescope/telescope.nvim") },
{ src = gh("nvim-lua/plenary.nvim") },
{ src = gh("nvim-telescope/telescope-fzf-native.nvim") },
{ src = gh("nvim-telescope/telescope-ui-select.nvim") },
{ src = gh("nvim-tree/nvim-web-devicons") },
-- oil
{ src = gh("stevearc/oil.nvim") },
{ src = gh("nvim-tree/nvim-web-devicons") },
-- git UI
{ src = gh("NeogitOrg/neogit")},
{ src = gh("nvim-lua/plenary.nvim")},
{ src = gh("sindrets/diffview.nvim")},
{ src = gh("nvim-telescope/telescope.nvim")},
-- git signs
{ src = gh("lewis6991/gitsigns.nvim")},
-- treesitter
{ src = gh("nvim-treesitter/nvim-treesitter")},
}, {
confirm = false,
})

View File

@ -1,9 +0,0 @@
return {
"windwp/nvim-autopairs",
event = "InsertEnter",
config = function()
require("nvim-autopairs").setup({
disable_filetype = { "TelescopePrompt", "vim" },
})
end,
}

View File

@ -1,12 +0,0 @@
return {
"nvim-lualine/lualine.nvim",
dependencies = {
"ellisonleao/gruvbox.nvim",
},
config = function()
local theme = require("gruvbox")
require("lualine").setup({
theme = theme,
})
end,
}

View File

@ -1,85 +0,0 @@
return { -- Autocompletion
"saghen/blink.cmp",
event = "VimEnter",
version = "1.*",
dependencies = {
{
"L3MON4D3/LuaSnip",
version = "2.*",
build = (function()
if vim.fn.has("win32") == 1 or vim.fn.executable("make") == 0 then
return
end
return "make install_jsregexp"
end)(),
dependencies = {
-- `friendly-snippets` contains a variety of premade snippets.
-- See the README about individual language/framework/plugin snippets:
-- https://github.com/rafamadriz/friendly-snippets
{
"rafamadriz/friendly-snippets",
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
end,
},
},
opts = {},
},
"folke/lazydev.nvim",
},
--- @module 'blink.cmp'
--- @type blink.cmp.Config
opts = {
keymap = {
-- set to 'none' to disable the 'default' preset
preset = "none",
["<C-k>"] = { "select_prev", "fallback" },
["<C-j>"] = { "select_next", "fallback" },
["<C-b>"] = { "scroll_documentation_up", "fallback" },
["<C-f>"] = { "scroll_documentation_down", "fallback" },
-- ["<Tab>"] = { "snippet_forward", "fallback" },
-- ["<S-Tab>"] = { "snippet_backward", "fallback" },
["<S-Tab>"] = { "select_prev", "fallback" },
["<Tab>"] = { "select_next", "fallback" },
["<C-space>"] = { "show", "show_documentation", "hide_documentation" },
["<CR>"] = { "select_and_accept", "fallback" },
["<C-e>"] = { "hide", "fallback" },
["<C-s>"] = { "show_signature", "hide_signature", "fallback" },
},
appearance = {
nerd_font_variant = "mono",
},
completion = {
-- By default, you may press `<c-space>` to show the documentation.
-- Optionally, set `auto_show = true` to show the documentation after a delay.
documentation = { auto_show = false, auto_show_delay_ms = 500 },
},
sources = {
default = { "lsp", "path", "snippets", "lazydev" },
providers = {
lazydev = { module = "lazydev.integrations.blink", score_offset = 100 },
},
},
snippets = { preset = "luasnip" },
-- Blink.cmp includes an optional, recommended rust fuzzy matcher,
-- which automatically downloads a prebuilt binary when enabled.
--
-- By default, we use the Lua implementation instead, but you may enable
-- the rust implementation via `'prefer_rust_with_warning'`
--
-- See :h blink-cmp-config-fuzzy for more information
fuzzy = { implementation = "lua" },
-- Shows a signature help window while you type arguments for a function
signature = { enabled = true },
},
}

View File

@ -1,12 +0,0 @@
return {
"folke/todo-comments.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
opts = {
signs = true,
keywords = {
TODO = { icon = "🤨", color = "info" },
WIP = { icon = "🥵", color = "warning" },
ERROR = { icon = "🤬", color = "error" },
},
},
}

View File

@ -1,56 +0,0 @@
return {
"mfussenegger/nvim-dap",
dependencies = {
"williamboman/mason.nvim",
"jay-babu/mason-nvim-dap.nvim",
"rcarriga/nvim-dap-ui",
"theHamsta/nvim-dap-virtual-text",
"nvim-neotest/nvim-nio",
},
config = function()
local dap = require("dap")
local dapui = require("dapui")
dapui.setup()
require("nvim-dap-virtual-text").setup({})
local map = function(keys, func, desc)
vim.keymap.set("n", keys, func, { desc = "DAP: " .. desc })
end
map("<leader>db", dap.toggle_breakpoint, "Toggle [B]reakpoint")
map("<leader>dc", dap.continue, "[C]ontinue")
map("<leader>di", dap.step_into, "Step [I]nto")
map("<leader>do", dap.step_over, "Step [O]ver")
map("<leader>dO", dap.step_out, "Step [O]ut")
map("<leader>dr", dap.repl.open, "Open [R]EPL")
map("<leader>dt", dap.terminate, "[T]erminate")
map("<leader>du", dapui.toggle, "Toggle [U]I")
local debuggers = {
delve = {},
}
local ensure_installed = vim.tbl_keys(debuggers)
require("mason-nvim-dap").setup({
ensure_installed = ensure_installed,
automatic_installation = true,
handlers = {
function(config)
require("mason-nvim-dap").default_setup(config)
end,
},
})
dap.listeners.after.event_initialized["dapui_config"] = function()
dapui.open()
end
dap.listeners.before.event_terminated["dapui_config"] = function()
dapui.close()
end
dap.listeners.before.event_exited["dapui_config"] = function()
dapui.close()
end
end,
}

View File

@ -1,8 +0,0 @@
return {
"stevearc/dressing.nvim",
opts = {
inputs = {
enable = true,
},
},
}

View File

@ -1,40 +0,0 @@
return { -- Autoformat
"stevearc/conform.nvim",
event = { "BufWritePre" },
cmd = { "ConformInfo" },
keys = {
{
"<leader>f",
function()
require("conform").format({ async = true, lsp_format = "fallback" })
end,
mode = "",
desc = "[F]ormat buffer",
},
},
opts = {
notify_on_error = false,
format_on_save = function(bufnr)
-- Disable "format_on_save lsp_fallback" for languages that don't
-- have a well standardized coding style. You can add additional
-- languages here or re-enable it for the disabled ones.
local disable_filetypes = { c = true, cpp = true }
if disable_filetypes[vim.bo[bufnr].filetype] then
return nil
else
return {
timeout_ms = 500,
lsp_format = "fallback",
}
end
end,
formatters_by_ft = {
lua = { "stylua" },
-- Conform can also run multiple formatters sequentially
-- python = { "isort", "black" },
--
-- You can use 'stop_after_first' to run the first available formatter from the list
-- javascript = { "prettierd", "prettier", stop_after_first = true },
},
},
}

View File

@ -1,12 +0,0 @@
return {
"NeogitOrg/neogit",
dependencies = {
"nvim-lua/plenary.nvim",
"sindrets/diffview.nvim",
"nvim-telescope/telescope.nvim",
},
opts = true,
keys = {
{ "<leader>gg", "<cmd>Neogit<cr>", desc = "Neogit" },
},
}

View File

@ -1,5 +0,0 @@
return {
"lewis6991/gitsigns.nvim",
event = "BufRead",
opts = {},
}

View File

@ -0,0 +1,8 @@
local ok, gruvbox = pcall(require, "gruvbox")
if ok then
gruvbox.setup()
vim.cmd.colorscheme("gruvbox")
else
vim.notify(gruvbox, vim.log.levels.ERROR)
end

View File

@ -1,12 +0,0 @@
return {
-- `lazydev` configures Lua LSP for your Neovim config, runtime and plugins
-- used for completion, annotations and signatures of Neovim apis
"folke/lazydev.nvim",
ft = "lua",
opts = {
library = {
-- Load luvit types when the `vim.uv` word is found
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
},
},
}

View File

@ -1,155 +0,0 @@
return {
"neovim/nvim-lspconfig",
dependencies = {
{ "mason-org/mason.nvim", opts = {} },
"mason-org/mason-lspconfig.nvim",
"WhoIsSethDaniel/mason-tool-installer.nvim",
{ "j-hui/fidget.nvim", opts = {} },
"saghen/blink.cmp",
},
config = function()
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
callback = function(event)
local client = vim.lsp.get_client_by_id(event.data.client_id)
local map = function(keys, func, desc, mode)
mode = mode or "n"
vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
end
-- Rename the variable under your cursor.
-- Most Language Servers support renaming across files, etc.
map("<leader>rn", vim.lsp.buf.rename, "[R]e[n]ame")
-- Execute a code action, usually your cursor needs to be on top of an error
-- or a suggestion from your LSP for this to activate.
map("<leader>ca", vim.lsp.buf.code_action, "[G]oto Code [A]ction", { "n", "x" })
-- Find references for the word under your cursor.
map("<leader>gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without an actual implementation.
map("<leader>gi", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
-- Jump to the definition of the word under your cursor.
-- This is where a variable was first declared, or where a function is defined, etc.
-- To jump back, press <C-t>.
map("<leader>gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
-- WARN: This is not Goto Definition, this is Goto Declaration.
-- For example, in C this would take you to the header.
map("<leader>gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
-- -- Fuzzy find all the symbols in your current document.
-- -- Symbols are things like variables, functions, types, etc.
-- map("gO", require("telescope.builtin").lsp_document_symbols, "Open Document Symbols")
--
-- -- Fuzzy find all the symbols in your current workspace.
-- -- Similar to document symbols, except searches over your entire project.
-- map("gW", require("telescope.builtin").lsp_dynamic_workspace_symbols, "Open Workspace Symbols")
--
-- -- Jump to the type of the word under your cursor.
-- -- Useful when you're not sure what type a variable is and you want to see
-- -- the definition of its *type*, not where it was *defined*.
-- map("grt", require("telescope.builtin").lsp_type_definitions, "[G]oto [T]ype Definition")
map("<leader>e", vim.diagnostic.open_float, "Line Diagnostics")
-- The following code creates a keymap to toggle inlay hints in your
-- code, if the language server you are using supports them
--
-- This may be unwanted, since they displace some of your code
if client and client:supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then
map("<leader>th", function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf }))
end, "[T]oggle Inlay [H]ints")
end
end,
})
-- Diagnostic Config
-- See :help vim.diagnostic.Opts
vim.diagnostic.config({
severity_sort = true,
float = { border = "rounded", source = "if_many" },
underline = { severity = vim.diagnostic.severity.ERROR },
signs = vim.g.have_nerd_font and {
text = {
[vim.diagnostic.severity.ERROR] = "󰅚 ",
[vim.diagnostic.severity.WARN] = "󰀪 ",
[vim.diagnostic.severity.INFO] = "󰋽 ",
[vim.diagnostic.severity.HINT] = "󰌶 ",
},
} or {},
virtual_text = {
source = "if_many",
spacing = 2,
format = function(diagnostic)
local diagnostic_message = {
[vim.diagnostic.severity.ERROR] = diagnostic.message,
[vim.diagnostic.severity.WARN] = diagnostic.message,
[vim.diagnostic.severity.INFO] = diagnostic.message,
[vim.diagnostic.severity.HINT] = diagnostic.message,
}
return diagnostic_message[diagnostic.severity]
end,
},
})
local capabilities = require("blink.cmp").get_lsp_capabilities()
local servers = {
cssls = {},
tailwindcss = {},
ts_ls = {},
gopls = {},
gitlab_ci_ls = {},
bicep = {},
yamlls = {
fileTypes = {
"yaml.gitlab",
},
},
rust_analyzer = {},
postgres_lsp = {
single_file_support = true,
root_dir = function(bufnr, on_dir)
local fname = vim.api.nvim_buf_get_name(bufnr)
local root = vim.fs.root(fname, {
"postgres-language-server.jsonc",
".git",
})
on_dir(root or vim.uv.cwd())
end,
},
lua_ls = {
settings = {
Lua = {
completion = {
callSnippet = "Replace",
},
},
},
},
}
local ensure_installed = vim.tbl_keys(servers or {})
vim.list_extend(ensure_installed, {
"stylua", -- Used to format Lua code
})
require("mason-tool-installer").setup({ ensure_installed = ensure_installed })
for server_name, server in pairs(servers) do
-- This handles overriding only values explicitly passed
-- by the server configuration above. Useful when disabling
-- certain features of an LSP (for example, turning off formatting for ts_ls)
server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {})
vim.lsp.config(server_name, server)
vim.lsp.enable(server_name)
end
end,
}

View File

@ -0,0 +1,2 @@
require("neogit").setup()
vim.keymap.set("n", "<leader>gg", "<cmd>Neogit<cr>", { desc = "Neogit" })

View File

@ -1,9 +1,3 @@
return {
"stevearc/oil.nvim",
opts = {},
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
require("oil").setup()
vim.keymap.set("n", "<leader>fe", "<cmd>:Oil<cr>")
end,
}
vim.keymap.set('n', '<leader>fe', "<cmd>:Oil<cr>")

View File

@ -1,48 +1,4 @@
return { -- Fuzzy Finder (files, lsp, etc)
"nvim-telescope/telescope.nvim",
event = "VimEnter",
dependencies = {
"nvim-lua/plenary.nvim",
{ -- If encountering errors, see telescope-fzf-native README for installation instructions
"nvim-telescope/telescope-fzf-native.nvim",
-- `build` is used to run some command when the plugin is installed/updated.
-- This is only run then, not every time Neovim starts up.
build = "make",
-- `cond` is a condition used to determine whether this plugin should be
-- installed and loaded.
cond = function()
return vim.fn.executable("make") == 1
end,
},
{ "nvim-telescope/telescope-ui-select.nvim" },
-- Useful for getting pretty icons, but requires a Nerd Font.
{ "nvim-tree/nvim-web-devicons", enabled = vim.g.have_nerd_font },
},
config = function()
-- Telescope is a fuzzy finder that comes with a lot of different things that
-- it can fuzzy find! It's more than just a "file finder", it can search
-- many different aspects of Neovim, your workspace, LSP, and more!
--
-- The easiest way to use Telescope, is to start by doing something like:
-- :Telescope help_tags
--
-- After running this command, a window will open up and you're able to
-- type in the prompt window. You'll see a list of `help_tags` options and
-- a corresponding preview of the help.
--
-- Two important keymaps to use while in Telescope are:
-- - Insert mode: <c-/>
-- - Normal mode: ?
--
-- This opens a window that shows you all of the keymaps for the current
-- Telescope picker. This is really useful to discover what Telescope can
-- do as well as how to actually do it!
-- [[ Configure Telescope ]]
-- See `:help telescope` and `:help telescope.setup()`
require("telescope").setup({
pickers = {
find_files = {
@ -70,8 +26,14 @@ return { -- Fuzzy Finder (files, lsp, etc)
})
-- Enable Telescope extensions if they are installed
pcall(require("telescope").load_extension, "fzf")
pcall(require("telescope").load_extension, "ui-select")
local fzf_ok, _ = pcall(require("telescope").load_extension, "fzf")
if not fzf_ok then
vim.notify("ERROR: (telescope) fzf not loaded")
end
local ui_select_ok, _ = pcall(require("telescope").load_extension, "ui-select")
if not ui_select_ok then
vim.notify("ERROR: (telescope) ui select not loaded")
end
-- See `:help telescope.builtin`
local builtin = require("telescope.builtin")
@ -108,5 +70,3 @@ return { -- Fuzzy Finder (files, lsp, etc)
vim.keymap.set("n", "<leader>sn", function()
builtin.find_files({ cwd = vim.fn.stdpath("config") })
end, { desc = "[S]earch [N]eovim files" })
end,
}

View File

@ -1,8 +0,0 @@
return {
"ellisonleao/gruvbox.nvim",
priority = 1000,
config = function()
vim.o.background = "dark" -- or "light" for light mode
vim.cmd([[colorscheme gruvbox]])
end,
}

View File

@ -1,5 +0,0 @@
return {
"nvim-treesitter/nvim-treesitter",
lazy = false,
build = ":TSUpdate",
}

View File

@ -1,19 +0,0 @@
return {
"folke/which-key.nvim",
event = "VimEnter",
opts = {
delay = 0,
icons = {
-- set icon mappings to true if you have a Nerd Font
mappings = vim.g.have_nerd_font,
},
-- Document existing key chains
spec = {
{ "<leader>s", group = "[S]earch" },
{ "<leader>t", group = "[T]oggle" },
{ "<leader>d", group = "[D]ebug" },
{ "<leader>h", group = "Git [H]unk", mode = { "n", "v" } },
},
},
}

48
nvim/nvim-pack-lock.json Normal file
View File

@ -0,0 +1,48 @@
{
"plugins": {
"diffview.nvim": {
"rev": "4516612fe98ff56ae0415a259ff6361a89419b0a",
"src": "https://github.com/sindrets/diffview.nvim"
},
"gitsigns.nvim": {
"rev": "8d82c240f190fc33723d48c308ccc1ed8baad69d",
"src": "https://github.com/lewis6991/gitsigns.nvim"
},
"gruvbox.nvim": {
"rev": "154eb5ff5b96d0641307113fa385eaf0d36d9796",
"src": "https://github.com/ellisonleao/gruvbox.nvim"
},
"neogit": {
"rev": "e906fce7e44ae562f06345be99a7db02f8315236",
"src": "https://github.com/NeogitOrg/neogit"
},
"nvim-treesitter": {
"rev": "4916d6592ede8c07973490d9322f187e07dfefac",
"src": "https://github.com/nvim-treesitter/nvim-treesitter"
},
"nvim-web-devicons": {
"rev": "c72328a5494b4502947a022fe69c0c47e53b6aa6",
"src": "https://github.com/nvim-tree/nvim-web-devicons"
},
"oil.nvim": {
"rev": "0fcc83805ad11cf714a949c98c605ed717e0b83e",
"src": "https://github.com/stevearc/oil.nvim"
},
"plenary.nvim": {
"rev": "74b06c6c75e4eeb3108ec01852001636d85a932b",
"src": "https://github.com/nvim-lua/plenary.nvim"
},
"telescope-fzf-native.nvim": {
"rev": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c",
"src": "https://github.com/nvim-telescope/telescope-fzf-native.nvim"
},
"telescope-ui-select.nvim": {
"rev": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2",
"src": "https://github.com/nvim-telescope/telescope-ui-select.nvim"
},
"telescope.nvim": {
"rev": "028d9a0695a0cc4cfa893889f8c408ed7ccc8adc",
"src": "https://github.com/nvim-telescope/telescope.nvim"
}
}
}

File diff suppressed because it is too large Load Diff

2
sdkman/config Normal file
View File

@ -0,0 +1,2 @@
# enable automatic env
sdkman_auto_env=true

View File

@ -1,54 +1,27 @@
# Variabili di base
set $mod Mod4
# set $left h
# set $down j
# set $up k
# set $right l
set $term foot
# Launcher: wofi (sostituisce wmenu-run)
set $menu wofi -S drun -p Search -I -b -i
# Wallpaper e output
set $wallpaper ~/Nextcloud/wallpapers/laptop/hiroishi_nagasai.png
set $benq_wallpaper ~/Nextcloud/wallpapers/laptop/hiroishi_nagasai.png
set $laptop eDP-1
set $benq DP-9
# Color Scheme (Gruvbox)
set $gruvbox_bg_dark #282828
set $gruvbox_bg_light #504945
set $gruvbox_fg_dark #ebdbb2
set $gruvbox_fg_light #d5c4a1
set $gruvbox_red #cc241d
set $gruvbox_green #98971a
set $gruvbox_yellow #d79921
set $gruvbox_blue #458588
set $gruvbox_purple #b16286
set $gruvbox_aqua #689d6a
set $gruvbox_orange #d65d0e
# Impostazione del wallpaper e configurazione output
output * bg $wallpaper fill
# Imposta il profilo ICC, risoluzione, posizione e scala per il display laptop
output $laptop color_profile icc ~/Documents/dotfiles/sway/FRAMEWORK_13_BOE_ICC/BOE_CQ_______NE135FBM_N41_03.icm
output $laptop resolution 2256x1504 position 0,0
output $laptop scale 1.3
# Configure BenQ display
output $benq bg $benq_wallpaper fill
output $laptop color_profile icc ~/Documents/dotfiles/sway/BENQ_PD2706QN_ICC/'Display P3.icc'
output $benq resolution 2560x1440@99.990Hz position 0,0
output $laptop scale 1.3
# Gestione degli eventi del coperchio
bindswitch --reload --locked lid:on output $laptop disable
bindswitch --reload --locked lid:off output $laptop enable
bindswitch --reload --locked lid:on exec ~/Documents/dotfiles/sway/scripts/lid.sh on $laptop
bindswitch --reload --locked lid:off exec ~/Documents/dotfiles/sway/scripts/lid.sh off $laptop
# Configurazione dell'inattività: lock e DPMS
exec swayidle -w
input type:touchpad {
dwt enabled # Disable while typing - RIATTIVA QUESTA OPZIONE
dwt disabled # Disable while typing - RIATTIVA QUESTA OPZIONE
tap enabled # Enable tap-to-click
natural_scroll enabled # Natural scrolling
middle_emulation enabled # Emulate middle mouse button - RIATTIVA QUESTA OPZIONE
@ -74,9 +47,9 @@ bindsym $mod+Return exec $term
# Chiudi finestra focalizzata
bindsym $mod+Shift+q kill
set $ipc /usr/sbin/qs -c noctalia-shell ipc call
# Avvia il launcher
bindsym $mod+d exec $menu
bindsym $mod+d exec $ipc launcher toggle
# Modalità floating: trascina finestre con $mod + mouse
floating_modifier $mod normal
@ -84,25 +57,14 @@ floating_modifier $mod normal
# Ricarica la configurazione
bindsym $mod+Shift+c reload
# Esci da Sway (con conferma tramite swaynag)
# bindsym $mod+Shift+e exec swaynag -t warning -m 'Hai premuto la scorciatoia per uscire. Vuoi davvero uscire da Sway?' -B 'Sì, esci' 'swaymsg exit'
### Navigazione e spostamento tra finestre
# Sposta il focus
# bindsym $mod+$left focus left
# bindsym $mod+$down focus down
# bindsym $mod+$up focus up
# bindsym $mod+$right focus right
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# Sposta la finestra focalizzata
# bindsym $mod+Shift+$left move left
# bindsym $mod+Shift+$down move down
# bindsym $mod+Shift+$up move up
# bindsym $mod+Shift+$right move right
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
@ -161,10 +123,6 @@ bindsym $mod+minus scratchpad show
### Modalità "resize" per ridimensionare le finestre
mode "resize" {
# bindsym $left resize shrink width 10px
# bindsym $down resize grow height 10px
# bindsym $up resize shrink height 10px
# bindsym $right resize grow width 10px
bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px
@ -174,26 +132,19 @@ mode "resize" {
}
bindsym $mod+r mode "resize"
### Notifiche e Controlli Audio/Luminosità
set $notification_time 1000
# Audio controls
bindsym XF86AudioMute exec ~/.config/sway/scripts/notification-control.sh mute-toggle
bindsym XF86AudioLowerVolume exec ~/.config/sway/scripts/notification-control.sh volume-down
bindsym XF86AudioRaiseVolume exec ~/.config/sway/scripts/notification-control.sh volume-up
bindsym XF86AudioMicMute exec ~/.config/sway/scripts/notification-control.sh mic-mute-toggle
# Brightness controls
bindsym XF86MonBrightnessDown exec ~/.config/sway/scripts/notification-control.sh brightness-down
bindsym XF86MonBrightnessUp exec ~/.config/sway/scripts/notification-control.sh brightness-up
bindsym --locked XF86AudioRaiseVolume exec $ipc volume increase
bindsym --locked XF86AudioLowerVolume exec $ipc volume decrease
bindsym --locked XF86AudioMute exec $ipc volume muteOutput
bindsym --locked XF86MonBrightnessUp exec $ipc brightness increase
bindsym --locked XF86MonBrightnessDown exec $ipc brightness decrease
# Controlli multimediali
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
bindsym XF86AudioPlay exec $ipc media playPause
bindsym XF86AudioNext exec $ipc media next
bindsym XF86AudioPrev exec $ipc media previous
bindsym $mod+Shift+h exec handy --toggle-transcription
bindsym $mod+v exec cliphist list | wofi --dmenu --pre-display-cmd "echo '%s' | cut -f 2" | cliphist decode | wl-copy
bindsym $mod+v exec $ipc launcher clipboard
### Screenshot e Registrazione Schermo
bindsym Print exec grimshot --notify copy output && \
@ -215,23 +166,6 @@ bindsym $mod+XF86AudioMedia exec ~/.config/sway/scripts/screen-recording.sh audi
# this one not
bindsym XF86AudioMedia exec ~/.config/sway/scripts/screen-recording.sh
### Modalità per azioni di sistema (lock, logout, reboot, suspend, shutdown)
set $mode_system "What to do? (l) lock, (e) logout, (r) reboot, (Shift+s) shutdown"
mode $mode_system {
bindsym l exec swaylock -f -i $wallpaper; mode "default"
bindsym e exec swaymsg exit; mode "default"
bindsym r exec systemctl reboot; mode "default"
bindsym s exec systemctl suspend; mode "default"
bindsym Shift+s exec systemctl poweroff; mode "default"
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+Escape mode $mode_system
### Barra di stato (Waybar)
bar {
swaybar_command waybar
}
### Borders e Gaps
default_border pixel
@ -240,7 +174,7 @@ gaps outer 2
gaps inner 3
# Impostazioni dei colori per il focus delle finestre
client.focused $gruvbox_orange $gruvbox_orange $gruvbox_bg_dark $gruvbox_orange
# client.focused $gruvbox_orange $gruvbox_orange $gruvbox_bg_dark $gruvbox_orange
hide_edge_borders smart
### Impostazioni GTK per tema scuro
@ -265,12 +199,16 @@ exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY XDG_CU
### Applicazioni in autostart
exec keepassxc
exec nextcloud
exec wlsunset -S 08:00 -s 18:00
# exec wlsunset -S 08:00 -s 18:00
exec blueman-applet
exec xss-lock -- swaylock -f -i $wallpaper
# exec xss-lock -- swaylock -f -i $wallpaper
exec --no-startup-id easyeffects --gapplication-service
exec --no-startup-id wluma
# Avvio del polkit agent GNOME
# exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# (Se preferisci il KDE agent, commenta la riga sopra e decommenta quella sottostante)
# exec "/usr/lib/polkit-kde-authentication-agent-1"
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec --no-startup-id gnome-keyring-daemon --start --components=pkcs11,secrets,ssh
@ -279,17 +217,15 @@ exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CU
exec dbus-update-activation-environment WAYLAND_DISPLAY DISPLAY XDG_CURRENT_DESKTOP SWAYSOCK I3SOCK XCURSOR_SIZE XCURSOR_THEME
### Notifiche Desktop e Clip History
exec swaync
# exec swaync
# exec mako
exec wl-paste --type text --watch cliphist store
exec wl-paste --type image --watch cliphist store
### Applet di rete
exec nm-applet --indicator
exec handy --start-hidden # speek to text
exec wl-paste --type text --watch cliphist store # Stores only text data
exec wl-paste --type image --watch cliphist store # Stores only image data
exec_always sh -c '/usr/bin/pkill -x qs || true; exec /usr/sbin/qs -d -c noctalia-shell'
# comando per capire come si chiama l'id della app per le regole delle finestre
# swaymsg -t get_tree
@ -300,6 +236,7 @@ for_window [instance="keepassxc"] floating enable, resize set width 70 ppt heig
for_window [app_id="pavucontrol"] floating enable, resize set width 70 ppt height 60 ppt
for_window [app_id="org.gnome.Nautilus"] floating enable, resize set width 60 ppt height 50 ppt
for_window [app_id="thunar"] floating enable, resize set width 60 ppt height 50 ppt
for_window [window_role="pop-up"] floating enable
for_window [window_role="bubble"] floating enable
@ -313,3 +250,5 @@ for_window [title="Picture in picture"] floating enable, sticky enable
for_window [title="Save File"] floating enable
for_window [app_id="firefox" title="Firefox — Sharing Indicator"] kill
include ~/.config/sway/noctalia

18
sway/noctalia Normal file
View File

@ -0,0 +1,18 @@
set $primary #b8bb26
set $on_primary #282828
set $secondary #fabd2f
set $tertiary #83a598
set $error #fb4934
set $surface #282828
set $on_surface #fbf1c7
set $on_surface_variant #ebdbb2
set $outline #786f6b
## Window Colours
# class border backgr. text indicator child_border
client.focused $primary $surface $on_surface $primary $primary
client.focused_inactive $outline $surface $on_surface_variant $outline $outline
client.unfocused $outline $surface $on_surface_variant $outline $outline
client.urgent $error $surface $on_surface $error $error
client.placeholder $surface $surface $on_surface_variant $surface $surface
client.background $surface

25
sway/scripts/lid.sh Executable file
View File

@ -0,0 +1,25 @@
#!/bin/sh
action="$1"
internal="${2:-eDP-1}"
external_active_count="$(swaymsg -t get_outputs | python3 -c 'import json,sys; internal=sys.argv[1]; outputs=json.load(sys.stdin); print(sum(1 for o in outputs if o.get("active") and o.get("name") != internal and not o.get("non_desktop", False)))' "$internal" 2>/dev/null)"
if [ -z "$external_active_count" ]; then
external_active_count=0
fi
case "$action" in
on)
if [ "$external_active_count" -gt 0 ]; then
swaymsg "output $internal disable"
else
/usr/sbin/playerctl -a pause >/dev/null 2>&1 || true
/usr/sbin/qs -c noctalia-shell ipc call lockScreen lock
systemctl suspend
fi
;;
off)
swaymsg "output $internal enable"
;;
esac

View File

@ -0,0 +1,22 @@
MIT License
Copyright (c) 2024 Ben Yip
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020 Subhaditya Nath
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,32 @@
<div align="center">
<img src="https://github.com/sxyazi/yazi/blob/main/assets/logo.png?raw=true" alt="Yazi logo" width="20%">
</div>
<h3 align="center">
Gruvbox Dark Flavor for <a href="https://github.com/sxyazi/yazi">Yazi</a>
</h3>
## 👀 Preview
<img src="preview.png" width="600" />
## 🎨 Installation
```bash
ya pack -a bennyyip/gruvbox-dark
```
## ⚙️ Usage
Add the these lines to your `theme.toml` configuration file to use it:
```toml
[flavor]
dark = "gruvbox-dark"
```
## 📜 License
The flavor is MIT-licensed, and the included tmTheme is also MIT-licensed.
Check the [LICENSE](LICENSE) and [LICENSE-tmtheme](LICENSE-tmtheme) file for more details.

View File

@ -0,0 +1,153 @@
# vim:fileencoding=utf-8:foldmethod=marker
# : Manager {{{
[manager]
cwd = { fg = "#83a598" }
# Hovered
hovered = { reversed = true, bold = true }
# hovered = { bg = "#3c3836", bold = true }
preview_hovered = { underline = true }
# Find
find_keyword = { fg = "#b8bb26", italic = true }
find_position = { fg = "#fe8019", bg = "reset", italic = true }
# Marker
marker_copied = { fg = "#8ec07c", bg = "#8ec07c" }
marker_cut = { fg = "#d3869b", bg = "#d3869b" }
marker_marked = { fg = "#83a598", bg = "#83a598" }
marker_selected = { fg = "#fbf1c7", bg = "#fbf1c7" }
# Tab
tab_active = { fg = "#282828", bg = "#a89984" }
tab_inactive = { fg = "#a89984", bg = "#504945" }
tab_width = 1
# Count
count_copied = { fg = "#282828", bg = "#8ec07c" }
count_cut = { fg = "#282828", bg = "#d3869b" }
count_selected = { fg = "#282828", bg = "#fbf1c7" }
# Border
border_symbol = "│"
border_style = { fg = "#665c54" }
# : }}}
# : Mode {{{
[mode]
normal_main = { fg = "#282828", bg = "#a89984", bold = true }
normal_alt = { fg = "#a89984", bg = "#504945" }
select_main = { fg = "#282828", bg = "#fe8019", bold = true }
select_alt = { fg = "#a89984", bg = "#504945" }
unset_main = { fg = "#282828", bg = "#b8bb26", bold = true }
unset_alt = { fg = "#a89984", bg = "#504945" }
# : }}}
# : Status {{{
[status]
sep_left = { open = "\ue0be", close = "\ue0b8" }
sep_right = { open = "\ue0be", close = "\ue0b8" }
overall = { }
# Progress
progress_label = { fg = "#ebdbb2", bold = true }
progress_normal = { fg = "#504945", bg = "#3c3836" }
progress_error = { fg = "#fb4934", bg = "#3c3836" }
# Permissions
perm_type = { fg = "#504945" }
perm_read = { fg = "#b8bb26" }
perm_write = { fg = "#fb4934" }
perm_exec = { fg = "#b8bb26" }
perm_sep = { fg = "#665c54" }
# : }}}
# : Select {{{
[pick]
border = { fg = "#458588" }
active = { fg = "#d3869b", bold = true }
inactive = {}
# : }}}
# : Input {{{
[input]
border = { fg = "#ebdbb2" }
title = {}
value = {}
selected = { reversed = true }
# : }}}
# : Tasks {{{
[tasks]
border = { fg = "#504945" }
title = {}
hovered = { underline = true }
# : }}}
# : Which {{{
[which]
mask = { bg = "#3c3836" }
cand = { fg = "#83a598" }
rest = { fg = "#928374" }
desc = { fg = "#fe8019" }
separator = "  "
separator_style = { fg = "#504945" }
# : }}}
# : Help {{{
[help]
on = { fg = "#83a598" }
run = { fg = "#d3869b" }
hovered = { reversed = true, bold = true }
footer = { fg = "#3c3836", bg = "#a89984" }
# : }}}
# : Notify {{{
[notify]
title_info = { fg = "#8ec07c" }
title_warn = { fg = "#fbf1c7" }
title_error = { fg = "#d3869b" }
# : }}}
# : File-specific styles {{{
[filetype]
rules = [
# Images
{ mime = "image/*", fg = "#d3869b" },
# Media
{ mime = "{audio,video}/*", fg = "#fabd2f" },
# Archives
{ mime = "application/*zip", fg = "#fb4934" },
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#fb4934" },
# Documents
{ mime = "application/{pdf,doc,rtf,vnd.*}", fg = "#689d6a" },
# Fallback
{ name = "*", fg = "#ebdbb2" },
{ name = "*/", fg = "#83a598" },
]
# : }}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 MiB

File diff suppressed because it is too large Load Diff

368
yazi/keymap.toml Normal file
View File

@ -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" },
]

7
yazi/package.toml Normal file
View File

@ -0,0 +1,7 @@
[plugin]
deps = []
[[flavor.deps]]
use = "bennyyip/gruvbox-dark"
rev = "91fdfa7"
hash = "f48f510e5505f5d01e79c4f8257ec5cb"

958
yazi/theme.toml Normal file
View File

@ -0,0 +1,958 @@
# 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 = "gruvbox-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 = "" },
# ]
#
# # : }}}

223
yazi/yazi.toml Normal file
View File

@ -0,0 +1,223 @@
# 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 = [ 2, 3, 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:-vi} "$@"', desc = "$EDITOR", block = true, for = "unix" },
{ run = 'code %*', orphan = true, desc = "code", for = "windows" },
{ run = 'code -w %*', block = true, desc = "code (block)", for = "windows" },
]
open = [
{ run = 'xdg-open "$1"', desc = "Open", for = "linux" },
{ run = 'open "$@"', desc = "Open", for = "macos" },
{ run = 'start "" "%1"', orphan = true, desc = "Open", for = "windows" },
{ run = 'termux-open "$1"', desc = "Open", for = "android" },
]
reveal = [
{ run = 'xdg-open "$(dirname "$1")"', desc = "Reveal", for = "linux" },
{ run = 'open -R "$1"', desc = "Reveal", for = "macos" },
{ run = 'explorer /select,"%1"', orphan = true, desc = "Reveal", for = "windows" },
{ run = 'termux-open "$(dirname "$1")"', desc = "Reveal", for = "android" },
{ 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" },
{ run = 'ya pub extract --list %*', desc = "Extract here", for = "windows" },
]
play = [
{ run = 'mpv --force-window "$@"', orphan = true, for = "unix" },
{ run = 'mpv --force-window %*', orphan = true, for = "windows" },
{ run = '''mediainfo "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show media info", for = "unix" },
]
[open]
rules = [
# Folder
{ name = "*/", use = [ "edit", "open", "reveal" ] },
# Text
{ mime = "text/*", use = [ "edit", "reveal" ] },
# Image
{ mime = "image/*", use = [ "open", "reveal" ] },
# Media
{ mime = "{audio,video}/*", use = [ "play", "reveal" ] },
# Archive
{ mime = "application/{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