Você não pode mover um aplicativo X iniciado diretamente com o servidor X no qual o aplicativo é finalmente exibido, isto é devido a um cliente X estar "ligado ao servidor X (X display) em que foi iniciado durante sua vida útil" [< a href="https://en.wikipedia.org/wiki/Xmove"> 1 ] Isso é mais provável com os metadados que o servidor X mantém sobre as janelas de um cliente que não podem ser facilmente transferidas entre os servidores X .
O mesmo acontece com as telas configuradas separadamente (quando não estão sendo usadas extensões como Xinerama ou Twinview) para programas que não têm suporte para várias telas explicitamente gravados - "Com essa configuração não é possível mover janelas entre telas , além de alguns programas especiais como o GIMP e Emacs, que têm suporte multi-screen. "[ 2 ]
Em teoria, se um aplicativo foi projetado para lidar com um comutador de contexto do servidor X, ele pode ser fornecido com o novo número de tela / exibição, salvar o estado de suas janelas, conectar-se ao novo servidor / tela X e ressuscitar suas janelas , mas poucos aplicativos seriam projetados dessa maneira e envolveriam necessariamente um monte de clichê ou a inclusão de uma biblioteca que facilitaria isso de alguma forma.
A melhor opção para você é provavelmente usar outros aplicativos que podem atuar como um proxy entre um cliente X e o servidor X de exibição de uma forma similar que a tela GNU pode ser usada para aplicativos de console e o terminal. Xmove e Xpra [ 3 & 4 ] parecem ser as implementações mais utilizadas para isso. A ressalva de usá-los é que os aplicativos que você inicia têm que se registrar com Xmove ou Xpra como seu servidor X para poder mudar o contexto entre diferentes servidores de exibição.
Finalmente, há outra pergunta, no SuperUser, que está fazendo uma pergunta semelhante para um propósito um pouco diferente (reconectar ao X após X travar, em vez de desconexão / reconexão deliberada do cliente) [5 ]