Ist es möglich, den Befehlsregisterkarten-Anwendungsumschalter in Mac OS X Lion zu deaktivieren?


Antworten:


6

Mit KeyRemap4MacBook können Sie die Befehlsregisterkarte einer anderen Tastenkombination zuordnen :

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

Dies würde die Befehlsregisterkarte und die Umschaltbefehlsregisterkarte deaktivieren:

<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>

Danke, das ist ein guter Hinweis. Es ist auch gut zu wissen, dass das Neuzuordnen über DefaultKeyBinding.dict eine Sackgasse ist. Ich werde KeyRemap4MacBook
Sean Mackesey

1
Das hat super funktioniert, danke. Falls es anderen nicht klar ist, müssen Sie diese Definitionen private.xmlin einem eigenen <item>Tag unter hinzufügen <root>. Laden Sie dann private.xmldie neue Option neu und schalten Sie sie um.
jrhorn424

<name>Disable Command Tab</name> <identifier>private.disable_command_tab</identifier>
Stellen

1

Sie können dies als Baugruppenebene tun. Für ML 10.8.3 erfolgt diese Cmd+ TabRegistrierung im Unterprogramm unter der Adresse 0x10000b258. Im Pseudocode sieht es so aus:

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

Wenn Sie also die folgenden Bytecodes ersetzen:

488D35691C2C008B3BBA01000000B901000000E85CD71B0085C0741A488B0DD5FC2400488B39488D355B341C0089C230C0E892C51B00488D0563192C008B38488D352A1C2C00BA02000000B901000000E81FD71B0085C0741A488B0D98FC2400488B39488D3541341C0089C230C0E855C51B00

mit:

909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090

Und kündigen Sie Ihre Dock.app, es wird funktionieren. Sie müssen auch den Schutz der Dock-Binärdatei aufheben, bevor Sie dies tun, da die Dock-Binärdatei verschlüsselt ist.


5
Können Sie bitte Ihre Antwort mit einer Quelle sichern? All dieser Code kann für zukünftige Leser verwirrend und misstrauisch sein. Ich hoffe du verstehst.
Lorenzo Von Matterhorn


3
Das ist eine ziemlich coole Antwort. Während die Besorgnis in den anderen beiden Kommentaren wahrscheinlich gültig ist, ist es ein trauriges Gebot, dass alle Kommentare es in Frage stellen, aber niemand weist darauf hin, dass dies ziemlich cool ist. Woher wissen Sie, welche Unterprogrammadresse und wie lautet die 090909? (no-op?)
Gal

0

Würde eine akzeptable Antwort das Neuzuordnen beinhalten ?

Mac OS X Lion (10.7) hat Schwierigkeiten, das Tastaturlayout zu erkennen, als ich es zum ersten Mal angeschlossen habe. Nachdem Sie jedoch die Anweisungen befolgt haben (z. B. die Taste rechts neben der linken Umschalttaste drücken usw.), wird das Layout korrekt identifiziert.

In den Systemeinstellungen verfügt Lion über ein wunderbares Tastaturfeld:

Screenshot von Lion's Tastaturbedienfeld

Gehen Sie als nächstes zu Modifier Keys…

Geben Sie hier die Bildbeschreibung ein

Bingo, jetzt verhält sich CapsLock wie Control.

Oder Sie könnten versuchen, die Tastenkombinationen zu bewirken:

Bearbeiten Sie die Standard-Keybindings-Datei ~ / Library / KeyBindings / DefaultKeyBinding.dict. Erstellen Sie das Verzeichnis und / oder die Datei, falls diese noch nicht vorhanden sind, und lassen Sie sie folgendermaßen aussehen:

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

Wenn in DefaultKeyBinding.dict bereits Einträge vorhanden sind, fügen Sie einfach die 4 neuen Zuordnungen oben zum Hauptabschnitt Ihrer Datei hinzu. Möglicherweise ist ein Neustart erforderlich, damit er wirksam wird.

Sie müssen den obigen Code an das anpassen, was Sie versuchen


1
Während dies theoretisch die Frage beantworten kann, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Kanadier Luke

3
Stimmen Sie dem obigen Kommentator zu - diese Antwort ist viel zu umständlich. Ich schätze Ihre versuchte Antwort, aber bitte versuchen Sie, direkter zu sein. Ich denke, dieser Eintrag wird wahrscheinlich andere verwirren, die diese Frage in Zukunft finden. Außerdem ist es für mich keine akzeptable Lösung, die gesamte Befehlstaste einer anderen zuzuordnen, da ich die Befehlstaste für viele andere Dinge verwende. Ich kann nicht sagen, ob der Code, den Sie im zweiten Teil Ihrer Lösung anzeigen, es mir ermöglichen würde, CMD + TAB selektiv zu deaktivieren, aber wenn dies möglich ist, erklären Sie bitte, wie explizit.
Sean Mackesey

Das Neuzuordnen der Befehlstaste zu der Feststelltaste ist wahrscheinlich die beste Idee, die ich anbieten kann. Sie erhalten immer noch die Befehlstaste, und ich wäre fassungslos zu hören, dass Sie tatsächlich die Feststelltaste für etwas verwenden. Die zweite Möglichkeit bestand darin, den Arbeitsaufwand zu demonstrieren, der erforderlich ist, wenn Sie einen Grund haben, warum der einfache Weg nicht funktioniert. Außer diesen beiden habe ich nichts anderes für dich. Ich lieferte die wesentlichen Teile, wie Luke empfohlen hatte.
Everett

Ich habe CapsLock bereits auf Escape neu zugeordnet (wichtig, wenn Sie Vim verwenden!). Vielen Dank für Ihre Mühe. Ich werde Ihnen jedoch erneut empfehlen, Ihren Beitrag zu bearbeiten. Bitte verlinken Sie einfach auf etwas über das Neuzuordnen von Modifikatortasten, damit zukünftige Browser nicht die gesamte Erklärung durchgehen müssen, wenn sie wissen, dass diese Lösung für sie nicht funktioniert.
Sean Mackesey
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.