Mac OS X Lion에서 명령 탭 응용 프로그램 스위처를 비활성화 할 수 있습니까?


답변:


6

KeyRemap4MacBook을 사용 하여 명령 탭을 다른 키 조합에 매핑 할 수 있습니다 .

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

이렇게하면 command-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을 시도합니다
Sean Mackesey

1
감사합니다. 다른 사람에게 명확하지 않은 경우이 정의를 private.xml의 자체 <item>태그 에 추가해야합니다 <root>. 그런 다음 private.xml새 옵션을 다시로드 하고 전환하십시오.
jrhorn424 5

<item> 항목에 이름과 식별자를 추가하십시오 <name>Disable Command Tab</name> <identifier>private.disable_command_tab</identifier>
Willem D' Haeseleer

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

따라서 다음 바이트 코드를 교체하면

488D35691C2C008B3BBA01000000B901000000E85CD71B0085C0741A488B0DD5FC2400488B39488D355B341C0089C230C0E892C51B00488D0563192C008B38488D352A1C2C00BA02000000B901C03BD88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B88B185

와:

90909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090

Dock.app을 사임하면 작동합니다. Dock 바이너리가 암호화되어 있으므로 Dock 바이너리를 보호 해제해야합니다.


5
어떤 종류의 출처로 답을 백업 해 주시겠습니까? 미래의 독자들은이 코드를 혼동하고 불신의 대상이 될 수 있습니다. 이해하시기 바랍니다.
Lorenzo Von Matterhorn

1
또한 추가 것을 원래의 코드가 수행하고 교체 (분해 미세까지 내가 걱정으로 될 것이다)
vonbrand

3
이것은 꽤 멋진 답변입니다. 다른 두 의견에 대한 우려는 아마도 유효하지만 모든 의견이 그것에 대해 의문을 제기하는 것은 슬픈 일이지만, 아무도 이것이 멋지다고 지적하지 않습니다. 어떤 서브 루틴 주소를 어떻게 알 수 있으며 090909는 무엇입니까? (no-op?)
Gal

0

허용되는 답변에 다시 매핑 이 포함 됩니까 ?

Mac OS X Lion (10.7)은 키보드를 처음 연결했을 때 키보드 레이아웃을 감지하는 데 어려움이 있습니다. 그러나 지침을 따른 후 (예 : 왼쪽 Shift 오른쪽의 키를 누르는 등) 레이아웃을 올바르게 식별합니다.

시스템 환경 설정에서 Lion은 훌륭한 키보드 패널을 가지고 있습니다 :

라이온 키보드 패널의 스크린 샷

그런 다음 수정 자 키로 이동합니다…

여기에 이미지 설명을 입력하십시오

빙고, 이제 CapsLock이 컨트롤로 작동합니다.

또는 키 바인딩을 시도하고 적용 할 수 있습니다.

기본 키 바인딩 파일 인 ~ / 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
이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
Canadian Luke

3
위의 논평자에 동의하십시오-이 답변은 너무 우회적입니다. 귀하의 답변에 감사 드리지만보다 직접적으로 노력하십시오. 이 항목이 앞으로이 질문을 찾는 다른 사람들을 혼란스럽게 할 것 같습니다. 또한 명령 키를 다른 많은 용도로 사용하기 때문에 전체 명령 키를 다른 것으로 다시 매핑하는 것은 받아 들일만한 해결책이 아닙니다. 솔루션의 두 번째 부분에 표시하는 코드로 CMD + TAB을 선택적으로 비활성화 할 수 있는지 알 수는 없지만 어떻게 명시 적으로 설명 할 수 있습니까?
Sean Mackesey

Caps Lock에 명령 키를 다시 매핑하는 것이 아마도 내가 제공 할 수있는 가장 좋은 아이디어 일 것입니다. 여전히 명령 키가 표시되며 실제로 Caps Lock을 사용하고 있다는 소식을 듣고 기뻤습니다. 두 번째 옵션은 쉬운 방법이 효과가없는 이유가있는 경우해야 할 작업량을 보여주는 것입니다. 이 두 가지 외에는 다른 것이 없습니다. 누가가 추천 한대로 필수 부분을 제공했습니다.
Everett

실제로 CapsLock이 이미 Escape로 다시 매핑되어 있습니다 (Vim을 사용하는 경우 필수)! 노력해 주셔서 감사합니다. 다시 글을 편집하는 것이 좋습니다. 수정 키를 다시 매핑하는 것과 관련이있는 링크 만 있으면 향후 브라우저에서 해당 솔루션이 작동하지 않는다는 사실을 알고있을 때 전체 설명을 살펴볼 필요가 없습니다.
Sean Mackesey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.