• :twisted: :twisted: 真的是一万头草泥马狂奔了~~目前只有重庆被劫持~据说是,哪个地区 ip 访问多,就会屏蔽哪个地区!

  • 博客图片原来是放到 google drive,然后通过 cloudflare workers 反代的,但是发现在兲朝速度不佳,所以就趁着空闲分离出来,重新做了图床程序。

  • 豆博今天增加了 Railgun 来加速博客动态文件了,折腾了半天终于完成!

  • 感觉上好久都没换新衣服了,换个新衣服,换个好心情吧!

折腾了一整天,终于按下了 Ctrl+Shift+Space:laoyou-linux-desktop 0.6.3 稳定基线

豆子原创 豆子 5小时前 40次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

今天总算可以给这个项目画上一个阶段性的句号了。

说起来,这个项目本身其实并没有多复杂。豆子只是想做一个自己的 Linux 图形桌面 Docker 环境:Debian 12、XFCE4、TigerVNC、noVNC,再装上 Firefox、Mousepad 和中文输入法。目的也很简单——自己用,自己测试,顺便把它保存下来。

真正让豆子折腾到快要晕掉的,却偏偏是最不起眼的中文输入法。

一开始,一切看起来都很顺利

最初的环境是 Debian 12 ARM64。

桌面使用 XFCE4,远程桌面使用 TigerVNC,同时提供 noVNC,这样浏览器也可以直接进入桌面。

Firefox ESR、Mousepad 等软件装好以后,整个桌面已经基本可以正常使用。

然后就是中文输入法。

Fcitx5 本身其实是正常运行的:

pgrep -a fcitx5
588 fcitx5 -d

D-Bus 也能够找到 Fcitx5:

dbus-send --session \
  --dest=org.freedesktop.DBus \
  --type=method_call \
  --print-reply \
  /org/freedesktop/DBus \
  org.freedesktop.DBus.GetNameOwner \
  string:org.fcitx.Fcitx5

返回了对应的 D-Bus owner。

再检查 Mousepad,甚至能够看到 GTK3 的 Fcitx5 输入法模块已经被加载:

/usr/lib/aarch64-linux-gnu/gtk-3.0/3.0.0/immodules/im-fcitx5.so

环境变量也都看起来没有问题:

GTK_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
DISPLAY=:1.0
QT_IM_MODULE=fcitx

到了这里,豆子一度觉得:应该已经没问题了吧?

结果并没有。

最让人抓狂的是:鼠标点可以,快捷键不可以

桌面上的 Fcitx5 输入法图标可以正常工作。

豆子用鼠标点击输入法图标,可以在中英文之间切换。

可是快捷键就是没有反应。

这就非常让人难受了。

因为从现象来看,Fcitx5 明明活着,中文输入也明明活着,GTK 模块也存在,环境变量也有,鼠标操作还正常。

偏偏快捷键不工作。

于是又开始检查快捷键配置。

Fcitx5 配置界面里显示:

Trigger Input Method: Control+Space

看起来完全正确。

豆子又去检查键盘事件。

通过 xev 可以确认键盘本身确实能够产生 Ctrl、Space 等按键事件。

也就是说,问题并不是键盘坏了,也不是 X11 收不到按键。

这时候就已经开始有点怀疑人生了。

然后,换了一个快捷键

最后豆子决定不再死磕 Ctrl+Space,直接换一个快捷键测试。

于是改成:

Ctrl + Shift + Space

结果……

可以切换了。

当时第一反应其实不是“问题解决了”,而是:

“等等,再测试一下。”

因为前面已经折腾了太久,不敢看到一次成功就宣布结束。

Mousepad 测试

首先在 Mousepad 里测试。

中英文切换正常。

左 Shift 也可以进行输入法切换。

于是继续测试 Firefox。

Firefox 测试

Firefox 中也可以正常进行中英文输入切换。

这时候才算真正松了一口气。

因为 Mousepad 能工作,只能说明 GTK 程序基本正常;Firefox 也能够正常切换,才更接近实际使用环境。

最终确认:

  • Mousepad:正常
  • Firefox:正常
  • 中文输入:正常
  • 英文输入:正常
  • Ctrl + Shift + Space:正常
  • 左 Shift:正常

