staging.inyokaproject.org

Bessere Virtuelle Tastatur

Status: Ungelöst | Ubuntu-Version: Ubuntu 9.10 (Karmic Koala)
Antworten |

Andyh-pyedit

Anmeldungsdatum:
26. Januar 2009

Beiträge: Zähle...

Hallo

Da ich mir jetzt einen Tablett Pc gekauft habe will ich jetzt eine bessere Virtuelle Tastatur. Die von Windows 7 gefällt mir gut, vor allem das sie auftaucht wenn man in einem Programm in ein Feld klickt in das man Text eingeben kann. Unter Ubuntu habe ich ähnliches noch nicht gefunden. Die Virtuellen Tastaturen von Ubuntu (onboard, gok) muss man selber öffnen wenn man was eingeben will und wenn ich dann ein video auf YouTube anschaue muss ich sie zumachen (wegen dem platz) und beim nächsten mal wenn ich sie brauche wieder öffnen, das ist lässtig.

Ich denke die Tastatur müsste ich hinbekommen(pygtk mit einem Fenster das keinen Focus annimmt und mit der xlib die keyevents senden)

Ich muss jetzt nur noch wissen wie ich erkennen kann das man die Tastatur braucht oder nicht, also um man gerade text eingeben kann oder nicht. Achso schreiben tue ich das in Python.

Hatte auch schon an ein paar events aus der Xlib gedacht: KeymapNotify (das müsste es sein) FocusIn MotionNotify

Nur bekomme ich da keine events:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import Xlib 
import Xlib.X as X 
import Xlib.display as display 

dsp = display.Display() 
screen = dsp.screen() 
root = screen.root 
root.change_attributes(event_mask = (X.FocusChangeMask)) 

dsp.flush() 
while 1: 
    e = root.display.next_event() 
    print e 

Weis von euch einer weiter?

Währe sicher ein gutes Projekt denke ich mal wenn es mal funktioniert.

Gruß Andyh

Wutzara

Anmeldungsdatum:
29. November 2008

Beiträge: Zähle...

ich denke das du da ne Veränderung am Quellcode von GTK vornehmen musst. Jedesmal wenn du in ein Textfeld klickst, müsste das Textfeld-Objekt ein Signal an das Betriebssystem senden ("Hallo, will onScreenKeyboard") welches dann dein Programm aufsammeln kann und darauf reagieren kann. Ich hab keine Ahnung ob sowas schon in GTK integriert ist - am besten frägst du da mal im IRC bei den Devs nach. Als Kommunikationsschnittstelle könnte Dbus dienen.

Gruß Wutzara

Antworten |