Tôi phải dán một lệnh ở đâu đó để sử dụng lệnh khi ứng dụng Gnome?


10

Trên Thinkpad của tôi, tôi cần phải thực hiện một cái gì đó như thế này trong thiết bị đầu cuối:

xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Middle Button Emulation" 8 1

sao cho 2 nút trên bàn di chuột của tôi mô phỏng nhấp chuột giữa. Bây giờ tôi cần dòng này được thực thi mỗi khi tôi khởi động GNOMe hoặc X hoặc bất cứ thứ gì, để nó "chỉ hoạt động".

Tôi đã thử ~ / .xsession hoặc ~ / .bashrc nhưng không có kết quả. Tôi có nên đặt nó trong tập lệnh bắt đầu Gnome hoặc trong / etc / X ở đâu đó không?

Tôi đang sử dụng Ubuntu 11.10.


Hãy thử thêm một sleep 5vào đầu .xsessiontập tin của bạn ?
Thomas Ahle

1
@ThomasAhle sẽ không giải quyết được vấn đề nếu trình quản lý cửa sổ được tải và thay đổi các thuộc tính evdev sau khi .xsession được thực thi.
Marcin Kaminski

Câu trả lời:


7

Tôi đang sử dụng DM Khai sáng, nhưng có liên quan đến các DM / máy tính để bàn khác. Tôi bắt đầu phiên của mình bằng xsession vì vậy ban đầu tôi đặt các lệnh xinput vào ~ / .xsession không thay đổi tất cả các cài đặt tôi muốn thay đổi. Chỉ một số trong số họ. Tôi đã mong đợi tất cả hoặc không có thay đổi, vì vậy tôi đã thêm một vòng lặp 10 lần vào .xsession của mình với các khoảng thời gian 1 giây, chạy các lệnh xinput mỗi lần và kiểm tra xem các cài đặt có được áp dụng không. Thật ngạc nhiên, tất cả các cài đặt đã được áp dụng sau lần lặp đầu tiên.

Điều này có nghĩa là DM của bạn thực hiện điều gì đó để ghi đè cài đặt xinput của bạn và vì lệnh khởi chạy DM của bạn (E17 trong trường hợp của tôi) là lệnh cuối cùng trong tệp .xsession của bạn, tệp này không có chỗ cho việc này.

Tôi đã thêm các dòng sau vào ~ / .profile của mình và điều này đã giải quyết được vấn đề:

# don't run unless we're being invoked from an xwindows session
if [[ -n ${DISPLAY} ]]; then

  # set your devices names here
  pointer1="IBM TrackPoint"
  pointer2="Lite-On Technology Corp. ThinkPad USB Keyboard with TrackPoint"
  pointer3="Logitech USB Trackball"

  id1=$(xinput | awk -F= "/$pointer1.*pointer/ {print \$2}" | cut -f1)
  id2=$(xinput | awk -F= "/$pointer2.*pointer/ {print \$2}" | cut -f1)
  id3=$(xinput | awk -F= "/$pointer3.*pointer/ {print \$2}" | cut -f1)

  if [[ -n "${id1}" ]]; then
    xinput --set-button-map "${id1}" 1 2 3 4 5 6 7
    xinput set-prop "${id1}"  "Evdev Wheel Emulation Axes" 6 7 4 5
    xinput set-prop "${id1}"  "Evdev Wheel Emulation" 1
    xinput set-prop "${id1}"  "Evdev Wheel Emulation Button" 2
    xinput set-prop "${id1}"  "Evdev Middle Button Emulation" 0
  fi

  if [[ -n "${id2}" ]]; then
    xinput --set-button-map "${id2}" 1 2 3 4 5 6 7
    xinput set-prop "${id2}"  "Evdev Wheel Emulation Axes" 6 7 4 5
    xinput set-prop "${id2}"  "Evdev Wheel Emulation" 1
    xinput set-prop "${id2}"  "Evdev Wheel Emulation Button" 2
    xinput set-prop "${id2}"  "Evdev Middle Button Emulation" 0
  fi

  if [[ -n "${id3}" ]]; then
    xinput --set-button-map "${id3}" 1 2 3 4 5 6 7 8 9
    xinput set-prop "${id3}"  "Evdev Wheel Emulation Axes" 6 7 4 5
    xinput set-prop "${id3}"  "Evdev Wheel Emulation" 1
    xinput set-prop "${id3}"  "Evdev Wheel Emulation Button" 8
    xinput set-prop "${id3}"  "Evdev Middle Button Emulation" 1
  fi
fi

Tái bút set-int-prop đã bị từ chối ủng hộ set-prop (man xinput).

Hy vọng điều này sẽ giúp được ai đó.


Kịch bản rất hay, nhưng thật không may, tôi không đưa ra giải pháp. Hiện tại, phương thức duy nhất hoạt động, nếu tôi chạy thiết bị đầu cuối và sau đó chạy 'xinput set-prop' với các tùy chọn bắt buộc. Tôi đã thử kịch bản của Marcin, Ứng dụng khởi động nhưng chúng không hoạt động.
Geeocode

"set-int-prop đã bị từ chối ủng hộ set-prop" T • H • A • N • K • • Y • O • U •
Clément

4

Thêm lệnh trực tiếp vào các ứng dụng khởi động. Trong trường lệnh.

hoặc là

tạo một tập lệnh đơn giản và thêm tập lệnh vào các ứng dụng khởi động.


3

Tạo một tập tin /etc/X11/Xsession.d/cho nó.


Đối với tôi đó là/etc/X11/xinit/Xsession
Thomas Ahle

3
Tôi thường không khuyến khích thực hiện thay đổi cấu hình dành riêng cho người dùng trong tệp cấu hình toàn hệ thống. Thứ nhất bởi vì nó tạo ra một điều bổ sung cần nhớ khi bạn cần di chuyển sang một máy khác và thứ hai, bởi vì các tệp này chủ yếu ở đó để cung cấp mặc định lành mạnh. Thật tuyệt khi có thể chỉ cần chụp ảnh nhanh $ HOME của bạn và danh sách các gói đã cài đặt với bạn khi bạn cần cài đặt lại / di chuyển.
Marcin Kaminski

1

Đây là cách tôi đã làm trong Ubuntu 14.04 từ thiết bị đầu cuối:

1) Kiểm tra tên thiết bị của bạn:

xinput list

2) Xem các tùy chọn khả dụng cho thiết bị của bạn:

xinput list-props "Your Device Name"

3) Chỉnh sửa cài đặt (để giúp cài đặt nhất quán sau khi khởi động lại / tắt máy, chỉ cần thêm lệnh này vào Ứng dụng khởi động ):

xinput set-prop "Your Device Name" "Option Name" "Value"

Dưới đây là một lệnh ví dụ tôi đã sử dụng để kích hoạt kéo bị khóa trong bàn di chuột của mình:

xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Locked Drags" 1

Để kích hoạt / thay đổi tùy chọn khác, chỉ cần tìm tùy chọn có sẵn trong thiết bị của bạn và chơi với chúng cho đến khi bạn nhận được kết quả mong muốn, sau đó thêm lệnh vào Ứng dụng khởi động và bạn đã hoàn tất! Hy vọng nó giúp! :)

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.