歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 讓你的Thinkpad在SUSE下工作得更好更完美

讓你的Thinkpad在SUSE下工作得更好更完美

日期:2017/2/28 16:41:53   编辑:Linux教程

前言:
以下內容目的是為了讓部分SUSE或其他發行版的新手可以有一份統一的教程step by step地調教自己的linux讓系統更完美地兼容thinkpad系列laptop,歡迎高手拍磚,請輕點.

本文是以本人的實際實驗結果為主,當中參考了很多網上的資料,包括thinkwiki, linuxquestions等等,未能一一盡列
本文希望能把自己解決linux問題的整個過程和思考方法寫出來給有需要的新人參考,希望能讓入門的朋友學習到解決linux問題的方法,而不是僅僅會按本宣科地解決問題

well, Google ROCKs!

注意:
各位閱讀本文後要動手改造的話,請做好各種備份,意外准備,本人不負責任何風險
本文以thinkpad x61為例子,其他機型請適當做變通靈活處理
本人實驗過2.6.16.xx, 2.6.27.xx內核,其他版本內核請適當變通,理論上2.6.16~27都可以成功
由於本人是以suse系列做實驗,其他發行版變通處理,不保證成功

附件的patch是根據suse11.1 2.6.27.25內核制作的,可以直接使用

內容以操作難度易到難順序排列

准備工作
首先,要安裝必備的開發包,沒有安裝的話進入yast2 -> software management, 把kernel, C/C++, python, QT, gnome/kde等一古腦相關的開發包裝上.


win key毫無用處?
win key在windows下可以喚出開始菜單, 在linux很多發行版上一般也可以喚出gnome/kde panel menu,但為什麼opensuse上不行呢,gnome keyboard shortcut裡面也設置不了. 先google一下,很快找到提示,原來win key默認已經被映射成叫作Super_L的鍵,在gconf-editor裡面可以設置metacity的keybinding,所以我打開gconf-editor -> app -> metacity -> global_keybindings -> panel_main_menu,直接輸入Super_L.退出,試一下,成功了~~


單獨按Fn鍵會變成鼠標右鍵功能?很煩耶
注:其實這個問題的實際原因是在於我把keyboard的模型選成IBM thinkpad T60,只要選擇其他鍵盤模型就不會有這個問題了,如果有人碰到和我一樣的問題可以參考.
真不方便,因為控制Fn+Fx時候很容易就變成鼠標右鍵功能了.究竟怎麼回事呢?為了解決這個問題,我先google一下"linux thinkpad Fn hot key", 它帶領我去到thinkwiki.org這個網站.
thinkwiki內有搜索功能,用hot key搜索,

http://www.thinkwiki.org/wiki/How_to_get_special_keys_to_work

把出來的內容看了一遍,可惜裡面沒有描述到這個問題,但其中提到過系統可以用xmodmap來管理hot key功能映射的.根據這個提示和介紹,在terminal輸入xev這個命令.這個命令可以檢測鍵盤,鼠標的輸入,將信息輸出.
啟動xev後,按Fn,輸出以下信息:

KeyRelease event, serial 33, synthetic NO, window 0x3800001,
root 0x7c, subw 0x0, time 8672029, (251,340), root:(259,415),
state 0x0, keycode 227 (keysym 0x0, Menu), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False


結合thinkwiki上面的介紹,我大概猜猜這個信息的意思: keycode 227表示鍵盤中斷給出的Fn 鍵代碼, Menu代表被xmodmap映射後的功能. Menu指的就是鼠標右鍵功能.
好了,既然這樣,我只要將keycode 227到Menu的映射去掉就可以了.為了實現這步,根據thinkwiki的描述可以用xmodmap命令的remove實現,可是怎樣都不成功, man xmodmap信息和例子很少, google的信息也不太多.後來我想,系統肯定是根據某個config文件來設置的.用grep keycode * -R命令分別在/etc, /usr/share目錄下尋找相關設置文件,最終找到/usr/share/X11/xcb目錄,查看一下裡面的文件格式,應該就是這裡了,於是在grep 227 * -R一次,終於在xfree86裡面找到:

// IBM ThinkPad 60 series
xkb_keycodes "thinkpad60" {
include "xfree86(xfree86)"
<MENU> = 227;
};


誰寫下的啊....真多此一舉阿.....把這句干掉.重啟系統....這世界清靜了

Copyright © Linux教程網 All Rights Reserved