KDE: налаштовуємо клавіатурні розкладки

  1. загальне введення
  2. Діємо через KCC
  3. Переходимо до мануальної терапії

Автор: Олексій Федорчук
2004.11.18

Налаштування клавіатури - благо і прокляття початківця користувача KDE. Благо - тому, що можливості цього середовища з управління клавіатурними розкладками істотно перевершують базові функції, що надаються самою віконною системою Ікс. Прокляттям ж ця справа може здатися в тому випадку, якщо користувач, вперше береться за KDE і виконав все формально визначені за штатом дії, раптом з подивом виявляє, що він не тільки не отримав тих самих додаткових можливостей, але і втратив здатність перемикатися з латиниці на кирилицю (або, що ще гірше, навпаки - з кирилиці на латиницю) взагалі.

загальне введення

Проте, все не так страшно, як може здатися на перший погляд. І якщо раніше (наприклад, в інструкціях Олексія Новодворского до перших версіями Mandrake Russian Edition) резонні люди радили взагалі не чіпати модуль настройки клавіатури KDE, щоб уникнути втрати базової русифікації іксів, то нині їм цілком можна користуватися. Якщо це, звичайно, потрібно.

А чи потрібно це народу? Як завжди, відповідь буде цілком дипломатичну - кому потрібно, а кому й ні. В обґрунтування чого згадаємо, як досягається базова русифікація клавіатури в іксах і що вона дає.

Самі по собі Ікси (тобто X-сервер) забезпечують користувачеві підключення кириличної розкладки, і не більше того. Причому розкладки - однієї єдиної, приблизно відповідної фабрично русифікованим клавіатур з DOS-маркуванням клавіш. Що не слід плутати з DOS-кодуванням клавіатурного введення - це назва історично закріпилося за колись поширеними (а колись і єдино наявними) в продажу клавіатурами, у яких в кирилиці найбільш затребувані розділові знаки (крапка і кома) розташовувалися на верхньому регістрі цифрового ряду клавіш - як на механічних друкарських машинках вітчизняного (і соцлагерного) виробництва ...

Далі, Ікси, дозволяючи підключити кириличну розкладку, парадоксальним способом не забезпечують можливості перемикання на неї (або, навпаки, з неї на латиницю). Бо ця сама кирилична розкладка штатно такого перемикача не містить.

Історичний відступ: колись російська розкладка перемикач Lat / Рус мала, і прив'язаний він був до клавіші CapsLock. Як сказали б в Одесі - і кому це заважало? Кому-то, мабуть, заважало, тому що починаючи, якщо пам'ять не зраджує, з версії XFree86 3.3.4, штатний перемикач з російської розкладки викинули. Тобто користуватися нею за прямим призначенням стало неможливим? - адже важко уявити собі самого споконвічно-кондового патріота, який не потребує латиниці взагалі.

