用xev查keycode---想查 Fn 鍵

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

用xev查keycode---想查 Fn 鍵

文章WCH00 » 週六 10月 04, 2008 11:15 am



我想問一下有關keycode的問題…


我知道用 xev 或 xbindkey 等程式可以知道「單一鍵」的keycode,例如:F1,這個鍵的keycode是67,空白鍵是65。

我想請問:
1. 如何知道 「Fn」這個鍵的keycode,因為我用 xev或 xbindkey 押了 Fn 這個鍵都沒反應 :crying:
p.s : 「Fn」是NB上的一個鍵

2. 如果我想要知道兩個或兩個以上的鍵,我要怎麼才能知道它的keycode呢?
ex : Fn + F1

Ref :
https://wiki.ubuntu.com/LaptopTestingTe ... eyResearch
WCH00
可愛的小學生
可愛的小學生
 
文章: 9
註冊時間: 週三 9月 24, 2008 11:21 pm

文章訪客 » 週六 10月 04, 2008 3:00 pm

據我所知 (不知現在規格有沒有改),Fn 的功能是用來搭配別的 key 一起按,然後 keyboard controller 才送出這種組合按法的碼給系統。也就是說 Fn key 只有 keyboard controller 知道,這個 key 不會傳給 OS 的。
訪客
 

文章訪客 » 週六 10月 04, 2008 3:04 pm

sorry, 更正一下,Fn + 其他 key 的按法一般是傳給 bios,讓 bios 做 LCD 亮度改變或聲音大小改變等用途。OS 不一定會知道。
訪客
 

文章訪客 » 週日 10月 05, 2008 5:15 pm

要查「Fn + 其他 key」,請用root執行acpi_listen,
可以把查到的結果寫到/etc/acpil裡,這樣就能使用,
不過如果想設給一般使用者來用,可能會遇到執行權限的問題...
訪客
 

文章mason » 週一 10月 06, 2008 1:34 am

詳細的 keycode 在 /usr/include/X11/keysymdef.h

不過code都是 0x開頭的,你要自己換算一下。
skype:dantemason
http://blog.sikazozo.org
頭像
mason
快樂的大學生
快樂的大學生
 
文章: 547
註冊時間: 週二 9月 10, 2002 3:40 pm
來自: SIDE 3

文章WCH00 » 週一 10月 06, 2008 9:53 pm




呵,謝謝大大們的幫忙 :-D

多了些keyboard如何運作的小概念,
也多了知道了個key listen的指令。

BTW,
acpi_listen 與
tail -f /var/log/acpid
所跑出來的 keycode 是一樣的 :-)
有稍為google一下,兩者好像有點關係,
但還沒仔細看 ^^""


不過還是有點問題想請教~

目前用 acpi_listen 這指令照理說是可以知道 Fn + Fx (Fx =F1~F12)的 keycode,不過我自已實際卻只能知道幾個鍵的keycode,無法知道全部(Fn + F1~F12)的 keycode 。
例如:我知道 Fn + F3 與 Fn +F4 的 keycode,押了 Fn + F5與 Fn + F6 卻沒反應 (螢幕亮度可以得到keycode,聲音大小卻不行)。
想知道有辮法得到全部的keycode嗎?

有goole到一篇對岸的網友,上面寫著一句話:「如果沒有弄ibm_acpi的曾強內核補丁則只有幾個組合能產生acpi事件。如果加上的話,就基本全了。」
想問上面所謂的補丁是指… keyboard driver 嗎?

Ref :
http://www.lslnet.com/linux/f/docs1/i28/big5227678.htm

謝謝
WCH00
可愛的小學生
可愛的小學生
 
文章: 9
註冊時間: 週三 9月 24, 2008 11:21 pm

文章terranova » 週二 10月 07, 2008 1:37 pm

Function key 不是全都會有的
要看 acpi bios 裡面設定了那些
有設的才會發出 event 讓 acpid 讀到
terranova
 

文章WCH00 » 週四 10月 09, 2008 9:03 pm

安,

代碼: 選擇全部
terranova
Function key 不是全都會有的
要看 acpi bios 裡面設定了那些
有設的才會發出 event 讓 acpid 讀到


代碼: 選擇全部
訪客
據我所知 (不知現在規格有沒有改),Fn 的功能是用來搭配別的 key 一起按,然後 keyboard controller 才送出這種組合按法的碼給系統。也就是說 Fn key 只有 keyboard controller 知道,這個 key 不會傳給 OS 的。

sorry, 更正一下,Fn + 其他 key 的按法一般是傳給 bios,讓 bios 做 LCD 亮度改變或聲音大小改變等用途。OS 不一定會知道。


這些話,讓我改了些想法,
用 xev 這 command,可以得到非acpi的Function key的keycode,
用 acpi_listen 這command,可以取得acpi的Function key的keycode。



請問一些問題:

1.
用 xev 得到 Fn+F5 與 Fn+F6 的keycode,分別是 176 和 174
接著~
代碼: 選擇全部
 # vim ~/ .xmodmap
xmodmap keycode 174 = XF86AudioLowerVolume
xmodmap keycode 176 = XF86AudioRaiseVolume

我爬了些文,上面寫著這樣重新開機,基本上開機時就會載入,可是我 xmodmap -pke 看了一下並沒有~
請問是為何?
( 所以開機我自已手動 xmodmap ~/ .xmodmap )

2.
照著上的設定完後,Fn+F5與Fn+F6就能正常的work嗎?
我google一下,看了都是寫到這裡就沒下文了,看起來他們都能work的樣子,是我少了些什麼步驟嗎?


BTW :
1.我是用xfce
2.我用actkbd這command測試,Fn+F5 與 Fn+F6 是可以正常work的。但我還是想知道,能否用 xev+xmodmap 解決 !!

謝謝

ref:
http://www.lslnet.com/linux/f/docs1/i14/big5169908.htm
http://cweiske.de/howto/xmodmap/allinone.html
WCH00
可愛的小學生
可愛的小學生
 
文章: 9
註冊時間: 週三 9月 24, 2008 11:21 pm


回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客