랩톱의 내부 키보드를 비활성화하는 방법이 있습니까?


85

일주일 전에 컵 내용물을 랩탑 키보드에 쏟았습니다. 하나를 제외하고 키의 절반이 더 이상 작동하지 않습니다! 정기적으로 매우 활동적인 편지 Q.

내가 일하는 동안 이것은 매우 혼란 스럽습니다.

랩톱의 내부 키보드를 비활성화하는 방법이 있습니까?

가능 xmodmap합니까?


어떤 브랜드 및 모델 노트북입니까?
Mitch

그건HP pavilion dv9000
atmon3r

5
가장 간단한 방법은 키보드를 들어 올리고 마더 보드에서 분리하는 것입니다. 그런 다음 연결을 취소하고 원래 위치로 되돌릴 수 있습니다. 이렇게하면 재설치 후 키보드가 비활성화되고 소프트웨어를 사용하지 않아도됩니다. : 약 절반이 키보드에 도달 페이지 아래,이 링크를 참조 insidemylaptop.com/...
마크 Paskal

또한 그것을 꺼내서 분리하고, 층들 사이를 청소할 가치가있을 수도 있습니다.
JonasCz

답변:


135

xinput입력 장치를 X 아래에 띄우는 데 사용할 수 있습니다.

  1. 명령 xinput list을 실행 하여 입력 장치를 나열하십시오.
  2. 번호를 찾아서 AT Translated Set 2 keyboard기록하십시오 id. 키보드를 비활성화하는 데 사용됩니다. 또한 끝에있는 숫자를 기록해 두십시오 [slave keyboard (#)]. 이 번호는의 ID 번호이며 master키보드를 다시 활성화하는 데 사용됩니다.
  3. 키보드를 비활성화하려면 명령을 실행하십시오 xinput float <id#>. 여기서 <id#>키보드의 ID 번호입니다. 예를 들어, idwas 10인 경우 명령은입니다 xinput float 10.
  4. 키보드를 다시 활성화하려면 명령을 실행하십시오 xinput reattach <id#> <master#>. 여기서 master두 번째 숫자는 적어 두었습니다. 따라서 숫자가 맞다면 그렇게 3할 것 xinput reattach 10 3입니다.

데모는 다음과 같습니다.

$ xinput 목록
⎡ 가상 코어 포인터 id = 2 [마스터 포인터 (3)]
core ↳ 가상 코어 XTEST 포인터 id = 4 [슬레이브 포인터 (2)]
PS ↳ SynPS / 2 Synaptics TouchPad id = 11 [슬레이브 포인터 (2)]
i ↳ Logitech USB-PS / 2 광 마우스 id = 12 [슬레이브 포인터 (2)]
i ↳ Logitech Unifying 장치. 무선 PID : 4004 id = 13 [슬레이브 포인터 (2)]
⎣ 가상 코어 키보드 id = 3 [마스터 키보드 (2)]
    ↳ 가상 코어 XTEST 키보드 id = 5 [슬레이브 키보드 (3)]
    ↳ 전원 버튼 id = 6 [슬레이브 키보드 (3)]
    ↳ 비디오 버스 id = 7 [슬레이브 키보드 (3)]
    ↳ 절전 버튼 id = 8 [슬레이브 키보드 (3)]
    ↳ Acer CrystalEye 웹캠 id = 9 [슬레이브 키보드 (3)]
    AT 번역 세트 2 키보드 id = 10    [슬레이브 키보드 ( 3 )]
 $ xinput float 10 
$ xinput list
⎡ 가상 코어 포인터 id = 2 [마스터 포인터 (3)]
core ↳ 가상 코어 XTEST 포인터 id = 4 [슬레이브 포인터 (2)]
PS ↳ SynPS / 2 Synaptics TouchPad id = 11 [슬레이브 포인터 (2)]
i ↳ Logitech USB-PS / 2 광 마우스 id = 12 [슬레이브 포인터 (2)]
i ↳ Logitech Unifying 장치. 무선 PID : 4004 id = 13 [슬레이브 포인터 (2)]
⎣ 가상 코어 키보드 id = 3 [마스터 키보드 (2)]
    ↳ 가상 코어 XTEST 키보드 id = 5 [슬레이브 키보드 (3)]
    ↳ 전원 버튼 id = 6 [슬레이브 키보드 (3)]
    ↳ 비디오 버스 id = 7 [슬레이브 키보드 (3)]
    ↳ 절전 버튼 id = 8 [슬레이브 키보드 (3)]
    ↳ Acer CrystalEye 웹캠 id = 9 [슬레이브 키보드 (3)]
∼ AT Translated Set 2 키보드 id = 10 [부동 슬레이브]
$ xinput 다시 첨부 10 3 
$ xinput 목록
⎡ 가상 코어 포인터 id = 2 [마스터 포인터 (3)]
core ↳ 가상 코어 XTEST 포인터 id = 4 [슬레이브 포인터 (2)]
PS ↳ SynPS / 2 Synaptics TouchPad id = 11 [슬레이브 포인터 (2)]
i ↳ Logitech USB-PS / 2 광 마우스 id = 12 [슬레이브 포인터 (2)]
i ↳ Logitech Unifying 장치. 무선 PID : 4004 id = 13 [슬레이브 포인터 (2)]
⎣ 가상 코어 키보드 id = 3 [마스터 키보드 (2)]
    ↳ 가상 코어 XTEST 키보드 id = 5 [슬레이브 키보드 (3)]
    ↳ 전원 버튼 id = 6 [슬레이브 키보드 (3)]
    ↳ 비디오 버스 id = 7 [슬레이브 키보드 (3)]
    ↳ 절전 버튼 id = 8 [슬레이브 키보드 (3)]
    ↳ Acer CrystalEye 웹캠 id = 9 [슬레이브 키보드 (3)]
    Translate AT Translated Set 2 keyboard id = 10 [슬레이브 키보드 (3)]

이 솔루션에 관심이 있습니다! 내 xinput pastebin.com/puDxQaZ8 이므로 다음과 같이 추측합니다. xinput float 14이 쿼리는 가역적입니까? 이 후 키보드를 활성화하는 방법은 무엇입니까?
atmon3r

2
reattach인수를 사용하여 다시 첨부합니다. xinput reattach 14 3
Ignacio Vazquez-Abrams

1
완벽한 대답-이것도 찾고있었습니다. 랩톱의 키가 작동을 멈췄으므로 이제 외부 키보드를 그 위에 놓고 제어 키를 계속 누르십시오. 고마워요!
특히 부검 22:08에

1
감사. 그러나 랩톱을 다시 시작하면 키보드가 자동으로 활성화됩니다. 컴퓨터에서 항상 위의 단계를 수행하여 언급 한 내부 키보드를 비활성화하고 싶습니다. 영구적으로 비활성화 할 가능성이 있습니까?
Dinesh ML

2
xinput이 같은 기능을 비활성화 / 활성화하지 않습니까?
SomeNickName

18

다음은 특정 키보드를 활성화 및 비활성화하는 작은 스위치 버튼입니다. 먼저 xinput또는로 키보드 ID를 찾아야합니다 xinput-list.

키보드를 활성화 / 비활성화하는 Bash 스크립트

#!/bin/bash
Icon="/PATH/TO/ICON_ON"
Icoff="/PATH_TO_ICON_OFF"
fconfig=".keyboard" 
id=12

if [ ! -f $fconfig ];
    then
        echo "Creating config file"
        echo "enabled" > $fconfig
        var="enabled"
    else
        read -r var< $fconfig
        echo "keyboard is : $var"
fi

if [ $var = "disabled" ];
    then
        notify-send -i $Icon "Enabling keyboard..." \ "ON - Keyboard connected !";
        echo "enable keyboard..."
        xinput enable $id
        echo "enabled" > $fconfig
    elif [ $var = "enabled" ]; then
        notify-send -i $Icoff "Disabling Keyboard" \ "OFF - Keyboard disconnected";
        echo "disable keyboard"
        xinput disable $id
        echo 'disabled' > $fconfig
fi

구성

  • Icon사용할 때 아이콘의 경로를 표시하도록 (예를 들어 /home/user/path/icon.png)
  • Icoff 비활성화 할 때 표시 할 아이콘의 경로로
  • 다음 아이콘을 사용했습니다. 여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

  • id키보드 ID로 (으로 찾았습니다 xinput)

  • fconfig구성 파일의 경로. 다른 디렉토리에 구성 파일을 작성하려는 경우 변경

키보드를 사용하지 않고 다시 실행할 수 없으면 스크립트를 실행하지 마십시오 (물론 다른 키보드가없는 경우). 다음 실행 프로그램 만들기 (에 home/user/.local/share/applications) 및 통일에 추가 :

데스크탑 엔트리 (Unity Launcher)

[Desktop Entry]
Version=1.0
Type=Application
Name=Clavier ON-OFF
Icon=PATH/TO/YOUR/ICON
Exec=bash NAME_OF_YOUR_SCRIPT.sh
Path=PATH/TO/YOUR/SCRIPT
NoDisplay=false
Categories=Utility;
StartupNotify=false
Terminal=false

결과 :

발사통:

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

알림 :

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


잘 작동합니다. 명확하게 설명해 주셔서 감사합니다. 내가 이해하지 못하는 한 가지가 있습니다 : 쉘 스크립트 논리에 따라 아이콘을 변경하는 방법. 나는 이것이 데스크탑 항목의 "Icon = PATH / TO / YOUR / ICON"에 의해 부분적으로 결정되었다고 생각합니다. 다른 방법을 모르기 때문에 절대 경로 "/home/.../icon_on.png"를 사용했습니다. ".desktop"파일을 사용하면 아이콘 전환이 차단 될 수 있습니다. 누구나 단서를 제공 할 수 있습니까?
Puffin

1
안녕하세요, .desktop 파일의 절대 경로에 대해 옳았습니다. 죄송하지만 런처 아이콘을 동적으로 변경하는 방법을 모르겠습니다. 그 대답에 따르면, 전혀 불가능합니다 : askubuntu.com/a/244951/458410 . 스크립트의 아이콘은 알림에서만 변경됩니다.
mxdsp

아 하, 알았어, 내 말이 똑같아, 고마워
Puffin

가능한 개선 : 파일에 상태를 저장하는 대신 다음 명령으로 키보드가 비활성화되어 있는지 직접 확인할 수 있습니다 function is-disabled() { xinput --list --long | grep -A 1 "id=$1" | grep -q disabled }. 이렇게하면 다른 프로그램에서 키보드를 활성화 / 비활성화하더라도 모든 것이 작동합니다.
dshepherd

fconfig=".keyboard" if [ ! -f $fconfig ]; 여기는 무엇 .keyboard입니까? 그리고 모두 fconfig$fconfig동일? 또한 무엇을 ! -f $fconfig의미합니까? bash 스크립팅이 처음입니다. 감사합니다 :)
sphoenix

12

나는 당신이 이것을 할 수있는 두 가지 방법을 생각했습니다.

  1. xorg.conf에서 랩탑 키보드에 잘못된 모델을 설정하면?

  2. 아기 용 키보드 를 설치하여

`Baby-key-for-Baby 또는 lk4b는 키보드를 잠그고 마우스는 자유롭게 두는 작은 프로그램입니다. 내 조카가 내가 앉은 것을 볼 때마다 내 키보드에서 강타를 좋아하기 때문에 나는 그것을 썼다. 키보드로 입력 한 키는 치명적인 결과를 초래할 수 있으며 화면 보호기로 항상 화면을 잠그고 싶지 않았습니다.

시작할 때, 키보드 잠금 장치는 작은 창을 열어 키보드를 잡고 입력 된 키를 에코합니다. 기본적으로 종료 할 내용 ( "지금 종료")을 알려줍니다.

스크린 세이버와 달리 화면이 차단되지 않고 마우스가 여전히 부분적으로 작동하므로 화면에있는 내용을 계속 볼 수 있습니다. TV / 비디오를 계속 시청하거나 마우스를 사용하여 스크롤하여 문서를 읽습니다. '

요구 사항 :

· GTK> = 2.x · perl GTK2 바인딩 (시스템에 따라 perl-gtk2 또는 gtk2-perl)


1
이것은 내가 필요한 것이 아니며 USB 키보드를 사용해야하지만 코드가 매우 유용합니다! ;)
atmon3r

아기 용 키보드 잠금 장치를 사용하면 외부 키보드를 사용하지 않고도 내부 키보드를 비활성화 할 수 있습니다.
LnxSlck

훌륭한. Lock-Keyboard-For-Baby는 Ubuntu 16.04에서도 작동합니다. 키보드에 펜과 종이를 사용하여 코딩하는 것을 선호합니다. 이 작은 유틸리티는 내 문제를 해결했습니다. 다른 사람의 경우, perl 스크립트를 실행하기 전에 sudo apt-get install libgtk2-perl을 실행해야 할 수도 있습니다.
mac

데스크탑 타워 USB 키보드를 사용하여 "지금 종료", 지금 종료 또는 18.04 이하에서 작동하지 않습니다.
벼룩 2009 년

10

이를 비활성화하는 한 가지 확실한 방법은 신호 케이블을 분리하는 것입니다. 키보드를 팝업해야합니다. 이를 수행하는 방법에 대한 정보 는 HP Pavilion dv9000 및 dv9200 노트북 PC유지 보수 및 서비스 안내서를 확인하십시오 .

이제를 사용하여 키보드를 비활성화하는 방법이 xinput있습니다. 키보드에서 Ctrl+ Alt+ T를 누르면 터미널이 열립니다. 열리면 아래 명령을 실행하십시오.

장치를 X로 나열하려면

xinput --list

키보드를 비활성화하려면 :

xinput set-int-prop 2 "Device Enabled" 8 0

키보드를 다시 활성화하려면 :

xinput set-int-prop 2 "Device Enabled" 8 1

권한에 대한 오류가 발생하면 위의 명령을로 사용하십시오 sudo.


5

허용 된 답변에 제안 된대로 장치가 id수신 된 경우 재부팅 (적어도 내 PC에서)으로 인해 때로는 변경되어 잘못된 장치가 비활성화되는 경우가 있습니다.xinput list

내가 사용 종료 한 이유 device name대신에 id, 예를 :

xinput disable "AT Translated Set 2 keyboard"

5

Ubuntu에서 랩톱의 내부 키보드를 영구적으로 비활성화 i8042.nokbd하려면 키보드 포트를 확인 / 생성하지 않으려면 이 커널 매개 변수를 전달해야합니다.

i8042.nokbd [HW] Don't check/create keyboard port

터미널을 열고 다음 명령을 실행하십시오

$sudo gedit /etc/default/grub

다음 줄을 찾아보십시오

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

매개 변수를 추가 i8042.nokbd하면 위의 행은 다음과 같아야합니다.

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nokbd"

다음 명령으로 grub을 업데이트하십시오.

$sudo update-grub     

그런 reboot다음 랩톱 컴퓨터.


키보드를 다시 활성화하려면 어떻게합니까?
Guilherme 투 파레

4

키보드를 청소하려면 항상 기기를 꺼야합니다. 결과적으로 키보드를 일시적으로 비활성화하기 위해 이것을 발견했습니다.

$ xinput float id #; sleep t ; xinput reattach id # master #

t- 몇 초 만 에 잠자기

위에서 언급id # master # ( 페이지 상단 )

예를 들어 내 노트에 다음과 같이 입력했습니다.

$ xinput float 11;sleep 5;xinput reattach 11 3

3

xmodmap -e 'keycode 24='Q 키만 비활성화하려면 실행 해보십시오 . 작동하면 파일을 ~/.bashrc글로벌 /etc/bash.bashrc파일에 추가 할 수 있습니다 . 여기 에서이 아이디어를 얻었으며 모든 키 매핑을 보여줍니다.


4
q외장 키보드에서도 비활성화되지 않습니까?
Sparhawk

2

그것은 이전의 대답과 내 자신의 연주 주위를 기반으로, 가치가 무엇인지를 들어, 나는 내가 전화를 다음과 같은 스크립트를 만들어 toggle_keyboard.sh내에서 장소 ~/bin의 경로를. 로 설정된 키보드 단축키가 CtrlWinK있습니다.

이전 답변에 대한 몇 가지 문제와 스크립트의 이점 :

  • 재부팅 할 때 xinput으로 ID 번호에 의존하지 않고 ID 번호가 변경됩니다. 달리기 때 이런 일이 일어났다 xinput float 13. 결국 잘못된 하드웨어를 사용하지 못하게되었습니다.
  • 다시 부팅하면 파일에 의존하여 활성화 / 비활성화 상태를 유지할 수 없습니다. 파일에서 키보드가 비활성화되었음을 알려 주지만 (스크립트로 키보드를 비활성화 한 경우) 재부팅 후 다시 활성화됩니다. 내 솔루션은 구문 분석 된 xinput 명령에서 활성화 / 비활성화 정보를 얻습니다.
  • 내 스크립트는 입력 할 때 표시되는 모든 xinput 장치에서 작동합니다 xinput list --name-only. 이름을 입력하고 상위 4 개의 변수를 편집하십시오. 랩톱 키보드, 웹캠, 터치 스크린 모니터 및 한 번에 한 번만 사용하는 몇 가지 다른 용도로 사용합니다.

#!/bin/bash
# Toggle the laptop keyboard either on or off and notify the user about it

# Device name can be found by typing this command: xinput list --name-only
DEVICE_NAME="AT Translated Set 2 keyboard"
# The display name of the device in the notify-send popup
DEVICE_DISPLAY_NAME="Laptop Keyboard"

# Set these to the icons you want to use.
# If they are not found, the notification will still work.
ICON_ENABLE="$HOME/.icons/keyboard.png"
ICON_DISABLE="$HOME/.icons/keyboard_disabled.png"

function xinput_set_prop() {
        xinput set-prop "$DEVICE_NAME" "Device Enabled" $1
}

function notify_change() {
        if [ -f "$1" ]; then
                notify-send --urgency=low --icon="$1" "$2"
        else
                notify-send --urgency=low "$2"
        fi
}

# Returns 1 if device is enabled, 0 if disabled
is_enabled=$(xinput list-props "$DEVICE_NAME" | grep "Device Enabled" | awk '{ print $4 }' | sed 's/[^0-9]*//g')

if [ $is_enabled -eq 1 ]; then
        # device is enabled, so disable it
        xinput_set_prop 0
        notify_change "$ICON_DISABLE" "$DEVICE_DISPLAY_NAME Disabled"
else
        # device is disabled, so enable it
        xinput_set_prop 1
        notify_change "$ICON_ENABLE" "$DEVICE_DISPLAY_NAME Enabled"
fi

0

xinput float "AT 번역 세트 2 키보드"

다른 배포 및 릴리스와 다른 방법으로 몇 년 동안 시간을 ​​보낸 후. 위의 터미널 명령은 문제 후에 의존하는 것입니다 ..... 나는 이것을 네온 플라즈마와 함께 사용하고 한 달 전에 직선 우분투 18.04에서 사용했습니다. (다시 시작한 후 적용해야 함-시작시 배치 가능) * HP 노트북의 내장 키보드가 손상되어 입력을 시작하여 심각한 문제가 발생합니다-무선 키보드와 마우스를 사용합니다-터치 패드가 KDE 상단 표시 줄의 일부로 켜져 있거나 꺼져 있습니다 옵션-네온 / 플라즈마 5). 시스템 설정 / 자동 시작에서 다음 코드 줄이있는 텍스트 파일은 .sh 파일로 저장되고 실행 파일로 설정됩니다 (txt 파일 속성)
xinput float "AT Translated Set 2 keyboard"

텍스트 파일 이름이> keyboardoff>이고 자동 시작 (실행 가능)에 배치됩니다. 시스템을 다시 시작 / 시작할 때> 내장 키보드가 꺼집니다. ( xinput list 를 사용 하여 테스트)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.