Так, якби не модуль розширення іксів, іменований Xkb Extensions (або просто Xkb). Його підключення (а при будь-якому способі конфігурації іксів воно виконується за замовчуванням) забезпечує такі додаткові можливості, як:

  • використання варіанту розкладки (зокрема, варіанти winkeys, невідповідне маркуванню нині продаються фабрично русифікованих клавіатур);
  • вибір клавіші-перемикача (на відміну від Windows, вибір цей досить великий - допустимі фіксуються модифікатори CapsLock і ScrollLock, майже будь-які поєднання клавіш Alt, Control і Shift (та ще з розрізненням правих і лівих), а також т.зв. Win-клавіші (повний список можна подивитися у файлі /usr/X11R6/lib/X11/xkb/rules/xfree86.lst);
  • призначення індикатора альтернативної (в нашому випадку - російської) розкладки, яким може бути будь-який «вогник» на клавіатурі - CapsLock, NumLock або ScrollLock, незалежно від того, яка клавіша виступає перемикачем;
  • можливість підключення третьої розкладки клавіатури;
  • всякого роду перевизначення клавіш-модифікаторів, в тому числі і Win-клавіш.

Повторюю, всі ці можливості задіюються за замовчуванням - відключення розширень Xkb вимагає внесення в файл / etc / X11 / XF86Config (або / etc / X11 / xorg / conf) рядки

Option "XkbDisable"

або зняття з неї коментаря. І правильно налаштувати їх можна в ході штатного конфігурації іксів програмою xf86config / xorgconfig (або аналогічної графічної утилітою xf86cfg / xorgcfg), чесно і відверто відповівши на серію досить прозорих питань. Правда, при автоматичній настройці іксів за допомогою

$ X --configure

опції та варіанти Xkb доведеться прописати вручну, але цей процес багаторазово описувався.

У підсумку, здавалося б, безпосередньо в іксах можна отримати все, що потрібно для щастя російській (пардон, російськомовному) людині. За двома винятками:

  1. перемикання розкладок клавіатури в іксах, на відміну від Windows, має силу для всіх додатків відразу; що не завжди може бути зручно - наприклад, при одночасній роботі в командному рядку і текстовому редакторі з російськомовним документом;
  2. за допомогою Xkb можна задіяти тільки три розкладки клавіатури, і якщо по ходу справи в російсько-латинський (або, що ідентично, російсько-англійський) текст потрібно вставляти ще й німецькі умляути з французькими аксантамі, а то і рясну скандинавську символіку, їх виявляється явно мало.

І ось тут-то і приходить на допомогу інтегрований в KDE аналог Xkb, який, як неважко здогадатися, носить ім'я kxkb. Так що якщо ні безліч розкладок, ні прив'язка перемикання клавіатури до якогось з додатком (або навіть окремого вікна додатка) вам особисто не потрібні, далі можете не читати, забувши про kxkb назавжди і обмежившись коректної налаштуванням Xkb.

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

І ще: якщо необхідно використовувати безліч клавіатурних розкладок, справа не обмежиться налаштуванням kxkb, а зажадає ще й використання unicode-шрифтів і локалі UTF-8. Що, втім, до теми цієї замітки не відноситься.

Діємо через KCC

Отже, ми вперше приступаємо до налаштування клавіатурних розкладок. Для чого запускаємо KCC (Центр керування KDE) і слідуємо за пунктами меню: Регіональні та більш доступного режиму -> Розкладки клавіатури. У правому фреймі вікна KCC з'являється панель з трьома закладками: Розкладка, Параметри перемикання, Параметри XKB (рис. 1), які ми і розглянемо послідовно.

Рис Рис. 1. Налаштування розкладок клавіатури через KCC

Як можна бачити з малюнка 1, в момент першого запуску KCC розкладки не активована. Щоб зробити їх доступними для завантаження, потрібно в першу чергу відзначити перемикач Увімкнути розкладки клавіатури. Що в даному випадку слід розуміти як підключення модуля kxkb. Після чого з довгого списку зліва можна вибрати необхідні розкладки, що з'являються тим самим в списку задіяних справа (рис. 2).

Рис Рис. 2. Вибір необхідних розкладок клавіатури

У цій замітці я обмежуся розглядом найпростішого випадку - включення латинської ( «Американської англійської») і російської розкладок. Варіант множинних клавіатурних розкладок залишається в якості самостійного вправи для зацікавлених осіб.

Для початку з меню, що випадає Модель клавіатури при необхідності замість умолчальне Стандартна PC 104 клавіші вибираємо щось більш підходяще наявним реаліям. Втім, в більшості випадків звичайних настільних клавіатур робити цього не слід: емпірично помічено, що kxkb найкраще працює саме зі стандартною клавіатурою. І до перебору варіантів доводиться вдаватися тільки при наявності чого-небудь вже дуже екзотичного (наприклад, будь-яких своєрідним ноутбучних клавіатур).

Потім подвійним клацанням миші в лівому списку додаємо до умолчальне розкладці англійська США (us) потрібну нам - в даному випадку це буде Російська (ru). А потім з нижнього меню, що випадає Варіант розкладки вибираємо шуканий - winkeys. При цьому в «командному рядку» в нижній частині панелі висвічуються вибрані параметри. У нашому прикладі вони будуть виглядати так:

setxkbmap -model pc104 -layout ru -variant winkeys

Далі переходимо на закладання Параметри перемикання (рис. 3). Тут, у відповідність з нормами сучасної російської (точніше, російської) орфографії, ігноруємо перемикач, що відповідає за букву е (добре це чи погано - але в книгах і інших виданнях прийнято саме так). Зате, при бажанні, ставимо перемикач Відображати прапор країни. Який, вбудовуючись в трей головній панелі KDE, емулює індикатор поточної розкладки клавіатури - у вигляді нібито американського і російського прапорів, відповідно.

Рис Рис. 3. Налаштування параметрів перемикання розкладок

Правда, користі від цього небагато, і з двох причин: а) я особисто тільки при великому напруженні фантазії готовий визнати з'явився значок за будь-якої прапор взагалі, а вже впізнавати країну його власності не взявся б взагалі; б) працює цей індикатор зазвичай тільки при перемиканні розкладки мишею, геть ігноруючи (по крайней мере, у мене так бувало завжди) перемикання за призначеною клавіші. Так що, оскільки місце в треї обмежена, а там і так вже збирається чимало значків (і часом більш важливих), прапор країни можна проігнорувати.

Тепер - Політика перемикання, одна з причина, заради якої взагалі варто зв'язуватися з kxkb. За замовчуванням відзначений варіант Глобально - тобто перемикання розкладки має силу для всіх відкритих (і знову відкриваються) додатків (якщо хто пам'ятає, так само було і в Windows 3.1). Що, як я вже говорив, не у всіх випадках зручно. І тому можна вибрати одну з наступних можливостей - Додаток, коли перемикання розкладки поширюється на дану, програму (і все її екземпляри, відкриті в власних вікнах, як це прийнято в Windows, починаючи з 95-ї її інкарнації), або Вікно - в цьому випадку кожен екземпляр програми буде абсолютно автономний щодо поточної розкладки.

