Как привязать Alt + Arrows к PageUp / PageDown?

10

Я только что попробовал, используя loadkeysи этот файл карты:

alt keycode 73 = Prior
string Prior = "\033[5~"
alt keycode 81 = Next
string Next = "\033[6~"

Но это не работает.

int_ua
источник
Вы должны использовать loadkeys?
Сет
Оказывается loadkeys для TTYs. Придется использовать и xkbcomp, я его медленно копаю.
int_ua
1
Как насчет xbindkeys или xmodmap?
Сет
1
xbindkeys чрезмерен для этого, xmodmap - да, может быть :) Я просто уже работаю с дампом xkbcomp.
int_ua
Но если вы найдете способ с помощью xbindkeys, я думаю, это тоже будет хорошо :)
int_ua

Ответы:

7

Установите xbindkeysи xte:

sudo apt-get install xbindkeys xautomation

Далее нам нужно найти сопоставления клавиш для Alt+ Arrow.

Запустите xbindkeys -kи нажмите Altплюс любую стрелку, которую вы хотите. За Alt+ Up Arrowя получаю:

"NoCommand"
m:0x18 + c:111
Alt+Mod2 + Up

Теперь, когда мы знаем, как связаны наши ключи, нам нужно создать .xbindkeysфайл конфигурации. Запустить:

touch .xbindkeysrc
gedit .xbindkeysrc

touchсоздает файл и geditоткрывает его. Теперь добавьте:

"xte 'key Page_Up'"
m:0x18 + c:111
Alt+Mod2 + Up

В файл и сохраните его. Это будет связывать Alt+ Up Arrowс PgUp.

Основной синтаксис для xbindkeys:

"command to run (in quotes)"
keysym of key

Ваш полный файл должен выглядеть почти идентично этому:

"xte 'key Page_Down'"
m:0x18 + c:116
Alt+Mod2 + Down  

"xte 'key Page_Up'"
m:0x18 + c:111
Alt+Mod2 + Up  

Теперь добавьте xbindkeys«Startup Applications», чтобы он запускался при загрузке компьютера.
Нажмите «Добавить» и введите /usr/bin/xbindkeysв поле «Команда».

введите описание изображения здесь

Нажмите «Добавить» еще раз и перезагрузите компьютер.

Сет
источник
1
У меня не работает :( Пробовал оба m:0x8 + c:111(только Alt + Up) m:0x18 + c:111и оба в Unity и KDE.
int_ua
@int_ua Ты получил свои привязки xbindkeys -kили скопировал их из моего поста? Вы должны получить свой собственный от xbindkeys -k.
Сет
Я пробовал оба, но теперь я использовал его второй раз в Unity, и он дает другой результат: m:0x18 + c:64Edit: нет, то же самое. Пришлось убить еще одного xbindkeys.
int_ua
У меня тоже не работает. Я пытался переназначить Alt + Leftна Home.
Расмус
1
@Rasmus Это странно. Какое содержание у вас .xbindkeysrc? (опубликовать его на paste.ubuntu.com, чтобы я мог посмотреть).
Сет
0

Эта:

key   <UP> {
    type= "PC_ALT_LEVEL2",
    symbols[Group1]= [           Up,         KP_Prior ]
};
key <DOWN> { 
    type= "PC_ALT_LEVEL2",
    symbols[Group1]= [           Down,         KP_Next ]
};
key <LEFT> {
    type= "PC_ALT_LEVEL2",
    symbols[Group1]= [           Left,         KP_Home ]
};
key <RGHT> {
    type= "PC_ALT_LEVEL2",
    symbols[Group1]= [           Right,         KP_End ]
};

работает только в некоторых случаях, размещение только для справки , это далеко не окончательное решение.

PS s/KP_//gдает тот же результат.

int_ua
источник
0

Я прочитал этот https://help.ubuntu.com/community/KeyboardShortcuts, который помог мне понять следующее. В то время как пакет xautomation , который включает в себя xteинструмент, мог бы использоваться вместо того, xvkbdчтобы выдавать коды клавиш, я использовал xvkbdдля того же.

sudo apt-get install xbindkeys xbindkeys-config xvkbd

xbindkeys --defaults > /home/your-user-name/.xbindkeysrc

По какой-то причине это добавило привязку для Ctrl-F, которую я должен был закомментировать. Хотя, возможно, полезный пример по умолчанию мне нужно Ctrl-F, чтобы найти внутри веб-страниц.

После выяснения «ключей» Prior для PgUp и Next для PgDown это было не слишком сложно. Запуск и использование xbindkeys-configпривели к следующим записям в .xbindkeysrc для меня.

#alt-up
"xvkbd -xsendevent -text "\[Prior]""
    m:0x18 + c:111
    Alt+Mod2 + Up

#alt-down
"xvkbd -xsendevent -text "\[Next]""
    m:0x18 + c:116
    Alt+Mod2 + Down

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

То же самое будет работать для Ctrl.

#ctrl-up
"xvkbd -xsendevent -text "\[Prior]""
    m:0x14 + c:111
    Ctrl+Mod2 + Up

#ctrl-down
"xvkbd -xsendevent -text "\[Next]""
    m:0x14 + c:116
    Ctrl+Mod2 + Down
grantbow
источник