我的键盘上有一个坏掉的键,圆点。具体地说。它的行为非常奇怪,大约是键盘输入双点的7/10倍。单击一次。当点键被按下时,我使用xbindkey来拦截并触发我的bash脚本启动。我编写的bash脚本检查它有多少实例正在运行,并且只键入“。一次。
#!/bin/bash
let "target=2"
curr=$(ps -A | grep 'dot-writer.sh' | wc -l)
if [ "$curr" -eq "$target" ]
then
numlockx on
xdotool key KP_Delete
sleep 0.1
fi正如您从脚本中看到的,我实际上并没有键入“。使用xdotool,但我启用了Numlock并键入了另一个“。在我的键盘上,与delete按钮相同的键盘上。
正如你可能猜到的那样,这不是一个完美的解决方案,因为这两个键在100%的时间里并不是完全相同的。
我试着告诉xdotool输入".“作为Unicode字符
xdotool key U002E我试着告诉xdotool输入".“作为Bash生成的字符串
xdotool type $'.'我试着告诉xdotool输入".“作为包含Unicode字符的Bash生成的字符串。
xdotool type $'\u002E'所有这些似乎都不起作用,因为它被拦截,就像点按键被xbindkey按下一样,并一次又一次地触发相同的脚本。
有什么我能做的吗?我可以使用其他工具来模拟按键吗?
发布于 2017-05-17 00:36:48
您可以尝试将点复制到主剪贴板,以便可以粘贴它而不是发送键。变量用于保存和恢复剪贴板以前的内容。
contents=$(xclip -selection primary -o)
echo -n "." | xclip -selection primary
xdotool key --clearmodifiers Shift+Insert
echo -n "$contents" | xclip -selection primaryhttps://stackoverflow.com/questions/43138001
复制相似问题