我在触摸屏设备上的kioskmode中使用X,Openbox和Chromium运行Ubuntu Server(16.04.3 LTS)。它作为(非根)用户直接进入信息亭。
不需要鼠标或键盘,所以我用
启动X.startx -- -nocursor
什么能有效地禁用鼠标。但是用户仍然可以使用Chromium插入键盘并执行各种不需要的操作。因此,我正在寻找禁用整个键盘的方法。
要捕获和禁用Openbox rc.xml
中的每个键和组合键对我来说似乎是一项不可能完成的任务。那么是否有一些带有startx或Openbox的开关来禁用键盘? (我已尝试过-nokeyboard
,但却出错了。-keyboard null
也无效。)
或者,作为最后的手段,有没有办法在用户登录时禁用键盘(和鼠标)?
答案 0 :(得分:1)
import execjs
# execjs from here: https://pypi.python.org/pypi/PyExecJS
# javascript from here: https://stackoverflow.com/questions/
#43664483/insert-image-into-google-sheets-cell-using-google-sheets-api
ctx = execjs.compile( """ {
var ss=SpreadsheetApp.getActiveSpreadsheet()
var formulaSheet = ss.getSheetByName("orcl"); '''tab 'orcl' is present.
var formulaCell = formulaSheet.getRange("B5");
formulaCell.setFormula('=IMAGE("orcl.png",4,100,200)')
} #http://finviz.com/fut_chart.ashx?t=ES&p&p=m5&s=m
""")
import execjs.runtime_names
jscript = execjs.get(execjs.runtime_names.JScript)
jscript.eval(ctx)
是您的工具。
使用xinput
查找键盘的ID。可能的输出:
xinput --list
获取⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ HP Webcam id=9 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
↳ HP WMI hotkeys id=12 [slave keyboard (3)]
↳ HP Wireless hotkeys id=13 [slave keyboard (3)]
的ID。在这种情况下,它是AT Translated ... keyboard
。
禁用键盘输入:
10
作为单行:
xinput --disable 10
(您可以使用鼠标或触控板执行相同操作,只需使用匹配的ID)。
P.S。:我不确定键盘输入是否可见,只要没有插入键盘,或者插入后插入另外一个键盘输入。我现在没有硬件可以检查。也许您必须创建一个xinput --disable $(xinput list | grep "AT Translated" | cut -f2 | cut -d= -f2)
规则来监视新的键盘并运行udev
。