Existe um ambiente de trabalho amigável dinâmico com vários monitores disponível para o Ubuntu?

13

Eu uso um laptop e gosto de migrar durante o dia de um local de trabalho (físico) para outro e conectar-me a um monitor externo, se disponível.

Eu também preciso executar várias tarefas ao mesmo tempo, por isso tenho muitas janelas abertas em um determinado momento e muitas áreas de trabalho (virtuais) para organizá-las.

Mas toda vez que eu conecto / desconecto o monitor externo, todo o meu arranjo cuidadoso se foi. Isso me faz realmente louco .

Existe um ambiente de área de trabalho que apenas deixa as janelas sozinhas quando você conecta / desconecta um segundo monitor? Ou ainda melhor, que lembra o arranjo de janela por arranjo de monitor? Assim, quando saí do meu escritório em casa (monitor de 17 "na parte superior da tela do laptop) para o meu local de trabalho habitual (monitor de 21" à esquerda da tela do laptop) ou da mesa do meu colega (monitor de 19 "à direita) as janelas acabam onde estavam na última vez que o monitor foi conectado - ou ficar parado se elas nunca viram este monitor.

O modo como a unidade "lida" com monitores externos me deixa triste e gostaria de não ter todos esses monitores extras para conectar e quando eu conectá-lo, me acorrentaria a esse arranjo, como se eu tivesse uma máquina desktop pregada na andar.

    
por artm 27.01.2014 / 14:03

2 respostas

9

Estou fornecendo dois scripts de shell. Isso ajudará você a salvar sua organização das posições e do tamanho das janelas . Se, de alguma forma, as configurações desejadas do Windows forem alteradas, você poderá restaurar esses arranjos com o tamanho exato do Windows e as posições de todas as janelas usando esses scripts.

Você precisa instalar wmctrl , a menos que já o tenha. Instalar via terminal,

sudo apt-get install wmctrl

Script para salvar a configuração do Windows

# Script_Name: save_window_conf.sh
#!/bin/bash
if [ -f $HOME/.my_windows_config.txt ]; then
    echo -e "Information: Previous configuration file \"$HOME/.my_windows_config.txt\" already exists.\nTo save a new configuration remove it manually using the following command,\n\n\trm $HOME/.my_windows_config.txt"
    exit 1
else
    wmctrl -p -G -l | awk '( != -1)&&( != 0)&&($NF != "Desktop")' | awk '{print }' | while read mywinid
    do
        xwininfo -id "$mywinid" >> $HOME/.my_windows_config.txt
    done
fi

Na execução, o script acima salvará a posição e o tamanho das janelas de todas as janelas abertas em um arquivo chamado .my_windows_config.txt em seu diretório pessoal. É um arquivo de texto oculto.

Script para recarregar a configuração do Windows

# Script_Name: load_window_conf.sh
#!/bin/bash

file=$HOME/.my_windows_config.txt
declare -a mywinid
declare -a x
declare -a y
declare -a width
declare -a height

nl=$(cat "$file" | grep xwininfo |wc -l)

for i in $(seq 1 $nl)
do
    mywinid[i]=$(cat "$file" | grep "xwininfo" | awk -v p="$i" '{if(NR==p) print }')
    x[i]=$(cat "$file" | grep "Absolute upper-left X" | awk -v p="$i" '{if(NR==p) print $NF}')
    y[i]=$(cat "$file" | grep "Absolute upper-left Y" | awk -v p="$i" '{if(NR==p) print $NF}')
    width[i]=$(cat "$file" | grep "Width" | awk -v p="$i" '{if(NR==p) print $NF}')
    height[i]=$(cat "$file" | grep "Height" | awk -v p="$i" '{if(NR==p) print $NF}')
done

for it in $(seq 1 $nl)
do
    wmctrl -i -r "${mywinid[$it]}" -e 0,"${x[$it]}","${y[$it]}","${width[it]}","${height[it]}"
done

Quando você executa o segundo script, ele restaura a posição das janelas com o tamanho exato de todas as janelas.

Uso

Salve esses scripts no diretório $HOME/bin/ . Adicione $HOME/bin/ no seu PATH . Para isso, adicione estas linhas no final do seu $HOME/.bashrc

PATH=$HOME/bin:$PATH
export PATH

Ele permitirá que você execute esses scripts apenas com o nome deles. Dê a permissão de execução de scripts,

chmod +x $HOME/bin/save_window_conf.sh
chmod +x $HOME/bin/load_window_conf.sh

Para salvar a configuração no seu $HOME/.my_windows_config.txt

Depois de abrir e ajustar todas as janelas no terminal,

save_window_conf.sh

Para recarregar a configuração do seu $HOME/.my_windows_config.txt

load_window_conf.sh

Espero que isso resolva seu problema. Aqui está uma captura de tela,

    
por souravc 31.01.2014 / 22:37
-1

O guia comum está aqui: Resolução

Suas soluções sobre resolução dinâmica estão próximas de Xorg & amp; XrandR ou Xinerama

Você tem:
Quatro métodos para configurar

  1. Por sessão com .xprofile.

  2. Dinamicamente usando a ferramenta xrandr

  3. Estaticamente, configurando em xorg.conf.

  4. GUI gráfica de front-end Xrandr.

A boa resposta é Configurações para vários monitores não são armazenadas

Para solucionar o seu Gerenciamento de Janelas em seus espaços de trabalho, você pode usar sistema de criação de perfil dado pelo Compiz Config Manager

    
por swift 30.01.2014 / 22:33