#!/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"