20090307

eeePC 901: переназначение курсорных клавиш, Shift и PageUp/PageDown

В продолжение к моей прошлой заметке об установке Debian на eeePC 901. Благодаря малым габаритам и скромному весу машинки я часто прихватываю с собой eeePC вместо полноразмерного ноутбука. Однако маленькие размеры имеют и изъян: клавиатура тоже маленькая.

Основная претензия даже не к размеру клавиш, я умудряюсь печатать на ней достаточно быстро, а то, что клавиш мало. Огорчали меня две вещи:

1) клавиши PageUp и PageDown доступны только в комбинации с клавишей Fn, то есть требуют двух рук и лишнего пальца;
2) клавиша Shift укорочена, а там, где должна быть её левая часть, находится курсорная клавиша «вверх».

Вот схема этой раскладки по умолчанию:

eeePC 901: расположение клавиш по умолчанию

Поскольку два основных приложения для меня — терминал и браузер, и в обоих вкладки переключаются по Ctrl + PageUp/PageDown, и ими же или ими же с Shift я делаю прокрутку, то жать каждый раз Fn в другой части клавиатуры — неудобно.

Поэтому придумал я сделать так, чтобы нажимать PageUp/PageDown без Fn, а курсорные с Fn. Скрипт для xmodmap у меня такой:
! map PgDown/PgUp/Home/End to cursor keys
keycode 104 = Next
keycode 98 = Prior
keycode 100 = Home
keycode 102 = End
! map cursors keys to PgDown/PgUp/Home/End
keycode 105 = Down
keycode 99 = Up
keycode 97 = Left
keycode 103 = Right
И соответственно схема раскладки:
eeePC 901: PageUp/PageDown доступны без Fn
Попользовался, оказалось довольно удобно. Во всяком случае, в браузере и терминале. Если курсорные клавиши нужны редко. При использовании MPlayer, наверное, лучше оставить обычную раскладку.

Однако я по-прежнему продолжал иногда попадать мизинцем не в Shift, а в клавишу PageUp («вверх»), при этом курсор, естественно перескакивает на страницу вверх. Очень раздражает при наборе текста. Всё таки я, видимо, пользуюсь левым краем обычного Shift, тянуться ближе.

Соответственно, возникла идея вообще поменять Shift и PageUp местами. Соответственно, скрипт для xmodmap:
remove Shift = Shift_R
remove Control = Control_R

! remap PgDown/PgUp/Home/End/Shift
keycode 104 = Next
keycode 98 = Shift_R
keycode 100 = Home
keycode 102 = End
keycode 62 = Prior
! remap cursors keys and Control
keycode 105 = Down
keycode 99 = Control_R
keycode 97 = Left
keycode 103 = Right
keycode 109 = Up

add Shift = Shift_R
add Control = Control_R
Вроде работает. Раскладка получается такой:
eeePC 901: PageUp/PageDown доступны без Fn, Shift слева от кнопки PageUp

Как использовать: сохранить команды файл, и выполнить xmodmap файл-с-переназначением-клавиш. Чтобы применить постоянно, поместить команды в ~/.xmodmaprc. Я включаю их пока вручную, когда надо.

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