Skip to content

Instantly share code, notes, and snippets.

@dardo82
Last active January 6, 2026 01:59
Show Gist options
  • Select an option

  • Save dardo82/a39f04936b2e2ef571f63d3b0a2a61b9 to your computer and use it in GitHub Desktop.

Select an option

Save dardo82/a39f04936b2e2ef571f63d3b0a2a61b9 to your computer and use it in GitHub Desktop.
sudo helper
#!/bin/zsh
_sudo_showpw() {
echo "[sudo] Enter credentials of $USER: "
local HIDDEN=true
while true
do if [[ -z $HIDDEN ]] ; then
if ((CURSOR==${${#BUFFER}})) ; then
echo -e -n $'\r'${${BUFFER}} ;
else echo -e -n $'\r'${=LBUFFER//?/*}${BUFFER:$CURSOR:1}${${RBUFFER#?}//?/*}; fi
else echo -e -n $'\r'${${BUFFER//?/*}}; fi
sleep 1; read -s -k 1 ONEKEY ;
case $ONEKEY in
($'\t') unset HIDDEN ; ;;
($'\r') echo $BUFFER ; return 0;;
($'\C-?') if ((CURSOR>0)) ;
then echo -e -n $'\b' $'\b'
LBUFFER=""""${LBUFFER%%?}; fi ;;
($'\e') read -s -k 2 ARROWS ;
case $ARROWS in
('[D') if ((CURSOR>0)) ;
then ((CURSOR--)) ;
echo -e -n '' ;
unset HIDDEN ; fi ;;
('[C') if ((CURSOR<""""${#BUFFER})) ;
then ((CURSOR++)) ;
echo -e -n '' ;
unset HIDDEN ; fi ;;
esac ; ;;
(*) LBUFFER+=""""${ONEKEY} ; ;;
esac; if [[ -z $HIDDEN ]] ; then
if ((CURSOR==${${#BUFFER}})) ; then
echo -e -n $'\r'${${BUFFER}} ;
else echo -e -n $'\r'${=LBUFFER//?/*}${BUFFER:$CURSOR:1}${${RBUFFER#?}//?/*}; fi
else echo -e -n $'\r'${${BUFFER//?/*}}; fi
sleep 1; local HIDDEN=true ;
done}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment