Як я можу наполегливо перезавантажувати ключі в Ubuntu 16.04?


23

Це працює для поточної сесії:

costales@dev:~/Desktop$ xmodmap -e "keycode 166 = less"
costales@dev:~/Desktop$ xmodmap -e "keycode 167 = greater"

Потім я створив цей конфігураційний файл:

costales@dev:~/Desktop$ cat ~/.Xmodmap 
keycode 166 = less
keycode 167 = greater
costales@dev:~/Desktop$ 

Але це не працює після перезавантаження. Як я можу змусити переробку пережити перезавантаження?


Щойно відповів на це, використовуючи xkbтут: askubuntu.com/a/960097/554991 .
danwild

Відповіді:


15

Я трохи використовую 16.04, і, здається, використовується sddm в якості його менеджера на робочому столі. Раніше це були LightDM та GDM. Обидва його попередники документально завантажуються ~/.Xmodmapавтоматично, але я не можу знайти нічого прямо сказаного, що sddm робить.

Тому може бути доцільним просто змусити його завантажити новий сценарій. Вам просто потрібно запустити, xmodmap ~/.Xmodmapі зробити це можна кількома способами:

Мабуть, існує кілька десятків інших способів управління цим, по суті, те ж саме.


2
Дякую за пораду! Додати для запуску не працювало, і ~ / .xinitrc не виходить. Але додайте "xmodmap ~ / .Xmodmap" до ~ / .bashrc! :)
Косталес

