cleanup: expand gitignore, add timer scripts, update hyprland binds

Remove stale yazi backup files and credentials, expand .gitignore to
cover keys, editor temp files, and yazi timestamp backups. Add timer
notification scripts and bind Super+Ctrl+T to open timer popup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
main
The_miro 2026-05-07 18:41:49 +02:00
parent 9f30bbe5b4
commit 4b8dd4f5d9
12 changed files with 241 additions and 903 deletions

31
.gitignore vendored
View File

@ -1,3 +1,34 @@
# Private keys and credentials
*.key
*.pem
*.p12
*.pfx
# Micro editor temporary files
/micro/buffers/** /micro/buffers/**
/micro/backups/** /micro/backups/**
# Yazi timestamp-based backups (format: file.toml-<timestamp>)
yazi/*.toml-*
# Editor temporary files
*.swp
*.swo
*~
\#*\#
# Backup files
*.bak
# Generated files
readme.html
# Logs
**/*.log **/*.log
# OS-specific
.DS_Store
Thumbs.db
# Temporary files
*.tmp

View File

@ -88,6 +88,7 @@ bind = $mainMod CTRL, M, exec, ~/.config/scripts/toggle-layout.sh
bind = $mainMod, S, exec, [tag +mixer] pavucontrol bind = $mainMod, S, exec, [tag +mixer] pavucontrol
bind = $mainMod, F1, exec, [tag +centered] kitty ~/.config/scripts/helpmenu.sh bind = $mainMod, F1, exec, [tag +centered] kitty ~/.config/scripts/helpmenu.sh
bind = $mainMod CTRL, T, exec, [tag +centered] kitty --class timer-popup bash ~/.config/scripts/timer.sh
bind = $mainMod, U, exec, [tag +centered-L] kitty btop bind = $mainMod, U, exec, [tag +centered-L] kitty btop
bind = $mainMod SHIFT, F1, exec, [tag +centered-L] kitty nvim ~/.config/binds.conf bind = $mainMod SHIFT, F1, exec, [tag +centered-L] kitty nvim ~/.config/binds.conf
bind = $mainMod CTRL, E, exec, ~/.config/scripts/screenrotationwcw.sh bind = $mainMod CTRL, E, exec, ~/.config/scripts/screenrotationwcw.sh

View File

@ -0,0 +1,47 @@
#!/usr/bin/env bash
# Background timer: sleeps, notifies, rings thrice in 30s unless dismissed
# Usage: timer-notify.sh <seconds> <label>
DURATION=${1:?missing duration}
LABEL=${2:-"00:00:00"}
sleep "$DURATION"
# Find a ring sound (freedesktop stereo sounds)
SOUND=""
for candidate in \
/usr/share/sounds/freedesktop/stereo/complete.oga \
/usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga \
/usr/share/sounds/freedesktop/stereo/bell.oga \
/usr/share/sounds/freedesktop/stereo/phone-incoming-call.oga; do
[[ -f "$candidate" ]] && { SOUND="$candidate"; break; }
done
play_sound() {
[[ -z "$SOUND" ]] && return
if command -v paplay &>/dev/null; then
paplay "$SOUND" &
elif command -v pw-play &>/dev/null; then
pw-play "$SOUND" &
fi
}
# Send notification — blocks (-w) until dismissed or timeout
# Rings play while this is waiting; kill -0 checks if it's still alive
if command -v dunstify &>/dev/null; then
dunstify -w -u critical -i alarm-clock \
-A "default,Dismiss" \
-t 30000 \
"⏱ Timer: $LABEL" "Your timer has expired." &
else
notify-send -w -u critical -i alarm-clock \
-t 30000 \
"⏱ Timer: $LABEL" "Your timer has expired." &
fi
NOTIF_PID=$!
play_sound # ring 1 — immediately
sleep 10; kill -0 "$NOTIF_PID" 2>/dev/null && play_sound # ring 2 — 10s
sleep 10; kill -0 "$NOTIF_PID" 2>/dev/null && play_sound # ring 3 — 20s
wait "$NOTIF_PID" 2>/dev/null || true

View File

@ -0,0 +1,162 @@
#!/usr/bin/env bash
# TUI timer setter — vim keys, big-digit hh:mm:ss
# ── Setup ──────────────────────────────────────────────────────────────────────
cleanup() { tput cnorm; tput rmcup; }
trap cleanup EXIT INT TERM
tput smcup
tput civis
# ── Colors ─────────────────────────────────────────────────────────────────────
R="$(tput sgr0)"
NORMAL="$(tput bold)$(tput setaf 7)"
SELECT="$(tput bold)$(tput setaf 6)" # cyan — active field
TITLE="$(tput bold)$(tput setaf 5)" # magenta
DIM="$(tput dim)$(tput setaf 7)"
ERR="$(tput bold)$(tput setaf 1)" # red
# ── Block digits — DIGITS[digit*5 + row] ───────────────────────────────────────
DIGITS=(
"█████" "█ █" "█ █" "█ █" "█████" # 0
" █ " " █ " " █ " " █ " " █ " # 1
"█████" " █" "█████" "█ " "█████" # 2
"█████" " █" "█████" " █" "█████" # 3
"█ █" "█ █" "█████" " █" " █" # 4
"█████" "█ " "█████" " █" "█████" # 5
"█████" "█ " "█████" "█ █" "█████" # 6
"█████" " █" " █" " █" " █" # 7
"█████" "█ █" "█████" "█ █" "█████" # 8
"█████" "█ █" "█████" " █" "█████" # 9
)
COLON=(" " "█" " " "█" " ")
# ── State ──────────────────────────────────────────────────────────────────────
VALUES=(0 0 0)
LIMITS=(23 59 59)
LABELS=("HOURS" "MINUTES" "SECONDS")
FIELD=0
SHOW_ERR=0
# ── Draw helpers ───────────────────────────────────────────────────────────────
draw_field() { # draw_field row col val active
local y=$1 x=$2 val=$3 active=$4
local tens=$((val / 10)) units=$((val % 10))
local color; [[ $active -eq 1 ]] && color=$SELECT || color=$NORMAL
for row in 0 1 2 3 4; do
tput cup $((y + row)) $x
printf '%s%s %s%s' \
"$color" \
"${DIGITS[$((tens * 5 + row))]}" \
"${DIGITS[$((units * 5 + row))]}" \
"$R"
done
}
draw_colon() { # draw_colon row col
local y=$1 x=$2
for row in 0 1 2 3 4; do
tput cup $((y + row)) $((x + 1))
printf '%s%s%s' "$DIM" "${COLON[$row]}" "$R"
done
}
draw() {
local W H
W=$(tput cols); H=$(tput lines)
printf '\033[2J\033[H' # clear + home (no flicker vs tput clear)
# Title
local title="─── T I M E R ───"
tput cup 2 $(( (W - ${#title}) / 2 ))
printf '%s%s%s' "$TITLE" "$title" "$R"
# Layout: field(11) + colon(3) + field(11) + colon(3) + field(11) = 39 wide
local sx=$(( (W - 39) / 2 ))
local dy=$(( (H - 5) / 2 - 1 ))
(( dy < 4 )) && dy=4
local -a fx=( $sx $((sx + 14)) $((sx + 28)) )
local -a cx=( $((sx + 11)) $((sx + 25)) )
for i in 0 1 2; do
local active=0; [[ $i -eq $FIELD ]] && active=1
draw_field $dy "${fx[$i]}" "${VALUES[$i]}" $active
done
for x in "${cx[@]}"; do
draw_colon $dy $x
done
# Labels
local ly=$((dy + 6))
for i in 0 1 2; do
local label="${LABELS[$i]}"
local lx=$(( fx[$i] + (11 - ${#label}) / 2 ))
tput cup $ly $lx
if [[ $i -eq $FIELD ]]; then
printf '%s%s%s' "$SELECT" "$label" "$R"
else
printf '%s%s%s' "$DIM" "$label" "$R"
fi
done
# Error
if [[ $SHOW_ERR -eq 1 ]]; then
local msg="set a non-zero time first"
tput cup $((ly + 2)) $(( (W - ${#msg}) / 2 ))
printf '%s%s%s' "$ERR" "$msg" "$R"
fi
# Hint
local hint="h/l field j/k adjust Enter start q cancel"
tput cup $((H - 2)) $(( (W - ${#hint}) / 2 ))
printf '%s%s%s' "$DIM" "$hint" "$R"
}
# ── Key reader — handles ESC sequences (arrow keys) ───────────────────────────
read_key() {
local key seq
IFS= read -rsn1 key
if [[ "$key" == $'\033' ]]; then
IFS= read -rsn2 -t 0.05 seq 2>/dev/null || true
key="$key$seq"
fi
printf '%s' "$key"
}
# ── Main loop ──────────────────────────────────────────────────────────────────
while true; do
draw
SHOW_ERR=0
key=$(read_key)
case "$key" in
q|$'\033')
exit 0
;;
h|$'\033[D')
FIELD=$(( (FIELD + 2) % 3 ))
;;
l|$'\033[C')
FIELD=$(( (FIELD + 1) % 3 ))
;;
k|$'\033[A')
VALUES[$FIELD]=$(( (VALUES[$FIELD] + 1) % (LIMITS[$FIELD] + 1) ))
;;
j|$'\033[B')
VALUES[$FIELD]=$(( (VALUES[$FIELD] - 1 + LIMITS[$FIELD] + 1) % (LIMITS[$FIELD] + 1) ))
;;
$'\n'|$'\r')
total=$(( VALUES[0] * 3600 + VALUES[1] * 60 + VALUES[2] ))
if (( total == 0 )); then
SHOW_ERR=1
else
label=$(printf '%02d:%02d:%02d' "${VALUES[0]}" "${VALUES[1]}" "${VALUES[2]}")
setsid bash "$HOME/.config/scripts/timer-notify.sh" "$total" "$label" &>/dev/null &
disown
exit 0
fi
;;
esac
done

View File

@ -1,55 +0,0 @@
<h1> Dotfiles </h1>
<body>
config for using arch linux in network administration, development and gaming
</body>
<h2> Installation </h2>
<body>
<span style="color:red">
!!! Please Read the instructions on Installation !!!
</span><br />
</body>
<h3> Installation instructions </h3>
<list>
<li> Clone the Repository </li>
<li> Navigate to Dotfiles/setup </li>
<li> execute setup/autoformat.sh and accept the prompts on screen, for default partitioning layout </li>
<li> execute setup/live-install.sh and accept the prompts on screen </li>
<li> after being chrooted by setup/live-install.sh go to the Filesystem root and execute chroot-install.sh </li>
<li> reboot </li>
<li> run setup/install.sh </li>
<li> if needed run setup/modules/... to install additional preconfigured modules </li>
<li> reboot after running all desired installers </li>
</list>
<h2> TODO </h2>
<h3> Prio </h3>
<list>
<li> Finish the new install script </li>
</list>
<h3> Ongoing tasks </h3>
<list>
<li> move all config dirs that get modified after install to being copied to the client or linking individual files where relevant -> known offenders: micro, some nwg-shell components </li>
</list>
<h3> Non-Prio </h3>
<list>
<li> implement the hypr-ecosystem components: <s>hyprpwcenter,</s> hyprshutdown </li>
<li> solution for updates - Possibly using package list being read by script; Also possibly using git diff on some kind of .config manifest </li>
<li> clamav Module </li>
<li> eww sidebar popup menu ??? not sure on functionality yet - maybe cpu/ram/gpu usage </li>
</list>
<h3> Completed </h3>
<list>
<li> add screen rotation (script, keybind, eww widget) for touchscreens </li>
<li> some kind of per monitor startup script for the bar</li>
<li> set cmd+F1 to show a list of keybinds (regex on binds.conf???) </li>
<li> automatic monitor handling on new attatched</li>
<li> default to swapping esc and capslock in input.conf </li>
<li> Create Module for installing from the arch live enviroment </li>
<li> bluetooth tray icon </li>
<li> make toggling EWW bar less delayed -> only toggle the bar don't kill it </li>
<li> optional module that installs discord, steam </li>
<li> try to remove hyprland-git before installing </li>
<li> hyprsleep </li>
<li> make full gtk-4 theme </li>
<li> input config for use with touchscreens -> install+enable hyprgrass; button that enables hyprtabs? </li>
</list>

View File

@ -1,52 +0,0 @@
-----BEGIN PRIVATE KEY-----
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
xb1EFbdJO5MsHqmoa4yV7vS+x8PSkcY=
-----END PRIVATE KEY-----

View File

@ -1,325 +0,0 @@
# 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"
[[manager.prepend_keymap]]
on = "<C-q>"
run = 'shell "$SHELL" --block --confirm'
desc = "Open shell here"
[manager]
keymap = [
{ on = "<Esc>", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
{ on = "<C-[>", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
{ on = "q", run = "quit", desc = "Quit the process" },
{ on = "Q", run = "quit --no-cwd-file", desc = "Exit the process without writing cwd-file" },
{ on = "<C-c>", run = "close", desc = "Close the current tab, or quit if it is last tab" },
{ on = "<C-z>", run = "suspend", desc = "Suspend the process" },
# Hopping
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
{ 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 = "Move cursor to the top" },
{ on = "G", run = "arrow bottom", desc = "Move cursor to the bottom" },
# Navigation
{ on = "<Left>", run = "leave", desc = "Go back to the parent directory" },
{ on = "<Right>", run = "enter", desc = "Enter the child directory" },
{ on = "h", run = "leave", desc = "Go back to the parent directory" },
{ on = "l", run = "enter", desc = "Enter the child directory" },
# 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" },
# Selection
{ on = "<Space>", run = [ "toggle --state=none", "arrow 1" ], desc = "Toggle the current selection state" },
{ on = "v", run = "visual_mode", desc = "Enter visual mode (selection mode)" },
{ on = "V", run = "visual_mode --unset", desc = "Enter visual mode (unset mode)" },
{ on = "<C-a>", run = "toggle_all --state=true", desc = "Select all files" },
{ on = "<C-r>", run = "toggle_all --state=none", desc = "Inverse selection of all files" },
# 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 fd", desc = "Search files by name using fd" },
{ on = "S", run = "search rg", desc = "Search files by content using ripgrep" },
{ on = "<C-s>", run = "escape --search", desc = "Cancel the ongoing search" },
{ on = "Z", run = "plugin fzf", desc = "Jump to a directory or reveal a file using fzf" },
# Linemode
{ on = [ "m", "s" ], run = "linemode size", desc = "Set linemode to size" },
{ on = [ "m", "p" ], run = "linemode permissions", desc = "Set linemode to permissions" },
{ on = [ "m", "c" ], run = "linemode ctime", desc = "Set linemode to ctime" },
{ on = [ "m", "m" ], run = "linemode mtime", desc = "Set linemode to mtime" },
{ on = [ "m", "o" ], run = "linemode owner", desc = "Set linemode to owner" },
{ on = [ "m", "n" ], run = "linemode none", desc = "Set linemode to none" },
# 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 = "Go to the next found" },
{ on = "N", run = "find_arrow --previous", desc = "Go to the previous found" },
# Sorting
{ on = [ ",", "m" ], run = [ "sort modified --reverse=no", "linemode mtime" ], desc = "Sort by modified time" },
{ on = [ ",", "M" ], run = [ "sort modified --reverse", "linemode mtime" ], desc = "Sort by modified time (reverse)" },
{ on = [ ",", "c" ], run = [ "sort created --reverse=no", "linemode ctime" ], desc = "Sort by created time" },
{ on = [ ",", "C" ], run = [ "sort created --reverse", "linemode ctime" ], desc = "Sort by created 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 to the home directory" },
{ on = [ "g", "c" ], run = "cd ~/.config", desc = "Go to the config directory" },
{ on = [ "g", "d" ], run = "cd ~/Downloads", desc = "Go to the downloads directory" },
{ on = [ "g", "<Space>" ], run = "cd --interactive", desc = "Go to a directory interactively" },
# Tabs
{ on = "t", run = "tab_create --current", desc = "Create a new tab with CWD" },
{ on = "1", run = "tab_switch 0", desc = "Switch to the first tab" },
{ on = "2", run = "tab_switch 1", desc = "Switch to the second tab" },
{ on = "3", run = "tab_switch 2", desc = "Switch to the third tab" },
{ on = "4", run = "tab_switch 3", desc = "Switch to the fourth tab" },
{ on = "5", run = "tab_switch 4", desc = "Switch to the fifth tab" },
{ on = "6", run = "tab_switch 5", desc = "Switch to the sixth tab" },
{ on = "7", run = "tab_switch 6", desc = "Switch to the seventh tab" },
{ on = "8", run = "tab_switch 7", desc = "Switch to the eighth tab" },
{ on = "9", run = "tab_switch 8", desc = "Switch to the ninth tab" },
{ on = "[", run = "tab_switch -1 --relative", desc = "Switch to the previous tab" },
{ on = "]", run = "tab_switch 1 --relative", desc = "Switch to the 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 -1", desc = "Move cursor up" },
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
{ on = "<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" },
]
[select]
keymap = [
{ on = "<Esc>", run = "close", desc = "Cancel selection" },
{ on = "<C-[>", run = "close", desc = "Cancel selection" },
{ on = "<C-c>", run = "close", desc = "Cancel selection" },
{ on = "<Enter>", run = "close --submit", desc = "Submit the selection" },
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
# 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 = "Go back the normal mode, or cancel input" },
{ on = "<C-[>", run = "escape", desc = "Go back the normal mode, or cancel input" },
# Mode
{ on = "i", run = "insert", desc = "Enter insert mode" },
{ on = "a", run = "insert --append", desc = "Enter append mode" },
{ on = "I", run = [ "move -999", "insert" ], desc = "Move to the BOL, and enter insert mode" },
{ on = "A", run = [ "move 999", "insert --append" ], desc = "Move to the EOL, and enter append mode" },
{ on = "v", run = "visual", desc = "Enter visual mode" },
{ on = "V", run = [ "move -999", "visual", "move 999" ], desc = "Enter visual mode and select all" },
# Character-wise movement
{ on = "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 = "w", run = "forward", 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 = "<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 -999", desc = "Move to the BOL" },
{ on = "$", run = "move 999", desc = "Move to the EOL" },
{ on = "<C-a>", run = "move -999", desc = "Move to the BOL" },
{ on = "<C-e>", run = "move 999", desc = "Move to the EOL" },
{ on = "<Home>", run = "move -999", desc = "Move to the BOL" },
{ on = "<End>", run = "move 999", desc = "Move to the EOL" },
# Delete
{ on = "<Backspace>", run = "backspace", desc = "Delete the character before the cursor" },
{ on = "<Delete>", run = "backspace --under", desc = "Delete the character under the cursor" },
{ on = "<C-h>", run = "backspace", desc = "Delete the character before the cursor" },
{ on = "<C-d>", run = "backspace --under", desc = "Delete the character under the cursor" },
# Kill
{ on = "<C-u>", run = "kill bol", desc = "Kill backwards to the BOL" },
{ on = "<C-k>", run = "kill eol", desc = "Kill forwards to the EOL" },
{ on = "<C-w>", run = "kill backward", desc = "Kill backwards to the start of the current word" },
{ on = "<A-d>", run = "kill forward", desc = "Kill forwards to the end of the current word" },
# Cut/Yank/Paste
{ on = "d", run = "delete --cut", desc = "Cut the selected characters" },
{ on = "D", run = [ "delete --cut", "move 999" ], desc = "Cut until the EOL" },
{ on = "c", run = "delete --cut --insert", desc = "Cut the selected characters, and enter insert mode" },
{ on = "C", run = [ "delete --cut --insert", "move 999" ], desc = "Cut until the EOL, and enter insert mode" },
{ on = "x", run = [ "delete --cut", "move 1 --in-operating" ], desc = "Cut the current character" },
{ on = "y", run = "yank", desc = "Copy the selected characters" },
{ on = "p", run = "paste", desc = "Paste the copied characters after the cursor" },
{ on = "P", run = "paste --before", desc = "Paste the copied characters before the cursor" },
# Undo/Redo
{ on = "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 -1", desc = "Move cursor up" },
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
# Help
{ on = "~", run = "help", desc = "Open help" },
{ on = "<F1>", run = "help", desc = "Open help" },
]
[completion]
keymap = [
{ on = "<C-c>", run = "close", desc = "Cancel completion" },
{ on = "<Tab>", run = "close --submit", desc = "Submit the completion" },
{ on = "<Enter>", run = [ "close --submit", "close_input --submit" ], desc = "Submit the completion and input" },
{ on = "<A-k>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<A-j>", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
{ on = "<C-p>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<C-n>", run = "arrow 1", desc = "Move cursor down" },
# Help
{ on = "~", run = "help", desc = "Open help" },
{ on = "<F1>", run = "help", desc = "Open help" },
]
[help]
keymap = [
{ on = "<Esc>", run = "escape", desc = "Clear the filter, or hide the help" },
{ on = "<C-[>", run = "escape", desc = "Clear the filter, or hide the help" },
{ on = "q", run = "close", desc = "Exit the process" },
{ on = "<C-c>", run = "close", desc = "Hide the help" },
# Navigation
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
# Filtering
{ on = "f", run = "filter", desc = "Apply a filter for the help items" },
]

View File

@ -1,325 +0,0 @@
# 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"
[[manager.prepend_keymap]]
on = "<C-q>"
run = 'shell "$SHELL" --block --confirm'
desc = "Open shell here"
[manager]
keymap = [
{ on = "<Esc>", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
{ on = "<C-[>", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
{ on = "q", run = "quit", desc = "Quit the process" },
{ on = "Q", run = "quit --no-cwd-file", desc = "Exit the process without writing cwd-file" },
{ on = "<C-c>", run = "close", desc = "Close the current tab, or quit if it is last tab" },
{ on = "<C-z>", run = "suspend", desc = "Suspend the process" },
# Hopping
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
{ 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 = "Move cursor to the top" },
{ on = "G", run = "arrow bottom", desc = "Move cursor to the bottom" },
# Navigation
{ on = "<Left>", run = "leave", desc = "Go back to the parent directory" },
{ on = "<Right>", run = "enter", desc = "Enter the child directory" },
{ on = "h", run = "leave", desc = "Go back to the parent directory" },
{ on = "l", run = "enter", desc = "Enter the child directory" },
# 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" },
# Selection
{ on = "<Space>", run = [ "toggle --state=none", "arrow 1" ], desc = "Toggle the current selection state" },
{ on = "v", run = "visual_mode", desc = "Enter visual mode (selection mode)" },
{ on = "V", run = "visual_mode --unset", desc = "Enter visual mode (unset mode)" },
{ on = "<C-a>", run = "toggle_all --state=true", desc = "Select all files" },
{ on = "<C-r>", run = "toggle_all --state=none", desc = "Inverse selection of all files" },
# 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 fd", desc = "Search files by name using fd" },
{ on = "S", run = "search rg", desc = "Search files by content using ripgrep" },
{ on = "<C-s>", run = "escape --search", desc = "Cancel the ongoing search" },
{ on = "Z", run = "plugin fzf", desc = "Jump to a directory or reveal a file using fzf" },
# Linemode
{ on = [ "m", "s" ], run = "linemode size", desc = "Set linemode to size" },
{ on = [ "m", "p" ], run = "linemode permissions", desc = "Set linemode to permissions" },
{ on = [ "m", "c" ], run = "linemode ctime", desc = "Set linemode to ctime" },
{ on = [ "m", "m" ], run = "linemode mtime", desc = "Set linemode to mtime" },
{ on = [ "m", "o" ], run = "linemode owner", desc = "Set linemode to owner" },
{ on = [ "m", "n" ], run = "linemode none", desc = "Set linemode to none" },
# 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 = "Go to the next found" },
{ on = "N", run = "find_arrow --previous", desc = "Go to the previous found" },
# Sorting
{ on = [ ",", "m" ], run = [ "sort modified --reverse=no", "linemode mtime" ], desc = "Sort by modified time" },
{ on = [ ",", "M" ], run = [ "sort modified --reverse", "linemode mtime" ], desc = "Sort by modified time (reverse)" },
{ on = [ ",", "c" ], run = [ "sort created --reverse=no", "linemode ctime" ], desc = "Sort by created time" },
{ on = [ ",", "C" ], run = [ "sort created --reverse", "linemode ctime" ], desc = "Sort by created 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 to the home directory" },
{ on = [ "g", "c" ], run = "cd ~/.config", desc = "Go to the config directory" },
{ on = [ "g", "d" ], run = "cd ~/Downloads", desc = "Go to the downloads directory" },
{ on = [ "g", "<Space>" ], run = "cd --interactive", desc = "Go to a directory interactively" },
# Tabs
{ on = "t", run = "tab_create --current", desc = "Create a new tab with CWD" },
{ on = "1", run = "tab_switch 0", desc = "Switch to the first tab" },
{ on = "2", run = "tab_switch 1", desc = "Switch to the second tab" },
{ on = "3", run = "tab_switch 2", desc = "Switch to the third tab" },
{ on = "4", run = "tab_switch 3", desc = "Switch to the fourth tab" },
{ on = "5", run = "tab_switch 4", desc = "Switch to the fifth tab" },
{ on = "6", run = "tab_switch 5", desc = "Switch to the sixth tab" },
{ on = "7", run = "tab_switch 6", desc = "Switch to the seventh tab" },
{ on = "8", run = "tab_switch 7", desc = "Switch to the eighth tab" },
{ on = "9", run = "tab_switch 8", desc = "Switch to the ninth tab" },
{ on = "[", run = "tab_switch -1 --relative", desc = "Switch to the previous tab" },
{ on = "]", run = "tab_switch 1 --relative", desc = "Switch to the 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 -1", desc = "Move cursor up" },
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
{ on = "<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" },
]
[select]
keymap = [
{ on = "<Esc>", run = "close", desc = "Cancel selection" },
{ on = "<C-[>", run = "close", desc = "Cancel selection" },
{ on = "<C-c>", run = "close", desc = "Cancel selection" },
{ on = "<Enter>", run = "close --submit", desc = "Submit the selection" },
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
# 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 = "Go back the normal mode, or cancel input" },
{ on = "<C-[>", run = "escape", desc = "Go back the normal mode, or cancel input" },
# Mode
{ on = "i", run = "insert", desc = "Enter insert mode" },
{ on = "a", run = "insert --append", desc = "Enter append mode" },
{ on = "I", run = [ "move -999", "insert" ], desc = "Move to the BOL, and enter insert mode" },
{ on = "A", run = [ "move 999", "insert --append" ], desc = "Move to the EOL, and enter append mode" },
{ on = "v", run = "visual", desc = "Enter visual mode" },
{ on = "V", run = [ "move -999", "visual", "move 999" ], desc = "Enter visual mode and select all" },
# Character-wise movement
{ on = "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 = "w", run = "forward", 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 = "<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 -999", desc = "Move to the BOL" },
{ on = "$", run = "move 999", desc = "Move to the EOL" },
{ on = "<C-a>", run = "move -999", desc = "Move to the BOL" },
{ on = "<C-e>", run = "move 999", desc = "Move to the EOL" },
{ on = "<Home>", run = "move -999", desc = "Move to the BOL" },
{ on = "<End>", run = "move 999", desc = "Move to the EOL" },
# Delete
{ on = "<Backspace>", run = "backspace", desc = "Delete the character before the cursor" },
{ on = "<Delete>", run = "backspace --under", desc = "Delete the character under the cursor" },
{ on = "<C-h>", run = "backspace", desc = "Delete the character before the cursor" },
{ on = "<C-d>", run = "backspace --under", desc = "Delete the character under the cursor" },
# Kill
{ on = "<C-u>", run = "kill bol", desc = "Kill backwards to the BOL" },
{ on = "<C-k>", run = "kill eol", desc = "Kill forwards to the EOL" },
{ on = "<C-w>", run = "kill backward", desc = "Kill backwards to the start of the current word" },
{ on = "<A-d>", run = "kill forward", desc = "Kill forwards to the end of the current word" },
# Cut/Yank/Paste
{ on = "d", run = "delete --cut", desc = "Cut the selected characters" },
{ on = "D", run = [ "delete --cut", "move 999" ], desc = "Cut until the EOL" },
{ on = "c", run = "delete --cut --insert", desc = "Cut the selected characters, and enter insert mode" },
{ on = "C", run = [ "delete --cut --insert", "move 999" ], desc = "Cut until the EOL, and enter insert mode" },
{ on = "x", run = [ "delete --cut", "move 1 --in-operating" ], desc = "Cut the current character" },
{ on = "y", run = "yank", desc = "Copy the selected characters" },
{ on = "p", run = "paste", desc = "Paste the copied characters after the cursor" },
{ on = "P", run = "paste --before", desc = "Paste the copied characters before the cursor" },
# Undo/Redo
{ on = "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 -1", desc = "Move cursor up" },
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
# Help
{ on = "~", run = "help", desc = "Open help" },
{ on = "<F1>", run = "help", desc = "Open help" },
]
[completion]
keymap = [
{ on = "<C-c>", run = "close", desc = "Cancel completion" },
{ on = "<Tab>", run = "close --submit", desc = "Submit the completion" },
{ on = "<Enter>", run = [ "close --submit", "close_input --submit" ], desc = "Submit the completion and input" },
{ on = "<A-k>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<A-j>", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
{ on = "<C-p>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<C-n>", run = "arrow 1", desc = "Move cursor down" },
# Help
{ on = "~", run = "help", desc = "Open help" },
{ on = "<F1>", run = "help", desc = "Open help" },
]
[help]
keymap = [
{ on = "<Esc>", run = "escape", desc = "Clear the filter, or hide the help" },
{ on = "<C-[>", run = "escape", desc = "Clear the filter, or hide the help" },
{ on = "q", run = "close", desc = "Exit the process" },
{ on = "<C-c>", run = "close", desc = "Hide the help" },
# Navigation
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
# Filtering
{ on = "f", run = "filter", desc = "Apply a filter for the help items" },
]

View File

@ -1,53 +0,0 @@
[manager]
border_style = { fg = "#5018dd"}
cwd = { fg = "#E40046"}
hovered = { fg = "#E40046"}
find_keyword = { fg = "#E40046"}
find_position = { fg = "#E40046"}
[select]
border = { fg = "#5018dd"}
inactive = { fg = "#5018dd"}
active = { fg = "#E40046"}
[completion]
border = { fg = "#5018dd"}
inactive = { fg = "#5018dd"}
active = { fg = "#E40046"}
[mode]
normal_main = { fg = "#E40046", bg = "#5018dd"}
normal_alt = { fg = "#E40046", bg = "#5018dd"}
select_main = { fg = "#E40046", bg = "#5018dd"}
select_alt = { fg = "#E40046", bg = "#5018dd"}
unset_main = { fg = "#E40046", bg = "#5018dd"}
unset_alt = { fg = "#E40046", bg = "#5018dd"}
[status]
mode_normal = { fg = "#E40046", bg = "#5018dd"}
mode_select = { fg = "#E40046", bg = "#5018dd"}
mode_unset = { fg = "#E40046", bg = "#5018dd"}
progress_label = { fg = "#E40046", bg = "#5018dd"}
progress_normal = { fg = "#E40046", bg = "#5018dd"}
progress_error = { fg = "#E40046", bg = "#5018dd"}
[filetype]
rules = [
# Fallback
{ name = "*/", fg = "#5018dd" },
{ name = "*", fg = "#5018dd" }
]
[input]
border = { fg = "#5018dd"}
[icon]
prepend_dirs = [
{ name = "desktop", text = "", fg = "#5018dd" },
{ name = "Music", text = "", fg = "#5018dd"},
{ name = "Musik", text = "", fg = "#5018dd"},
{ name = "music", text = "", fg = "#5018dd"},
{ name = "musik", text = "", fg = "#5018dd"}
]
append_exts = [
{ name = "mp3", text = "", fg = "#5018dd" },
]

