Донецкий техникум промышленной автоматики

Трохи про клавіатурних розкладках

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

Ця історія почалася з того, що я поміняв клавіатуру - дія, яке я здійснюю тільки під непереборним гнітом обставин. В даному випадку гніт цей висловився в тому, що мене дістала моя бездротова клавіатура імені товариша Logitech'а.

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

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

Зрозуміло, на такий випадок була у мене й провідна клавіатура - але a) не дуже зручна з точки зору розташування клавіш, і б) кілька громіздка.

В результаті пішов я в магазин і прикупив собі дротову (з USB-роз'ємом) клавіатуру BTC 6100 - Ultra Slim Multimedia. Яка, крім ультраплоскості, відрізнялася ще й Ультракомпактне (за рахунок відсутності NumPad'а), коротким ходом клавіш, при відмінній тактильності, наявністю світлодіодних індикаторів. Мультімедінйнимі прибамбасами вона була не дуже обтяжена: були Інтернет-клавіші Назад, Вперед, Додому, і клавіші регулювання звуку:

Мультімедінйнимі прибамбасами вона була не дуже обтяжена: були Інтернет-клавіші Назад, Вперед, Додому, і клавіші регулювання звуку:

Іншими словами, все близько до ідеалу - за єдиним винятком: на ній повністю була відсутня клавіша Лівий бакслеш. Навіщо він потрібен - запитаєте ви мене? Відповісти легко: справа в тому, що вже багато років на нижній регістр цієї клавіші при кириличної розкладки я вішаю кому - ну сильно напружує мене тиснути шифт для введення цього, погодьтеся, не рідкісного препінака. І взагалі, більш незручного розташування розділових знаків при російській розкладці на сучасних клавіатурах важко собі уявити - хіба що стара розкладка legacy перевершує її в цьому відношенні.

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

Але насамперед домовимося про терміни. У Windows під словом «розкладка» розуміється поєднання мовної приналежності і безпосередньо системи розташування клавіш. Наприклад, російська розкладка за замовчуванням, російська фонетична і російська (друкарська машинка) виступають як рівноправні.

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

Для країни Росії і набору символів кирилиці в даний час зберігають актуальність наступні варіанти російської (ru) розкладки:

    1. typewriter - варіант розкладки стандартної радянської друкарської машинки:

      typewriter - варіант розкладки стандартної радянської друкарської машинки:

      клавіатур, маркованих таким чином, я в заводському виконанні не бачив, проте в UNIX-системах (FreeBSD і Linux) саме він був історично першим;

    2. legacy - цей варіант отримав широке поширення за часів DOS, коли у відповідність з ним маркірувалися русифіковані фабричним способом клавіатури; являє собою інвертований щодо цифр і розділових знаків варіант друкарської машинки;
    3. winkeys - варіант, прийнятий в даний час в Windows, відповідно йому маркуються всі сучасні русифіковані клавіатури:

      winkeys - варіант, прийнятий в даний час в Windows, відповідно йому маркуються всі сучасні русифіковані клавіатури:

як і все в Windows, створений (��пеціально?) не схожим ні на один з попередніх;

  1. phonetic - варіант, в якому російські букви розташовуються на місці схожих за звучанням латинських:

    phonetic - варіант, в якому російські букви розташовуються на місці схожих за звучанням латинських:

Ці варіанти є більш-менш загальноприйнятими, і один з них зазвичай пропонується на вибір при установці більшості коректно русифікованих дистрибутивів Linux. Причому слід врахувати, що пропонований за замовчуванням варіант російської розкладки - це, як правило, legacy. Винятком, наскільки мені відомо, є останні версії Ubuntu - в ній умолчальне варіантом виступає winkeys.

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

Всі перераховані варіанти російської розкладки, крім фонетичного, в основі своїй мають базову розкладку ЙЦУКЕН, створену колись для друкарських машинок за тими ж принципами, що і початкова розкладка QWERTY - винахід Крістофера Шоулза, основоположника машинопису (ознайомитися з історією питання можна). Нині її розглядають як анахронізм «механічних» часів, і час від часу роблять спроби заміни на що-небудь більш «ергономічне».

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

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

За свідченням тих, хто його освоїв, варіант розкладки Дворака дійсно забезпечує фантастичну швидкість набору (повторюю, латиниці). Він прийнятий як стандарт ANSI, і підтримується у всіх UNIX-подібних операційних системах (і навіть в Windows). Однак, згідно зі статистичними даними, його використовує не більше 2% користувачів. Головна причина чому - різке відмінність варіанту Дворака від QWERTY, а адже саме в цій розкладці набирає свої перші символи переважна більшість користувачів персоналок.

Спробою подолати необхідність принципового перенавчання було створення варіанту Colemak, розробленого (також для латиниці) Шаєм Колманом зовсім недавно, в 2006 році:

Стверджується, що він, завдяки деякому схожості зі стандартним QWERTY, допускає їх почергове використання, забезпечуючи при цьому багато більшу швидкість набору в порівнянні з останнім (і трохи більшу, ніж при використанні варіанту Дворака). Однак відомостей ні про підтримку цього варіанту операційними системами, і відомостей про його поширенні у мене немає. Підозрюю, що популярність варіанту Colemak ще нижче, ніж варіанти Дворака - хоча б через відсутність традиції.

На Русі теж робилися спроби створення «ергономічних» варіантів для російської розкладки - принаймні про одну таку, що отримала ім'я DIKTOR, мені відомо:

