Como mover o cursor do mouse entre monitores com teclas no Gnome3?

3

Eu uso o Gnome3 como minha interface de desktop. Eu estou usando dois monitores. Eu quero ser capaz de mover meu cursor do mouse de um monitor para outro usando o meu teclado, digamos com ctrl + alt + right-key. Como faço para configurar isso?

    
por PhoenixPerson 19.12.2016 / 11:07

2 respostas

3

O script abaixo pode ser executado com dois argumentos: left e right .

Em uma configuração de dois monitores (esquerda / direita, em qualquer configuração), o script moverá o mouse para o centro do monitor esquerdo ou direito, dependendo do argumento. / p>

Oscript

#!/usr/bin/env python3 import subprocess import sys arg = sys.argv[1] screeninfo = [ s for s in subprocess.check_output("xrandr").decode("utf-8").split()\ if s.count("+") == 2 ] if arg == "left": match = [s for s in screeninfo if s.endswith("+0+0")][0] elif arg == "right": match = [s for s in screeninfo if not s.endswith("+0+0")][0] data = [item.split("x") for item in match.split("+")] numbers = [int(n) for n in [item for sublist in data for item in sublist]] coord = [str(int(n)) for n in [(numbers[0]/2)+numbers[2], (numbers[1]/2)+numbers[3]]] subprocess.Popen(["xdotool", "mousemove", coord[0], coord[1]])

Como usar

  1. O script precisa de xdotool :

    sudo apt-get install xdotool
    
  2. Copie o script em um arquivo vazio, salve-o como move_mouse.py

  3. Teste o script. Execute a partir de um terminal os comandos:

    python3 /path/to/move_mouse.py left
    

    e

    python3 /path/to/move_mouse.py right
    
  4. Se tudo funcionar bem, adicione os comandos a dois atalhos disponíveis: Escolha: Configurações do sistema > "Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione os comandos acima.

Nota

O script não é gnome -specific; ele deve rodar bem em todas as distribuições do Ubuntu.

Explicação

  • Podemos mover o mouse para uma posição específica pelo comando (por exemplo):

    xdotool mousemove 300 500
    
  • Para calcular as posições segmentadas (centralizadas) nas duas telas, precisamos entender que as telas conectadas estão posicionadas em um layout arbitrário, por exemplo,

  • Na saída de xrandr , podemos encontrar informações nas duas telas, suas resoluções e suas posições no layout de expansão, como:

    1280x1024+1680+128
    
  • Para obter a posição desejada por tela (centro), tudo o que precisamos fazer é dividir o primeiro e o segundo número (1280x1024, a resolução) por 2, adicionar posteriormente as duas posições calculadas ao deslocamento por tela (+1680+ 128 neste caso). Isso é exatamente o que o script faz.

    Posteriormente, os números encontrados são usados como argumentos para executar o xdotool mousemove -command.

por Jacob Vlijm 19.12.2016 / 14:19
0

No Ubuntu 18.04 não há atalhos personalizados, então seguindo a abordagem de JacobVlijm , eu calculei meus centros e escrevi apelidos em minha concha:

sudo echo -e "\
alias lt='xdotool mousemove 640 360' \n\  # lt means left
alias rt='xdotool mousemove 1920 512'\   # rt means right
" >> .bashrc
    
por atongsa 14.07.2018 / 15:56