#!/usr/bin/env bash # Merge both global and local charfiles CHARDIR=~/.cache/charsel mkdir $CHARDIR/ cp -R /usr/share/charsel/* $CHARDIR/ cp -R ~/.local/share/charsel/* $CHARDIR/ # Check if user provided an input if [ $1 = "list" ]; then echo "The following charfiles are installed" ls $CHARDIR/charfiles exit elif [[ $1 = "help" || $1 = "-h" || $1 = "--help" || $# -ne 1 ]]; then cat /usr/share/doc/charsel/README.md exit else # Clear screen clear # Define charfile path CHARFILE=$CHARDIR/charfiles/$1 # Define length of shortcut LENGTH=$(cat $CHARFILE | cut -f 1 -d ',' -s | wc -L | cut -b 1) # MOTD cat $CHARDIR/motd # Main program while : do # Put charfile into table, showing only the shortcuts below the divider in the charfile cat $CHARFILE | grep -A 100 - | tail -n +2 | column -t --output-separator ' | ' --separator ',' # Automatically enter input read -N $LENGTH INPUT # Navigate to the right characther LINENUMBER=$(cut -f 1 -d ',' -s $CHARFILE | grep -n $INPUT | cut -d : -f 1) OUTPUT=$(cut -f 2 -d ',' -s $CHARFILE | head -$LINENUMBER | tail +$LINENUMBER) # Clear screen clear # Copy output to clipboard echo $OUTPUT | xclip -selection clipboard done fi