Seite 1 von 1

global hotkeys

Verfasst: Freitag 6. November 2009, 16:08
von ska.ndal
hallo,

ich würde gerne ein prog mit global hotkeys schreiben, habe aber nur soweit ahnung, dass ich das mit dbus machen kann. mehr weiss ich leider nicht..

kann mir jemand ein beispiel geben, wie ich solche abfangen kann?

danke, ska.ndal

Verfasst: Freitag 6. November 2009, 16:10
von lunar
DBus hat mit globalen Tastaturkürzeln exakt gar nichts zu tun. Die Behandlung von Tastaturkürzeln hängt davon ab, in welcher Umgebung Du mit welchem Toolkit programmierst, diese Informationen solltest Du also noch geben.

Verfasst: Freitag 6. November 2009, 16:19
von ska.ndal
ich will in gnome programmieren.

mit welchem tk weiß ich nicht. geht das nicht auch ohne (gemeint ist doch pyqt etc?)? also bloss als dienst?

Verfasst: Freitag 6. November 2009, 16:56
von lunar
Es geht auch ohne, wenn man direkt mit der Xlib programmieren möchte. Frag mich aber nicht, wie.

Verfasst: Freitag 6. November 2009, 17:09
von ska.ndal
erinnerst du dich noch an:
http://forum.ubuntuusers.de/topic/globa ... ealisieren
(bin aber nich derselbe autor..)

ich nehm mal an du bist der gleiche, oder?

ich versteh nur leider das das ganze nicht ausreichend. könntest du mir vielleicht einfach nen beisp geben, das so einfach wie möglich ist und vor allem kommentiert ist? das wäre echt super...

danke

Verfasst: Freitag 6. November 2009, 17:31
von lunar
Ja, dieser Beitrag stammt auch von mir. Nur hat dieser Beitrag etwas ganz anders zum Thema. Er beschreibt nicht, wie man innerhalb eines Programms globale Tastaturkürzel implementiert, sondern wie man ein Programm so schreibt, dass es von außen ferngesteuert werden kann. Das kann man letztlich auch dazu verwenden, Programme über Tastenkürzel zu steuern, allerdings ist geschieht das dann außerhalb des Programms.

Erkläre doch einfach mal, was Du warum mit Tastenkürzeln steuern möchtest, dann kann ich Dir auch sagen, ob der beschriebene Ansatz zu Deinem Problem passt.

Verfasst: Freitag 6. November 2009, 17:49
von ska.ndal
ja, das ist schon richtig. ich will GLOBALE hotkeys..

will, dass ein programm von aussen, oder wenn es sogar nur in der befehlszeile gestartet ist auch ansprechbar ist.

und nur aus neugier: wenn ich lokale HKs haben will, mach ich das über das TK?

Verfasst: Freitag 6. November 2009, 17:54
von lunar
Ich habe nicht gefragt, ob Du lokale oder globale Kürzel möchtest, sondern ob Du wirklich Tastenkürzel implementieren möchtest/musst, oder ob die Fernsteuerbarkeit reicht. In letzterem Fall musst Du aber Gnome separat so konfigurieren, dass es auf Tastendruck Dein Programm ansteuert.

Verfasst: Freitag 6. November 2009, 18:00
von ska.ndal
?? du verwirrst mich.

ich will nen prog, das wenn es gestartet ist über nen bestimmten kürzel eine funktion ausführt. egal, ob es nun gerade versteckt oder was auch immer ist.

aber es soll nicht gestartet werden, falls es nicht gerade gestartet ist. ist das der unterschied zwischen dbus und dem andern?

Verfasst: Freitag 6. November 2009, 18:11
von lunar
Nochmal: DBus hat nichts, aber auch wirklich gar nichts mit Tastenkürzeln zu tun. DBus ist schlicht und einfach ein Mechanismus zur Kommunikation zwischen Prozessen. Man kann nun (z.B. über qdbus oder dbus-send) DBus-fähige Programme auch über die Kommandozeile steuern, und somit letztlich auch über Tastenkürzel. Allerdings bedarf es dazu eines zweiten Programms, welches permanent läuft, Tastenkürzel abfängt und anschließend entsprechende Aktionen ausführt, z.B. den Hotkey-Dienst der laufenden Desktop-Umgebung.

Die Alternative ist, dass das zu steuernde Programm Tastenkürzel selbst abfängt und behandelt. Dazu muss man allerdings XLib programmieren oder ein GUI-Toolkit verwenden, was aufwendiger ist.

Wenn Dir das jetzt immer noch nicht klar ist, dann lies Wikipedia und andere Dokumentation zum Thema DBus.

Verfasst: Freitag 6. November 2009, 18:16
von ska.ndal
habs kapiert..

ich len mich mal ein bisschen in gui-schnick-schnack ein..

danke

Verfasst: Samstag 7. November 2009, 22:44
von birkenfeld
Ein nicht desktopspezifisches Tool für globale Hotkeys unter X11 ist übrigens xbindkeys.