В Gnome-Classic (metacity) в 14.04,
Если возможно, как мне добавить ключ для меню приложений?
Чтобы добавить ключ для вызова меню приложения, что это за команда?
В отличие от https://askubuntu.com/a/ 133915/1471 , в моем случае нет клавиши для меню Приложений.
Мой 14.04 поставляется с compiz + unity, а затем я устанавливаю metacity + gnomeclassic. У них одинаковые настройки клавиатуры? Это причина, по которой у меня нет ключа для меню приложения?
Спасибо!
С грязным обходным решением это может вполне успеться. Используя xdotool
, можно заставить его переместить мышь в положение меню Applications, открыть его и автоматически попятиться к его исходному положению.
Так как все происходит очень быстро, и мышь попятилась к ее исходному положению, Вы не заметите его.
Сценарий предполагает, что Ваше меню Applications находится в левом верхнем углу, как в изображении выше. Если это не так, координаты в cmd1
должны быть изменены.
#!/usr/bin/env python3
import subprocess
import time
cursordata = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()
loc = [d.split(":")[1] for d in cursordata[:2]]
cmd1 = "xdotool mousemove 10 5"; cmd2 = "xdotool click 1"; cmd3 = "xdotool mousemove "+(" ").join(loc)
for cmd in [cmd1, cmd2, cmd3]:
subprocess.Popen(["/bin/bash", "-c", cmd])
time.sleep(0.05)
Подробно:
выберите текущее положение мыши:
cursordata = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()
Проанализируйте вывод (x/y) в координаты:
loc = [d.split(":")[1] for d in cursordata[:2]]
Выполните команды [cmd1, cmd2, cmd3]
к впоследствии:
for cmd in [cmd1, cmd2, cmd3]:
subprocess.Popen(["/bin/bash", "-c", cmd])
time.sleep(0.05)
Установка xdotool
:
sudo apt-get install xdotool
Вставьте сценарий в пустой файл, сохраните его как open_appmenu.py
Тестовый прогон это с командой:
python3 /path/to/open_appmenu.py
Если все работы хорошо, добавляет это к сочетанию клавиш: выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду:
python3 /path/to/open_appmenu.py
После того как Вы открыли меню Applications, можно просто переключиться на следующий объект с клавишами со стрелками.
Ниже версии сценария, который может использоваться гибким способом, чтобы нажать на экран на любом положении, быть измененным легко. Скрипт может быть запущен с двумя опциями:
для установки (помнят) текущее местоположение мыши:
run_click -set
нажать на помнившее в последний раз положение:
run_click -run
Если никакое положение не было установлено, сообщение zenity появляется, приглашая для установки положения:
Сценарий создает скрытый файл; ~/.run_click
где это хранит последние помнившие координаты.
Как тест, я подверг обе команды сочетаниям клавиш: Ctrl+Alt+R и Ctrl+Alt+A, помогая сменить положение щелчка на месте.
как в первом сценарии, Установке xdotool
:
sudo apt-get install xdotool
скопируйте сценарий ниже в пустой файл, сохраните его как run_click
(никакое расширение) в ~/bin
(создайте каталог при необходимости), и сделайте исполняемый файл сценария.
~/bin
, выполненный source ~/.profile
.run_click -set
, затем run_click -run
видеть если все работы как ожидалось.#!/usr/bin/env python3
import subprocess
import time
import sys
import os
option = sys.argv[1]
datafile = os.path.join(os.environ["HOME"], ".run_click")
def get_mousepos():
cursordata = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()
return [d.split(":")[1] for d in cursordata[:2]]
if option == "-run":
try:
data = open(datafile).read()
coords = (" ").join([l for l in data.splitlines()])
except FileNotFoundError:
message = "Please run the command: 'run_click -set' first, to set the click position"
subprocess.Popen(["zenity", "--info", "--text", message])
else:
cmd1 = "xdotool mousemove "+coords; cmd2 = "xdotool click 1"; cmd3 = "xdotool mousemove "+(" ").join(get_mousepos())
for cmd in [cmd1, cmd2, cmd3]:
subprocess.Popen(["/bin/bash", "-c", cmd])
time.sleep(0.05)
elif option == "-set":
open(datafile, "wt").write(("\n").join(get_mousepos()))