右侧 Ctrl 暂时没有继续折腾。

因为豆子平时习惯用左手操作键盘,右手拿鼠标,所以左 Ctrl + 左 Shift + Space 对豆子来说已经足够顺手。

然后还有最后一个测试:重启容器

这一关其实很重要。

如果只是当前容器启动以后能用,却无法保证重启后还能用,那么这个版本还不能叫稳定。

所以最后把容器重新启动。

重新进入 XFCE 桌面以后,再测试 Mousepad、Firefox 和中文输入。

依然正常。

到这里,豆子才觉得这个版本是真的可以留下来了。

0.6.3,就这样定下来了

于是把当前镜像确定为:

laoyou-linux-desktop:0.6.3
laoyou-linux-desktop:0.6.3-stable

两个标签指向同一个镜像。

镜像 ID:

sha256:319046519f16e4756a120b34daaead91ed975bdeaf73913923dddeb02a46098d

然后又把这个稳定镜像保存成了本地离线备份:

laoyou-linux-desktop-0.6.3-stable.tar

同时记录 SHA-256:

0b1f27bc1d58ee82e3a0e0207e307e15dd58aeecd25b6c1bef921f0be016c4f4

这个 1.4GB 左右的 TAR 不进入 Git,只作为自己的本地灾备文件保存。

再把源代码放进 GitHub

稳定版本确定以后,就把项目正式建立了 Git 仓库。

当前分支为:

main

第一次正式提交:

b714cdd Initial release: 0.6.3 stable

提交内容只有项目真正需要的几个文件:

.gitignore
Dockerfile
README.md
start.sh

然后推送到自己的 GitHub 仓库。

最终确认:

On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

这时候,源代码也算正式封存了一份。

最后再放到 Docker Hub

Docker Hub 使用:

doublog/laoyou-linux-desktop

推送两个标签:

0.6.3
0.6.3-stable

两个标签最终得到完全相同的 Digest:

sha256:2be3b4b53c7120ad1fb314f13f76ae4e3c91391431d6f457265355d95da78990

Docker Hub 显示的架构也是:

linux/arm64/v8

压缩后的镜像大小约为 524MB。

到这里,这个版本终于算是完整闭环了。

0.6.3,不是“最新”,而是“根基”

豆子并不打算把 0.6.3 当成一个普通的版本号。

它更像是这个项目的一个根基。

因为这个版本不是单纯构建出来的。

它经过了实际容器环境测试,经过了 Mousepad 测试,经过了 Firefox 测试,经过了中英文输入测试,也经过了容器重启后的再次测试。

最后还分别保存到了:

所以以后如果继续开发,豆子不会直接去修改这个版本。

如果需要增加功能,就从新的版本开始:

0.6.3  ← 稳定根基
0.6.4  ← 后续测试
0.7.0  ← 后续功能版本

新版本如果折腾坏了,大不了退回来。

0.6.3-stable 还在那里。

最后

现在回头看,这一天折腾的东西其实挺琐碎。

Docker、Debian、XFCE、VNC、noVNC、Fcitx5、D-Bus、GTK 环境变量、键盘事件……一个一个排查。

真正耗时间的,甚至不是那些复杂的东西,而是一个看起来再普通不过的输入法快捷键。

有时候电脑就是这样。

你以为最后只差一个小问题,结果这个“小问题”能让你折腾几个小时。

不过好在最后还是解决了。

而且豆子觉得,这次最值得留下来的,并不是“豆子终于把 Docker 桌面做出来了”,而是下面这件事:

0.6.3 不是最新版本,也不是所谓最完美的版本。

但它是豆子亲手折腾出来、亲手测试成功、亲手重启验证、亲手备份,并最终保存下来的版本。

所以,它值得成为这个项目的根基。

至于下一次折腾什么时候开始……

先不急。

今天终于可以收工了。😂


豆博 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA4.0 协议进行授权
转载请注明原文链接:折腾了一整天,终于按下了 Ctrl+Shift+Space:laoyou-linux-desktop 0.6.3 稳定基线
喜欢 (0)赏
[sablog@yahoo.cn]
分享 (0)
豆子
关于作者:
豆博站长
发表我的评论
取消评论
声明: 本博采用 BY-NC-SA 协议进行授权
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址