Microsoft Sculpt Comfort Mouse'da yan dokunmatik düğmeyi yeniden eşle


12

Kısa süre önce bir Microsoft Sculpt Comfort Mouse satın aldım. Dizüstü bilgisayarıma bağlanmak için Bluetooth kullanıyor ve tüm normal fare düğmeleri hem Linux hem de Windows 7 altında mükemmel çalışıyor. Bununla birlikte, bu fare hakkında farklı olan, basıldığında başlat / menüyü başlatan yanda özel bir Windows/ Supertuşa sahip olmasıdır . Ayrıca, yan düğmenin ne zaman yukarı veya aşağı okunduğunu algılayan ve etkinleştirildiğini onaylamak için fareyi titreşen bir dokunmatik sensöre sahiptir.

Tabii ki Windows'da, vuruşların ne yaptığını değiştirmemi ve titreşimi kapatmamı sağlayan bir program var.

Linux'ta, xev, yan düğmeye basıldığında veya kaydırıldığında yalnızca normal bir tuş vuruşu algılar. Xev hiçbir fare düğmesine basmayı bildirmez.

Benim sorum şu: Linux altındayken hangi tuşlara basıldığını değiştirebilir miyim?

Ben den bağlama anahtarı değiştirmek isteriz tabiçin down, backspaceiçin up, (Ne xev raporları) için ctrl+ alt+ left/ rightçalışma alanları arasında geçiş yapmak için.

Herhangi bir yardım için teşekkürler!



1
Ubfan1 bahşiş için teşekkürler, xinput get-button-map bana 13 düğme veriyor. xev ve xinput test raporu sadece 1-7 düğmeleri. Ben gelen Xinput seti düğmeli-haritayı kullanarak düğmeleri 8-13 ve xbindkeys Remapping çalıştı linke değişti ama hiçbir şey. Yan tuşa basarak 133 tuşuna basın (süper), yukarı kaydırın raporlar tuşuna basın 22 (geri al), aşağı kaydırın raporlar tuşuna basın 23 (sekme).
user223544

Yanıtlar:


5

Sadece kendim bir tane aldım ve aşağıdakilerin benim için mükemmel çalıştığını gördüm.

  1. Dconf-editor'ü açın ( sudo apt-get install dconf-editorzaten yüklü değilse).
  2. Org -> gnome -> masaüstü -> wm -> tuş bağlantılarına gidin.
  3. Çalışma alanına geçiş yapmanın değerini şu şekilde değiştirin:

    ['<Control><Alt>Down', '<Primary><Super>Tab', '<Control><Super>Tab']

    ve değeri anahtarı-çalışma makyaj için

    ['<Control><Alt>Up', '<Primary><Super>BackSpace', '<Control><Super>Backspace']


Bu çözüm, xbindkeys ile bulduğum çözümden daha güvenilir çalışır. Xbindkeys ile karşılaştırıldığında tek dezavantajı, xbindkeys çözümünün sadece fare tuşu olaylarını yakalamış gibi görünmesidir, oysa bu çözüm klavye tuşları kullanıldığında da çalışır. Ne olursa olsun, bu çözümün güvenilirliği onu daha iyi bir çözüm haline getirir.
user223544 7:14

2

Bu nedenle, Microsoft Sculpt Comfort Mouse, süper ve hızlıca kaydırma hareketleri için fare düğmesine basmayı kaydetmediğinden, bunun yerine klavye tuş basımlarını kaydettiğinden, bu tuş basımlarını dinlemek ve Ctrl+ Alt+ göndermek için 'xautomation' ve 'xbindkeys' paketlerini kullandım Right/ Leftçalışma alanları arasında geçiş yapmak için. İdeal bir çözüm değildir, ancak 10 kez 8 gibi çalışır.

#Move to left workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Left' 'keyup Control_L' 'keyup Alt_L' 'keyup Left'"
   m:0x4+mod4+m:0x0+c:23
   #Control_L+Super_L+Tab

#Move to right workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Right' 'keyup Control_L' 'keyup Alt_L' 'keyup Right'"
   m:0x4+mod4+m:0x0+c:22
   #Control_L+Super_L+Backspace

Bu xbindkeys betiğinin yaptığı şey, farelerin bilgisayara gönderdiği ve aşağı hareketlerinin hızlıca kaydırdığı tuş basımlarını dinlemesidir. Tespit edilirse, xautomation standart hareket masaüstü tuş vuruşunu control+ alt+ left/ gönderir right.

Faredeki hızlıca kaydırma hareketi left control+ left super+ tuşlarına basar backspace. Faredeki aşağı kaydırma hareketi tuş vuruşu left control+ left super+ gönderir tab. m: 0x4 + mod4 + m: 0x0 + c22, xbindkeys tarafından algılanan gerçek anahtar kodu birleşimidir.

Verimliliği artırabilir miyim görmek için biraz daha karışık olacağım, ama şimdilik bu işi hallediyor. Umarım tabve backspacefare çıkışları yaptığım herhangi bir işle uğraşmaz.


1
Çözümün nasıl çalıştığını açıklayabilir misiniz? Fare gönderiyor Control_L+Super_L+Tab(Control_L + Super_L nereden geliyor)? Veya fare tuşlarıyla eşleştiriyor musunuz m:0x4+mod4+m:0x0+c:23(Soruda hiçbir fare olayı oluşturulmamış gibi görünüyor)?
Volker Siegel

Çözümümü Control_L + Super_L'ın nereden geldiğini açıklamak için düzenledim. Ayrıca m: ​​0x0 + mod4 + m: 0x0 + c: 23'ün amacını da açıkladım.
user223544

0

Firefox'taki sekmelerde her iki yönde gezinmek için aynı düğmeleri eşlemek istedim. Xbindkeys ve xmacro kullanıyorum. Oldukça iyi çalışıyor!

.xbindkeysrc

#Thumb down
"echo 'KeyStrPress Control_L KeyStrPress Tab KeyStrRelease Control_L KeyStrRelease Tab'|xmacroplay :0"
   Control+Mod4+Tab

#Thumb up
"echo 'KeyStrPress Control_L KeyStrPress Shift_L KeyStrPress ISO_Left_Tab KeyStrRelease Control_L KeyStrRelease Shift_L KeyStrRelease ISO_Left_Tab' |xmacroplay :0"
   Control+Mod4+BackSpace
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.