Definindo regras do udev no Linux Mint 13

2

O que estou tentando fazer é configurar uma regra do udev para meus fones de ouvido HP (usb) com o auxílio de vários tutoriais por aí.

Criado um arquivo (90-local.rules) em /etc/udev/rules.d e adicionado o seguinte:

ACTION="add",SUBSYSTEM="usb", ATTR{vendor}=="Hewlett-Packard", RUN+="sh /home/alex/Scripts/usb.sh"

O problema é que nada acontece quando eu conecto os fones de ouvido! O que estou fazendo errado?

nota: eu reiniciei o udev e o script também funciona, então não é que

    
por user1233963 02.09.2012 / 22:45

2 respostas

0

Sua regra do udev está bem. O problema é que seu script, assim como o próprio udev, é executado

  1. como raiz - não como sua própria conta de usuário;
  2. como um serviço - fora de sua sessão de login;

e, portanto, não tem acesso ao seu monitor X11 ou ao seu barramento de sessão DBus.

Lembre-se que o Linux, como Unix, suportou várias sessões de login simultâneas desde o primeiro dia, então não há " o usuário"; pode haver vários usuários com vários monitores X11 e vários barramentos DBus (que podem nem ter um servidor X11 conectado).

Uma solução comum é fazer com que o script sempre escolha a primeira exibição do X11 (configurando DISPLAY=":0" dentro do script). No entanto, isso não funcionará - mesmo um computador de usuário único pode ter dois ou mais monitores X11 em execução (por exemplo, sua própria área de trabalho pode estar em :1 , enquanto :0 pode estar a tela de login ou não está sendo executada).

    
por 03.09.2012 / 12:59
0

Tente primeiro fazendo Alt-F2 e na caixa faça algo como / bin / sh -c "DISPLAY =: 0.0 / usr / bin / notify-send foobar" Anote todos os caminhos completos e observe as aspas duplas em torno do comando shell.

    
por 09.07.2014 / 01:54