Свяжите Alt+Tab с кнопкой мыши Logitech на Kubuntu

Примечание: это не дубликат или этого или этого, поскольку я ясно дам понять.

У меня есть мышь Logitech Proteus Core. В соответствии с Windows 10, я установил одну из его кнопок (маленький маркировал "G9" сверху мыши) показать список задач, который может быть поднят с помощью ключей Win+Tab. Обратите внимание, что это не ложится спать даже при выпуске и Победы и клавиш Tab она только уходит, после того как Вы нажимаете на Окно, в которое Вы хотите перейти. Таким образом, рабочий процесс: продвиньте и отпустите кнопку мыши G9, нажмите окно, которое я хочу.

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

Таким образом, моя идея состояла в том, чтобы эмулировать Alt+Tab с этой кнопкой. Рабочий процесс, который я имею в виду: продвиньте G9 (ярлык для "высокого звука нажатия, продвиньте вкладку, realease вкладка") => выбирают окно, которое я хочу, выпуск G9 (ярлык для "высокого звука выпуска").

Проблема состоит в том, что, насколько я могу сказать, эта кнопка G9 не читается ОС как нормальная кнопка мыши. Если я работаю:

xbindkeys -mk

И нажмите кнопку G9, я получаю этот вывод:

"(Scheme function)"
m:0x40 + c:23
Mod4 + Tab
"(Scheme function)"
m:0x40 + c:133
Mod4 + Super_L

Примечание: Я выполняю это в VM для тестирования. Сообщите мне, может ли это влиять на вещи, хотя мне был бы нужен он для работы в этом случае также.

Если я работаю:

xev | grep button

Я не получаю вывода, когда я нажимаю кнопку G9, я интересуюсь. Если я нажимаю другие кнопки, я получаю ожидаемые выводы как:

state 0x0, button 2, same_screen YES

Это странно, но я думал, что мог просто добавить что xbindkeys -mk выводы к моему ~/.xbindkeysrc:

"xte 'keydown Alt_L' 'key Tab'"
  m:0x40 + c:23 + Release

Очевидно, даже если бы это работало, то это не сделало бы то, к чему я хочу это, но это даже не работает. Ничего не происходит, когда я нажимаю кнопку G9 после выполнения:

xbindkeys -v -n

Который дает это предупреждение:

Проверьте, что нет другого выполнения программы, которое получает один из ключей, полученных xbindkeys. Кажется, что существует конфликт, и xbindkeys не может захватить все ключи, определенные в его конфигурационном файле.

Если я ввожу xte команда в консоли, это поднимает выбор задачи alt+tab меню. Ничто для связанной кнопки мыши как бы то ни было.

Если я присваиваю то же xte звоните в другую кнопку, один это показывают xev вывод (я попробовал правую кнопку мыши), это все еще не выполнилось (кажется, что только вкладка выполняется, поскольку это снабжает вкладками вещи в текстовом редакторе), но предупреждения не стало, и регулярной функции кнопки также не стало:

Как я могу добраться Alt+Tab поведение я описал при нажатии кнопки G9? Что относительно другой кнопки, та это xev обнаруживает, как b:3?

Примечание: эта мышь сохраняет конфигурацию, сделанную из ее программного обеспечения Windows внутренне. Таким образом, все мои другие кнопки сохраняют свои функции в VM: назад/вперед в браузере, вкладки браузера переключателя и т.д. программное обеспечение Logitech позволяет макро-записи в Windows, но это не позволяет указывать различные действия для нажатия / события выпуска, AFAIK.

Если существует способ записать правильный макрос в соответствии с Windows, или существует способ упростить то, чего я хочу достигнуть под Kubuntu - то есть, используйте кнопку G9 для получения схожей функциональности к alt+tab - я также принял бы те решения.

6
задан 13 April 2017 в 05:24

2 ответа

evrouter может помочь сделать это. Это даже позволит выпуску G9 прежде, чем выбрать задачу из списка.

http://www.bedroomlan.org/projects/evrouter

Я создал его из источника и установил с checkinstall, но существует что-то, что похоже на репозиторий там.

Рычаги

Это может быть настроено в ~/.evrouterrc:

"Logitech Gaming Mouse G300" "/dev/input/event.*" any key/272 "SHELL//home/velkan/click.sh"

