특정 키에 대해서만 바운스 키를 활성화 할 수 있습니까?


8

랩톱에서 스페이스 바의 키 입력이 반복되는 지속적인 문제가 있습니다. 여러 운영 체제를 사용하는 것뿐만 아니라 여러 번의 교체를 거친 결과 문제는 소프트웨어가 아니라 하드웨어에 해당한다고 판단했습니다.

운 좋게도 우분투에는 바운스 키라는 기능이있어 반복되는 키 입력이 필터링되므로 문제를 해결할 수 있습니다.

그러나 모든 키에 대한 솔루션을 활성화하면 필터링하지 않으려는 키를 필터링하는 경우가 있습니다. 예를 들어, hello를 입력하면 종종 두 개의 l 을 빠르게 연속해서 누르지 만 때로는 l 중 하나 가 필터링되므로 상당히 성 가실 수 있습니다. 스페이스 바를 두 번 연속으로 빠르게 누를 필요가 없다는 것을 알고 있으며 스페이스 바에 만 문제가 있기 때문에 스페이스 바에서 바운스 키만 활성화하고 싶습니다.

그래서, 그것은 할 수 있습니다 스페이스 바를 바운스 키를 사용 하시겠습니까?


몇 번이나 반복 했습니까? 매번 발생합니까?
daltonfury42

매번 발생하지는 않지만 상당히 성가신 것으로 충분합니다. 나는 한 단락에서 세 번 정도 일어난다 고 말하고 싶습니다. 외부 공간으로 돌아가서 편집해야하는 것은 매우 짜증날 수 있습니다.
Faiz Saleem

1
공간은 일반적으로 약 두 번 반복됩니다. 원래 게시물의 출처를 보면 의도적으로 남겨둔 반복 된 공간을 쉽게 볼 수 있습니다.
Faiz Saleem

나는 내 대답을 업데이트,하지만 그것을 읽기 전에를 통해 읽고 .
daltonfury42

고마워, 나중에 시도합니다-방금 바빠서 기회가 없었습니다.
Faiz Saleem

답변:


3

xset-X 용 사용자 환경 설정 유틸리티

r은 자동 반복을 제어하는 ​​것입니다.

xset -r 10

"1"키에 대한 자동 반복을 비활성화합니다.

xset r 10

"1"키에 대해 자동 반복을 활성화합니다.

xset r [키 코드]

내 경우에는 스페이스 바의 키 코드는 65입니다. 코드로 코드를 확인하십시오. xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'

여전히 키 속도를 변경해야하는 경우 rate 매개 변수를 사용할 수도 있습니다.

또한이 명령을 세션 시작 스크립트 파일에 추가하십시오.


로 자동 반복 기능을 활성화 한 키의 현재 목록을 얻을 수 있습니다 xset q. 16 진수로 덤프 된 256 비트 배열이며 읽기가 어렵습니다.
meuh

나는 확실히 이것을 갈 것입니다. 감사!
Faiz Saleem

1
나를 위해 잘 작동했습니다. +100 담당자를 즐기십시오!
Faiz Saleem

4

나는 당신을위한 해결책을 찾았지만 바운스 키는 포함하지 않습니다. 내가 여기서하는 일은 스페이스를 누를 때마다 스페이스 키 / 키보드를 잠시 비활성화하는 것입니다. 그래서 여기에 간다 :

우리는 xbindkeys스페이스 바 프레스 (이 경우 릴리스)를 캡처하고 xdotool공백을 삽입하는 데 사용합니다. 시스템에없는 경우 설치하십시오.

sudo apt-get install xbindkeys xdotool

xbindkeys 구성 파일이 홈 폴더에 이름으로 나타나야 .xbindkeysrc합니다.

xbindkeys -d > ~/.xbindkeysrc

스 니펫을 복사하여 .xbindkeysrc 파일에 붙여 넣습니다.

"xdotool key KP_Space; xinput set-int-prop <kbd-id> "Device Enabled" 8 0; sleep .05 ; xinput set-int-prop <kbd-id> "Device Enabled" 8 1"
     m:0x0 + c:65 + Release
    space

명령 <kbd-id>으로 찾을 수있는 키보드 ID는 다음과 같습니다 xinput. 이제 컴퓨터를 시작할 때마다 시작되도록 xbindkeys를 구성하려고합니다.

를 열고 앞에 /etc/rc.local줄을 추가하십시오 .xbindkeysexit 0

끝났습니다. 터미널을 열고 xbindkeys지금 시작하려면 입력 하십시오. 그것이 작동하는지 확인하십시오. 공백이 없어진 후 이중 공백이나 문자를 찾지 못하면 delay명령에서를 조정 ~/.xbindkeysrc하고 다시 부팅하십시오.

참고 문헌 :


이 답변에 몇 가지 문제가있었습니다. 연결 한 xinput 명령 은 키보드를 비활성화 하지 않고 터치 스크린을 비활성화합니다. 키보드를 사용하지 않도록 명령을 조정하려고 시도했지만 작동하지 않았습니다. 올바른 명령은 다음과 같습니다 xinput float 13 ; sleep .1 ; xinput reattach 13 3, 어떤 않는 일을. 그러나 솔루션 자체는 작동하지 않습니다. 이 명령으로 xbindkeys를 시작하면 스페이스 바가 더 이상 공백으로 들어 가지 않습니다. 키보드는 잠깐 동안 비활성화되지만 공백 문자는 입력되지 않습니다. 내가 뭔가 잘못하고 있습니까?
Faiz Saleem

또한 스페이스 키만 비활성화하는 방법을 찾았습니다. 그것은 xmodmap에 의존합니다 : xmodmap -e 'keycode 65=NoSymbol' ; sleep .1; xmodmap -e 'keycode 65=KP_Space
Faiz Saleem

@ FaizSaleem, 첫 번째 문제에 대해 죄송합니다. 제 실수였습니다. 키보드 ID (10)를 입력했습니다 xinput. 을 입력하여 키보드 ID를 찾을 수 있습니다 . 그러나 우리는 그것을 필요로하지 않을 것입니다. 공간 만 비활성화하는 방법을 찾았습니다.
daltonfury42

두 번째 문제는 키보드가 비활성화 된 경우에만 테스트했습니다. 을 사용하여 수동으로 공백을 삽입하려고 시도했지만 xdotool getactivewindow key KP_Space작동하지 않습니다.
daltonfury42

xdotool key space또한 작동하지 않으며 공백을 삽입하려고 시도한 다른 모든 방법이 실패했습니다.
Faiz Saleem
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.