Alt + Shift как переключение языка в OS X

Вопрос или проблема

Есть ли способ привязать alt shift для переключения раскладок клавиатуры в OS X?

По умолчанию в OS X прокрутка раскладок клавиатуры определяется как ctrl+space. Эта настройка выключена в пользу триггера для Spotlight.

Чтобы изменить эту настройку по умолчанию, вам нужно перейти в Системные настройки->Устройства->Клавиатура и мышь->Горячие клавиши. Там вы найдете элемент списка для Меню ввода. Установите флажок, и он будет активирован. Затем дважды щелкните на предопределенную горячую клавишу с правой стороны списка. Как только существующая горячая клавиша будет выбрана и доступна для редактирования, вы можете ввести свою предпочтительную последовательность горячих клавиш.

К сожалению, alt+shift сами по себе не могут быть назначены как горячая клавиша. Вам нужно иметь клавишу, не являющуюся клавишей управления, в смеси. Ближайший вариант – использовать alt+z (используя ‘z’, которая находится рядом с shift на левой стороне клавиатуры). У вас также есть возможность установить горячую клавишу для обратного порядка прокрутки. alt+shift+z является естественным вариантом для этого.

Используйте Karabiner (первоначально KeyRemap4MacBook). Найдите option shift pc. Установка флажка в первом чекбоксе должна позволить вам переназначить на поведение ПК.

установка переключения языка в стиле ПК в Karabiner alt+shift

Настройщик клавиатуры Karabiner для OS X может переназначить alt-shift (или ctrl-shift) для переключения языков

Я обнаружил, что небольшая утилита MLSwitcher[2] позволит вам сделать именно это и отлично работает под macOS 10.13 High Sierra. Доступна бесплатно в App Store.

Больше информации здесь: http://bluezbox.com/mlswitcher2.html

Karabiner, упомянутый @wayfarer, решил мою проблему.
Вот правило для переназначения Ctrl-Shift на Ctrl-Space:

{
    "description": "Переключить язык ввода с помощью ctrl-shift",
    "manipulators": [
        {
            "from": {
                "key_code": "left_shift",
                "modifiers": {
                    "mandatory": [
                        "left_control"
                    ]
                }
            },
            "to": [
                {
                    "key_code": "spacebar",
                    "modifiers": [
                        "left_control"
                    ]
                } 
            ],
            "type": "basic"
        },
       {
            "from": {
                "key_code": "right_shift",
                "modifiers": {
                    "mandatory": [
                        "right_control"
                    ]
                }
            },
            "to": [
                {
                    "key_code": "spacebar",
                    "modifiers": [
                        "left_control"
                    ]
                } 
            ],
            "type": "basic"
        }
    ]
}

Я сделал это с помощью BetterTouchTool, используя опцию “Последовательности клавиш”,
и переназначив Alt+Shift на Cmd+Space (это моя комбинация клавиш для изменения языка).

Скриншот, показывающий переназначение BetterTouchTool от Alt+Shift к Cmd+Space

Также, если вы ищете Cmd+Shift, Punto Switcher (после отключения авто смены языка) может привязать переключение языка к Cmd+Shift.

Я изменил свою на \, что почти соответствует altshift, просто сдвинутой на одну клавишу вправо (работает с моей международной клавиатурой macbookpro, американская клавиатура имеет более длинный левый shift, а клавиша \ находится выше клавиши )

В некоторых регионах сочетание клавиш command-space и option-command-space по умолчанию меняет источники ввода. Вы можете включить или изменить комбинации клавиш в Системных настройках:

Записчики горячих клавиш не позволяют вводить сочетания клавиш, такие как option-shift. Если вы действительно хотите использовать option-shift, вы можете переназначить его на комбинацию клавиш, такую как option-command-space с помощью KeyRemap4MacBook. Это срабатывает, когда вы отпускаете shift:

<autogen>__KeyOverlaidModifier__ KeyCode::SHIFT_L, ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::NONE, KeyCode::SHIFT_L, ModifierFlag::OPTION_L, KeyCode::SPACE, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L</autogen>
<autogen>__KeyOverlaidModifier__ KeyCode::SHIFT_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::NONE, KeyCode::SHIFT_R, ModifierFlag::OPTION_R, KeyCode::SPACE, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L</autogen>

