Mac의 키보드 오류를 수리없이 (일부) 해결하는 방법

나비 키보드를 채용하고 있는 최근의 Macbook에서는, 키보드를 눌러도 효과가 없는, 연타되어 버리는 등의 문제가 다수 보고되고 있습니다.

참고 : htps : //미 sc-ぉg. 코 m / 마 c 보오 kp

나의 Macbook에서는 보다에 의해 엔터키가 가끔 마음대로 연타되게 되어 버려, 채팅의 도중에 논의의 텍스트가 뜻밖에 투고되는 등, 이 증상에 꽤 괴로워졌습니다.
거기서, 키 컨피그를 편집하는 것으로, 생각하지 않는 연타를 꽤 정밀도 좋게 막을 수 있게 되는 방법을 발견했으므로 여기에서 공유합니다.

방법



Karabiner-Elements의 Complex Modifications를 이용합니다.
$HOME/.config/karabiner/assets/complex_modifications/ 아래에 JSON 파일을 만들고 다음 JSON을 붙여 넣습니다.

modification_example.json
{
  "title": "Mistaken enter double-tap to single tap",
  "rules": [
    {
      "description": "mistaken enter double-tap to single tap",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "return_or_enter",
            "modifiers": { "optional": [ "any" ] }
          },
          "to": [
          ],
          "to_delayed_action": {
            "to_if_invoked": [
              { "key_code": "return_or_enter" }
            ],
            "to_if_canceled": [
            ]
          }
        }
      ]
    }
  ]
}

그런 다음 Karabiner-Elements 설정 화면에서 Complex Modifications 탭을 열고 ➕Add rule 버튼을 누르면 추가 할 수있는 규칙 목록이 표시되므로 그 중에서 mistaken enter double-tap to single tap를 선택하고 ➕Enable 합니다.



해설



Karabiner는 keypush 이벤트가 각 프로세스에 통지되기 전에 주어진 규칙에 따라 발생하는 이벤트를 제어합니다.

이번 경우에는
          "from": {
            "key_code": "return_or_enter",
            "modifiers": { "optional": [ "any" ] }
          },
          "to": [
          ],

상기의 "from" 로 지정한 return_or_enter (엔터키)를 눌렀을 경우, "to" 로 지정한 이벤트가 본래 발행됩니다만, 여기가 공란이므로, key가 눌린 직후는 무엇 의 액션도 일어나지 않게 됩니다.
그런 다음 "to_delayed_action"의 평가가 실행됩니다.
          "to_delayed_action": {
            "to_if_invoked": [
              { "key_code": "return_or_enter" }
            ],
            "to_if_canceled": [
            ]
          }
"to_if_invoked""from" 로 지정한 키를 누른 후 일정 시간 추가 키 입력이 없는 경우에 실행됩니다."to_if_canceled""from" 로 지정한 키를 누른 후 일정 시간 이내에 추가 키 입력이 있을 때 실행됩니다.

키보드의 불편에 의한 연타는 거의 즉각적으로 일어나기 때문에, 연타가 일어났을 경우는 "to_if_canceled" 가 실행되어 최초의 keypress는 없었던 것이 됩니다. 그런 다음 연타의 두 번째 키프레스가 비슷한 규칙으로 평가되고 추가 입력이 없으면 엔터 키 입력이 활성화됩니다.

delayed_action의 실행 시간 튜닝


"to_delayed_action" 의 평가가 달릴 때까지의 시간이 너무 길면, 일반 유저의 입력에 의해서도 엔터키가 무효가 되어 버릴 우려가 있습니다. 또, 조금 "to_delayed_action" 가 달릴 때까지의 타임 러그를 느끼게 됩니다.
Karabiner-Elements는 해당 시간 간격을 매개 변수로 지정할 수 있으므로 원하는 숫자로 설정합시다.
이 설정 단체로 말하면, to_delayed_action_delay_milliseconds 를 15 정도로 설정하면 그다지 지연을 느끼지 않고 연타 방지의 효과도 얻을 수 있어 좋은 느낌이었습니다.



요약



키 코드를 바꾸면 임의의 키의 연타 방지에 사용할 수 있다고 생각합니다.
이것이 괴로워하는 Mac 사용자의 도움이 되길 바랍니다.

좋은 웹페이지 즐겨찾기