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.