klimmbimm
Goto Top

Wie kann ich bei openSUSE Tastenkombinationen session-übergreifend definieren?

Ich rufe ein Shell-Skript auf, indem ich dafür in den Systemeinstellungen von openSUSE 10.2 eine Tastenkombination angelegt habe. Dies funktioniert leider nur, wenn ich angemeldet bin und der Desktop nicht gesperrt ist.
Die Tastenkombination ist nur der Druck auf die Taste "Rollen" und das Script bewirkt, dass der KVM-Switch auf einen anderen Rechner umschaltet. Es ist sehr unpraktisch, dass die Tastenkombinationen nur funktionieren, wenn ich angemeldet bin.
Kann man diese KDE-Hotkeys (die ja durch irgendeinen Dienst gesteuert werden) irgendwie auch abgemeldet benutzen?
Bzw. gibt es eine alternative Möglichkeit Tastenkombinationen zu definieren, die unabhängig von KDE funktioniert?

Content-Key: 157139

Url: https://administrator.de/contentid/157139

Printed on: April 19, 2024 at 08:04 o'clock

Member: dog
dog Dec 16, 2010 at 18:13:27 (UTC)
Goto Top
Unter Debian findest du in der /etc/inittab folgenden Eintrag:
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

Das sollte als Ansatz reichen face-smile
Member: Klimmbimm
Klimmbimm Dec 17, 2010 at 10:16:26 (UTC)
Goto Top
Danke für den Tipp, aber ich bin mir nicht sicher, ob der zielführend sein kann.

Ich hab mir mal die zur inittab-gehörige man-page angeguckt - http://unixhelp.ed.ac.uk/CGI/man-cgi?inittab+5 :
Die Autostart-Befehle dort sind wohl immer so aufgebaut:
id:runlevels:action:process

Die id scheint kein Problem zu sein. So wie ich das verstanden hab muss die nur unique sein. Da kann ich mir ja anscheinend was ausdenken.
Die Runlevels würd ich bei 12345 belassen (wie beim Strg+Alt+Entf-Beipiel).
Der Process ist das Skript, was ich geschrieben hab. Da muss ich doch nur drauf achten, dass root (?) diese Datei ausführen kann, oder?
Kompliziert finde ich den action-Parameter. Dort ist für mein Anliegen (Reaktion auf Druck der "Rollen"-Taste auf der Tastatur) die Aktion "kbrequest" wohl die geeignete.
D.h. meine Zeile in der inittab sollte ca. so aussehen: cb:12345:kbrequest:/home/kurt/kvmswitch.sh - Richtig? EDIT: Und kann ich überhaupt immer ein Shell-Skript ausführen? Oder sollte als Process eine Binärdatei zum Einsatz kommen?

Jetzt brauche ich wieder Hilfe, da die Rollen-Taste ja noch nicht im Spiel ist: Auf der man-page steht, dass man für die Aktion "Alt" + "PfeiltasteHoch" folgenden Befehl in einem keymap-file benutzen soll: alt keycode 103 = KeyboardSignal
Nach kurzem Googlen hab ich herausgefunden, dass der Keycode für "Rollen" wohl 70 ist, also müsste ich folgende Zeile in das keymap file eintragen: keycode 70 = Scroll_Lock
Stimmt das soweit?
Und: wo ist dieses keymap file zu finden?

Freue mich sehr auf eure Antworten!
Member: dog
dog Dec 17, 2010 at 12:42:18 (UTC)
Goto Top
keycode 70 = Scroll_Lock

Nein, der entsprechende Eintrag wäre
keycode 70 = KeyboardSignal
KeyboardSignal ist das Schlüsselwort, auf das kbrequest anspringt.
Die Keymap-Dateien sind bei Debian in /usr/share/keymaps, aber ich würde eher empfehlen das Mapping dynamisch zu definieren mit folgendem Befehl beim Start:
loadkeys << EOF
keycode 70 = KeyboardSignal
EOF
Member: Klimmbimm
Klimmbimm Dec 17, 2010 at 12:55:19 (UTC)
Goto Top
Danke sehr! Noch eine Frage: Ich schreibe die 3 Zeilen von dir auch in die inittab?
Member: dog
dog Dec 17, 2010 at 12:58:52 (UTC)
Goto Top
Nein, das ist ein Befehl.

Den kannst du in die rc.local schreiben.
Member: Klimmbimm
Klimmbimm Jan 11, 2011 at 10:36:30 (UTC)
Goto Top
Fazit nach vielem Rumprobieren: Umschalten funktioniert nicht zuverlässig bis gar nicht unter KDE (nur auf TTYs). Einen Level1 KVM-Switch KVM-0221 sollte man sich nicht kaufen, wenn man damit auch openSUSE bedienen möchte.