Можно ли отключить переключатель приложений с вкладками команд в Mac OS X Lion?


Ответы:


6

Вы можете сопоставить командную вкладку с другой комбинацией клавиш с KeyRemap4MacBook :

<autogen>__KeyToKey__ KeyCode::TAB, VK_COMMAND | ModifierFlag::NONE, KeyCode::F19</autogen>

Это отключило бы tab-tab и shift-command-tab:

<autogen>__KeyToKey__ KeyCode::TAB, VK_COMMAND | ModifierFlag::NONE, KeyCode::VK_NONE</autogen>
<autogen>__KeyToKey__ KeyCode::TAB, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::VK_NONE</autogen>

Спасибо, это хороший пример. Также хорошо знать, что переназначение через DefaultKeyBinding.dict является тупиком. Я попробую KeyRemap4MacBook
Шон Маккези

1
Это сработало отлично, спасибо. В случае, если это не понятно другим, вам нужно добавить эти определения private.xmlв его собственный <item>тег <root>. Затем перезагрузите private.xmlи переключите новую опцию.
jrhorn424

Обязательно добавьте имя и идентификатор к записи <item> <name>Disable Command Tab</name> <identifier>private.disable_command_tab</identifier>
Виллем Д'Азелер,

1

Вы можете сделать это как уровень сборки. Для ML 10.8.3 эта Cmd+ Tabрегистрация происходит в подпрограмме по адресу 0x10000b258. В псевдокоде это выглядит так:

rax = CPSRegisterForKeyOnConnection(*(int32_t *)rbx, 0x1002cd078, 0x1, 0x1);
if (rax != 0x0) {
    fprintf(**__stderrp, "Error registering cmd-tab key, %d\\n");
}
rax = CPSRegisterForKeyOnConnection(*(int32_t *)0x1002ccda8, 0x1002cd078, 0x2, 0x1);
if (rax != 0x0) {
    fprintf(**__stderrp, "Error registering cmd-shift-tab key, %d\\n");
}

Так что если вы замените следующие байтовые коды:

488D35691C2C008B3BBA01000000B901000000E85CD71B0085C0741A488B0DD5FC2400488B39488D355B341C0089C230C0E892C51B00488D0563192C008B38488D352A1C2C00BA02000000B901000000E81FD71B0085C0741A488B0D98FC2400488B39488D3541341C0089C230C0E855C51B00

с:

90909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090

И оставь свой Dock.app, он будет работать. Вы также должны снять защиту с двоичного файла Dock перед тем, как сделать это, поскольку двоичный файл Dock зашифрован.


5
не могли бы вы сделать резервную копию своего ответа с каким-то источником, пожалуйста? весь этот код может сбивать с толку и вызывать недоверие у будущих читателей. надеюсь, вы понимаете.
Лоренцо фон Маттерхорн

1
Также добавьте, что делает оригинальный код, и замену (разборка была бы
хороша,

3
Это довольно крутой ответ. Хотя беспокойство в двух других комментариях, вероятно, справедливо, очень грустно, что все комментарии ставят его под сомнение, но никто не отмечает, что это довольно круто. Как узнать, какой адрес подпрограммы и что такое 090909? (no-op?)
Гал

0

Будет ли приемлемый ответ включать в себя изменение его?

Mac OS X Lion (10.7) испытывает трудности с обнаружением раскладки клавиатуры, когда я впервые подключил ее. Но после следования инструкциям (т.е. нажмите клавишу справа от сдвига влево и т. Д.), Он правильно определяет раскладку.

В Системных настройках у Lion есть замечательная клавиатурная панель:

Снимок экрана панели клавиатуры Lion

Затем перейдите к ключам модификаторов ...

введите описание изображения здесь

Бинго, теперь CapsLock ведет себя как Control.

Или вы можете попробовать связать клавиши:

Отредактируйте файл привязок по умолчанию, ~ / Library / KeyBindings / DefaultKeyBinding.dict. Создайте каталог и / или файл, если их там еще нет, и сделайте так, чтобы он выглядел следующим образом:

{
  /* Remap Home / End to be correct */
  "\UF729" = "moveToBeginningOfLine:"; /* Home */
  "\UF72B" = "moveToEndOfLine:"; /* End */
  "$\UF729" = "moveToBeginningOfLineAndModifySelection:"; /* Shift + Home */
  "$\UF72B" = "moveToEndOfLineAndModifySelection:"; /* Shift + End */
}

Если в DefaultKeyBinding.dict уже есть записи, просто добавьте 4 новых сопоставления выше в основной раздел вашего файла. Перезагрузка может потребоваться, чтобы это вступило в силу.

Вам нужно будет настроить приведенный выше код для того, что вы пытаетесь сделать


1
Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить сюда основные части ответа и предоставить ссылку для справки.
канадец Люк

3
Согласитесь с вышеупомянутым комментатором - этот ответ слишком окольный. Я ценю вашу попытку ответа, но, пожалуйста, постарайтесь быть более прямым. Я чувствую, что эта запись просто может сбить с толку других, которые найдут этот вопрос в будущем. Кроме того, переназначение всего командного ключа на что-то другое не является приемлемым решением для меня, поскольку я использую командный ключ для многих других вещей. Я не могу сказать, позволит ли код, который вы показываете во второй части вашего решения, позволить мне выборочно отключить CMD + TAB, но, если он может объяснить, как это явно.
Шон Маккези

Возможно, лучшая идея, которую я могу предложить, - переназначить командную клавишу на Caps Lock. Вы все еще получаете командный ключ, и я был бы ошеломлен, услышав, что вы действительно используете заглавные буквы для чего-то. Второй вариант заключался в демонстрации объема работы, которую вы должны были выполнить, если у вас есть причина, по которой простой способ не сработает. Помимо этих двух, у меня больше ничего нет для вас. Я предоставил необходимые части, как рекомендовал Люк.
Эверетт

У меня уже есть CapsLock, переназначенный на Escape (обязательно, если вы используете Vim!). Спасибо за ваши усилия, я снова рекомендую вам отредактировать ваш пост. Пожалуйста, просто дайте ссылку на что-нибудь о переназначении клавиш-модификаторов, чтобы будущим браузерам не приходилось разбираться со всем объяснением, когда они знали, что это решение не будет работать для них.
Шон Маккези
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.