Có cách nào để vô hiệu hóa bàn phím bên trong của máy tính xách tay không?


85

Một tuần trước, tôi đã đổ các thứ trong cốc lên bàn phím máy tính xách tay của mình. Một nửa số phím không còn hoạt động, ngoại trừ một! Chữ Q rất tích cực thường xuyên.

Điều này rất đáng lo ngại khi tôi làm việc.

Có cách nào để vô hiệu hóa bàn phím bên trong của máy tính xách tay không?

Có thể với xmodmap?


Đó là thương hiệu và mẫu máy tính xách tay nào?
Mitch

đó làHP pavilion dv9000
atmon3r

5
Cách đơn giản nhất sẽ là nhấc bàn phím và ngắt kết nối khỏi bo mạch chủ. Sau đó, bạn có thể đặt nó trở lại vị trí cũ, kết nối. Bằng cách này, bàn phím sẽ bị vô hiệu hóa sau khi cài đặt lại và bạn không cần phải bận tâm với phần mềm. Xem liên kết này, khoảng một nửa trang trên bàn phím, nó nằm ở bàn phím: insidemyl mỏi.com / W
Mark Paskal

Cũng có thể đáng để lấy nó ra, tách nó ra, làm sạch giữa các lớp ..
JonasCz

Câu trả lời:


135

