Todos os programas X11 abrem suas janelas na tela indicada pela variável de ambiente DISPLAY
. Assim:
sudo -u 1000 env DISPLAY=:0 xev
ou para essa questão, já que você pode executar programas como um usuário diferente do servidor X, apenas
DISPLAY=:0 xev
:NUMBER
é a notação para exibições locais; na maioria dos cenários, o servidor X11 que está sendo executado no console é aquele que é iniciado primeiro e acaba sendo o número 0. Você pode executar echo "$DISPLAY"
em um terminal nesse visor para verificar se o número de exibição está correto. :0.0
é equivalente a :0
(um .0
pode ser omitido).
Se você executar o programa como um usuário diferente do servidor X e, às vezes, mesmo que você o execute como o mesmo usuário, talvez seja necessário definir também a variável de ambiente XAUTHORITY
. Essa variável aponta para um arquivo que contém uma senha (chamada de cookie ) que os aplicativos devem passar para o servidor X. Para ver o valor correto de XAUTHORITY
, execute echo $XAUTHORITY
nessa exibição; Se não estiver definido, o valor padrão é ~/.Xauthority
, em que ~
representa o diretório inicial do usuário.
Se você precisar encontrar os valores de DISPLAY
e XAUTHORITY
programaticamente, consulte Abra uma janela em um display X remoto (por que" Não é possível abrir a tela ")?
¹ Pelo menos quase todos. É tecnicamente possível para eles não fazê-lo, mas é preciso um trabalho ativo por parte do programador para que não seja assim, enquanto um argumento -display
é uma convenção que está longe de ser universal.