На Русі теж робилися спроби створення «ергономічних» варіантів для російської розкладки - принаймні про одну таку, що отримала ім'я DIKTOR, мені відомо:

Цей варіант базується на тих же принципах, що і варіант Дворака та, подібно до останнього, згідно, забезпечує велику швидкість набору і меншу стомлюваність. Однак і про її скільки небудь широкому використанні мені невідомо. Більш того, на мою думку, шансів на таке вона має ще менше, ніж варіанти Дворака або Колмана - незалежно від його достоїнств, бо все навчальні курси набору в нашій країні базуються на використанні стандартної ЙЦУКЕН.

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

З не меншим обуренням слід відкинути і варіант legacy - якщо, зрозуміло, у користувача немає звички до оному з часів «чорного» DOS'а: ніякими іншими перевагами покоління було не відзначений, а недоліків хоч відбавляй. Головні з них - розбіжність з фабричним маркуванням сучасних клавіатур і знаходження всіх знаків пунктуації на верхньому регістрі.

Так що фактично у нас проста альтернатива - winkeys або typewriter. На користь першого говорить:

  1. збіг розкладки з фабричним маркуванням клавіш;
  2. загальна поширеність (більшість недавніх користувачів Windows про зазначену альтернативу і не підозрюють).

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

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

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

Проте, все не так суицидально - принаймні в UNIX-подібних системах. Бо там користувач може без праці підігнати стандартний варіант розкладки під свої потреби - для чого йому потрібні тільки текстовий редактор і знання того, який саме файл відповідає за розкладку клавіатури.

З файлом - все просто: кирилична розкладка клавіатури в іксах (повторюю, про консолі зараз мова не йде, це особлива історія) описана в файлі / usr / share / X11 / xkb / symbols / ru (реальне місце розташування його може варіювати в залежності від дистрибутива - але симлінк завжди буде по вказаним шляхом). Так що слід його завантажити в текстовий редактор (з правами суперкористувача) і відредагувати належним чином (зрозуміло, копію оригіналу треба попередньо зберегти - щоб уникнути).

Як редагувати файл опису розкладки - стає зрозумілим із його перегляду. У двох словах: головною частиною його є секція common, що описує основні алфавітні клавіші і загальна для всіх варіантів російської розкладки (крім варіанту phonetic - зі зрозумілих причин його алфавітна частина має зовсім інший вигляд). Очевидно, що в базовій секції міняти що-небудь недоцільно, хоча і не забороняється.

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

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

Для цього всього-то й потрібно було, що вписати в секцію xkb_symbols «winkeys» рядок
key <LSGT> {[comma, apostrophe]};
В принципі, цим рядком можна підмінити і оригінальні значення коду LSGT в секції common - тоді нові символи будуть вводитися при першій-ліпшій нагоді розкладки.

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

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

І тому більш радикальний спосіб вирішення проблеми коми (а також всіх інших «верхнерегістрових» розділових знаків - відмова від варіанту winkeys взагалі і перехід на варіант typewriter. Що я і зробив після останньої зміни клавіатури.

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

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

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

Як змінити варіант розкладки? Традиційний спосіб, заснований на використанні файлу конфігурації іксів описаний незліченну і зводиться до внесення в /etc/X11/xorg.conf рядків виду:
Option "XkbLayout" "us, ru (typewriter)"
або
Option "XkbLayout" "us, ru"
Option "XkbVariant" "typewriter"
а також забезпечення перемикання латніци на кирилицю за допомогою рядка на зразок
Option "XkbOptions" "grp: lwin_toggle, grp_led: scroll"
Якась передбачає перемикання по лівій win-клавіші і вказівка ​​поточної розкладки індикатором ScrollLock (зрозуміло, і те, і інше визначається суто індивідуальних переваг).

У сучасних версіях Xorg використання файлу його конфігурації вимагає ще двох рядків
Option "AutoAddDevices" "False"
Option "AllowEmptyInput" "False"
забороняють автоматичне визначення пристроїв введення.

З іншого боку, нині можна обходитися без файлу /etc/X11/xorg.conf, налаштовуючи розкладку, її варіант і перемикач через HAL, як це було детально описано в відповідної замітці , До якої і відсилаю за подробицями.

Сподіваюся, що читач, що випробував варіант typewriter, швидко переконається в тому, що для масового набору він куди більш придатний, ніж звичний winkeys. Залишилося тільки переконати виробників клавіатур (або, скоріше, їх розповсюджувачів на Русі) випускати їх моделі, фабрично марковані у відповідність з варіантом typewriter. А в ідеалі, якщо вже помріяти, - то і спеціальні клавіатури для юніксоід. Специфіка яких повинна бути зовсім не в клавішах із зображенням пінгвіна або деймона. Адже не секрет, що при масовому наборі текстів більшість користувачів Unix-подібних систем для навігації по тексту користуються не клавішами управління курсором, а звичними кейбіндінгамі - хто в стилі vi, хто - в стилі emacs. Так чому б не викинути з клавіатур всякі стрілки, PgUp / PgDown, End / Home? Адже це дозволить створювати цілком компактні «дошки» з клавішами нормального розміру, що більш ніж затребувано для малогабаритних ноутбуків.

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

У цій замітці використані ілюстрації з Вікіпедії -.

Навіщо він потрібен - запитаєте ви мене?
?пеціально?
Як змінити варіант розкладки?
Так чому б не викинути з клавіатур всякі стрілки, PgUp / PgDown, End / Home?