Что касается «проблемы» средней кнопки, одним из вариантов было бы сопоставить его с некоторым ключом (например, клавишей жестов).
IE: xinput set-button-map 10 1 2 3 4 5 6 7 2
Это будет отображать «предыдущий» ключ жестов (ключ, который не так сильно используется, я думаю), на среднюю кнопку (вставить).
Но это просто пример, вы можете выбрать другой ключ жестов мыши, как вам нужно;)
Надеюсь, это поможет.
Это закончило работу:
Section "InputClass"
Identifier "KeyboardLayout"
Driver "evdev"
MatchIsKeyboard "yes"
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:ctrl_shift_toggle,caps:ctrl_modifier,compose:sclk,terminate:ctrl_alt_bksp,grp_led:scroll"
EndSection
Так я решил настроить клавиатуру в XMonad. Я склонен уклоняться от редактирования X11-файлов в XMonad, так как язык Haskell настолько силен.
В вашем файле xmonad.hs (должно быть в ~ / .xmonad /) я использовал эти две строки для обработки переключения клавиатуры с помощью горячих клавиш в секции additionalKeys.
-- keyboard layout --
, ((mod1Mask .|. shiftMask, xK_d), spawn "setxkbmap -layout dvorak")
, ((mod1Mask .|. shiftMask, xK_u), spawn "setxkbmap -layout us")
setxkbmap в вашем .xinitrc? Подробнее здесь, включая пример настройки французского макета.
Я не пробовал это, но это базовый подход, который я попробую. i.e: изменение файлов xorg.conf. https://wiki.archlinux.org/index.php/Xorg#Setting_Keyboard_Layout_With_Hot-Plugging Хотя, ubuntu, похоже, использует другой формат папки xorg. и вам может быть трудно найти нужный файл.