Gibt es eine Möglichkeit, die interne Tastatur eines Laptops zu deaktivieren?

85

Vor einer Woche habe ich den Inhalt meiner Tasse auf meine Laptoptastatur verschüttet. Die Hälfte der Schlüssel funktioniert nicht mehr, außer einem! Der Buchstabe Q, der regelmäßig sehr aktiv ist.

Das ist sehr beunruhigend, wenn ich arbeite.

Gibt es eine Möglichkeit, die interne Tastatur eines Laptops zu deaktivieren?

Ist es möglich mit xmodmap?

atmon3r
quelle
Welche Marke und Modell Laptop ist das?
Mitch
Es istHP pavilion dv9000
atmon3r
5
Am einfachsten ist es, die Tastatur anzuheben und vom Motherboard zu trennen. Sie können es dann wieder dort ablegen, wo es war, ohne die Verbindung. Auf diese Weise wird die Tastatur nach einer Neuinstallation deaktiviert und Sie müssen sich nicht um Software kümmern. Siehe diesen Link, ungefähr auf der Hälfte der Seite, auf der er zur Tastatur gelangt
Mark Paskal
Könnte es auch wert sein, es herauszunehmen, es auseinanderzunehmen, eine Reinigung zwischen den Schichten ..
JonasCz

Antworten:

135

Mit können Sie xinputdas Eingabegerät unter X schweben lassen.

  1. Führen Sie den Befehl aus, xinput listum Ihre Eingabegeräte aufzulisten.
  2. Suchen Sie AT Translated Set 2 keyboardund notieren Sie sich seine idNummer; Hiermit wird die Tastatur deaktiviert. Beachten Sie auch die Zahl am Ende [slave keyboard (#)]; Dies ist die ID-Nummer von master, mit der Ihre Tastatur wieder aktiviert wird.
  3. Führen Sie den Befehl aus xinput float <id#>, um die Tastatur zu deaktivieren. Dabei handelt es sich um die <id#>ID-Nummer Ihrer Tastatur. Wenn zum Beispiel das idwar 10, dann wäre der Befehl xinput float 10.
  4. Führen Sie den Befehl aus xinput reattach <id#> <master#>, um die Tastatur wieder zu aktivieren. Dabei masterhandelt es sich um die zweite Zahl, die wir notiert haben. Also, wenn die Nummer 3wäre, würden Sie tun xinput reattach 10 3.

Hier ist eine Demonstration:

$ xinput Liste
⎡ ID des virtuellen Kernzeigers = 2 [Hauptzeiger (3)]
⎜ ↳ XTEST-Zeiger-ID des virtuellen Kerns = 4 [Slave-Zeiger (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad-ID = 11 [Slave-Zeiger (2)]
⎜ ⎜ Logitech USB-PS / 2 Optical Mouse-ID = 12 [Slave-Zeiger (2)]
⎜ ↳ Logitech Unifying Device. Wireless PID: 4004 id = 13 [Slave-Zeiger (2)]
⎣ ID der virtuellen Kerntastatur = 3 [Mastertastatur (2)]
    ↳ XTEST-Tastatur-ID des virtuellen Kerns = 5 [Slave-Tastatur (3)]
    ↳ Einschaltknopf-ID = 6 [Slave-Tastatur (3)]
    ↳ Videobus-ID = 7 [Slave-Tastatur (3)]
    ↳ Sleep-Button-ID = 8 [Slave-Tastatur (3)]
    ↳ Acer CrystalEye-Webcam-ID = 9 [Slave-Tastatur (3)]
    ↳ AT Übersetzt Set 2 Tastatur-ID = 10    [Slave-Tastatur ( 3 )]
 $ xinput float 10 
$ xinput list
⎡ ID des virtuellen Kernzeigers = 2 [Hauptzeiger (3)]
⎜ ↳ XTEST-Zeiger-ID des virtuellen Kerns = 4 [Slave-Zeiger (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad-ID = 11 [Slave-Zeiger (2)]
⎜ ⎜ Logitech USB-PS / 2 Optical Mouse-ID = 12 [Slave-Zeiger (2)]
⎜ ↳ Logitech Unifying Device. Wireless PID: 4004 id = 13 [Slave-Zeiger (2)]
⎣ ID der virtuellen Kerntastatur = 3 [Mastertastatur (2)]
    ↳ XTEST-Tastatur-ID des virtuellen Kerns = 5 [Slave-Tastatur (3)]
    ↳ Einschaltknopf-ID = 6 [Slave-Tastatur (3)]
    ↳ Videobus-ID = 7 [Slave-Tastatur (3)]
    ↳ Sleep-Button-ID = 8 [Slave-Tastatur (3)]
    ↳ Acer CrystalEye-Webcam-ID = 9 [Slave-Tastatur (3)]
∼ AT Übersetztes Set 2 Tastatur-ID = 10 [Floating Slave]
$ xinput füge 10 3 
$ xinput Liste hinzu
⎡ ID des virtuellen Kernzeigers = 2 [Hauptzeiger (3)]
⎜ ↳ XTEST-Zeiger-ID des virtuellen Kerns = 4 [Slave-Zeiger (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad-ID = 11 [Slave-Zeiger (2)]
⎜ ⎜ Logitech USB-PS / 2 Optical Mouse-ID = 12 [Slave-Zeiger (2)]
⎜ ↳ Logitech Unifying Device. Wireless PID: 4004 id = 13 [Slave-Zeiger (2)]
⎣ ID der virtuellen Kerntastatur = 3 [Mastertastatur (2)]
    ↳ XTEST-Tastatur-ID des virtuellen Kerns = 5 [Slave-Tastatur (3)]
    ↳ Einschaltknopf-ID = 6 [Slave-Tastatur (3)]
    ↳ Videobus-ID = 7 [Slave-Tastatur (3)]
    ↳ Sleep-Button-ID = 8 [Slave-Tastatur (3)]
    ↳ Acer CrystalEye-Webcam-ID = 9 [Slave-Tastatur (3)]
    ↳ AT Übersetztes Set 2 Tastatur-ID = 10 [Slave-Tastatur (3)]
Ignacio Vazquez-Abrams
quelle
Diese Lösung interessiert mich! mein XInput pastebin.com/puDxQaZ8 also denke ich , dass es sein würde: xinput float 14Diese Abfrage ist reversibel? Wie kann ich die Tastatur danach aktivieren?
atmon3r
2
Sie würden das reattachArgument verwenden, um es wieder anzuhängen. xinput reattach 14 3
Ignacio Vazquez-Abrams
1
Perfekte Antwort - habe auch danach gesucht. Die Tasten meines Laptops funktionierten nicht mehr. Behalten Sie also eine externe Tastatur bei und drückten Sie die Steuertaste und was nicht. Das hat es geschafft, danke!
Bemerkenswerterweise
1
Vielen Dank. Aber nach dem Neustart meines Laptops wird die Tastatur automatisch aktiviert. Wenn ich mich also auf meinem Computer befinde, möchte ich die obigen Schritte ausführen, um die von Ihnen erwähnte interne Tastatur zu deaktivieren. Gibt es Möglichkeiten für dauerhafte Behinderungen?
Dinesh ML
2
Würde xinput disable / enable nicht dasselbe tun?
SomeNickName
18

Hier ist eine kleine Schaltfläche zum Aktivieren und Deaktivieren einer bestimmten Tastatur. Zuerst müssen Sie Ihre Tastatur-ID mit xinputoder finden xinput-list.

Bash-Skript zum Aktivieren / Deaktivieren der Tastatur

#!/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

Aufbau

  • Iconals Pfad des Symbols, das beim Aktivieren angezeigt werden soll (z. B. /home/user/path/icon.png)
  • Icoff als Pfad des Symbols, das beim Deaktivieren angezeigt werden soll
  • Ich habe die folgenden Symbole verwendet: Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

  • idals tastatur id (gefunden mit xinput)

  • fconfigPfad zur Konfigurationsdatei. Ändern Sie, ob Sie die Konfigurationsdatei in einem anderen Verzeichnis erstellen möchten

Versuchen Sie nicht, das Skript auszuführen, wenn Sie es ohne die Verwendung Ihrer Tastatur nicht erneut ausführen können (es sei denn, Sie haben natürlich eine andere Tastatur). Erstellen Sie den folgenden Launcher (in home/user/.local/share/applications) und fügen Sie ihn zu Unity hinzu:

Desktop-Eintrag (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

ERGEBNIS:

Startprogramm:

Bildbeschreibung hier eingeben

Benachrichtigungen:

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

mxdsp
quelle
Das funktioniert gut, danke, dass du es klar erklärt hast. Es gibt eine Sache, die ich nicht verstehe: wie man das Symbol entsprechend der Shell-Skriptlogik ändert. Ich denke, dies wird zum Teil durch "Icon = PATH / TO / YOUR / ICON" im Desktop-Eintrag bestimmt. Ich habe den absoluten Pfad "/home/.../icon_on.png" verwendet, da ich nicht weiß, wie sonst um eine ".desktop" -Datei zu verwenden, obwohl ich sehe, dass dies das Wechseln von Symbolen verhindern kann. Könnte jemand bitte einen Hinweis geben?
Papageientaucher
1
Hallo, Sie haben Recht mit dem absoluten Pfad in der .desktop-Datei. Es tut mir leid, aber ich weiß nicht, wie dynamische Änderungen für ein Launcher-Symbol vorgenommen werden. Laut dieser Antwort ist das gar nicht möglich: askubuntu.com/a/244951/458410 . Das Symbol in meinem Skript ändert sich nur in Benachrichtigungen.
mxdsp
Ah ha, ok das macht Sinn, meine macht das selbe, danke.
Papageientaucher
Eine mögliche Verbesserung: Statt Zustand in einer Datei zu speichern , können Sie direkt überprüfen , ob die Tastatur mit diesem Befehl deaktiviert: function is-disabled() { xinput --list --long | grep -A 1 "id=$1" | grep -q disabled }. Auf diese Weise funktioniert alles, auch wenn die Tastatur von einem anderen Programm aktiviert / deaktiviert wurde.
Dshepherd
fconfig=".keyboard" if [ ! -f $fconfig ]; Was ist hier .keyboard? Und die beiden fconfigund $fconfigsind gleich? Und was ! -f $fconfigbedeutet das auch? Ich bin neu im Bash-Scripting. Vielen Dank :)
sphoenix
12

Ich dachte an 2 Möglichkeiten, wie Sie dies tun können:

  1. Indem Sie in xorg.conf ein falsches Modell für Ihre Laptoptastatur eingerichtet haben?

  2. Durch die Installation von Lock-keyboard-for-Baby

`Lock-keyboard-for-Baby oder kurz lk4b, ist ein kleines Programm, das Ihre Tastatur sperrt, aber Ihre Maus frei lässt. Ich habe es geschrieben, weil meine Nichte gerne auf meine Tastatur schlägt, wenn sie sieht, dass ich mich darauf setze. Auf einer Tastatur eingegebene Tasten können katastrophale Folgen haben, und ich wollte meinen Bildschirm nicht ständig mit einem Bildschirmschoner sperren.

Beim Start öffnet die Tastensperre ein kleines Fenster, in dem die Tastatur und die eingegebenen Echotasten angezeigt werden. Standardmäßig erfahren Sie, was Sie zum Beenden eingeben müssen ("Jetzt beenden").

Im Gegensatz zu einem Bildschirmschoner ist Ihr Bildschirm nicht blockiert und die Maus funktioniert teilweise immer noch, sodass Sie immer noch sehen können, was sich auf Ihrem Bildschirm befindet

Bedarf:

· GTK> = 2.x · GTK2-Perl-Bindungen (perl-gtk2 oder gtk2-perl, abhängig von Ihrem System)

LnxSlck
quelle
1
das ist nicht genau das, was ich brauche, ich muss meine usb tastatur benutzen, aber dein code ist sehr nützlich! ;)
atmon3r
Mit Lock-keyboard-for-Baby können Sie Ihre interne Tastatur deaktivieren, während Sie weiterhin die externe Tastatur verwenden
LnxSlck
Brillant. Lock-Keyboard-For-Baby funktioniert auch unter Ubuntu 16.04. Ich bevorzuge es, mit Stift und Taschenbuch zu codieren und es auf der Tastatur zu halten. Dieses winzige Hilfsprogramm hat mein Problem gelöst. Bei anderen muss möglicherweise sudo apt-get install libgtk2-perl ausgeführt werden, bevor das Perl-Skript ausgeführt werden kann
mac
"Quit Now", "Quit Now" oder "Quit Now" funktioniert unter 18.04 nicht mehr mit der USB-Tastatur des Desktop Tower.
Fleamour
10

Eine sichere Möglichkeit zum Deaktivieren besteht darin, das Signalkabel abzuziehen. Dazu müssen Sie die Tastatur öffnen. Informationen dazu finden Sie im Wartungs- und Servicehandbuch für den HP Pavilion dv9000 und dv9200 Notebook-PC .

Jetzt gibt es eine Möglichkeit, die Tastatur mit zu deaktivieren xinput. Drücken Sie dazu einfach Ctrl+ Alt+ Tauf Ihrer Tastatur, um das Terminal zu öffnen. Führen Sie beim Öffnen die folgenden Befehle aus.

So listen Sie die Geräte Ihres X auf

xinput --list

So deaktivieren Sie die Tastatur:

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

So aktivieren Sie die Tastatur erneut:

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

Wenn Sie eine Fehlermeldung zu Berechtigungen erhalten, verwenden Sie die obigen Befehle mit sudo.

Mitch
quelle
5

Geräte id, die xinput listwie in der akzeptierten Antwort vorgeschlagen von empfangen wurden , werden manchmal beim Neustart geändert (zumindest auf meinem PC), was zur Deaktivierung des falschen Geräts führte.

Deshalb habe ich aufgehört zu verwenden, device nameanstatt idzB:

xinput disable "AT Translated Set 2 keyboard"
Janot
quelle
5

Zum dauerhaften Deaktivieren der internen Tastatur des Laptops Unter Ubuntu müssen diese i8042.nokbdKernel-Parameter übergeben werden, damit der Tastaturanschluss nicht überprüft / erstellt wird

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

Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus

$sudo gedit /etc/default/grub

Versuchen Sie die folgende Zeile zu finden

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Parameter hinzufügen i8042.nokbd, die obige Zeile sollte so aussehen

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nokbd"

Aktualisiere grub wie folgt

$sudo update-grub     

Dann rebootIhren Laptop.

Rokibul Hasan
quelle
Wie würde ich meine Tastatur wieder aktivieren?
Guilherme Parreira
4

Wenn ich die Tastatur reinigen wollte und deswegen immer den Computer ausschalten musste. Infolgedessen habe ich Folgendes entdeckt, um die Tastatur vorübergehend zu deaktivieren:

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

Zeit, in Sekunden zu schlafen

ID-Nr. und Master-Nr. wie oben angegeben ( Seitenanfang )

In meinem Notizbuch habe ich zum Beispiel Folgendes eingegeben:

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

Versuchen Sie auszuführen xmodmap -e 'keycode 24=', um nur die Q-Taste zu deaktivieren. Wenn das funktioniert, können Sie es Ihrer ~/.bashrcoder Ihrer globalen /etc/bash.bashrcDatei hinzufügen . Ich habe diese Idee von hier , die alle Tastenzuordnungen zeigt.

dxvxd
quelle
4
Wäre dies nicht auch qin der externen Tastatur deaktiviert ?
Sparhawk
2

Für das, was es wert ist, habe ich basierend auf vorherigen Antworten und meinem eigenen Herumspielen das folgende Skript erstellt, das ich aufrufe toggle_keyboard.shund in meinen ~/binPfad setze. Ich habe eine Tastenkombination, auf die es eingestellt ist CtrlWinK.

Einige Probleme mit den vorherigen Antworten und dem Nutzen meines Skripts:

  • Das Verlassen auf eine ID-Nummer mit xinput schlägt fehl, wenn Sie einen Neustart durchführen und die ID-Nummer geändert wird. Das ist mir beim Laufen passiert xinput float 13. Am Ende habe ich die falsche Hardware deaktiviert.
  • Das Verlassen auf eine Datei, die den Status "Aktiviert / Deaktiviert" enthält, schlägt fehl, wenn Sie ebenfalls einen Neustart durchführen. Die Datei teilt Ihnen mit, dass die Tastatur deaktiviert ist (falls Sie sie mit dem Skript deaktiviert haben). Nach einem Neustart wird sie jedoch wieder aktiviert. Meine Lösung erhält die aktivierten / deaktivierten Informationen von einem analysierten xinput-Befehl.
  • Mein Skript funktioniert mit jedem xinput-Gerät, das bei der Eingabe angezeigt wird xinput list --name-only. Holen Sie sich einfach den Namen und bearbeiten Sie die oberen vier Variablen. Ich benutze es für meine Laptop-Tastatur, Webcam, Touchscreen-Monitor und ein paar andere Dinge, die ich nur gelegentlich benutze.

#!/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
cbp44
quelle
0

xinput float "AT übersetzte Set 2 Tastatur"

Nachdem ich über Jahre Stunden mit verschiedenen Methoden mit verschiedenen Distributionen und Releases verbracht habe. Auf den obigen Terminalbefehl verlasse ich mich nach Problemen ..... Ich benutze diesen jetzt mit Neonplasma und habe ihn vor einem Monat gerade in Ubuntu 18.04 verwendet. (muss nach dem Neustart angewendet werden - kann beim Start abgelegt werden) * Meine integrierte Tastatur auf meinem HP Laptop ist beschädigt und beginnt zu tippen. Dies führt zu schwerwiegenden Problemen. - Ich verwende eine drahtlose Tastatur und Maus Optionen - Neon / Plasma 5). In den Systemeinstellungen / Autostart Eine Textdatei mit der folgenden Codezeile wird als .sh-Datei gespeichert und als ausführbare Datei (Eigenschaften von TXT-Dateien) festgelegt.
Xinput float "AT Translated Set 2 keyboard"

Die Textdatei erhält den Namen> keyboardoff> und wird in den Autostart (ausführbar) versetzt. Beim Neustart / Systemstart> wird die eingebaute Tastatur ausgeschaltet. (benutze xinput liste um zu testen)

Duncan Williams
quelle