MX-R側滾輪初步hack - 鍵鼠

Table of Contents

<note> 本篇不希望被轉載到任何地方 , 改壞也請自行負責 </note>

<note2> 懶得自己改的人 , 請google找uberOptions就行了 </note2>

昨天裝上MX-R後就一直在找相關的解決方法來搞定側滾輪不能自定的問題...
後來綜合了一下羅技論壇上的 , 跟一些挖到的資料 , 是有了一些初步的解法...

在要改之前 , 要先瞭解一下側滾輪的動作原理...
側滾輪其實是分成了 往上 , 往上到底 , 往下 , 往下到底 , 跟按下去 這五動.
所以其實它是一個5個button的button group...
也就是說認真要改的話 , 可以將之改成有五個不同動作的滾輪...
像是往上推是Back , 往上推到底就開Document Flip這樣...
不過一般為了不混淆起見 , 通常是會把往同方向推的設成同一個keyset.

ok , 原理講完了 , 那實際上來修改一下吧.
在修改之前 , 先讓我們感謝羅技setpoint的程式設計師.
因為他們所寫出來的setpoint的處理流程相當的靈活...
所以才不會因為我們改了一些設定 , 而忘了改對應的config file , 導致crash.
"THX~Setpoint Team!" //wave

*以下修改的xml檔 , 請自行事先備份 , 以供還原使用!"
首先 , 要先準備好每個button所要對應的動作組合.
請到setpoint的安裝目錄下 , 開啟default.xml這個檔
裡面會有一行文字如下 (受限於BBS , 請自己把它接成一行)

<HandlerSetGroup Name="FiveSwitchGroup" HandlerSetNames="FiveSwitchZoom,
FiveSwitchQuickSwitch" />

這行就是側滾輪5個button能修改的動作定義...
但是因為這樣太少了 , 所以我們要把它改成像下面這樣 (一樣自己接成一行)

<HandlerSetGroup Name="FiveSwitchGroup" HandlerSetNames="FiveSwitchZoom,
FiveSwitchQuickSwitch,BrowserForward,Back,CruiseUp,CruiseDown,
KeystrokeAssignment,AutoScroll,UniversalScroll,Do Nothing,Unassigned,
MiddleButton,DoubleClick,StartMenu,DragLock,CloseApplication,Copy,Cut,Paste,
Maximize,Minimize,Undo,Redo,PageDown,PageUp,HorzScrollLeftSet,
HorzScrollRightSet" />

這樣一長串已經差不多是把能定義的全都定義上去了... XD
而我剛剛也說了 , 我們往往會把同方向定義成同一個mouse button group.
所以請把上面那一長串copy & paste個兩次 , 一共弄成三行...
分別將其中的 Name="FiveSwitchGroup" 改成
Name="FiveSwitchGroupUp"
Name="FiveSwitchGroupDown"
Name="FiveSwitchGroupPress"
改完後請存檔 , 關掉xml檔.

再來請執行regedit , 然後到HKEY_LOCAL_MACHINE/SOFTWARE/Logitech/Setpoint
展開後在CurrentVersion中的Setup中有一個path是我們需要的.
就是Device Folder這一項 , 將path copy下來之後 , 開啟對應目錄.
在裡面會有一個PointingDevice的子目錄.
進去之後就是Logitech的SetPoint支援的HW所有的設定檔都在此...
也就是說如果有人想自己hack MX510 , G5 , VX-R...blahblah的也都可以在這邊挖.
我們要改的是MX-R , 所以請到100006D這個子目錄下 , 開啟100006D.xml

開啟後找一段像這樣的text.

<Button Number="9" Name="9">
<Trigger Class="ButtonPress">
<PARAM Buttons="9,10,11,12,13" />
<TriggerState Name="ButtonDownUp" HandlerSet="FiveSwitchQuickSwitch"
HandlerSetGroup="FiveSwitchGroup"/>
</Trigger>
</Button>

其中的 PARAM Buttons , 就代表了同一group的buttons...
而HandlerSetGroup這項則是對應到我們剛改的default.xml檔中的action set.
因為我們不想要將5個button都綁在同一個group , 所以我們要改成像以下這樣

<Button Number="9" Name="9">
<Trigger Class="ButtonPress">
<PARAM Buttons="9,10" />
<TriggerState Name="ButtonDownUp" HandlerSet="FiveSwitchQuickSwitch"
HandlerSetGroup="FiveSwitchGroupUp"/>
</Trigger>
</Button>

這樣往上推就會去找default.xml檔裡面的FiveSwitchGroupUp了
其中button 9是往上推 , button 10是往上推到底.
如果你要分開設定也行 , 就在PARAM Buttons中把10去掉後 , 將Button10獨立處理就行.

ok , 往上的動作有了 , 接下來新加一段文字來處理往下推的

<Button Number="11" Name="11">
<Trigger Class="ButtonPress">
<PARAM Buttons="11,12" />
<TriggerState Name="ButtonDownUp" HandlerSet="FiveSwitchQuickSwitch"
HandlerSetGroup="FiveSwitchGroupDown"/>
</Trigger>
</Button>

