¿Es posible deshabilitar el conmutador de aplicaciones de la pestaña de comandos en Mac OS X Lion?


Respuestas:


6

Puede asignar la pestaña de comando a otra combinación de teclas con KeyRemap4MacBook :

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

Esto deshabilitaría command-tab y 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>

Gracias, esta es una buena pista. También es bueno saber que la reasignación a través de DefaultKeyBinding.dict es un callejón sin salida. Probaré KeyRemap4MacBook
Sean Mackesey el

1
Esto funcionó muy bien, gracias. En caso de que no esté claro para otros, debe agregar estas definiciones private.xmlen su propia <item>etiqueta debajo <root>. Luego, vuelva a cargar private.xmly alterne la nueva opción.
jrhorn424

Asegúrese de agregar un nombre y un identificador a la entrada <item> <name>Disable Command Tab</name> <identifier>private.disable_command_tab</identifier>
Willem D'Haeseleer

1

Puede hacerlo como nivel de ensamblaje. Para ML 10.8.3, este registro Cmd+ Tabocurre en la subrutina en la dirección 0x10000b258. En pseudocódigo, se ve así:

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

Entonces, si reemplaza los siguientes códigos de bytes:

488D35691C2C008B3BBA01000000B901000000E85CD71B0085C0741A488B0DD5FC2400488B39488D355B341C0089C230C0E892C51B00488D0563192C008B38488D352A1C2C00BA02000000B901000000E81FD71B0085C0741A488B0D98FC2400488B39488D3541341C0089C230C0E855C51B00

con:

90909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090

Y renuncie a su Dock.app, funcionará. También debe desproteger el binario Dock antes de hacerlo, ya que el binario Dock está encriptado.


55
¿Puedes hacer una copia de seguridad de tu respuesta con algún tipo de fuente? todo ese código puede ser confuso y objeto de desconfianza por parte de futuros lectores. espero que entiendas.
Lorenzo Von Matterhorn

1
Agregue también lo que hace el código original y el reemplazo (el desmontaje estaría bien en lo que a mí respecta)
vonbrand

3
Esta es una respuesta genial. Si bien la preocupación en los otros dos comentarios es probablemente válida, es una apuesta triste que todos los comentarios lo cuestionen, pero nadie señala que esto es bastante bueno. ¿Cómo sabe qué dirección de subrutina y cuál es el 090909? (no-op?)
Gal

0

¿Una respuesta aceptable incluiría reasignarlo ?

Mac OS X Lion (10.7) tiene dificultades para detectar la distribución del teclado cuando lo enchufé por primera vez. Pero después de seguir las instrucciones (es decir, presionar la tecla a la derecha de Shift izquierdo, etc.) identifica correctamente la distribución.

En Preferencias del sistema, Lion tiene un maravilloso panel de teclado:

Captura de pantalla del panel del teclado de Lion

A continuación, vaya a Teclas modificadoras ...

ingrese la descripción de la imagen aquí

Bingo, ahora CapsLock se comporta como Control.

O bien, podría intentar efectuar las asociaciones de teclas:

Edite el archivo de combinaciones de teclas predeterminado, ~ / Library / KeyBindings / DefaultKeyBinding.dict. Cree el directorio y / o el archivo si aún no están allí, y haga que se vea así:

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

Si ya hay entradas en DefaultKeyBinding.dict, simplemente agregue las 4 nuevas asignaciones anteriores a la sección principal de su archivo. Es posible que sea necesario reiniciar para que surta efecto.

Deberá ajustar el código anterior para lo que está tratando de hacer


1
Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Canadiense Luke

3
De acuerdo con el comentarista anterior: esta respuesta es demasiado indirecta. Agradezco su intento de respuesta, pero intente ser más directo. Siento que esta entrada probablemente confundirá a otros que encuentren esta pregunta en el futuro. Además, reasignar la tecla de comando completa a otra cosa no es una solución aceptable para mí, ya que uso la tecla de comando para muchas otras cosas. No puedo decir si el código que muestra en la segunda parte de su solución me permitiría desactivar selectivamente CMD + TAB, pero si puede, explique explícitamente.
Sean Mackesey

Reasignar la tecla de comando a Bloq Mayús es probablemente la mejor idea que podría ofrecer. Todavía obtienes la tecla de comando, y me sorprendería saber que en realidad estás usando el bloqueo de mayúsculas para algo. La segunda opción era demostrar la cantidad de trabajo que iba a tener que hacer si tiene una razón por la cual la manera fácil no funcionaría. Fuera de estos dos, no tengo nada más para ti. Le proporcioné las partes esenciales como Luke me recomendó.
Everett

De hecho, ya tengo CapsLock reasignado a Escape (¡esencial si usa Vim!). Gracias por tu esfuerzo, nuevamente te recomendaré que edites tu publicación. Simplemente enlace a algo sobre la reasignación de teclas modificadoras, para que los futuros navegadores no tengan que leer toda la explicación cuando sepan que esa solución no funcionará para ellos.
Sean Mackesey
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.