Я использую Gnome3 в качестве своего рабочего стола iterface. Я использую два монитора. Я хочу смочь переместить свой курсор мыши от одного монитора до другого использования моей клавиатуры, сказать с ctrl+alt+right-key. Как я настраиваю это?
Скрипт ниже может быть запущен с двумя аргументами: left
и right
.
В мониторе двух - установка (слева/справа, в любой конфигурации), сценарий переместит мышь в центр или лево-или правильного монитора, в зависимости от аргумента.
#!/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]])
Потребности сценария xdotool
:
sudo apt-get install xdotool
Скопируйте сценарий в пустой файл, сохраните его как move_mouse.py
Тестовый прогон сценарий. Выполненный от терминала команды:
python3 /path/to/move_mouse.py left
и
python3 /path/to/move_mouse.py right
Если все хорошо работает, добавьте команды к двум доступным ярлыкам: Выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команды выше.
Сценарий не gnome
- конкретный; это должно хорошо работать на всем дистрибутиве Ubuntu.
Мы можем переместить мышь в определенное положение командой (например).:
xdotool mousemove 300 500
Для вычисления целенаправленных положений (центрируемых) на обоих экранах, мы должны понять, что соединенные экраны расположены в произвольное расположение, например.
В выводе xrandr
, мы можем найти информацию об обоих экранах, их разрешениях и их положениях в расположении охвата, как:
1280x1024+1680+128
Для получения целенаправленного положения на экран (центр) все, что мы должны сделать, является делением первое и второе число (1280x1024, разрешение) 2, впоследствии добавьте два расчетных положения к смещению на экран (+1680+128 в этом случае). Это - exactltly, что делает сценарий.
Впоследствии, найденные числа используются в качестве аргументов выполненному xdotool mousemove
- команда.
В Ubuntu 18.04 нет никаких пользовательских ярлыков, так после подхода @JacobVlijm, я вычислил свои центры и записал псевдонимы в моей оболочке:
sudo echo -e "\
alias lt='xdotool mousemove 640 360' \n\ # lt means left
alias rt='xdotool mousemove 1920 512'\ # rt means right
" >> .bashrc
В Ubuntu Gnome я использую этот очень простой сценарий bash, чтобы мгновенно переместить указатель мыши на противоположный монитор в конфигурации с двумя экранами.
https://github.com/vijay-prema/swap-screen
Вам просто нужно ввести разрешение экрана в скрипт и привязать скрипт к горячей клавише. Если кто знает как сделать автоопределение разрешения, дайте знать!