Como posso criar um ícone no lançador para desativar o teclado + girar a tela?

1

Eu tenho 2 em 1 pc com o Ubuntu. Eu queria saber se existe uma maneira de escrever um comando que liga e desliga um teclado interno, e gira a tela 90 graus para a esquerda (ou para a direita), e colocá-lo em um lançador à esquerda. Existe alguma maneira de fazer isso?

Seria legal se eu pudesse apenas tocar nele para desativar o teclado (+ touchpad) e girar a tela em 90 graus e tocar mais uma vez para voltar à orientação correta com o teclado em funcionamento (+ touchpad).

    
por Tom 29.11.2016 / 15:57

1 resposta

1

Script + launcher para girar a tela e alternar o teclado, em uma etapa

O script abaixo será ambos

  • girar (alternar) sua tela (esquerda ou direita)
  • desativar (alternar) o teclado que você definiu para ser desativado

O script

#!/usr/bin/env python3
import subprocess

# --- set the name of the screen, and the rotate direction and the id of your keyboard below
screen = "DVI-I-1"
rotate = "left"
disable = ["9", "14"]
# ---

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
    ]

newset = ["normal", "1"] if s == rotate else [rotate, "0"]
subprocess.call(["xrandr", "--output", screen, "--rotate", newset[0]])
for item in disable:
    subprocess.call(["xinput", "set-prop", item, "Device Enabled", newset[1]])

Como usar

  1. Copie o script em um arquivo vazio, salve-o como rotate.py
  2. Copie o iniciador abaixo em um arquivo vazio, salve-o como rotate.desktop

    [Desktop Entry]
    Exec=python3 /path/to/rotate.py
    Icon=preferences-desktop-keyboard
    Name=Rotate & Disable Keyboard
    Type=Application
    

    Na linha Exec= , substitua o /path/to/rotate.py pelo caminho real pelo script rotate.py . Torne o arquivo .desktop executável . Ele mostrará um ícone como:

  3. Agora você precisa descobrir duas coisas:

    a. o nome da sua tela (aquele que você deseja girar): Execute em um terminhal:

    xrandr
    

    Procure por uma linha com "conectado". A primeira string é o nome da tela, parecendo com o exemplo no script. (também pode ser VGA-1 ou algo parecido)

    b. O id do seu teclado, aquele a ser desativado. Execute em um terminal o comando:

    xinput -list
    

    como descrito em esta resposta .

  4. Insira os itens encontrados na cabeça do script:

    # --- set the name of the screen, and the rotate direction and the id of your keyboard below
    screen = "DVI-I-1"
    rotate = "left"
    disable = ["9"]
    # ---
    

Agora que você terminou, use o arquivo .desktop diretamente de sua área de trabalho ou mova-o para ~/.local/share/applications e arraste-o para o iniciador do Dash.

Se você fizer o segundo, observe que, depois de girar a tela, o ícone não responderá por aprox. 7 segundos.

Divirta-se!

    
por Jacob Vlijm 29.11.2016 / 21:35