Как устойчиво переназначать ключи в Ubuntu 16.04?

Это работает для текущего сеанса:

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$ 

Но он не работает после перезагрузки. Как я мог заставить переназначить после перезагрузки?

33
задан 7 December 2016 в 00:48

9 ответов

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

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

Вероятно, есть несколько десятков других способов справиться с этим, по сути, делает то же самое.

16
ответ дан 17 July 2019 в 02:09
  • 1
    Добро пожаловать для Выяснения у Ubuntu! Я рекомендую редактирование этот ответ развернуть его с определенными деталями о том, как сделать это. (См. также , Как я пишу хороший ответ? для общих рекомендаций о том, на чем виды ответов считают самыми ценными, Спрашивают Ubuntu.) – David Foerster 19 February 2018 в 10:01

Я добавил файл / 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

Это работает каждый раз.

8
ответ дан 17 July 2019 в 02:09
  • 1
    Хорошо, это помогло отладить... на самом деле, я установил NVM, который вызывает задержку... Спасибо! – Aranganathan 26 June 2017 в 22:14

открыть свойства сеанса gnome. добавить команду и имя. файл рабочего стола будет создан в ~ / .config / autostart.

напоминание: используйте абсолютный путь , например /home/xxx/.Xmodmap. никогда не используйте "~" в качестве домашнего каталога.

5
ответ дан 17 July 2019 в 02:09
  • 1
    Дорогой я попробовал 32-разрядное изображение также, но оно все еще показывает тот же errot – Alcash 2 July 2017 в 18:24

Поскольку файлы .Xmodmap редактировать гораздо проще, чем xkb, я использую .Xmodmap как «исходный» файл, затем конвертирую его в xkb (текущий стандарт) и автозагрузка при загрузке с использованием метода .bashrc.

Это несколько простых шагов, опубликованных здесь .

Отлично работает и использует xkb для защиты от будущего при отказе от поддержки .Xmodmap.

0
ответ дан 17 July 2019 в 02:09
  • 1
    Необходимо будет подразумевать, что верная Подкачка Выключена для P10, прежде чем можно будет управлять им. Но Вы означаете добавлять и P9 и P10 к корню? Ubuntu может работать без раздела подкачки, пока существует достаточно свободной RAM в Вашей системе (8 ГБ +) и Вы don' t запускают много приложений. Можно использовать top в терминале для проверки этого. Однако я принял бы решение иметь, по крайней мере, некоторую область подкачки 4-8GB. –  25 June 2017 в 20:47

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

gnome-tweaks > Клавиатура и мышь> Дополнительные параметры макета

Key Maps

1
ответ дан 29 September 2019 в 19:44

По моему многолетнему опыту переназначения ключей в Ubuntu, постоянным решением является изменение файла с именем evdev в / usr / share / X11 / xkb / keycodes .

Запустите эту команду в командной строке.

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

Помните, что gedit - это текстовый редактор Ubuntu, поэтому вы можете использовать nano или vim вместо gedit.

Файл имеет формат: АЛИАС: КОД. Вы можете менять местами кнопки, меняя местами коды разных клавиш. Например, чтобы заменить RCONTROL на RETURN, отредактируйте две строки в evdev так:

= 105;

= 36;

Чтобы узнать числовой код для запуска кнопки xev на терминале.

13
ответ дан 29 September 2019 в 19:44

Перейдите к

/usr/share/X11/xkb/symbols

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

После перезагрузки изменения будут применены.


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

Пример переназначения клавиатуры

2
ответ дан 23 November 2019 в 01:28

После поиска в Google мне удалось разрешить переопределение неисправных ключей моего ноутбука. Все неисправные ключи на моем Thinkpad T400 после перезагрузки работают нормально. Кроме того, он работает на постоянной основе без дополнительной нагрузки на ядро процессора.

  • Сначала найдите раскладку клавиатуры или код клавиши, используя нижеприведенную команду.

    xev -event keyboard 
    
  • Например, на моем Thinkpad T400 код клавиши найден следующим образом:

     Код клавиши "z" - 52
    Код клавиши "x" - 53
    Клавишный код клавиши "c" - 54
    Код клавиши "v" 55
    Код клавиши "F6" - 72
    Код клавиши "F10" - 76
    Код клавиши "F11" - 95
    Код клавиши "F12" - 96 
    
  • Удаление символьных клавиш "z" "x" "c" "v" путем назначения функциональных клавиш "F6" "F10" "F11" "F12".

  • Изменение строк, как показано ниже (Резервный файл перед внесением любых изменений, чтобы легко откатиться, если что-то пойдет не так).

    sudo vi /usr/share/X11/xkb/keycodes/evdev
    
  • Найдите строки и измените значение следующим образом:

     = 72;
     = 76;
     = 95;
     = 96;
    
  • Комментируйте эти строки или удаляйте их:

    //  = 72;
    //  = 76;
    //  = 95;
    //  = 96;
    
  • Сохранить и выйти.

Для сохранения специальных ключей:

  • Резервный файл перед внесением изменений для отката, если что-то пойдет не так.

    cd /usr/share/X11/xkb/символы/
    
    судо vi ПК
    
  • Добавление или изменение строк ниже в функции "xkb_symbols "editing" {"

    key [SCLK] { [ [ Prior ] ] };
    клавиша [PAUS] { [ [ Далее ] ] };
    
  • Сохранить и выйти.

  • Очистить кэш.

    sudo rm -rf /var/lib/xkb/*
    
  • Перезагрузка.

1
ответ дан 23 November 2019 в 01:28

Перейдите в Startup Applications и сделайте новую запись с содержимым, показанным на следующем снимке экрана:

adding new startup application(command)

Работает каждый раз.

0
ответ дан 5 January 2021 в 22:42

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

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