我的笔记本电脑没有CapsLock指示灯,又由于经常在vim下写程序,对大小写很敏感,经常弄混大小写,输入错误命令,非常苦恼。一次偶然机会,发现了ubuntu自带的notify-send弹窗提醒功能,于是想到开发一个小程序,能在进行大小写切换的时候进行提醒。
实现思路
由于Java类中有现成的方法可以调用得到当前计算机的大小写状态,所以使用java获得当前计算机的大小写状态,然后返回给shell程序进行处理,并加以提醒。
代码实现
java程序获得计算机当前的大小写状态
// java程序获得计算机当前的大小写状态
// 当前为大写则返回true
// 当前为小写则返回false
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
public class Test
{
public static void main(String[] args)
{
System.out.println(isUpperLetter());
}
private static boolean isUpperLetter()
{
return Toolkit.getDefaultToolkit().getLockingKeyState(
KeyEvent.VK_CAPS_LOCK);
}
}
shell程序对返回状态进行处理,并加以提醒
#!/bin/bash
flag="0"
while(true)
do
result=$(java Test)
# 由小写变大写
if [ $result = "true" ]
then
if [ $flag = "0" ]
then
flag="1"
notify-send -i ~/chutian.jpg "大写"
fi
fi
# 由大写变小写
if [ $result = "false" ]
then
if [ $flag = "1" ]
then
flag="0"
notify-send -i ~/chutian.jpg "小写"
fi
fi
done
程序结果: