GNOME başlatıldığında çalışabilmesi için “xinput” komutunu nereye yapıştırmam gerekir?


10

Thinkpad'imde terminalde böyle bir şey yürütmem gerekiyor:

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

böylece dokunmatik yüzeyimdeki 2 düğme orta fare tıklamasını taklit eder. Şimdi GNOMe ya da X ya da her neyi başlattığımda bu hattın yürütülmesine ihtiyacım var, böylece "sadece çalışır".

~ / .Xsession veya ~ / .bashrc'yi denedim ama boşuna. GNOME başlangıç ​​komut dosyalarına mı yoksa bir yerde / etc / X içine mi koymalıyım?

Ubuntu 11.10 kullanıyorum.


Bir eklemeyi deneyin sleep 5sizin başında .xsessiondosyanın?
Thomas Ahle

1
@ThomasAhle .xsession yürütüldükten sonra pencere yöneticisi yüklenir ve evdev özelliklerini değiştirirse sorunu çözmez.
Marcin Kaminski

Yanıtlar:


7

Enlightenment DM kullanıyorum, ancak bu diğer DM'ler / masaüstü bilgisayarlar için geçerli. Oturumu xsession kullanarak başlattım, bu yüzden başlangıçta değiştirmek istediğim tüm ayarları değiştirmeyen ~ / .xsession içine xinput komutları koydum. Sadece bazıları . Tüm ya da hiç değişiklik bekliyordum, bu yüzden .xsession'a 1 saniyelik aralıklarla 10-interation döngüsü ekledim, her seferinde xinput komutlarını çalıştırarak ve ayarların uygulanıp uygulanmadığını kontrol ettim. Şaşırtıcı bir şekilde, tüm ayarlar ilk tekrardan sonra uygulandı.

Bu, xinput ayarlarınızı geçersiz kılmak için bir şeyler yapan DM'niz olduğu anlamına gelir ve DM'nizi başlatan komut (benim durumumda E17) .xsession dosyanızdaki son dosya olduğundan, bu dosya bunun için bir yer değildir.

~ / .Profile dosyasına aşağıdaki satırları ekledim ve bu sorunu çözdü:

# 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

PS. set-int-prop, set-prop (man xinput) lehine kullanımdan kaldırılmıştır.

Umarım bu birine yardımcı olur.


Senaryo güzel, ama ne yazık ki bana bir çözüm vermiyor. Şimdilik tek yöntem çalışıyor, eğer terminali çalıştırıp 'xinput set-prop' ı gerekli seçeneklerle çalıştırırsam. Marcin'in senaryosunu, Startup Application'ı denedim ama bunlar maalesef işe yaramadı.
Geeocode

"set-int-prop set-prop lehine kullanımdan kaldırıldı" T • H • A • N • K • • Y • O • U •
Clément

4

Komutu doğrudan başlangıç ​​uygulamalarına ekleyin. Komut alanında.

veya

basit bir komut dosyası oluşturun ve komut dosyasını başlangıç ​​uygulamalarına ekleyin.


3

/etc/X11/Xsession.d/Bunun için bir dosya oluşturun .


Benim için/etc/X11/xinit/Xsession
Thomas Ahle

3
Genellikle sistem genelinde bir yapılandırma dosyasında kullanıcıya özel yapılandırma değişiklikleri yapılmasını teşvik etmiyorum. Birincisi, farklı bir makineye ne zaman geçiş yapmanız gerektiğini hatırlamak için ek bir şey oluşturduğu ve ikincisi, çünkü bu dosyalar çoğunlukla aklı varsayılanlarını sağlamak için var. Yeniden yüklemeniz / taşımanız gerektiğinde $ HOME'unuzun anlık görüntüsünü ve yüklü paketler listesini yanınıza alabilmeniz güzel.
Marcin Kaminski

1

Terminalden Ubuntu 14.04'te böyle yaptım :

1) Cihazınızın adını kontrol edin:

xinput list

2) Cihazınız için kullanılabilir seçeneklere bakın:

xinput list-props "Your Device Name"

3) Ayarları düzenleyin (yeniden başlatma / kapatma sonrasında ayarları tutarlı hale getirmek için bu komutu Başlangıç ​​Uygulamalarına ekleyin ):

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

İşte dokunmatik yüzeyimdeki kilitli sürüklemeleri etkinleştirmek için kullandığım örnek bir komut:

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

Başka bir seçeneği etkinleştirmek / değiştirmek için sadece cihazınızın mevcut seçeneklerinde arayın ve istediğiniz sonucu alana kadar onlarla oynayın, ardından komutu Başlangıç ​​Uygulamaları'na ekleyin ve işiniz bitti! Umarım yardımcı olur! :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.