Дві клавіатури на одному комп’ютері. Коли я пишу з AI, я хочу розкласти клавіатуру США, коли я використовую BI, хочу шведську мову. Можливо?


47

У мене є ноутбук, з яким я використовую зовнішню клавіатуру. Коли я набираю зовнішню клавіатуру, я хочу використовувати клавіатуру США, оскільки це зовнішній вигляд клавіатури. З іншого боку, коли я набираю за допомогою інтегрованої клавіатури, я хотів би використовувати шведський макет.

Чи можливо це? І як би я пішов робити це?

Я запитую тут, як я думаю, що тут ми знайдемо більшість експертиз Linux.

Відповіді:


41

Спочатку потрібно знайти ідентифікатор пристрою клавіатури, щоб змінити:

$ xinput -list | grep -i key
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ LITEON Technology USB Keyboard            id=9    [slave  keyboard (3)]
    ↳ LITEON Technology USB Keyboard            id=10   [slave  keyboard (3)]

Потім змініть макет за допомогою setxkbmap:

$ setxkbmap -device 9 dvorak

Для деяких версій setxkbmap потрібен аргумент '-layout':

$ setxkbmap -device 9 -layout dvorak

Привіт, я це зробив, і це чудово підходить для всього, крім клавіш зі стрілками та інших клавіш спрямованості (які вже не працюють взагалі). Можливо, клавіатура - одна з тих ергономічних, які мають прикольні відображення клавіш ... будь-яка ідея, як змусити тих, хто працює знову?
btelles

8
Тож який найкращий спосіб встановити цю конфігурацію під час завантаження, а не вручну викликати setxkbmap?
Річард Тернер

9

Можу позитивно сказати, що те, що ви хочете зробити, дійсно можливо. Я спочатку досягнув вказаного сценарію

sudo cat /dev/input/event(0,1,2..)

вводячи на кожній клавіатурі, щоб переконатися, що вони були розпізнані як окремі пристрої. Тоді я просто застосував пробні помилки, експериментуючи

setxkbmap -device (1-x) us.

Я виявив, що setxkbmap -device 1 usналаштував обидві (усі) клавіатури, при цьому setxkbmap -device 6 usвплинув лише на вторинну. Важливо, мабуть, те, що вони були підключені через PS / 2.

Це, звичайно, не гарантовано працює для вас і навіть не належить до належної відповіді, але це підтверджує, що це взагалі можливо. Я не знаю, за якою схемою названі окремі клавіатури /dev/input, але я впевнений, що імена можуть бути вказані у udev, що дозволяє вводити відповідну setxkbmapкоманду /etc/rc.localабо подібну.


9

Незважаючи на те, що це питання давно, я подумав би, що поділюся своїм рішенням, оскільки жоден з інших відповідей не стосувався того, як зробити цю роботу над завантаженням.

Моя ситуація: у мене є клавіатура Happy Hacking Keyboard, яка підключається через usb, на якій пересуваються клавіші (керуйте тим, де відбувається блокування шапок тощо). Я використовую це більшу частину часу, але іноді я хотів би використовувати стандартну клавіатуру ноутбука або іншу клавіатуру usb. Для цих клавіатур я створив власну розкладку клавіатури.

Трюк полягає в тому, що користувацька розкладка клавіатури не повинна застосовуватися до клавіатури Happy Hacking Keyboard.

Рішення: Я створив Xorg файл конфігурації як такий:

$ cat /etc/X11/xorg.conf.d/30-keyboard.conf 
Section "InputClass"
        Identifier "Happily Hacked Keyboard"
        MatchDevicePath "/dev/input/event*"
        MatchIsKeyboard "on"
        Driver "evdev"

        Option "XkbLayout" "us"
        Option "XkbVariant" "hhk"
EndSection

Section "InputClass"
        Identifier "Happy Hacking Keyboard"
        MatchIsKeyboard "on"
        MatchVendor "Topre_Corporation"
        Driver "evdev"

        Option "XkbLayout" "us"
        Option "XkbVariant" "basic"
