Linux 使用xmodmap禁用键盘按键(禁用Linux快捷键)
最近在Linux中用QT做項目,開發一個全屏軟件運行在公司的設備上,系統是統信UOS Linux系統,設備開機后會立即進入軟件,且沒有權限不允許用戶進入Linux后臺。
但有點麻煩,大家都知道,在Linux中,可以按快捷鍵 Ctrl + Alt + (F1 - F6) ,會進入黑屏終端,在這個黑屏終端就可以使用命令將軟件強制關閉(kill);或者按快捷鍵 Ctrl + Alt + T 可以打開終端窗體,終端就可以使用命令將軟件強制關閉;或者按快捷鍵 Ctrl + Alt + Delete 可以進入關機選項界面,可以調出UOS的后臺任務管理器…
這些都是不允許的,所以我在網上找,有什么方式可以禁用統信UOSLinux系統的快捷鍵,找了很久,沒有找到相關的解決方法;但是找到可以使用xmodmap去修改按鍵和禁用按鍵,感覺可行,于是自己親自嘗試后發現也可以行,于是記錄下來!
Ctrl + Alt + (F1 - F6)
黑屏終端演示圖:
Ctrl + Alt + T
終端演示圖:
Ctrl + Alt + Delete
進入關機選項界面
存在以上的行為,對系統都是挺危險的,所以,得禁用這些快捷鍵!
1. xmodmap 是什么?
貌似是可以修改鍵盤映射和鼠標映射的命令…
查看keycode命令:
xmodmap -pke
…
等等一共有255個。
每個keycode對應一個鍵盤按鍵。
禁用鍵盤按鍵需要用到這些keycode。
2. 禁用
使用命令:
xmodmap -e 'keycode 數字 = '
暫時禁用鍵盤按鍵!
例如:
我在項目中禁用Alt鍵和F1 - F12鍵
首先找到左Alt鍵和右Alt鍵
代碼命令禁用左Alt鍵和右Alt鍵:
讓其等于空即可!(直接在終端運行命令即可)
我是在Linux下QT操作的,所以我可以使用C/C++的函數system()去調用命令:
// 暫時禁用Alt鍵 system("xmodmap -e 'keycode 64 = '"); // key Alt as Left system("xmodmap -e 'keycode 108 = '"); // key Alt as Right執行完之后,按鍵盤Alt鍵就沒有反應了,可以測試快捷鍵Ctrl + Alt + F2,會發現這個快捷鍵沒法使用了!
使用了取巧的方式進行禁用快捷鍵!(沒辦法,網上找不到禁用統信UOS系統的快捷鍵方法)
但是,使用這種方式有一個小缺點,就是重啟系統后,他就會自動恢復了!
這個我看網上有教程說可以將命令寫入一個什么什么文件,就可以實現開機自動調用進行禁用了,具體我沒試過喔…
禁用F1 - F12:
3. 恢復
手動恢復!
調用命令:
xmodmap -e 'keycode'
恢復鍵盤按鍵!
keycode:上面截圖等號右邊那些字符串!
例如:
恢復左Alt鍵和右Alt鍵命令:
代碼恢復:
system("xmodmap -e 'keycode 64 = Alt_L Meta_L Alt_L Meta_L'"); system("xmodmap -e 'keycode 108 = Alt_R Meta_R Alt_R Meta_R'");這樣就可以實現恢復操作了,然后可以測試快捷鍵Ctrl + Alt + F2,可以發現,又可以正常進入黑屏終端了!
恢復F1 - F12鍵:
system("xmodmap -e 'keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1'"); system("xmodmap -e 'keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2'"); system("xmodmap -e 'keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3'"); system("xmodmap -e 'keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4'"); system("xmodmap -e 'keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5'"); system("xmodmap -e 'keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6'"); system("xmodmap -e 'keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7'"); system("xmodmap -e 'keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8'"); system("xmodmap -e 'keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9'"); system("xmodmap -e 'keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10'"); system("xmodmap -e 'keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11'"); system("xmodmap -e 'keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12'");總結
鍵盤禁用,簡單的用法就是這樣了,其實xmodmap還有很多高級用法的,例如鍵盤按鍵調換,鼠標左右點擊調換等等…
我在項目中用法:軟件啟動就立刻禁用按鍵(快捷鍵),當使用權限正常進入后臺前,就恢復!
使用很簡單,但是卻幫我解決很大的問題!
總結
以上是生活随笔為你收集整理的Linux 使用xmodmap禁用键盘按键(禁用Linux快捷键)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安霸SPI 剖析
- 下一篇: 64位MicrosoftOfficeWo