阅读:4045回复:9
[分享] archlinux下小小的编译,使用ibus模式,wps支持。
在archlinux为使用小小折腾了好几天,分享一下:
## 编译和安装 这一步假设你已经有基本的abs编译基础,PKGBUILD见下: ``` # Maintainer: firef <use_my_id at="" gmail="" dot="" com=""> # Modiferied by: Yue Wu <ywupub 163="" at="" dot="" com=""> pkgname=yong pkgver=2.6.0 pkgrel=1 pkgdesc="Tiny Small Chinese Input Method" arch=('x86_64') url="https://github.com/dgod/yong" license=('GPL') makedepends=('git' 'nodejs' 'gcc' 'wayland' 'gtk2' 'gtk3' 'gtk4' 'qt5-base' 'libibus') # 系统中需要安装好相关的开发环境,比如gtk3-devel,gtk2-devel,ibus-devel,libxkbcommon-devel(debian下是libgtk-3-dev libgtk2.0-dev libxkbcommon-dev libibus-1.0-dev)。 #provides=("yong=$pkgver") depends=('gtk3') #install=yong.install source=("git+https://github.com/dgod/yong.git" "git+https://github.com/dgod/build.js.git") md5sums=('SKIP' 'SKIP') pkgver() { cd "$srcdir/$pkgname/install" awk '/%define +version/{print $3}' yong.spec | sed 's|-|.|g' } prepare(){ cd $srcdir/$pkgname mkdir -p {llib,cloud,gbk,mb,vim}/l64 mkdir -p {im,config}/{l64-gtk4,l64-gtk3,l64-gtk2} mkdir -p im/gtk-im/{l64-gtk4,l64-gtk3,l64-gtk2} mkdir -p im/IMdkit/l64 mkdir -p im/qt5-im/l64-qt5 mkdir -p im/gtk4-im/l64-gtk4 sed -i 's/copy_build("l32");//' install/build.txt # ywu 若需要gtk4支持,请注释掉下面一行。 sed '/gtk4/d' install/build.txt sed -i 's_MOC=.*_MOC="/usr/bin/moc"_' im/qt5-im/build.txt } build() { buildjs="$srcdir/build.js/build.js" cd $srcdir/$pkgname # 不编译qt6支持 node $buildjs l64 -x l64-qt6 node $buildjs -C install copy } package() { mkdir -p $pkgdir/usr/bin mkdir -p $pkgdir/usr/share cp -a $srcdir/$pkgname/install/yong $pkgdir/usr/share cd $pkgdir/usr/share/yong ln -sf ../share/yong/l64/yong-gtk3 $pkgdir/usr/bin/yong ln -sf ../share/yong/l64/yong-config-gtk3 $pkgdir/usr/bin/yong-config install -D $srcdir/$pkgname/im/qt5-im/l64-qt5/libyongplatforminputcontextplugin.so $pkgdir/usr/lib/qt/plugins/platforminputcontexts/libyongplatforminputcontextplugin.so install -D locale/zh_CN.mo $pkgdir/usr/share/locale/zh_CN/LC_MESSAGES/yong.mo install -D l64/gtk-im/im-yong-gtk2.so $pkgdir/usr/lib/gtk-2.0/2.10.0/immodules/im-yong.so install -D l64/gtk-im/im-yong-gtk3.so $pkgdir/usr/lib/gtk-3.0/3.0.0/immodules/im-yong.so install -D $srcdir/yong/im/yong.xml $pkgdir/usr/share/ibus/component/yong.xml } post_install() { gtk-query-immodules-2.0 --update-cache gtk-query-immodules-3.0 --update-cache } post_remove() { gtk-query-immodules-2.0 --update-cache gtk-query-immodules-3.0 --update-cache } ``` Changlog: 20220711 增加ibus组件支持。 makepkg -sic 即可。 ## x的设置 经过测试,我感觉ibus的兼容要比fcitx的好,所以我推荐使用ibus+小小模式运行,因为我不使用桌面环境,只使用窗口管理器wm,通过startx进入X,所以使用桌面环境和启动管理器的请根据自己情况来调整,我也不清楚具体方法。 先在ibus设置里添加小小输入法,然后在.xinitrc或其他相关文件添加环境变量设置及启动ibus: .xinitrc ``` # 设置中文环境 export LC_CTYPE=zh_CN.UTF-8 # 设置环境变量 export XMODIFIERS='@im=ibus' # 默认以ibus为输入法框架 export GTK_IM_MODULE=yong export QT_IM_MODULE=yong eval `dbus-launch --sh-syntax --exit-with-session` ibus-daemon -dxr sleep 2 ``` 以上即可,然后退出X再重启即可使用小小。 ## wps的支持 wps需要把 /usr/bin/下的 wps、et、wpp,用文本编辑器编辑,在第2行中加入: ``` export QT_IM_MODULE=ibus ``` 强制在wps中使用ibus模式即可。 如果不想修改wps文件,就直接设置全局的环境变量: export QT_IM_MODULE=ibus |
|
沙发#
发布于:2022-07-18 16:19
使用过程中,会发现ibus+小小有时不是那么稳定,比如在wps下打着打着就调不出小小了,可以尝试下面一些方法:
1. 如果是在wps下突然切换不出小小,但在其他软件可以使用小小,这时,可以尝试打开一个xterm终端,切换小小看看是否有用,如果可以切换出来小小,这时再回到wps里十有八九就又可以调出小小输入中文了; 2. 如果小小突然退出了,可以看到状态栏下的小小图标也消失了,只能看到ibus的图标,这时,可以打开xterm终端,输入`ibus engine yong`,小小的图标又会出现了。这时小小又可以正常调用了。 |
|
板凳#
发布于:2022-07-21 09:32
周大,最新的代码又编辑不过去了,请帮忙看看。
``` node:internal/fs/utils:347 throw err; ^ Error: ENOENT: no such file or directory, mkdir at Object.mkdirSync (node:fs:1394:3) at cc (/home/abs/yong/src/build.js/build.js:350:6) at cc (/home/abs/yong/src/build.js/build.js:335:4) at run (eval at _build_step (/home/abs/yong/src/build.js/build.js:534:8), <anonymous>:19:2) at eval (eval at _build_step (/home/abs/yong/src/build.js/build.js:534:8), <anonymous>:31:2) at _build_step (/home/abs/yong/src/build.js/build.js:534:8) at process.processTicksAndRejections (node:internal/process/task_queues:77:11) { errno: -2, syscall: 'mkdir', code: 'ENOENT' } Node.js v18.6.0 ==> ERROR: A failure occurred in build(). ``` |
|
4楼#
发布于:2022-07-21 10:19
|
|
5楼#
发布于:2022-07-21 10:44
laolang_cool:这下可以编译通过了,试了一下,应该是代码没更新到git,通过更新程序更新的是好的 |
|
6楼#
发布于:2022-07-21 11:36
|
|
7楼#
发布于:2023-04-07 13:35
|
|
8楼#
发布于:2023-04-07 14:54
laolang_cool:今天更新了github上的0402的代码,编译打包完发现在目录下少了ibus用的yong.xml文件,这是有什么替代的方法了么?回到原帖在啊 https://github.com/dgod/yong/blob/master/im/yong.xml |
|
9楼#
发布于:2023-04-07 17:41
dgod:在啊 https://github.com/dgod/yong/blob/master/im/yong.xml回到原帖不好意思,是我这边的编译脚本的问题,目录引用错了…… |
|