diff options
author | Latif Sulistyo | 2022-10-01 11:09:28 +0700 |
---|---|---|
committer | Latif Sulistyo | 2022-10-01 11:09:28 +0700 |
commit | b6a887f39cdbe77be4f5629415f913d229b7f0af (patch) | |
tree | 9d687612b6b8920568ecfbad0aca18917d3ee595 /_papirus-folders | |
download | aur-b6a887f39cdbe77be4f5629415f913d229b7f0af.tar.gz |
feat: initial commit
Diffstat (limited to '_papirus-folders')
-rw-r--r-- | _papirus-folders | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/_papirus-folders b/_papirus-folders new file mode 100644 index 000000000000..93ae3baafdef --- /dev/null +++ b/_papirus-folders @@ -0,0 +1,56 @@ +#compdef papirus-folders +# +# @author: Sergei Eremenko (https://github.com/SmartFinn) +# @license: MIT license (MIT) +# @link: https://github.com/PapirusDevelopmentTeam/papirus-folders + +_get_colors() { + if ! command -v papirus-folders >/dev/null; then + _message "unable to find papirus-folders script" + return 1 + fi + + local -a colors=( $(papirus-folders -l | tr -d '>\n') ) + _wanted colors exlp 'color' compadd -- "${colors[@]}" + return 0 +} + +_get_themes() { + local data_dir icons_dir icon_theme + local -a data_dirs=() + local -a icons_dirs=( + "$HOME/.icons" + "${XDG_DATA_HOME:-$HOME/.local/share}/icons" + ) + + # Get data directories from XDG_DATA_DIRS variable and + # convert colon-separated list into bash array + IFS=: read -rA data_dirs <<< "${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" + + for data_dir in "${data_dirs[@]}"; do + [ -d "$data_dir/icons" ] || continue + icons_dirs=( "${icons_dirs[@]}" "${data_dir:a}/icons" ) + done + + for icons_dir in "${icons_dirs[@]}"; do + for icon_theme in "$icons_dir"/*; do + [ -f "$icon_theme/48x48/places/folder-blue.svg" ] || continue + _wanted icon_theme expl 'icon-theme' compadd -- "${icon_theme:t}" + done + done + return 0 +} + +_arguments -C \ + '(-h --help)'{-h,--help}'[show help message and exit]' \ + '(-V --version)'{-V,--version}'[show version number and exit]' \ + '(-v --verbose)'{-v,--verbose}'[be verbose]' \ + '(-C --color)'{-C,--color}'[change color of folders]:color:_get_colors' \ + '(-D --default)'{-D,--default}'[back to the default color]' \ + '(-R --restore)'{-R,--restore}'[restore the last used color from the config file]' \ + '(-l --list)'{-l,--list}'[show available colors]' \ + '(-o --once)'{-o,--once}'[do not save the changes to the config file]' \ + '(-t --theme)'{-t,--theme}'[make changes to the specified theme]:icon-theme:_get_themes' \ + '(-u --update-caches)'{-u,--update-caches}'[update icon caches]' + +# vim: ft=zsh sw=4 ts=4 |