atom、electron 和 gentoo

强烈建议用上ccache,不然崩了重开心态爆裂。

atom依赖electron,electron在gentoo里面是2.0.17-r2版本,但是问题多多。首先是pulseaudio它没办法支持(打补丁就可以,但是我还没有学会怎么用补丁),所以要把它的pulseaudio USE给去掉。这样就可以通过7000/16000的第一道坑了。

第二道坑是内置的chromium,源代码的/var/tmp/portage/dev-util/electron-2.0.17-r2/work/electron-2.0.17/chromium/third_party/WebKit/Source/core/dom/Document.cpp有问题,在5192行的结尾少了一个“;”号,要自己补上。这样就可以通过11000/16000的坑了。

这样electron就能编译成功了,atom也就是小case了。

deepin-wine-wechat

archlinux+KDE

首先参考的是AUR|deepin qq的评论区,留意其中关于Deepin QQ(Office)的X Error of failed request: BadWindow 评论。

github issue | KDE环境完全无法使用wine-tim可知在KDE环境下无法启动deepin-wine系列的东西是因为缺少了gnome依赖。所以用console启动的时候可以看见报错是X Error of failed request: BadWindow 之类的(依靠这个才找到AUR,才解决了问题)。

所以就是怎么办的问题。置顶评论只是解决了中文无法输入的问题,或者是治标不治本的简单粗暴方法:直接换用gnome。但是下面评论的一条解决了问题:

……
非gnome系的解决方案:安装gnome-settings-daemon,然后运行/usr/lib/gsd-xsettings

manjaro+awesome下测试通过

确实OK了。最后再加一个systemd服务在开机的时候自动启动就好了:


[Unit]
Description=GSD-Xsettings Service
After=rc-local.service

[Service]
Type=simple
User=root
Group=root
#WorkingDirectory=/home/sieve
ExecStart=/usr/lib/gsd-xsettings
Restart=always

[Install]
WantedBy=multi-user.target

gentoo

编译

gentoo下官方当然是没有这个包的,所以要靠野包(overlay)来实现。首先是安装layman来管理overlay,然后layman -L && layman -a deepin把deepin的overlay加进去。他们的github是:deepin-overlay
第二步,emerge --ask deepin-wine-wechat,甚至可以加上--newuse --update,然后就会出现一大堆条件未满足,一般会在/etc/portage/package.use文件夹里面产生._cfg开头的文件,把那个文件cat/etc/portage/package.use里面的一个文件里面就好了,我是cat进了wechat文件里面。然后再来一次emerge,这次应该就能开始编译了。

再次编译

编译完成之后,用命令行启动,会发现出现段错误,查找github可以发现有人提过一个issue谈到这个问题。解决问题的办法就是用-O1重新编译一次x11-libs/libxcb和x11-libs/libX11,命令是CFLAGS="-march=native -O1 -pipe" emerge --ask x11-libs/libxcb x11-libs/libX11

安装gnome-settings-daemon

这是和上面的一样的了,稍有不同的是gentoo安装好的要执行的文件的路径是/usr/libexec/gsd-xsettings。往/opt/deepinwine/tools/run_v2.sh的RunApp()里面添加:

if [[ -z "$(ps -e | grep -o gsd-xsettings)" ]]
        then
         /usr/libexec/gsd-xsettings    &
        fi

就可以启动微信了。

中文呢?

/opt/deepinwine/apps/Deepin-WeChat/run.sh里面需要export一些环境变量:

export LC_ALL=zh_CN.UTF8
export [email protected]=fcitx
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx

丑是丑了点,但是能用了。