Linux

在 PC 上確定 X.org 的鍵碼分配

  • November 12, 2011

在 2008 年末到 2009 年初的某個時間點,在 Linux 下執行 X.org 時,標準 PC 鍵盤上的一些鍵碼值(顯然是 XT 鍵盤上沒有的鍵)發生了變化。我不知道這是由於核心更改還是 X 更改。Debian lenny 和 Ubuntu 8.04 使用舊分配;Debian 擠壓和 Ubuntu 10.04 使用了新的分配。

所以我有兩個xmodmaprc文件,一個帶有舊鍵碼,一個帶有新鍵碼。如何確定從我的.xinitrcand載入哪一個.xsession

我希望我的啟動文件可以輕鬆移植,所以我想擺脫目前對機器名稱的依賴(!)。而且我不想引入對 Linux 發行版本的依賴(無論如何這將是關於客戶端的資訊,但它是關於我需要的伺服器的資訊)。此時我的腳本中已經有關於伺服器的資訊(其中列出的所有符號xrdb(1)都可用作環境變數);希望我的問題可以簡化為“我將哪些參數與哪些值進行比較?”。

請注意,由於我希望我的啟動文件可以在我不管理的機器上執行,因此僅靠鍵符重新分配是沒有幫助的。例如,我想將我最喜歡的修飾符分配給Win鍵,但我無法預測登錄時將分配什麼鍵符。但是,如果有一個 XKB 概念我可以用來代替鍵碼(並且獨立於任何系統管理員定制,所以keysyms不會做),我願意切換到XKB。

你可以通過 XKB 找出某個鍵的 keycode,例如

xkbcomp -a -dflts -xkb $DISPLAY - | sed -ne 's/^ *<LWIN> *= *\([0-9][0-9]*\).*/\1/p'

引用自:https://unix.stackexchange.com/questions/9310