А ось що таке Липке перемикання, я, чесно кажучи, з'ясувати так і не спромігся за неактуальністю. Проте, буду вдячний за відповідні роз'яснення. Підозрюю, що це має відношення до випадку з більш ніж двома розкладками.

Після цього переходимо до останньої закладці - Параметри XKB (рис. 4). Тут для початку потрібно включити розширення xkb - я вже говорив, що власне опції іксів Xkb Extentions анулюються при підключенні kxkb (точніше, будуть анульовані в момент, коли ми натиснемо кнопку Застосувати. І їх слід замінити аналогами з нашого KDE'шного модуля.

Рис Рис. 4. Налаштування перемикача розкладок, їх індикатора і т.д.

Для чого насамперед відзначаємо перемикач Скинути старі параметри, під якими слід розуміти опції Xkb, прописані у файлі / etc / X11 / XF86Config (або /etc/X11/xorg.conf) - щоб не заважали. Взагалі-то, кажуть, що це не обов'язково (або обов'язково не завжди). Але у мене kxkb нормально працювало (після ручного доведення, про яку мова піде нижче) тільки при скиданні старих параметрів.

Тепер послідовно вибираємо а) клавішу-перемикач (або - комбінацію клавіш, варіантів тут - дюжини півтори, я вважаю за краще традиційний CapsLock), б) світлодіод для індикації альтернативної розкладки (наприклад, той же CapsLock) і в) при бажанні інші опції (я їх не використовую і тому не розбирався з ними).

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

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

А на питання - що робити, - як завжди, можна відповісти двояко: а) знести kxkb на фіг, або б) боротися до перемоги ручної правкою конфігураційного його файлу.

Переходимо до мануальної терапії

Можливо, вам здасться що овчинка (можливість незалежного перемикання розкладок в різних програмах) не варто вичинки (ручної правки конфіга). І тоді найпростіше відмовитися від kxkb. Тільки не потрібно намагатися робити це через Центр управління - відключаючи розкладки клавіатури і розширення Xkb - провозити ви довго, а результату, швидше за все, не буде.

І тому саме час звернутися до каталогу $ HOME / .kde / share / config - пам'ятайте, в минулій замітці я говорив, що він нам ще знадобиться. А потім відшукати в ньому файл $ HOME / .kde / share / config / kxkbrc - конфиг модуля kxkb, просто-напросто видалити його (або перейменувати), і перезапустити сеанс KDE. Попервах середовище це вилається на відсутність віддаленого файлу, але іксів перемикання розкладок прийде в норму, а при наступному старті KDE навіть і лайки вже не буде ...

Проте, перше рішення - це капітуляція, а російські, як відомо, не задаються (особливо російські POSIX'івісти). Труднощами їх тим більше не налякати, так що звертаємося до другого варіанту.

Очевидно, що виправлення підлягає той же самий файл $ HOME / .kde / share / config / kxkbrc. Відкриваємо його в будь-якому текстовому редакторі і уважно вивчаємо результати наших попередніх дій, втілені в опції конфігурації. А виглядає вони приблизно так:

[Layout] Additional = ru EnableXkbOptions = true Includes = Layout = us Model = pc104 Options = grp_led: caps, grp: caps_toggle ResetOldOptions = true ShowFlag = true ShowSingle = false StickySwitching = false StickySwitchingDepth = 1 SwitchMode = WinClass Use = true Variants = us (intl), ru (winkeys)

Не дивлячись на деяку безсистемність списку опцій, на перший погляд в цьому файлі все нормально: є і рядок, що пропонує використовувати розкладки клавіатури (Use = true), модель клавіатури (Model = pc104), і додана російська розкладка (Additional = ru) разом з визначенням варіанту для неї (Variants = us (intl), ru (winkeys)), і включення аналогів Xkb (EnableXkbOptions = true), і скидання іксів налаштувань (ResetOldOptions = true), і демонстрація прапора (ShowFlag = true), і призначення клавіші -перемикач укупі з індикацією альтернативної розкладки світлодіодом (Options = grp_led: caps, grp: caps_toggle), і прив'язка розкладки до прог нію, як в Windows (SwitchMode = WinClass). І, тим не менш, ніякого переключення не відбувається ...

І тут ми бачимо рядок Layout = us. Так ось де таїлася погибель kxkb - перемикати-то нема на що! І дійсно, варто тільки змінити її таким чином:

Layout = us, ru (winkeys)

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

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

От і все. Єдине, що слід пам'ятати - після ручного доведення годі було перенастроювати клавіатурну розкладку через KCC - результат може бути непередбачуваним, і сеанс мануальної терапії доведеться повторити. А в остальном, прекрасная маркиза, все не просто добре, а так навіть чудово.

А чи потрібно це народу?
Як сказали б в Одесі - і кому це заважало?
Тобто користуватися нею за прямим призначенням стало неможливим?

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: