web-dev-qa-db-ja.com

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

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

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

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

xmodmapで可能ですか?

84
atmon3r

xinputを使用して、Xの下で入力デバイスをフロートさせることができます。

  1. コマンドxinput listを実行して、入力デバイスをリストします。
  2. AT Translated Set 2 keyboardを見つけて、そのid番号を書き留めます。これはキーボードを無効にするために使用されます。また、末尾の数字[slave keyboard (#)];に注意してください。これはmasterのID番号で、キーボードを再度有効にするために使用されます。
  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)] 
⎜↳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)] 
↳ビデオバスid = 7 [スレーブキーボード(3)] 
↳スリープボタンid = 8 [スレーブキーボード(3)] 
↳Acer CrystalEyeウェブカメラid = 9 [スレーブキーボード(3)] 
↳AT Translated Set 2 keyboard id =10   [スレーブキーボード(3)] 
$ xinput float 10$ xinputリスト
⎡仮想コアポインターid = 2 [マスターポインター(3)] 
⎜↳仮想コアXTESTポインターid = 4 [スレーブポインター(2)] 
⎜↳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)] 
↳ビデオバスid = 7 [スレーブキーボード(3)] 
↳スリープボタンid = 8 [スレーブキーボード(3)] 
↳Acer CrystalEyeウェブカメラid = 9 [スレーブキーボード(3)] 
〜AT Translated Set 2 keyboard id = 10 [floating slave] 
$ xinput再接続10 3$ xinputリスト
⎡仮想コアポインターid = 2 [マスターポインター(3)] 
⎜↳仮想コアXTESTポインターid = 4 [スレーブポインター(2)] 
⎜↳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)] 
↳ビデオバスid = 7 [スレーブキーボード(3)] 
↳スリープボタンid = 8 [スレーブキーボード(3)] 
↳Acer CrystalEyeウェブカメラid = 9 [スレーブキーボード(3)] 
↳AT Translated Set 2 keyboard id = 10 [スレーブキーボード( 3)] 
132

特定のキーボードを有効または無効にする小さなスイッチボタンを次に示します。まず、xinputまたはxinput-listでキーボードIDを見つける必要があります。

キーボードを有効/無効にする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
  • 次のアイコンを使用しました: enter image description hereenter image description here

  • キーボードIDとしてidxinputで見つけた)

  • 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

結果:

ランチャー:

enter image description here

通知:

enter image description hereenter image description here

18
mxdsp

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

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

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

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

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

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

要件:

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

12
LnxSlck

無効にする確実な方法の1つは、信号ケーブルを抜くことです。そのためにはキーボードをポップアップする必要があります。その方法については、 HP Pavilion dv9000およびdv9200ノートブックPCのメンテナンスとサービスガイド をご覧ください。

xinputを使用してキーボードを無効にする方法があります。 T、それを押すだけ 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とともに上記のコマンドを使用してください。

10
Mitch

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ラップトップコンピューター。

5
Rokibul Hasan

受け入れられた回答 で示唆されているように、デバイスidxinput listから受信され、再起動時に(少なくとも私のPCでは)時々変更されます間違ったデバイスを無効にしました。

それが、idの代わりにdevice nameの使用を終了した理由です。例:

xinput disable "AT Translated Set 2 keyboard"
4
janot

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

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

t-スリープ時間in seconds

id#およびmaster #前述のようにabove( (ページの先頭

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

$ xinput float 11;sleep 5;xinput reattach 11 3
4
Tyþë-Ø

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

3
dxvxd

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

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

  • リブートしてID番号を変更すると、xinputでID番号に依存することに失敗します。 xinput float 13を実行しているときにこれが起こりました。間違ったハードウェアを無効にすることになりました。
  • 再起動すると、ファイルに依存して有効/無効の状態を保持することはできません。このファイルは、キーボードが無効になっていることを通知します(スクリプトで無効にした場合)が、再起動後に再び有効になります。私のソリューションは、解析されたxinputコマンドから有効/無効の情報を取得します。
  • 私のスクリプトは、xinput list --name-onlyと入力すると表示されるすべてのxinputデバイスで動作します。名前を取得して、上位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
2
cbp44

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 listを使用)

0
duncan williams