| View previous topic :: View next topic |
| Author |
Message |
Finswimmer Moderator


Joined: 02 Sep 2004 Posts: 5296 Location: Langen (Hessen), Germany
|
Posted: Sun Apr 15, 2012 8:31 am Post subject: [S][udev-regel] Wird ausgeführt, bewirkt unter X aber nichts |
|
|
Hallo,
ich habe eine Bluetooth Maus gekauft, bei der die Buttons umbenannt werden müssen:
xinput set-button-map "Bluetooth Laser Travel Mouse" 1 2 3 4 5 8 9 6 7
Das funktioniert unter dem User "tobi" sehr gut, da der in X angemeldet ist.
Die Udev-Regel führt folgendes Programm aus:
| Code: | $cat /usr/local/bin/logitech-mouse
#!/bin/bash
su tobi -c "DISPLAY=:0 xinput set-button-map 'Bluetooth Laser Travel Mouse' 1 2 3 4 5 8 9 6 7"
id > /tmp/test
|
Interessant ist nun, dass dies als User root geht.
Wenn udev das automatisch macht, passiert nichts.
ID bei udev: uid=0(root) gid=0(root) groups=0(root)
ID als root: uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video),104(svnusers)
Und nun bin ich überfragt. Warum gehts nicht? Wo ist mein Denkfehler?
Danke
Tobi _________________ Bitte auf Rechtschreibung, korrekte Formatierung und Höflichkeit achten!
Danke
Last edited by Finswimmer on Wed Apr 18, 2012 6:54 am; edited 1 time in total |
|
| Back to top |
|
 |
mv Advocate


Joined: 20 Apr 2005 Posts: 3223
|
Posted: Sun Apr 15, 2012 10:40 am Post subject: |
|
|
| export XAUTHORITY=~toby/.Xauthority |
|
| Back to top |
|
 |
Finswimmer Moderator


Joined: 02 Sep 2004 Posts: 5296 Location: Langen (Hessen), Germany
|
Posted: Sun Apr 15, 2012 10:58 am Post subject: |
|
|
Muss ich das in das Skript schreiben? Oder einmalig als User tobi machen?
Unabhängig davon funktioniert das Remappen aber, wenn ich es als User root ausführe. Also direkt ohne udev. _________________ Bitte auf Rechtschreibung, korrekte Formatierung und Höflichkeit achten!
Danke |
|
| Back to top |
|
 |
mv Advocate


Joined: 20 Apr 2005 Posts: 3223
|
Posted: Sun Apr 15, 2012 8:13 pm Post subject: |
|
|
| Finswimmer wrote: | | Muss ich das in das Skript schreiben? |
Ja.
| Quote: | | Unabhängig davon funktioniert das Remappen aber, wenn ich es als User root ausführe. |
Was heißt "als User root"? - Es kommt auf die Environment-Variablen an. Vermutlich ist bei Dir noch HOME=~tobi. |
|
| Back to top |
|
 |
Finswimmer Moderator


Joined: 02 Sep 2004 Posts: 5296 Location: Langen (Hessen), Germany
|
Posted: Mon Apr 16, 2012 5:42 am Post subject: |
|
|
Hm.
Mit udev geht es nicht.
Wenn ich mich frisch auf VT1 als root einlogge und das Skript starte, dann geht es: Die Button werden geändert.
| Code: | #!/bin/bash
export XAUTHORITY=/home/tobi/.Xauthority
DISPLAY=:0 xinput set-button-map 'Bluetooth Laser Travel Mouse' 1 2 3 4 5 8 9 6 7
|
Danke! _________________ Bitte auf Rechtschreibung, korrekte Formatierung und Höflichkeit achten!
Danke |
|
| Back to top |
|
 |
mv Advocate


Joined: 20 Apr 2005 Posts: 3223
|
Posted: Mon Apr 16, 2012 2:50 pm Post subject: |
|
|
| Finswimmer wrote: | Hm.
Mit udev geht es nicht.
Wenn ich mich frisch auf VT1 als root einlogge und das Skript starte, dann geht es: Die Button werden geändert. |
Das klingt danach, dass Du pam benutzt: Das hat auch irgendeinen Mechanismus, der die .Xauthority ggf. weiterleitet, und dieser Mechanismus ist vermutlich bei udev nicht aktiv. Da ich pam nicht benutze, kann ich dazu nichts sagen. |
|
| Back to top |
|
 |
mrsteven Veteran


Joined: 04 Jul 2003 Posts: 1880
|
Posted: Mon Apr 16, 2012 4:12 pm Post subject: |
|
|
Das muss doch auch direkt über die /etc/xorg.conf (oder /etc/xorg.conf.d) gehen, also irgendwie so:
| Code: | Section "InputClass"
Identifier "Bluetooth Laser Travel Mice"
MatchProduct "Bluetooth Laser Travel Mouse"
MatchDriver "evdev"
Option "ButtonMapping" "1 2 3 4 5 8 9 6 7"
EndSection
|
Ungetestet, aber vielleicht auch eine Idee, bei der man sich das su-Gefrickel spart. _________________ Unix philosophy: "Do one thing and do it well."
systemd: "Do everything and do it wrong." |
|
| Back to top |
|
 |
Finswimmer Moderator


Joined: 02 Sep 2004 Posts: 5296 Location: Langen (Hessen), Germany
|
Posted: Wed Apr 18, 2012 6:54 am Post subject: |
|
|
Wow.
Danke, mrsteven!
Ich wollte es deswegen per Udev machen, da ich dachte, dass ich diesen Befehl jedesmal ausführen muss, wenn ich die Maus unter einem laufendem X verbinde.
Es geht aber auch so.
Vielen Dank! _________________ Bitte auf Rechtschreibung, korrekte Formatierung und Höflichkeit achten!
Danke |
|
| Back to top |
|
 |
|