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

вы можете просто удалить X ..

sudo apt-get remove x11-*

эта команда удалит все необходимое в графической среде.

1
задан 14 August 2014 в 13:53

5 ответов

Если вы пытаетесь переместить клавишу Shift, есть несколько дополнительных шагов:

 xmodmap -e "keycode 62 = Up" # Shift => Up
 xmodmap -e "keycode 111 = Shift_R" # Up => Shift
 xmodmap -e "add shift = Shift_R" # Make the new Shift key actually do shifting
 xmodmap -e "remove shift = Up" # Prevent the old Shift key from shifting
 xset r 62 # Make the new Up key autorepeat
 xset -r 111 # Prevent the new Shift key from autorepeating
18
ответ дан 25 May 2018 в 23:08
  • 1
    +1 Самый unix-y ответ от всех тех, которые были для модификатора (я уже делал это так, обращаясь к моему iBook 2, когда я хотел, чтобы клавиша ввода имела функцию Control_R, но забыла детали). – rbrito 6 January 2013 в 14:47
  • 2
    Важный ответ для пользователей, использующих клавиатуры на ноутбуках Lenovo – Einar Ólafsson 1 May 2017 в 18:38

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

UPDATE: моя «afterthought» подтверждена; (Я ответил на неправильный вопрос:) ... см. Ответ Wiki сообщества WES (принятый выше).

Существует два общих способа переназначения ключа.

локально для конкретной программы (ключ может использоваться для разных вещей в разных приложениях / окнах) глобально для конкретного пользователя (ключ имеет ту же функцию во всех окнах)

Для методов «local to the program» иногда есть способ изменить ключевые привязки, предлагаемые самим приложением ... например.

Firefox имеет аддон, называемый keyconfig ... для некоторых сведений см. этот пост MozillZine

Большинство программ Ubuntu основаны на Gnome, и есть специальная утилита для изменения привязки клавиш для любого пункт меню этих приложений Gnome ... Он называется Editable Menu Accelerator ... Это очень «трогательный» инструмент, но довольно мощный. Вы можете включить его, запустив gconf-editor (через терминал или Alt + F2). .. перейдите к desktop - gnome - interface и выберите can_change_accels .... Затем вы можете изменить пункты меню на виртуальные все, что вам нравится (на каждую программу / окно) ... Я предлагаю вам отключить это, как только вы сделали то, что вам нужно.

В противном случае вы можете настроить глобальные горячие клавиши. Я использую программу под названием keyconfig , и есть также опция, доступная через Главное меню - Настройки, называемые Keyboard Shortcuts

Если вы используете xbindkeys, вам нужно будет добавить это к вашим «Startup Applications» (главное меню - предпочтения) ... Также (как предложил Стефано Палаццо) я ранее написал более подробное описание xbindkeys в ответе на этом [!d19 ]

16
ответ дан 25 May 2018 в 23:08
  • 1
    +1, очень приятно! Предложение: вы должны интегрировать свой отличный ответ из другого вопроса в этот, возможно, также немного объясните конфигурационный формат xbindkeys. – Stefano Palazzo♦ 5 February 2011 в 18:17
  • 2
    Бит о назначении других ключей может быть обработан xdotool, проверьте справочную страницу, я использовал ее для решения этой проблемы . – Stefano Palazzo♦ 5 February 2011 в 18:24
  • 3
    Недавно я нашел другой подход с помощью инструмента xmodmap в сочетании с инструментом xev. Я не знаю, каковы различия между xmodmap и xbindkeys, но это работает очень хорошо для меня. некоторые советы с инструментом, чтобы предпочесть названные два? Вот очень полезное пошаговое руководство, в котором описываются xmodmap и xev ubuntuforums.org/showpost.php?p=7675138&postcount=2 – NES 5 February 2011 в 18:28
  • 4
    @NES .. Кажется, я обратился к неправильной точке. Кажется, вы хотите на самом деле переназначить, как конкретный ключ интерпретируется ОС, т. Е. Нестандартная интерпретация клавиатуры, тогда как я ссылаюсь на стандартная интерпретация клавиатуры и просто перегрузка заданий по умолчанию по умолчанию. (Я думаю, что вы за ним похожи на замену левой и правой кнопок мыши) .. Ну, кажется, мой ответ был хорош для неправильной вещи :) – Peter.O 5 February 2011 в 18:52
  • 5
    да, но проблем нет. ответ тоже интересен. пошаговое руководство, которое я разместил выше, было правильным. поэтому я отправлю короткий ответ с помощью решения, которое у других пользователей будет хорошим руководством. спасибо fred – NES 5 February 2011 в 19:42

Вот как я попытался переключить отображение клавиши ENTER на клавишу SHIFT (и наоборот):

