Pular para o conteúdo

Configurando bspwm e dois monitores

Como configurar o gerenciador de janelas bspwm e a barra polybar para exibir áreas de trabalho e barras distintas em dois monitores. Bspwm é um gerenciador de janelas que é configurado utilizando um cliente externo e shell scripts, criando infinitas possibilidades.
Cristhyano de Paula crdpa
Hits: 6.300 Categoria: Linux Subcategoria: Configuração
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Configurando bspwm e dois monitores

Preciso configurar meu gerenciador de janelas para utilizar dois monitores e por um bom tempo venho empurrando isso com a barriga utilizando somente o monitor do laptop ou o monitor externo.

Hoje resolvi mudar isso e documentar aqui toda a empreitada.

Meu desktop padrão contém oito áreas de trabalho. Quando utilizar dois monitores, quero que as quatro primeiras áreas de trabalho fiquem no monitor externo e o restante no monitor do laptop.

O comando para ativar o monitor externo, definir como primário e colocar ao lado esquerdo do meu laptop é

xrandr --output HDMI1 --primary --left-of eDP1 --auto

Assim, quando eu saio com o mouse para a esquerda do monitor do laptop, ele aparece no monitor externo.

Bspwm é um gerenciador de janelas configurado por comandos externos utilizando o cliente bspc e seu arquivo de inicialização é um shell script, portanto é possível fazer infinitas customizações. Criei uma condição que detecta se dois monitores estão definidos logo após iniciar o gerenciador. Caso seja encontrado dois monitores, é executada a configuração para dois, senão a configuração é feita para um monitor somente.

    # checa se existem dois monitores definidos
    MON=$(xrandr --listmonitors | grep Monitors | cut -b 11-)

    # caso tenha, executa o setup para dois
    if [[ $MON == 2 ]] ; then
        xrandr --output HDMI1 --primary --left-of eDP1 --auto &
        bspc monitor HDMI1 -d 1 2 3 4
        bspc monitor eDP1 -d 5 6 7 8
    else
        bspc monitor eDP1 -d 1 2 3 4 5 6 7 8
    fi

O setup para dois monitores define quatro áreas de trabalho para cada monitor, ficando as áreas cinco a oito no laptop.

Agora é hora de criar um script para a barra de informações (polybar). Eu quero que apareçam uma barra diferente em cada monitor. Toda a informação necessária como carga da bateria, relógio, conexão de internet e temperatura ficam no monitor principal. No caso de estar utilizando só o notebook, quero as informações nele, mas se estiver com o monitor externo, quero as informações no monitor externo e a barra no laptop só com o nome das áreas de trabalho.

No script de execução do polybar, bastou colocar isso:

    # termina qualquer instância do programa que esteja rodando
    pkill polybar

    # variável guarda a quantidade de monitores
    MONS=$(polybar --list-monitors | wc -l)

    # caso tenha dois, execute as duas barras
    # A bar1 é a barra com mais informações. Ela irá para o monitor
    # externo (HDMI1) caso ele esteja conectado.
    if [[ "$MONS" == "2" ]] ; then
        MON1=HDMI1 polybar --reload bar1 &
        MON2=eDP1 polybar --reload bar2 &
    else
        MON1=eDP1 polybar --reload bar1 &
    fi

O resultado ficou satisfatório, mas existe um problema. Caso eu resolva desconectar ou conectar o monitor externo com o BSPWM rodando, tudo vira uma bagunça.

Não é algo que faço. Ou ligo o computador com o monitor externo já conectado ou não. Caso venha a fazer de outra maneira, reinicio o Xorg. Pelo pouco que olhei, seria necessário monitorar eventos no udev e reagir. Fiz algumas tentativas, mas acabei deixando de lado.

Se no futuro isso se tornar um problema, pesquiso como resolver e crio outro artigo aqui.

Segue uma foto da área de trabalho para ilustrar o resultado final:
Linux: Configurando bspwm e dois monitores
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Configurando bspwm e dois monitores

Instalação Minimalista do Void Linux

Otimizando o KDE com o Slackbuild

Debian + Xorg + Nvidia - Um conceito visual para desktops

Configurando o monitor no SuSE 10.1

Servidor VPN PPTP com autenticação de usuários no Active Directory

Configurando uma placa de rede no Linux

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.