Xournal mit Stylus unter Ubuntu 13.10@Surface Pro 2

Hier einige hoffentlich hilfreiche Handreichungen für diejenigen, die ihr Surface Pro 2 auch unter GNU/Linux gerne zum Mitschreiben benutzen möchten.

  1. Als Programm nutze ich Xournal. Zum Installieren einfach folgenden Befehl im Terminal ausführen:
    sudo apt-get install xournal
  2. Xournal Programmeinstellungen: Unter „Optionen“ sollte „X-Input verwenden“ bereits angehakt sein. Jetzt setzen wir auch noch einen Haken bei „Drucksensibilität“. Die zweite Taste (Seitentaste des Stylus) ist standardmäßig als Radierer eingestellt. Die Radierspitze des Stylus funktioniert leider (noch) nicht wie gewünscht, da sie wie die Spitze ebenfalls einen Linksklick auslöst.
  3. Xournal immer im Fullscreen-Mode starten: ein Terminal öffnen und in das Xournal Konfigurationsverzeichnis wechseln:
    cd ~/.xournal

    Dann die Konfigurationsdatei editieren:

    gedit config

    Hier nach dem Eintrag „window_fullscreen=false“ suchen und auf „window_fullscreen=true“ setzen (wer lieber die Startleiste von Ubuntu weiter angezeigt bekommen möchte setzt stattdessen „window_maximize=false“ auf true).

  4. Jetzt brauchen wir etwas bash-Programmierung für unseren Xournal Startbutton. Der soll folgendes machen: den Bildschirm um 90 Grad gegen den Uhrzeigersinn drehen, Touchinput abschalten, die Eingaben des Stylus ebenfalls um 90 Grad drehen und die Werte der x-Achse invertieren, Xournal starten und beim Beenden des Programms alles wieder auf den normalen Ausgangszustand zurückstellen. Dafür erstellen wir zunächst eine Skript-Datei~über folgendes Terminalkommando:
    gedit ~/.local/share/myxournal
  5. In die Datei den folgenden Code eintragen und dann speichern:
     #!/bin/bash
    TouchID=$(xinput --list --id-only 'Atmel Atmel maXTouch Digitizer')
    StylusID=$(expr $TouchID - 2)
    StylusName=$(xinput --list --name-only $StylusID)
    if [[ "$StylusName" != "MICROSOFT SAM" ]]; then
    StylusID=$(expr $TouchID - 1)
    fi
    xinput disable $TouchID
    xinput set-prop $StylusID "Evdev Axes Swap" 1
    xinput set-prop $StylusID "Evdev Axis Inversion" 1 0
    xrandr --output eDP1 --rotate left
    xournal
    wait $!
    xinput enable $TouchID
    xinput set-prop $StylusID "Evdev Axes Swap" 0
    xinput set-prop $StylusID "Evdev Axis Inversion" 0 0
    xrandr --output eDP1 --rotate normal
    
  6. Jetzt muss die Datei über das Terminal noch auf ausführbar gestellt werden:
    chmod +x ~/.local/share/myxournal
  7. Als letztes bauen wir uns noch eine Verknüpfung für den Unity-Launcher/ die Ubuntu Startleiste. Am Einfachsten ist es, den bestehenden Startknopf für Xournal anzupassen. Dazu dessen .desktop-File über das Terminal öffnen:
    sudo gedit /usr/share/applications/xournal.desktop
  8. Dort ersetzen wir jetzt den Aufruf für Xournal „Exec=xournal %f“ durch unser bash-Skript. Den absoluten Pfad mit dem eigenen Benutzernamen anpassen „Exec=/home/USERNAME/.local/share/myxournal“.

Jeder Aufruf von Xournal über dessen Starticon sollte jetzt Xournal im Vollbildmodus starten, den Screen und die Stylusabfrage ins Hochformat drehen und Touchinput abschalten. Über das rechte Icon in der obersten Symbolleiste von Xournal lässt sich der Vollbildmodus beenden. Wenn dann Xournal geschlossen wird, werden alle Änderungen an der Bildschirmausrichtung, Stylus und Touchinput rückgängig gemacht.
EDIT:
Skript angepasst, da sich die IDs ändern, je nachdem, ob man bspw. eine Bluetooth-Maus oder das TypeCover 2 angeschlossen hat. Es kann im Skript alternativ für die ID des Stylus direkt nach „MICROSOFT SAM“ gesucht werden, wenn man kein Microsoft Cover verwendeten (dessen Touchpad heißt leider sonst ebenfalls „MICROSOFT SAM“).

2 Gedanken zu „Xournal mit Stylus unter Ubuntu 13.10@Surface Pro 2“

  1. Ich versuche sowas gerade auf der ersten Surface-Generation… hast du irgendwelche Erfahrungen gemacht, wie man die Drucksensitivität von dem Stift unter Linux aktiviert kriegt?

Schreibe einen Kommentar zu Jannis Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert