Wie können Anwendungen wie gksu beim Start den Fokus fixieren?

429
Monty

Ich bin gespannt, wie Anwendungen wie gksu den Bildschirmfokus sperren, wenn Sie zur Eingabe eines Kennworts aufgefordert werden. Ich sehe, dass gksu sogar eine Option "-g" hat, die dieses Verhalten deaktivieren kann.

Ich bin daran interessiert, etwas Ähnliches für eine Python-App zu tun (ich habe Quickly verwendet, um die GUI-App zu generieren - GTK + 3), aber ich kann keine Informationen finden, wie dies möglich ist. Ich habe Dinge wie Vollbild () usw. gefunden, aber ich mag es wirklich, wie Gksu es tut.

Ich benutze Lubuntu 14.04 (LXDE)

Alle Hinweise oder Vorschläge wären dankbar.

0

1 Antwort auf die Frage

0
AFH

Wenn Sie sich den Quellcode ansehen, werden Sie die Funktionen grab_keyboard_and_mouse()und die Funktionen sehen ungrab_keyboard_and_mouse(), die das Sperren und Entsperren durchführen.

Der Kern Verriegeln und Entriegeln Funktionen werden durch den Aufruf der GTK Bibliotheksfunktionen durchgeführt gdk_pointer_grab()und gdk_keyboard_grab()und deren ..._ungrab()Äquivalente.

Sie müssten diese Funktionen von Python aus aufrufbar machen, aber ich weiß nicht, ob dies eine einfache Aufgabe ist oder nicht. Alternativ können Sie vielleicht ein Programm finden, das ein Meldungsfeld mit einigen Eingabefeldern und Schaltflächen anzeigt, z. B. ein erweitertes xmessage, das den Bildschirm jedoch blockiert, während er aktiv ist.

Danke für die Info AFH. Ein Blick auf den Quellcode ist sehr hilfreich und gibt mir einen guten Ausgangspunkt, was auf der Python-Seite zu tun ist. Es scheint mir auch, dass sie im Grunde die x- und y-Dimensionen des Bildschirms erhalten und eine rechteckige Box malen, die für den Bildschirm "halbgeschlossen" ist. Zumindest erscheint mir das so und es ist eine interessante Idee, wie man den Bildschirm im Wesentlichen "sperren" kann Monty vor 9 Jahren 0