/
基于Kwin完善Desktop Environment

基于Kwin完善Desktop Environment

1.问题:

  1. 多用户设计

    1. 每个用户启动一个android 容器,在登录时,根据不同用户启动不同容器。缺点:共有数据要多次挂载给多个用户使用?

    2. 所有用户共用一个android容器,在登录时,根据不同用户挂载不同的数据目录到容器中?缺点:切换用户时,需要保持多个用户共同使用私有数据就会冲突。

    3. 共享的app共用问题:将私有app和共享app分别安装到不同目录,启动时一起挂载到容器中。

  2. 宿主机上的设备,如USB key如何映射到android中?目前USB mouse还未找到方法如何映射到android container.

  3. 支持卸载android环境,包括自定义的host desktop environment.

  4. 视频解码加速共用问题,显卡一般支持多路同时解码(总解码能力是固定的)。

    1. amd显卡的vce句柄最大同时支持16个,rx460 解码能力能支持h264 120 fps * 1920*1080 . 具体参考:https://github.com/obsproject/obs-amd-encoder/wiki/Hardware-VCE3.4

  5. 支持退出登录,和切换用户。android launcher发送退出指令,hosted desktop environment响应命令。

  6. 编写或配置登陆管理器(Display manager) https://gnu-linux.readthedocs.io/zh/latest/Chapter02/50_login.manager.html 不展示其他desktop environment。/etc/X11/default-display-manager 配置了默认的display manager。

    1. 将其他desktop environment文件隐藏。缺点:卸载android 环境后要复原。

    2. 将gdm读取destkop entry配置文件的路径修改?如果不支持配置,需要修改代码。

    3. 配置成自动登录。跳过输入密码和选择desktop environment步骤

2. 实现

sudo apt install kwin-x11

2.1 退出登录实现方案

目前维持android 桌面一直展示的原因是/bin/custom_de.sh 脚本中的startscreen.sh命令是一个前台进程(类似于gnome-session),如果该进程退出,桌面控制权就会退还给display name程序(一般是gdm).

基于上述原理,编写程序——android-session,该程序功能如下:

  1. 启动kwin;

  2. 通过docker api启动redroid容器,

  3. 启动startscreen.sh 

  4. 循环监听dbus消息,如果收到logout消息,则kill 上述由自己启动的子进程,再退出。

Add label

Related content

a. 基于Kwin完善Desktop Environment
a. 基于Kwin完善Desktop Environment
More like this
4.2.3 Create Custom Desktop Environment for android
4.2.3 Create Custom Desktop Environment for android
More like this
OpenFDE桌面环境的linux应用融合--Xserver方案
OpenFDE桌面环境的linux应用融合--Xserver方案
More like this
OpenFDE桌面环境的linux应用融合--Xserver方案
OpenFDE桌面环境的linux应用融合--Xserver方案
More like this
2.3 融合应用
2.3 融合应用
More like this
1.3 X11 Server
1.3 X11 Server
More like this