Projektvorstellung - TP Tablet Control

MrGroover

Member
Themenstarter
Registriert
26 Juni 2010
Beiträge
170
TP Tablet Control

Einleitung
Einige von euch Tablet-Besitzern kennen sicherlich das Programm (Tablet Menu) unter Windows, welches startet, wenn man die vorletzte Tablet-Taste (X20xt-Serie) drückt, in dem man dann u.a. Display-Helligkeit oder Lautstärke einstellen kann. Ich hab mich gefragt, ob es sowas auch für Linux gibt, was aber irgendwie nicht der Fall war. So musste ich mir selbst was bauen, und das Ergebnis möchte ich euch vorstellen. Es nennt sich TP Tablet Control (TP sollte klar sein, dass es für ThinkPad steht ;)).

Anhang anzeigen 36735

Das eigentlich ärgerliche ist, dass es sich nicht mit Zenity umsetzen ließ, wodurch ich gezwungen wurde, mir was anderes für die GUI zu suchen. Da ich Fedora-Nutzer bin und da den Standard-Desktop Gnome nutze, fiel die Wahl auf Gtk. Mal sehen, evtl. kommt irgendwann mal noch eine Qt-GUI für die KDE-Nutzer, so dass es bei denen auch einheitlich ausschaut...


Funktionalität
  • (v0.1) Display-Orientierung per Knopfdruck ändern, inkl. Wacom-Digitizer
  • (v0.1) Display-Helligkeit per Schieberegler einstellbar
  • (v0.1) Systemlautstärke per Schieberegler einstellbar (damit ist Musik o.ä. gemeint, nicht Lüfter oder Festplatte ;))
  • (v0.1) Drahtlosverbindungen per Knopfdruck ein-/ausschaltbar. Dies klappt aber nur, wenn sie im BIOS nicht deaktiviert wurden

Was ich bisher nicht vernünftig hin bekommen habe, ist die Lüftersteuerung. Das Problem ist, dass dafür root-Rechte nötig sind. Für ein Konsolenprogramm ist das kein Problem, da funktioniert sudo problemlos, aber Gtk und root-Rechte ist so eine Sache, wahrscheinlich zu recht. gksudo und Co. gibt es für Fedora nicht, womit ich auf der Suche nach anderen Lösungen bin. Ich dachte da an PolicyKit, aber die Doku ist nicht wirklich für Neulinge zugänglich (frei verfügbar ist sie, aber ich werde nicht schlau daraus). Und Tutorials oder How-Tos habe ich auch nicht gefunden.


Installation

Man sollte in der Lage sein, auf seinem System Programme zu kompilieren. Dazu wird ein Kompiler (gcc) und diverse Entwicklungspakete benötigt. Ich denke, die werden bei den meisten Distributionen mit installiert, wenn man den gcc installiert. Zusätzlich wird noch das Entwickler-Paket von Gtk2 benötigt, sowie zur Laufzeit dann natürlich ein funktionierendes Gtk2. Unter Fedora nennt sich das Entwicklerpaket gtk2-devel. Für die volle Funktionalität werden weiterhin folgende Pakete benötigt (Fedora-Namen, was benötigt wird, ist mit angegeben, somit sollten die entsprechenden Pakete bei anderen Distributionen zu finden sein)
  • xorg-x11-server-utils (Kommando xrandr)
  • xorg-x11-drv-wacom package (Kommando xsetwacom)
  • pulseaudio-utils (Kommando pacmd, könnte auch pactl heißen, dann muss aber der Quellcode angepasst werden)
  • rfkill (Kommando rfkill)

Die eigentliche Installation geht dann mit entpacken und folgenden Befehlen von statten:
Code:
./configure
make
su -c 'make install'
Installiert werden die Binärdatei des Programms nach [PREFIX]/bin sowie die Programmoberfläche (glade-Datei) nach [PREFIX]/share/TP_Tablet_Control. Sonst werden keine Dateien im System verteilt. [PREFIX] ist standardmäßig /usr/local, kann aber bei ./configure durch die bekannte Option --prefix geändert werden.

Um TP Tablet Control auf die entsprechende Tablet-Taste zu legen, geht man wie folgt vor:
http://www.thinkwiki.org/wiki/Tablet_Hardware_Buttons
Den Befehl zum setzen der Tastencodes habe ich bei mir in /etc/rc.d/rc.local eingetragen:
Code:
setkeycodes 66 180 67 181 68 182 69 183

Somit werden die Tastencodes bei jedem Systemstart eingestellt und stehen dann zur Verfügung. Wenn dies der Fall ist, kann man unter System->Einstellungen->Tastenkombinationen noch eine Aktion für die Taste anlegen. Dazu einfach auf Hinzufügen klicken, einen Namen vergeben und als Befehl TP_Tablet_Control. Zum Vergeben der Tastenkombination klickt man in der Rechten Spalte noch bei TP_Tablet_Control und drückt die entsprechende Tablet-Taste. Hier lässt sich natürlich auch jede andere Taste/Tastenkombination verwenden. Ab sofort sollte TP Tablet Control starten, wenn man die gewählte Taste/Tastenkombination drückt.

Nicht wundern, wenn gconftool-2 vorhanden ist, dann werden die Panels verändert (auto_hide_size). Im Porträtmodus bin ich nicht in der Lage, den Mauszeiger mit den Stift nah genug an den Rand zu bekommen, um die Panels auszuklappen. Bei mir sind die so eingestellt, dass die automatisch verborgen werden.


Todo
  • Fan Control hinbekommen
  • Qt GUI
  • Installation portabler machen, so dass geprüft wird, welche Kommandos vorhanden sind und Hinweise erscheinen oder die Funktionalität deaktiviert wird
  • Programm Konfigurierbar machen, evtl. auch mit Profilen
  • Icons ersetzen, dass ist aber mehr eine Lizenzfrage

Quellcode
So, und zum Abschluss noch das wichtigste: der Quellcode. Diesen habe ich bei Sourceforge hochgeladen: https://sourceforge.net/projects/tptabletcontrol/.


Disclaimer
Verwendung geschieht auf eigene Gefahr, jeder muss selber wissen, ob er die gebotenen Funktionen benötigt und/oder nutzen möchte. Getestet wurde bei mir mit Fedora 13 und 14, jeweils in der 64-Bit Version. Hardware ist bei mir ein X201-Tablet ohne Multitouch.
 

Anhänge

  • TP_Tablet_Control.png
    TP_Tablet_Control.png
    25,2 KB · Aufrufe: 351
Hi,

sehr interessant - auch wenn ich kein Tablet habe. Schön, daß hier jetzt ein weiteres Linux-Projekt unterwegs ist. :thumbup:
 
linrunner' schrieb:
auch wenn ich kein Tablet habe.
Das haben die wenigsten, und davon die wenigsten werden Linux einsetzen... Und dann bringt es wahrscheinlich auch nur denen was, die anderen Sachen lassen sich ja auch sehr einfach über die Tastatur erreichen, die bei den nicht-Tablets immer sofort verfügbar ist. ;)

linrunner' schrieb:
ein weiteres Linux-Projekt unterwegs ist. :thumbup:
Naja, wie viel sich ändern wird, weiß ich noch nicht, die TODOs sind für mich nicht so von großer Bedeutung, eher Sachen, die mir eingefallen sind, was man tun könnte. Denkbar ist auch eine configure-Option, um das X200T zu definieren, da ist es glaube mit nem anderen xwacomset Parameter getan. Ist also mehr "hab es für mich gebaut, aber evtl bringt es auch anderen was". Allerdings fehlt noch die Vorstellung in anderen Foren (englischsprachigen) oder den think(-)wikis.

Trotz allem, erst mal Danke fürs Feedback. :)
 
linrunner' schrieb:
Hi,

sehr interessant - auch wenn ich kein Tablet habe. Schön, daß hier jetzt ein weiteres Linux-Projekt unterwegs ist. :thumbup:


ebenso. hört sich wirklich gut an. bin leider auch (noch) ohne tablet.
 
Das ist ja das Problem.....

.... ich habe kein Tablet, eben weil ich Linux benutze. Das eine bedingt das andere.

Lieber ohne Tablet auskommen als sich mit dem Betriebssystem des Hersteller aus dem Nord Westen der USA rumschlagen.

JO
 
Was ist daran das Problem? Nur weil die Handschriftenerkennung nicht geht? Klar ist das das Argument schlechthin für ein Tablet, aber es ist nicht der einzige Vorteil. Mitschriften im kleineren Umfang kann man auch ohne Erkennung der Handschrift machen. Ebenso mal eine Skizze erstellen, wenn kein Zettel zur Hand ist oder diese eh nachher per e-Mail verschickt werden soll. Dann ist da das bessere Display, was man so in der Geräteklasse (bezogen auf die Größe) sonst nicht findet. Die Möglichkeit, das Gerät auch mal in einer anderen Position zu nutzen, als immer nur im Notebook-Modus, ist gern genommen.