EndSection

Перша частина в основному говорить про будь-яку стандартну клавіатуру, застосуйте макет us з користувацьким варіантом. У другій частині йдеться про щасливу хакерську клавіатуру, використовуйте макет us з базовим варіантом.

Ви можете зіставити пристрої на основі групи параметрів: xorg doc


ваша пізня відповідь, можливо, заслуговує на пізній коментар ... у вас є ідентифікатор як "Happy Hacking Kbd" в обох ... Я думаю, що це, мабуть, помилка, перший ідентифікатор InputClass повинен бути, ймовірно, "Загальною клавіатурою"
Даніель

1
@Daniel Ідентифікатори насправді різні, "Щасливо зламана клавіатура" проти "Happy Hacking Keyboard", але лише трохи :)
zanegray

дякую за правильне! ... Я звинувачую свої погані окуляри для читання:)> v
Даніель

... але це (для клавіатури чудово працює, можливі також різні макети, щоб пройти цикл! наприклад, у нас, ru, ua на одній і de, cz, ua на другій клавіатурі) зміна для мене якось убила мою середню кнопку миші моєї зовнішньої USB-миші. Треба шукати, що таке втручання ...
Голар Рамблар,

Я хотів би, якби це рішення працювало на мене, але воно не працює - можливо, тому, що я не можу правильно встановити ідентифікатор постачальника? Команда "lsusb -v | grep -e idVendor" дала мені "0x09da A4Tech Co., Ltd." тому я також спробував різні варіанти (без шестигранного, підкреслення замість місця та ін.). Потім я спробував ідентифікатор постачальника, отриманий через "список xinput" та "udevadm info" (A4TECH). Я навіть змінив число 30 на 50 також тому, що у мене є файл "/usr/share/X11/xorg.conf.d/40-libinput.conf", включаючи глобальну конфігурацію клавіатури. Але я нічого не міг отримати. Будь-які ідеї, будь ласка? (Ubuntu 18.04)
Саді

5

Це може бути можливо, судячи з аргументу -device для setxkbmap:

       -пристрій пристрою
               Вказує числовий ідентифікатор пристрою введення, який повинен бути
               оновлено новою розкладкою клавіатури. Якщо не вказано, то
               Оновлено основний пристрій клавіатури X-сервера.

Природно, однак, у мене немає другої клавіатури, щоб спробувати її на даний момент.

-Дворівник користувача


Хмф. -пристрій 0 перемикає обидва, -пристрій 2 (має бути бортовою клавіатурою за відповіддю Аркенкло) нічого не перемикає, принаймні на моєму ноутбуці та USB-клавіатурі.
Tommy McGuire

1

Я не думаю, що ти можеш зробити це саме так, як хочеш. Я знаю два варіанти:

1) Ви можете зробити перемикання простим клацанням / натисканням клавіші миші.

За допомогою Ubuntu / GNOME:

Клацання миші

У Ubuntu / Gnome, якщо ви налаштували макети входу, перейдіть на порожнє місце на панелі, клацніть правою кнопкою миші та натисніть «Додати до панелі». Виберіть "Індикатор клавіатури", щоб додати це до панелі. Це повинно вводити крихітний фрагмент тексту із зазначенням розкладки клавіатури, і ви можете натиснути цю кнопку, щоб переключитися.

Комбінація клавіш

Система -> Налаштування -> Клавіатура -> Макети -> Параметри макета

Там є опція "Ключ (и) для зміни плану". Ви можете встановити його на Alt + Shift, що не повинно порушувати нормальних комбінацій клавіш.

Я припускаю, що існує також спосіб KDE.

2) Інша альтернатива - це http://en.wikipedia.org/wiki/Xneur , але я не впевнений, чи це доступно для шведської мови, і це може бути неможливо для мов, які мають подібні конструкції до англійської.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.