Não posso oferecer uma solução, mas sim uma explicação e algumas soluções alternativas.
Explicação
Este problema é causado porque as posições das janelas são armazenadas como coordenadas positivas a partir do visor superior esquerdo.
O software não considera nenhum de seus monitores como "secundário", mas a tela superior esquerda é "primária" porque seu canto superior esquerdo é usado como origem para as coordenadas da janela.
Ao adicionar ou remover um monitor (conectando / desconectando ou ligando / desligando) acima ou à esquerda da tela do seu laptop, você está alterando a origem do sistema de coordenadas da janela e isso fará com que todas as janelas sejam exibidas. move-se porque no Ubuntu, infelizmente, as janelas mantêm suas coordenadas absolutas no canto superior esquerdo, independentemente das mudanças de exibição.
Soluções alternativas
-
Em vez de ter que mover suas janelas antes de conectar / desconectar seu monitor externo, você pode encontrá-las depois pressionando Super + S para mostrar seus espaços de trabalho . Isso é um pouco menos irritante.
-
Em vez de alinhar seu monitor externo à esquerda (o que faz com que a origem do sistema de coordenadas se mova e as janelas mudem de tela) você pode mantê-lo fisicamente à esquerda, mas alinhado abaixo nas configurações de exibição. Isso ainda está "errado", mas acho menos mentalmente chocante ter a tela "secundária" considerada "abaixo" do que na direção oposta a onde ela está fisicamente.
Espero que, no futuro, haja uma correção para garantir que as posições do Windows sejam atualizadas durante uma alteração de exibição, para que elas permaneçam no mesmo monitor físico posteriormente.