41 lines
1.4 KiB
Bash
Executable file
41 lines
1.4 KiB
Bash
Executable file
#!/bin/sh
|
|
# Set Wacom tablet parameters
|
|
# for 1:1 drawing, X11 script
|
|
|
|
WACOM_ID="$1"
|
|
WACOM_SCREEN="$2"
|
|
|
|
# If first argument is 'menu', choose parameters with a graphical menu
|
|
if [ "$WACOM_ID" = "menu" ] ; then
|
|
WACOM_ID="$(xsetwacom list devices | menu "Device:" | grep -o 'id:.*:' | grep -o '[0-9]*')"
|
|
WACOM_SCREEN="$(xrandr | grep -o '[0-9]*x[0-9]*+[0-9]*+[0-9]*' | menu "Screen:")"
|
|
fi
|
|
|
|
# If required fields are empty, quit with help message
|
|
if [ "$WACOM_ID" = "" -o "$WACOM_SCREEN" = "" ] ; then
|
|
printf "Usage: wacom_pen_setup [ID] [SCREEN]\n"
|
|
|
|
printf "\033[1m\nDEVICES:\033[0m\n"
|
|
xsetwacom list devices
|
|
|
|
SCREENS="$(xrandr | grep -o '[0-9]*x[0-9]*+[0-9]*+[0-9]*' | tr '\n' ' ')"
|
|
printf "\033[1m\nSCREENS:\033[0m\n"
|
|
for SCREEN in $SCREENS ; do
|
|
printf "%s\n" "$SCREEN"
|
|
done
|
|
|
|
return 0
|
|
fi
|
|
|
|
# Define $SCREEN dimensions
|
|
SCREEN_W="${WACOM_SCREEN%%x*}"
|
|
SCREEN_H="${WACOM_SCREEN##*x}"
|
|
SCREEN_H="${SCREEN_H%%+*}"
|
|
# Define proper tablet dimensions with screen aspect ratio
|
|
WACOM_W="$(xsetwacom get $WACOM_ID area | cut -d ' ' -f 3)"
|
|
WACOM_H="$(printf %d\\n "$((${WACOM_W} * ${SCREEN_H}/${SCREEN_W}))")"
|
|
|
|
# Configure tablet, notify if there's an error
|
|
xsetwacom set "$WACOM_ID" MapToOutput "$WACOM_SCREEN" || notify-send "wacom_pen_setup" "Error occured while setting screen"
|
|
xsetwacom set "$WACOM_ID" Area 0 0 "$WACOM_W" "$WACOM_H" || notify-send "wacom_pen_setup" "Error occured while setting tablet dimensions"
|
|
|