Записки i-Diota: клавиатурные раскладки
- переключение раскладок по Command-Space;
- точка и запятая в нестандартных местах (на кнопках 6 и 7, соответственно)
Так как Mac - не единственная моя система (более того, внутри Mac живет Windows с офисом-2007), то все имеющееся великолепие нужно заставить ходить строем.
Как выяснилось, задача настройки переключателя не вполне тривиальная:
- В Windows стандартными средствами можно настроить только сочетание Ctrl-Shift или Alt-Shift. У меня много лет использовался Ctrl-Shift (правые), хотя переучиться недолго.
- В Mac OS X стандартными средствами нельзя назначить переключение по произвольным клавишам, только модификатор(ы)+действие.
- На ноутбучной клавиатуре MacBook Pro просто нету правого Ctrl в нижнем ряду.
- В X11 (xkb) можно сделать все, но описание этого процесса рвет крышу.
В результате, проблема заняла куда больше времени, чем я бы хотел на нее потратить, но в результате все возможные способы были, похоже, изучены.
Mac OS X: раскладка клавиатуры
По счастью, все элементарно. Можно воспользоваться готовыми решениями на выбор:- Можно заменить имеющуюся раскладку Russian (файл с раскладкой берется отсюда или отсюда)
- Можно добавить дополнительную раскладку.
Переключение раскладок по Alt-Space/Command-Space
На Mac делать ничего не надо. Ну, если быть точным, то Command-Space в стандартн ой ситуации вызывает Spotlight, поэтому просто включение этих кнопок для выбора Input Source вызывает конфликт. Но можно для Input source оставить только переключение Next (для двух раскладок Next и Previous не нужны), а Spotlight перевесить на Alt-Space.Windows. Ничего лучше, чем переключение по AutoHotKey я за 5 минут не нашел. Качаем, ставим, редактируем скрипт, имеем переключение по Alt-Space вдобавок к имеющемуся. Недостатки: не работает в input-поле Run и, как говорят, еще в некоторых программах, помимо этого пропадает оконное меню, которое раньше вызывалось через Alt-Space.
X11 (xkb). Проще всего оказалось похакать имеющиеся способы переключения. В файле /usr/local/share/X11/xkb/symbols/group
(в более старых версиях Xorg/XFree он может называться /usr/X11R6/lib/X11/xkb/symbols/group
) меняем описание модификатора alt_caps_toggle на такое же, но для пробела:
partial modifier_keys xkb_symbols "alt_caps_toggle" { key <SPCE> { type="PC_SYSRQ", symbols[Group1]= [ space, ISO_Next_Group] }; };А в xorg.conf пишем в секции описания клавиатуры:
Option "XkbOptions" "grp:alt_caps_toggle,grp_led:scroll"Похакать оказалось проще, чем пересоздавать symbols.dir (я за 2 минуты так и не понял чем), но можно и честно создать свой переключатель alt_space_toggle
Ура, все работает, везде переключаемся по "кнопка-слева-от-пробела"-Space (в Mac "кнопка слева" - это Command, на остальных клавиатурах - Alt).
Переключение по Shift-Control
Для Windows и X11 делать ничего, что выходило бы за рамки стандартных настроек не нужно.С Mac дело обстоит несколько хуже:
- Присвоить любую последовательность символов любому набору нажатых клавиш можно с помощью Controller Mate, 15 долларов жалко, но можно и заплатить за то, чтобы оставить привычные кнопки.
- Но, как и написано выше, на ноутбучной клавиатуре просто нет правого Control.
Переключение по (Alt-)CapsLock
(Alt-)CapsLock - еще один распространенный способ переключения. Причины очевидны, клавиша CapsLock является абсолютно ненужной, а приспособить ее к чему-то хорошему хочется.X11 - никаких проблем, одна из стандартных настроек (та самая, которую мы хачили).
Windows - делается той же AutoHotKey, но не через !Space, а через !CapsLock.
Mac. На удивление, можно сделать почти то что хочется штатными средствами, не ставя дополнительных программ. Он делается в два шага:
- Ремэппим клавишу CapsLock в клавишу Help
- Назначаем сочетанию Alt-Help функцию переключения клавиатуры (Next Layout)
Что же выбрать?
Дело персонального вкуса, естественно. Но раз меня сместили с привычных кнопок Ctrl-Shift, то сейчас у меня везде две переключалки (Alt-CapsLock и Alt/Command-Space), посмотрим какая выживет. Да, в Windows и X11 двойные переключалки делаются элементарно, а на Маке сработал такой финт:- Next Layout переключается по Alt-Help(CapsLock)
- Previous Layout переключается по Command-Space
Comments
Блин, а где xorg.conf взять. Во первых, по моему там XFree.
Блин, а где xorg.conf взять.
Во первых, по моему там XFree.
Во вторых, у XFree я конфиг тоже не видел.
Не понял вопроса, отчего пугаюсь. "там" - это где ?
Не понял вопроса, отчего пугаюсь. "там" - это где ?
А я до сих пор использую раскладку с запятой на Shift+6 и то
А я до сих пор использую раскладку с запятой на Shift+6 и точкой на Shift+7. Как привык в конце 80-х в DOS, так зачем переучиваться?
Задача - уменьшить зоопарк, а не выяснить как правильно.
Задача - уменьшить зоопарк, а не выяснить как правильно.
Ну, выяснить почему так исторически сложилось что в этой ОС
Ну, выяснить почему так исторически сложилось что в этой ОС так - в общем-то не вредно.
А я задачу уменьшения зоопарка решал в 95-м году.
Это еще с пишмашинок тянется, естественно. Но не точно, ибо
Это еще с пишмашинок тянется, естественно. Но не точно, ибо букву ё куда только на клавиатурах не пихали, на маке она тоже не на месте.
Но 95% поста - вообще не про раскладки, а про переключалку. И этот секс вообще необъясним никаким разумным способом
<b>> точка и запятая в нестандартных местах</b><br/> >
> точка и запятая в нестандартных местах
> (на кнопках 6 и 7, соответственно)
А может, всё-таки, на 7 и 6, если "соответственно")? ;-)
Ну, а во-2-х, это достаточно стандартно -- по кр. мере, именно так на практически всех QWERTY-клавиатурах. Альтернативное "решение" от M$ известно, и распространено, и даже, быть может, чуть удобнее, но это оно, скорее, нестандартно. :)
<q>Mac. На удивление, можно сделать почти то что хочет
<q>Mac. На удивление, можно сделать почти то что хочется штатными средствами, не ставя дополнительных программ. Он делается в два шага:
1. Ремэппим клавишу CapsLock в клавишу Help
2. Назначаем сочетанию Alt-Help функцию переключения клавиатуры (Next Layout)
Процесс ремеппинга подробно описан на macoshints (важное замечание: нужно назначить хоть какой-то мэппинг для modifier keys через Keyboard & Mouse - Keyboard - Modifier Keys, а то нужная секция в .plist будет пустой). К сожалению, назначить просто Help в качестве переключателя нельзя, какой-то модификатор обязателен.</q>
у меня не работает.
Что именно у тебя не работает ?
Что именно у тебя не работает ?
это был я.
это был я.
ну извЕни
ну извЕни
1. забиндивание перключение раскладки на такую комбинацию 2.
1. забиндивание перключение раскладки на такую комбинацию
2. переключение раскладки по некоторым комбинациям (например, можно выставить перключение по 0-на-цифровой-клаве, но работать не будет. хоть с модификаторами, хоть без).
Alt-Help - работает. В смысле - перемепленый хелп. Alt-Keyp
Alt-Help - работает. В смысле - перемепленый хелп.
Alt-Keypad0 - не работает. Keypad0 - тоже не работает.
Alt-Cmd-O - попробовал по приколу - тоже не работает.
ну вот у меня не прибиндивается. пищит и сопротивляется. и п
ну вот у меня не прибиндивается. пищит и сопротивляется. и перемапленный и оригинальный (с инсерта).
а что при этом пишется в ~/Library/Prefernces/com....unversalaccess.plist?
У меня - биндится, но работает не везде. Ну сервиспак от ви
У меня - биндится, но работает не везде.
Ну сервиспак от висты накати туда, вдруг поможет.
<q>Ну сервиспак от висты накати туда, вдруг поможет.&l
<q>Ну сервиспак от висты накати туда, вдруг поможет.</q>
а?!
Ну если у тебя не работает что-то, что работает у других, то
Ну если у тебя не работает что-то, что работает у других, то это либо винды кривые, либо еще что-то непрямое.
а, так это сарказм был. я уж подумал что есть яблочный патч
а, так это сарказм был. я уж подумал что есть яблочный патч под кодовым названием.
на какой версии макоси это работает и что таки при этом записывается в .plist?
В указанный тобой plist ничего не пишется. А модифицированны
В указанный тобой plist ничего не пишется. А модифицированных за сегодня - слишком много, чтобы find -mtime нашел нужный.
Попробую найти нужный сам, буду рад помощи
<q>В указанный тобой plist ничего не пишется.</q>
<q>В указанный тобой plist ничего не пишется.</q>
а?! не верю (с) я именно туда и обнаружил запись этих хоткеев.
у обсуждаемого, кажется 61 (у хоткея, а не кнопки).
верия-то оси какая? отличается от 10.4.8?
PS: если снять/поставить галочку на данном хоткее, то можно будет увидеть и куда записали и что.
PPS: ls -ltTr
Да, оно пишется после закрытия окошка (а работает сразу) Во
Да, оно пишется после закрытия окошка (а работает сразу)
Вот такое вот пишется:
<dict>
<key>enabled</key>
<integer>1</integer>
<key>key</key>
<integer>114</integer>
<key>modifier</key>
<integer>524288</integer>
<key>sybmolichotkey</key>
<integer>60</integer>
</dict>
10.4.10
так цэ ж не Alt! цэ ж Option (AKA Win). может так и у меня
так цэ ж не Alt!
цэ ж Option (AKA Win).
может так и у меня назначилось бы. ну ручками прописанное тоже работает.
еще б от этого Win избавиться... и между приложениями по хоткеям переключаться...
Работает и Alt и Opt и Ctrl и даже все три сразу (+Help, ест
Работает и Alt и Opt и Ctrl и даже все три сразу (+Help, естественно)
для уменьшения зоопарка нужно перестать быть i-diotom ;)
для уменьшения зоопарка нужно перестать быть i-diotom ;)
Ты зря, хорошая игрушка
Ты зря, хорошая игрушка
может быть, но глядя на твои страдания этого не скажешь :) м
может быть, но глядя на твои страдания этого не скажешь :)
может проще тогда было не ноут брать а обычный системник
если и клава тебе не нравится и монитор и ещё чего нибудь потом разонравится...
Мне немножко нужен ноут. У ноутов все всегда кривое, и монит
Мне немножко нужен ноут. У ноутов все всегда кривое, и монитор и кнопки и прочая. На нем мне нужен юникс в силу особенностей жизни.
Мне немножко нужен мак (RPP запускать).
Маковский ноут - не хуже прочих и на нем уже юникс. Такой компромисс.
Я, на самом деле, игрушкой доволен. Просто есть общепризнанное мнение, что там вообще все отлично, так вот это - не так.
Но как я чудовищно мучался с компанейским ноутом + юникс + подключение внешнего монитора (и так и не решил проблему) - это еще более дурацкая история. Не говоря о мучениях с 802.11, BT и так далее (под юниксом просто не работало, под виндами были проблемы)
Ну а что делать-то? Такого, вот чтобы вообще все и везде раб
Ну а что делать-то? Такого, вот чтобы вообще все и везде работало --- нет, как я подозреваю.
Я, кстати, еле отучился от раскладки, где запятая и точка под цифрами. Как только на 5-ю FreeBSD перешел, а там стандартная раскладка виндовая, я и не стал разбираться. А теперь, вот, обратно привык...
Кстати, я знаю, что ты гнутые клавиатуры не любишь, но с моей 4000-ой клавиатурой от MS шел в комплекте и intellitype для Mac'ов, то есть можно управлять специальными клавишами, причем для разных программ --- разные. А из alt'а command и из win-клавиши alt оно само сразу сделало.
<i>Ну а что делать-то? Такого, вот чтобы вообще все и
<i>Ну а что делать-то? Такого, вот чтобы вообще все и везде работало --- нет, как я подозреваю.</i>
Проблема только в том, что грабли лежат в совершенно непривычных местах. Ну вот шрифты. Или перемэпливание клавиш.
1. ControllerMate для скольки-то там цепочек бесплатный (т.е
1. ControllerMate для скольки-то там цепочек бесплатный (т.е., можно отказаться от Alt в связке Alt-CapsLock).
2. а вот как бы под Windows переключать с помощью того же CapsLock не все языки, но только некоторые заранее определенные?
<b>2, дополенение</b><br/> подумал, что, может, несколько не
2, дополенение
подумал, что, может, несколько неточно софрмулировал
дело в том, что у меня установленно больше, чем две input locales. несколькими языками я пользуюсь редко, и на них выделены свои shortcuts. а чаще всего переключаю en и ru.
и вот я думаю -- а как бы так сделать, чтобы с помощью того же CapsLock не переключать подряд все языки, но только эти два?
<b>Re: 2, дополенение</b><br/> В виндах можно назначить соот
Re: 2, дополенение
В виндах можно назначить соответствующие кнопки 'switch to <kbd layout>'.
Но они будут разные.
Т.е. события такие есть, значит их можно прицепить к AutoHotKey для любой комбинации кнопок
<b>Re: 2, дополенение</b><br/> да, но переключение en и ru -
Re: 2, дополенение
да, но переключение en и ru -- это будут, соотв., разные события. и на один CapsLock их не повесить (если только опять с еще одним модификатором).
на самом деле, программка PuntoSwitcher под Windows умеет как-то переключать только эти два языка. но у нее свой ограниченный набор кнопок. и нормально унифицировать (у меня просто тоже 3 платформы) не получается.
Вообще, идеальной была бы раскладка, где на месте цифр были
Вообще, идеальной была бы раскладка, где на месте цифр были бы знаки препинания, а цифры нажимались бы с шифтами.
Это объясняется тем, что мы чаще используем знаки препинания, чем цифры при письме. Так что маковская стандартная раскладка делает шаг в нужном направлении но вот, жаль, не до конца...
Вроде, раскладка Дворака как раз удовлетворяет тем требованиям, что я описал.
Для смены языка в винде по CapsLock можно создать раскладку
Для смены языка в винде по CapsLock можно создать раскладку с помощью утилиты MSKLC (с оф. сайта M$), взяв за основу стандартную английскую (или русскую) и переназначить в ней символы для нажатого CapsLock на те, что в другой раскладке.
Готовую раскладку (я ее сделал и использую) можно скачать по адресу http://zawullon.spb.ru/dev/layout
Лампочка показывает текущую раскладку, но язык в панели инструментов не меняется.
На Mac есть аналог MSKLC - Ukelele. У меня, к сожалению, пока не получилось сделать с ее помощию раскладку, т.к. для части клавиш (например англ. E) она при смене символа при нажатом CapsLock тут же меняет его и для Shift :(. Может быть из-за того, что я за основу взял английскую раскладку, а надо - русскую. Пока эксперементировать не продолжаю, поскольку работаю в основном в Linux, а на ковыряние MacOS нет времени.