Curto: não há a solução (TM) para o que você deseja.
No entanto, com conhecimento suficiente sobre sua configuração, pode ser possível desenvolver uma solução que funcione para você. Eu tive o mesmo problema uma vez.
A razão pela qual é tão difícil é que o Xserver não está vinculado a um usuário. Você pode confirmar isso em qualquer distribuição Linux importante, fazendo login no ambiente de desktop de sua escolha, abrindo um terminal e digitando ps faux
. Ele mostrará seu gerenciador de exibição, com (pelo menos) dois processos filhos: um xserver e o processo pai para todos os processos pertencentes à sua sessão de usuário. Observe que o xserver é iniciado como usuário root e NÃO como o usuário a que sua sessão pertence.
O que eu fiz / fazer para combinar um certo xserver com um nome de usuário Eu faço uma votação majoritária: Eu olho para cada processo de usuário e verifico para qual xserver está conectado. A partir desse conhecimento eu crio uma lista que me diz para cada usuário a quantidade de processos que estão conectados a um xserver específico. Uma ilustração dessa tabela poderia ser assim:
|xserver :1| xserver :2 | xserver :3 | xserver :4
-------------------------------------------------------------
alice | 17 | 0 | 0 | 0
bob | 0 | 0 | 14 | 0
eve | 0 | 34 | 1 | 0
foo | 1 | 1 | 1 | 8
Com essa tabela, executo uma votação por maioria simples que gera o mapeamento:
- User alice está usando, ou seja, sentado na frente do xserver: 1
- O usuário bob está usando o xserver: 3
- A véspera do usuário está usando o xserver: 2
- O usuário foo está usando xserver: 4
Esse voto majoritário não necessariamente produz mapeamentos corretos, no entanto, para todas as minhas intenções e propósitos, é suficiente.
Isso é tudo que você precisa. Agora você pode
DISPLAY=<ip.to.xserver>:1 xmessage -buttons yes,no,maybe -nearmouse "Do you want to go on a date with me?"
peça alice por uma data.
A mágica é a variável de ambiente DISPLAY que os xapplications usam para descobrir a qual xserver eles devem se conectar. A maioria dos xapplications também aceita a opção -display
. Veja a man page em xmessage
e X
.
É claro que existem muitas outras maneiras de substituir minha maioria de votos por. Qual é o mais adequado para você, você precisa descobrir a si mesmo ...