Como se conectar a um xserver do meu terminal de todo o sistema?

1

Atualmente, estou tentando fazer um drone autônomo usando o sistema operacional do robô ( ROS ). Para fazer isso, eu instalei o Raspbian Lite ( Jessie ) em um Rasperry Pi 3 e atualmente estou usando o ROS Kinetic sobre ele. Como é o Raspbian Lite , não havia gerenciadores de janela ou ambientes de área de trabalho que acompanhassem a instalação. Eu decidi ir com o Openbox Window Manager e instalei um terminal nele por conveniência. Eu posso apenas chamar sudo startx , e o gerenciador de janelas se abre, o que pode ser acessado por Ctrl + alt + F2 . Como é um terminal de todo o sistema, também instalei o tmux por conveniência. Estou executando o xserver em um determinado painel e conduzo meu trabalho do ROS em outros painéis.

Agora, quando tento executar comandos que chamam um aplicativo GUI do terminal do meu sistema, recebo o erro:

QxcbConnection: Could not connect to display
Aborted

Agora, há duas maneiras de abordar esse problema:

  1. Como existe um terminal instalado no meu gerenciador de janelas, devo fazer com que o ROS trabalhe nisso? No entanto, eu não sei como alterar o ambiente do emulador de terminal dentro do gerenciador de janelas para que ele seja igual ao do terminal do sistema. É tão fácil quanto trocar as cascas?

  2. Na verdade, encontre uma maneira de enviar meus aplicativos de GUI para o painel tmux que está executando atualmente o comando sudo startx . Como faço para mudar o pai de um processo com outro pai?

NOTA : eu definitivamente preferiria a segunda solução, pois é mais elegante e eficiente para o meu fluxo de trabalho.

    
por Sharan Duggirala 27.12.2016 / 17:11

1 resposta

2

Em um terminal no ambiente GUI, digite:

xhost +

No ambiente sem GUI, digite:

export DISPLAY="localhost:0"

Em seguida, os aplicativos gráficos que você inicia a partir do ambiente não-GUI serão exibidos no ambiente da GUI.

Você pode ler mais em man xhost

Veja também esta resposta em: O que esse comando xhost … faz?

    
por 27.12.2016 / 18:30