Ключ для расширения меню приложений в Gnome-Classic на 14.04?

  1. В Gnome-Classic (metacity) в 14.04,

    • есть клавиша для вызова меню приложений?
    • есть клавиша для переключения между элементами на верхней панели, такими как меню «Приложения», «Места», значок беспроводной связи, батарея, время, меню «выключение / приостановка / выход из системы / блокировка», ...?
  2. Если возможно, как мне добавить ключ для меню приложений?

    Чтобы добавить ключ для вызова меню приложения, что это за команда?

  3. В отличие от https://askubuntu.com/a/ 133915/1471 , в моем случае нет клавиши для меню Приложений.

    Мой 14.04 поставляется с compiz + unity, а затем я устанавливаю metacity + gnomeclassic. У них одинаковые настройки клавиатуры? Это причина, по которой у меня нет ключа для меню приложения?

    enter image description here

Спасибо!

3
задан 13 April 2017 в 15:25

1 ответ

С грязным обходным решением это может вполне успеться. Используя xdotool, можно заставить его переместить мышь в положение меню Applications, открыть его и автоматически попятиться к его исходному положению.

Так как все происходит очень быстро, и мышь попятилась к ее исходному положению, Вы не заметите его.

enter image description here

Сценарий предполагает, что Ваше меню 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] к впоследствии:

  • переместите мышь в меню Applications
  • нажать
  • положите обратно мышь к тому, везде, где это было
for cmd in [cmd1, cmd2, cmd3]:
    subprocess.Popen(["/bin/bash", "-c", cmd])
    time.sleep(0.05)

Как использовать сценарий

  1. Установка xdotool:

    sudo apt-get install xdotool
    
  2. Вставьте сценарий в пустой файл, сохраните его как open_appmenu.py

  3. Тестовый прогон это с командой:

    python3 /path/to/open_appmenu.py
    
  4. Если все работы хорошо, добавляет это к сочетанию клавиш: выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду:

    python3 /path/to/open_appmenu.py
    

Переместитесь в другие объекты

После того как Вы открыли меню Applications, можно просто переключиться на следующий объект с клавишами со стрелками.


Править: обобщенная версия

Ниже версии сценария, который может использоваться гибким способом, чтобы нажать на экран на любом положении, быть измененным легко. Скрипт может быть запущен с двумя опциями:

  1. для установки (помнят) текущее местоположение мыши:

    run_click -set
    
  2. нажать на помнившее в последний раз положение:

    run_click -run
    

Если никакое положение не было установлено, сообщение zenity появляется, приглашая для установки положения:

enter image description here

Сценарий создает скрытый файл; ~/.run_click где это хранит последние помнившие координаты.

Как тест, я подверг обе команды сочетаниям клавиш: Ctrl+Alt+R и Ctrl+Alt+A, помогая сменить положение щелчка на месте.

Как настроить

  1. как в первом сценарии, Установке xdotool:

    sudo apt-get install xdotool
    
  2. скопируйте сценарий ниже в пустой файл, сохраните его как run_click (никакое расширение) в ~/bin (создайте каталог при необходимости), и сделайте исполняемый файл сценария.

  3. Если Вы просто создали ~/bin, выполненный source ~/.profile.
  4. Протестируйте обе команды, сначала run_click -set, затем run_click -run видеть если все работы как ожидалось.
  5. Добавьте обе команды к двум различным сочетаниям клавиш: выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команды.

Сценарий

#!/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()))
3
ответ дан 13 April 2017 в 15:25

Другие вопросы по тегам:

Похожие вопросы: