通过docker使用wayland和x11的gui程序

python2.7前几天报废害我的gentoo升级又失败了,所以这次重装琢磨想个办法绕开这些坑。之前试过flatpak,效果没我预期的理想,所以还是自己用容器封吧。
以后说不定可以拿来当一种发布程序的方法。

网上只找到一些x11的帖子,在新的操作系统上已经不能用了,所以我琢磨了一下:



制作系统的方式是这样的,因人而异哈,我用的ubuntu20.04:
docker run -it ubuntu:20.04 /bin/bash

#创建和当前用户相同的用户
useradd -m -u 1000 -g 1000 -s /bin/bash wangjl

#root设个密码方便以后装软件
passwd root

#装几个软件,xclock测试x11,calibre、keepassxc是qt wayland。
apt update
apt install xclock calibre keepassxc

#参考https://github.com/wszqkzqk/deepin-wine-ubuntu安装qq、微信、百度网盘之类的。wine需要x11。

#然后退出来打包
docker commit gui ubuntu:20.04.gui

#配置xhost权限

xhost +SI:localuser:$(id -un)

#启动
docker run -it -e XDG_RUNTIME_DIR=/home/wangjl \
           -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \
           -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/home/wangjl/$WAYLAND_DISPLAY  \
           --user=`id -u`:`id -g`\
           -e QT_QPA_PLATFORM=wayland \
            -v /home/wangjl/:/home/wangjl \
           -e DISPLAY=:0 \
           --name gui -v /tmp/.X11-unix/:/tmp/.X11-unix/ \
          -e LANG=zh_CN.UTF-8 \
          --network host \
           ubuntu:20.04.gui /bin/bash

XDG_RUNTIME_DIR和WAYLAND_DISPLAY是wayland需要的,加起来指向wayland的unix socket路径,QT_QPA_PLATFORM=wayland是qt需要配的,DISPLAY=:0和/tmp/.X11-unix/指向x11的socket路径。

#然后就可以当本地应用那么玩了
也可以像
docker exec -it gui calibre
docker exec -it gui /opt/deepinwine/apps/Deepin-WeChat/run.sh
这样启动gui程序


刚刚又用18.04封了一个mysql-workbench,20.04的mysql-workbench还没出

这两天我感觉plasma在跟python2.7打架,全新安装的plasma/systemd都编译不成功。
现在我看着这种依赖一大堆python2.7和qt的程序我就怕。还是封印起来安心。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值