Keyboard-Shortcuts
當沒有鍵綁定時,如何在 X11 下以簡單的方式禁用 Caps Lock?
我經常使用腳本禁用 Caps Lock 和相應的修飾符,使用
xmodmap
. 這一切都很好。然而,有時,由於某種未知的原因,Caps Lock 處於活動狀態。沒有鍵綁定,
Caps_Lock
也沒有鍵綁定來切換Lock
修飾符,除非我重置鍵盤映射,按下鍵,然後將其重新映射到我想要的配置,否則我無法關閉 Caps Lock。那麼:如何在不重新映射鍵且沒有鍵綁定的情況下禁用 Caps Lock(目前處於活動狀態)?
也許命令行工具可以設置狀態?
對於任何感興趣的人,以下是我的腳本如何通過按鍵禁用意外啟動 Caps Lock(我從不故意啟用它):
#!/bin/sh # I never want to use Caps_Lock. Make Caps_Lock another Control_L... xmodmap -e "remove Lock = Caps_Lock" 2> /dev/null xmodmap -e "keysym Caps_Lock = Control_L" 2> /dev/null xmodmap -e "add Control = Control_L" 2> /dev/null
我不知道有什麼實用程序可以做到這一點(也許除了
xdotool key Caps_Lock
?),但同時你可以編譯這個小程序cc xkb_unlock.c -s -lX11 -o ./xkb_unlock
(前提是你已經安裝了編譯器和 libc 和 xorg 開發包)並簡單地使用它./xkb_unlock
。
xkb_unlock.c
#include <X11/Xlib.h> #include <X11/XKBlib.h> #include <err.h> #include <stdlib.h> int main(void){ Display *dpy; if(!(dpy = XOpenDisplay(0))) errx(1, "cannot open display '%s'", XDisplayName(0)); XkbLockModifiers(dpy, XkbUseCoreKbd, 0xff, 0); XSync(dpy, False); }