菜单

给树莓派加个虚拟键盘

2017年1月14日 - 嵌入式

如题,我最近测试树莓派的时候,有个非常不方便的事情总是困扰我,因为经常测试需要重新烧录系统,然后一旦烧录了系统后,就会需要全部重新配置树莓派的IP,vim脚本等等一系列的内容,其他的都好办,我放在github上一个副本,直接git clone下来就好,但是git clone需要树莓派首先连着网络才好啊~

但是联网就不得不需要屏幕,键盘,鼠标等配件,我不想插插拔拔这么多东西,很繁琐。手头正好有触摸屏,为何不能接着触摸完成这个操作呢?接了触摸发现一个问题,就是如果没有配置,触摸也不好用,还得我插键盘….但是如果有个触摸屏是即插即用的,那结果就两样了,今天在公司就用到一个。

这时候,触摸也有了,点开wifi也能看到热点了,就是无法输入密码!!!!!!!!!!!!!!!!!!!!这个时候是不是很沮丧!是不是!是不是!是不是很沮丧!??!

好吧,我也是醉了,接上键盘,输入密码,联网,查看ip地址,记录下来,然后通过笔记本电脑远程连入树莓派。接下来就是去整理一下,如何安装一个树莓派的虚拟键盘了。

首先,更换了源,下面有个列表,从树莓派实验室拿来的,大家随意取用:

中山大学
Raspbian http://mirror.sysu.edu.cn/raspbian/raspbian/

中国科学技术大学
Raspbian http://mirrors.ustc.edu.cn/raspbian/raspbian/

清华大学
Raspbian http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/

华中科技大学
Raspbian http://mirrors.hustunique.com/raspbian/raspbian/
Arch Linux ARM http://mirrors.hustunique.com/archlinuxarm/

大连东软信息学院源(北方用户)
Raspbian http://mirrors.neusoft.edu.cn/raspbian/raspbian/

重庆大学源(中西部用户)
Raspbian http://mirrors.cqu.edu.cn/Raspbian/raspbian/

新加坡国立大学
Raspbian http://mirror.nus.edu.sg/raspbian/raspbian

牛津大学
Raspbian http://mirror.ox.ac.uk/sites/archive.raspbian.org/archive/raspbian/

韩国KAIST大学
Raspbian http://ftp.kaist.ac.kr/raspbian/raspbian/

更新自己的/etc/apt/sources.list里面的内容即可,就是要注意自己的源的版本,别把jessie更新成了wheezy,也别弄反了。我的系统是Jessie的,所以,你懂得。

编辑/etc/apt/sources.list 文件,参考如下命令:

sudo  cp /etc/apt/sources.list{,.bak}

cat > /etc/apt/sources.list << EOF 

deb http://mirror.sysu.edu.cn/raspbian/raspbian/ Jessie main contrib non-free

deb-src http://mirror.sysu.edu.cn/raspbian/raspbian/ Jessie main contrib non-free

EOF

注:网址末尾的raspbian重复两次是必须的。因为Raspbian的仓库中除了APT软件源还包含其他代码。APT软件源不在仓库的根目录,而在raspbian/子目录下。

编辑镜像站后,请使用sudo apt-get update命令,更新软件源列表,同时检查您的编辑是否正确。
如果需要, 你可以执行以下命令将Raspbian public key加入你的 apt-get keyring :

wget http://archive.raspbian.org/raspbian.public.key -O - | sudo apt-key add -

哦,这下就可以直接从国内下载,方便很多。

接着更新一下,然后下载matchbox启动需要依赖的软件包,matchbox就是后面要用的虚拟键盘。

sudo apt-get update 

sudo apt-get install -y libfakekey-dev libpng-dev libxft-dev autoconf libtool  

下载源码编译安装,也是轻松搞定,so easy。

git clone https://github.com/mwilliams03/matchbox-keyboard.git 

cd matchbox-keyboard

./autogen.sh

make

sudo make install

安装共享库