Bạn có thể sử dụng xinputđể thả nổi thiết bị đầu vào trong X.

  1. Thực hiện lệnh xinput listđể liệt kê các thiết bị đầu vào của bạn.
  2. Xác định vị trí AT Translated Set 2 keyboardvà ghi chú số của nó id; điều này sẽ được sử dụng để vô hiệu hóa bàn phím. Ngoài ra, hãy lưu ý số ở cuối , [slave keyboard (#)]; đây là số id của master, sẽ được sử dụng để kích hoạt lại bàn phím của bạn.
  3. Để tắt bàn phím, hãy thực hiện lệnh xinput float <id#>, <id#>số id của bàn phím của bạn ở đâu . Ví dụ, nếu id10, thì lệnh sẽ là xinput float 10.
  4. Để kích hoạt lại bàn phím, hãy thực hiện lệnh xinput reattach <id#> <master#>, mastersố thứ hai chúng tôi ghi nhận ở đâu. Vì vậy, nếu số lượng là 3, bạn sẽ làm xinput reattach 10 3.

Đây là một minh chứng:

danh sách $ xinput
Con trỏ lõi ảo id = 2 [con trỏ chính (3)]
⎜ Lõi ảo con trỏ XTEST id = 4 [con trỏ nô lệ (2)]
⎜ SynPS / 2 Synaptics TouchPad id = 11 [con trỏ nô lệ (2)]
⎜ Logitech USB-PS / 2 Chuột quang id = 12 [con trỏ nô lệ (2)]
Thiết bị hợp nhất Logitech. PID không dây: 4004 id = 13 [con trỏ nô lệ (2)]
Id Bàn phím lõi ảo id = 3 [bàn phím chính (2)]
    Lõi ảo Xt bàn phím id = 5 [bàn phím phụ (3)]
    Nút nguồn id = 6 [bàn phím phụ (3)]
    Id Video Bus id = 7 [bàn phím phụ (3)]
    Nút ngủ id = 8 [bàn phím phụ (3)]
    Webcam Acer CrystalEye webcam id = 9 [bàn phím nô lệ (3)]
    AT dịch Bộ 2 bàn phím id = 10    [bàn phím phụ ( 3 )]
 $ xinput float 10 
$ danh sách xinput
Con trỏ lõi ảo id = 2 [con trỏ chính (3)]
⎜ Lõi ảo con trỏ XTEST id = 4 [con trỏ nô lệ (2)]
⎜ SynPS / 2 Synaptics TouchPad id = 11 [con trỏ nô lệ (2)]
⎜ Logitech USB-PS / 2 Chuột quang id = 12 [con trỏ nô lệ (2)]
Thiết bị hợp nhất Logitech. PID không dây: 4004 id = 13 [con trỏ nô lệ (2)]
Id Bàn phím lõi ảo id = 3 [bàn phím chính (2)]
    Lõi ảo Xt bàn phím id = 5 [bàn phím phụ (3)]
    Nút nguồn id = 6 [bàn phím phụ (3)]
    Id Video Bus id = 7 [bàn phím phụ (3)]
    Nút ngủ id = 8 [bàn phím phụ (3)]
    Webcam Acer CrystalEye webcam id = 9 [bàn phím nô lệ (3)]
AT được dịch Đặt 2 bàn phím id = 10 [nô lệ nổi]
$ xinput reattach 10 3 
$ danh sách xinput
Con trỏ lõi ảo id = 2 [con trỏ chính (3)]
⎜ Lõi ảo con trỏ XTEST id = 4 [con trỏ nô lệ (2)]
⎜ SynPS / 2 Synaptics TouchPad id = 11 [con trỏ nô lệ (2)]
⎜ Logitech USB-PS / 2 Chuột quang id = 12 [con trỏ nô lệ (2)]
Thiết bị hợp nhất Logitech. PID không dây: 4004 id = 13 [con trỏ nô lệ (2)]
Id Bàn phím lõi ảo id = 3 [bàn phím chính (2)]
    Lõi ảo Xt bàn phím id = 5 [bàn phím phụ (3)]
    Nút nguồn id = 6 [bàn phím phụ (3)]
    Id Video Bus id = 7 [bàn phím phụ (3)]
    Nút ngủ id = 8 [bàn phím phụ (3)]
    Webcam Acer CrystalEye webcam id = 9 [bàn phím nô lệ (3)]
    AT được dịch Bộ 2 bàn phím id = 10 [bàn phím phụ (3)]

Tôi quan tâm đến giải pháp này! xinput pastebin.com/puDxQaZ8 của tôi vì vậy tôi đoán đó sẽ là: xinput float 14Truy vấn này có thể đảo ngược? Làm thế nào để kích hoạt bàn phím sau này?
atmon3r

2
Bạn sẽ sử dụng reattachđối số để gắn lại nó. xinput reattach 14 3
Ignacio Vazquez-Abrams

1
Câu trả lời hoàn hảo - cũng đang tìm kiếm điều này. bất kỳ phím nào trên máy tính xách tay của tôi đã ngừng hoạt động, vì vậy bây giờ hãy giữ một bàn phím ngoài và nó tiếp tục nhấn phím điều khiển và những gì không. Điều này đã sửa nó lên, cảm ơn!
đáng chú ý là

1
Cảm ơn. Nhưng sau khi khởi động lại máy tính xách tay của tôi, bàn phím được bật tự động. Vì vậy, tất cả thời gian khi tôi sử dụng máy, tôi muốn thực hiện các bước trên để tắt bàn phím bên trong mà bạn đã đề cập. Có bất kỳ khả năng để vô hiệu hóa vĩnh viễn?
Dinesh ML

2
Sẽ không vô hiệu hóa / kích hoạt làm điều tương tự?
Một số tên

18

Đây là một nút chuyển đổi nhỏ để bật và tắt một bàn phím cụ thể. Đầu tiên, bạn phải tìm id bàn phím của bạn với xinputhoặc xinput-list.

Tập lệnh Bash để bật / tắt bàn phím

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

Cấu hình

  • Iconlà đường dẫn của biểu tượng để hiển thị khi bật (ví dụ /home/user/path/icon.png:)
  • Icoff là đường dẫn của biểu tượng sẽ hiển thị khi tắt
  • Tôi đã sử dụng các biểu tượng sau: nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

  • idnhư id bàn phím (tìm thấy nó với xinput)

  • fconfigđường dẫn đến tập tin cấu hình. Thay đổi nếu bạn muốn tạo tập tin cấu hình trong thư mục khác

Đừng cố chạy tập lệnh nếu bạn không thể chạy lại tập lệnh mà không sử dụng bàn phím (trừ khi bạn có bàn phím khác). Tạo launcher sau (in home/user/.local/share/applications) và thêm nó vào unity:

Mục máy tính để bàn (Trình khởi chạy 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

KẾT QUẢ :

Trình khởi chạy:

nhập mô tả hình ảnh ở đây

Thông báo:

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây


Điều này hoạt động tốt, cảm ơn bạn đã giải thích rõ ràng. Có một điều mà tôi không hiểu: làm thế nào để thay đổi biểu tượng theo logic tập lệnh shell. Tôi nghĩ rằng điều này được xác định một phần bởi "Icon = PATH / TO / YOU / ICON" trong mục Desktop, tôi đã sử dụng một đường dẫn tuyệt đối, "/home/.../icon_on.png" vì tôi không biết làm thế nào khác để sử dụng tệp ".desktop" mặc dù tôi có thể thấy rằng điều này có thể ngăn nó chuyển đổi biểu tượng. Bất cứ ai có thể cung cấp một đầu mối xin vui lòng?
Puffin

1
Xin chào, bạn nói đúng về đường dẫn tuyệt đối trong tệp .desktop. Xin lỗi nhưng tôi không biết cách tạo thay đổi động cho biểu tượng trình khởi chạy. Theo câu trả lời đó, hoàn toàn không thể: Askubfox.com/a/244951/458410 . Biểu tượng trong tập lệnh của tôi chỉ thay đổi trong thông báo.
mxdsp

Ah ha, ok điều đó có ý nghĩa, tôi cũng làm như vậy, cảm ơn bạn.
Puffin

Một cải tiến có thể có: thay vì lưu trữ trạng thái trong một tệp, bạn có thể kiểm tra trực tiếp nếu bàn phím bị tắt bằng lệnh này : function is-disabled() { xinput --list --long | grep -A 1 "id=$1" | grep -q disabled }. Bằng cách đó, mọi thứ hoạt động ngay cả khi bàn phím được bật / tắt bởi một chương trình khác.
dshepherd

fconfig=".keyboard" if [ ! -f $fconfig ]; Đây là .keyboardgì? Và cả hai fconfig$fconfiggiống nhau? Và cũng có ! -f $fconfignghĩa là gì? Tôi là người mới trong kịch bản bash. Cảm ơn :)
sphoenix

12

Tôi nghĩ về 2 cách bạn có thể làm điều này:

  1. Bằng cách thiết lập một mô hình sai cho bàn phím máy tính xách tay của bạn trong xorg.conf?

  2. Bằng cách cài đặt Lock-keyboard-for-Baby

`Khóa bàn phím cho em bé hoặc lk4b, là một chương trình nhỏ khóa bàn phím của bạn nhưng không để chuột tự do. Tôi đã viết nó bởi vì cháu gái của tôi thích bash bàn phím của tôi bất cứ khi nào cô ấy thấy tôi ngồi xuống nó. Các phím được gõ trên bàn phím có thể gây hậu quả tai hại và tôi không muốn khóa màn hình của mình mọi lúc bằng trình bảo vệ màn hình.

Khi bắt đầu, khóa bàn phím cho bé mở một cửa sổ nhỏ lấy bàn phím và phím tiếng vang được gõ. Theo mặc định, nó sẽ cho bạn biết nên gõ gì để thoát ("Thoát ngay").

Không giống như trình bảo vệ màn hình, màn hình của bạn không bị chặn và chuột vẫn hoạt động một phần, do đó bạn vẫn có thể thấy những gì trên màn hình của mình - tiếp tục xem tv / video và / hoặc đọc tài liệu bằng chuột để cuộn.

Yêu cầu:

· GTK> = 2.x · liên kết GTK2 perl (perl-gtk2 hoặc gtk2-perl tùy thuộc vào hệ thống của bạn)


1
Đây không phải là chính xác những gì tôi cần, tôi cần sử dụng bàn phím usb của mình, nhưng mã của bạn rất hữu ích! ;)
atmon3r

Lock-keyboard-for-Baby sẽ cho phép bạn vô hiệu hóa bàn phím bên trong của mình trong khi vẫn duy trì việc sử dụng bên ngoài
LnxSlck

Xuất sắc. Lock-Keyboard-For-Baby cũng hoạt động trong Ubuntu 16.04. Tôi thích viết mã bằng bút và sách giữ nó trên bàn phím. Tiện ích nhỏ bé này đã giải quyết vấn đề của tôi. Đối với những người khác, bạn có thể phải chạy sudo apt-get install libgtk2-perl trước khi chạy tập lệnh perl
mac

"Thoát ngay bây giờ", Thoát ngay bây giờ hoặc thoát ngay bây giờ không có việc gì dưới 18.04 với bàn phím USB của máy tính để bàn.
fleamour

10

Một cách chắc chắn để vô hiệu hóa nó là rút cáp tín hiệu. Bạn cần phải bật lên bàn phím cho điều đó. Để biết thông tin về cách thực hiện điều đó, hãy xem Hướng dẫn bảo trì và dịch vụ cho Máy tính xách tay HP Pavilion dv9000 và dv9200 .

Bây giờ có một cách để vô hiệu hóa bàn phím bằng cách sử dụng xinput. T làm điều đó, chỉ cần nhấn Ctrl+ Alt+ Ttrên bàn phím của bạn để mở Terminal. Khi nó mở ra, chạy các lệnh bên dưới.

Để liệt kê các thiết bị X của bạn

xinput --list

Để tắt bàn phím:

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

Để bật lại bàn phím:

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

Nếu bạn gặp lỗi về quyền, hãy sử dụng các lệnh trên với sudo.


5

Thiết bị idnhận được từ xinput listnhư được đề xuất trong câu trả lời được chấp nhận đôi khi bị thay đổi khi khởi động lại (ít nhất là trên PC của tôi) dẫn đến vô hiệu hóa thiết bị sai.

Đó là lý do tại sao tôi đã kết thúc sử dụng device namethay vì id, ví dụ:

xinput disable "AT Translated Set 2 keyboard"

5

Để vô hiệu hóa bàn phím bên trong của máy tính xách tay vĩnh viễn Trên Ubuntu, Cần vượt qua i8042.nokbdcác tham số Kernel này để không kiểm tra / tạo cổng bàn phím

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

Mở terminal và chạy lệnh sau

$sudo gedit /etc/default/grub

Cố gắng tìm dòng sau

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Thêm tham số i8042.nokbd, dòng trên sẽ giống như thế này

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nokbd"

Cập nhật grub như lệnh sau

$sudo update-grub     

Sau đó, rebootmáy tính xách tay của bạn.


Làm thế nào tôi có thể kích hoạt lại bàn phím của tôi?
Guilherme Parreira

4

Nếu tôi muốn làm sạch bàn phím và vì điều đó luôn phải tắt máy. Do đó, tôi phát hiện ra điều này, để tạm thời vô hiệu hóa bàn phím:

$ xinput float id #; ngủ t ; xinput reattach id # master #

thời gian để ngủ trong vài giây

id # master # như đã đề cập ở trên ( đầu trang )

ví dụ trong sổ ghi chép của tôi, tôi đã gõ:

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

3

Hãy thử chạy xmodmap -e 'keycode 24='để vô hiệu hóa phím Q. Nếu nó hoạt động, bạn có thể thêm nó vào tập tin ~/.bashrctoàn cầu hoặc của bạn /etc/bash.bashrc. Tôi có ý tưởng này từ đây , trong đó hiển thị tất cả các ánh xạ chính.


4
Điều này cũng sẽ không vô hiệu hóa qtrong bàn phím ngoài?
Sparhawk

2

Để biết giá trị của nó, dựa trên các câu trả lời trước đó và của riêng tôi, tôi đã tạo ra kịch bản sau đây, mà tôi gọi toggle_keyboard.shvà đặt vào ~/binđường dẫn của mình . Tôi có một phím tắt chạy nó được đặt thành CtrlWinK.

Một số vấn đề với các câu trả lời trước và lợi ích của tập lệnh của tôi:

  • Dựa vào số id với xinput không thành công khi bạn khởi động lại và số id được thay đổi. Điều này xảy ra với tôi khi chạy xinput float 13. Tôi đã kết thúc việc vô hiệu hóa phần cứng sai.
  • Dựa vào một tập tin để giữ trạng thái kích hoạt / vô hiệu hóa sẽ thất bại nếu bạn cũng khởi động lại. Tệp sẽ cho bạn biết bàn phím bị tắt (nếu bạn tắt nó với tập lệnh), nhưng sau khi khởi động lại, nó sẽ được bật lại. Giải pháp của tôi nhận được thông tin được bật / tắt từ lệnh xinput được phân tích cú pháp.
  • Tập lệnh của tôi sẽ hoạt động với mọi thiết bị xinput xuất hiện khi bạn nhập xinput list --name-only. Chỉ cần lấy tên và chỉnh sửa bốn biến hàng đầu. Tôi sử dụng nó cho bàn phím máy tính xách tay, webcam, màn hình cảm ứng và một vài thứ khác tôi chỉ sử dụng một lần trong một thời gian.

#!/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 dịch bộ 2 bàn phím"

Sau khi dành hàng giờ qua nhiều năm với các phương pháp khác nhau với các bản phát hành và bản phát hành khác nhau. Lệnh thiết bị đầu cuối ở trên là những gì tôi dựa vào sau khi gặp sự cố ..... Tôi sử dụng ngay bây giờ với plasma neon và đã sử dụng nó một tháng trước trong phiên bản trực tiếp 18.04. (cần áp dụng sau khi khởi động lại - có thể được khởi động) * Bàn phím tích hợp trên Máy tính xách tay HP của tôi bị hỏng và bắt đầu nhập gây ra sự cố nghiêm trọng - Tôi sử dụng bàn phím và chuột không dây - bàn phím cảm ứng được bật / tắt như một phần của thanh trên KDE tùy chọn - neon / plasma 5). Trong cài đặt hệ thống / tự động khởi động Một tệp văn bản có dòng mã sau được lưu dưới dạng tệp .sh và được đặt là tệp thực thi (thuộc tính tệp txt)
xinput float "Bàn phím AT được dịch 2"

Tệp văn bản được đặt tên> bàn phím> và được đặt tự động khởi động (thực thi) Khi bạn khởi động lại / khởi động hệ thống> bàn phím tích hợp bị tắt. (sử dụng danh sách xinput để kiểm tra)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.