Linux

將大寫鎖定重新映射為撰寫

  • April 9, 2015

因為儘管使用美國德沃夏克作為我的佈局,但我時不時需要使用斯堪的納維亞字母,所以我想使用 Caps Lock 作為撰寫鍵。(我根本不需要 Caps Lock,我不是論壇巨魔)

如何做到這一點?

將 Linux Mint 17 與 xfce 一起使用,如果這有所作為的話。

作為記錄,我是這台 PC 的唯一使用者,並且希望將其作為系統預設值,主要在 xorg 中,如果不是太繁瑣的話,也可以在 tty 中。

X11(經典)

從終端執行程序xev以查看密鑰發送的CapsLock密鑰程式碼。那是與按鍵對應keycode的行的第三行之後的數字。KeyPress event在 PC 上,密鑰程式碼是 66。

在您的主目錄中創建一個名為的文件.Xmodmap並添加該行

keycode 66 = Mode_switch
clear Lock

Mode_switch是 X11 給Compose. clear Lock有必要避免鍵偶爾表現得像 Caps Lock,即使它不是 Caps Lock(Lock是 Caps Lock 修飾符,當修飾符聲明和鍵符聲明不一致時,某些應用程序的行為有點奇怪)。或者,您可以使用這些行

keysym Lock = Mode_switch
clear Lock

這會導致目前發送 Caps Lock 的任何鍵被反彈到發送 Compose。無論哪種方式,您都需要安排命令

xmodmap ~/.Xmodmap

在會話開始時執行。這是一個常見的約定,但並非所有分發/桌面環境的組合都會自動執行此操作。如果您沒有,請將命令添加到會話啟動時執行的命令列表中(在 XFCE4 配置編輯器中,轉到“會話和啟動”→“應用程序自動啟動”並添加該命令)。

X11 (XKB)

XKB 比 xmodmap 更簡潔、更強大,但通常使用起來更麻煩。標準配置中有一個預設可以執行您想要的操作,因此在您的情況下很容易:執行以下命令:

setxkbmap -option compose:caps

請參閱上一節,了解如何在會話開始時執行此命令。

Linux 控制台

找出鑰匙的CapsLock鑰匙程式碼。在文本控制台上執行showkey,按CapsLock,然後等待 10 秒showkey以退出。在 PC 上,密鑰程式碼是 0x3a。您需要在控制台鍵盤映射文件中包含以下行:

keycode 0x3a = Compose

預設的控制台鍵盤映射文件/etc/console/boottime.kmap.gz與軟體包一起位於 Debian 上console-tools。可能是 Mint 下的不同文件;這是loadkeys在啟動腳本中呼叫的文件。如果您願意,您可以保持分發提供的文件不變,使用上面的行創建一個文件,然後loadkeys /path/to/your/file.kmap/etc/rc.local.

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