## Usage
For argument usage, use `charsel -h`
-Once you have started the program, simply type the shortcut listed on the left side of the table to copy the character on the right side of the table to your clipboard. Shortcodes the same length as the longest one will automatically be entered. To quit, use ^C
+Once you have started the program, simply type the shortcut listed on the left side of the table to copy the character on the right side of the table to your clipboard. Shortcodes the same length as the longest one will automatically be entered. To quit, use ^C, or type ';' as a shortcode
Some of the default charfiles have hidden shortcuts for capital letters that are not shown on the table. Simply type a capital version of the shortcut key to access the capital version of the special character.
## Creating a charfile
Make a new file in the `~/.local/share/charsel/charfiles/` or `/usr/share/charsel/charfiles/` directories with the name that you would like to use to call the charfile in the command.
-Fill it in, using the provided examples as a template. Hidden shortcuts go above the '-', lines can be commented out using a '#' at the start of the line
+Fill it in, using the provided examples as a template. Hidden shortcuts go above the '-', lines can be commented out using a '#' at the start of the line. ';' cannot be used as a shortcode, as that is used to quit the program
## License
Charfile is GNU GPLv3 licensed, see COPYING for more information
Exit status:
0 okay,
- 1 invalid charfile
- 2 usage error/invalid option"
+ 1 charfile does not exist,
+ 2 charfile syntax error,
+ 3 usage error/invalid option,
+ 4 other error"
}
CHARDIR=$HOME/.cache/charsel
exit 1
}
-# Look for arguments
-while getopts ":lhd" arg
-do
- case ${arg} in
- h)
- usage
- exit 0
- ;;
- l)
- list
- exit 0
- ;;
- d)
- readme
- exit 0
- ;;
- ?)
- echo "Invalid option"
- usage
- exit 2
- ;;
- :)
- break
- ;;
- esac
-done
-shift $((OPTIND-1))
-
# Check if Xclip is installed
if [[ -x xclip ]]
then
echo "Please install xclip."
- exit 1
+ exit 4
fi
# Merge global and local charfiles
cp -rf /usr/share/charsel/* $CHARDIR
fi
+# Look for arguments
+while getopts ":lhd" arg
+do
+ case ${arg} in
+ h)
+ usage
+ exit 0
+ ;;
+ l)
+ list
+ exit 0
+ ;;
+ d)
+ readme
+ exit 0
+ ;;
+ ?)
+ echo "Invalid option"
+ usage
+ exit 3
+ ;;
+ :)
+ break
+ ;;
+ esac
+done
+shift $((OPTIND-1))
+
# Check if charfile exists
CHARFILE="$CHARDIR/charfiles/$1"
if [[ ! -f $CHARFILE ]]
invalid_charfile
fi
+# VERY basic syntax validation
+if [[ $(grep , $CHARFILE && grep - $CHARFILE) ]]
+then
+ echo "valid charfile"
+else
+ echo "invalid charfile"
+ exit 2
+fi
+
# Define length of shortcode
LENGTH=$(cat $CHARFILE \
| cut -f 1 -d ',' -s \
OUTPUT=""
fi
+ if [[ $INPUT == ";"* ]]
+ then
+ clear
+ exit 0
+ fi
+
# Copy output to clipboard
echo $OUTPUT | xclip -selection clipboard