如何在 XFCE 中將 Level3_Shift 設定為 Caps Lock 並將 Compose 設定為 Caps Lock+Ctrl?

如何在 XFCE 中將 Level3_Shift 設定為 Caps Lock 並將 Compose 設定為 Caps Lock+Ctrl?

我最近從 SUSE 切換過來,它使用 KDE 作為預設桌面環境。在 KDE 中,可以使用 GUI 選項來實現這樣的設置,但在 XFCE 中則不行。

~/.Xmodmap我嘗試按以下方式設定文件:

clear Lock
clear Control
clear Mod2 
clear Mod5 
keycode  77 = Caps_Lock Num_Lock Caps_Lock Num_Lock
keycode  66 = ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift
keycode  37 = Control_L NoSymbol Control_L NoSymbol Multi_key Multi_key 
add Control = Control_L Control_R
add Lock = Caps_Lock
add Mod2 = Num_Lock
add Mod5 = ISO_Level3_Shift

會發生什麼事:

  • Caps Lock功能轉到Num Lock
  • Num Lock功能轉到Shift+Num Lock

我期望會發生什麼,但沒有發生:

  • Caps Lock按鈕應該是ISO_Level3_Shift(它是,根據xev,但它具有通常的功能Shift
  • Caps Lock+ LeftCtrl應充當撰寫鍵(不起作用)。

我究竟做錯了什麼? Xubuntu 18.04,全新安裝

答案1

將第三層 Shift 對應到<CAPS>(大寫鎖定)並使用左側控制的第三層作為撰寫鍵 ( Multi_key):

setxkbmap -option compose:lctrl-altgr \
    -option lv3:caps_switch \
    -layout "us(intl)"

對於數字鎖定鍵,您可以建立符號檔案作為您正在使用的任何佈局的包裝器(我將使用us(intl))。建立一個名為的符號檔案custom

xkb_symbols "basic" {

    // The layout that you want to use.
    include "us(intl)"

    key <NMLK> { [
        Caps_Lock, Num_Lock, Caps_Lock, Num_Lock
    ] };

};

將檔案保存custom在鏡像結構的目錄樹中/usr/share/X11/xkb。因此,如果您的目錄儲存在/home/<user>/my-xkb/,則custom檔案應該位於/home/<user>/my-xkb/symbols/custom

(看這裡有關如何製作和使用自訂 Xkb 檔案的一般說明。

您將不得不setxkbmap使用該-print選項來將輸出通過管道傳輸到xkbcomp. xkbcomp有一個-I選項,您可以使用它來提供自訂 Xkb 目錄樹的路徑。

setxkbmap -option compose:lctrl-altgr \
    -option lv3:caps_switch \
    -layout "custom" \
    -print |
        xkbcomp -I"/home/<user>/my-xkb" \
            - "$DISPLAY"

相關內容