sudo apt-get install libmatchbox1 -y

然后编辑一个shell脚本做一下判断和启动操作:

sudo vim.tiny /usr/bin/toggle-matchbox-keyboard.sh

写入如下内容:

#!/bin/bash
#This script toggle the virtual keyboard

PID=`pidof matchbox-keyboard`
if [ ! -e $PID ]; then
  killall matchbox-keyboard
else
 /usr/bin/matchbox-keyboard -s 80 extened 
fi

赋予执行权限:

sudo  chmod +x  /usr/bin/toggle-matchbox-keyboard

接下来可以添加它到开始菜单,这里要注意不同的版本可能添加路径不一样。

对于老版本在这里创建:

pi@raspberrypi ~ $ sudo vim.tiny /usr/local/share/applications/toggle-matchbox-keyboard.desktop

对于新版本,包括Jessie在这里创建:

pi@raspberrypi ~ $ sudo nano /usr/share/applications/toggle-matchbox-keyboard.desktop

拷贝如下内容进去就好:

[Desktop Entry]
Name=Toggle Matchbox Keyboard
Comment=Toggle Matchbox Keyboard
Exec=toggle-matchbox-keyboard.sh
Type=Application
Icon=matchbox-keyboard.png
Categories=Panel;Utility;MB
X-MB-INPUT-MECHANSIM=True

如果想要创建一个图标在任务栏上,方便我们进行键盘的调用,就需要修改一下LXDE 面板的配置文件了:

pi@raspberrypi ~ $ vim.tiny  ~/.config/lxpanel/LXDE/panels/panel

如果系统提示上面的文件不存在,或者无法创建,说明你用的是比较新的系统了,所以需要重新定位一下。新版jessie比较坑爹的地方就在这里,很多人不懂就卡住了,其实路径差不多,如果用table键补全应该是很快就好的,为了帮助大家区分,还是写细一些。

如果你用的是老版本的RASPBIAN WHEEZY:

pi@raspberrypi ~ $ vim.tiny  ~/.config/lxpanel-pi/LXDE/panels/panel

如果你用的是新版本的RASPBIAN JESSIE:

pi@raspberrypi ~ $ vim.tiny  ~/.config/lxpanel/LXDE-pi/panels/panel

通过vim的查找功能找到这段内容:

Plugin {
    type = launchbar
    Config {
        Button {
            id=lxde-screenlock.desktop
        }
        Button {
            id=lxde-logout.desktop
        }
    }

在其中添加一段内容,粗体高亮的就是我添加进去的:

Plugin {
    type = launchbar
    Config {
        Button {
            id=toggle-matchbox-keyboard.desktop
        }
        Button {
            id=lxde-screenlock.desktop
        }
        Button {
            id=lxde-logout.desktop
        }
    }

然后保存退出,重新启动一下就可以看到键盘图标了。

这个虚拟键盘叫做:Matchbox-keyboard

你也可以在图形界面的终端里面输入命令打开,切记,要有终端哦,没有终端是不能够显示的,需要X环境。

pi@raspberrypi ~ $ matchbox-keyboard

另外,如果你用ssh从PC端或者笔记本登陆到你的树莓派,那么可以用过这个命令来使用:

pi@raspberrypi ~ $ DISPLAY=:0.0 matchbox-keyboard

Matchbox-keyboard 默认是100%大小的窗口,你可以通过 -s 加上整数来进行窗口大小变化,这个值在30%-100% 之间,代表宽度。

下面就是用50%的宽度显示键盘的图示。

pi@raspberrypi ~ $ matchbox-keyboard  -s  50

mbk-50percentdefault

另外如果想要扩展键盘的内容,可以用extended参数,非常有用的,至少输入网址需要这个扩展键盘。

pi@raspberrypi ~ $ matchbox-keyboard -s 50 extended

mbk-70percentextended

好了,可劲儿造吧,我就写到这里了,算是记录一下。

今天是周五,周末愉快~

发表评论