ラップトップの内部キーボードを無効にする方法はありますか?


85

一週間前、私はカップの中身をノートパソコンのキーボードにこぼしました。1つを除いて、半分のキーが機能しなくなりました!定期的に非常に活発な手紙Q。

私が働いているとき、これは非常に不安です。

ラップトップの内部キーボードを無効にする方法はありますか?

で可能xmodmapですか?


それはどのブランドおよびモデルのラップトップですか?
ミッチ

それはHP pavilion dv9000
atmon3r

5
最も簡単な方法は、キーボードを持ち上げてマザーボードから外すことです。その後、接続なしで、元の場所に戻すことができます。これにより、再インストール後にキーボードが無効になり、ソフトウェアに煩わされる必要がなくなります。半分ほどそれはキーボードになるページの下、このリンクを参照してください:insidemylaptop.com/...
マーク・Paskal

また、それを取り出して、分解し、レイヤー間のクリーニングをする価値があるかもしれません。
JonasCz15年

回答:


135

xinputXの下で入力デバイスをフロートさせるために使用できます。

  1. コマンドxinput listを実行して、入力デバイスをリストします。
  2. AT Translated Set 2 keyboardそのid番号を見つけてメモします。これはキーボードを無効にするために使用されます。また、末尾の数字に注意してください[slave keyboard (#)]。これはのID番号で、masterキーボードを再度有効にするために使用されます。
  3. キーボードを無効にするには、コマンドを実行します。xinput float <id#>ここ<id#>で、キーボードのID番号です。たとえば、id10だった場合、コマンドはになりますxinput float 10
  4. キーボードを再度有効にするには、コマンドを実行します。xinput reattach <id#> <master#>ここmasterで、メモした2番目の番号です。それで、数がそうなら3、あなたはするでしょうxinput reattach 10 3

デモは次のとおりです。

$ xinputリスト
⎡仮想コアポインターid = 2 [マスターポインター(3)]
↳↳仮想コアXTESTポインターid = 4 [スレーブポインター(2)]
PS↳SynPS / 2 Synaptics TouchPad id = 11 [スレーブポインター(2)]
↳↳Logitech USB-PS / 2光学式マウスid = 12 [スレーブポインター(2)]
↳↳Logicool Unifyingデバイス。ワイヤレスPID:4004 id = 13 [スレーブポインター(2)]
⎣仮想コアキーボードid = 3 [マスターキーボード(2)]
    ↳仮想コアXTESTキーボードid = 5 [スレーブキーボード(3)]
    ↳電源ボタンid = 6 [スレーブキーボード(3)]
    ↳Video Bus id = 7 [スレーブキーボード(3)]
    ↳スリープボタンid = 8 [スレーブキーボード(3)]
    ↳Acer CrystalEyeウェブカメラid = 9 [スレーブキーボード(3)]
    Translate AT Translated Set 2 keyboard id = 10    [スレーブキーボード(3)]
 $ xinput float 10 
$ xinputリスト
⎡仮想コアポインターid = 2 [マスターポインター(3)]
↳↳仮想コアXTESTポインターid = 4 [スレーブポインター(2)]
PS↳SynPS / 2 Synaptics TouchPad id = 11 [スレーブポインター(2)]
↳↳Logitech USB-PS / 2光学式マウスid = 12 [スレーブポインター(2)]
↳↳Logicool Unifyingデバイス。ワイヤレスPID:4004 id = 13 [スレーブポインター(2)]
⎣仮想コアキーボードid = 3 [マスターキーボード(2)]
    ↳仮想コアXTESTキーボードid = 5 [スレーブキーボード(3)]
    ↳電源ボタンid = 6 [スレーブキーボード(3)]
    ↳Video Bus id = 7 [スレーブキーボード(3)]
    ↳スリープボタンid = 8 [スレーブキーボード(3)]
    ↳Acer CrystalEyeウェブカメラid = 9 [スレーブキーボード(3)]
〜AT変換セット2キーボードID = 10 [フローティングスレーブ]
$ xinput再接続10 3 
$ xinputリスト
⎡仮想コアポインターid = 2 [マスターポインター(3)]
↳↳仮想コアXTESTポインターid = 4 [スレーブポインター(2)]
PS↳SynPS / 2 Synaptics TouchPad id = 11 [スレーブポインター(2)]
↳↳Logitech USB-PS / 2光学式マウスid = 12 [スレーブポインター(2)]
↳↳Logicool Unifyingデバイス。ワイヤレスPID:4004 id = 13 [スレーブポインター(2)]
⎣仮想コアキーボードid = 3 [マスターキーボード(2)]
    ↳仮想コアXTESTキーボードid = 5 [スレーブキーボード(3)]
    ↳電源ボタンid = 6 [スレーブキーボード(3)]
    ↳Video Bus 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
イグナシオバスケス-エイブラムス

1
完璧な答え-これも探していました。ラップトップのキーのいずれかが機能しなくなったため、外部キーボードをその上に置いたまま、コントロールキーを押し続けました。これで解決しました、ありがとう!
特に

1
ありがとう。しかし、ラップトップを再起動すると、キーボードは自動的に有効になります。だから私はいつも私のマシンで、上記の手順を実行して、あなたが言及した内部キーボードを無効にしたいと思っています。永久に無効にする可能性はありますか?
ディネッシュ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に追加します。

デスクトップエントリ(Unityランチャー)

[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

結果:

ランチャー:

ここに画像の説明を入力してください

通知:

ここに画像の説明を入力してください ここに画像の説明を入力してください


これはうまく機能します。明確に説明してくれてありがとう。理解できないことが1つあります。シェルスクリプトロジックに従ってアイコンを変更する方法です。これは、デスクトップエントリの「Icon = PATH / TO / YOUR / ICON」によって部分的に決定されていると思います。 「.desktop」ファイルを使用しますが、これによりアイコンの切り替えが妨げられることがわかります。誰もが手がかりを提供できますか?
パフィン

1
こんにちは、あなたは.desktopファイルの絶対パスについて正しいです。申し訳ありませんが、ランチャーアイコンを動的に変更する方法がわかりません。その答えによれば、まったく不可能です:askubuntu.com/a/244951/458410。スクリプト内のアイコンは、通知のみで変更されます。
mxdsp 16

ああ、それは理にかなっています、私も同じことをします、ありがとう。
ツノメドリ

考えられる改善:ファイルに状態を保存する代わりに、次のコマンドでキーボードが無効になっているかどうかを直接確認できます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

私はあなたがこれを行うことができる2つの方法を考えました:

  1. xorg.confでノートパソコンのキーボードに間違ったモデルを設定することにより?

  2. Lock-keyboard-for-Babyをインストールすることにより

`Lock-keyboard-for-Babyまたは要するにlk4bは、キーボードをロックするがマウスを解放したままにする小さなプログラムです。私がそれを書いたのは、myが座っているのを見るたびにwheneverがキーボードを打ち負かすのが好きだからです。キーボードで入力したキーは悲惨な結果を招く可能性があり、スクリーンセーバーで常に画面をロックしたくありませんでした。

起動すると、lock-keyboard-for-babyは、キーボードをつかんで入力されたキーをエコーする小さなウィンドウを開きます。デフォルトでは、終了するために入力する内容が表示されます( "Quit Now")。

スクリーンセーバーとは異なり、画面はブロックされず、マウスはまだ部分的に機能するため、画面の内容を引き続き見ることができます。テレビ/ビデオを見たり、マウスを使用して文書を読んだりしてスクロールできます。

要件:

・GTK> = 2.x・perl GTK2バインディング(システムに応じてperl-gtk2またはgtk2-perl)


1
これはまさに私が必要なものではありません、私はUSBキーボードを使用する必要がありますが、あなたのコードは非常に便利です!;)
atmon3r

ロック・キーボード用-赤ちゃんは、外部の使用をmaintingながら、あなたの内部のキーボードを無効にできるようになる
LnxSlck

ブリリアント。Lock-Keyboard-For-BabyはUbuntu 16.04でも機能します。私は、ペンとペーパーブックを使用してキーボード上でそれを保持することを好みます。この小さなユーティリティは私の問題を解決しました。その他の場合は、perlスクリプトを実行する前にsudo apt-get install libgtk2-perlを実行する必要がある場合があります
mac

「今すぐ終了」、今すぐ終了、またはデスクトップタワーUSBキーボードを使用して18.04の下で今すぐ終了します。
フリーマ

10

無効にする確実な方法の1つは、信号ケーブルを抜くことです。そのためにはキーボードをポップアップする必要があります。その方法については、HP Pavilion dv9000およびdv9200 Notebook 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の受信はxinput list、再起動時に(少なくとも私のPCで)何らかの形で変更され、間違ったデバイスが無効になることがあります。

だからこそ、の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、ラップトップコンピューター。


キーボードを再度有効にするにはどうすればよいですか?
ギルヘルム・パレイラ

4

キーボードを掃除したい場合は、そのために常にマシンの電源を切る必要がありました。その結果、キーボードを一時的に無効にするためにこれを発見しました:

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

t- 秒単位のスリープ時間

ID番号マスター#述べたように、上記(ページの上部

たとえば、私のノートブックでは次のように入力しました。

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

3

実行xmodmap -e 'keycode 24='して、Qキーのみを無効にしてみてください。それが機能する場合は、それを自分のファイル~/.bashrcまたはグローバル/etc/bash.bashrcファイルに追加できます。私はここからこのアイデアを得ました。これはすべてのキーマッピングを示しています。


4
q外付けキーボードでもこれは無効になりませんか?
スパラフーク

2

価値があるものとして、以前の回答と自分で遊んでいることに基づいて、次のスクリプトを作成し、これを呼び出しtoggle_keyboard.sh~/binパスに配置しました。に設定するキーボードショートカットがありますCtrlWinK

以前の回答に関するいくつかの問題と私のスクリプトの利点:

  • リブートしてID番号が変更されると、xinputで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 Translated Set 2キーボード」

さまざまなディストリビューションやリリースでさまざまな方法で何年もかけて過ごした後。上記の端末コマンドは、問題の後に私が依存するものです.....ネオンプラズマでこれを使用し、1か月前にストレートubuntu 18.04で使用していました。(再起動後に適用する必要があります-起動時に配置できます)* HPラップトップの内蔵キーボードが損傷し、入力を開始すると深刻な問題が発生する-ワイヤレスキーボードとマウスを使用する-タッチパッドはKDEトップバーの一部としてオン/オフするオプション-ネオン/プラズマ5)。システム設定/自動起動では、次のコード行のテキストファイルが.shファイルとして保存され、実行可能ファイル(txtファイルのプロパティ)として設定されます
xinput float "AT Translated Set 2 keyboard"

テキストファイルには名前> keyboardoff>が付けられ、autostart(実行可能)に配置されます。システムを再起動/起動すると、組み込みキーボードがオフになります。(xinputリストを使用してテストします)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.