Como posso configurar um interruptor de hora de exibição?

0

Existem vários monitores conectados a um PC, digamos A B C. Como posso acionar uma reconfiguração de exibição com base em uma contagem regressiva. Eu gostaria que o display A estivesse ativo das 6h às 13h, exibisse B das 13h às 17h e exibisse C das 17h às 6h. A área de trabalho deve sempre ser roteada apenas para a exibição ativa.

    
por artistoex 27.05.2013 / 11:52

2 respostas

1

Como sua pergunta é marcada como Linux e Windows, aqui está uma solução do Linux.

Você precisa de um pequeno script que altere a exibição. O mais fácil seria usar xrand , que já deveria estar instalado ou está nos repositórios da sua distribuição. No caso improvável de que não esteja instalado, você pode instalá-lo em sistemas baseados em Debian com

sudo apt-get install x11-xserver-utils

Quando o xrandr estiver instalado, primeiro você precisará obter os nomes dos seus displays:

xrandr | grep -w connected | awk '{print $1}'
 VGA-0
 DP-0

No meu laptop, isso mostra que tenho dois monitores disponíveis, o laptop (DP-0) e uma tela VGA (VGA-0). Para ativar apenas o laptop eu rodaria:

xrandr --output DP-0 --off --output VGA-0 --auto

Para ativar somente o VGA e desativar o laptop:

xrandr --output VGA-0 --auto --output DP-0 --off

Eu não tenho um terceiro monitor para me conectar, mas se o seu terceiro monitor é chamado DP-1, você pode configurar um cron job para alternar exibições em um horário como este:

## Activate VGA-0 at 6am
0 6 * * * xrandr --output VGA-0 --auto --output DP-0 --off --output DP-1 --off
## Activate DP-0 at 1pm
0 13 * * * xrandr --output VGA-0 --off --output DP-0 --auto --output DP-1 --off
## Activate DP-1 at 5pm
0 17 * * * xrandr --output VGA-0 --off --output DP-0 --off --output DP-1 --auto

Você disse que quer que isso seja executado quando nenhum usuário estiver logado, já que um usuário sempre deve estar logado quando o sistema estiver funcionando, não tenho certeza do que você quer dizer. No entanto, se você definir o cron como root (executando crontab -e quando conectado como root ou com sudo ), o trabalho será executado mesmo quando nenhum usuário normal estiver conectado.

    
por 27.05.2013 / 15:46
1

Se você usar o MultiMonitorTool com o Agendador de Tarefas, poderá conseguir sua rotação. Eu não usei isso antes, mas de acordo com as opções de linha de comando, ele deve funcionar. Um possível comando da linha de comando poderia ser assim:

MultiMonitorTool.exe /enable 1 /SetPrimary 1 /disable 2 3

Há também uma opção para mover as janelas existentes para a nova exibição principal:

/MoveWindow

Você também pode querer olhar para a opção /SetNextPrimary .

Esta solução é, obviamente, apenas Windows .

    
por 27.05.2013 / 13:40