2

Как я могу сопоставить Control_L + Space для возврата?

желательно сделать с xmodmap.

Я пытался найти ответы на некоторые вопросы, но безуспешно.

Мое текущее решение:~/.Код клавиши Xmodmap keycode 65 = space Return space keycode 37 = Control_L Mode_switch Control_L

~/.vimrc: inoremap <C-@> <CR> cnoremap <C-@> <CR> nnoremap <C-@> <CR>

какие-либо решения для изменения Ctrl + пробел, чтобы вести себя как возвращение (иначе клавиша «Ввод») для всей системы?

2 ответа2

2

Я провел еще несколько исследований и попробовал несколько разных решений, в конце концов остановился на одном решении, которое не приводит к задержке или несогласованности. Решение ниже работает не только для терминала, но и для других приложений.


Инструменты, которые я использовал:

xdotool, xbindkeys

(1) установить xdotool и xbindkeys:

$ sudo apt-get update
$ sudo apt-get install xdotool
$ sudo apt-get install xbindkeys

(2) создать файл конфигурации xbindkey:

$ xbindkeys -d > ~/.xbindkeysrc

(3) переназначить Ctrl-Space в xbindkeysrc

"xset r off; xdotool keyup --window 0 space key --clearmodifiers --window 0 KP_Enter; xset r on"
   m:0x14 + c:65
   Control+Mod2 + space

(4) Убить текущих xbindkeys

Я не уверен, почему это необходимо, но просто исходный код xbindkeysrc не заменяет текущий конфиг. Таким образом, вы должны убить xbindkeys

$ killall xbindkeys
$ xbindkeys -f ~/.xbindkeysrc

Все готово.

бонус

карта Ctrl +~ быть /

"xset r off; xdotool keyup --window 0 grave key --clearmodifiers --window 0 slash; xset r on"
   m:0x14 + c:49
   Control+Mod2 + grave

Ура!

0

xmodmap не приведет вас к вашей цели. Наиболее близким в его репертуаре является этот параграф (переформатированный, чтобы показать точки):

keycode NUMBER = KEYSYMNAME ...
Список клавиш устанавливается назначен на указанный клавиатурным (которые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной и может быть определена путем запуска XEV программы). К ключу может быть прикреплено до восьми ключевых символов, однако последние четыре не используются ни в одной из основных реализаций X-сервера.

  • Первая клавиша используется, когда клавиша-модификатор не нажимается вместе с этой клавишей,
  • второй со Shift ,
  • третий, когда клавиша Mode_switch используется с этой клавишей и
  • четвертый, когда используются Mode_switch и Shift .

То есть вы можете использовать xmodmap, чтобы связать какой-то существующий ключ с модификатором shift. Тем не менее, вы хотите, чтобы существующая клавиша была пространством управления, которое не соответствует клавише, которую вы, вероятно, найдете на своей клавиатуре, и при этом для нее не существует существующей клавиатуры . Скорее, вы можете иногда использовать пространство управления для создания NUL ASCII, но он используется настолько редко, что для этого на клавиатуре нет стандартной клавиши.

Тем не менее, xterm и urxvt могут быть сконфигурированы отдельно и разными способами, чтобы различать пространство управляющего сдвига. С xterm это будет ресурс translations , тогда как urxvt имеет ресурс keysym.sym .

Если вы используете xmodmap , скорее всего, вы используете либо xterm либо rxvt (возможно, urxvt). С другими терминалами люди склонны вникать в болото xkb. Но, просматривая документацию, кажется, что у него есть то же ограничение, что и у xmodmap (по сути, больше того же самого, никаких действительно новых возможностей в этой области).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .