Apakah ada cara untuk menonaktifkan keyboard internal laptop?

85

Seminggu yang lalu, saya menumpahkan isi cangkir saya ke keyboard laptop saya. Setengah dari kunci tidak lagi berfungsi, kecuali satu! Huruf Q yang sangat aktif secara teratur.

Ini sangat mengganggu saat saya bekerja.

Apakah ada cara untuk menonaktifkan keyboard internal laptop?

Mungkinkah dengan xmodmap?

atmon3r
sumber
Laptop merek dan model apa itu?
Mitch
it'sHP pavilion dv9000
atmon3r
5
Cara paling mudah adalah dengan mengangkat keyboard dan melepaskannya dari motherboard. Anda kemudian dapat meletakkannya kembali di tempat itu, tanpa koneksi. Dengan cara ini keyboard akan dinonaktifkan setelah menginstal ulang dan Anda tidak perlu repot dengan perangkat lunak. Lihat tautan ini, sekitar setengah jalan menuju halaman ke keyboard: insidemylaptop.com/...
Mark Paskal
Mungkin juga layak mengeluarkannya, membukanya, pembersihan di antara lapisan-lapisan ..
JonasCz

Jawaban:

135

Anda dapat menggunakan xinputuntuk melayang perangkat input di bawah X.

  1. Jalankan perintah xinput listuntuk mendaftar perangkat input Anda.
  2. Cari AT Translated Set 2 keyboarddan catat idnomornya; ini akan digunakan untuk menonaktifkan keyboard. Juga, perhatikan nomor di akhir [slave keyboard (#)],; ini adalah nomor id dari master, yang akan digunakan untuk mengaktifkan kembali keyboard Anda.
  3. Untuk menonaktifkan keyboard, jalankan perintah xinput float <id#>, di mana <id#>nomor id keyboard Anda. Misalnya, jika iddulu 10, maka perintahnya adalah xinput float 10.
  4. Untuk mengaktifkan kembali keyboard, jalankan perintah xinput reattach <id#> <master#>, di mana masterangka kedua yang kami catat. Jadi, jika angkanya 3, Anda akan melakukannya xinput reattach 10 3.

Ini sebuah demonstrasi:

daftar $ xinput
⎡ Virtual core pointer id = 2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id = 4 [pointer slave (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad id = 11 [pointer slave (2)]
⎜ ↳ Logitech USB-PS / 2 Optical Mouse id = 12 [pointer slave (2)]
⎜ ↳ Perangkat Pemersatu Logitech. PID Nirkabel: 4004 id = 13 [pointer slave (2)]
⎣ Id keyboard inti virtual = 3 [keyboard master (2)]
    ↳ Id keyboard virtual inti XTEST = 5 [keyboard slave (3)]
    ↳ Tombol Daya id = 6 [keyboard slave (3)]
    ↳ Video Bus id = 7 [keyboard slave (3)]
    ↳ Tombol Tidur id = 8 [keyboard slave (3)]
    ↳ Acer CrystalEye webcam id = 9 [keyboard slave (3)]
    ↳ AT Translated Set 2 keyboard id = 10    [keyboard slave ( 3 )]
 $ xinput float 10 
$ xinput list
⎡ Virtual core pointer id = 2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id = 4 [pointer slave (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad id = 11 [pointer slave (2)]
⎜ ↳ Logitech USB-PS / 2 Optical Mouse id = 12 [pointer slave (2)]
⎜ ↳ Perangkat Pemersatu Logitech. PID Nirkabel: 4004 id = 13 [pointer slave (2)]
⎣ Id keyboard inti virtual = 3 [keyboard master (2)]
    ↳ Id keyboard virtual inti XTEST = 5 [keyboard slave (3)]
    ↳ Tombol Daya id = 6 [keyboard slave (3)]
    ↳ Video Bus id = 7 [keyboard slave (3)]
    ↳ Tombol Tidur id = 8 [keyboard slave (3)]
    ↳ Acer CrystalEye webcam id = 9 [keyboard slave (3)]
∼ AT Diterjemahkan Set 2 id keyboard = 10 [budak mengambang]
$ xinput pasang kembali 10 3 
$ xinput daftar
⎡ Virtual core pointer id = 2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id = 4 [pointer slave (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad id = 11 [pointer slave (2)]
⎜ ↳ Logitech USB-PS / 2 Optical Mouse id = 12 [pointer slave (2)]
⎜ ↳ Perangkat Pemersatu Logitech. PID Nirkabel: 4004 id = 13 [pointer slave (2)]
⎣ Id keyboard inti virtual = 3 [keyboard master (2)]
    ↳ Id keyboard virtual inti XTEST = 5 [keyboard slave (3)]
    ↳ Tombol Daya id = 6 [keyboard slave (3)]
    ↳ Video Bus id = 7 [keyboard slave (3)]
    ↳ Tombol Tidur id = 8 [keyboard slave (3)]
    ↳ Acer CrystalEye webcam id = 9 [keyboard slave (3)]
    ↳ AT Translated Set 2 keyboard id = 10 [keyboard slave (3)]
Ignacio Vazquez-Abrams
sumber
Saya tertarik dengan solusi ini! xinput pastebin.com/puDxQaZ8 saya, jadi saya kira itulah yang akan terjadi: xinput float 14Query ini reversibel? bagaimana cara mengaktifkan keyboard setelah ini?
atmon3r
2
Anda akan menggunakan reattachargumen untuk memasangnya kembali. xinput reattach 14 3
Ignacio Vazquez-Abrams
1
Jawaban sempurna - sedang mencari ini juga. salah satu tombol di laptop saya berhenti bekerja jadi sekarang simpan keyboard eksternal di atasnya dan terus menekan tombol kontrol dan apa yang tidak. Ini memperbaikinya, terima kasih!
notttytipsy
1
Terima kasih. Tetapi setelah me-restart laptop saya, keyboard diaktifkan secara otomatis. Jadi sepanjang waktu ketika saya menggunakan komputer saya, saya ingin melakukan langkah-langkah di atas untuk menonaktifkan keyboard internal yang telah Anda sebutkan. Apakah ada kemungkinan untuk dinonaktifkan secara permanen?
Dinesh ML
2
Tidakkah xinput menonaktifkan / mengaktifkan melakukan hal yang sama?
SomeNickName
18

Berikut ini adalah tombol sakelar kecil untuk mengaktifkan dan menonaktifkan keyboard tertentu. Pertama, Anda harus menemukan id keyboard Anda dengan xinputatau xinput-list.

Bash script untuk mengaktifkan / menonaktifkan keyboard

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

Konfigurasi

  • Iconsebagai jalur ikon untuk ditampilkan saat mengaktifkan (misalnya, /home/user/path/icon.png)
  • Icoff sebagai jalur ikon untuk ditampilkan saat menonaktifkan
  • Saya menggunakan ikon-ikon berikut: masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

  • idsebagai id keyboard (ditemukan dengan xinput)

  • fconfigpath ke file konfigurasi. Ubah jika Anda ingin membuat file konfigurasi di direktori lain

Jangan mencoba menjalankan skrip jika Anda tidak dapat menjalankannya lagi tanpa menggunakan keyboard Anda (kecuali tentu saja Anda punya keyboard lain). Buat peluncur berikut (dalam home/user/.local/share/applications) dan tambahkan ke kesatuan:

Entri desktop (peluncur Persatuan)

[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

HASIL:

Peluncur:

masukkan deskripsi gambar di sini

Pemberitahuan:

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

mxdsp
sumber
Ini bekerja dengan baik, terima kasih telah menjelaskannya dengan jelas. Ada satu hal yang saya tidak mengerti: bagaimana cara membuat ikon berubah sesuai dengan logika skrip shell. Saya pikir ini ditentukan sebagian oleh "Ikon = PATH / TO / YOUR / ICON" di entri Desktop, saya telah menggunakan jalur absolut, "/home/.../icon_on.png" karena saya tidak tahu bagaimana lagi untuk menggunakan file ".desktop" meskipun saya dapat melihat bahwa ini dapat mencegahnya beralih ikon. Adakah yang bisa memberikan petunjuk?
Puffin
1
Hai, Anda benar tentang jalur absolut dalam file .desktop. Maaf tapi saya tidak tahu cara membuat perubahan dinamis untuk ikon peluncur. Menurut jawaban itu, sama sekali tidak mungkin: askubuntu.com/a/244951/458410 . Ikon dalam skrip saya hanya berubah dalam notifikasi.
mxdsp
Ah ha, ok itu masuk akal, punyaku juga, terima kasih.
Puffin
Sebuah perbaikan yang mungkin: bukan menyimpan negara dalam file Anda dapat memeriksa langsung jika keyboard dinonaktifkan dengan perintah ini: function is-disabled() { xinput --list --long | grep -A 1 "id=$1" | grep -q disabled }. Dengan begitu semuanya bekerja bahkan jika keyboard diaktifkan / dinonaktifkan oleh program lain.
dshepherd
fconfig=".keyboard" if [ ! -f $fconfig ]; Di sini, apa itu .keyboard? Dan keduanya fconfigdan $fconfigsama? Dan juga apa ! -f $fconfigartinya? Saya baru dalam bash scripting. Terima kasih :)
sphoenix
12

Saya memikirkan 2 cara Anda dapat melakukan ini:

  1. Dengan mengatur model yang salah untuk keyboard laptop Anda di xorg.conf?

  2. Dengan menginstal Lock-keyboard-for-Baby

Singkatnya `Lock-keyboard-for-Baby atau lk4b, adalah program kecil yang mengunci keyboard Anda tetapi membiarkan mouse Anda bebas. Saya menulisnya karena keponakan saya suka menampar keyboard saya setiap kali dia melihat saya duduk di sana. Tombol yang diketik pada keyboard dapat memiliki konsekuensi yang berbahaya dan saya tidak ingin mengunci layar saya sepanjang waktu dengan screensaver.

Ketika dimulai, kunci-keyboard-untuk-bayi membuka jendela kecil yang mengambil keyboard dan tombol gema yang diketik. Secara default, ini memberi tahu Anda apa yang harus diketik untuk berhenti ("Berhenti Sekarang").

Tidak seperti screensaver, layar Anda tidak diblokir dan mouse masih berfungsi sebagian, sehingga Anda masih dapat melihat apa yang ada di layar Anda - tetap menonton tv / video dan / atau membaca dokumen menggunakan mouse untuk menggulir. `

Persyaratan:

· GTK> = 2.x · perl ikatan GTK2 (perl-gtk2 atau gtk2-perl tergantung pada sistem Anda)

LnxSlck
sumber
1
ini bukan apa yang saya butuhkan, saya harus menggunakan keyboard usb saya, tetapi kode Anda sangat berguna! ;)
atmon3r
Lock-keyboard-for-Baby akan memungkinkan Anda menonaktifkan keyboard internal sambil mempertahankan penggunaan eksternal
LnxSlck
Cemerlang. Lock-Keyboard-For-Baby juga berfungsi di Ubuntu 16.04. Saya lebih suka kode menggunakan pena dan paperbook menyimpannya di keyboard. Utilitas kecil ini memecahkan masalah saya. Untuk yang lain, Anda mungkin harus menjalankan sudo apt-get install libgtk2-perl sebelum menjalankan skrip perl
mac
"Quit Now", Quit Now atau keluar sekarang tidak berfungsi di bawah 18,04 dengan keyboard USB tower menara.
fleamour
10

Satu cara pasti untuk menonaktifkannya adalah mencabut kabel sinyal. Anda perlu memunculkan keyboard untuk itu. Untuk informasi tentang cara melakukannya, lihat Panduan Perawatan dan Layanan untuk PC Notebook HP Pavilion dv9000 dan dv9200 .

Sekarang ada cara untuk menonaktifkan penggunaan keyboard xinput. T lakukan itu, cukup tekan Ctrl+ Alt+ Tdi keyboard Anda untuk membuka Terminal. Saat terbuka, jalankan perintah di bawah ini.

Untuk daftar perangkat X Anda

xinput --list

Untuk menonaktifkan keyboard:

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

Untuk mengaktifkan kembali keyboard:

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

Jika Anda mendapatkan kesalahan tentang izin, gunakan perintah di atas dengan sudo.

Mitch
sumber
5

Perangkat idditerima dari xinput listseperti yang disarankan dalam jawaban yang diterima kadang-kadang entah bagaimana diubah saat reboot (setidaknya pada PC saya) yang mengakibatkan menonaktifkan perangkat yang salah.

Itu sebabnya saya akhirnya menggunakan device namebukan id, misalnya:

xinput disable "AT Translated Set 2 keyboard"
janot
sumber
5

Untuk Menonaktifkan keyboard internal Laptop secara permanen Di Ubuntu, Perlu melewati i8042.nokbdparameter Kernel ini untuk tidak memeriksa / membuat port keyboard

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

Buka terminal dan jalankan perintah berikut

$sudo gedit /etc/default/grub

Coba cari baris berikut

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Tambahkan parameter i8042.nokbd, baris di atas akan terlihat seperti ini

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nokbd"

Perbarui grub sebagai perintah berikut

$sudo update-grub     

Lalu rebootkomputer laptop Anda.

Rokibul Hasan
sumber
Bagaimana saya mengaktifkan kembali keyboard saya?
Guilherme Parreira
4

Jika saya akan membersihkan keyboard dan karena itu selalu harus mematikan mesin. Akibatnya saya menemukan ini, untuk sementara menonaktifkan keyboard:

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

t -waktu tidur dalam hitungan detik

id # dan master # sebagaimana disebutkan di atas ( atas halaman )

misalnya di notebook saya, saya mengetik:

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

Coba jalankan xmodmap -e 'keycode 24='untuk menonaktifkan hanya kunci Q. Jika itu berhasil, Anda bisa menambahkannya ke file ~/.bashrcglobal Anda /etc/bash.bashrc. Saya mendapat ide ini dari sini , yang menunjukkan semua pemetaan kunci.

dxvxd
sumber
4
Bukankah ini juga menonaktifkan qkeyboard eksternal?
Sparhawk
2

Untuk apa nilainya, berdasarkan jawaban sebelumnya dan saya sendiri bermain-main, saya membuat skrip berikut, yang saya sebut toggle_keyboard.shdan tempatkan di ~/binjalur saya . Saya memiliki pintasan keyboard yang menjalankannya diatur ke CtrlWinK.

Beberapa masalah dengan jawaban dan manfaat skrip saya sebelumnya:

  • Mengandalkan nomor id dengan xinput gagal ketika Anda reboot dan nomor id berubah. Ini terjadi pada saya ketika berlari xinput float 13. Saya akhirnya menonaktifkan perangkat keras yang salah.
  • Mengandalkan file untuk menahan keadaan yang diaktifkan / dinonaktifkan akan gagal jika Anda reboot juga. File akan memberi tahu Anda bahwa keyboard dinonaktifkan (jika Anda menonaktifkannya dengan skrip), tetapi setelah reboot akan diaktifkan kembali. Solusi saya mendapatkan informasi yang diaktifkan / dinonaktifkan dari perintah xinput yang diuraikan.
  • Skrip saya akan berfungsi dengan perangkat xinput apa pun yang muncul saat Anda mengetik xinput list --name-only. Cukup dapatkan nama dan edit empat variabel teratas. Saya menggunakannya untuk keyboard laptop, webcam, monitor layar sentuh, dan beberapa hal lain yang saya gunakan hanya sesekali.

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

xinput float "AT Translated Set 2 keyboard"

Setelah menghabiskan berjam-jam selama bertahun-tahun dengan metode yang berbeda dengan distro dan rilis yang berbeda. Perintah terminal di atas adalah apa yang saya andalkan setelah masalah ..... Saya menggunakan ini sekarang dengan neon plasma dan menggunakannya sebulan lalu di ubuntu langsung 18.04. (perlu diterapkan setelah restart - dapat ditempatkan di startup) * Keyboard bawaan saya pada Laptop HP saya yang rusak dan mulai mengetik yang menyebabkan masalah serius - Saya menggunakan keyboard dan mouse nirkabel - touchpad dihidupkan / dimatikan sebagai bagian dari topbar KDE Pilihan - neon / plasma 5). Dalam pengaturan sistem / mulai otomatis File teks dengan baris kode berikut disimpan sebagai file .sh dan ditetapkan sebagai executable (properti file txt)
xinput float "AT Translated Set 2 keyboard"

File teks diberi nama> keyboardoff> dan ditempatkan di autostart (executable) Ketika Anda me-restart / memulai sistem> keyboard bawaan dimatikan. (gunakan daftar xinput untuk menguji)

williams duncan
sumber