É possível desativar o alternador de aplicativos da guia de comando no Mac OS X Lion?

11

Esse atalho me deixa louco. Gostaria de remapear a guia de comando para inserção de trechos durante a codificação, mas o comutador fica no caminho ...

Sean Mackesey
fonte
possível duplicado. superuser.com/questions/548146/...
Daniel Dropik

Respostas:

6

Você pode mapear a guia de comando para outra combinação de teclas com o KeyRemap4MacBook :

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

Isso desabilitaria a guia de comando e a tecla 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>
Lri
fonte
Obrigado, esta é uma boa pista. Também é bom saber que o remapeamento via DefaultKeyBinding.dict é um beco sem saída. Eu vou experimentar o KeyRemap4MacBook
Sean Mackesey
1
Isso funcionou muito bem, obrigado. Caso não esteja claro para outras pessoas, você precisará adicionar essas definições private.xmlem sua própria <item>tag em <root>. Em seguida, recarregue private.xmle alterne a nova opção.
Jrhorn424
Certifique-se de adicionar um nome e um identificador à entrada <item> <name>Disable Command Tab</name> <identifier>private.disable_command_tab</identifier>
Willem D'Haeseleer
1

Você pode fazer isso como o nível da montagem. Para ML 10.8.3, este Cmd+ Tabinscrição acontece em sub-rotina no endereço 0x10000b258. No pseudo-código, ele se parece com:

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");
}

Portanto, se você substituir os seguintes códigos de bytes:

488D35691C2C008B3BBA01000000B901000000E85CD71B0085C0741A488B0DD5FC2400488B39488D355B341C0089C230C0E892C51B00488D0563192C008B38488D352A1C2C00BA02000000B901000000E81FD71B0085C0741A488B0D98FC2400488B39488D3541341C0089C230C0E855C51B00

com:

909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090

E renuncie ao seu Dock.app, ele funcionará. Você também precisa desproteger o binário do Dock antes de fazer isso, pois o binário do Dock é criptografado.

user2199684
fonte
5
você pode fazer o backup de sua resposta com algum tipo de fonte, por favor? todo esse código pode ser confuso e objeto de desconfiança por futuros leitores. espero que você entenda.
Lorenzo Von Matterhorn
1
Além disso, adicione o que o código original faz, e a substituição (desmontagem seria ótimo, tanto quanto eu estou preocupado)
vonbrand
3
Essa é uma resposta bem legal. Embora a preocupação nos outros dois comentários seja provavelmente válida, é lamentável que todos os comentários o questionem, mas ninguém ressalta que isso é bem legal. Como você sabe qual endereço de sub-rotina e qual é o 090909? (no-op?)
Gal
0

Uma resposta aceitável incluiria remapear ?

O Mac OS X Lion (10.7) tem dificuldade em detectar o layout do teclado quando o pluguei pela primeira vez. Mas depois de seguir as instruções (por exemplo, pressione a tecla à direita do Shift esquerdo, etc.), ele identifica corretamente o layout.

Nas Preferências do Sistema, o Lion possui um maravilhoso painel de teclado:

Captura de tela do painel do teclado do Lion

Em seguida, vá para Teclas modificadoras…

insira a descrição da imagem aqui

Bingo, agora o CapsLock se comporta como controle.

Ou, você pode tentar efetuar as associações de teclas:

Edite o arquivo de combinações de teclas padrão, ~ / Library / KeyBindings / DefaultKeyBinding.dict. Crie o diretório e / ou o arquivo se eles ainda não estiverem lá e faça com que seja assim:

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

Se já houver entradas em DefaultKeyBinding.dict, adicione os 4 novos mapeamentos acima à seção principal do seu arquivo. Uma reinicialização pode ser necessária para que ela entre em vigor.

Você precisará ajustar o código acima para o que você está tentando fazer

Everett
fonte
1
Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
Canadian Luke
3
Concorde com o comentarista acima - essa resposta é muito indireta. Agradeço sua tentativa de resposta, mas tente ser mais direto. Sinto que essa entrada provavelmente confundirá outras pessoas que encontrarem essa pergunta no futuro. Além disso, remapear a chave de comando inteira para outra coisa não é uma solução aceitável para mim, pois uso a chave de comando para muitas outras coisas. Não sei dizer se o código que você mostra na segunda parte da sua solução me permitiria desativar seletivamente o CMD + TAB, mas, se puder, explique-o explicitamente.
26812 Sean Mackesey
Remapear a chave de comando para Caps Lock é provavelmente a melhor ideia que eu poderia oferecer. Você ainda recebe a tecla de comando, e eu ficaria surpreso ao saber que você está realmente usando caps lock para alguma coisa. A segunda opção era demonstrar a quantidade de trabalho que você teria que fazer se tiver uma razão pela qual a maneira mais fácil não funcionará. Fora desses dois, não tenho mais nada para você. Forneci as partes essenciais, como Luke recomendou.
Everett
Na verdade, já tenho o CapsLock remapeado para o Escape (essencial se você usa o Vim!). Obrigado pelo seu esforço. Mais uma vez, recomendo que você edite sua postagem. Basta vincular algo sobre o remapeamento de chaves modificadoras, para que futuros navegadores não precisem percorrer toda a explicação quando souberem que essa solução não funcionará para eles.
26512 Sean Seaneseese