Отображение супер ключей для управления без Xmodmap

Я пытаюсь переключить свои супер и управляющие клавиши в X на macbook и был наполовину успешным. Я бы хотел, чтобы избежать создания пользовательского .Xmodmap, если это возможно, так как есть временная ошибка 100% cpu, которая появляется каждый раз, когда пользовательская карта загружается (не говоря уже о различных предупреждениях от использования xmodmap, как правило, с которыми я сталкивался) ,

После некоторого раскопок я закончил размещение опции «XkbOptions» «altwin: ctrl_win» в моем файле 01-keyboard-layout.conf, который получил меня на полпути: например, левая команда теперь сопоставляется с 133 Control_L. Однако клавиши управления остаются неизменными. Левое управление, например, для карт до 37 Control_L.

Просматривая evdev.lst (и кучу googling), не оказалось никакого подходящего XkbOption для превращения ключей управления в supers, и теперь я довольно застрял.

Теперь я просматриваю безумие, которое является ненадежным руководством Дага Палмера по конфигурации XKB, но, как он описывает, происходит спуск в ад.

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

Благодаря!

Следующее решение проще, чем у Asker. (Протестировано на Ubuntu 14.04, работающем на Dell.)

1) В файле /usr/share/X11/xkb/keycodes/evdev коды сканирования (номера) ключей, которые вы хотите поменять местами. ПРИМЕЧАНИЕ. Ваше оборудование может ориентироваться на другой файл evdev ключа, чем evdev .

2) Запустите sudo rm /var/lib/xkb/*.xkm чтобы очистить кэш xkb, а затем перезагрузитесь.

Хорошо, я, наконец, получил это, чтобы работать.

Во-первых, эти два ресурса поражают всех, кто хочет вникать в этот беспорядок:

http://madduck.net/docs/extending-xkb/ и http://www.charvolant.org/~doug/xkb/html/index.html

Для тех, кто специально пытается сделать это переключение, это то, что я сделал:

1) создать файл в / usr / share / X11 / xkb / symbols для вашего нового сопоставления 2) поместить его в него:

 // Control is SWAPPED with Win-keys partial modifier_keys xkb_symbols "cmd_n_ctrl" { key <LWIN> { [ Control_L ] }; key <RWIN> { [ Control_R ] }; key <LCTL> { [ Super_L ] }; modifier_map Control { <LWIN>, <RWIN> }; modifier_map Mod4 { <LCTL> }; }; 

3: отредактируйте evdev в / usr / share / X11 / xkb / rules, чтобы включить:

 altwin2:cmd_n_ctrl = +altwin2(cmd_n_ctrl) 

(в разделе опции = символы)

4: добавьте новый параметр в evdev.lst (тот же каталог):

 altwin2:cmd_n_ctrl 

(в разделе опций)

5: теперь отредактируйте файл конфиг 01-Keyboard, чтобы включить новый параметр, который вы создали. Моя выглядит так:

 Section "InputClass" Identifier "keyboard-layout" Driver "evdev" MatchIsKeyboard "yes" Option "XkbLayout" "us, ru, ca, fr" Option "XkbOptions" "altwin2:cmd_n_ctrl" EndSection 

6: перезагрузитесь, и вам должно быть хорошо идти.

Вышеуказанные ресурсы лучше объясняют все это или любые помехи, с которыми вы могли столкнуться. Вероятно, есть намного лучший способ сделать это (возможно, не изменяя содержимое / usr / share), но до сих пор это то, что меня запустило.

Надеюсь, что кто-то еще застрял в этом месте!