From 1ac70e8b312f7dde7f35c56fe6afba4f1d898627 Mon Sep 17 00:00:00 2001 From: Honney Date: Tue, 23 Jun 2026 01:35:20 +0200 Subject: [PATCH] added and fixed autocompletes --- completions/custom_scripts.fish | 89 +++++++++++++++++++++++++++++++++ config.fish | 3 ++ 2 files changed, 92 insertions(+) create mode 100644 completions/custom_scripts.fish diff --git a/completions/custom_scripts.fish b/completions/custom_scripts.fish new file mode 100644 index 0000000..db02e7f --- /dev/null +++ b/completions/custom_scripts.fish @@ -0,0 +1,89 @@ +# Completions for custom scripts from https://git.honney333.work/honney/custom_scripts +function __fish_custom_scripts_complete_video_files + __fish_complete_suffix .mp4 .mkv .avi .mov .webm .m4v .flv .ts .mts .m2ts .wmv +end + +# === Scripts with no arguments === +complete -c deinterlacing_cpu.sh -f -d "Deinterlace hardcoded MKV file using CPU (yadif/x264)" +complete -c deinterlacing_gpu.sh -f -d "Deinterlace hardcoded file using VAAPI GPU acceleration" +complete -c generate-thumb -f -d "Generate thumbnails for video files via scene detection" +complete -c list_folder_empty -f -d "List non-empty subdirectories and file extension types" +complete -c show_path -f -d "Display each PATH entry on a separate line" +complete -c time_add.py -f -d "Sum space-separated timecodes from user input" +complete -c sub_dub -f -d "Analyze MKV files and update Excel spreadsheet" + +# === Scripts with mode as first argument === +complete -c append -n "not __fish_seen_subcommand_from front back ext" -k -a "front" -d "Prepend string to filename" +complete -c append -n "not __fish_seen_subcommand_from front back ext" -k -a "back" -d "Append string to filename" +complete -c append -n "not __fish_seen_subcommand_from front back ext" -k -a "ext" -d "Add string before file extension" +complete -c append -n "__fish_seen_subcommand_from front back ext" -a "(__fish_complete_directories)" -d "Target directory" +complete -c deappend -n "not __fish_seen_subcommand_from front back ext" -k -a "front" -d "Remove prefix from filename" +complete -c deappend -n "not __fish_seen_subcommand_from front back ext" -k -a "back" -d "Remove suffix from filename" +complete -c deappend -n "not __fish_seen_subcommand_from front back ext" -k -a "ext" -d "Remove file extension" +complete -c deappend -n "__fish_seen_subcommand_from front back ext" -a "(__fish_complete_directories)" -d "Target directory" +complete -c tracker.py -n "not __fish_seen_subcommand_from add sub ranking" -k -a "add" -d "Increment usage count" +complete -c tracker.py -n "not __fish_seen_subcommand_from add sub ranking" -k -a "sub" -d "Decrement usage count" +complete -c tracker.py -n "not __fish_seen_subcommand_from add sub ranking" -k -a "ranking" -d "Show usage ranking" +complete -c video-audio -n "not __fish_seen_subcommand_from extract include" -k -a "extract" -d "Extract audio from MKV files" +complete -c video-audio -n "not __fish_seen_subcommand_from extract include" -k -a "include" -d "Re-include extracted audio into MKVs" +complete -c video-audio -n "__fish_seen_subcommand_from extract include" -a "(__fish_complete_directories)" -d "Video directory" + +# === Scripts with flags === +complete -c count_files -l undo -d "Undo previous numbering" +complete -c remove_fname_last_n -l undo -d "Undo previous rename" +complete -c split_mkv_by_chapter -l only_between -d "Only output between given timestamps" +complete -c split_mkv_by_chapter -a "(__fish_custom_scripts_complete_video_files)" -d "Input MKV file" +complete -c substract_episode_num.py -s n -l dry-run -d "Dry run (show without modifying)" + +# === Scripts accepting video files and/or directories === +complete -c ff -d "Display detailed media info (codec, resolution, audio, subs, bitrate)" +complete -c ff -a "(__fish_custom_scripts_complete_video_files) (__fish_complete_directories)" +complete -c set_1_ger -d "Set first audio track language to German in MKV files" +complete -c set_1_ger -a "(__fish_custom_scripts_complete_video_files) (__fish_complete_directories)" +complete -c set_audio_lang -d "Set/overwrite audio track language metadata" +complete -c set_audio_lang -a "(__fish_custom_scripts_complete_video_files) (__fish_complete_directories)" +complete -c simple_ffprobe_script -d "Display detailed video file info" +complete -c simple_ffprobe_script -a "(__fish_custom_scripts_complete_video_files) (__fish_complete_directories)" +complete -c extract_audio -d "Extract audio tracks from video files" +complete -c extract_audio -a "(__fish_custom_scripts_complete_video_files) (__fish_complete_directories)" +complete -c extract_audio.py -d "Extract all audio tracks as MP3" +complete -c extract_audio.py -a "(__fish_custom_scripts_complete_video_files) (__fish_complete_directories)" +complete -c extract_subtitles -d "Extract subtitle tracks from video files" +complete -c extract_subtitles -a "(__fish_custom_scripts_complete_video_files) (__fish_complete_directories)" +complete -c extract_subtitles.py -d "Extract all subtitle tracks as SRT" +complete -c extract_subtitles.py -a "(__fish_custom_scripts_complete_video_files) (__fish_complete_directories)" + +# === Scripts accepting video files only === +complete -c ffbitrate -d "Display overall bitrate of a video file" +complete -c ffbitrate -a "(__fish_custom_scripts_complete_video_files)" +complete -c ffsplit -d "Split video file into segments at given timestamps" +complete -c ffsplit -a "(__fish_custom_scripts_complete_video_files)" +complete -c split_mkv_by_chapter.py -d "Split MKV at chapter boundaries" +complete -c split_mkv_by_chapter.py -a "(__fish_custom_scripts_complete_video_files)" +complete -c embed_audio -d "Embed MP3 audio track into video file" +complete -c embed_audio -a "(__fish_custom_scripts_complete_video_files)" +complete -c embed_subtitles -d "Embed subtitle file into video file" +complete -c embed_subtitles -a "(__fish_custom_scripts_complete_video_files)" +complete -c embed_subtitles.py -d "Embed matching .srt subtitles into video" +complete -c embed_subtitles.py -a "(__fish_custom_scripts_complete_video_files)" + +# === Scripts accepting directories === +complete -c recount_files -d "Re-number files starting from given offset" +complete -c recount_files -a "(__fish_complete_directories)" +complete -c remove_fname_last_n -d "Remove last N characters from filenames (before ext)" +complete -c remove_fname_last_n -a "(__fish_complete_directories)" +complete -c rename_to_first_n -d "Truncate filenames to first N characters (before ext)" +complete -c rename_to_first_n -a "(__fish_complete_directories)" +complete -c rename_filtered -d "Rename files using character scheme" +complete -c rename_filtered -a "(__fish_complete_directories)" + +# === Scripts with special argument patterns === +complete -c create_folder_counting -d "Create folders with counting range" +complete -c create_folder_date -d "Create folders for each date in date range" +complete -c filter_extra -d "Move MKVs shorter than duration to extra folder" +complete -c grayjay -d "Launch Grayjay desktop application" +complete -c sub_dub.py -d "Update spreadsheet row with media info" +complete -c substract_episode_num.py -a "(__fish_complete_directories)" + +# Skipped (folder-only): +# fftesting, sync_delete, rename_episodes \ No newline at end of file diff --git a/config.fish b/config.fish index 1f448a7..3c0348b 100755 --- a/config.fish +++ b/config.fish @@ -10,6 +10,9 @@ if status is-interactive set distro unknown end + # Auto Complete + source ~/.config/fish/completions/* + if test -f $HOME/.config/fish/configs/theme.fish source $HOME/.config/fish/configs/theme.fish end