Ubuntu 13.10@Surface Pro 2 – Displayhelligkeit

Displayhelligkeit

  1. Egal welche Einstellung im laufenden Betrieb für die Displayhelligkeit gesetzt werden, beim Neustart erstrahlt das Display des Surface Pro 2 immer wieder mit der vollen Helligkeit. Um dieses Verhalten zu ändern, muss ein kleiner Eintrag in „/etc/rc.local“ gemacht werden. Einfach folgende Zeile vor „exit 0“ eintragen:

    echo XX > /sys/class/backlight/acpi_video0/brightness

    XX steht dabei für die Helligkeit in Prozent.
    Für weitere Skripte hilfreich: Die Einstellung für die Displayhelligkeit kann im laufenden Betrieb mittels des folgenden Kommandos geändert werden:

    echo XX | sudo tee /sys/class/backlight/acpi_video0/brightness
  2. Jetzt kümmern wir uns darum, die Displayhelligkeit einfach über eine Tastenkombination auf dem TypeCover 2 ändern zu können. Dafür bietet sich bspw. die Tastenkombination Strg+Fn+F1 bzw. Strg+Fn+F2 an. Zunächst benötigen wir aber eine Skript, dass die Helligkeit bei Tastendruck um einige Prozentpunkte absenkt oder erhöht. Dafür erstellen wir die folgende Datei (~/.local/share/screenbrightness) und machen sie ausführbar (chmod +x ~/.local/share/screenbrightness):
    #!/bin/bash
    BRIGHT=$(cat /sys/class/backlight/acpi_video0/brightness)
    if [[ "$1" == "up" ]] && [ "$BRIGHT" -le "90" ]; then
    	BRIGHT=$(($BRIGHT + 10))
    	echo $BRIGHT > /sys/class/backlight/acpi_video0/brightness	
    elif [[ "$1" == "down" ]] && [ "$BRIGHT" -ge "10" ]; then
    	BRIGHT=$(($BRIGHT - 10))
    	echo $BRIGHT > /sys/class/backlight/acpi_video0/brightness
    fi
    

    Die Datei „/sys/class/backlight/acpi_video0/brightness“ ist nur für root änderbar, daher müsste jedes Mal das root-Passwort eingegeben werden. Da die Datei aber außer der Helligkeit keine andere Funktion hat, können in diesem Fall wohl gefahrlos die Schreibrechte verändert werden:

    sudo chmod +666 /sys/class/backlight/acpi_video0/brightness

    Jetzt erstellen wir noch unter „Systemeinstellungen->Tastatur->Tastenkürzel“ zwei „Eigene Tastenkürzel“. Eines mit dem Namen „BrightnessUp“, dem Befehl „/home/USERNAME/.local/share/screenbrightness up“ und dem Tastenkürzel „Strg(+Fn)+F2“. Das andere entsprechend „BrightnessDown“, dem Befehl „/home/USERNAME/.local/share/screenbrightness down“ und dem Tastenkürzel „Strg(+Fn)+F1“.
    Nach einmaligem Ab- und wieder Anmelden sollten die Tastenkürzel funktionieren.

    ALTERNATIV:
    Wenn Ubuntu immer mal wieder die Dateiberechtigungen für „/sys/class/backlight/acpi_video0/brightness“ zurücksetzt, kann alternativ wie folgt vorgegangen werden: Die Bashdatei komplett root übergeben:

    sudo chown root:root /home/USERNAME/.local/share/screenbrightness
    sudo chmod 700 /home/USERNAME/.local/share/screenbrightness

    Jetzt, um die Passwortabfrage zu umgehen, das Skript in die sudoers Datei eintragen:

    sudo visudo

    Dort unterhalb von „%sudo ALL=(ALL:ALL) ALL“ folgendes eintragen und die Datei speichern:

    USERNAME  ALL=(ALL) NOPASSWD: /home/USERNAME/.local/share/screenbrightness

    Zu guter Letzt müssen nur noch die Befehle der beiden Keyboardshortcuts entsprechend angepasst werden: „sudo /home/USERNAME/.local/share/screenbrightness up“ bzw. „down“.

  3. Wenn Ubuntu den Bildschirm sperrt, wird ist das Display zwar „blank“ und zeigt den Lockscreen nicht an, aber die Hintergrundbeleuchtung geht nicht aus. Bisher habe ich nur den folgenden Workaround gefunden: Unter „Systemeinstellungen->Helligkeit und Sperren“ den Haken bei „Bildschirm abdunkeln, um Energie zu sparen“ entfernen, „Bildschirm abschalten, wenn inaktiv für:“ auf „Nie“ setzen und Sperren auf „AUS“ setzen. Ab sofort muss der Bildschirm also immer händisch über „Strg+Alt+L“ gesperrt werden! Für das Abdunkeln bzw. Ausschalten erstellen wir nun die Datei „screendpms“ („gedit ~/.local/share/screendpms“):
    #!/bin/bash
    xset dpms 300 600 900
    

    Die drei Werte sind dabei die Sekundenangabe für Standby, Suspend und Off des Displays (s. Link).
    Die Datei muss noch ausführbar gemacht werden „chmod +x ~/.local/share/screendpms“ und zu den Startprogrammen hinzugefügt werden: „Programme->Startprogramme“, neues Startprogramm mit Befehlt „/home/USERNAME/.local/share/screendpms“.

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“).