Zugegeben, man erkauft sich das alles zu einem höheren Preis, aber es hat Vorteile, die man dafür bekommt. Allerdings auch Nachteile, so ist das X20xT größer und schwerer als ein X20x (ohne s reicht schon). Mir egal, ich bin ja kein Schwächling. ;) Aber egal wie, ich sehe mich mit Tablet in keinster Weise gezwungen, Windows zu benutzen, eher im Gegenteil. Linux nutze ich privat seit mindestens 4 Jahren produktiv, und jetzt bewusst mit Tablet.
 
Vielen Dank für deine Mühen!

Anbei ein kleines Feedback:

Gerät: X200 Tablet 7450-6BG superbright outdoor, WLANAdapter II (wohl ein RTL8191SE)

System: frische Installation Mint 10 64bit Gnome TLP

Installation: Problemlos

was geht:
-Rotation
-Brightness (verzögert, ca 1 Sekunde, aber brauchbar)
-Lautstärke/ Mute (wird nicht mit Gnomeanzeige synchronisiert)

was geht nicht:
-Fancontrol (ist aber auch eigentlich unnötig in einem onscreen Tool)
-wireless buttons (incl. Wifi alle grau, nutze aber nur Wifi, der Rest is nicht vorhanden, oder im Bios deaktiviert)

Fazit; Ein nettes Tool, fancontrol würde ich rauslassen, vielleicht noch ein paar aktionsknöpfe für Standby oder Bildschirm aus)
Nochmals Danke für die Arbeit...
 
pispot' schrieb:
Vielen Dank für deine Mühen!

Anbei ein kleines Feedback:

Danke dafür. :)

System: frische Installation Mint 10 64bit Gnome TLP
Was nicht Fedora-mäßiges, gut.

-Lautstärke/ Mute (wird nicht mit Gnomeanzeige synchronisiert)
Die Sync ist in der Tat noch gar nicht angegangen wurden. Hier muss ich mich mal einarbeiten, wie das am besten geht.

was geht nicht:
-Fancontrol (ist aber auch eigentlich unnötig in einem onscreen Tool)
Bekannt, dafür braucht es Root-Rechte. Das ist unter Gnome gar nicht so einfach hinzubekommen. Sudo geht jedenfalls nicht.
-wireless buttons (incl. Wifi alle grau, nutze aber nur Wifi, der Rest is nicht vorhanden, oder im Bios deaktiviert)
Hmm, meine Vermutung: hast du rfkill installiert?

Fazit; Ein nettes Tool, fancontrol würde ich rauslassen, vielleicht noch ein paar aktionsknöpfe für Standby oder Bildschirm aus)

Bildschirm an/aus hatte ich auch schon mal überlegt. Das ist aber gar nicht so einfach, zufriedenstellend zu lösen. Ich habe mir auf die Taste mit dem Schloss (nicht den Schieber), folgenden Befehl gelegt

Code:
xset dpms force off
Das Problem ist jetzt, dass der Bildschirm an geht, so bald sich irgendwas tut, also Mausbewegung, Tastatur, oder auf dem Display (Touch, Pen). Gerade der Bildschirm ist aber so sensibel, dass er schon auf kleinste Berührungen, selbst am Rahmen, reagiert und der Bildschirm wieder an ist.
Die andere, mir bekannte Möglichkeit ist über xrandr, dann ist das Display aber richtig aus und kommt selbst bei Mausbewegungen/Tastatureingaben nicht wieder zurück, sondern nur über xrandr. Wer ne andere Lösung hat, nur her damit.

Standby nutze ich nicht. :) Aber Ziel war eher Funktionen zu implementieren, die sonst nur auf der Konsole erreichbar sind. Standby ist relativ schnell übers Panel zu erreichen (Gnome < 3), auch mit Stift und wahrscheinlich mit Finger.

Nochmals Danke für die Arbeit...
Freut mich, dass auch andere was von haben. :)
 
Hi,

auch wenn ich weder Tablet noch Linux nutze, eine kleine sprachliche Anmerkung:

