Sondertasten programmieren (Kubuntu)

sirgoofy

Member
Themenstarter
Registriert
22 Apr. 2007
Beiträge
107
Hallo,

ich würde bei meinem X60s gerne die Sondertasten (anders) belegen ([Edit]Ich benutze Kubuntu[/Edit]).

Im Thinkwiki findet sich dazu: http://www.thinkwiki.org/wiki/How_to_get_special_keys_to_work

Nun gibt es unter /etc/acpi/events die entsprechenden Dateien. Wenn ich den Befehl finter "action=" ändere, dann funktioniert, nicht immer, und wenn dann nicht direkt, erst nach einem Neustart, wie mir aufgefallen ist. Die Änderung wird erst anch einem Neustart wirksam, ein rmmod und modprobe ibm-acpi oder ein Neustart des Xservers genügt nicht. Und ich sehe es nicht wirklich ein, deswegen neu starten zu müssen, wir sind nicht bei Windows ;)
Außerdem funktionieren von mir neu angelegte Dateien (z. B. für Fn+F1) nicht.

Hat jemand schonmal die Tastenbelegungen geändert und kann mir dazu Tipps geben?
 
KDE KMilo

Guten Tag, für KDE gibt es KMilo. Damit funktionieren auf jeden Fall die Laut- und Leisetasten. Wenn Du soweiso K3B als Brennprogramm hast könnte Kmilo eine Empfehlung wert sein. VE xsid
 
Bei ubunutu sind einige Tasten fest vorbelegt. Das kannst Du unter System -> Einstellungen -> Tastenkombinationen ändern.
 
Ich nutze unter Linux tpb und xbindkeys.. einfach mal anschauen.

tpb bringt wie unter Windows OSDs für alle Funktionstasten wie Lautstärke,
Displayhelligkeit, Thinklight etc..
Habe damit auch die nutzlose Access Taste wieder sinnvoll beschaeftigt..

Für andere Dinge verwende ich XbindKeys.
Zum Keycode scannen kannst du z.B xev verwenden.
 
Und ich habe heute festgestellt, das TPB nicht mehr in den Quellen fürUbuntu feisty 64-bit ist. ?(
 
danke, soweit läuft das ganze nun.

allerdings möchte ich nun per funktionstaste mit xrandr 1.2 die monitore umschalten.
normal in der kommandozeile klappt es (mit userrechten).
wenn ich acpid manuell beende und neu starte, dann funktioniert die funktionstaste auch. nur nach einem neustart klappt es nicht mehr, in /var/log/acpid steht dann "Can't open display". Wie es mir scheint gibt es ein Problem mit Berechtigungen. Kennt jemand eine Lösung?
 
Ich habe noch ein wenig herumprobiert:
Wenn ich als root (nicht als sudo) xrandr benutze, bekomme ich folgende Fehlermeldung:
xlib: connection to ":0.0" refused by server
xlib: no protocol specified

Can't open display :0

als normaler benutzer geschieht dies nicht, sondern funktioniert es problemlos. Woran liegt das?
 
Hi!

xrandr fehlt die Berechtigung für den Zugriff auf das X-Display (man xauth). Mit sudo funktioniert das nur, weil standardmäßig die $HOME-Variable nicht gesetzt wird und damit die Informationen in ~/.Xauthority genutzt werden. Mit "sudo -H xrandr" dürfte das dann nicht mehr gehen.

su übernimmt die Variable nicht und überträgt die Zugriffsberechtigungen nicht. Dafür gibts sux, ein Wrapperscript für su, welches letzteres tut.

Gruß,
Christian
 
Original von sirgoofy
wenn ich acpid manuell beende und neu starte, dann funktioniert die funktionstaste auch. nur nach einem neustart klappt es nicht mehr, in /var/log/acpid steht dann "Can't open display". Wie es mir scheint gibt es ein Problem mit Berechtigungen. Kennt jemand eine Lösung?

Wenn du den Daemon aus der Shell startest, dann bekommt der u.U. das aktuelle Environment. Wenn hier DISPLAY gesetzt ist (beim Start aus einem xterm), dann weiß der Daemon, welches Display zu verwenden ist. Die auth-Information (siehe anderer Post) muss auch noch irgendwie da hinübergerettet werden. Vergleiche mal das Environment beider Varianten:

xargs --null < /proc/`pidof acpid`/environ

Ich kann das jetzt hier allerdings nicht nachvollziehen, daß der acpid ein DISPLAY im environment hat o.ä.

Gruß,
Christian
 
Wenn ich ich sux ausführe, kann ich danach zwar mein Monitorwechselscript als root ausführen, allerdings funktionieren die Tastenkombinationen immer noch nicht.

Auch wenn ich einfach sux in die erste Zeile des Monitorwechselscriptes setze, klappt dies nicht.

ich habe auch mal ein wenig mit runleveln experimentiert (acpid wird in rc4 gestartet), jedoch ohne erfolg.
 
ich verstehe das ganze langsam kaum noch.

selbst mit einen radikalen xauth + klappt das ganze nicht.

kann mir jemand weiterhelfen?

Gruß
 
es geht mir aber nicht um die sondertasten (z. b. thinkpad-taste), sondern um die funktionstasten (z. b. fn+f1 etc.)
 
also um das problem einmal zusammenzufassen:

Funktionstasten (Fn+F1, F2, etc) funktionieren)
Xrandr (Bildschirm umschalten) funktioniert auch

Allerdings werden die Scripte, die mit den Funktionstasten verknüpft sind, als root ausgeführt. und root kann nicht auf das display zugreifen.

Daher bieten sich zwei möglichkeiten:
- root den Zugriff auf das Display erlauben
- Script als gerade angemeldeten user ausführen

Hat dazu jemand Ideen?
 
sudoers

Hi, evtl. kannst Du etwas mit der sudoers Funktion anfangen. Mach dich doch mal schlau. Mit sudoers kannst Du Root-Befehle als User zulassen. BG xsid
 
RE: sudoers

Original von xsid
Hi, evtl. kannst Du etwas mit der sudoers Funktion anfangen. Mach dich doch mal schlau. Mit sudoers kannst Du Root-Befehle als User zulassen. BG xsid
brauche ich nicht. xrandr läuft auch als user. nur die funktionstasten führen ihre befehle als root aus.
 
hat sich hier was ergeben? Sitze gerade vor genau dem selben Problem.

Gruß
 
Klar fehlt die Berechtigung.

Code:
XUSER=`who | grep ':0' | cut -d ' ' -f 1`
 if test -n "$XUSER"; then
   su - $XUSER -c "DISPLAY=:0 xterm -class UXTerm -title uxterm -u8 -T WaveMon -e /usr/bin/wavemon"
 fi
Damit kann man sich z.B. WaveMon auf den Desktop holen.
In den ACPI-Skripten sollten genug Beispiele fuer sowas sein.
 
  • ok1.de
  • IT Refresh - IT Teile & mehr
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben