установите fn + стрелка для обозначения 'home' и 'end'

Я хотел бы добавить набор функций для пары fn + right / left, чтобы они были такими же, как в Mac - «home» и «end». Я не имею в виду замену кнопок «домой» и «конец» - просто добавление еще одной клавиши «домой» / «конец». Преимущество заключается в написании / изменении текста. Я часто использую стрелки, а также кнопки «домой» и «конец», но зачем переходить на новую кнопку? Моя левая рука уже находится рядом с клавишей fn (функция) и готова нажать клавишу «Control» или «Shift».

Как мне установить это?

Спасибо.

17
задан 16 May 2011 в 02:32

2 ответа

Я определенно понимаю, почему ты хочешь сделать это! Вот моя ставка на то, что я сделал:

Запустите терминал и запустите «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 полученными кодами клавиш. Затем сохраните и закройте файл. Закройте все свои терминалы, откройте один, и вы должны быть готовы к работе!

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

0
ответ дан 16 May 2011 в 02:32

Если у вас Ubuntu+Gnome и xev ничего не показывает, когда вы набираете Fn+Влево или Fn+Вправо - возможно, у вас есть перехватчик в сеансе Gnome, как и я. Также на моей аппаратной клавиатуре ноутбука отображаются "назад" и "вперед" значки проигрывателя/музыки для левой и правой кнопок - это означает, что моя аппаратная клавиатура отправляет код клавиши 173 для Fn+Влево и код клавиши 171 для Fn+Вправо.

Отключить прослушиватели сеансов gnome

Вы можете отключить прослушиватели с помощью пользовательского интерфейса 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- редактор.

Применить сопоставление программных кнопок с помощью xmodmap

Теперь применить пользовательский обработчик для 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 нужно инициализировать только через некоторое время (когда он будет готов).

Применить отображение программных кнопок с помощью xkb

Оказывается, 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)" };
};
0
ответ дан 4 January 2021 в 17:48

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

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