1
Додавання його за допомогою графічних інструментів запуску (що створює новий запис ~/.config/autostart) працює приблизно в половину часу. Я перезавантажував приблизно 10 разів зараз і 5 разів команда була виконана, а інші 5 разів. :-(
Олександр Рехштайнер

1
@Alexander Rechsteiner: Це, здається, є проблемою в Ubuntu 16.04. Я співав з командами запуску та перестановкою клавіш, і поведінка здається дуже непослідовною. Я не є експертом у
подібних речах

6

Я додав файл /etc/X11/Xsession.d/80_xmodmapіз цим вмістом:

#!/bin/sh
# Set custom keycodes
#
# This file is sourced by Xsession(5), not executed.
# The "|| true" is to ensure that the Xsession script does not terminate on error

USRMODMAP="$HOME/.Xmodmap"

if [ -x /usr/bin/xmodmap ]; then
        if [ -f "$USRMODMAP" ]; then
                /usr/bin/xmodmap "$USRMODMAP" || true
        fi
fi

Це працює щоразу.


Схоже, це працює, але це повідомлення, які я отримую у .xsesions-помилки: .Xmodmap: 1: невдалий keyym у списку видалення модифікатора "Caps_Lock", немає відповідних клавішних кодів, це мій .Xmodmap: $ cat .Xmodmap delete Lock = Caps_Lock keycode 9 =
Клавіша

4

відкрити властивості gnome-session. додати команду та ім'я. файл робочого столу буде створено в ~ / .config / autostart.

remenber: використовувати абсолютний шлях , наприклад /home/xxx/.Xmodmap. ніколи не використовуйте "~" в якості домашнього режисера.


2

На моєму багаторічному досвіді роботи з перепризначенням клавіш в Ubuntu, постійне рішення змінити файл з ім'ям evdevв /usr/share/X11/xkb/keycodes.

Виконайте цю команду в командному рядку.

sudo gedit /usr/share/X11/xkb/keycodes/evdev

Пам'ятайте, що gedit - це текстовий редактор Ubuntu, тому ви можете використовувати nano або vim замість gedit.

Файл у форматі: ALIAS: CODE. Ви можете міняти кнопками, змінюючи коди різних клавіш. Наприклад, щоб поміняти RCONTROL на RETURN, відредагуйте два рядки в evdev у цьому:

<RTRN> = 105;

<RCTL> = 36;

Щоб знати номер номера для кнопки, запущеної xevна терміналі.

Для отримання додаткової інформації зверніться до документації. https://buildmedia.readthedocs.org/media/pdf/python-evdev/latest/python-evdev.pdf


1

Перейдіть до

/usr/share/X11/xkb/symbols

З привілеями sudo в редакторі відкрийте макет, який ви хочете редагувати. Замініть значення.

Після перезавантаження зміни будуть застосовані.


Ось приклад, який я використовую для перестановки клавіатури через проблеми з апаратними засобами клавіатури.

Приклад перенастроювання клавіатури


2
Ці зміни будуть перезаписані наступного разу, коли пакунки, що володіють цими файлами, будуть оновлені.
муру

Це може бути правдою, але я сумніваюся, що вони оновлюються дуже часто. Я задоволений цим рішенням протягом декількох місяців, як я вирішив це питання, і жодного разу мені не довелося робити нічого додаткового. І щоб запобігти цьому, ви можете зберегти файл і замінити його у випадку такої події, або (що здається більш безпечним) просто відтворити процес.
трапився

1

Після пошуку в Google я зміг вирішити перезавантаження клавіш мого ноутбука. Усі несправні клавіші на моєму Thinkpad T400 працюють добре після перезавантаження. Крім того, він постійний без додаткового навантаження на ядро ​​процесора.

  • Спочатку знайдіть розкладку клавіатури або код клавіші за допомогою команди нижче.

    xevv -event keyboard 
    
  • Наприклад, на моєму клавіші Thinkpad T400 знайдено наступне:

    Keycode of "z" key is 52
    Keycode of "x" key is 53
    Keycode of "c" key is 54
    Keycode of "v" key is 55
    Keycode of "F6" key is 72
    Keycode of "F10" key is 76
    Keycode of "F11" key is 95
    Keycode of "F12" key is 96 
    
  • Перезапис символьних клавіш "z" "x" "c" "v" шляхом призначення функціональних клавіш "F6" "F10" "F11" "F12".

  • Змініть рядки, як показано нижче (файл резервного копіювання перед тим, як легко змінити відкат, якщо все піде не так).

    sudo vi /usr/share/X11/xkb/keycodes/evdev
    
  • Знайдіть рядки та змініть значення, як показано нижче:

    <AB01> = 72;
    <AB02> = 76;
    <AB03> = 95;
    <AB04> = 96;
    
  • Прокоментуйте ці рядки або видаліть рядки:

    //  <FK06> = 72;
    //  <FK10> = 76;
    //  <FK11> = 95;
    //  <FK12> = 96;
    
  • Збережіть і вийдіть.

  • Перезапис спеціальних клавіш.

  • Файл резервного копіювання перед внесенням змін до відкату, якщо все піде не так.

    cd /usr/share/X11/xkb/symbols/
    
    sudo vi pc
    
  • Додати або змінити рядки нижче у функції "xkb_symbols" редагування "{"

    key [SCLK] {    [  Prior        ]   };
    key [PAUS] {    [  Next         ]   };
    
  • Збережіть і вийдіть.

  • Очистити кеш.

    sudo rm -rf /var/lib/xkb/*
    
  • Перезавантажте.


Я перевстановив зламану (курсорну) клавішу зі стрілкою на іншу клавішу за допомогою цієї методики. Просто (xev) і натисніть нову клавішу, щоб отримати її скан-код, потім відредагуйте / usr / share / X11 / xkb / keycodes / evdev, щоб замінити оригінальний код клавіші стрілки новим кодом клавіші та видалити рядок нової клавіші стрілки оригінальним сканувати код. Я коментував, де я вносив зміни, і зберігав резервну копію файлу. Після перезавантаження працює прекрасно, включаючи комбінації shift / ctrl / alt з новою клавішею стрілки. І зміни повинні залишатися на місці навіть при оновленні пакетів та оновлення версії ОС.
Метью

1

Графічний редактор

gnome-tweaks > Клавіатура та миша> Додаткові параметри макета

Ключові карти


0

Оскільки файли .Xmodmap набагато простіше редагувати, ніж xkb, я використовую .Xmodmap як "вихідний" файл, потім конвертую його у xkb (поточний стандарт) та автоматично завантажую під час завантаження за допомогою методу .bashrc.

Це кілька простих кроків розміщені тут .

Працює чудово, і використовує xkb майбутні докази проти, коли підтримка .Xmodmap відпадає.

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