"Logitech Gaming Mouse G300" "/dev/input/event.*" any key/275 "SHELL//home/velkan/atab.sh"

Выполнение sudo evrouter -d /dev/input/event* и нажатие вокруг поможет составить эти строки.

"Logitech Gaming Mouse G300" название моей мыши.

"/dev/input/event.*" средства, которые вводят, будут прерваны независимо от названия файла устройств, с которым связывается мышь.

any - средства, что событие будет принято с любым модификатором Alt/Ctrl/Shift.

key/272 - левая кнопка мыши.

key/275 - назад кнопка мыши (на G4 для меня).

"SHELL//home/velkan/click.sh" - выполненный /home/velkan/click.sh когда то событие имеет место.

Сценарии Alt-Tab

Так, /home/velkan/atab.sh сценарий (который связывается с G4 в этом случае):

#!/bin/bash

mktemp /tmp/evr-alt-tab-XXXX

/usr/bin/xte 'usleep 100000' 'keydown Alt_L' 'usleep 50000' 'key Tab'

Это создает временный файл, который сообщит click.sh (связанный с левой кнопкой), что это должно выпустить Высокий звук.

click.sh сценарий:

#!/bin/bash

if [ -e /tmp/evr-alt-tab-???? ]; then
    /usr/bin/xte 'usleep 100000' 'keyup Alt_L'
    rm /tmp/evr-alt-tab-????
fi

Активация evrouter на запуске

Не попробовали это на KDE.

Сценарий запуска /usr/local/sbin/evrouter_launch.sh:

#!/bin/sh
/usr/local/bin/evrouter /dev/input/event* 0<&- > /dev/null

(или это может быть /usr/bin/evrouter вместо /usr/local/bin/evrouter)

Конфигурация /etc/lightdm/lightdm.conf запустить evrouter со среды рабочего стола:

[SeatDefaults]
autologin-user=
session-setup-script=/usr/local/sbin/evrouter_launch.sh
5
ответ дан 23 November 2019 в 07:38

Я получил сделанные идеи использования из ответа Velkan. Я перечислю необходимые шаги.

  1. , В первую очередь, Win+Tab макрос я установил на кнопке G9 в Windows, вмешивался в то, как Linux обнаруживает мышь. Вместо того, чтобы обнаружить кнопку мыши, это просто обнаружило Win и Tab ключи xev. Я полагаю, что мышь внутренне установлена отправить их при конфигурировании кнопки как "Мультиключевого Макроса" в его программном обеспечении Windows.

    Для фиксации этого не устанавливайте кнопку для использования Мультиключевого Макроса в Windows. Установите его на что-либо еще. Я установил его, чтобы быть щелчком средней кнопкой.

  2. Теперь, xev | grep button обнаружил G9 как кнопку 2.

  3. , которую я записал этому сценарию в ~/alttab.sh, который является комбинацией сценариев Velkan:

    #!/bin/bash
    
    if [ -e /tmp/alt-tab-mouse-script-???? ]; then
       xte 'usleep 100000' 'keyup Alt_L'
       rm /tmp/alt-tab-mouse-script-????
    else
       mktemp /tmp/alt-tab-mouse-script-XXXX
       xte 'usleep 100000' 'keydown Alt_L' 'usleep 50000' 'key Tab'
    fi
    
  4. я добавил это в моем ~/.xbindkeysrc. Нам нужны две строки, чтобы заставить щелчок работать в обоих состояниях: когда alt снижается и когда это не.

    "~/alttab.sh"
      b:2 + Release 
    
    "~/alttab.sh"
      Alt + b:2
    

Это работало отлично для меня. Поток: нажмите G9 (нажатие и выпуск), выберите окно, Вы хотите (щелчок левой кнопкой или колесо мыши), затем нажимаете G9 снова для движения в то Окно. Можно изменить первое if в .sh файл, чтобы также отправить mouseclick 1 прежде keyupping высокий звук, если Вы хотите перейти непосредственно к окну, Вы нажимаете с кнопкой G9 в дисплее окон.

я также экспериментировал с удалением usleep вызовы. Это работало на меня без них.

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

3
ответ дан 23 November 2019 в 07:38

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

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