View File

@ -1,53 +0,0 @@
[manager]
border_style = { fg = "#5018dd"}
cwd = { fg = "#E40046"}
hovered = { fg = "#E40046"}
find_keyword = { fg = "#E40046"}
find_position = { fg = "#E40046"}
[select]
border = { fg = "#5018dd"}
inactive = { fg = "#5018dd"}
active = { fg = "#E40046"}
[completion]
border = { fg = "#5018dd"}
inactive = { fg = "#5018dd"}
active = { fg = "#E40046"}
[mode]
normal_main = { fg = "#E40046", bg = "#5018dd"}
normal_alt = { fg = "#E40046", bg = "#5018dd"}
select_main = { fg = "#E40046", bg = "#5018dd"}
select_alt = { fg = "#E40046", bg = "#5018dd"}
unset_main = { fg = "#E40046", bg = "#5018dd"}
unset_alt = { fg = "#E40046", bg = "#5018dd"}
[status]
mode_normal = { fg = "#E40046", bg = "#5018dd"}
mode_select = { fg = "#E40046", bg = "#5018dd"}
mode_unset = { fg = "#E40046", bg = "#5018dd"}
progress_label = { fg = "#E40046", bg = "#5018dd"}
progress_normal = { fg = "#E40046", bg = "#5018dd"}
progress_error = { fg = "#E40046", bg = "#5018dd"}
[filetype]
rules = [
# Fallback
{ name = "*/", fg = "#5018dd" },
{ name = "*", fg = "#5018dd" }
]
[input]
border = { fg = "#5018dd"}
[icon]
prepend_dirs = [
{ name = "desktop", text = "", fg = "#5018dd" },
{ name = "Music", text = "", fg = "#5018dd"},
{ name = "Musik", text = "", fg = "#5018dd"},
{ name = "music", text = "", fg = "#5018dd"},
{ name = "musik", text = "", fg = "#5018dd"}
]
append_exts = [
{ name = "mp3", text = "", fg = "#5018dd" },
]

View File

@ -1,20 +0,0 @@
[manager]
show_hidden = true
show_symlink = true
[opener]
edit = [
{ run = 'nvim "$@"', block = true, for = "unix" },
]
open = [
{ run = 'xdg-open "$@"', desc = "Open" },
]
inkscape = [
{ run = 'inkscape "$@"', desc = "Open in inkscape"},
]
[open]
prepend_rules = [
{ name = "*.svg", use = "inkscape" },
{ name = "*/", use = "kitty" },
]

View File

@ -1,20 +0,0 @@
[manager]
show_hidden = true
show_symlink = true
[opener]
edit = [
{ run = 'nvim "$@"', block = true, for = "unix" },
]
open = [
{ run = 'xdg-open "$@"', desc = "Open" },
]
inkscape = [
{ run = 'inkscape "$@"', desc = "Open in inkscape"},
]
[open]
prepend_rules = [
{ name = "*.svg", use = "inkscape" },
{ name = "*/", use = "kitty" },
]