Bật / tắt bàn di chuột


17

Tôi đã quản lý để cài đặt Ubuntu 16.04 trên asus ux501 vw của mình, nhưng một số phím tắt của tôi không hoạt động. Tôi không tìm cách khắc phục tất cả, nhưng chỉ có một: phím tắt cho phép tôi bật hoặc tắt bàn di chuột, vì vậy tôi có thể viết các tài liệu dài với hoạt động về bàn di chuột.

Tôi đã cố gắng tìm nó trên google nhưng tôi không nhận được gì.

Ai đó có thể giải thích cho tôi làm thế nào để sửa chữa xin vui lòng? Cảm ơn !

Câu trả lời:


24

Tôi đã tạo tập lệnh bash này từ câu trả lời của negusp . Nó tìm và bật thiết bị TouchPad. Bạn có thể cấu hình một phím tắt tùy chỉnh cho nó trong cài đặt hệ thống.

#!/bin/bash

read TPdevice <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.*id=([0-9]*).*/\1/p' )
state=$( xinput list-props "$TPdevice" | grep "Device Enabled" | grep -o "[01]$" )

if [ "$state" -eq '1' ];then
    xinput --disable "$TPdevice" && notify-send -i emblem-nowrite "Touchpad" "Disabled"
else
    xinput --enable "$TPdevice" && notify-send -i input-touchpad "Touchpad" "Enabled"
fi

Tôi đang cài đặt Ctrl+ Shift+ F9để bật và tắt bàn di chuột như thế này:

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

Chỉnh sửa: Bạn có thể cần phải làm cho tập lệnh của mình có thể thực thi được bằng lệnh chmod + x tên tệp hoặc input / bin / bash / filepath vào trường Lệnh của cửa sổ Phím tắt tùy chỉnh.


2
Ít khi có nhu cầu xâu chuỗi grepsed. Bạn có thể dễ dàng hợp nhất hai đến sed -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p'.
David Foerster

