我的键盘上有一个坏键,点“。”再具体一点。 它表现得非常奇怪,大约是键盘类型的7/10倍,点击一次时出现双点“..”。 当按下点键时我使用xbindkeys来拦截并触发我的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并输入另一个“。”位于键盘上的键盘上与删除相同的按钮。
正如你可能猜到的那样,这不是一个完美的解决方案,因为这两个键在100%的时间内并不完全相同。
我试过告诉xdotool输入“。”作为Unicode字符
xdotool key U002E
我试过告诉xdotool输入“。”作为Bash生成的字符串
xdotool type $'.'
我试过告诉xdotool输入“。”作为由Bash生成的字符串,包含Unicode字符“。”
xdotool type $'\u002E'
这些似乎都不起作用,因为它被截取,好像xbindkeys按下了点键并一次又一次地触发了相同的脚本。
我能做些什么吗? 我可以使用其他工具来模仿按键吗?
答案 0 :(得分:1)
您可以尝试将点复制到主剪贴板,以便粘贴它而不是发送密钥。变量用于保存和恢复剪贴板的先前内容。
contents=$(xclip -selection primary -o)
echo -n "." | xclip -selection primary
xdotool key --clearmodifiers Shift+Insert
echo -n "$contents" | xclip -selection primary