Як перевстановити контекстне меню до іншої клавіші в Linux?


19

Я щойно придбав Thinkpad Lenovo і так пишаюся всім, що в ньому є. Це відчувається так само непогано, як ядро ​​Linux: P.

Проблема полягає в тому, що Lenovo вирішив видалити клавішу контекстного меню, що є клавішею, яка робить речі правою кнопкою миші. Вони замінили його клавішею для друку на екрані. На моїй клавіатурі є цифрова частина з деякими кнопками над нею. Існує клавіша лупи, яку я хотів би переробити, щоб відкрити контекстне меню або бути клавішею правої кнопки миші. Чи можна це зробити?

Я намагався шукати інші пов'язані питання, але я знайшов лише питання та відповіді щодо того, як додати параметри до контекстного меню Nautilus. Я хочу відобразити фізичну клавішу моєї клавіатури, щоб відкрити це меню. Як і раніше. Виявляється також, що Dell скидає цю клавішу на клавіатурі Insron. Я не знаю, що відбувається, оскільки я використовую клавіатуру більше, ніж миша.

Заздалегідь спасибі.


3
Встановіть xbindkeys за допомогою sudo apt-get install xbindkeys. Потім в запуску терміналу xbindkeys -kі введіть ключ, який потрібно змінити. Чи можете ви додати висновок до свого питання?
Сет

"NoCommand" m: 0x50 + c: 46 Mod2 + Mod4 + l
Jhonnytunes

Хто хотів би клавішу "Екран друку" там, де вони очікують клавіші меню? Я серйозно замислююся над тим, як у нетверезому стані вам дозволяють з’являтися на роботу в Lenovo. У будь-якому випадку зауважте, що для початку вам не потрібен .Xmodmapзгенерований xmodmap -pkeфайл, ви можете просто помістити прив’язку до порожнього файлу. Також подивіться, що @Baha_hi дізнався нижче.
Дж. Кацвінкель

Відповіді:


13

Це трохи складніше, але ви можете це зробити. Виконайте такі дії:

Виявити код ключа

  1. Запустіть xevдля виявлення коду ключа:

    xev | grep keycode
    
            state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
            state 0x0, keycode 107 (keysym 0xff67, Menu), same_screen YES,
            state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    
  2. Натисніть клавішу, яку потрібно налаштувати. Вихід у терміналі покаже вам keycode(будьте обережні, їх може бути кілька).

Тестове картографування

  1. Встановити нове відображення тимчасово, для мене це keycode 107:

    xmodmap -e "keycode  107 = Return NoSymbol Return"
    

Якщо ключ поводиться так, як очікувалося, ви можете зберегти конфігурацію.

Збережіть конфігурацію

  1. Збережіть свою поточну таблицю $HOMEключових карт у свою , щоб змінити значення за замовчуванням:

    xmodmap -pke > ~/.Xmodmap
    
  2. Створіть або відредагуйте, ~/.xinitrcщоб завантажити конфігурацію:

    $EDITOR ~/.xinitrc
    
  3. Додайте наступні рядки

    if [ -f $HOME/.Xmodmap ]; then
            /usr/bin/xmodmap $HOME/.Xmodmap
    fi
    

Насолоджуйтесь

Більшість вищезгаданих відомостей надходить із статті ArchWiki .


Є проблема. Коли я натискаю кнопку, позначається «l». Я перевірив це на xev, і він дає мені 46 клавішних кодів, які присвоєні букві L l. Можливо, у нього немає клавішного коду.
Jhonnytunes

@Jhonnytunes. Перевірте правильність розкладки клавіатури. Ви можете змінити модель, набравши `sudo dpkg-переконфігуруйте налаштування клавіатури`.
Ед Віллегас

Ще та ж поведінка. Я спробував різні моделі Thinkpad і нічого.
Jhonnytunes

До речі, мій блокнот - це E530c і не відображається у списку клавіатур.
Jhonnytunes

Якщо це ваша розкладка клавіатури, можливо, клавіша поруч із «Видалити» насправді «Контекстне меню» (функція, яку ви шукаєте). В іншому випадку переконфігуруйте інший ключ або запитайте безпосередньо стіл Lenovo, який макет вам слід вибрати.
Ed Villegas

12

Я знайшов тут , що з допомогою: shift+ F10відкриває контекстне меню.

Я знаю, що це не найкраще рішення, але я думав, що це може допомогти для тимчасового використання!

PS: У мене теж e530c, і я тестував це на Debian 7 (Wheezy).


3

Нарешті я знайшов спосіб це зробити після годинних тестів і збоїв: D

Перш за все встановіть xautomation:

sudo apt-get install xautomation

Потім перейдіть до вкладки "Ярлик" у розділі Клавіатура в Налаштуваннях системи Ubuntu. Спочатку перейдіть до запису Скріншоти та перезапустіть дії до іншого ключа або відключіть їх, якщо хочете. Я замінив клавішу PrtSc (Друк) чорною кнопкою Thinkpad (Launch1).

Тепер перейдіть до розділу Спеціальні ярлики та додайте ярлик. назвіть його все, що завгодно, наприклад, Меню. У поле Command вставити це:

xte 'keydown Shift_L' 'key F10' 'keyup Shift_L'

Робота зроблена! Це працює як диво;)


2

Це зробило для мене трюк. Для мене клавішний код кнопки "PrtSc" на моїй панелі даних 107. Я виявив, що інструментом "xev" в ubuntu.

xmodmap -e "keycode  107 = Menu"

Це тимчасова зміна.

Ви можете зробити це постійним, додавши цю команду в / etc / profile, і вона буде виконуватися кожного разу при завантаженні, і це буде постійною зміною.


1

Нещодавно я придбав Lenovo E550 і мав таку ж проблему, і вирішив його, використовуючи xte(від xautomation) разом з xmodmap.

Чому інші відповіді не спрацюють повністю?

  1. @Ed Villegas (ні @Null Pointer ) відповідь не буде працювати, оскільки деякі клавіші, розташовані над числовою частиною, не є самими унікальними ключами ( наприклад, ключ блокування пов'язаний із комбінацією Super+ L). Коли xevвикористовується, щоб спробувати знайти ключ блокування ключа, він повертає як Superі Lкоди клавіш, вам просто потрібно інтерпретувати xevвихідний рядок за рядком.

  2. Для @Bahax та @John Finegan : Shift+ F10- це клавіша контекстного меню, вона працює не у всіх програмах і не забезпечує ті ж функції, що і Menu. Якщо ви виберете файл у провіднику файлів і натисніть Menuконтекстне меню для того, щоб сам файл повинен вискочити, це не відбувається з комбінацією Shift+ F10, воно б надало контекстне меню для цього вікна.

  3. @Danial Behzadi застосовує аналогічний підхід до людей у ​​другому пункті, але, пов'язуючи комбінацію клавіатури з однією клавішею через симулятор натискання клавіш, вона зв’яже клавішу з Shift+ F10і забезпечить той самий результат.

Відповідь, яка працює

Важливо врахувати, що ключ, який відсутній на клавіатурі ThinkPad, - це Menu(це його ім'я), він відображається на наступному малюнку:

Клавіша меню

Незважаючи на те, що ключа немає, його ключ повинен існувати на вашому комп’ютері, ви можете знайти його, роздрукувавши таблицю ключових кодів, за допомогою xmodmap -pke | grep Menuякої слід отримати щось на кшталт:

вихід xmodmap

Зважаючи на це, встановіть xautomation(щоб використовувати xteдля моделювання натискань клавіш), як у відповіді @Danial Behzadi :

sudo apt-get install xautomation

І створити спеціальний ярлик, в Trigger натисніть клавішу , яку ви хочете бути ярлик, і в Actionпасті xte 'key Menu'. Застосовуйте і тестуйте.

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