Я хотел бы добавить набор функций для пары fn + right / left, чтобы они были такими же, как в Mac - «home» и «end». Я не имею в виду замену кнопок «домой» и «конец» - просто добавление еще одной клавиши «домой» / «конец». Преимущество заключается в написании / изменении текста. Я часто использую стрелки, а также кнопки «домой» и «конец», но зачем переходить на новую кнопку? Моя левая рука уже находится рядом с клавишей fn (функция) и готова нажать клавишу «Control» или «Shift».
Как мне установить это?
Спасибо.
Я определенно понимаю, почему ты хочешь сделать это! Вот моя ставка на то, что я сделал:
Запустите терминал и запустите «xev». Наведите курсор мыши на окно Event Tester и нажмите fn + вправо / влево. Вы должны получить показания вроде:
KeyRelease event, serial 36, synthetic NO, window 0x5200001,
root 0xb2, subw 0x0, time 89989888, (98,124), root:(1007,175),
state 0x0, keycode 171 (keysym 0x1008ff17, XF86AudioNext), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Это для моей клавиатуры и fn + right. Найдите код ключа - здесь 171.
Теперь перейдите к редактированию файла .bashrc в вашем домашнем каталоге. Он скрыт, поэтому нажмите Ctrl + H в Nautilus, чтобы показать. Затем добавьте строки
xmodmap -e "keycode 171 = Home"
xmodmap -e "keycode xxx = End"
, где вы заменяете 171 и xxx полученными кодами клавиш. Затем сохраните и закройте файл. Закройте все свои терминалы, откройте один, и вы должны быть готовы к работе!
Теперь есть один недостаток: вы должны активировать его при каждой загрузке. Вы делаете это, открывая терминал, и все. Вы можете закрыть его снова немедленно. Или вы можете попытаться исправить это, чтобы сделать это автоматически, , как описано здесь . Я просто запускаю терминал, используя ярлык, а затем убиваю его ...
Если у вас Ubuntu+Gnome и xev
ничего не показывает, когда вы набираете Fn+Влево
или Fn+Вправо
- возможно, у вас есть перехватчик в сеансе Gnome, как и я. Также на моей аппаратной клавиатуре ноутбука отображаются "назад"
и "вперед"
значки проигрывателя/музыки для левой и правой кнопок - это означает, что моя аппаратная клавиатура отправляет код клавиши 173
для Fn+Влево
и код клавиши 171
для Fn+Вправо
.
Вы можете отключить прослушиватели с помощью пользовательского интерфейса dconf-editor
.
Установите и запустите dconf-editor
.
Перейдите по следующим путям и отключите Использовать значение по умолчанию
и поместите пустой массив []
в Пользовательское значение
.
Для Fn+Влево
:
/org/gnome/settings-daemon/plugins/media-keys/previous-static
.
Для Fn+Right
:
/org/gnome/settings-daemon/plugins/media-keys/next-static
Применить изменения для обоих путей и закрыть dconf- редактор
.
Теперь применить пользовательский обработчик для Fn+Left
:
xmodmap -e "keycode 171 = End"
До этой настройки это было для меня xmodmap -pk | grep -i '171'
:
171 0x1008ff17 (XF86AudioNext) 0x0000 (NoSymbol) 0x1008ff17 (XF86AudioNext) 0x0000 (NoSymbol) 0x1008ff17 (XF86AudioNext)
После этой настройки:
171 0xff57 (End) 0x0000 (NoSymbol) 0xff57 (End) 0x0000 (NoSymbol) 0xff57 (End)
Применить пользовательский обработчик для Fn+Right
:
xmodmap -e "keycode 173 = Home"
До xmodmap -pk | grep -i '173'
:
173 0x1008ff16 (XF86AudioPrev) 0x0000 (NoSymbol) 0x1008ff16 (XF86AudioPrev) 0x0000 (NoSymbol) 0x1008ff16 (XF86AudioPrev)
После:
173 0xff50 (Home) 0x0000 (NoSymbol) 0xff50 (Home) 0x0000 (NoSymbol) 0xff50 (Home)
Теперь у меня работает. Однако результат не является постоянным, после перезагрузки вам придется делать это снова.Некоторые сценарии запуска для этого работают плохо, потому что xmodmap
нужно инициализировать только через некоторое время (когда он будет готов).
Оказывается, xmodmap
устарел и больше не используется в Gnome.
Постоянное решение заключается в использовании xkb
.
Создайте файл символов fn_mod
в /usr/share/X11/xkb/symbols/
(требуется sudo) со следующим содержимым:
// /usr/share/X11/xkb/symbols/inet
// key <I171> { [ XF86AudioNext ] };
// key <I173> { [ XF86AudioPrev ] };
//
// /usr/share/X11/xkb/symbols/pc
// key <HOME> { [ Home ] };
// key <END> { [ End ] };
//
// make Fn+Left (keycode 171) act as Home
partial modifier_keys
xkb_symbols "left_as_home" {
key <I171> { [ End ] };
};
// make Fn+Right (keycode 173) act as End
partial modifier_keys
xkb_symbols "right_as_end" {
key <I173> { [ Home ] };
};
Создайте резервную копию следующих файлов на случай, если вы затормозит их:
/usr/share/X11/xkb/rules/evdev.xml
/usr/share/X11/xkb/rules/evdev
/usr/share/X11/xkb/rules/evdev.lst
Добавьте следующее содержимое в evdev.xml
(
->
->):
<group allowMultipleSelection="true">
<configItem>
<name>fn_mod</name>
<description>Fn key behavior</description>
</configItem>
<option>
<configItem>
<name>fn_mod:left_as_home</name>
<description>Fn+Left (aka XF86AudioPrev) act as Home</description>
</configItem>
</option>
<option>
<configItem>
<name>fn_mod:right_as_end</name>
<description>Fn+Right (aka XF86AudioNext) act as End</description>
</configItem>
</option>
</group>
Добавьте следующее содержимое в evdev
(Найдите строку ! option = symbols
и добавьте в следующей строке):
fn_mod:left_as_home = +fn_mod(left_as_home)
fn_mod:right_as_end = +fn_mod(right_as_end)
Добавьте следующее содержимое в evdev.lst
(Найдите строку !option
и добавьте в следующей строке):
fn_mod Fn key behavior
fn_mod:left_as_home Fn+Left (aka XF86AudioPrev) act as Home
fn_mod:right_as_end Fn+Right (aka XF86AudioNext) act as End
evdev.xml
изменения создадут настройку пользовательского интерфейса в gnome-tweaks
. Чтобы проверить/включить этот открытый gnome-tweaks
, перейдите в Клавиатура и мышь
-> Дополнительные параметры макета
-> Поведение клавиши Fn
.
Наконец, перезагрузите сеанс и зарегистрируйтесь в терминале.
$ setxkbmap -query
rules: evdev
model: pc105
layout: us,ru,us
variant: ,,
options: fn_mod:left_as_home,fn_mod:right_as_end
$ setxkbmap -print
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+ru:2+us:3+inet(evdev)+fn_mod(left_as_home)+fn_mod(right_as_end)" };
xkb_geometry { include "pc(pc105)" };
};