X200 Tablet mit Ubuntu 11.10 Probleme mit Stifteingabe

motto

Member
Registriert
1 Juli 2011
Beiträge
62
Hallo zusammen,

seit kurzer Zeit nutze ich nun Ubuntu 11.10 auf meinem X200 Tablet und bin damit auch super zufrieden.
Nur gibt es noch ein paar ungelöste Probleme, wo ich bis jetzt im Netz noch keine passende Lösung gefunden habe... Aber vielleicht kann mir ja hier jemand weiterhelfen ;)

Ich habe folgende 2 Probleme bei der Stifteingabe:

1.) Wenn ich die Bildschirmausrichtung drehe, dann invertiert sich die Stifterkennung. Wenn ich also mit dem Stift am oberen rechten Bildschirmrand bin, ist der Mauscurser unten links. In Normalausrichtung klappt alles problemlos.

2.) Wenn ich nen 2. Bildschirm anschließe und diesen auch als 2. Arbeitsfläche wähle, dann ist für die Stiftausgabe die gesamte Bildschirmfläche relevant, als Eingabe aber logischerweise nur der Laptopbildschirm. Wenn ich also nen 2. Bildschirm rechts vom Laptop positioniere, dann sind Stift und Mauszeiger nur am linken Bildschirmrand vom Laptop übereinander und wenn ich mit dem Stift am rechten Laptop-Bildschirmrand bin, dann ist der Mauszeiger am rechten Bildschirmrand des 2. Monitors.


Wenn jemand eine Lösung für dieses Problem weiß, so wäre ich sehr dankbar, wenn er mir helfen würde.



Vielen Dank schonmal im Voraus
 
Hallo,

1.) Wenn ich die Bildschirmausrichtung drehe, dann invertiert sich die Stifterkennung. Wenn ich also mit dem Stift am oberen rechten Bildschirmrand bin, ist der Mauscurser unten links. In Normalausrichtung klappt alles problemlos.

Du musst einfach gesagt "den Stift mitdrehen". Ich gehe mal davon aus, dass Du zur Bildschirmdrehung irgendein Script verwendest. Darin steht dann irgendwas in dieser Art:

Code:
xrandr -o right

...dazugehörig musst Du noch Deinen Stift mitdrehen. das bekommst Du mit folgendem Kommando hin:

Code:
xsetwacom set "Serial Wacom Tablet stylus" Rotate Cw

Die anderen Ausrichtungen bekommt Du mit "None" "Inverted" und "ccw" anstatt "Cw" hin. Also pro Ausrichtung eine neue Ausrichtung des Stiftes. Nicht vergessen: Auch für den normalen Modus brauchst Du das, weil nach den vorangegangenen Drehungen der Stift wieder in die Normalausrichtung gebracht werden muss.

Rückfragen jederzeit gerne...

Frank

Edit: Du kannst die Einstellungen auch erstmal testen. Dreh Dein Display, gib dann die obige Zeile in ein Terminal ein und probier Deinen Stift aus. Das machst Du dann für jede einzelne Ausrichtung. Erst wenn alles zu Deiner Zufriedenheit klappt, nimmst das in das Rotate-Script auf.
 
Zuletzt bearbeitet:
Hallo Frank,

danke für deine schnelle Antwort.
Also ich nutze zum Drehen das Tool Jupiter...
Das Skript, welches es scheinbar verwendet habe ich auch gefunden, nur weiß ich nicht genau, wo und wie ich in diesem genau die Befehle platzieren soll.

Das Skript sieht so aus:

Code:
#!/bin/bash
#
# $LVDS_DEVICE Rotate
# Andrew Wyatt
# Tool to rotate $LVDS_DEVICE panel
#

JUPITER_PATH="/usr/lib/jupiter/scripts"
JUPITER_VAR="/var/jupiter"

if [[ "$*" =~ "silent" ]]; then
  NO_NOTIFY=1
fi

. $JUPITER_PATH/notify

NICON="/usr/share/pixmaps/jupiter/rotate.png"

if [ ! -d "$JUPITER_VAR" ]; then
  mkdir $JUPITER_VAR
fi

VDEV=$(xrandr | grep " connected [0-9]" | awk '{print $1}' | head -n 1)

LVDS_DEVICE=$(xrandr | grep " connected" | awk '{print $1}' | grep $VDEV)

