emacs GUI 使用 fcitx

前段时间用 emacs GUI 的时候发现不能输入中文,搜了下发现有挺多人遇到问题,参考资料 [1] 里面有解释说是 emacs 的一个遗留问题,只要把 LC_CTYPE 设置成 zh_CN.UTF-8 就行。但是我试了下发现没效果,继续搜索之后发现还有个可能是字体的问题(见参考资料[2,3]),装完字体就好了。这里把需要的配置都总结下备忘,因为字体的问题一点都没有报错,完全不知道从何查起。

这里的环境是 fcitx 4.2.9.7,emacs 26.3。

编辑 ~/.xprofile(或 ~/.bashrc),加入以下内容:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

编辑 ~/.xprofile(或 ~/.bashrc),设置 LC_CTYPE

export LC_CTYPE=zh_CN.UTF-8

可能有关的一个配置(不确定)是,在 ~/.Xdefaults 加上

Emacs.useXIM:on

阅读全文…

使用 overlayfs 和 chroot 搭建临时环境

最近在写一个小工具,依赖的库比较多,但是这些依赖都不常用,不想为了开发而装在常用的机器上。想用以前用 chroot 搞的一个开发环境,可惜更新源验证总出问题,搜索了几个方案后还是没解决。我只是想搞个隔离的测试环境,不需要限制资源,docker 又庞大配置又麻烦(其实根本原因是我讨厌 golang),又不想重新配置一份环境,于是搜了下 docker 相关的底层技术,最后发现 overlayfs+chroot 就能完美解决我的需求,在这里记录一下,内核版本是 5.6。

overlayfs 介绍

顾名思义,overlayfs 就是把多个目录组合在一起形成一个新的文件系统,在 2014 年被合并进 kernel v3.18。先来看下使用时的命令行参数:

mount -t overlay overlay -o lowerdir=<lowerdir1>:<lowerdir2>:<...>,upperdir=<upperdir>,workdir=<workdir> <mountpoint>

大概介绍下这里的三个参数:

  • lowerdir:只读目录,多个目录用 ":" 分隔。
  • upperdir:可读可写目录。如果 upperdirlowerdir 中有同名的文件,会优先展示 upperdir 中的文件(换言之就是 lowerdir 中的文件被屏蔽了)。

阅读全文…