3
Một sửa chữa nhỏ trong tập lệnh cho Ubuntu 17.10 sau khi gặp lỗi dòng 6: [:: biểu thức số nguyên dự kiến ​​không thể tìm thấy thiết bị Thay đổi TouchPad thành Touchpad
Gregor Grajzar

1
Câu trả lời tuyệt vời! Bổ sung duy nhất của tôi là thêm zenity --info --text "Touchpad DISABLED" --timeout=2zenity --info --text "Touchpad ENABLED" --timeout=2vào khối ifvà của bạn else, tương ứng, để bật lên một cửa sổ thông báo trạng thái mới sau đó tự động tắt trong 2 giây.
Gabriel Staples

1
Xem sửa đổi nhỏ của tôi ở đây: Askubfox.com/a/1109515/327339
Gabriel Staples

1
Cập nhật: một số hệ thống hiển thị Touchpadthay vì TouchPadở đầu ra từ xinput, vì vậy tôi đã cập nhật câu trả lời của mình để tìm kiếm cả hai. Ngoài ra, tôi cũng đã khắc phục sự cố bánh xe cuộn chậm một cách chính xác imwheel. Xem đầy đủ ans tại đây: askubfox.com/questions/844151/enable-disable-touchpad/ mẹo
Gabriel Staples

11

Bạn muốn phím tắt, nhưng bạn có thể dễ dàng đặt 2 tập lệnh trên màn hình nền và thực thi chúng.

Đầu tiên, đi đến thiết bị đầu cuối. Loại xinput. Ví dụ đầu ra:

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Laptop_Integrated_Webcam_1.3M             id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys 

Tìm Touchpad. Trong ví dụ này, bàn di chuột được liệt kê là id = 12

Tạo tập lệnh đầu tiên với điều này:

#!/bin/bash
xinput enable 12

Lưu nó và đặt tên cho nó touchpadenable.sh, và trong thiết bị đầu cuối, đánh dấu nó là thực thi với:

chmod +x touchpadenable.sh

Thực hiện lại chính xác cùng một lần nữa, nhưng đổi tên tệp thành touchpaddisable.sh(hoặc bất cứ điều gì) và thay vì

xinput enable 12

Sử dụng lệnh

xinput disable 12

Lưu, đánh dấu là có thể thực thi và bạn sẽ có thể chạy các tập lệnh từ máy tính để bàn. Lưu ý: bạn có thể phải bấm chuột phải vào tập lệnh, bấm vào thuộc tính và cho phép nó được thực thi.


Này, cảm ơn vì câu trả lời! Tôi sẽ sử dụng một cái gì đó như thế này! Chỉ có một điều bạn có nghĩ là có thể nếu tôi tạo nó trên 1 tập lệnh để tôi có thể sử dụng cùng một phím tắt không?
Rei

@Thomas Xem câu trả lời này: askubfox.com/questions/597395/ trên
negusp

6

Bạn phải làm như câu trả lời của negusp , trước tiên hãy kiểm tra thiết bị cảm ứng của bạn và sẽ hiển thị một cái gì đó như thế này:

~ $ xin thông báo
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)]
⎜ ↳ Chuột quang USB PixArt Dell MS116 id = 10 [con trỏ nô lệ (2)]
⎜ SynPS / 2 Synaptics TouchPad id = 14 [con trỏ nô lệ (2)]
⎜ DLLC6B2: 00 06CB: 75BF Touchpad id = 12 [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 nguồn id = 8 [bàn phím phụ (3)]
    Nút ngủ id = 9 [bàn phím phụ (3)]
    Tích hợp_Webcam_HD id = 11 [bàn phím nô lệ (3)]
    AT được dịch Bộ 2 bàn phím id = 13 [bàn phím phụ (3)]
    Phím nóng Dell WMI id = 15 [bàn phím phụ (3)]
    DELL Các phím nóng không dây id = 16 [bàn phím nô lệ (3)]

Trong trường hợp của tôi là thiết bị có id = 12, bây giờ hãy tạo tập lệnh bash có tên "toggle-touch" trong thư mục Desktop của bạn trong thư mục có tên "bin", sẽ là "~ / Desktop / bin" và sao chép mã tiếp theo, kiểm tra biến thiết bị được trỏ đến cảm ứng của tôi id = 12, hãy sửa nó với trường hợp của bạn:

#!/bin/bash

device=12
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`

if [ $state == '1' ];then
  xinput --disable $device
else
  xinput --enable $device
fi

Đặt thành quyền thực thi tập lệnh này:

chmod 775 /Desktop/bin/toggle-touch

Cuối cùng, bạn có thể thêm đường dẫn này vào ".bashrc" từ thư mục chính của mình, chỉ cần thêm dòng này vào cuối tệp:

PATH=$PATH:~/Desktop/bin

cập nhật đường dẫn với:

. .bashrc

Sau đó, bạn có thể thực hiện kịch bản này từ bất cứ nơi nào, tôi hy vọng sự giúp đỡ này.


1

Trong câu trả lời Ubuntu 18.04 Almas Dusal của tôi đã không hoạt động cho đến khi tôi thay đổi 'p' thành chữ thường trong TouchPaddòng mã sau đây:

read TPdevice <<< $( xinput | sed -nre '/Touchpad/s/.*id=([0-9]*).*/\1/p' )

Sau đó, bàn di chuột đã bị vô hiệu hóa và được kích hoạt bởi tập lệnh nhưng điều đó không được phản ánh trong màn hình cài đặt Chuột và Bàn di chuột . Tôi đã tạo tập lệnh mới sau đây để tắt bàn di chuột trong khi cập nhật giao diện cài đặt.

#!/bin/bash

state=$( gsettings get org.gnome.desktop.peripherals.touchpad send-events )

if [ "$state" = "'enabled'" ];then
    gsettings set org.gnome.desktop.peripherals.touchpad send-events 'disabled' \
        && notify-send -i touchpad-disabled-symbolic "Touchpad" "Disabled"
else
    gsettings set org.gnome.desktop.peripherals.touchpad send-events 'enabled' \
        && notify-send -i input-touchpad-symbolic "Touchpad" "Enabled"
fi

1

Đã thử nghiệm và hoạt động trên Ubuntu 14.04, 16.04 và 18.04.

Hãy thích câu trả lời của @Almas Dusal , giống như câu trả lời của @ negusp , ngoại trừ sử dụng tập lệnh sửa đổi của tôi thay vì nó có 3 lợi ích bổ sung ( CẬP NHẬT: lợi ích 1 và 3 dưới đây đã được thêm vào ngày 12 tháng 9 năm 2019 ):

  1. Nó tìm kiếm đầu ra xinputcho cả TouchpadAND TouchPad, vì một số hệ thống có chữ P viết hoa trong khi các hệ thống khác thì không. Điều này làm cho tập lệnh của tôi tương thích với nhiều hệ thống hơn (hy vọng TẤT CẢ các hệ thống).
  2. Nó thêm các cửa sổ bật lên tự động đóng 2 giây thông qua zenityđể hiển thị liệu bàn di chuột của bạn bây giờ đã BỊ L orI hay BỊ XÓA. Xem ảnh chụp màn hình của các cửa sổ bật lên dưới đây.
  3. Nó khắc phục chính xác tốc độ bánh xe cuộn của bạn, cho phép imwheel(khắc phục sự cố bánh xe cuộn chậm của bạn trong Ubuntu / Linux khi sử dụng bánh xe cuộn chuột) khi bạn đang sử dụng chuột, trong khi vô hiệu hóa imwheelkhi sử dụng bàn di chuột, vì imwheelnếu không thì việc di chuyển bàn di chuột rất rối khi được kích hoạt
#!/bin/bash

# GS_toggle_touchpad.sh
# - toggle the touchpad on and off

# Gabriel Staples
# Written: 2 Apr. 2018 
# Updated: 12 Sept. 2019 

# References:
# - /ubuntu//a/874865/327339
# - /ubuntu/844151/enable-disable-touchpad/1109515#1109515 <-- my own ans!

# Search for id number of "TouchPad" OR "Touchpad" in `xinput` list; manually type `xinput` to see all your devices
read TouchPadDeviceId <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.*id=([0-9]*).*/\1/p' ) 

state=$( xinput list-props "$TouchPadDeviceId" | grep "Device Enabled" | grep -o "[01]$" )

echo "TouchPadDeviceId = $TouchPadDeviceId"
echo "state = $state"

if [ "$state" -eq '1' ];then
    xinput --disable "$TouchPadDeviceId"
    zenity --info --text "Touchpad DISABLED" --timeout=2
    # Next line required only if using imwheel to fix slow scroll speed in Chrome, for ex; see here: 
    # /ubuntu//a/991680/327339
    # imwheel -b "4 5"
else
    xinput --enable "$TouchPadDeviceId"
    zenity --info --text "Touchpad ENABLED" --timeout=2
    # Next line required only if using imwheel to fix slow scroll speed in Chrome, for ex; see here: 
    # /ubuntu//a/991680/327339
    # killall imwheel
fi

Lưu ý rằng điều imwheel chỉ được yêu cầu nếu bạn đang theo dõi câu trả lời này để sửa tốc độ bánh xe cuộn của bạn: Sửa vĩnh viễn tốc độ cuộn Chrome .

Bây giờ, gán cho nó một phím tắt Ctrl+ Alt+ P(hoặc bất cứ điều gì bạn chọn ['P' là viết tắt của touch'P'ad trong trường hợp của tôi]). Bổ sung của tôi vào kịch bản ở trên là phần zenitycửa sổ bật lên tự đóng, mà tôi mô tả nhiều hơn trong câu trả lời của mình ở đây ( /superuser//a/1310142/425838 ).

Bây giờ, khi tôi sử dụng phím tắt ở trên, tôi thấy cửa sổ bật lên này tự động đóng sau 2 giây:

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

Và nếu tôi nhấn lại lần nữa, tôi sẽ nhận được cửa sổ bật lên này, cửa sổ này sẽ tự động đóng sau 2 giây:

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

Hoàn hảo!

Là một phần thưởng bổ sung, nếu bạn là người dùng chuột nặng, chỉ cần thêm lệnh gọi tập lệnh của bạn ở trên vào các chương trình khởi động trong Ubuntu để nó chạy và vô hiệu hóa bảng theo dõi của bạn mỗi khi máy tính khởi động! Tôi có bộ này để tôi có thể thoát khỏi việc đập bàn phím bằng tay và vô tình xóa mọi thứ! Bây giờ, khi tay tôi chạm vào bảng theo dõi, không có gì xảy ra vì nó bị vô hiệu hóa. :)

Lưu ý: tất cả đều hoạt động tốt trong Ubuntu 18.04 cũng như các phiên bản cũ hơn. Tôi đã thử nghiệm nó trong Ubuntu 18.04 và Ubuntu 14.04. Đây là một ảnh chụp màn hình từ cửa sổ cài đặt phím tắt trong 18.04:

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

Liên quan:

  1. Sửa vĩnh viễn tốc độ cuộn Chrome

Không thể tải lại trên HP Probook của tôi. Có 2 mục trong xinput, SynPS/2 Synaptics TouchPadSYNA306A:00 06CB:CD0B Touchpad. Việc thực hiện đầu tiên vô hiệu hóa cái này, cái thứ hai vô hiệu hóa cái kia. Từ đó nó sẽ chuyển đổi thứ hai, nhưng không bao giờ là thứ nhất.
rtaft

0

Để lại kịch bản của tôi ở đây (ít nhiều giống như trên). Hoạt động tốt, không cần tra cứu ID thiết bị trước đó.

#!/bin/bash

function query_device_id {
    xinput list | grep -i touchpad | sed 's/.*id=\([0-9]*\).*/\1/g'
}

let device_id=$(query_device_id)

let state=$(xinput list-props $device_id | grep Enabled | awk '{print $4;}')

let new_state=$((1 - $state))

xinput set-prop $device_id "Device Enabled" $new_state

0

Tạo một tập lệnh shell và dán mã bên dưới vào nó và đặt tên là touchPadDisable.sh

#!/bin/bash
temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1)
xinput disable $temp

Tạo một tập lệnh shell khác và dán mã bên dưới vào nó và đặt tên là touchPadEnable.sh

#!/bin/bash
temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1)
xinput enable $temp

Tập lệnh đầu tiên sẽ vô hiệu hóa bàn di chuột và tập lệnh thứ hai sẽ kích hoạt bàn di chuột.

Bạn có thể thêm tập lệnh này vào các phím tắt tùy chỉnh trong bàn phím.


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.