# bash completion for dsys # shellcheck shell=bash _dsys() { local cur=${COMP_WORDS[COMP_CWORD]} if ((COMP_CWORD == 1)); then mapfile -t COMPREPLY < <(compgen -W "info hostname timezone locale keymap help" -- "$cur") return fi ((COMP_CWORD == 2)) || return case ${COMP_WORDS[1]} in timezone | tz) mapfile -t COMPREPLY < <(compgen -W "list UTC $(awk '!/^#/ { print $3 }' /usr/share/zoneinfo/zone1970.tab 2>/dev/null)" -- "$cur") ;; locale | lang) mapfile -t COMPREPLY < <(compgen -W "list $(sed -n 's/^#\?\([^ ]*\)\.UTF-8 UTF-8[[:space:]]*$/\1/p' /etc/default/libc-locales 2>/dev/null)" -- "$cur") ;; keymap | keyboard) mapfile -t COMPREPLY < <(compgen -W "list $(find /usr/share/kbd/keymaps -name '*.map.gz' -printf '%f\n' 2>/dev/null | sed 's/\.map\.gz$//')" -- "$cur") ;; esac } complete -F _dsys dsys