function rotate_toggle {
  CURRENT=$(xrandr  | grep $LVDS_DEVICE | awk '{print $4}' | sed s#^\(##)
  if [ "$CURRENT" = "left" ]; then
    $JUPITER_PATH/resolutions default
    ROTATION="inverted"
    RTOUCHPAD=2
  elif [ "$CURRENT" = "inverted" ]; then
    $JUPITER_PATH/resolutions default
    ROTATION="right"
    RTOUCHPAD=3
  elif [ "$CURRENT" = "right" ]; then
    ROTATION="normal"
    RTOUCHPAD=0
  else
    $JUPITER_PATH/resolutions default
    ROTATION="left"
    RTOUCHPAD=1
  fi
  if [ "$ROTATION" ]; then
    echo "$ROTATION $RTOUCHPAD" > $JUPITER_VAR/rotation_saved
    rotate_lvds $ROTATION $RTOUCHPAD
  fi
}

function restore_rotation {
  if [ -e "$JUPITER_VAR/rotation_saved" ]; then
    CURRENT=$(xrandr  | grep $LVDS_DEVICE | awk '{print $4}' | sed s#^\(##)
    RMODES=$(cat $JUPITER_VAR/rotation_saved)
    ROTATION=$(echo $RMODES | awk '{print $1}')
    RTOUCHPAD=$(echo $RMODES | awk '{print $2}')
    if [ ! "$CURRENT" = "$ROTATION" ]; then
      NO_NOTIFY=1
      if [ ! "$CURRENT" = "normal" ]; then
        $JUPITER_PATH/resolutions default
      fi
      rotate_lvds $ROTATION $RTOUCHPAD
    fi
  fi
}

function rotate_lvds {
    if [ ! "$3" = "silent" ]; then
      notify $"Rotate LCD \"$1\"" $NICON
    else
      NO_NOTIFY=1
    fi
    CURRENT=$(xrandr  | grep $LVDS_DEVICE | awk '{print $4}' | sed s#^\(##)
    if [ ! "$1" = "normal" ]; then
      $JUPITER_PATH/resolutions default
    fi
    xrandr --output $LVDS_DEVICE --rotate "$1"
    synclient orientation=$2 2>/dev/null
    echo "$1 $2" > $JUPITER_VAR/rotation_saved
}

case $1 in
  inverted)
    rotate_lvds inverted 2
  ;;
  left)
    rotate_lvds left 1
  ;;
  right)
    rotate_lvds right 3
  ;;
  normal)
    rotate_lvds normal 0
  ;;
  default)
    rotate_lvds normal 0 silent
  ;;
  restore)
    restore_rotation
  ;;
  *)
    rotate_toggle
  ;;
esac

Weißt du wie das in diesem Skript geht??


Viele Grüße
 
Hallo,

hmmm....Jupiter kenne ich nicht, aber ich sehe da nichts, wo die Ausrichtung des Eingabegeräts verändert wird. Deswegen erschließt sich mir der tiefere Sinn grad nicht ganz. Schau Dir mal diesen Wiki-Eintrag an: http://thinkwiki.de/Linux_auf_X-Tablets

Unter Punkt 2.5 findest Du auch ein Rotations-Script. Dieses veröffentlichte ist zwar auf ein X61t optimiert, funktioniert aber grundsätzlich auch bei anderen Tablets. Allerdings kannst Du da ein paar Kleingkeiten auskommentieren / löschen. Ich habe Dir hier mal die nötigen Veränderungen zusammen gefasst:

Code:
case "$CONDITION" in 
0) `xrandr -o 3` && xsetwacom set "Serial Wacom Tablet stylus" Rotate cw [s]&& `sudo setkeycodes 6d 103 6e 108 71 158 6f 159` && echo 3 > $STATUS_FILE[/s] ;; 
3) `xrandr -o 2` && xsetwacom set "Serial Wacom Tablet stylus" Rotate half [s]&& `sudo setkeycodes 6d 158 6f 103 6e 159 71 108` && echo 2 > $STATUS_FILE[/s] ;; 
2) `xrandr -o 1` && xsetwacom set "Serial Wacom Tablet stylus" Rotate ccw [s]&& `sudo setkeycodes 6e 103 71 159 6d 108 6f 158` && echo 1 > $STATUS_FILE[/s] ;;
1) `xrandr -o 0` && xsetwacom set "Serial Wacom Tablet stylus" Rotate none [s]&& `sudo setkeycodes 71 103 6d 159 6f 108 6e 158` && echo 0 > $STATUS_FILE[/s] ;; 
esac

