1

是否可以确定系统是否连接了数字小键盘?台式机键盘通常具有数字键盘,而笔记本电脑通常没有(尽管它们将数字键盘键放在普通键盘中,并使用 Num Lock 激活)。操作系统是否知道数字键盘的键是否在物理上是分开的?如果是这样,这些信息是否会以某种方式暴露给程序?

了解这一点有助于确定适当的默认键绑定。如果它不可用,那么我将不得不选择一个保守的默认值(不使用数字键盘),这意味着一个稍微令人讨厌的额外配置步骤可以让拥有单独数字键盘的人获得更好的行为,或者我必须选择一个非保守的默认设置并激怒没有数字键盘的人...

4

2 回答 2

2

我不相信您可以查询键盘功能,但 iirc 有一个“数字键盘”键。;)

您应该能够查询Num是打开还是关闭,但关闭它并不是知道没有数字键盘的万无一失的方法。

您可能会做的是检测小键盘上被按下的键并潜意识地欺骗用户这样做,这将识别所述特征。

于 2012-09-23T04:03:39.393 回答
1

安装这些软件包

sudo apt-get install -y numlockx xdotool x11-utils

然后使用这样的脚本

#!/bin/bash
cd
numlockx off &
rm -f s1.sh s2.sh out
 echo -e "#\041/bin/bash
sleep 2
xdotool key KP_5 | xev > out
exit 0" >> s1.sh
chmod +x s1.sh
echo -e "#\041/bin/bash
sleep 9
killall -9 xev
sleep 5
xdotool key BackSpace
exit 0" >> s2.sh
chmod +x s2.sh


bash s1.sh &
bash s2.sh

rm -f s1.sh s2.sh
if [[ "$(cat out | grep "keycode 84" | grep "KP_Begin" )" != "" ]]; then
  echo "Separated Numpad Detected!"
fi
rm out
exit 0

因为在带有真实键盘的真实键盘中,当 numlock 未激活时,它是KP_Beginnumpad 键的键码。KP_5在 3 台电脑上进行了测试,其中一台带有单独的键盘 e 2 没有。

于 2012-10-06T22:49:45.713 回答