Bei der Display-Ausrichtung würde ich nicht von "Inverted" sprechen, denn gerade bei sowas bedeutet invertiert nicht nur umgedreht (und das noch nicht mal zu 100%), sondern eben auch invertiert im Sinne von schwarz wird weiß und dergl... Das ist m.E. missverständlich.

Löse das doch besser mit Gradzahlen, also Normal, 90°, 180° und 270°.

Nur eine kleine Anregung...

Grüße vom Sprachverdreher,
Matt
 
sehr cooles Projekt! Allerdings habe ich bei der Installtion unter Ubuntu 10.04 folgendes Problem:

./configure wird mit folgender Fehlermeldung abgebrochen:


Code:
checking whether to build static libraries... yes
checking for pkg-config... /usr/bin/pkg-config
checking for GTK+ - version >= 2.20.0... no
*** Could not run GTK+ test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GTK+ is incorrectly installed.
configure: error: Gtk+ 2.20.0 or higher required.

Dabei ist in ubuntu 10.04 eigentlich Gtk+ 2.20 enthalten...
 
Zeig doch mal die Logdatei:
Code:
*** The test program failed to compile or link. See the file config.log for the
 
bei mir funktioniert das Programm unter ubuntu nur teilweise. Die Achsen bei den Maus/Stiftbewegungen sind vertauscht und der Ton funktioniert auch nicht.
Die Displayhelligkeit lässt sich ohne Probleme einstellen und auch wlan und bluetooth lassen sich umstellen.

Das mit dem Ton ist mir relativ egal, weiß jemand, wie ich die Achsen für die Stift/Mausbewegungen vertauschen kann?
 
Es sind sozusagen horizontale und vertikale Achse vertauscht. Wenn ich den stift nach links/rechts bewege geht der Mauszeiger nach oben/unten und umgekehrt. Außerdem erkennt er die Position an einer falschen stelle.

Normalerweise benutze ich dieses Skript zum rotieren und es funktioniert bestens: http://paste.ubuntu.com/566258/

Ich finde deine Idee wirklich klasse und ich würde mich freuen, wenn wir es gemeinsam schaffen, das Programm auch unter ubuntu zum laufen bekommen. :)
 
PaterPeng' schrieb:
Es sind sozusagen horizontale und vertikale Achse vertauscht. Wenn ich den stift nach links/rechts bewege geht der Mauszeiger nach oben/unten und umgekehrt. Außerdem erkennt er die Position an einer falschen stelle.
Okay, verstehe. Ich kann mir denken, wo das Problem liegt. Ich hatte ursprünglich mal ein Skript gefunden, bei dem ich das gleiche Problem hatte, wie du es jetzt hast, nur eben unter Fedora. Da half es, die Rotationsrichtung des Digitizers einfach zu ändern (oder die der Anzeige, führt aufs gleiche). Muss ich mir mal Gedanken machen, wie man das am besten implementiert...
 
Nachdem ich nach weniger als 24 Stunden wieder genervt von ubuntu war bin ich jetzt wieder bei Debian Squeeze und werde so schnell keinen Ausflug zu anderen Distris machen :thumbup:

Das Problem ist in dieser Umgebung jedoch das gleiche.

Wie hast du denn vor, wie es mit deinem Projekt weitergeht?
 
PaterPeng' schrieb:
Wie hast du denn vor, wie es mit deinem Projekt weitergeht?

Gute Frage. :D Wie ich eingangs schon erwähnte, es ist mehr ein Lust-und-Laune-Projekt.

Da du es eh selbst kompilieren musst, kannst du ja mal in der src/tp_tc_display.c in Zeile 55 ein CW statt des CCW schreiben und in Zeile 60 das Gegenteil (CCW statt CW). Die invertierte (180° Drehung) und normale Position sollten jetzt ja schon richtig gehen, oder?
 
ne, klappt irgendwie auch nicht. Ich glaube jetzt ist es genau in die andere Richtung vertauscht. Sehr merkwürdig, eigentlich hat die Idee sehr vielversprechend ausgesehen.

Vielleicht schreibe ich mir dein Programm einfach so um, dass ich oben nur 2 Buttons habe; Normal und Tablet Modus. Und um in Normal zu wechseln nehme baue ich das Skript ein, das ich jetzt immer benutze. Andere Modi benötige ich sowieso nicht.
Ist vielleicht ein bisschen Quick and Dirty, aber eigentlich sollte ich grade ja auch für Klausuren lernen :blink:
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben