O script abaixo é para alternar a rotação de qualquer uma das suas telas:
#!/usr/bin/env python3
import subprocess
# --- set the name of the screen and the rotate direction below
screen = "VGA-1"
rotate = "left"
# ---
matchline = [
l.split() for l in subprocess.check_output(["xrandr"]).decode("utf-8").splitlines()\
if l.startswith(screen)
][0]
s = matchline[
matchline.index([s for s in matchline if s.count("+") == 2][0])+1
]
rotate = "normal" if s == rotate else rotate
subprocess.call(["xrandr", "--output", screen, "--rotate", rotate])
Como usar
- Copie o script em um arquivo vazio, salve-o como
toggle-rotate.py
-
Na seção principal do script, defina:
- o nome da tela que você gostaria de alternar (descubra executando em um terminal o comando
xrandr
) -
a direção de rotação,
left
ouright
(entre aspas, como no exemplo).# --- set the name of the screen and the rotate direction below screen = "VGA-1" rotate = "left" # ---
- o nome da tela que você gostaria de alternar (descubra executando em um terminal o comando
-
Teste- execute-o pelo comando (duas vezes, a partir de um terminal):
python3 /path/to/toggle-rotate.py
-
Se tudo funcionar bem, adicione-o a uma tecla de atalho. Escolha: Configurações do sistema > "Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione o comando:
python3 /path/to/toggle-rotate.py
para um atalho de sua escolha ...
É isso.
Explicação
Na saída do comando xrandr
, a rotação atual da sua tela (se houver) é mencionada diretamente após a posição da tela, por exemplo:
VGA-1 connected 1024x1280+1680+0 left (normal left inverted right x axis y axis) 376mm x 301mm
No exemplo, vemos: 1024x1280+1680+0 left
. O script examina a linha, correspondente à tela, mencionada no cabeçalho do script. se a tela for girada, o script executará o comando ( xrandr
):
xrandr --output <screen_name> --rotate normal
se não , ele é executado (por exemplo):
xrandr --output <screen_name> --rotate left
Para girar a tela no sentido anti-horário