红联Linux门户
Linux帮助

Ubuntu Touch通用运行linux桌面应用方法

发布时间:2015-11-05 15:28:37来源:linux网站作者:疾风净Rain

UT中能够运行x11应用已经众所周知,但由于bug较多没有放出官方教程.这里整理出的方法借鉴了搜索出来的,以及ubuntu ask, google plus上的许多文章,在这里致谢.


0.以下所有的脚本均在nexus7二代 ubuntu touch 15.04 stable channel r2 中经过测试。非常建议使用stable镜像,因为stable中的mir与unity8均比较稳定。本人在使用rc-proposed进行测试时发生了莫名其妙的错误。


1.通过adb shell或ssh将设备连接到pc  具体开启ssh的方法:http://askubuntu.com/questions/601910/ssh-ubuntu-touch


2.搭建xmir环境。xmir没有默认安装在UT系统中,需要添加第三方源获取:
sudo mount -o remount,rw /
将根目录改为读写模式
sudo add-apt-repository ppa:mlankhorst/ppa && sudo apt-get update && sudo apt-get install xserver-xorg-xmir
通过Xmir -help验证安装并获取帮助。


3.添加执行xmir的脚本
nano ~/bin/xmir.sh
其实可以将脚本置于任意你喜欢的位置。内容:
#!/bin/bash
Xmir :0 -sw -flatten -rootless --desktop_file_hint=/home/phablet/.local/share/applications/xmir.desktop &
sleep 0.5
DISPLAY=:0 chromium-browser --window-size=960x571 --force-device-scale-factor=2
其中第二行用于开启xmir显示服务。:0 指示窗口终端的序号,如果同时开启多个x应用,就需要指定不同的值,不然显示的窗口将会重叠。-sw 选项用于禁止egl加速显示,在nexus去掉此选项(应该)会导致错误,而其他设备则(应该)可以省去这一选项。
--desktop_file_hint 选项用于通过mir的连接。即在启动xmir服务时,默认是无法连接到mir的(至少在nexus设备上如此)。而这一选项可以启用一个mir程序以承载xmir渲染出的图像。事实上,你完全可以使用任何你乐意的desktop文件来承载xmir,比如/home/phablet/.local/share/appllications/mediascanner-music.desktop,因为用于承载的mir应用与你需要启动的xmir服务不需要有任何关系,xmir只不过需要占用一个窗口而已。这里的xmir.sh为一个没有实际内容的desktop
sleep用于给设备以启动xmir的时间
最后一行用于在:0上启动chromium,选项是为了让它看起来比例大一些。
chmod +x ~/bin/chromium.sh


4.修改desktop文件
sudo nano /usr/share/applications/chromium-browser.desktop
添加以下内容
Exec=/home/phablet/bin/chromium.sh
X-Ubuntu-Touch=true


已知的bug:
打开应用时可能发生奇怪的闪烁
无法拖动或缩放窗口。手指拖动会被识别为选择
无法启动屏幕键盘。推测可以用外接键盘操作。


Ubuntu 14.10安装Ubuntu Touch Music App 2.0:http://www.linuxdiyf.com/linux/8241.html