還要再加一段文字來處理按下去的

<Button Number="13" Name="13">
<Trigger Class="ButtonPress">
<PARAM Buttons="13" />
<TriggerState Name="ButtonDownUp" HandlerSet="FiveSwitchQuickSwitch"
HandlerSetGroup="FiveSwitchGroupPress"/>
</Trigger>
</Button>

至此 , 動作的設定部份就搞定了. 不過在關掉檔案之前請回想一下...
原本的Setpoint只有分9個可定義按鍵 , 所以我們新加了兩個...
那 , 沒有的圖要去那邊生出來?
所以請拉回到檔案開頭的部份 , 有一行

<Button Bmp="Devices\\PointingDevice\\100006D\\9.png"/>

這一行請接著他CP個兩次...
把那段文字變成看起來像這樣...

<Button Bmp="Devices\\PointingDevice\\100006D\\9.png"/>
<Button Bmp="Devices\\PointingDevice\\100006D\\9.png"/>
<Button Bmp="Devices\\PointingDevice\\100006D\\9.png"/>
</PAGE>
</Bitmap>

當然這樣圖是重覆了沒錯 , 如果你要自己畫的話也可以.
就只要把圖畫好之後 , 放在同一個目錄底下 , 改掉後面檔名就好了. :p
這一段不改也沒差 , 只是在Setpoint中選到Button 11跟13時沒圖而已 , 不會怎樣.

*補充*
因為我們自己加了button設定進去 , 對SetPoint而言"總數"變了...
所以我們要再追加修改10006D.xml檔 , 讓它知道現在的button總數...
看到檔案開頭附近 , 有個NumberOfButtons="13"
我們加了幾個Button區塊進去 , 這邊就要加多少進去...
像剛剛的例子是加了button 11和button 13 , 所以就是加了兩個...
也就是要改成NumberOfButtons="15"才對.
這點很重要 , 不改的話有些功能會被吃掉... :p

全部弄完之後 , 把Setpoint整個shut down下來後重新開啟...
這樣進入設定畫面應該就可以看到有多出了 11 和 13 兩個button可以設定了.
設定完之後程式會自己更新user的定義檔 , 所以不用我們操心~
GJ! Setpoint Team!

其中要注意的是 , 如果我們將側滾輪中的某個動作從Document Flip中去掉的話...
像假如把9設成Document Flip , 11設成back
那這樣把側滾輪往上推的時候 , 一樣會開啟Document Flip.
但是此時側滾輪往下推並不會有任何反應 , 也不會往下捲! 這要注意.

側滾輪的部份 , 設定大概就是這樣....
當然從上面寫的內容裡面 , 就可以推出其他的按鍵的動作set , 進而自行設定...
像是按側鍵開出Document Flip之類的....
這些就懶的仔細講了 , 有興趣的就自己玩玩吧... :p

還有 , 設定上有問題的不要來問我 , 除非是個正妹 , 單身女高中生正妹尤佳.

以上 , have fun with MX-R. :p

--

All Comments

Caitlin avatarCaitlin2007-05-25
這瞬m是怎麼回事.. 囧>
Faithe avatarFaithe2007-05-30
真強者當然瞬m阿~
Rebecca avatarRebecca2007-06-02
表示板主閒閒沒事掛著看板....
Wallis avatarWallis2007-06-04
可是我自己還在跟它的SmartSearch怎麼開Sleipnir奮鬥中啊 OTL
Charlotte avatarCharlotte2007-06-07
btw , 我還是沒找到Win2003怎麼雙螢幕掛不同icc的方法 OTL
Lydia avatarLydia2007-06-08
SetPoint不能設定預設瀏覽器嗎? 我還以為把Windows預設設
Hedda avatarHedda2007-06-11
好就好了,至於ICC哦....要不要借個ATI顯卡試看看?
Valerie avatarValerie2007-06-16
不行 , 我預設已經是Sleipnir了 , MSN也會用Sleipnir開...
但是MX-R的不曉得為啥就是不會開Sleipnir只開IE , 聽說FF正常.
Blanche avatarBlanche2007-06-19
至於icc的問題 , 我放棄了... XD
Jacky avatarJacky2007-06-22
你可以作個螢幕的ICC Profile,然後設定在PhotoShop中,看
他在哪個螢幕開就套哪個螢幕的ICC Profile....XD
Rae avatarRae2007-06-22
我是還好啦 , PS CS只會在Eizo開 , 所以現在是固定的.. :Q
Ursula avatarUrsula2007-06-24
"單身女高中生正妹尤佳"... 你的喜好一路走來始終如一啊!
Sarah avatarSarah2007-06-26
高中正妹....號稱的可以嗎?XDDDDD
Ethan avatarEthan2007-06-27
號稱的不能算啦~ XD
Tracy avatarTracy2007-06-28
<=自稱高中正妹....不是號稱XD
Connor avatarConnor2007-07-02
[x]
Lauren avatarLauren2007-07-03
推一個 很花心思的又上了顏色方便閱讀 !!!