90 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			90 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								#!/bin/bash
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# From:
							 | 
						||
| 
								 | 
							
								# https://bitbucket.org/denilsonsa/small_scripts/src/default/xsetwacom_my_preferences.sh
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# CONFIGURATION
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Set this to your (stylus) device. Find it by running:
							 | 
						||
| 
								 | 
							
								# xsetwacom --list devices
							 | 
						||
| 
								 | 
							
								DEVICE='Wacom USB Bamboo PAD Pen stylus'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# These numbers are specific for each device. Get them by running:
							 | 
						||
| 
								 | 
							
								# xsetwacom --set "Your device name here" ResetArea
							 | 
						||
| 
								 | 
							
								# xsetwacom --get "Your device name here" Area
							 | 
						||
| 
								 | 
							
								AREAX=10690
							 | 
						||
| 
								 | 
							
								AREAY=6680
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# END OF CONFIGURATION
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								SCREEN="$1"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ -z "$SCREEN" -o "$SCREEN" = "--help" -o "$SCREEN" = "-help" -o "$SCREEN" = "-h" ]; then
							 | 
						||
| 
								 | 
							
									echo 'This script configures a Wacom tablet to one specific monitor, or to '
							 | 
						||
| 
								 | 
							
									echo 'the entire desktop. In addition, it also reduces the tablet area in '
							 | 
						||
| 
								 | 
							
									echo 'order to keep the same aspect ratio as the monitor.'
							 | 
						||
| 
								 | 
							
									echo
							 | 
						||
| 
								 | 
							
									echo 'How to run this script? Run one of the following lines:'
							 | 
						||
| 
								 | 
							
									CONNECTED_DISPLAYS=`xrandr -q --current | sed -n 's/^\([^ ]\+\) connected .*/\1/p'`
							 | 
						||
| 
								 | 
							
									for d in desktop $CONNECTED_DISPLAYS; do
							 | 
						||
| 
								 | 
							
										echo "  $0 $d"
							 | 
						||
| 
								 | 
							
									done
							 | 
						||
| 
								 | 
							
									exit
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ "$SCREEN" = "desktop" ]; then
							 | 
						||
| 
								 | 
							
									# Sample xrandr line:
							 | 
						||
| 
								 | 
							
									# Screen 0: minimum 320 x 200, current 3286 x 1080, maximum 32767 x 32767
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									LINE=`xrandr -q --current | sed -n 's/^Screen 0:.*, current \([0-9]\+\) x \([0-9]\+\),.*/\1 \2/p'`
							 | 
						||
| 
								 | 
							
									read WIDTH HEIGHT <<< "$LINE"
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
									# Sample xrandr lines:
							 | 
						||
| 
								 | 
							
									# LVDS1 connected 1366x768+0+312 (normal left inverted right x axis y axis) 309mm x 174mm
							 | 
						||
| 
								 | 
							
									# VGA1 disconnected (normal left inverted right x axis y axis)
							 | 
						||
| 
								 | 
							
									# HDMI1 connected 1920x1080+1366+0 (normal left inverted right x axis y axis) 509mm x 286mm
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									LINE=`xrandr -q --current | sed -n "s/^${SCREEN}"' connected \([0-9]\+\)x\([0-9]\+\)+.*/\1 \2/p'`
							 | 
						||
| 
								 | 
							
									read WIDTH HEIGHT <<< "$LINE"
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ -z "$WIDTH" -o -z "$HEIGHT" ]; then
							 | 
						||
| 
								 | 
							
									echo "Aborting."
							 | 
						||
| 
								 | 
							
									exit 1
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# New values respecint aspect ratio:
							 | 
						||
| 
								 | 
							
								RATIOAREAY=$(( AREAX * HEIGHT / WIDTH ))
							 | 
						||
| 
								 | 
							
								RATIOAREAX=$(( AREAY * WIDTH / HEIGHT ))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ "$AREAY" -gt "$RATIOAREAY" ]; then
							 | 
						||
| 
								 | 
							
									NEWAREAX="$AREAX"
							 | 
						||
| 
								 | 
							
									NEWAREAY="$RATIOAREAY"
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
									NEWAREAX="$RATIOAREAX"
							 | 
						||
| 
								 | 
							
									NEWAREAY="$AREAY"
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								xsetwacom --set "$DEVICE" Area 0 0 "$NEWAREAX" "$NEWAREAY"
							 | 
						||
| 
								 | 
							
								xsetwacom --set "$DEVICE" MapToOutput "$SCREEN"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# $ xsetwacom --list devices
							 | 
						||
| 
								 | 
							
								# Wacom Graphire4 6x8 stylus      	id: 9	type: STYLUS
							 | 
						||
| 
								 | 
							
								# Wacom Graphire4 6x8 eraser      	id: 10	type: ERASER
							 | 
						||
| 
								 | 
							
								# Wacom Graphire4 6x8 cursor      	id: 11	type: CURSOR
							 | 
						||
| 
								 | 
							
								# Wacom Graphire4 6x8 pad         	id: 12	type: PAD
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Button mappings only apply to the "pad" device.
							 | 
						||
| 
								 | 
							
								# The wheel on Graphire4 acts as mouse buttons 4 and 5 (as a mouse wheel)
							 | 
						||
| 
								 | 
							
								# The buttons on Graphire4 act as mouse buttons 8 and 9
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Default Area: 0 0 16704 12064
							 | 
						||
| 
								 | 
							
								# ResetArea
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Other potentially useful parameters:
							 | 
						||
| 
								 | 
							
								# * Mode: absolute or relative
							 | 
						||
| 
								 | 
							
								# * Rotate: none, cw, ccw, half
							 | 
						||
| 
								 | 
							
								# * MapToOutput: "next" (but is buggy), "desktop", or a name from xrandr
							 |