Como regra, as sessões X11 geralmente são iniciadas no modo "privado", portanto, você precisa de uma de duas coisas: cooperação de user2
para permitir o acesso às telas ou privilégios de superusuário para "invadir" as telas.
PERIGO: Lembre-se de que, uma vez que você tenha acesso à tela deles, também poderá fazer ações como capturar pressionamentos de tecla (incluindo potencialmente senhas) e tirar capturas de tela, portanto, esse é um grande risco à segurança.
Na maioria dos casos, é preferível usar uma ferramenta de mensagens ou um programa de bate-papo para essas coisas.
Advertências à parte:
Cooperação
Se user2
quiser permitir user1
acessar sua tela, primeiro é user2
necessário emitir um comando como:
xhost +si:localuser:user1
Isso poderia ser adicionado a um script de inicialização de algum tipo; Não conheço o Fluxbox, mas presumo que ele tenha um rc
gancho ou um início de sessão.
Depois que isso for emitido, ele user1
poderá gravar no user2
visor, se eles puderem encontrá-lo.
Se user2
estiver ciente disso, eles sempre poderão enviá-lo de user1
alguma outra maneira.
Localizando a tela 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, suponha que você tenha uma máquina na qual muitos usuários possam estar conectados e tente encontrar a 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=(.*)\0,) { print $1 }' < $subproc/environ)
done
fi
done
então, user1
pode finalmente (usando o valor DISPLAY obtido acima; eu acabei de escrever :14.0
aqui…)
DISPLAY=:14.0 xmessage "Hello, user2"
Enviando uma notificação
No interesse da integridade, o seguinte funciona no ambiente de trabalho Gnome, pelo menos. Não sei se o Fluxbox tem um widget de notificação.
DISPLAY=:14.0 notify-send "Hello, user2"
Isso tem muito mais opções fáceis de usar para exibição, e provavelmente aparecerá de uma maneira mais amigável na tela do usuário.
user1
no meu exemplo) estiver conectado ao X11 e não tiver abertoxterm
ou outro terminal -wall
funcionará também? Eu acho queuser1
não vai ver mensagens.