$ uname -a

ОТЧЕТЫ:

Linux box 2.6.32-37-generic #81-Ubuntu SMP Fri Dec 2 20:35:14 UTC 2011 i686 GNU/Linux

$ which xmodmap

ОТЧЕТЫ:

/usr/bin/xmodmap

$ which xev

ОТЧЕТЫ:

/usr/bin/xev

$ xev

(игнорируйте следующие пятьдесят строк или около того)

PRESS THE ENTER KEY (notice the third line):
KeyPress event, serial 33, synthetic NO, window 0x5600001,
    root 0x110, subw 0x0, time 263441120, (738,242), root:(771,314),
    state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
    XLookupString gives 1 bytes: (0d)
    XmbLookupString gives 1 bytes: (0d)
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x5600001,
    root 0x110, subw 0x0, time 263441271, (738,242), root:(771,314),
    state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
    XLookupString gives 1 bytes: (0d)
    XFilterEvent returns: False

PRESS THE SHIFT KEY (notice the third line):
KeyPress event, serial 30, synthetic NO, window 0x5600001,
    root 0x110, subw 0x0, time 263592202, (464,368), root:(497,440),
    state 0x0, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x5600001,
    root 0x110, subw 0x0, time 263592298, (464,368), root:(497,440),
    state 0x1, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

Важно, чтобы третья строка каждого нажатия клавиши :

FOR:
state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
The name "Return" is the name of the behavior of the key pressed.
The number of the key pressed is "36".

state 0x0, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
The name "Shift_R" is the name of the behavior of the key pressed.
The number of the key pressed is "62".

ОТМЕНА КАРТЫ:

$ xmodmap -e "keycode 62 = Return"
$ xmodmap -e "keycode 36 = Shift_R"

СОХРАНИТЬ РЕЗУЛЬТАТЫ:

$ xmodmap -pke > ~/.Xmodmap
$ vi ~/.xinitrc

ADD

 xmodmap ~/.Xmodmap

$ sudo reboot

Основная проблема заключалась в том, что разворот НЕ работал. Клавиша ENTER была сопоставлена ​​с ключом SHIFT_R; но клавиша SHIFT не была отображена на клавишу ENTER. Направьте фигуру.

8
ответ дан 25 May 2018 в 23:08

Для выполнения глобальных переназначений независимо от X вы можете использовать консольную установку (5).

В моем случае я хотел перенаправить ключ Caps Lock в D, поскольку мой D- ключ был нарушен:)

Сначала я использовал console-setup (5) , чтобы получить шаблон для сопоставления, в случае Caps Lock -key, интересным битом является сопоставление для кода 32 (на моей клавиатуре); Обратите внимание, что в шаблоне grep есть два пробела!

$ sudo dumpkeys | grep "keycode  32" > tempfile
$ cat tempfile
keycode  32 = +d
    shift   keycode  32 = +D
    altgr   keycode  32 = +eth
    shift   altgr   keycode  32 = +ETH
    control keycode  32 = Control_d
    shift   control keycode  32 = Control_d
    altgr   control keycode  32 = Control_d
    shift   altgr   control keycode  32 = Control_d
(121 lines total...)

Чтобы изменить карту для применения к Caps Lock (код клавиатуры 58 на моей клавиатуре) вместо

sed 's/32/58/' -i tempfile

Теперь он читает

keycode  58 = +d
    shift   keycode  58 = +D
    altgr   keycode  58 = +eth
(etc...)

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

sudo sh -c 'cat tempfile >> /etc/console-setup/remap.inc'

и настройка консоли необходимо переконфигурировать (пропустить вопросы с низким приоритетом с помощью -phigh)

sudo dpkg-reconfigure console-setup -phigh

Теперь переназначение должно быть завершено и загружено автоматически при загрузке.

6
ответ дан 25 May 2018 в 23:08

Я потратил целый день на попытку создать ярлык для Ctrl+Pageup.

Сначала я попробовал xmodmap, но не смог генерировать события модификатора. Поэтому невозможно создать ярлык, который генерирует, например, событие Control.

Затем я попытался xbindkeys с xmacro. Подобные работы, но xbindkeys не могут фиксировать некоторые комбинации клавиш в моей системе, такие как Alt + ___.

Итак, я наконец использовал собственные сочетания клавиш Unity -> Пользовательские ярлыки, чтобы настроить мой ярлык .

И вместо xmacro я теперь использовал программу xvkbd для генерации событий клавиатуры, но это только личное предпочтение. Оба xmacro и xvkbd работают почти одинаково. Еще один совет - добавить параметр задержки в xmacro или xvkbd, чтобы гарантировать, что события не будут потеряны.

3
ответ дан 25 May 2018 в 23:08

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

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