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


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.