Это срабатывает, когда вы нажимаете shift, но требует нажатия shift перед option для сочетаний клавиш, таких как option-shift-[:

<autogen>__KeyToKey__ KeyCode::SHIFT_L | ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L | ModifierFlag::NONE, KeyCode::SPACE, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L</autogen>
<autogen>__KeyToKey__ KeyCode::SHIFT_R | ModifierFlag::SHIFT_R | ModifierFlag::OPTION_R | ModifierFlag::NONE, KeyCode::SPACE, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L</autogen>

Это требует одновременного нажатия option и shift:

<autogen>__SimultaneousKeyPresses__ KeyCode::OPTION_L, KeyCode::SHIFT_L, KeyCode::SPACE, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L</autogen>
<autogen>__SimultaneousKeyPresses__ KeyCode::OPTION_R, KeyCode::SHIFT_R, KeyCode::SPACE, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L</autogen>

Я также столкнулся с этой проблемой, поэтому создал небольшое приложение в трее, которое переназначает стандартное сочетание клавиш на Ctrl + Shift или CMD + Shift:

скриншот

Вот ссылка на GitHub LayoutSwitcher

Punto Switcher решила мою проблему с переключением AltShift и это бесплатное приложение.
LayoutSwitcher – не работает с моим M1 mac.
BetterTouchTool не бесплатный.

На ноябрь 2024 года я нашел лучшее решение для переключения источников ввода, используя Karabiner input_source_if. Теперь я могу просто нажать, скажем, left_command 1 раз, чтобы переключиться на input_source. Моя текущая настройка следующая:

  1. left_command → English(Unicode Hex Input)
  2. left_option → Thai
  3. right_option → Japanese
{
  "description": "LCommand, LOption, RControl : Unicode, Thai, Japanese",
  "manipulators": [
    {
      "conditions": [
        {
          "input_sources": [
            {
              "input_source_id": "com.apple.keylayout.Thai"
            }
          ],
          "type": "input_source_if"
        }
      ],
      "from": {
        "key_code": "left_command",
        "modifiers": {
          "optional": [
            "any"
          ]
        }
      },
      "parameters": {
        "basic.to_if_held_down_threshold_milliseconds": 100
      },
      "to": [
        {
          "key_code": "left_command",
          "lazy": true
        }
      ],
      "to_if_alone": [
        {
          "select_input_source": {
            "input_source_id": "com.apple.keylayout.UnicodeHexInput"
          }
        }
      ],
      "to_if_held_down": [
        {
          "key_code": "left_command"
        }
      ],
      "type": "basic"
    },
    {
      "conditions": [
        {
          "input_sources": [
            {
              "language": "ja"
            }
          ],
          "type": "input_source_if"
        }
      ],
      "from": {
        "key_code": "left_command",
        "modifiers": {
          "optional": [
            "any"
          ]
        }
      },
      "parameters": {
        "basic.to_if_held_down_threshold_milliseconds": 100
      },
      "to": [
        {
          "key_code": "left_command",
          "lazy": true
        }
      ],
      "to_if_alone": [
        {
          "select_input_source": {
            "input_source_id": "com.apple.keylayout.UnicodeHexInput"
          }
        }
      ],
      "to_if_held_down": [
        {
          "key_code": "left_command"
        }
      ],
      "type": "basic"
    },
    {
      "conditions": [
        {
          "input_sources": [
            {
              "input_source_id": "com.apple.keylayout.UnicodeHexInput"
            }
          ],
          "type": "input_source_if"
        }
      ],
      "from": {
        "key_code": "left_option",
        "modifiers": {
          "optional": [
            "any"
          ]
        }
      },
      "parameters": {
        "basic.to_if_held_down_threshold_milliseconds": 100
      },
      "to": [
        {
          "key_code": "left_option",
          "lazy": true
        }
      ],
      "to_if_alone": [
        {
          "select_input_source": {
            "input_source_id": "com.apple.keylayout.Thai",
            "language": "th"
          }
        }
      ],
      "to_if_held_down": [
        {
          "key_code": "left_option"
        }
      ],
      "type": "basic"
    },
    {
      "conditions": [
        {
          "input_sources": [
            {
              "language": "ja"
            }
          ],
          "type": "input_source_if"
        }
      ],
      "from": {
        "key_code": "left_option",
        "modifiers": {
          "optional": [
            "any"
          ]
        }
      },
      "parameters": {
        "basic.to_if_held_down_threshold_milliseconds": 100
      },
      "to": [
        {
          "key_code": "left_option",
          "lazy": true
        }
      ],
      "to_if_alone": [
        {
          "select_input_source": {
            "input_source_id": "com.apple.keylayout.Thai",
            "language": "th"
          }
        }
      ],
      "type": "basic"
    },
    {
      "conditions": [
        {
          "input_sources": [
            {
              "input_source_id": "com.apple.keylayout.UnicodeHexInput"
            }
          ],
          "type": "input_source_if"
        }
      ],
      "from": {
        "key_code": "right_control",
        "modifiers": {
          "optional": [
            "any"
          ]
        }
      },
      "parameters": {
        "basic.to_if_held_down_threshold_milliseconds": 100
      },
      "to": [
        {
          "key_code": "right_control",
          "lazy": true
        }
      ],
      "to_if_alone": [
        {
          "key_code": "japanese_kana"
        }
      ],
      "to_if_held_down": [
        {
          "key_code": "right_control"
        }
      ],
      "type": "basic"
    },
    {
      "conditions": [
        {
          "input_sources": [
            {
              "input_source_id": "com.apple.keylayout.Thai"
            }
          ],
          "type": "input_source_if"
        }
      ],
      "from": {
        "key_code": "right_control",
        "modifiers": {
          "optional": [
            "any"
          ]
        }
      },
      "parameters": {
        "basic.to_if_held_down_threshold_milliseconds": 100
      },
      "to": [
        {
          "key_code": "right_control",
          "lazy": true
        }
      ],
      "to_if_alone": [
        {
          "key_code": "japanese_kana"
        }
      ],
      "to_if_held_down": [
        {
          "key_code": "right_control"
        }
      ],
      "type": "basic"
    },
    {
      "conditions": [
        {
          "input_sources": [
            {
              "input_source_id": "com.apple.keylayout.UnicodeHexInput"
            }
          ],
          "type": "input_source_if"
        }
      ],
      "from": {
        "key_code": "right_option",
        "modifiers": {
          "optional": [
            "any"
          ]
        }
      },
      "parameters": {
        "basic.to_if_held_down_threshold_milliseconds": 100
      },
      "to": [
        {
          "key_code": "right_option",
          "lazy": true
        }
      ],
      "to_if_alone": [
        {
          "select_input_source": {
            "input_mode_id": "com.apple.inputmethod.Japanese",
          "input_source_id": "com.google.inputmethod.Japanese.base",
          "language": "ja"
          }
        }
      ],
      "to_if_held_down": [
        {
          "key_code": "right_option"
        }
      ],
      "type": "basic"
    },
    {
      "conditions": [
        {
          "input_sources": [
            {
              "input_source_id": "com.apple.keylayout.Thai"
            }
          ],
          "type": "input_source_if"
        }
      ],
      "from": {
        "key_code": "right_option",
        "modifiers": {
          "optional": [
            "any"
          ]
        }
      },
      "parameters": {
        "basic.to_if_held_down_threshold_milliseconds": 100
      },
      "to": [
        {
          "key_code": "right_option",
          "lazy": true
        }
      ],
      "to_if_alone": [
        {
          "select_input_source": {
            "input_mode_id": "com.apple.inputmethod.Japanese",
          "input_source_id": "com.google.inputmethod.Japanese.base",
          "language": "ja"
          }
        }
      ],
      "to_if_held_down": [
        {
          "key_code": "right_option"
        }
      ],
      "type": "basic"
    }
  ]
}

PS. Я использовал https://github.com/hatashiro/kawa некоторое время, но это не позволяет назначать нажатия, как Karabiner.

Ответ или решение

На операционной системе macOS (OS X) по умолчанию переключение раскладки клавиатуры назначено на сочетание клавиш Control + Space. Однако, многие пользователи предпочли бы использовать сочетание клавиш Alt + Shift, которое является более привычным, особенно для тех, кто использует Windows. В этой статье мы рассмотрим, как можно настроить переключение раскладок на вашем Mac с использованием сочетания Alt + Shift или аналогичных комбинаций.

Шаги для изменения настроек переключения раскладок

  1. Открытие системных настроек:

    • Перейдите в меню Системные настройки (System Preferences).
    • Выберите раздел Клавиатура (Keyboard).
    • Перейдите на вкладку Сочетания клавиш (Keyboard Shortcuts).
  2. Настройка сочетаний клавиш для переключения раскладок:

    • В списке слева найдите и выберите элемент Ввод текста (Input Sources).
    • Убедитесь, что галочка на "Показать меню ввода в строке меню" (Show Input menu in menu bar) активирована.
    • Затем дважды нажмите на предустановленное сочетание клавиш справа от пункта Переключение источника ввода (Select next source) и измените его на Alt + Shift. Обратите внимание, что по умолчанию это может не сработать из-за ограничения системы — сочетание Alt + Shift может быть недоступно для назначения.

Альтернативные решения

Если Alt + Shift не разрешено для назначения, можно рассмотреть использование дополнительных программ:

  1. Karabiner:

    • Karabiner Elements (бесплатный инструмент) предоставляет множество возможностей для переназначения клавиш. Вы можете настроить сочетание Alt + Z или даже использовать комбинации с Shift, создавая правила, которые будут переключать раскладки.
    • Например, можно создать правило, которое заставляет Ctrl + Shift работать как Ctrl + Space для переключения раскладки.
  2. BetterTouchTool:

    • Это более функциональный инструмент, который вы можете использовать для создания отдельных сочетаний клавиш, включая эмуляцию нажатия Cmd + Space при нажатии Alt + Shift. Однако программа платная, но предлагает пробный период.
  3. MLSwticher:

    • Это небольшая утилита, которая позволяет настроить переключение раскладок с помощью Alt + Shift на macOS 10.13 High Sierra и выше. Утилита доступна в App Store.
  4. Punto Switcher:

    • Программа, популярная в русскоязычных странах, предоставляет отличную функциональность для автоматического и ручного переключения языков, включая использование Cmd + Shift.

Заключение

В заключение, хотя macOS изначально не поддерживает прямую настройку сочетания клавиш Alt + Shift для переключения раскладок, существует множество способов обойти это ограничение. Использование приложений, таких как Karabiner или MLSwitcher, может значительно улучшить вашу производительность, направляя ваши предпочтения к привычным методам работы. Выбор подходящего инструмента зависит от ваших личных предпочтений и требования к кастомизации.

Оцените материал
Добавить комментарий

Капча загружается...