Added all current configs that I see are important
This commit is contained in:
parent
7e2ddc1054
commit
d9bed25ebc
48 changed files with 4854 additions and 35 deletions
28
.config/fish/config.fish
Normal file
28
.config/fish/config.fish
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
source /usr/share/cachyos-fish-config/cachyos-config.fish
|
||||||
|
|
||||||
|
fish_config theme choose "Dracula Official"
|
||||||
|
|
||||||
|
oh-my-posh init fish --config ~/.cache/oh-my-posh/themes/dracula.omp.json | source
|
||||||
|
|
||||||
|
# Set Zed as the default editor
|
||||||
|
set -gx EDITOR /usr/local/bin/zed_sudo_wrapper
|
||||||
|
set -gx VISUAL "zeditor --wait"
|
||||||
|
set -gx SUDO_EDITOR "zeditor --wait"
|
||||||
|
|
||||||
|
# Start SSH agent if not already running
|
||||||
|
if not set -q SSH_AGENT_PID
|
||||||
|
eval (ssh-agent -c)
|
||||||
|
end
|
||||||
|
|
||||||
|
function update
|
||||||
|
sudo pacman -Syu --noconfirm
|
||||||
|
paru -Syu --noconfirm
|
||||||
|
sudo pacman -Sc --noconfirm
|
||||||
|
paru -Sc --noconfirm
|
||||||
|
end
|
||||||
|
|
||||||
|
function add_ssh_key
|
||||||
|
set -l ssh_key ~/.ssh/github-ssh
|
||||||
|
echo "Adding SSH key..."
|
||||||
|
ssh-add $ssh_key
|
||||||
|
end
|
||||||
108
.config/fish/fish_variables
Normal file
108
.config/fish/fish_variables
Normal file
|
|
@ -0,0 +1,108 @@
|
||||||
|
# This file contains fish universal variable definitions.
|
||||||
|
# VERSION: 3.0
|
||||||
|
SETUVAR __done_min_cmd_duration:10000
|
||||||
|
SETUVAR __done_notification_urgency_level:low
|
||||||
|
SETUVAR __fish_initialized:3800
|
||||||
|
SETUVAR fish_color_autosuggestion:brblack
|
||||||
|
SETUVAR fish_color_cancel:\x2dr
|
||||||
|
SETUVAR fish_color_command:normal
|
||||||
|
SETUVAR fish_color_comment:red
|
||||||
|
SETUVAR fish_color_cwd:green
|
||||||
|
SETUVAR fish_color_cwd_root:red
|
||||||
|
SETUVAR fish_color_end:green
|
||||||
|
SETUVAR fish_color_error:brred
|
||||||
|
SETUVAR fish_color_escape:brcyan
|
||||||
|
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_host:normal
|
||||||
|
SETUVAR fish_color_host_remote:yellow
|
||||||
|
SETUVAR fish_color_normal:normal
|
||||||
|
SETUVAR fish_color_operator:brcyan
|
||||||
|
SETUVAR fish_color_param:cyan
|
||||||
|
SETUVAR fish_color_quote:yellow
|
||||||
|
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack\x1e\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_selection:white\x1e\x2d\x2dbackground\x3dbrblack\x1e\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_status:red
|
||||||
|
SETUVAR fish_color_user:brgreen
|
||||||
|
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||||
|
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||||
|
SETUVAR fish_pager_color_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_completion:normal
|
||||||
|
SETUVAR fish_pager_color_description:yellow\x1e\x2di
|
||||||
|
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||||
|
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan\x1e\x2d\x2dbold
|
||||||
|
SETUVAR fish_pager_color_secondary_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_completion:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_description:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_prefix:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_background:\x2dr
|
||||||
|
SETUVAR fish_pager_color_selected_completion:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_description:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_prefix:\x1d
|
||||||
|
SETUVAR fish_user_paths:\x1d
|
||||||
|
SETUVAR pure_begin_prompt_with_current_directory:true
|
||||||
|
SETUVAR pure_check_for_new_release:false
|
||||||
|
SETUVAR pure_color_at_sign:pure_color_mute
|
||||||
|
SETUVAR pure_color_aws_profile:pure_color_warning
|
||||||
|
SETUVAR pure_color_command_duration:pure_color_warning
|
||||||
|
SETUVAR pure_color_current_directory:pure_color_primary
|
||||||
|
SETUVAR pure_color_danger:red
|
||||||
|
SETUVAR pure_color_dark:black
|
||||||
|
SETUVAR pure_color_git_branch:pure_color_mute
|
||||||
|
SETUVAR pure_color_git_dirty:pure_color_mute
|
||||||
|
SETUVAR pure_color_git_stash:pure_color_info
|
||||||
|
SETUVAR pure_color_git_unpulled_commits:pure_color_info
|
||||||
|
SETUVAR pure_color_git_unpushed_commits:pure_color_info
|
||||||
|
SETUVAR pure_color_hostname:pure_color_mute
|
||||||
|
SETUVAR pure_color_info:cyan
|
||||||
|
SETUVAR pure_color_jobs:pure_color_normal
|
||||||
|
SETUVAR pure_color_k8s_context:pure_color_success
|
||||||
|
SETUVAR pure_color_k8s_namespace:pure_color_primary
|
||||||
|
SETUVAR pure_color_k8s_prefix:pure_color_info
|
||||||
|
SETUVAR pure_color_light:white
|
||||||
|
SETUVAR pure_color_mute:brblack
|
||||||
|
SETUVAR pure_color_nixdevshell_prefix:pure_color_info
|
||||||
|
SETUVAR pure_color_nixdevshell_symbol:pure_color_mute
|
||||||
|
SETUVAR pure_color_normal:normal
|
||||||
|
SETUVAR pure_color_prefix_root_prompt:pure_color_danger
|
||||||
|
SETUVAR pure_color_primary:blue
|
||||||
|
SETUVAR pure_color_prompt_on_error:pure_color_danger
|
||||||
|
SETUVAR pure_color_prompt_on_success:pure_color_success
|
||||||
|
SETUVAR pure_color_success:magenta
|
||||||
|
SETUVAR pure_color_system_time:pure_color_mute
|
||||||
|
SETUVAR pure_color_username_normal:pure_color_mute
|
||||||
|
SETUVAR pure_color_username_root:pure_color_light
|
||||||
|
SETUVAR pure_color_virtualenv:pure_color_mute
|
||||||
|
SETUVAR pure_color_warning:yellow
|
||||||
|
SETUVAR pure_enable_aws_profile:true
|
||||||
|
SETUVAR pure_enable_container_detection:true
|
||||||
|
SETUVAR pure_enable_git:true
|
||||||
|
SETUVAR pure_enable_k8s:false
|
||||||
|
SETUVAR pure_enable_nixdevshell:false
|
||||||
|
SETUVAR pure_enable_single_line_prompt:false
|
||||||
|
SETUVAR pure_enable_virtualenv:true
|
||||||
|
SETUVAR pure_reverse_prompt_symbol_in_vimode:true
|
||||||
|
SETUVAR pure_separate_prompt_on_error:false
|
||||||
|
SETUVAR pure_shorten_prompt_current_directory_length:0
|
||||||
|
SETUVAR pure_shorten_window_title_current_directory_length:0
|
||||||
|
SETUVAR pure_show_jobs:false
|
||||||
|
SETUVAR pure_show_prefix_root_prompt:false
|
||||||
|
SETUVAR pure_show_subsecond_command_duration:false
|
||||||
|
SETUVAR pure_show_system_time:false
|
||||||
|
SETUVAR pure_symbol_aws_profile_prefix:
|
||||||
|
SETUVAR pure_symbol_container_prefix:
|
||||||
|
SETUVAR pure_symbol_git_dirty:\x2a
|
||||||
|
SETUVAR pure_symbol_git_stash:\u2261
|
||||||
|
SETUVAR pure_symbol_git_unpulled_commits:\u21e3
|
||||||
|
SETUVAR pure_symbol_git_unpushed_commits:\u21e1
|
||||||
|
SETUVAR pure_symbol_k8s_prefix:\u2638
|
||||||
|
SETUVAR pure_symbol_nixdevshell_prefix:\u2744\ufe0f
|
||||||
|
SETUVAR pure_symbol_prefix_root_prompt:\x23
|
||||||
|
SETUVAR pure_symbol_prompt:\u276f
|
||||||
|
SETUVAR pure_symbol_reverse_prompt:\u276e
|
||||||
|
SETUVAR pure_symbol_ssh_prefix:
|
||||||
|
SETUVAR pure_symbol_title_bar_separator:\x2d
|
||||||
|
SETUVAR pure_symbol_virtualenv_prefix:
|
||||||
|
SETUVAR pure_threshold_command_duration:5
|
||||||
|
SETUVAR pure_truncate_prompt_current_directory_keeps:\x2d1
|
||||||
|
SETUVAR pure_truncate_window_title_current_directory_keeps:\x2d1
|
||||||
13
.config/fish/functions/swww_set_wallpaper.fish
Executable file
13
.config/fish/functions/swww_set_wallpaper.fish
Executable file
|
|
@ -0,0 +1,13 @@
|
||||||
|
function swww_set_wallpaper
|
||||||
|
set wallpaper $argv[1]
|
||||||
|
|
||||||
|
# Start swww daemon if not running
|
||||||
|
if not pgrep swww-daemon > /dev/null
|
||||||
|
swww-daemon &
|
||||||
|
sleep 1
|
||||||
|
end
|
||||||
|
|
||||||
|
# Set wallpaper with animation
|
||||||
|
swww img "$wallpaper" \
|
||||||
|
--transition-type wipe
|
||||||
|
end
|
||||||
8
.config/fish/functions/yazi-cd.fish
Executable file
8
.config/fish/functions/yazi-cd.fish
Executable file
|
|
@ -0,0 +1,8 @@
|
||||||
|
function yazi-cd
|
||||||
|
set tmpfile (mktemp)
|
||||||
|
yazi --cwd-file="$tmpfile"
|
||||||
|
if test -s "$tmpfile"
|
||||||
|
cd (cat "$tmpfile")
|
||||||
|
end
|
||||||
|
rm -f "$tmpfile"
|
||||||
|
end
|
||||||
55
.config/fish/themes/Dracula Official.theme
Normal file
55
.config/fish/themes/Dracula Official.theme
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
# Dracula Color Palette
|
||||||
|
#
|
||||||
|
# Foreground: f8f8f2
|
||||||
|
# Selection: 44475a
|
||||||
|
# Comment: 6272a4
|
||||||
|
# Red: ff5555
|
||||||
|
# Orange: ffb86c
|
||||||
|
# Yellow: f1fa8c
|
||||||
|
# Green: 50fa7b
|
||||||
|
# Purple: bd93f9
|
||||||
|
# Cyan: 8be9fd
|
||||||
|
# Pink: ff79c6
|
||||||
|
|
||||||
|
# Syntax Highlighting Colors
|
||||||
|
fish_color_normal f8f8f2
|
||||||
|
fish_color_command 8be9fd
|
||||||
|
fish_color_keyword ff79c6
|
||||||
|
fish_color_quote f1fa8c
|
||||||
|
fish_color_redirection f8f8f2
|
||||||
|
fish_color_end ffb86c
|
||||||
|
fish_color_error ff5555
|
||||||
|
fish_color_param bd93f9
|
||||||
|
fish_color_comment 6272a4
|
||||||
|
fish_color_selection --background=44475a
|
||||||
|
fish_color_search_match --background=44475a
|
||||||
|
fish_color_operator 50fa7b
|
||||||
|
fish_color_escape ff79c6
|
||||||
|
fish_color_autosuggestion 6272a4
|
||||||
|
fish_color_cancel ff5555 --reverse
|
||||||
|
fish_color_option ffb86c
|
||||||
|
fish_color_history_current --bold
|
||||||
|
fish_color_status ff5555
|
||||||
|
fish_color_valid_path --underline
|
||||||
|
|
||||||
|
# Default Prompt Colors
|
||||||
|
fish_color_cwd 50fa7b
|
||||||
|
fish_color_cwd_root red
|
||||||
|
fish_color_host bd93f9
|
||||||
|
fish_color_host_remote bd93f9
|
||||||
|
fish_color_user 8be9fd
|
||||||
|
|
||||||
|
# Completion Pager Colors
|
||||||
|
fish_pager_color_progress 6272a4
|
||||||
|
fish_pager_color_background
|
||||||
|
fish_pager_color_prefix 8be9fd
|
||||||
|
fish_pager_color_completion f8f8f2
|
||||||
|
fish_pager_color_description 6272a4
|
||||||
|
fish_pager_color_selected_background --background=44475a
|
||||||
|
fish_pager_color_selected_prefix 8be9fd
|
||||||
|
fish_pager_color_selected_completion f8f8f2
|
||||||
|
fish_pager_color_selected_description 6272a4
|
||||||
|
fish_pager_color_secondary_background
|
||||||
|
fish_pager_color_secondary_prefix 8be9fd
|
||||||
|
fish_pager_color_secondary_completion f8f8f2
|
||||||
|
fish_pager_color_secondary_description 6272a4
|
||||||
80
.config/godot/editor_settings-4.5.tres
Normal file
80
.config/godot/editor_settings-4.5.tres
Normal file
|
|
@ -0,0 +1,80 @@
|
||||||
|
[gd_resource type="EditorSettings" load_steps=2 format=3]
|
||||||
|
|
||||||
|
[sub_resource type="InputEventKey" id="InputEventKey_ly3hx"]
|
||||||
|
keycode = 4194326
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
interface/theme/preset = "Custom"
|
||||||
|
interface/theme/base_color = Color(0.15686275, 0.16470589, 0.21176471, 1)
|
||||||
|
interface/theme/accent_color = Color(0.38431373, 0.44705883, 0.6431373, 1)
|
||||||
|
interface/theme/contrast = 0.21
|
||||||
|
text_editor/theme/color_theme = "dracula"
|
||||||
|
text_editor/theme/highlighting/symbol_color = Color(0.972549, 0.972549, 0.9490196, 1)
|
||||||
|
text_editor/theme/highlighting/keyword_color = Color(1, 0.4745098, 0.7764706, 1)
|
||||||
|
text_editor/theme/highlighting/control_flow_keyword_color = Color(1, 0.4745098, 0.7764706, 1)
|
||||||
|
text_editor/theme/highlighting/base_type_color = Color(0.3137255, 0.98039216, 0.48235294, 1)
|
||||||
|
text_editor/theme/highlighting/engine_type_color = Color(0.54509807, 0.9137255, 0.99215686, 1)
|
||||||
|
text_editor/theme/highlighting/user_type_color = Color(0.54509807, 0.9137255, 0.99215686, 1)
|
||||||
|
text_editor/theme/highlighting/comment_color = Color(0.38431373, 0.44705883, 0.6431373, 1)
|
||||||
|
text_editor/theme/highlighting/doc_comment_color = Color(0.6, 0.7, 0.8, 0.8)
|
||||||
|
text_editor/theme/highlighting/string_color = Color(0.94509804, 0.98039216, 0.54901963, 1)
|
||||||
|
text_editor/theme/highlighting/background_color = Color(0.15686275, 0.16470589, 0.21176471, 1)
|
||||||
|
text_editor/theme/highlighting/completion_background_color = Color(0.17254902, 0.16470589, 0.19607843, 1)
|
||||||
|
text_editor/theme/highlighting/completion_selected_color = Color(0.26666668, 0.2784314, 0.3529412, 1)
|
||||||
|
text_editor/theme/highlighting/completion_existing_color = Color(0.26666668, 0.2784314, 0.3529412, 1)
|
||||||
|
text_editor/theme/highlighting/completion_scroll_color = Color(0.38431373, 0.44705883, 0.6431373, 1)
|
||||||
|
text_editor/theme/highlighting/completion_font_color = Color(0.972549, 0.972549, 0.9490196, 1)
|
||||||
|
text_editor/theme/highlighting/text_color = Color(0.972549, 0.972549, 0.9490196, 1)
|
||||||
|
text_editor/theme/highlighting/line_number_color = Color(0.38431373, 0.44705883, 0.6431373, 1)
|
||||||
|
text_editor/theme/highlighting/safe_line_number_color = Color(0.7892157, 0.94941175, 0.8029412, 0.75)
|
||||||
|
text_editor/theme/highlighting/caret_color = Color(0.972549, 0.972549, 0.9490196, 1)
|
||||||
|
text_editor/theme/highlighting/caret_background_color = Color(0.15686275, 0.16470589, 0.21176471, 1)
|
||||||
|
text_editor/theme/highlighting/text_selected_color = Color(0.972549, 0.972549, 0.9490196, 1)
|
||||||
|
text_editor/theme/highlighting/selection_color = Color(0.26666668, 0.2784314, 0.3529412, 1)
|
||||||
|
text_editor/theme/highlighting/brace_mismatch_color = Color(1, 0.33333334, 0.33333334, 1)
|
||||||
|
text_editor/theme/highlighting/current_line_color = Color(0.26666668, 0.2784314, 0.3529412, 1)
|
||||||
|
text_editor/theme/highlighting/line_length_guideline_color = Color(0.26666668, 0.2784314, 0.3529412, 1)
|
||||||
|
text_editor/theme/highlighting/word_highlighted_color = Color(0.26666668, 0.2784314, 0.3529412, 1)
|
||||||
|
text_editor/theme/highlighting/number_color = Color(0.7411765, 0.5764706, 0.9764706, 1)
|
||||||
|
text_editor/theme/highlighting/function_color = Color(0.54509807, 0.9137255, 0.99215686, 1)
|
||||||
|
text_editor/theme/highlighting/member_variable_color = Color(0.972549, 0.972549, 0.9490196, 1)
|
||||||
|
text_editor/theme/highlighting/mark_color = Color(1, 0.33333334, 0.33333334, 0.3019608)
|
||||||
|
text_editor/theme/highlighting/warning_color = Color(1, 0.87, 0.4, 0.15)
|
||||||
|
text_editor/theme/highlighting/breakpoint_color = Color(1, 0.72156864, 0.42352942, 1)
|
||||||
|
text_editor/theme/highlighting/code_folding_color = Color(0.38431373, 0.44705883, 0.6431373, 1)
|
||||||
|
text_editor/theme/highlighting/search_result_color = Color(0.26666668, 0.2784314, 0.3529412, 1)
|
||||||
|
text_editor/theme/highlighting/search_result_border_color = Color(0.15686275, 0.16470589, 0.21176471, 1)
|
||||||
|
text_editor/theme/highlighting/gdscript/function_definition_color = Color(0.3137255, 0.98039216, 0.48235294, 1)
|
||||||
|
text_editor/theme/highlighting/gdscript/node_reference_color = Color(0.3137255, 0.98039216, 0.48235294, 1)
|
||||||
|
text_editor/theme/highlighting/gdscript/annotation_color = Color(1, 0.72156864, 0.42352942, 1)
|
||||||
|
text_editor/theme/highlighting/comment_markers/critical_color = Color(1, 0.33333334, 0.33333334, 1)
|
||||||
|
text_editor/theme/highlighting/comment_markers/warning_color = Color(0.94509804, 0.98039216, 0.54901963, 1)
|
||||||
|
text_editor/theme/highlighting/comment_markers/notice_color = Color(0.3137255, 0.98039216, 0.48235294, 1)
|
||||||
|
text_editor/external/exec_path = "/usr/bin/zeditor"
|
||||||
|
text_editor/external/exec_flags = "{project} {file}:{line}:{col}"
|
||||||
|
text_editor/external/use_external_editor = true
|
||||||
|
editors/3d_gizmos/gizmo_settings/bone_axis_length = 0.1
|
||||||
|
editors/animation/default_animation_step = 0.033333335
|
||||||
|
export/android/debug_keystore = "/home/henry/.local/share/godot/keystores/debug.keystore"
|
||||||
|
export/android/debug_keystore_pass = "android"
|
||||||
|
export/android/java_sdk_path = ""
|
||||||
|
export/android/android_sdk_path = "/home/henry/Android/Sdk"
|
||||||
|
export/macos/rcodesign = ""
|
||||||
|
export/web/http_port = 8060
|
||||||
|
export/web/tls_key = ""
|
||||||
|
export/web/tls_certificate = ""
|
||||||
|
export/windows/osslsigncode = ""
|
||||||
|
_editor_settings_advanced_mode = true
|
||||||
|
_project_settings_advanced_mode = false
|
||||||
|
_export_template_download_directory = ""
|
||||||
|
_default_feature_profile = ""
|
||||||
|
_script_setup_templates_dictionary = {}
|
||||||
|
_script_setup_use_script_templates = true
|
||||||
|
_use_favorites_root_selection = false
|
||||||
|
shortcuts = [{
|
||||||
|
"name": "spatial_editor/viewport_zoom_modifier_1",
|
||||||
|
"shortcuts": [SubResource("InputEventKey_ly3hx")]
|
||||||
|
}, {
|
||||||
|
"name": "spatial_editor/viewport_zoom_modifier_2",
|
||||||
|
"shortcuts": []
|
||||||
|
}]
|
||||||
1
.config/godot/recent_dirs
Normal file
1
.config/godot/recent_dirs
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
/mnt/data/GodotProjects
|
||||||
41
.config/godot/text_editor_themes/dracula.tet
Normal file
41
.config/godot/text_editor_themes/dracula.tet
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
[color_theme]
|
||||||
|
|
||||||
|
background_color="#282a36ff"
|
||||||
|
completion_background_color="#2c2a32ff"
|
||||||
|
completion_selected_color="#44475aff" ; updated to proper selection highlight
|
||||||
|
completion_existing_color="#44475aff" ; aligned with selection background
|
||||||
|
completion_scroll_color="#6272a4ff" ; Dracula doesn't have pure white; chose 'Comment'
|
||||||
|
completion_font_color="#f8f8f2ff" ; corrected to Dracula 'Foreground'
|
||||||
|
caret_color="#f8f8f2ff" ; Dracula's 'Foreground'
|
||||||
|
caret_background_color="#282a36ff" ; match editor background
|
||||||
|
line_number_color="#6272a4ff"
|
||||||
|
text_color="#f8f8f2ff"
|
||||||
|
text_selected_color="#f8f8f2ff"
|
||||||
|
keyword_color="#ff79c6ff"
|
||||||
|
base_type_color="#50fa7bff"
|
||||||
|
engine_type_color="#8be9fdff"
|
||||||
|
function_color="#8be9fdff"
|
||||||
|
member_variable_color="#f8f8f2ff"
|
||||||
|
comment_color="#6272a4ff"
|
||||||
|
string_color="#f1fa8cff"
|
||||||
|
number_color="#bd93f9ff"
|
||||||
|
symbol_color="#f8f8f2ff"
|
||||||
|
selection_color="#44475aff"
|
||||||
|
brace_mismatch_color="#ff5555ff" ; corrected to Dracula 'Red'
|
||||||
|
current_line_color="#44475aff" ; softened to match selection background
|
||||||
|
line_length_guideline_color="#44475aff" ; unified with 'current_line_color'
|
||||||
|
mark_color="#ff55554d" ; reused Dracula 'Pink'
|
||||||
|
breakpoint_color="#ffb86cff" ; changed to Dracula 'Orange'
|
||||||
|
code_folding_color="#6272a4ff" ; reused 'Comment'
|
||||||
|
word_highlighted_color="#44475aff"
|
||||||
|
search_result_color="#44475aff"
|
||||||
|
search_result_border_color="#282a36ff"
|
||||||
|
gdscript/function_definition_color="#50fa7bff"
|
||||||
|
control_flow_keyword_color="#FF79C6"
|
||||||
|
user_type_color="#8BE9FD"
|
||||||
|
gdscript/annotation_color="#FFB86C"
|
||||||
|
gdscript/node_reference_color="#50FA7B"
|
||||||
|
comment_markers/critical_color="#FF5555"
|
||||||
|
comment_markers/warning_color="#F1FA8C"
|
||||||
|
comment_markers/notice_color="#50FA7B"
|
||||||
|
gdscript/global_function_color="##BD93F9"
|
||||||
2
.config/gtk-3.0/bookmarks
Normal file
2
.config/gtk-3.0/bookmarks
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
file:///mnt/games games
|
||||||
|
file:///mnt/data data
|
||||||
17
.config/gtk-3.0/settings.ini
Normal file
17
.config/gtk-3.0/settings.ini
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
[Settings]
|
||||||
|
gtk-theme-name=Dracula
|
||||||
|
gtk-icon-theme-name=Dracula
|
||||||
|
gtk-font-name=Adwaita Sans 11
|
||||||
|
gtk-cursor-theme-name=Dracula
|
||||||
|
gtk-cursor-theme-size=24
|
||||||
|
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
||||||
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||||
|
gtk-button-images=0
|
||||||
|
gtk-menu-images=0
|
||||||
|
gtk-enable-event-sounds=1
|
||||||
|
gtk-enable-input-feedback-sounds=0
|
||||||
|
gtk-xft-antialias=1
|
||||||
|
gtk-xft-hinting=1
|
||||||
|
gtk-xft-hintstyle=hintslight
|
||||||
|
gtk-xft-rgba=rgb
|
||||||
|
gtk-application-prefer-dark-theme=0
|
||||||
1
.config/gtk-4.0/assets
Symbolic link
1
.config/gtk-4.0/assets
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
/usr/share/themes/Dracula/gtk-4.0/assets
|
||||||
1
.config/gtk-4.0/gtk-dark.css
Symbolic link
1
.config/gtk-4.0/gtk-dark.css
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
/usr/share/themes/Dracula/gtk-4.0/gtk-dark.css
|
||||||
1
.config/gtk-4.0/gtk.css
Symbolic link
1
.config/gtk-4.0/gtk.css
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
/usr/share/themes/Dracula/gtk-4.0/gtk.css
|
||||||
7
.config/gtk-4.0/settings.ini
Normal file
7
.config/gtk-4.0/settings.ini
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
[Settings]
|
||||||
|
gtk-theme-name=Dracula
|
||||||
|
gtk-icon-theme-name=Dracula
|
||||||
|
gtk-font-name=Adwaita Sans 11
|
||||||
|
gtk-cursor-theme-name=Dracula
|
||||||
|
gtk-cursor-theme-size=24
|
||||||
|
gtk-application-prefer-dark-theme=0
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
source = ~/.config/hypr/config/defaults.conf
|
source = ~/.config/hypr/config/defaults.conf
|
||||||
|
|
||||||
exec-once = xrandr --output HDMI-A-1 --primary
|
# exec-once = xrandr --output HDMI-A-1 --primary
|
||||||
exec-once=hyprctl setcursor Dracula 24
|
exec-once=hyprctl setcursor Dracula 24
|
||||||
# exec-once = hyprctl dispatch workspace 1
|
# exec-once = hyprctl dispatch workspace 1
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
# General
|
# General
|
||||||
$webbrowser = firefox
|
$webbrowser = firefox
|
||||||
$filemanager = nautilus
|
$filemanager = kitty -e env EDITOR="/usr/local/bin/zed_sudo_wrapper" VISUAL="zeditor --wait" SUDO_EDITOR="zeditor --wait" yazi
|
||||||
$applauncher = rofi -show drun
|
$applauncher = rofi -show drun
|
||||||
$terminal = kitty
|
$terminal = kitty
|
||||||
$idlehandler = hypridle
|
$idlehandler = hypridle
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,9 @@
|
||||||
|
|
||||||
# Windows Rules https://wiki.hyprland.org/Configuring/Window-Rules/ #
|
# Windows Rules https://wiki.hyprland.org/Configuring/Window-Rules/ #
|
||||||
|
|
||||||
windowrulev2 = fullscreen, initialTitle:^(ARC Raiders)$, monitor:1
|
windowrulev2 = monitor DP-1, class:(dev.zed.Zed)
|
||||||
windowrule = monitor 1, initialTitle:^(Deadlock)$
|
windowrulev2 = monitor HDMI-A-1, fullscreen, class:(steam_app_1808500)
|
||||||
|
windowrule = monitor HDMI-A-1, class:(steam_app_1422450)
|
||||||
|
|
||||||
# Float Necessary Windows
|
# Float Necessary Windows
|
||||||
windowrule = tile, initialTitle:^(Godot)$
|
windowrule = tile, initialTitle:^(Godot)$
|
||||||
|
|
|
||||||
19
.config/kitty/diff.conf
Normal file
19
.config/kitty/diff.conf
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
foreground #f8f8f2
|
||||||
|
background #282a36
|
||||||
|
title_fg #f8f8f2
|
||||||
|
title_bg #282a36
|
||||||
|
margin_bg #6272a4
|
||||||
|
margin_fg #44475a
|
||||||
|
removed_bg #ff5555
|
||||||
|
highlight_removed_bg #ff5555
|
||||||
|
removed_margin_bg #ff5555
|
||||||
|
added_bg #50fa7b
|
||||||
|
highlight_added_bg #50fa7b
|
||||||
|
added_margin_bg #50fa7b
|
||||||
|
filler_bg #44475a
|
||||||
|
hunk_margin_bg #44475a
|
||||||
|
hunk_bg #bd93f9
|
||||||
|
search_bg #8be9fd
|
||||||
|
search_fg #282a36
|
||||||
|
select_bg #f1fa8c
|
||||||
|
select_fg #282a36
|
||||||
66
.config/kitty/dracula.conf
Normal file
66
.config/kitty/dracula.conf
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
# https://draculatheme.com/kitty
|
||||||
|
#
|
||||||
|
# Installation instructions:
|
||||||
|
#
|
||||||
|
# cp dracula.conf ~/.config/kitty/
|
||||||
|
# echo "include dracula.conf" >> ~/.config/kitty/kitty.conf
|
||||||
|
#
|
||||||
|
# Then reload kitty for the config to take affect.
|
||||||
|
# Alternatively copy paste below directly into kitty.conf
|
||||||
|
|
||||||
|
foreground #f8f8f2
|
||||||
|
background #282a36
|
||||||
|
selection_foreground #ffffff
|
||||||
|
selection_background #44475a
|
||||||
|
|
||||||
|
url_color #8be9fd
|
||||||
|
|
||||||
|
# black
|
||||||
|
color0 #21222c
|
||||||
|
color8 #6272a4
|
||||||
|
|
||||||
|
# red
|
||||||
|
color1 #ff5555
|
||||||
|
color9 #ff6e6e
|
||||||
|
|
||||||
|
# green
|
||||||
|
color2 #50fa7b
|
||||||
|
color10 #69ff94
|
||||||
|
|
||||||
|
# yellow
|
||||||
|
color3 #f1fa8c
|
||||||
|
color11 #ffffa5
|
||||||
|
|
||||||
|
# blue
|
||||||
|
color4 #bd93f9
|
||||||
|
color12 #d6acff
|
||||||
|
|
||||||
|
# magenta
|
||||||
|
color5 #ff79c6
|
||||||
|
color13 #ff92df
|
||||||
|
|
||||||
|
# cyan
|
||||||
|
color6 #8be9fd
|
||||||
|
color14 #a4ffff
|
||||||
|
|
||||||
|
# white
|
||||||
|
color7 #f8f8f2
|
||||||
|
color15 #ffffff
|
||||||
|
|
||||||
|
# Cursor colors
|
||||||
|
cursor #f8f8f2
|
||||||
|
cursor_text_color background
|
||||||
|
|
||||||
|
# Tab bar colors
|
||||||
|
active_tab_foreground #282a36
|
||||||
|
active_tab_background #f8f8f2
|
||||||
|
inactive_tab_foreground #282a36
|
||||||
|
inactive_tab_background #6272a4
|
||||||
|
|
||||||
|
# Marks
|
||||||
|
mark1_foreground #282a36
|
||||||
|
mark1_background #ff5555
|
||||||
|
|
||||||
|
# Splits/Windows
|
||||||
|
active_border_color #f8f8f2
|
||||||
|
inactive_border_color #6272a4
|
||||||
10
.config/kitty/kitty.conf
Normal file
10
.config/kitty/kitty.conf
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
include dracula.conf
|
||||||
|
|
||||||
|
confirm_os_window_close 0
|
||||||
|
|
||||||
|
# BEGIN_KITTY_FONTS
|
||||||
|
font_family family="JetBrainsMono Nerd Font"
|
||||||
|
bold_font auto
|
||||||
|
italic_font auto
|
||||||
|
bold_italic_font auto
|
||||||
|
# END_KITTY_FONTS
|
||||||
1
.config/kitty/kitty.conf.bak
Normal file
1
.config/kitty/kitty.conf.bak
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
include dracula.conf
|
||||||
14
.config/mako/config
Normal file
14
.config/mako/config
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
width=350
|
||||||
|
height=110
|
||||||
|
margin=5
|
||||||
|
padding=10
|
||||||
|
border-size=2
|
||||||
|
border-radius=4
|
||||||
|
icons=1
|
||||||
|
max-icon-size=64
|
||||||
|
default-timeout=5000
|
||||||
|
text-alignment=left
|
||||||
|
|
||||||
|
background-color=#282a36
|
||||||
|
text-color=#BD93F9
|
||||||
|
border-color=#44475A
|
||||||
7
.config/nwg-look/config
Normal file
7
.config/nwg-look/config
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"export-settings-ini": true,
|
||||||
|
"export-gtkrc-20": true,
|
||||||
|
"export-index-theme": true,
|
||||||
|
"export-xsettingsd": true,
|
||||||
|
"export-gtk4-symlinks": true
|
||||||
|
}
|
||||||
2
.config/rofi/config.rasi
Normal file
2
.config/rofi/config.rasi
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
@theme "/usr/share/rofi/themes/config.rasi"
|
||||||
11
.config/rofi/wallpaper_selector.sh
Executable file
11
.config/rofi/wallpaper_selector.sh
Executable file
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
WALLPAPER_DIR="/mnt/data/Wallpapers"
|
||||||
|
|
||||||
|
WALLPAPERS=$(find "$WALLPAPER_DIR" -type f \( -iname "*.jpg" -o -iname "*.png" -o -iname "*.jpeg" \))
|
||||||
|
|
||||||
|
SELECTED_WALLPAPER=$(echo "$WALLPAPERS" | rofi -dmenu -i -p "Select Wallpaper:")
|
||||||
|
|
||||||
|
if [ -n "$SELECTED_WALLPAPER" ]; then
|
||||||
|
fish -c "swww_set_wallpaper '$SELECTED_WALLPAPER'"
|
||||||
|
fi
|
||||||
58
.config/spotify-player/app.toml
Normal file
58
.config/spotify-player/app.toml
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
theme = "dracula"
|
||||||
|
client_id = "a5e67511fd004d1d96bc0d1cfc8c29fc"
|
||||||
|
client_port = 8080
|
||||||
|
login_redirect_uri = "http://127.0.0.1:8989/login"
|
||||||
|
playback_format = """
|
||||||
|
{status} {track} • {artists} {liked}
|
||||||
|
{album} • {genres}
|
||||||
|
{metadata}"""
|
||||||
|
playback_metadata_fields = [
|
||||||
|
"repeat",
|
||||||
|
"shuffle",
|
||||||
|
"volume",
|
||||||
|
"device",
|
||||||
|
]
|
||||||
|
notify_timeout_in_secs = 0
|
||||||
|
tracks_playback_limit = 50
|
||||||
|
app_refresh_duration_in_ms = 32
|
||||||
|
playback_refresh_duration_in_ms = 0
|
||||||
|
page_size_in_rows = 20
|
||||||
|
play_icon = "▶"
|
||||||
|
pause_icon = "▌▌"
|
||||||
|
liked_icon = "♥"
|
||||||
|
border_type = "Plain"
|
||||||
|
progress_bar_type = "Rectangle"
|
||||||
|
progress_bar_position = "Bottom"
|
||||||
|
genre_num = 2
|
||||||
|
cover_img_length = 9
|
||||||
|
cover_img_width = 5
|
||||||
|
cover_img_scale = 1.0
|
||||||
|
enable_media_control = true
|
||||||
|
enable_streaming = "Always"
|
||||||
|
enable_notify = true
|
||||||
|
enable_cover_image_cache = true
|
||||||
|
default_device = "cachyos-player"
|
||||||
|
notify_streaming_only = false
|
||||||
|
seek_duration_secs = 5
|
||||||
|
sort_artist_albums_by_type = false
|
||||||
|
|
||||||
|
[notify_format]
|
||||||
|
summary = "{track} • {artists}"
|
||||||
|
body = "{album}"
|
||||||
|
|
||||||
|
[layout]
|
||||||
|
playback_window_position = "Top"
|
||||||
|
playback_window_height = 6
|
||||||
|
|
||||||
|
[layout.library]
|
||||||
|
playlist_percent = 40
|
||||||
|
album_percent = 40
|
||||||
|
|
||||||
|
[device]
|
||||||
|
name = "cachyos-player"
|
||||||
|
device_type = "speaker"
|
||||||
|
volume = 70
|
||||||
|
bitrate = 320
|
||||||
|
audio_cache = false
|
||||||
|
normalization = false
|
||||||
|
autoplay = false
|
||||||
34
.config/spotify-player/keymap.toml
Normal file
34
.config/spotify-player/keymap.toml
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[[keymaps]]
|
||||||
|
command = "NextTrack"
|
||||||
|
key_sequence = "g n"
|
||||||
|
[[keymaps]]
|
||||||
|
command = "PreviousTrack"
|
||||||
|
key_sequence = "g p"
|
||||||
|
[[keymaps]]
|
||||||
|
command = "Search"
|
||||||
|
key_sequence = "C-c C-x /"
|
||||||
|
[[keymaps]]
|
||||||
|
command = "ResumePause"
|
||||||
|
key_sequence = "M-enter"
|
||||||
|
[[keymaps]]
|
||||||
|
command = "None"
|
||||||
|
key_sequence = "q"
|
||||||
|
[[keymaps]]
|
||||||
|
command = { VolumeChange = { offset = 1 } }
|
||||||
|
key_sequence = "-"
|
||||||
|
[[keymaps]]
|
||||||
|
command = { SeekForward = { duration = 10 } }
|
||||||
|
key_sequence = "E"
|
||||||
|
[[keymaps]]
|
||||||
|
command = { SeekBackward = { } }
|
||||||
|
key_sequence = "Q"
|
||||||
|
[[actions]]
|
||||||
|
action = "GoToArtist"
|
||||||
|
key_sequence = "g A"
|
||||||
|
[[actions]]
|
||||||
|
action = "GoToAlbum"
|
||||||
|
key_sequence = "g B"
|
||||||
|
target = "PlayingTrack"
|
||||||
|
[[actions]]
|
||||||
|
action="ToggleLiked"
|
||||||
|
key_sequence="C-l"
|
||||||
11
.config/xdg-desktop-portal-termfilechooser/config
Executable file
11
.config/xdg-desktop-portal-termfilechooser/config
Executable file
|
|
@ -0,0 +1,11 @@
|
||||||
|
[filechooser]
|
||||||
|
cmd=yazi-wrapper.sh
|
||||||
|
default_dir=$HOME
|
||||||
|
; Uncomment to skip creating destination save files with instructions in them
|
||||||
|
; create_help_file=0
|
||||||
|
; Uncomment and edit the line below to change the terminal emulator command
|
||||||
|
env=TERMCMD=kitty -e
|
||||||
|
|
||||||
|
; Mode must be one of 'suggested', 'default', or 'last'.
|
||||||
|
open_mode=suggested
|
||||||
|
save_mode=suggested
|
||||||
43
.config/xdg-desktop-portal-termfilechooser/lf-wrapper.sh
Executable file
43
.config/xdg-desktop-portal-termfilechooser/lf-wrapper.sh
Executable file
|
|
@ -0,0 +1,43 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
# This wrapper script is invoked by xdg-desktop-portal-termfilechooser.
|
||||||
|
#
|
||||||
|
# For more information about input/output arguments read `xdg-desktop-portal-termfilechooser(5)`
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$6" -ge 4 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
|
multiple="$1"
|
||||||
|
directory="$2"
|
||||||
|
save="$3"
|
||||||
|
path="$4"
|
||||||
|
out="$5"
|
||||||
|
|
||||||
|
cmd="lf"
|
||||||
|
termcmd="${TERMCMD:-kitty --title 'termfilechooser'}"
|
||||||
|
|
||||||
|
if [ "$save" = "1" ]; then
|
||||||
|
# save a file
|
||||||
|
set -- -selection-path "$out" "$path"
|
||||||
|
elif [ "$directory" = "1" ]; then
|
||||||
|
# upload files from a directory
|
||||||
|
set -- -last-dir-path "$out" "$path"
|
||||||
|
elif [ "$multiple" = "1" ]; then
|
||||||
|
# upload multiple files
|
||||||
|
set -- -selection-path "$out" "$path"
|
||||||
|
else
|
||||||
|
# upload only 1 file
|
||||||
|
set -- -selection-path "$out" "$path"
|
||||||
|
fi
|
||||||
|
|
||||||
|
command="$termcmd $cmd"
|
||||||
|
for arg in "$@"; do
|
||||||
|
# escape double quotes
|
||||||
|
escaped=$(printf "%s" "$arg" | sed 's/"/\\"/g')
|
||||||
|
# escape special
|
||||||
|
command="$command \"$escaped\""
|
||||||
|
done
|
||||||
|
|
||||||
|
sh -c "$command"
|
||||||
54
.config/xdg-desktop-portal-termfilechooser/nnn-wrapper.sh
Executable file
54
.config/xdg-desktop-portal-termfilechooser/nnn-wrapper.sh
Executable file
|
|
@ -0,0 +1,54 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
# This wrapper script is invoked by xdg-desktop-portal-termfilechooser.
|
||||||
|
#
|
||||||
|
# For more information about input/output arguments read `xdg-desktop-portal-termfilechooser(5)`
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$6" -ge 4 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
|
multiple="$1"
|
||||||
|
directory="$2"
|
||||||
|
save="$3"
|
||||||
|
path="$4"
|
||||||
|
out="$5"
|
||||||
|
|
||||||
|
cmd="nnn"
|
||||||
|
termcmd="${TERMCMD:-kitty --title 'termfilechooser'}"
|
||||||
|
|
||||||
|
if [ "$save" = "1" ]; then
|
||||||
|
# save a file
|
||||||
|
set -- -p "$out" "$path"
|
||||||
|
elif [ "$directory" = "1" ]; then
|
||||||
|
# upload files from a directory
|
||||||
|
set -- -p "$out" "$path"
|
||||||
|
elif [ "$multiple" = "1" ]; then
|
||||||
|
# upload multiple files
|
||||||
|
set -- -p "$out" "$path"
|
||||||
|
else
|
||||||
|
# upload only 1 file
|
||||||
|
set -- -p "$out" "$path"
|
||||||
|
fi
|
||||||
|
|
||||||
|
command="$termcmd $cmd"
|
||||||
|
for arg in "$@"; do
|
||||||
|
# escape double quotes
|
||||||
|
escaped=$(printf "%s" "$arg" | sed 's/"/\\"/g')
|
||||||
|
# escape special
|
||||||
|
command="$command \"$escaped\""
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$directory" = "1" ]; then
|
||||||
|
sh -c "env NNN_TMPFILE=\"$out\" $command"
|
||||||
|
else
|
||||||
|
sh -c "$command"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$directory" = "1" ] && [ -s "$out" ]; then
|
||||||
|
# select on quit; file data will be `cd '/dir/path'`
|
||||||
|
if [ "$(cut -c -2 "$out")" = "cd" ]; then
|
||||||
|
sed -i "s/^cd '\(.*\)'/\1/" "$out"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
43
.config/xdg-desktop-portal-termfilechooser/ranger-wrapper.sh
Executable file
43
.config/xdg-desktop-portal-termfilechooser/ranger-wrapper.sh
Executable file
|
|
@ -0,0 +1,43 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
# This wrapper script is invoked by xdg-desktop-portal-termfilechooser.
|
||||||
|
#
|
||||||
|
# For more information about input/output arguments read `xdg-desktop-portal-termfilechooser(5)`
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$6" -ge 4 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
|
multiple="$1"
|
||||||
|
directory="$2"
|
||||||
|
save="$3"
|
||||||
|
path="$4"
|
||||||
|
out="$5"
|
||||||
|
|
||||||
|
cmd="ranger"
|
||||||
|
termcmd="${TERMCMD:-kitty --title 'termfilechooser'}"
|
||||||
|
|
||||||
|
if [ "$save" = "1" ]; then
|
||||||
|
# save a file
|
||||||
|
set -- --choosefile="$out" --cmd="echo Select save path (see tutorial in preview pane; try pressing zv or zp if no preview)" --selectfile="$path"
|
||||||
|
elif [ "$directory" = "1" ]; then
|
||||||
|
# upload files from a directory
|
||||||
|
set -- --choosedir="$out" --show-only-dirs --cmd="echo Select directory (quit in dir to select it)" "$path"
|
||||||
|
elif [ "$multiple" = "1" ]; then
|
||||||
|
# upload multiple files
|
||||||
|
set -- --choosefiles="$out" --cmd="echo Select file(s) (open file to select it; <Space> to select multiple)" "$path"
|
||||||
|
else
|
||||||
|
# upload only 1 file
|
||||||
|
set -- --choosefile="$out" --cmd="echo Select file (open file to select it)" "$path"
|
||||||
|
fi
|
||||||
|
|
||||||
|
command="$termcmd $cmd"
|
||||||
|
for arg in "$@"; do
|
||||||
|
# escape double quotes
|
||||||
|
escaped=$(printf "%s" "$arg" | sed 's/"/\\"/g')
|
||||||
|
# escape special
|
||||||
|
command="$command \"$escaped\""
|
||||||
|
done
|
||||||
|
|
||||||
|
sh -c "$command"
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Portal service (terminal file chooser implementation)
|
||||||
|
PartOf=graphical-session.target
|
||||||
|
After=graphical-session.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=dbus
|
||||||
|
BusName=org.freedesktop.impl.portal.desktop.termfilechooser
|
||||||
|
ExecStart=@libexecdir@/xdg-desktop-portal-termfilechooser
|
||||||
|
Restart=on-failure
|
||||||
|
Slice=session.slice
|
||||||
45
.config/xdg-desktop-portal-termfilechooser/vifm-wrapper.sh
Executable file
45
.config/xdg-desktop-portal-termfilechooser/vifm-wrapper.sh
Executable file
|
|
@ -0,0 +1,45 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
# This wrapper script is invoked by xdg-desktop-portal-termfilechooser.
|
||||||
|
#
|
||||||
|
# For more information about input/output arguments read `xdg-desktop-portal-termfilechooser(5)`
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$6" -ge 4 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
|
multiple="$1"
|
||||||
|
directory="$2"
|
||||||
|
save="$3"
|
||||||
|
path="$4"
|
||||||
|
out="$5"
|
||||||
|
|
||||||
|
cmd="vifm"
|
||||||
|
termcmd="${TERMCMD:-kitty --title 'termfilechooser'}"
|
||||||
|
|
||||||
|
if [ "$save" = "1" ]; then
|
||||||
|
# save a file
|
||||||
|
set -- --choose-files "$out" -c "only" -c "map <esc> :cquit<cr>" \
|
||||||
|
-c "set statusline='Save file (press <Enter> to select or <Esc> to cancel)%NCursorfile is the recommended choice, you can rename/move it%NIf you select another file, it will be overwritten by the save'" \
|
||||||
|
--select "$path" >"$path"
|
||||||
|
elif [ "$directory" = "1" ]; then
|
||||||
|
# upload files from a directory
|
||||||
|
set -- --choose-files "$out" --choose-dir "$out" -c "only" -c "map <esc> :cquit<cr>" -c "set statusline='Select directory (:quit in dir or select and open it, press <Esc> to cancel)'"
|
||||||
|
elif [ "$multiple" = "1" ]; then
|
||||||
|
# upload multiple files
|
||||||
|
set -- --choose-files "$out" -c "only" -c "map <esc> :cquit<cr>" -c "set statusline='Select file(s) (press <t> key to select multiple, press <Esc> to cancel)'"
|
||||||
|
else
|
||||||
|
# upload only 1 file
|
||||||
|
set -- --choose-files "$out" -c "only" -c "map <esc> :cquit<cr>" -c "set statusline='Select file (open file to select it, press <Esc> to cancel)'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
command="$termcmd $cmd"
|
||||||
|
for arg in "$@"; do
|
||||||
|
# escape double quotes
|
||||||
|
escaped=$(printf "%s" "$arg" | sed 's/"/\\"/g')
|
||||||
|
# escape special
|
||||||
|
command="$command \"$escaped\""
|
||||||
|
done
|
||||||
|
|
||||||
|
sh -c "$command"
|
||||||
52
.config/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh
Executable file
52
.config/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh
Executable file
|
|
@ -0,0 +1,52 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
# This wrapper script is invoked by xdg-desktop-portal-termfilechooser.
|
||||||
|
#
|
||||||
|
# For more information about input/output arguments read `xdg-desktop-portal-termfilechooser(5)`
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$6" -ge 4 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
|
multiple="$1"
|
||||||
|
directory="$2"
|
||||||
|
save="$3"
|
||||||
|
path="$4"
|
||||||
|
out="$5"
|
||||||
|
|
||||||
|
cmd="yazi"
|
||||||
|
termcmd="${TERMCMD:-kitty --title 'termfilechooser'}"
|
||||||
|
|
||||||
|
if [ "$save" = "1" ]; then
|
||||||
|
# save a file
|
||||||
|
set -- --chooser-file="$out" "$path"
|
||||||
|
elif [ "$directory" = "1" ]; then
|
||||||
|
# upload files from a directory
|
||||||
|
set -- --chooser-file="$out" --cwd-file="$out"".1" "$path"
|
||||||
|
elif [ "$multiple" = "1" ]; then
|
||||||
|
# upload multiple files
|
||||||
|
set -- --chooser-file="$out" "$path"
|
||||||
|
else
|
||||||
|
# upload only 1 file
|
||||||
|
set -- --chooser-file="$out" "$path"
|
||||||
|
fi
|
||||||
|
|
||||||
|
command="$termcmd $cmd"
|
||||||
|
for arg in "$@"; do
|
||||||
|
# escape double quotes
|
||||||
|
escaped=$(printf "%s" "$arg" | sed 's/"/\\"/g')
|
||||||
|
# escape special
|
||||||
|
command="$command \"$escaped\""
|
||||||
|
done
|
||||||
|
|
||||||
|
sh -c "$command"
|
||||||
|
|
||||||
|
if [ "$directory" = "1" ]; then
|
||||||
|
if [ ! -s "$out" ] && [ -s "$out"".1" ]; then
|
||||||
|
cat "$out"".1" > "$out"
|
||||||
|
rm "$out"".1"
|
||||||
|
else
|
||||||
|
rm "$out"".1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
3
.config/xdg-desktop-portal/portals.conf
Normal file
3
.config/xdg-desktop-portal/portals.conf
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
[preferred]
|
||||||
|
default=hyprland;gtk;
|
||||||
|
org.freedesktop.impl.portal.FileChooser=termfilechooser;
|
||||||
9
.config/xsettingsd/xsettingsd.conf
Normal file
9
.config/xsettingsd/xsettingsd.conf
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
Net/ThemeName "Dracula"
|
||||||
|
Net/IconThemeName "Dracula"
|
||||||
|
Gtk/CursorThemeName "Dracula"
|
||||||
|
Net/EnableEventSounds 1
|
||||||
|
EnableInputFeedbackSounds 0
|
||||||
|
Xft/Antialias 1
|
||||||
|
Xft/Hinting 1
|
||||||
|
Xft/HintStyle "hintslight"
|
||||||
|
Xft/RGBA "rgb"
|
||||||
318
.config/yazi/flavors/dracula.yazi/flavor.toml
Normal file
318
.config/yazi/flavors/dracula.yazi/flavor.toml
Normal file
|
|
@ -0,0 +1,318 @@
|
||||||
|
# Theme Configuration
|
||||||
|
[theme]
|
||||||
|
# Theme metadata
|
||||||
|
name = "Dracula Pro"
|
||||||
|
author = "Enhanced Dracula Theme"
|
||||||
|
version = "2.0.0"
|
||||||
|
description = "A sophisticated dark theme based on Dracula color scheme"
|
||||||
|
|
||||||
|
# Color palette definition
|
||||||
|
[theme.colors]
|
||||||
|
background = "#282a36"
|
||||||
|
current_line = "#44475a"
|
||||||
|
foreground = "#f8f8f2"
|
||||||
|
comment = "#6272a4"
|
||||||
|
purple = "#bd93f9"
|
||||||
|
green = "#50fa7b"
|
||||||
|
orange = "#ffb86c"
|
||||||
|
red = "#ff5555"
|
||||||
|
pink = "#ff79c6"
|
||||||
|
cyan = "#8be9fd"
|
||||||
|
yellow = "#f1fa8c"
|
||||||
|
|
||||||
|
# Animation settings
|
||||||
|
[theme.animation]
|
||||||
|
frames_per_second = 60
|
||||||
|
duration = 0.2
|
||||||
|
easing = "easeInOutCubic"
|
||||||
|
|
||||||
|
# Manager
|
||||||
|
[manager]
|
||||||
|
# Enhanced preview options
|
||||||
|
preview = { tab_size = 2, max_width = 100, max_height = 50, cache_size = 50, scroll_offset = 5 }
|
||||||
|
preview_ratios = [1, 4, 4]
|
||||||
|
preview_shown = true
|
||||||
|
preview_service = { image = "ueberzug", video = "ffmpegthumbnailer", pdf = "pdftoppm" }
|
||||||
|
|
||||||
|
# Sophisticated hover effects
|
||||||
|
hovered = { fg = "#f8f8f2", bg = "#44475a", italic = true }
|
||||||
|
|
||||||
|
# Enhanced markers with animations
|
||||||
|
marker_copied = { fg = "#282a36", bg = "#50fa7b" }
|
||||||
|
|
||||||
|
# Dynamic loading indicators
|
||||||
|
loading_indicator_frames = "⣾⣽⣻⢿⡿⣟⣯⣷"
|
||||||
|
loading_style = { fg = "#bd93f9", bold = true }
|
||||||
|
|
||||||
|
# Enhanced folder icons
|
||||||
|
folder_icons = { default = " ", open = " ", empty = " ", empty_open = " ", symlink = " ", symlink_open = " ", error = " " }
|
||||||
|
|
||||||
|
file_size_units = ["B", "KB", "MB", "GB", "TB", "PB", "EB"]
|
||||||
|
|
||||||
|
# Status
|
||||||
|
[status]
|
||||||
|
# Dynamic status bar
|
||||||
|
refresh_rate = 1000
|
||||||
|
separator_open = ""
|
||||||
|
separator_close = ""
|
||||||
|
|
||||||
|
# Progress bar styling
|
||||||
|
progress_bar_style = { fg = "#bd93f9", bg = "#44475a" }
|
||||||
|
|
||||||
|
# Enhanced modes
|
||||||
|
mode_normal = { fg = "#282a36", bg = "#bd93f9", bold = true }
|
||||||
|
|
||||||
|
# Input
|
||||||
|
[input]
|
||||||
|
# Advanced input styling
|
||||||
|
cursor_style = { fg = "#f8f8f2", bg = "#6272a4", blink = true, blink_interval = 500 }
|
||||||
|
|
||||||
|
# History features
|
||||||
|
history_size = 100
|
||||||
|
history_unique = true
|
||||||
|
|
||||||
|
# Completion styling
|
||||||
|
completion_style = { selected_bg = "#44475a", selected_fg = "#f8f8f2", selected_bold = true, selected_italic = true }
|
||||||
|
|
||||||
|
# Notify
|
||||||
|
[notify]
|
||||||
|
# Enhanced notification system
|
||||||
|
position = "top-right"
|
||||||
|
timeout = 5000
|
||||||
|
max_width = 400
|
||||||
|
max_height = 200
|
||||||
|
margin = 10
|
||||||
|
padding = 8
|
||||||
|
|
||||||
|
[notify.levels]
|
||||||
|
info = { fg = "#50fa7b", bg = "#282a36", icon = " ", timeout = 3000 }
|
||||||
|
warn = { fg = "#f1fa8c", bg = "#282a36", icon = " ", timeout = 5000 }
|
||||||
|
error = { fg = "#ff5555", bg = "#282a36", icon = " ", timeout = 7000 }
|
||||||
|
debug = { fg = "#6272a4", bg = "#282a36", icon = " ", timeout = 2000 }
|
||||||
|
|
||||||
|
[notify.animation]
|
||||||
|
enabled = true
|
||||||
|
duration = 200
|
||||||
|
slide_in = "right"
|
||||||
|
fade_out = true
|
||||||
|
|
||||||
|
[notify.border]
|
||||||
|
fg = "#bd93f9"
|
||||||
|
bg = "#282a36"
|
||||||
|
style = "rounded"
|
||||||
|
|
||||||
|
[notify.overlay]
|
||||||
|
bg = "#282a36"
|
||||||
|
blend = 0.8
|
||||||
|
|
||||||
|
# File-specific styles
|
||||||
|
[filetype]
|
||||||
|
rules = [
|
||||||
|
# Development Environment
|
||||||
|
{ name = ".env*", fg = "#50fa7b", bold = true, prefix = " " },
|
||||||
|
{ name = ".git*", fg = "#ff5555", italic = true, prefix = " " },
|
||||||
|
{ name = ".docker*", fg = "#8be9fd", bold = true, prefix = " " },
|
||||||
|
|
||||||
|
# Configuration Files
|
||||||
|
{ name = "*.{json,yaml,yml,toml,xml}", fg = "#8be9fd", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{ini,conf,cfg}", fg = "#6272a4", italic = true, prefix = " " },
|
||||||
|
|
||||||
|
# Web Development
|
||||||
|
{ name = "*.{html,htm}", fg = "#ff79c6", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{css,scss,sass,less}", fg = "#bd93f9", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{jsx,tsx}", fg = "#8be9fd", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{js,ts}", fg = "#f1fa8c", italic = true, prefix = " " },
|
||||||
|
{ name = "*.vue", fg = "#50fa7b", italic = true, prefix = " " },
|
||||||
|
{ name = "*.svelte", fg = "#ff5555", italic = true, prefix = " " },
|
||||||
|
|
||||||
|
# Backend Development
|
||||||
|
{ name = "*.{py,pyc}", fg = "#50fa7b", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{rb,erb}", fg = "#ff5555", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{php,phar}", fg = "#bd93f9", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{java,jar}", fg = "#ff5555", italic = true, prefix = " " },
|
||||||
|
{ name = "*.go", fg = "#8be9fd", italic = true, prefix = " " },
|
||||||
|
{ name = "*.rs", fg = "#ff7043", italic = true, prefix = " " },
|
||||||
|
|
||||||
|
# System Programming
|
||||||
|
{ name = "*.{c,h}", fg = "#bd93f9", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{cpp,hpp}", fg = "#ff79c6", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{asm,s}", fg = "#ff5555", italic = true, prefix = " " },
|
||||||
|
|
||||||
|
# Build Systems
|
||||||
|
{ name = "*Makefile", fg = "#ff79c6", bold = true, prefix = " " },
|
||||||
|
{ name = "*CMakeLists.txt", fg = "#ff79c6", bold = true, prefix = " " },
|
||||||
|
{ name = "*.gradle", fg = "#8be9fd", bold = true, prefix = " " },
|
||||||
|
|
||||||
|
# Package Managers
|
||||||
|
{ name = "package.json", fg = "#ff5555", bold = true, prefix = " " },
|
||||||
|
{ name = "package-lock.json", fg = "#ff5555", italic = true, prefix = " " },
|
||||||
|
{ name = "composer.json", fg = "#ff79c6", bold = true, prefix = " " },
|
||||||
|
{ name = "Cargo.toml", fg = "#ff7043", bold = true, prefix = " " },
|
||||||
|
|
||||||
|
# Documentation
|
||||||
|
{ name = "*.{md,mdx}", fg = "#f1fa8c", italic = true, prefix = " " },
|
||||||
|
{ name = "*.rst", fg = "#f1fa8c", italic = true, prefix = " " },
|
||||||
|
{ name = "*.pdf", fg = "#ff5555", bold = true, prefix = " " },
|
||||||
|
{ name = "LICENSE*", fg = "#50fa7b", bold = true, prefix = " " },
|
||||||
|
{ name = "README*", fg = "#50fa7b", bold = true, prefix = " " },
|
||||||
|
|
||||||
|
# Media with size categories
|
||||||
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 1MB", fg = "#8be9fd", prefix = " " },
|
||||||
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 10MB", fg = "#ffb86c", prefix = " " },
|
||||||
|
{ name = "*.{jpg,jpeg,png,gif}", size = "> 10MB", fg = "#ff5555", prefix = " " },
|
||||||
|
|
||||||
|
# Video files with duration indicator
|
||||||
|
{ name = "*.{mp4,mkv}", duration = "< 10:00", fg = "#bd93f9", prefix = " " },
|
||||||
|
{ name = "*.{mp4,mkv}", duration = "< 1:00:00", fg = "#ffb86c", prefix = " " },
|
||||||
|
{ name = "*.{mp4,mkv}", duration = "> 1:00:00", fg = "#ff5555", prefix = " " },
|
||||||
|
|
||||||
|
# Archives with compression ratio
|
||||||
|
{ name = "*.{zip,gz,tar}", ratio = "< 0.5", fg = "#50fa7b", prefix = " " },
|
||||||
|
{ name = "*.{zip,gz,tar}", ratio = "< 0.7", fg = "#f1fa8c", prefix = " " },
|
||||||
|
{ name = "*.{zip,gz,tar}", ratio = "> 0.7", fg = "#ff5555", prefix = " " },
|
||||||
|
|
||||||
|
# Special Directories
|
||||||
|
{ name = "node_modules", fg = "#6272a4", prefix = " " },
|
||||||
|
{ name = ".git", fg = "#ff5555", prefix = " " },
|
||||||
|
{ name = ".github", fg = "#bd93f9", prefix = " " },
|
||||||
|
{ name = "dist", fg = "#6272a4", prefix = " " },
|
||||||
|
{ name = "build", fg = "#6272a4", prefix = " " },
|
||||||
|
|
||||||
|
# Additional file types
|
||||||
|
# Audio files
|
||||||
|
{ name = "*.{mp3,flac,m4a,wav,ogg}", fg = "#bd93f9", italic = true, prefix = " " },
|
||||||
|
|
||||||
|
# Font files
|
||||||
|
{ name = "*.{ttf,otf,woff,woff2}", fg = "#ff79c6", italic = true, prefix = " " },
|
||||||
|
|
||||||
|
# Database files
|
||||||
|
{ name = "*.{sql,sqlite,db}", fg = "#8be9fd", italic = true, prefix = " " },
|
||||||
|
|
||||||
|
# Shell scripts
|
||||||
|
{ name = "*.{sh,bash,zsh,fish}", fg = "#50fa7b", italic = true, prefix = " " },
|
||||||
|
|
||||||
|
# Virtual environments
|
||||||
|
{ name = "venv", fg = "#6272a4", prefix = " " },
|
||||||
|
{ name = ".env", fg = "#50fa7b", prefix = " " },
|
||||||
|
|
||||||
|
# Container files
|
||||||
|
{ name = "*.dockerfile", fg = "#8be9fd", bold = true, prefix = " " },
|
||||||
|
{ name = "docker-compose*.{yml,yaml}", fg = "#8be9fd", bold = true, prefix = " " },
|
||||||
|
|
||||||
|
# Security files
|
||||||
|
{ name = "*.{pem,crt,ca,key}", fg = "#ff5555", bold = true, prefix = " " },
|
||||||
|
|
||||||
|
# Improved size-based rules for media
|
||||||
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 100KB", fg = "#8be9fd", prefix = " " },
|
||||||
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 1MB", fg = "#bd93f9", prefix = " " },
|
||||||
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 10MB", fg = "#ffb86c", prefix = " " },
|
||||||
|
{ name = "*.{jpg,jpeg,png,gif}", size = "> 10MB", fg = "#ff5555", prefix = " " },
|
||||||
|
|
||||||
|
# Default Fallbacks
|
||||||
|
{ name = "*", fg = "#f8f8f2" },
|
||||||
|
{ name = "*/", fg = "#bd93f9", bold = true, prefix = " " },
|
||||||
|
|
||||||
|
# Additional Development Files
|
||||||
|
{ name = "*.{proto}", fg = "#bd93f9", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{graphql,gql}", fg = "#ff79c6", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{tf,tfvars}", fg = "#8be9fd", italic = true, prefix = " " },
|
||||||
|
|
||||||
|
# Container and Cloud
|
||||||
|
{ name = "*.{yaml,yml}", pattern = "^k8s|^kubernetes", fg = "#8be9fd", bold = true, prefix = " " },
|
||||||
|
{ name = "*.{yaml,yml}", pattern = "^helm", fg = "#8be9fd", bold = true, prefix = " " },
|
||||||
|
|
||||||
|
# Data Files
|
||||||
|
{ name = "*.{csv,tsv}", fg = "#50fa7b", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{parquet,avro}", fg = "#bd93f9", italic = true, prefix = " " },
|
||||||
|
|
||||||
|
# Size-based rules for documents
|
||||||
|
{ name = "*.{pdf,epub,mobi}", size = "< 1MB", fg = "#8be9fd", prefix = " " },
|
||||||
|
{ name = "*.{pdf,epub,mobi}", size = "< 10MB", fg = "#ffb86c", prefix = " " },
|
||||||
|
{ name = "*.{pdf,epub,mobi}", size = "> 10MB", fg = "#ff5555", prefix = " " },
|
||||||
|
|
||||||
|
# Additional Development Files
|
||||||
|
{ name = "*.{sol}", fg = "#bd93f9", italic = true, prefix = " " }, # Solidity files
|
||||||
|
{ name = "*.{ex,exs}", fg = "#bd93f9", italic = true, prefix = " " }, # Elixir files
|
||||||
|
{ name = "*.{kt,kts}", fg = "#ff79c6", italic = true, prefix = " " }, # Kotlin files
|
||||||
|
{ name = "*.{swift}", fg = "#ff5555", italic = true, prefix = " " }, # Swift files
|
||||||
|
|
||||||
|
# Config Files
|
||||||
|
{ name = "*.{nginx,nginx.conf}", fg = "#50fa7b", italic = true, prefix = " " },
|
||||||
|
{ name = "*{webpack}*", fg = "#8be9fd", bold = true, prefix = " " },
|
||||||
|
|
||||||
|
# ML/Data Science
|
||||||
|
{ name = "*.{ipynb}", fg = "#ff79c6", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{pkl,pickle}", fg = "#50fa7b", italic = true, prefix = " " },
|
||||||
|
|
||||||
|
# 3D/Graphics
|
||||||
|
{ name = "*.{blend}", fg = "#ff79c6", italic = true, prefix = " " },
|
||||||
|
{ name = "*.{fbx,obj,stl}", fg = "#8be9fd", italic = true, prefix = " " },
|
||||||
|
|
||||||
|
# More granular size-based rules for media files
|
||||||
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 50KB", fg = "#8be9fd", prefix = " " },
|
||||||
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 500KB", fg = "#bd93f9", prefix = " " },
|
||||||
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 2MB", fg = "#ffb86c", prefix = " " },
|
||||||
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 20MB", fg = "#ff7043", prefix = " " },
|
||||||
|
{ name = "*.{jpg,jpeg,png,gif}", size = "> 20MB", fg = "#ff5555", prefix = " " },
|
||||||
|
|
||||||
|
# Size categories for video files
|
||||||
|
{ name = "*.{mp4,mkv,avi,mov}", size = "< 100MB", fg = "#8be9fd", prefix = " " },
|
||||||
|
{ name = "*.{mp4,mkv,avi,mov}", size = "< 1GB", fg = "#ffb86c", prefix = " " },
|
||||||
|
{ name = "*.{mp4,mkv,avi,mov}", size = "> 1GB", fg = "#ff5555", prefix = " " },
|
||||||
|
]
|
||||||
|
|
||||||
|
# Keybindings
|
||||||
|
[keys]
|
||||||
|
# Visual key hints
|
||||||
|
show_hints = true
|
||||||
|
hint_style = { fg = "#6272a4", bg = "#44475a", italic = true }
|
||||||
|
|
||||||
|
# Command palette
|
||||||
|
command_palette = { bg = "#282a36", fg = "#f8f8f2", selected_bg = "#44475a", selected_fg = "#f8f8f2", border = "#bd93f9" }
|
||||||
|
|
||||||
|
# Preview
|
||||||
|
[preview]
|
||||||
|
tab_size = 2
|
||||||
|
max_width = 120
|
||||||
|
max_height = 60
|
||||||
|
cache_dir = "/tmp/yazi"
|
||||||
|
|
||||||
|
[preview.image]
|
||||||
|
enabled = true
|
||||||
|
format = "rgb"
|
||||||
|
max_width = 1920
|
||||||
|
max_height = 1080
|
||||||
|
quality = 90
|
||||||
|
animate = true
|
||||||
|
cache = true
|
||||||
|
|
||||||
|
[preview.preview_service]
|
||||||
|
image = "ueberzug"
|
||||||
|
video = "ffmpegthumbnailer"
|
||||||
|
pdf = "pdftoppm"
|
||||||
|
epub = "epub-thumbnailer"
|
||||||
|
office = "libreoffice --headless --convert-to pdf"
|
||||||
|
markdown = "glow"
|
||||||
|
|
||||||
|
[preview.syntax]
|
||||||
|
theme = "Dracula"
|
||||||
|
background = "#282a36"
|
||||||
|
|
||||||
|
# Opener
|
||||||
|
[opener]
|
||||||
|
edit = [
|
||||||
|
{ exec = 'nvim "$@"', desc = "Edit with Neovim" },
|
||||||
|
{ exec = 'code "$@"', desc = "Edit with VS Code" }
|
||||||
|
]
|
||||||
|
open = [
|
||||||
|
{ exec = 'xdg-open "$@"', desc = "Open with system default" },
|
||||||
|
{ exec = 'firefox "$@"', desc = "Open in Firefox" }
|
||||||
|
]
|
||||||
|
reveal = [
|
||||||
|
{ exec = 'nautilus "$@"', desc = "Reveal in file manager" }
|
||||||
|
]
|
||||||
|
|
||||||
|
# Enhanced preview features
|
||||||
|
max_preview_size = 10485760 # 10MB limit for preview
|
||||||
|
scroll_offset = 5
|
||||||
|
scroll_smooth = true
|
||||||
4
.config/yazi/init.lua
Normal file
4
.config/yazi/init.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
require("recycle-bin"):setup({
|
||||||
|
-- Optional: Override automatic trash directory discovery
|
||||||
|
-- trash_dir = "~/.local/share/Trash/", -- Uncomment to use specific directory
|
||||||
|
})
|
||||||
369
.config/yazi/keymap.toml
Normal file
369
.config/yazi/keymap.toml
Normal file
|
|
@ -0,0 +1,369 @@
|
||||||
|
# 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 = ["R","b"], run = "plugin recycle-bin", desc = "Open Recycle Bin menu" },
|
||||||
|
{ 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
.config/yazi/package.toml
Normal file
7
.config/yazi/package.toml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
[[plugin.deps]]
|
||||||
|
use = "uhs-robert/recycle-bin"
|
||||||
|
rev = "1762676"
|
||||||
|
hash = "c77042b4296544a9edb4849338056039"
|
||||||
|
|
||||||
|
[flavor]
|
||||||
|
deps = []
|
||||||
21
.config/yazi/plugins/recycle-bin.yazi/LICENSE
Normal file
21
.config/yazi/plugins/recycle-bin.yazi/LICENSE
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Robert
|
||||||
|
|
||||||
|
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.
|
||||||
183
.config/yazi/plugins/recycle-bin.yazi/README.md
Normal file
183
.config/yazi/plugins/recycle-bin.yazi/README.md
Normal file
|
|
@ -0,0 +1,183 @@
|
||||||
|
<p align="center">
|
||||||
|
<img
|
||||||
|
src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/svg/1f5d1.svg"
|
||||||
|
width="128" height="128" alt="Trash emoji" />
|
||||||
|
</p>
|
||||||
|
<h1 align="center">recycle-bin.yazi</h1>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/uhs-robert/recycle-bin.yazi/stargazers"><img src="https://img.shields.io/github/stars/uhs-robert/recycle-bin.yazi?colorA=192330&colorB=skyblue&style=for-the-badge&cacheSeconds=4300"></a>
|
||||||
|
<a href="https://github.com/sxyazi/yazi" target="_blank" rel="noopener noreferrer"><img alt="Yazi 0.25+" src="https://img.shields.io/badge/Yazi-0.25%2B-blue?style=for-the-badge&cacheSeconds=4300&labelColor=192330" /></a>
|
||||||
|
<a href="https://github.com/uhs-robert/recycle-bin.yazi/issues"><img src="https://img.shields.io/github/issues/uhs-robert/recycle-bin.yazi?colorA=192330&colorB=khaki&style=for-the-badge&cacheSeconds=4300"></a>
|
||||||
|
<a href="https://github.com/uhs-robert/recycle-bin.yazi/contributors"><img src="https://img.shields.io/github/contributors/uhs-robert/recycle-bin.yazi?colorA=192330&colorB=8FD1C7&style=for-the-badge&cacheSeconds=4300"></a>
|
||||||
|
<a href="https://github.com/uhs-robert/recycle-bin.yazi/network/members"><img src="https://img.shields.io/github/forks/uhs-robert/recycle-bin.yazi?colorA=192330&colorB=CFA7FF&style=for-the-badge&cacheSeconds=4300"></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
A blazing fast, minimal <strong>Recycle Bin</strong> for the <a target="_blank" rel="noopener noreferrer" href="https://github.com/sxyazi/yazi">Yazi</a> terminal file‑manager.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
## 🕶️ What does it do?
|
||||||
|
|
||||||
|
Browse, restore, or permanently delete trashed files without leaving your terminal. Includes age-based cleanup and bulk actions.
|
||||||
|
|
||||||
|
<https://github.com/user-attachments/assets/1f7ab9b2-33e3-4262-94c5-b27ad9dc142e>
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
>
|
||||||
|
> **Cross-Platform Support**
|
||||||
|
>
|
||||||
|
> This plugin supports Linux and macOS systems.
|
||||||
|
|
||||||
|
## 🧠 What it does under the hood
|
||||||
|
|
||||||
|
This plugin serves as a wrapper for the [trash-cli](https://github.com/andreafrancia/trash-cli) command, integrating it seamlessly with Yazi.
|
||||||
|
|
||||||
|
## ✨ Features
|
||||||
|
|
||||||
|
- **📂 Browse trash**: Navigate to trash directory directly in Yazi
|
||||||
|
- **🔄 Restore files**: Bulk restore selected files from trash to their original locations
|
||||||
|
- **⚠️ Conflict resolution**: Intelligent handling when restored files already exist at destination
|
||||||
|
- **🛡️ Safety dialogs**: Preview conflicts with skip/overwrite options before restoration
|
||||||
|
- **🗑️ Empty trash**: Clear entire trash with detailed file previews and confirmation dialog
|
||||||
|
- **📅 Empty by days**: Remove trash items older than specified number of days with size information
|
||||||
|
- **❌ Permanent delete**: Bulk delete selected files from trash permanently
|
||||||
|
- **🔧 Configurable**: Customize trash directory
|
||||||
|
|
||||||
|
## 📋 Requirements
|
||||||
|
|
||||||
|
| Software | Minimum | Notes |
|
||||||
|
| --------- | ----------- | ----------------------------------------------------------------------------------------- |
|
||||||
|
| Yazi | `>=25.5.31` | untested on 25.6+ |
|
||||||
|
| trash-cli | any | **Linux**: `sudo dnf/apt/pacman install trash-cli`<br>**macOS**: `brew install trash-cli` |
|
||||||
|
|
||||||
|
The plugin uses the following trash-cli commands: `trash-list`, `trash-empty`, `trash-restore`, and `trash-rm`.
|
||||||
|
|
||||||
|
## 📦 Installation
|
||||||
|
|
||||||
|
Install the plugin via Yazi's package manager:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# via Yazi’s package manager
|
||||||
|
ya pkg add uhs-robert/recycle-bin
|
||||||
|
```
|
||||||
|
|
||||||
|
Then add the following to your `~/.config/yazi/init.lua` to enable the plugin with default settings:
|
||||||
|
|
||||||
|
```lua
|
||||||
|
require("recycle-bin"):setup()
|
||||||
|
```
|
||||||
|
|
||||||
|
## ⚙️ Configuration
|
||||||
|
|
||||||
|
The plugin automatically discovers your system's trash directories using `trash-list --trash-dirs`. If you need to customize the behavior, you can pass a config table to `setup()`:
|
||||||
|
|
||||||
|
```lua
|
||||||
|
require("recycle-bin"):setup({
|
||||||
|
-- Optional: Override automatic trash directory discovery
|
||||||
|
-- trash_dir = "~/.local/share/Trash/", -- Uncomment to use specific directory
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> The plugin supports multiple trash directories and will prompt you to choose which one to use if multiple are found.
|
||||||
|
|
||||||
|
## 🎹 Key Mapping
|
||||||
|
|
||||||
|
### 🗝️ Recommended: Preset
|
||||||
|
|
||||||
|
Add this to your `~/.config/yazi/keymap.toml` (substitute `on = ["R","b"]` with your keybind preference):
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[mgr]
|
||||||
|
prepend_keymap = [
|
||||||
|
{ on = ["R","b"], run = "plugin recycle-bin", desc = "Open Recycle Bin menu" },
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
The `R b` menu provides access to all trash management functions:
|
||||||
|
|
||||||
|
- `o` → Open Trash
|
||||||
|
- `r` → Restore from Trash
|
||||||
|
- `d` → Delete from Trash
|
||||||
|
- `e` → Empty Trash
|
||||||
|
- `D` → Empty by Days
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> `recycle-bin.yazi` uses the [array form for its keymap example](https://yazi-rs.github.io/docs/configuration/keymap).
|
||||||
|
> You must pick **only one style** per file; mixing with `[[mgr.prepend_keymap]]` will fail.
|
||||||
|
>
|
||||||
|
> **Also note:** some plugins may suggest binding a bare key like `on = "R"`,
|
||||||
|
> which blocks all `R <key>` chords (including `R b`). Change those to chords
|
||||||
|
> (e.g. `["R","r"]`) or choose a different non-conflicting prefix.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 🛠️ Alternative: Custom direct keybinds
|
||||||
|
|
||||||
|
If you prefer direct keybinds, you may also set your own using our API. Here are the available options:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[mgr]
|
||||||
|
prepend_keymap = [
|
||||||
|
{ on = ["R","o"], run = "plugin recycle-bin -- open", desc = "Open Trash" },
|
||||||
|
{ on = ["R","e"], run = "plugin recycle-bin -- empty", desc = "Empty Trash" },
|
||||||
|
{ on = ["R","D"], run = "plugin recycle-bin -- emptyDays", desc = "Empty by days deleted" },
|
||||||
|
{ on = ["R","d"], run = "plugin recycle-bin -- delete", desc = "Delete from Trash" },
|
||||||
|
{ on = ["R","r"], run = "plugin recycle-bin -- restore", desc = "Restore from Trash" },
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> Remember that you are the only one who is responsible for managing and resolving your keybind conflicts.
|
||||||
|
|
||||||
|
## 🚀 Usage
|
||||||
|
|
||||||
|
### 📝 Example using the recommended preset
|
||||||
|
|
||||||
|
- **Recycle Bin Menu (`R b`):** Opens an interactive menu with all trash management options
|
||||||
|
- **Open Trash (`o`):** Navigate to trash directory directly in Yazi
|
||||||
|
- **Restore from Trash (`r`):** Bulk restore selected files from trash to their original locations. The plugin automatically detects conflicts when files already exist at the original location and prompts you to skip or overwrite conflicting files with detailed information.
|
||||||
|
- **Delete from Trash (`d`):** Permanently delete selected files from trash. Shows confirmation dialog before deletion.
|
||||||
|
- **Empty Trash (`e`):** Clear entire trash with detailed file previews including names, sizes, and deletion dates before confirmation.
|
||||||
|
- **Empty by Days (`D`):** Remove trash items older than specified number of days (defaults to 30 days). Displays filtered list with file details and total size information.
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> Use Yazi's visual selection (`v` or `V` followed by `ESC` to select items) or toggle select (press `Space` on individual files) to select multiple files from the Trash before restoring or deleting
|
||||||
|
>
|
||||||
|
> The plugin will show a confirmation dialog for destructive operations
|
||||||
|
|
||||||
|
## 🛠️ Troubleshooting
|
||||||
|
|
||||||
|
### Common Issues
|
||||||
|
|
||||||
|
**"trashcli not found" error:**
|
||||||
|
|
||||||
|
- Ensure trash-cli is installed: `sudo dnf/apt/pacman install trash-cli`
|
||||||
|
- Verify installation: `trash-list --version`
|
||||||
|
- Check if trash-cli commands are in your PATH
|
||||||
|
|
||||||
|
**"Trash directory not found" error:**
|
||||||
|
|
||||||
|
- The plugin automatically discovers trash directories using `trash-list --trash-dirs`
|
||||||
|
- If no directories are found, create the standard location:
|
||||||
|
- **Linux**: `mkdir -p ~/.local/share/Trash/{files,info}`
|
||||||
|
- **macOS**: `mkdir -p ~/.Trash`
|
||||||
|
- You can also specify a custom path in your configuration
|
||||||
|
|
||||||
|
**"No files selected" warning:**
|
||||||
|
|
||||||
|
- Make sure you have files selected in Yazi before running restore/delete operations
|
||||||
|
- Use `Space` to select files or `v`/`V` for visual selection mode
|
||||||
|
|
||||||
|
## 💡 Recommendations
|
||||||
|
|
||||||
|
### Companion Plugin
|
||||||
|
|
||||||
|
For an even better trash management experience, pair this plugin with:
|
||||||
|
|
||||||
|
**[restore.yazi](https://github.com/boydaihungst/restore.yazi)** - Undo your delete history by your latest deleted files/folders
|
||||||
|
|
||||||
|
This companion plugin adds an "undo" feature that lets you press `u` to instantly restore the last deleted file. You can keep hitting `u` repeatedly to step through your entire delete history, making accidental deletions a thing of the past.
|
||||||
|
|
||||||
|
**Perfect combination:** Use `restore.yazi` for quick single-file undos and `recycle-bin.yazi` for comprehensive trash management and bulk operations.
|
||||||
1584
.config/yazi/plugins/recycle-bin.yazi/main.lua
Normal file
1584
.config/yazi/plugins/recycle-bin.yazi/main.lua
Normal file
File diff suppressed because it is too large
Load diff
3
.config/yazi/theme.toml
Normal file
3
.config/yazi/theme.toml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
[flavor]
|
||||||
|
dark = "dracula"
|
||||||
|
light = "dracula"
|
||||||
223
.config/yazi/yazi.toml
Normal file
223
.config/yazi/yazi.toml
Normal 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 = [ 1, 4, 3 ]
|
||||||
|
sort_by = "alphabetical"
|
||||||
|
sort_sensitive = false
|
||||||
|
sort_reverse = false
|
||||||
|
sort_dir_first = true
|
||||||
|
sort_translit = false
|
||||||
|
linemode = "none"
|
||||||
|
show_hidden = true
|
||||||
|
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
|
||||||
21
.config/zed/settings.json
Normal file
21
.config/zed/settings.json
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
// Zed settings
|
||||||
|
//
|
||||||
|
// For information on how to configure Zed, see the Zed
|
||||||
|
// documentation: https://zed.dev/docs/configuring-zed
|
||||||
|
//
|
||||||
|
// To see all of Zed's default settings without changing your
|
||||||
|
// custom settings, run `zed: open default settings` from the
|
||||||
|
// command palette (cmd-shift-p / ctrl-shift-p)
|
||||||
|
{
|
||||||
|
"buffer_font_family": "JetBrainsMono Nerd Font",
|
||||||
|
"vim_mode": false,
|
||||||
|
"disable_ai": true,
|
||||||
|
"telemetry": {
|
||||||
|
"diagnostics": false,
|
||||||
|
"metrics": false
|
||||||
|
},
|
||||||
|
"icon_theme": "Zed (Default)",
|
||||||
|
"ui_font_size": 16,
|
||||||
|
"buffer_font_size": 15,
|
||||||
|
"theme": "Dracula"
|
||||||
|
}
|
||||||
1247
.config/zed/themes/dracula.json
Normal file
1247
.config/zed/themes/dracula.json
Normal file
File diff suppressed because it is too large
Load diff
44
.pacman.list
44
.pacman.list
|
|
@ -1,8 +1,6 @@
|
||||||
1password
|
1password
|
||||||
|
7zip
|
||||||
accountsservice
|
accountsservice
|
||||||
adobe-source-han-sans-cn-fonts
|
|
||||||
adobe-source-han-sans-jp-fonts
|
|
||||||
adobe-source-han-sans-kr-fonts
|
|
||||||
alsa-firmware
|
alsa-firmware
|
||||||
alsa-plugins
|
alsa-plugins
|
||||||
alsa-utils
|
alsa-utils
|
||||||
|
|
@ -10,8 +8,6 @@ awesome-terminal-fonts
|
||||||
base
|
base
|
||||||
base-devel
|
base-devel
|
||||||
bash-completion
|
bash-completion
|
||||||
bemenu
|
|
||||||
bemenu-wayland
|
|
||||||
bind
|
bind
|
||||||
bluez
|
bluez
|
||||||
bluez-hid2hci
|
bluez-hid2hci
|
||||||
|
|
@ -23,14 +19,11 @@ btrfs-progs
|
||||||
cachyos-fish-config
|
cachyos-fish-config
|
||||||
cachyos-gaming-applications
|
cachyos-gaming-applications
|
||||||
cachyos-gaming-meta
|
cachyos-gaming-meta
|
||||||
cachyos-grub-theme
|
|
||||||
cachyos-hello
|
cachyos-hello
|
||||||
cachyos-hooks
|
cachyos-hooks
|
||||||
cachyos-hyprland-settings
|
|
||||||
cachyos-kernel-manager
|
cachyos-kernel-manager
|
||||||
cachyos-keyring
|
cachyos-keyring
|
||||||
cachyos-mirrorlist
|
cachyos-mirrorlist
|
||||||
cachyos-nord-gtk-theme-git
|
|
||||||
cachyos-packageinstaller
|
cachyos-packageinstaller
|
||||||
cachyos-rate-mirrors
|
cachyos-rate-mirrors
|
||||||
cachyos-settings
|
cachyos-settings
|
||||||
|
|
@ -38,14 +31,13 @@ cachyos-snapper-support
|
||||||
cachyos-v3-mirrorlist
|
cachyos-v3-mirrorlist
|
||||||
cachyos-v4-mirrorlist
|
cachyos-v4-mirrorlist
|
||||||
cachyos-wallpapers
|
cachyos-wallpapers
|
||||||
capitaine-cursors
|
cantarell-fonts
|
||||||
chwd
|
chwd
|
||||||
cpupower
|
cpupower
|
||||||
cryptsetup
|
cryptsetup
|
||||||
device-mapper
|
device-mapper
|
||||||
dhclient
|
dhclient
|
||||||
diffutils
|
diffutils
|
||||||
discord
|
|
||||||
dmidecode
|
dmidecode
|
||||||
dmraid
|
dmraid
|
||||||
dnsmasq
|
dnsmasq
|
||||||
|
|
@ -64,10 +56,10 @@ firefox
|
||||||
fsarchiver
|
fsarchiver
|
||||||
git
|
git
|
||||||
glances
|
glances
|
||||||
|
go
|
||||||
godot
|
godot
|
||||||
gparted
|
gparted
|
||||||
grimblast-git
|
greetd
|
||||||
gslapper
|
|
||||||
gst-libav
|
gst-libav
|
||||||
gst-plugin-pipewire
|
gst-plugin-pipewire
|
||||||
gst-plugin-va
|
gst-plugin-va
|
||||||
|
|
@ -75,13 +67,12 @@ gst-plugins-bad
|
||||||
gst-plugins-ugly
|
gst-plugins-ugly
|
||||||
haveged
|
haveged
|
||||||
hdparm
|
hdparm
|
||||||
htop
|
|
||||||
hwdetect
|
hwdetect
|
||||||
hwinfo
|
hwinfo
|
||||||
hypridle
|
hypridle
|
||||||
hyprland
|
hyprland
|
||||||
|
hyprland-protocols
|
||||||
hyprlock
|
hyprlock
|
||||||
hyprpaper
|
|
||||||
inetutils
|
inetutils
|
||||||
intel-media-driver
|
intel-media-driver
|
||||||
intel-ucode
|
intel-ucode
|
||||||
|
|
@ -89,9 +80,6 @@ iptables-nft
|
||||||
iwd
|
iwd
|
||||||
jfsutils
|
jfsutils
|
||||||
kitty
|
kitty
|
||||||
kvantum
|
|
||||||
kvantum-theme-nordic-git
|
|
||||||
lazygit
|
|
||||||
less
|
less
|
||||||
lib32-mesa
|
lib32-mesa
|
||||||
lib32-nvidia-utils
|
lib32-nvidia-utils
|
||||||
|
|
@ -128,8 +116,8 @@ mtools
|
||||||
mumble
|
mumble
|
||||||
nano
|
nano
|
||||||
nano-syntax-highlighting
|
nano-syntax-highlighting
|
||||||
nautilus
|
|
||||||
netctl
|
netctl
|
||||||
|
network-manager-applet
|
||||||
networkmanager
|
networkmanager
|
||||||
networkmanager-openvpn
|
networkmanager-openvpn
|
||||||
nfs-utils
|
nfs-utils
|
||||||
|
|
@ -143,22 +131,20 @@ ntp
|
||||||
nvidia-prime
|
nvidia-prime
|
||||||
nvidia-settings
|
nvidia-settings
|
||||||
nvidia-utils
|
nvidia-utils
|
||||||
nwg-displays
|
|
||||||
nwg-look
|
nwg-look
|
||||||
obsidian
|
obsidian
|
||||||
octopi
|
octopi
|
||||||
opencl-nvidia
|
opencl-nvidia
|
||||||
opendesktop-fonts
|
|
||||||
openssh
|
openssh
|
||||||
os-prober
|
os-prober
|
||||||
pacman-contrib
|
pacman-contrib
|
||||||
pamixer
|
|
||||||
paru
|
paru
|
||||||
pavucontrol
|
pavucontrol
|
||||||
perl
|
perl
|
||||||
pipewire-alsa
|
pipewire-alsa
|
||||||
pipewire-pulse
|
pipewire-pulse
|
||||||
pkgfile
|
pkgfile
|
||||||
|
playerctl
|
||||||
plocate
|
plocate
|
||||||
polkit-kde-agent
|
polkit-kde-agent
|
||||||
poppler-glib
|
poppler-glib
|
||||||
|
|
@ -167,34 +153,27 @@ pv
|
||||||
python
|
python
|
||||||
python-defusedxml
|
python-defusedxml
|
||||||
python-packaging
|
python-packaging
|
||||||
qt5ct
|
|
||||||
rebuild-detector
|
rebuild-detector
|
||||||
reflector
|
reflector
|
||||||
|
resvg
|
||||||
ripgrep
|
ripgrep
|
||||||
rofi
|
rofi
|
||||||
rofi-emoji
|
|
||||||
rsync
|
rsync
|
||||||
rtkit
|
rtkit
|
||||||
s-nail
|
s-nail
|
||||||
sddm
|
sddm
|
||||||
sg3_utils
|
sg3_utils
|
||||||
slurp
|
|
||||||
smartmontools
|
smartmontools
|
||||||
snapper
|
snapper
|
||||||
sof-firmware
|
sof-firmware
|
||||||
spotify-player
|
spotify-player
|
||||||
spotifyd
|
|
||||||
stow
|
stow
|
||||||
sudo
|
sudo
|
||||||
swappy
|
|
||||||
swaybg
|
|
||||||
swaylock-effects-git
|
|
||||||
swaylock-fancy-git
|
|
||||||
switcheroo-control
|
switcheroo-control
|
||||||
swww
|
swww
|
||||||
sysc-greet-hyprland
|
|
||||||
sysfsutils
|
sysfsutils
|
||||||
texinfo
|
texinfo
|
||||||
|
trash-cli
|
||||||
ttf-bitstream-vera
|
ttf-bitstream-vera
|
||||||
ttf-dejavu
|
ttf-dejavu
|
||||||
ttf-liberation
|
ttf-liberation
|
||||||
|
|
@ -209,6 +188,7 @@ usbutils
|
||||||
uwsm
|
uwsm
|
||||||
vi
|
vi
|
||||||
vlc-plugins-all
|
vlc-plugins-all
|
||||||
|
vpl-gpu-rt
|
||||||
vulkan-intel
|
vulkan-intel
|
||||||
waybar
|
waybar
|
||||||
wget
|
wget
|
||||||
|
|
@ -218,9 +198,9 @@ wireplumber
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
wlogout
|
wlogout
|
||||||
wob
|
wob
|
||||||
wofi
|
|
||||||
wpa_supplicant
|
wpa_supplicant
|
||||||
xdg-desktop-portal-hyprland
|
xdg-desktop-portal-hyprland
|
||||||
|
xdg-desktop-portal-termfilechooser-hunkyburrito-git
|
||||||
xdg-user-dirs
|
xdg-user-dirs
|
||||||
xf86-input-libinput
|
xf86-input-libinput
|
||||||
xfsprogs
|
xfsprogs
|
||||||
|
|
@ -232,4 +212,6 @@ xorg-xinput
|
||||||
xorg-xkill
|
xorg-xkill
|
||||||
xorg-xrandr
|
xorg-xrandr
|
||||||
xorg-xwayland
|
xorg-xwayland
|
||||||
|
yazi
|
||||||
zed
|
zed
|
||||||
|
zoxide
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue