Зробіть термінал розпізнавати PageUp та PageDown, коли перезавантажуєте їх на різні клавіші


2

Я розумію, що термінал за замовчуванням не підтримує PgDnі PgUp. У мене немає PgDnі PgUpна моїй клавіатурі, але в даний час вони перестановлені на різні клавіші, і тому Shift+ PgDnне працює. Я також спробував Fn+ Up. Як я можу змусити Термінал розпізнавати перезавантажені ключі підкачки?


1
Який термінал не підтримує pgdn / pgup?
Іпор Сірсер,

Я впевнений, що це підтримує.
Іпор Сірсер,


1
Я збентежений. Ви шукаєте додаток для терміналу Linux, який підтримує PgDn та PgUp, оскільки у вас на клавіатурі немає клавіш PgDn та PgUp? Отримавши нову програму терміналу, магічне додавання фізичних клавіш до клавіатури не збирається. Я сумніваюся, що це ви мали на увазі, тож, можливо, ви могли б уточнити своє запитання? Але майте на увазі, що запитувати рекомендації щодо програмного забезпечення поза темою .
8bittree

1
@ Блокування прокрутки William, коли він увімкнено, дозволяє використовувати стрілки та кнопки вгору / вниз для прокрутки через буфер. Це ми мали до того, як було створено shift + pgup / pgdn. Це переключення в режим прокрутки, саме тому його називають Lock Lock. Linux та більшість Unices підтримують цю функціональність, проте деякі сучасні (Ubuntu) не відображають ключ за замовчуванням. Якщо ви самі зробите карту, він буде працювати.
cscracker

Відповіді:


6

(коментар: ви знайшли XKB! поздоровлення, це пекло кролячої нори. Зверніть увагу, що ваше рішення буде роздуто наступного разу, коли пакет xkb-даних ubuntu оновить цей файл, і вплине на будь-які інші клавіатури, які ви підключаєте які використовують ту саму конфігурацію.)

XKB дотримується моделі під назвою RMLVO - правила, модель, макет, варіант, параметри. Ваше рішення змінює файл системної моделі, але кращим рішенням було б знайти або створити Варіант для додавання змін. ( evdevце правило за замовчуванням для більшості дистрибутивів, і більшість зовнішніх клавіатур використовуватимуть pcмодель, хоча внутрішні моделі ноутбуків можуть мати певні варіації, які вже близькі до вашого використання. Стандартна клавіатура США QWERTY використовуватиме usмакет без варіанту, хоча ви можете виберіть intlабо altgr-intlваріанти, якщо ви працюєте з іншими мовами.)

Параметри - це специфічне переосмислення основних функціональних можливостей. Якщо ви хочете вимкнути CapsLock, оскільки ця клавіша просто відсмоктується, для цього вже є варіант ( caps:none), або ви можете встановити його як додатковий ключ Escape ( caps:escape). Ви можете бачити конкретні зміни в /usr/share/X11/xkb/symbols/caps; кожна строфа - це інший варіант, який можна вмикати під час виконання.

Якщо у вас є, setxkbmap -printвам слід отримати список поточних налаштувань XKB:

$ setxkbmap -print
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"};
    xkb_symbols   { include "pc+us+inet(evdev)" };
    xkb_geometry  { include "pc(pc105)" };
};

Створіть свій файл заміни:

$ mkdir -p .config/xkb/symbols
$ touch .config/xkb/symbols/pgupdown

Тепер відредагуйте новий файл улюбленим редактором та вкажіть наступне:

// mapping PgUp and PgDown to other keys
partial alphanumeric_keys
xkb_symbols "rwinmenu" {
    key <RWIN> { [ Prior     ]   };
    key <MENU> { [ Next      ]   };
};

// same but switched
partial alphanumeric_keys
xkb_symbols "menurwin" {
    key <MENU> { [ Prior     ]   };
    key <RWIN> { [ Next      ]   };
};

Тепер створіть основну карту ключів:

$ setxkbmap -print > ~/.config/xkb/mymap

Відредагуйте цей файл та додайте нову опцію до списку символів у форматі +optionfile(function):

xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete" };
    xkb_compat    { include "complete"};
    xkb_symbols   { include "pc+us+inet(evdev)+pgupdown(rwinmenu)" };
    xkb_geometry  { include "pc(pc105)" };
};

Якщо пізніше ви вирішите , що ви віддаєте перевагу PgUp на клавішу меню , а не просто замінити rwinmenuз menurwinтам , і ви добре йти.

Тепер ви можете завантажити цей файл за допомогою xkbcomp:

$ xkbcomp -I$HOME/.config/xkb $HOME/.config/xkb/mymap $DISPLAY

Запустіть xev(із x11-utilsпакета) та натисніть клавіші, щоб переконатися, що зміни завантажені:

# sed to scrape out non-kbd events; xev is pretty spammy
$ xev | sed -ne '/^KeyPress/,/^$/p'

Якщо ви все знайшли в потрібних місцях, ваша клавіша меню повинна надсилати наступні події, а ключ Win_R надсилати пріоритет. Якщо це працює, ви можете додати вищезазначену xkbcompкоманду до своєї .xinitrcабо .xprofileтак, що вона працює, коли ви входите або запускаєте X.

... якщо ви не працюєте з Gnome. (та / або можливо KDE.) Тоді ми переходимо далі по кролячій норі і розбираємося, як включити цю нову опцію в системні файли, щоб ДЕ змогли підібрати її як стандартну опцію. По суті, це буде залучати

  1. розміщення файлу опцій /usr/share/X11/xkb/symbols/(саме тому pgupdownбуло вдалим вибором варіантів, оскільки не існує файлу символів, який існує з цим ім'ям)
  2. а потім додавання рядків у /usr/share/X11/xkb/rules/evdev*(щоб відобразити optionsfile:functionформат командного рядка до +optionsfile(function)використовуваного xkbcomp)
  3. і, нарешті, встановити DE для використання бажаного макета та параметрів.

Крок 2: Якщо вам потрібно пройти цей маршрут, вам може знадобитися повторити крок 2 після будь-яких оновлень, пов’язаних з xkb.

# in /usr/share/X11/xkb/rules/evdev
# find the line that starts "! option = symbols" and add new lines:
  pgupdown:rwinmenu = +pgupdown(rwinmenu)
  pgupdown:menurwin = +pgupdown(menurwin)

# in /usr/share/X11/xkb/rules/evdev.lst
# find the line that starts "! option" and add a new line:
  pgupdown:rwinmenu          PgUp on RWin, PgDown on Menu
  pgupdown:menurwin          PgUp on Menu, PgDown on RWin

# in /usr/share/X11/xkb/rules/evdev.xml
# .... ummm .... ¯\_(ツ)_/¯  .... sorry! ....

Крок 3: перевірте, чи localectlє у вашій системі. localectlможе налаштувати клавіатури віртуальної консолі, а також налаштувати клавіатуру X11 за замовчуванням для системи. Оскільки обидва варіанти встановлені у файлах правил, ви можете використовувати будь-яку rwinmenuабо menurwinці команди.

$ localectl set-x11-keymap us pc "" pgupdown:rwinmenu
#  format               [layout] [model] [variant] [option1,...,optionN]

Для Gnome вам потрібно буде використовувати dconf-editorабо gsettings:

# set layout/variant
$ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us')]"

# set options
$ gsettings set org.gnome.desktop.input-sources xkb-options "['pgupdown:rwinmenu']"

Іншим варіантом для Gnome може бути відключення налаштувань клавіатури; це повинно дозволяти або параметр localectl, або параметр user-config залишатися в силі:

$ gsettings set org.gnome.settings-daemon.plugins.keyboard active false

Виправлення неполадок: Якщо зміни, здається, не отримують, і ви впевнені, що правильно форматували файли, видаліть з нього будь-які *.xkmфайли /var/lib/xkb/. Вони є кешованими попередньо складеними картами клавіш і, можливо, вам заважають.

Ресурси:


Тож я фактично застосував ключ <RALT> для Prior, замість цього ви не хочете оновлюватись, перш ніж публікувати виграші.
Вільям

1
Я помічаю, що ваш обліковий запис не зареєстровано. Ваші відповіді чудові, тому займіться обліковим записом. Попросіть про злиття, зв’яжіться з нами, якщо щось не дивно.
Подорожник Geek

2

Зміна клавіш на / usr / share / X11 / xkb / символи / pc, здається, працює, я не міг отримати іншу відповідь вище для роботи. Потім ви використовуєте нові клавіші за допомогою кнопки shift.

key <RWIN> {    [ Prior     ]   };
key <MENU> {    [ Next          ]   };

0

Термінал Ubuntu за замовчуванням підтримує pgup та pgdn, ярликами є [shift] + pgup та [shift] + pgdn. Більшість інших терміналів, які ви спробуєте, матимуть такі самі ярлики, в основному тому, що pgup і pgdn вже прийняті bash для певних речей, тому ви не можете реально використовувати його.

редагувати: якщо вам потрібно перезавантажити ключі pgup та pgdn, ви можете дотримуватися цієї відповіді на askubuntu для linux:

https://askubuntu.com/questions/24916/how-do-i-remap-certain-keys-or-devices/24930#24930


Для цього ще знадобляться клавіші Page Up та Page Down. (Але насправді назва питання була досить поганою.)
Ар’ян

ой добре, круто. Якщо вам потрібно перезаписати команди, ви можете дотримуватися порад у цій відповіді. askubuntu.com/questions/24916/…
Warley

Якщо з цим можна працювати, наприклад, з Shift, я думаю, ви повинні відредагувати свою відповідь? (Зауважте, що я не запитувач питання ...)
Арджан

Я спробував перевстановити ключі, і вони не реєструються у своєму новому місці.
Вільям
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.