Logitech k810 Keyboard@Ubuntu 13.10

Logitech k810Es ist etwas umständlich, das Bluetooth Keyboard k810 von Logitech unter Ubuntu 13.10 zum Laufen zu bekommen, denn die Einrichtung über das GUI funktioniert nicht (nach Eingabe des Pairing-Keys kommt immer nur die Fehlermeldung, dass dieses nicht geklappt hat).
Um die Tastatur dennoch dazu zur Zusammenarbeit mit Ubuntu zu bewegen, müssen zunächst zwei Terminal-Fenster geöffnet werden (Strg+Alt+T; dann Umschalt+Strg+N). Anschließend einfach nach den folgenden Schritten vorgehen:

  1. Über eines der beiden Terminals „bluez-hcidump“ nachinstallieren:
    sudo apt-get install bluez-hcidump
  2. In Terminal 1 hcidump starten. Ab sofort werden in diesem Terminal alle Bluetooth-Aktivitäten angezeigt:
    sudo hcidump -at
  3. Den Pairing-Modus des k810-Keyboards starten: Bluetooth-Taste auf der Rückseite gedrückt halten und dann über F1, F2 oder F3 den „Kanal“ aussuchen.
  4. In Terminal 2 die MAC-Adresse des Keyboards suchen. Sie hat die Form „XX:XX:XX:XX:XX:XX“:
    hcitool scan
  5. In Terminal 2 das Pairing unter Zuhilfenahme der eben ermittelten MAC-Adresse starten:
    sudo bluez-simple-agent hci0 XX:XX:XX:XX:XX:XX
  6. Jetzt sollten im Terminal 1 einige Bluetooth-Aktivitäten durchlaufen. Unter der Ausgabe sollte auch ein Key („passkey: XXXXXX) angezeigt werden – eine 6stellig Zahlenkombination.
  7. Diese Zahlenkombination auf dem Logitech k810 Keyboard eingeben (was jeweils eine Ausgabe in Terminal 1 erzeugen sollte) und am Ende mit Enter bestätigen.
  8. In Terminal 2 sollte mit „New device (/org/bluez/1377/hci0/dev_XX_XX_XX_XX_XX_XX)“ angezeigt werden, dass die Tastatur erfolgreich erkannt und hinzugefügt wurde.
  9. Nun sollte die Tastatur auch im GUI (ein Klick auf das Bluetooth-Icon im Benachrichtigungpanel) als „Logitech K810“ auftauchen und sich mittels eines Klicks im Untermenü auf „Verbindung“ problemlos verbinden lassen (im Panel wird dann sogar die geschätzte Akku-Restkapazität angezeigt)
  10. Damit die Verbindung nicht bei jedem Neustart erneut manuell angestoßen werden muss, sollte die Tastatur zu den Geräten hinzugefügt werden, denen „vertraut“ wird:
    sudo bluez-test-device trusted XX:XX:XX:XX:XX:XX yes

Bislang gibt es mit dieser Lösung eine unschöne Einschränkung:

  • Die gesamte obige Prozedur muss jedes Mal wiederholt werden, wenn einer der anderen verfügbaren Tastatur-Kanäle für andere Geräte konfiguriert wurde.

Links:

kzacom.ch
linux-hardware-guide.de