Die beiden Semikolons am Ende jeder Zeile müssen erhalten bleiben. Dieses Script läuft bei mir auf verschiedenen Tablets. Kannst es ja mal ausprobieren, ob das was für Dich ist.

Grüße
Frank
 
Hallo zusammen,

also ich habe jetzt das Skript und den Starter, wie in der Anleitung vom Wiki und mit den Modifizierungen (Wegstreichen) erstellt.
Wenn ich den Starter ausführe, dann dreht sich auch der Bildschirm, nur bei der Stifterkennung ändert dich nichts. :(

Außerdem stellt das Skript auch den externen Monitor aus, was auch suboptimal für mich ist.

Hast du ne Idee, wie diese Probleme behoben werden können?


Viele Grüße
 
Ähem....komisch.....poste mal bitte die Ausgabe von

Code:
xsetwacom --list dev
 
Serial Wacom Tablet stylus id: 12 type: STYLUS
Serial Wacom Tablet eraser id: 13 type: ERASER
 
Bin grad etwas ratlos.....aus der Ferne betrachtet müsste es klappen. Du könntest mir aber bitte nochmal die folgende Ausgabe schicken:

Code:
bash -x ./Ort/Deines/Scriptes 1

Die Ziffer 1 kannst Du auch durch 0, 2 oder 3 ersetzen, das ist egal.
 
+ STATUS_FILE=/usr/local/bin/rotate-status
++ cat /usr/local/bin/rotate-status
cat: /usr/local/bin/rot+ STATUS_FILE=/usr/local/bin/rotate-status
++ cat /usr/local/bin/rotate-status
cat: /usr/local/bin/rotate-status: Datei oder Verzeichnis nicht gefunden
+ CONDITION=
+ '[' -n 1 ']'
+ case "$1" in
+ N=1
+ T=ccw
+ /usr/bin/xrandr -o 1
+ xsetwacom set 'Serial Wacom Tablet stylus' Rotate ccw
+ echo 1
/usr/local/bin/rotatex200t.sh: Zeile 18: /usr/local/bin/rotate-status: Keine Berechtigung
+ exit 0
ate-status: Datei oder Verzeichnis nicht gefunden
+ CONDITION=
+ '[' -n 1 ']'
+ case "$1" in
Folgendes kommt:

+ N=1
+ T=ccw
+ /usr/bin/xrandr -o 1
+ xsetwacom set 'Serial Wacom Tablet stylus' Rotate ccw
+ echo 1
/usr/local/bin/rotatex200t.sh: Zeile 18: /usr/local/bin/rotate-status: Keine Berechtigung
+ exit 0


Ich habe aber eigendlich die Berechtigung mit chmod schon freigegeben mit:

sudo chmod a+x /usr/local/bin/status-file
 
ok ich hatte rotate-status falsch benannt...

und den Fehler mit dem chmod auch behoben nun siehts so aus:

bash -x '/usr/local/bin/rotatex200t.sh' 1
+ STATUS_FILE=/usr/local/bin/status-file
++ cat /usr/local/bin/status-file
+ CONDITION=0
+ '[' -n 1 ']'
+ case "$1" in
+ N=1
+ T=ccw
+ /usr/bin/xrandr -o 1
+ xsetwacom set 'Serial Wacom Tablet stylus' Rotate ccw
+ echo 1
+ exit 0


aber der Fehler ist immernoch da
 
Zuletzt bearbeitet:
Alles klar... ich habs jetzt gesehen...
Die Cw und Ccw Werte waren vertauscht. ;)

Jetzt funktionierts super! DANKE!


Was jetzt allerdings noch stört ist das Problem mit dem zweiten Bildschirm!



Weißt du da vielleicht eine Möglichkeit?

Eigendlich müsste ja nur der zu erkennende Eingabebereich auf den Laptopbildschirm begrenzt werden. Nur wie?


Viele Grüße
 
Kein Problem, freut mich, wenn es jetzt funktioniert. Das mit dem zweiten Bildschirm müsste jedoch jemand anders beantworten, bis auf zwei drei Einsätze am Beamer hatte ich noch nie mehr als einen Bildschirm im Einsatz.

Grüße
 
  • ok1.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen
Zurück
Oben