How to Remap a Keyboard on a Mac
Customize your Mac to fit your needs
What to Know
- Go to System Preferences >Keyboard >Shortcuts.
- Choose an item from the left pane, and then select the current key shortcut. Type the new command you want to use.
- You can’t completely remap the keyboard.
You may not be able to make something different happen when you press the «F» key on your Mac, but you can set up custom shortcuts to make it easier to get around macOS. This article explains how to do it.
How Do You Reassign Keys on a Mac Keyboard?
Your Mac’s System Preferences app contains various ways to add shortcuts and other features to your keyboard.
Screenshots in this article apply to a MacBook Pro; you may see some different menu options on a desktop Mac, but the process will be the same.
Select the Apple menu on your Mac, and then click System Preferences.
Select Keyboard.
If you’re using a MacBook with a Touch Bar, you’ll see an important option on the first screen: Press Fn key to:. You can use the Function key to do other things using this menu – Expand Control Strip, Show Quick Actions, and Show Spaces – but you should leave it at Show F1, F2, etc. Keys to make the next step work better.
Click Shortcuts to see more options.
In the left column, you’ll see the different categories of shortcuts you can set. Browse them to create and change shortcuts for screenshots, accessibility, and the Function keys.
When you find a shortcut you want to change, click the existing key combination on the right.
With the key command highlighted, press the new combination you want to use.
Add one or more modifiers like Fn, Shift, Control, Option, and Command to create a unique shortcut.
The new shortcut will replace the old one, and you can start using it immediately.
Repeat these steps for all of the shortcuts you want to create or change. A command with no active shortcut will say none on the right side.
To disable a shortcut without deleting it, click the checkbox next to its name.
What Kinds of Shortcuts Can I Create?
The Shortcuts tab includes several categories of commands you can set. Here’s a quick rundown of each of their contents.
- Launchpad & Dock: Call up the Mac Dock and Launchpad app.
- Mission Control: Perform tasks like opening macOS’ Notification Center, toggle Do Not Disturb, and show the Desktop.
- Screenshots: Set shortcuts to take, save, copy, and paste all or part of your screen.
- Services: Quickly send emails, post on Twitter, do internet searches, and more.
- Spotlight: Open Spotlight Search to search both the web and your computer.
- Accessibility: Turn on the Zoom feature, activate VoiceOver, and adjust display settings to make documents and applications easier to see.
- Function Keys: Add applications to this window to show the F1, F2, etc., keys on a MacBook’s Touch Bar instead of having to press the Fn key to reveal them.
Can I Reassign Keyboard Keys?
While you can use keyboard keys like letters and numbers in your shortcuts, you can’t completely reassign them (for example, type in a different language). Instead, you can go to the Input Sources tab in Keyboard Preferences and use the plus button to add a different layout.
Use the keyboard shortcut Control+Shift+Power to lock your MacBook or Command+Option+Power to put your MacBook to sleep. For extra security, disable automatic login so that authentication is required to unlock your computer.
Go to Apple menu > System Preferences > Keyboard > Input sources and check the box next to Show Input menu in the menu bar. Select the Plus (+) in the lower-left corner and choose a language to add. To switch between installed language keyboards on macOS, select the Input menu in the menu bar and choose the language you want to use.
Go to Apple menu > System Preferences > Accessibility > Keyboard > Accessibility Keyboard > Enable Accessibility Keyboard. You can also turn on the Accessibility Keyboard from the Input menu by selecting Show Keyboard Viewer.
Press Control+Command+Spacebar to bring up emojis, then select the expand icon in the upper-right corner to open the Character Viewer. Alternatively, select Character Viewer from the Input menu. For some emojis, you can click and hold to see other variations.
Источник
Переназначение клавиш на Маке
В этой статье я бы хотел поговорить об изменении клавиш на клавиатуре. Сперва это была короткая заметка, но со временем текст вырос во что-то большее. Оказалось, есть что сказать по теме.
Вообще, я не стремлюсь менять клавиши и затачивать программы под себя. Разработчики предлагают удобные схемы, и в целом удобно, когда вы работаете на стандартных настройках. Всё же, годы за клавиатурой подталкивают к некоторым изменениям.
Главный довод в пользу изменения клавиш — физиология. У людей разная форма кистей и длина пальцев. Невозможно выпустить клавиатуру, которая подошла бы всем людям. Именно физиология и чуткое внимание к ощущениям подсказывают, что менять что-то нужно, иначе — боль в суставах.
Одно время я увлекался эргономичными клавиатурами, но быстро разочаровался в них. За огромные деньги мы получим поделие Франкенштейна: огромных размеров, тяжелое, неудобное. Такая клавиатура полностью меняет рабочее пространство, заставляет кое-что купить в довесок. Её не возьмешь в командировку или на дачу, словом — нет.
На последней картинке – Microsoft Sculpt. Я пользовался ей полгода, но страшно заболела левая рука.
Сам я предпочитаю внешнюю клавиатуру Эпла: маленькая, лёгкая, без проводов. Заряда хватает на месяц. Бросил в рюкзак и неси в любое место. Метал, а не пластик. Тип кнопок на ней не тот, что в последних прошках, но всё равно удобно.
Конечно, кому-то нужны кастомные эргономичные эти клавиатуры, но я решил проблему простым способом — переназначением клавиш.
Простой способ поменять клавиши на Маке — открыть настройки клавиатуры. На первой вкладке внизу кнопка “Modifier Keys…”. Откроется диаложек, где можно указать, что на что заменить. Работает без перезагрузки в разрезе устройства. Однако этот способ подойдёт только неискушенным пользователям.
Первая проблема в том, что что среди доступных клавишей нет шифта. Это довольно странно: капс, контрол, альт и прочие доступны, а шифт — нет. Видимо, положение шифта кажется настолько “нормальным”, что разработчики решили: а что его менять? И не добавили в список. Что ж, трогать исходный шифт я и не собирался. Но назначить другой кнопке функцию шифта тоже нельзя, что очень печально.
Вторая проблема — диалог не различает правые и левые кнопки. Даже быстрый взгляд на клавиатуру доказывает, что она не симметрична, и поэтому у людей могут быть предпочтения из-за физиологии. У меня именно тот случай — правый и левый Command ведут себя по-разному (причину объясню ниже). Из-за обеих причин стандартный диалог мне не подошёл.
Под Мак написана программа Karabiner Elements (в прошлом — просто Karabiner). Это убер-комбайн, с помощью которого можно переназначить что угодно, в том числе задать хитрые комбинации и комбо. Например, медленное нажатие, быстрое, связку конкретных клавиш и прочее. Я долго им пользовался, и вот что меня смущало.
Во-первых, Karabiner явно испытывает трудности с операционной системой. Пару лет назад программа радикально обновилась как раз из-за изменений в Маке (то ли в Каталине, то ли другой версии, неважно). Во-вторых, я частенько ловил баги с клавиатурой, которые смутно указывали на Karabiner, и это стало напрягать.
Например, после выхода из сна клавиатура порой не работала — как внешняя, так встроенная в ноут. Или внизу экрана всплывало уведомление, что Karabiner не заработает, пока не нажмёшь такую-то кнопку. Эти баги трудно описать, потому что обычно на них нет времени, плюс поведение то одно, то другое. Но чем-то задним чувствуешь: так быть не должно.
Я стал искать замену Karabiner, и нашёл на удивление быстро. Нужно было только погуглить.
Встроенная утилита hidutil предлагает доступ к устройствам ввода. Это CLI-обертка над фреймворком HIDDriverKit. Аббревиатура HID означает Human Interface Device. Судя по документации, она доступна с версии ОС 10.15+, но я не проверял.
Hidutil читает и записывает свойства устройств. Нас интересует свойство UserKeyMapping — переназначение клавиш. Посмотреть текущее состояние можно так:
Скорей всего, вы увидите (null) или пустоту, потому что ещё ничего не переназначили.
Чтобы задать правила, укажите ключ —set . За ним следует JSON примерно такой структуры:
Это массив объектов с полями HIDKeyboardModifierMappingSrc и HIDKeyboardModifierMappingDst , с чего на что менять. Значения — полные коды клавиш. Полный код строится по правилу:
, где — краткий код клавиши. Таблица кодов находится на официальной странице Apple. Название “Keyboard Left/Right GUI” означает Command.
Таким образом, если мы хотим поменять левый Command на Alt, тело —set будет следующим:
В ответ утилита покажет новое соответствие клавиш. Его же можно запросить с помощью —get UserKeyMapping :
Способ работает без перезагрузки, не требует сторонних программ. Судя по всему, он заработает на новом чипе M1, в то время как у Karabiner проблемы с новым Маком. Это лишний раз говорит в пользу hidutils . Не хотелось бы покупать новый Мак и воевать с клавишами, которые внезапно отвалились.
Тот JSON, что вы состряпали, логично поместить куда-нибудь на GitHub или хотя бы в gist, чтобы не набирать с нуля. Вот ссылка на мой файл. Для красоты можно оформить JSON в несколько строк и как-то облагородить, но это в будущем.
Теперь объясню, какие кнопки я меняю на своей машине и какой в этом смысл. Предупреждаю, что это исключительно личный фактор, который ни к чему вас не обязывает. Ни в коем случае не топлю за то, чтобы все делали так же.
Комбинаций на самом деле немного, всего лишь три. Первая — замена Caps на Shift (0x700000039 → 0x7000000E1). Дело вот в чём: если я положу левую руку на WASD, то мизинец находится аккурат над Caps. А чтобы нажать шифт, его нужно спустить вниз. Поскольку шифт нужен примерно в тысячу раз чаще, чем капс, выбор очевиден — нужно повесить шифт на ту кнопку, что находится под мизинцем, чтобы не заставлять его перемещаться.
Да, мы лишаемся капса, но ничуть не сожалею об этом. Любой редактор умеет менять регистр по требованию. Кроме того, такая функция есть даже в главном меню Мака. Про замену капса на шифт я даже писал отдельную заметку.
Вторая комбинация — сменить правый Command на Alt (0x7000000E7 → 0x7000000E6). Должно быть, вы знаете, что я пользуюсь Емаксом. В нём две основные клавиши: Command и Meta, которые кратко обозначаются C и M. Их семантика примерно та же, что и у обычных Command и Alt. Это основная команда для буквенной клавиши (C-p, C-n) и модификация (M-p, M-n).
Обе C и M используются постоянно. Иногда я проделываю долгие комбо с зажатым Command, и большой палец сильно устает. Если добавить сюда Meta, который приходится на Alt, начинается боль в физическом смысле, потому что приходится подгибать палец. Открою интимный факт: два раза в год я делаю массаж спины и шеи, и в какой-то момент пришлось добавить левую кисть — вот до чего дошло.
Идея в том, чтобы максимально разгрузить левую руку. Для этого оставим ей на откуп только левый Command, а Meta повесим на правый Command. Это победа со всех сторон. Во-первых, теперь на C и M давят только большие, самые сильные пальцы. Во-вторых, их не нужно никуда подгибать: кнопки прямо под пальцами.
Третья и последняя замена — повесить на правый Alt функцию Control (0x7000000E6 → 0x7000000E4). Объяснение этому следующее. Мне часто приходится копировать текст из терминала, поэтому в iTerm2 у меня работают обычные комбинации Command-C/V . Возникает вопрос, как послать сигнал Ctrl-C , чтобы завершить процесс. Если вы посмотрите на клавиатуру, то станет ясно — нужно тянуться левым мизинцем к Control, что полный ужас для сустава: кисть поворачивается влево градусов на тридцать.
Мизинец — не лучший палец для комбинаций клавиш, ему можно доверить только одну буквенную. Более лучший способ — поручить Control большому пальцу правой руки. Поскольку правый Command уже занят под Alt из-за Емакса, повесим Control на соседнюю кнопку — правый Alt. Теперь достаточно сместить правый большой палец вправо. Впрочем, это случается редко, потому что на Маке почти все функции Control выполняет Command.
Вот такая у меня раскладка и как я к ней пришёл.
Я пишу этот пост несколько дней и заметил: с удалением Karabiner Elements исчезли подвисания после выхода ноута из сна. Считаю это важными поводом отказаться от программы.
С другой стороны, у hidutils тоже недостаток. Её эффект не сохраняется после перезагрузки машины. Чтобы это исправить, добавьте ваш скрипт в автозагрузку. Это можно сделать несколькими способами:
Открыть “Users & Groups” и выбрать своего пользователя. Во вкладке “Login Items” добавить путь к шелл-скрипту.
Положить в папку
/Library/LaunchAgents файл user.ivan.remap.plist примерно такого содержания:
Беглое знакомство с hidutils подсказывает, что утилита (и стоящий за ней фреймворк) могут довольно многое. Было бы здорово прописать опции не только клавиатуры, но и тачпада, мыши и так далее, чтобы не париться при смене ноута. Например, однажды я час искал нужную галочку для тачпада, а она оказалась в “Accessibility”.
Но графического интерфейса у hidutils нет. Вот если бы кто-то написал веб-страничку с конструктором опций на JavaScript. Указываешь, что изменить, а на выходе получаешь шелл-скрипт.
Поделитесь, какие клавиши изменяете вы и что для этого используете — добавлю ссылки в статью.
UPD
Нашли ошибку? Выделите мышкой и нажмите Ctrl/⌘+Enter
Источник