Xorg

在 unix 上禁用鍵盤和滑鼠輸入(在 X 下)

  • September 15, 2014

如何以程式方式暫時“凍結”鍵盤和滑鼠,以便沒有人可以弄亂系統?

有幾種可能性是有用的。例如,我有一台筆記型電腦,我想確保在我離開時沒有人使用它,即使有人知道密碼或可以猜到密碼(如妻子或孩子),以及抑制小偷的胃口(因為這似乎是- 運作)。或者我正在遠端做某事,所以我想確保電腦上的使用者不會打擾。

假設您的 GUI 是基於 X 的(幾乎所有 UNIX GUI 都是),請使用xinput.

首先,列出您的設備:

$ xinput --list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Windows mouse                             id=6    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
↳ Windows keyboard                          id=7    [slave  keyboard (3)]

列出滑鼠的詳細資訊(在我們的範例中為 id=6):

$ xinput --list-props 6
Device 'Windows mouse':
   Device Enabled (112):   1
   Coordinate Transformation Matrix (114): 1.000000, 0.000000, 0.000000, 0.000000,   1.000000, 0.000000, 0.000000, 0.000000, 1.000000
   Device Accel Profile (222):     0
   Device Accel Constant Deceleration (223):       1.000000
   Device Accel Adaptive Deceleration (224):       1.000000
   Device Accel Velocity Scaling (225):    10.000000

現在禁用它:

$ export DISPLAY=:0
$ xinput set-int-prop 6 "Device Enabled" 8 0

要啟用它,請執行以下操作:

$ xinput set-int-prop 6 "Device Enabled" 8 1

鍵盤也是如此,只需將 int-prop 編號替換為正確的 id 即可。

在cygwin上測試和工作。

當然,您必須事先計劃如何再次啟用您的設備。例如在 cron 上安排它,遠端重新啟用它,或者首先禁用其中一個。

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