diff --git a/rockethype/config/yazi/keymap.toml b/rockethype/config/yazi/keymap.toml new file mode 100644 index 0000000..50229ff --- /dev/null +++ b/rockethype/config/yazi/keymap.toml @@ -0,0 +1,21 @@ +[mgr] + +prepend_keymap = [ + { on = [ "!" ], run = 'shell "$SHELL" --block', desc = "Open $$SHELL here" }, + { on = [ "a" ], run = "rename", desc = "Rename" }, + { on = [ "z", "z" ], run = "shell fzf --block", desc = "FZF" }, + { on = [ "z", "h" ], run = "hidden toggle", desc = "Toggle hidden files" }, + { on = [ "z", "e" ], run = 'shell --block -- unpack "$@"', desc = "Extract Archive" }, + { on = [ "z", "s" ], run = 'shell --block -- scpsend "$@"', desc = "Send to Server" }, + + + { on = [ "d", "d" ], run = "remove", desc = "Delete" }, + { on = [ "d", "D" ], run = "remove --permanently", desc = "Delete Permanently" }, + { on = [ "d", "u" ], run = 'shell --block "du --max-depth=1 -ah --apparent-size | less"', desc = "Show Size" }, + { on = [ "d", "U" ], run = 'shell --block "du --max-depth=1 -ah --apparent-size | sort -rh | less"', desc = "Show Size" }, +] + +append_keymap = [ + { on = "c", run = [ "cmd1", "cmd2" ], desc = "Multiple commands with `c`" } +] + diff --git a/rockethype/config/yazi/theme.toml b/rockethype/config/yazi/theme.toml new file mode 100644 index 0000000..e924da6 --- /dev/null +++ b/rockethype/config/yazi/theme.toml @@ -0,0 +1,8 @@ +[mgr] + +cwd = { fg = "green" } + +# Border +border_symbol = "│" +border_style = { fg = "blue" } + diff --git a/rockethype/config/yazi/yazi.toml b/rockethype/config/yazi/yazi.toml new file mode 100644 index 0000000..fe4f952 --- /dev/null +++ b/rockethype/config/yazi/yazi.toml @@ -0,0 +1,37 @@ +[mgr] +linemode = "size" +"h" = "cd .." +"l" = "shell $EDITOR {file}" + +[opener] +edit = [ + { run = 'vim "$@"', desc = "$EDITOR", block = true, for = "linux" }, +] +open = [ + { run = 'xdg-open "$@"', desc = "Open", for = "linux" }, +] +openimg = [ + { run = 'swayimg "$@"', desc = "Open", for = "linux" }, +] +reveal = [ + { run = 'xdg-open "$(dirname "$0")"', desc = "Reveal", for = "linux" }, +] +extract = [ + { run = 'unpack "$1"', desc = "Extract here", for = "unix" }, +] +play = [ + { run = 'mpv "$@"', orphan = true, for = "unix" }, +] + +[open] +rules = [ + { mime = "text/*", use = "edit" }, + { mime = "video/*", use = "play" }, + { mime = "audio/*", use = "play" }, + { mime = "image/*", use = "openimg" }, + + { name = "*.json", use = "edit" }, + { name = "*.toml", use = "edit" }, + { name = "*.html", use = [ "open", "edit" ] }, + +] diff --git a/rockethype/local/bin/scpsend b/rockethype/local/bin/scpsend new file mode 100755 index 0000000..2129a58 --- /dev/null +++ b/rockethype/local/bin/scpsend @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +# Проверяем, переданы ли аргументы +if [ $# -eq 0 ]; then + echo "Ошибка: не указаны файлы для копирования" + exit 1 +fi + +# Запрашиваем удалённый путь +REM=$(gum input --placeholder "user@host:/path/to/destination") + +# Копируем каждый файл по очереди +for file in "$@"; do + if [ ! -e "$file" ]; then + echo "Ошибка: файл '$file' не существует, пропускаем" + continue + fi + echo "Копируем $file..." + scp -r "$file" "$REM" +done + +echo "Готово!" diff --git a/rockethype/local/bin/unpack b/rockethype/local/bin/unpack new file mode 100755 index 0000000..753f3f1 --- /dev/null +++ b/rockethype/local/bin/unpack @@ -0,0 +1,42 @@ +#!/bin/bash + +# Функция для распаковки архивов +unpack() { + if [ $# -eq 0 ]; then + echo -e "\033[1;31mОшибка:\033[0m Укажите имя архива" + echo "Использование: unpack <архив>" + return 1 + fi + + if [ ! -f "$1" ]; then + echo -e "\033[1;31mОшибка:\033[0m Файл '$1' не существует" + return 1 + fi + + case "$1" in + *.tar.bz2|*.tbz2) tar xjf "$1" ;; + *.tar.gz|*.tgz) tar xzf "$1" ;; + *.tar.xz) tar xf "$1" ;; + *.tar) tar xf "$1" ;; + *.bz2) bunzip2 "$1" ;; + *.rar) unrar x "$1" ;; + *.gz) gunzip "$1" ;; + *.zip) unzip "$1" ;; + *.Z) uncompress "$1" ;; + *.7z) 7z x "$1" ;; + *) + echo -e "\033[1;31mОшибка:\033[0m Неподдерживаемый формат архива: '$1'" + echo -e "Поддерживаемые форматы: .tar.bz2, .tar.gz, .tar.xz, .tar, .bz2, .rar, .gz, .zip, .Z, .7z" + return 1 + ;; + esac + + if [ $? -eq 0 ]; then + echo -e "\033[1;32mУспех:\033[0m Архив '$1' распакован" + fi +} + +# Если скрипт вызван напрямую (а не через source), выполняем unpack +if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then + unpack "$@" +fi