Devices

使用 CapsLock 作為滑鼠左鍵;大部分都有效,但在一些事情上失敗了

  • April 6, 2019
Linux System Info:
OS:        GNU/Linux x86_64
Kernel:    3.13.0-24-generic
Distro:    Linux Mint 17 Qiana, Cinnamon 64-bit 2.2.16
          [Based On: Ubuntu 14.04.5 LTS, Trusty Tahr]

由於包括手指損傷在內的殘疾(脊髓損傷),我進行了一些更改,以便可以將鍵盤的 CapsLock 鍵用作滑鼠左鍵。NumLock 被重新映射以用作 CapsLock。

將 CapsLock 用作左鍵點擊和左鍵點兩下時,幾乎所有操作都可以正常工作,但下面列出的一些操作並不…

編輯 2019-01-10

長篇文章的其餘部分已被刪除 - 請參閱下面的答案,了解如何將 CapsLock 鍵設置為滑鼠左鍵,並將 NumLock 重新映射為 CapsLock。

回答我自己的問題…

事實證明,將 CapsLock 設置為滑鼠左鍵比預期的要簡單得多。

$$ Note: The physical mouse left mouse button continues to behave as normal. $$ 1)將CapsLock映射到滑鼠左鍵(66是CapsLock鍵碼):

$ xmodmap -e "keycode 66 = Pointer_Button1"
  1. 將 NumLock 映射到 CapsLock(77 是 NumLock 鍵碼):
$ xmodmap -e "keycode 77 = Caps_Lock"

注意:這意味著 NumLock 將充當 CapsLock 替換鍵,NumLock 的功能將失去(我從不使用它,但如果您使用 NumLock,請使用不同的鍵,例如 Pause、ScollLock 等)。

  1. 啟用滑鼠鍵:
$ xkbset mousekeys

注意:在某些發行版上預設不安裝 xkbset,這與在系統設置的輔助功能部分啟用滑鼠鍵不同。

就是這樣——一切都完成了。


但是,使用者可能希望在啟動時自動完成這些任務。這是我所做的:

創建正常文件/home/user/.Xmodmap並插入以下行。

! 77 is the NumLock key code, 66 is the CapsLock key code.
! Map CapsLock to the left mouse button and map NumLock to
! CapsLock, i.e. NumLock acts as the CapsLock key used to.

keycode 77 = Caps_Lock
keycode 66 = Pointer_Button1

.Xmodmap注意:文件中的註釋以!.

事實證明,在啟動時執行 xmodmap 來載入~/.Xmodmap文件比預期的要困難 - 問題是它必須在啟動序列的後期完成,否則 XKB 將不會被啟動,並且 XKB 將在載入時覆蓋 xmodmap 更改。

放置線…

/usr/bin/xmodmap /home/user/.Xmodmap
/usr/bin/xkbset mousekeys

…在~/.profile, ~/.xinitrc,中~/.xsessionrc都失敗了。

創建文件/etc/X11/Xsession.d/80_xmodmap_user_added以執行上述命令,如如何在 Ubuntu 16.04 中持久地重新映射鍵?對我不起作用。

我不情願地使用了圖形啟動工具,在 Linux Mint 上如下(您的發行版可能會有所不同):

Mint Menu --> Preferences --> Startup Applications

我創建了 2 個條目,一個用於呼叫以下每個命令:

/usr/bin/xmodmap /home/user/.Xmodmap
/usr/bin/xkbset mousekeys

作為記錄,我不需要在我的啟動應用程序條目中自動啟動延遲,但如果這對您不起作用,請嘗試添加延遲。XKB 需要在命令執行之前啟動,否則您的更改將被它覆蓋。

這一切對我來說都很完美;在啟動時 CapsLock 用作滑鼠左鍵(點擊和點兩下均可)。

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