Como regra, as sessões do X11 geralmente são iniciadas em um modo “privado”, então você precisa de uma das duas coisas: cooperação de user2
para permitir que você acesse suas telas ou privilégios de superusuário para “invadir” para suas telas.
PERIGO: Tenha em mente que, depois de ter acesso à tela, você também pode fazer capturas de tecla (possivelmente incluindo senhas) e fazer capturas de tela, portanto, esse é um grande risco à segurança.
Em mais casos, é preferível usar uma ferramenta de mensagens ou um programa de bate-papo para essas coisas.
Advertências:
Coöperating
Se user2
quiser permitir que user1
acesse sua tela, primeiro user2
deverá emitir um comando como:
xhost +si:localuser:user1
Isso poderia ser adicionado a um script de inicialização de algum tipo; Eu não conheço o Fluxbox, mas suponho que ele tenha um gancho rc
ou início de sessão.
Depois que isso for emitido, user1
poderá gravar na exibição de user2
, se eles puderem encontrá-lo.
Se user2
estiver ciente disso, eles sempre poderão enviá-lo para user1
de alguma outra forma.
Como encontrar a exibição de outro usuário
Em uma estação de trabalho típica, é incomum ter mais de um ou dois usuários conectados; Nesse caso, "adivinhar" que a exibição desejada é 0, 1 ou talvez 2 pode ser uma solução viável.
No entanto, para uma solução mais completa, vamos supor que você tenha uma máquina na qual muitos usuários possam ter feito login e tente encontrar o que deseja.
for proc in /proc/[0-9]*/
do
if [ Xorg = $(< $proc/comm ) ] 2>/dev/null && \
[ $(id -u user2) -eq $(< $proc/loginuid) ] 2>/dev/null
then
for subproc in $(
do
echo "user2 display=" $(perl -ne 'if (m,DISPLAY=(.*)DISPLAY=:14.0 xmessage "Hello, user2"
,) { print $1 }' < $subproc/environ)
done
fi
done
então, user1
pode finalmente (usando o valor de DISPLAY obtido acima; Acabei de escrever :14.0
aqui ...)
DISPLAY=:14.0 notify-send "Hello, user2"
Enviando uma notificação em vez
No interesse da perfeição, o seguinte funciona na área de trabalho do Gnome, pelo menos. Eu não sei se o Fluxbox tem um widget de notificação.
xhost +si:localuser:user1
Isso tem muito mais opções amigáveis para a exibição e, provavelmente, será exibido de maneira mais amigável na tela do usuário.