X-Git-Url: https://git.armaanb.net/?p=charsel.git;a=blobdiff_plain;f=charsel;h=24f342f36f22578fa1077e8716e1f581efbd9578;hp=01f1d3f4d7f18fc8e9ea1999bcdb8331ea6eafec;hb=3989f003bdade7eb803152a344c80aa8aeadc335;hpb=1513db21226acbb1d8bc830f8b952c56ba123de8 diff --git a/charsel b/charsel index 01f1d3f..24f342f 100755 --- a/charsel +++ b/charsel @@ -1,30 +1,50 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash # Merge both global and local charfiles -cp /usr/share/charsel/* ~/.cache/charsel/ -cp ~/.local/share/charsel/* ~/.cache/charsel/ CHARDIR=~/.cache/charsel -# Check if user provided a charfile -[ -z "$1" ] && echo "No argument supplied" && exit 1 +if [[ ! "$(ls -A $CHARDIR)" || ! -d $CHARDIR ]]; then + mkdir $CHARDIR/ + cp -R /usr/share/charsel/* $CHARDIR/ + cp -R ~/.local/share/charsel/* $CHARDIR/ +fi + +# 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) + +# Main program while : do - - # Put charfile into table - column -t $CHARDIR/$1 -N SHORT,CHAR -R SHORT,CHAR --output-separator ' | ' - read INPUT + # 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 - OUTPUT=$(grep $INPUT $CHARDIR/$1 | cut -c 3) - + 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 - # Print output, and copy to clipboard - echo $OUTPUT + # Copy output to clipboard echo $OUTPUT | xclip -selection clipboard done + +fi