Примечание: это не дубликат или этого или этого, поскольку я ясно дам понять.
У меня есть мышь 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 - я также принял бы те решения.
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
когда то событие имеет место.
Так, /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
Не попробовали это на 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
Я получил сделанные идеи использования из ответа Velkan. Я перечислю необходимые шаги.
, В первую очередь, Win+Tab
макрос я установил на кнопке G9 в Windows, вмешивался в то, как Linux обнаруживает мышь. Вместо того, чтобы обнаружить кнопку мыши, это просто обнаружило Win
и Tab
ключи xev
. Я полагаю, что мышь внутренне установлена отправить их при конфигурировании кнопки как "Мультиключевого Макроса" в его программном обеспечении Windows.
Для фиксации этого не устанавливайте кнопку для использования Мультиключевого Макроса в Windows. Установите его на что-либо еще. Я установил его, чтобы быть щелчком средней кнопкой.
Теперь, xev | grep button
обнаружил G9 как кнопку 2
.
, которую я записал этому сценарию в ~/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
я добавил это в моем ~/.xbindkeysrc
. Нам нужны две строки, чтобы заставить щелчок работать в обоих состояниях: когда alt
снижается и когда это не.
"~/alttab.sh"
b:2 + Release
"~/alttab.sh"
Alt + b:2
Это работало отлично для меня. Поток: нажмите G9 (нажатие и выпуск), выберите окно, Вы хотите (щелчок левой кнопкой или колесо мыши), затем нажимаете G9 снова для движения в то Окно. Можно изменить первое if
в .sh
файл, чтобы также отправить mouseclick 1
прежде keyupping высокий звук, если Вы хотите перейти непосредственно к окну, Вы нажимаете с кнопкой G9 в дисплее окон.
я также экспериментировал с удалением usleep
вызовы. Это работало на меня без них.
поведение точно не похоже на Windows один, но я нахожу его достаточно близко. Возможно, еще более удобный, так как можно сделать выбор с той же кнопкой, таким образом, Вы не должны шевелить пальцем к другой кнопке!