[Share Experiences] 在 V23 中安装并自定义搜狗输入法 Resolved
Tofloor
poster avatar
忘记、过去
deepin
2024-07-01 22:08
Author

安装方式

  • deepin V23 仓库已集成搜狗输入法,正式版镜像中提供预装
  • 终端执行 sudo apt install com.sogou.ime.ng.fcitx5.deepin 可手动安装

之前大佬已经发过相关帖子:https://bbs.deepin.org.cn/post/274902,可以直接按照帖子操作进行安装。

配置搜狗输入法

目前搜狗输入法的设置界面,入口在搜狗状态栏的最后一个图标“打开属性设置”上。对比以前的版本,大多数功能还在(除了天国的账号同步和皮肤切换功能之外),比如常用的小键盘保持半角输入啥的。

设置输入候选数量

  • sogou-ime-ng (>= 10.0.9.0.8-928) 版本中已在属性设置中提供修改入口,无需修改配置文件;以下操作仅针对旧版本

不过这个版本里,输入候选数量似乎和皮肤设置一起被砍了(之前这俩在一页上来着?)。虽然界面上没法设置,但还是可以通过配置文件进行修改的。

搜狗输入法运行期间,用户修改的配置被存储在以下位置:

~/.config/cpis/module/im/fcitx5/com.sogou.ime.ng.fcitx5.deepin/keyflow.ini
  1. 修改这个文件,在 [KEYFLOW_SETTING] 组下,添加一行 pagesize = 数字 并保存(其他内容保持不变即可);修改后,文件内容类似

    [KEYFLOW_SETTING]
    pagesize = 8
    ......
    
  2. 终端执行 killall cpis-panel-service 杀死搜狗输入法面板服务进程(或在系统监视器中终止该进程)

  3. 在任意输入框中唤起搜狗输入法并输入文字,可观察到输入候选个数变化

当然,不太建议写太离谱的数字(比如 <=0 或者特别大啥的),谁知道会出啥问题......相信没有放出来设置肯定是有原因的吧

P.S. 至于设置内容是从哪里来的?参考 /etc/cpis 文件夹中和上述路径层级对应的配置文件,这里就提供了设置项的默认值。同时,这里还能看到搜狗输入法的版本,加载的插件位置,使用的皮肤。至于哪些能生效就留给各位自行探究了......

关闭 Ctrl + Shift + F 简繁体切换快捷键

同上,修改同一个配置文件,在 [KEYFLOW_SETTING] 组下,添加一行 shortcut.key.tradition = 并保存,重启进程即可生效。

P.S. 等号后建议留一个空格

[KEYFLOW_SETTING]
......
shortcut.key.tradition =

关闭 Shift 中英文切换快捷键

同上,修改同一个配置文件,在 [KEYFLOW_SETTING] 组下,添加一行 shortcut.key.disable_ime.shift = false 并保存,重启进程即可生效。

[KEYFLOW_SETTING]
......
shortcut.key.disable_ime.shift = false

默认使用英文标点

同上,修改同一个配置文件,在 [KEYFLOW_SETTING] 组下,添加一行 chinese_punctuation = false 并保存,重启进程即可生效。

[KEYFLOW_SETTING]
......
chinese_punctuation = false

修改输入候选字体大小

  • sogou-ime-ng (>= 10.0.9.0.8-950) 版本中已在属性设置中提供修改入口,无需修改配置文件(详见 ~/.config/cpis/module/im/fcitx5/com.sogou.ime.ng.fcitx5.deepin/keyflow.iniconfig_pcstyle_cands_size 字段值);以下操作仅针对旧版本

  • sogou-ime-ng (>= 10.0.9.0.8-928) 版本中疑似为上架统信应用商店做准备,不再从 /etc/cpis 文件夹下读取配置文件和皮肤;新的配置文件放置于 /opt/apps/com.cpis/etc 文件夹下。

    后续操作的文件请自行修改路径,如将 /etc/cpis/module/im/fcitx5/com.sogou.ime.ng.fcitx5.deepin/isp.ini 修改为 /opt/apps/com.cpis/etc/module/im/fcitx5/com.sogou.ime.ng.fcitx5.deepin/isp.ini

P.S. 都把所有文件放到 /opt/apps/com.cpis 里面了,是不是可以把 cpis-base 的软件包依赖也去掉了......


  • 4K 显示器用户可以参考楼下 #13,修改字体大小为 28

这个版本的搜狗输入法据说换成了 Gtk3 编写界面(而之前的版本好像是 Qt5 写的)。具体区别暂且不提,但目前的输入法候选词字体确实有亿点太大了。

由于外观设置界面被砍,想修改字体大小只能直接从皮肤配置文件下手了。根据上述配置文件测试,皮肤配置文件在系统路径下,且无法被用户主目录相同位置配置文件覆盖:

/etc/cpis/module/im/fcitx5/com.sogou.ime.ng.fcitx5.deepin/isp.ini

其中,以下内容设置了默认皮肤文件夹位置,以及默认皮肤为 SogouClassic

......
[skin.Default]
skinfolder=/etc/cpis/resources/skin/
skinname=SogouClassic
......

进入 /etc/cpis/resources/skin/SogouClassic 文件夹后,分析 xml 文件,可以得出候选词默认大小为 18px。下面以修改为 16px 为例:

  1. 修改 /etc/cpis/resources/skin/SogouClassic/window_pc_composition.xml 文件,在文件开头部分可以看到 14 和 18 两种字体大小定义;此处自行添加一行 16 大小的字体

    
    
        
        
        
    ......
    
  2. 修改 /etc/cpis/resources/skin/SogouClassic/global.xml 配置文件,找到其中备注为 pc 候选 的部分,修改字体大小 font="16" 即可(与之前添加的 Font name 保持一致应该就行)

    ......
        
        
  3. 终端执行 killall cpis-panel-service 杀死搜狗输入法面板服务进程(或在系统监视器中终止该进程)

  4. 在任意输入框中唤起搜狗输入法并输入文字,可观察到输入候选字体大小变化

P.S. 简单来说就是字体大小和皮肤强制绑定在一起了,没法单独修改。有能力的大佬完全可以直接模仿 /etc/cpis/resources/skin/ 文件夹下皮肤的文件夹结构自制皮肤,放入后修改 isp.ini 配置文件并重启进程即可。

导入旧版本搜狗输入法的词典

这部分似乎没啥用,毕竟旧版本是给 fcitx4 框架用的,V23 上肯定装不上。不过考虑到部分 UOS 用户也用上了新的搜狗输入法,或者有勇士能从 V20.9 升级到 V23,就顺带提一下吧。

如果在商店中安装过旧版本的搜狗输入法,用户词典的位置在 ~/.config/*sogou*/dict/PCPYDict/sgim_usr_v3new.bin 文件中(中间那层文件夹名称不太确定,不同打包版本文件夹名称也不一样,有的是 sogoupinyin,有的是 com.sogou.sogoupinyin 或者 com.sogou.sogoupinyin-uos 啥的)。

将这个文件复制出来备份下,在新版本的搜狗属性设置界面中,选择“拼音->导入”,选择该 .bin 文件即可。

截图_sogou-ime-setting_20240701214257.png

题外话

咳咳,以上就是目前咱研究出来的搜狗输入法的玩法了。实话,砍了账号同步和皮肤之后就没啥可玩的了,还是很怀念 2.2 和 2.3.1 版本的(虽然 BUG 也不少就是了)

如果只是想安装和配置搜狗输入法,看到这里就可以退出了哈~


接下来才是咱比较关注的地方

注意原版安装脚本的坑(虽然问题不是很大)

为啥要单独再提一嘴怎么安装呢?之前闲着无聊看了下搜狗仓库里提供的安装脚本内容,有些操作过于震撼人心令人印象深刻,值得单独拎出来讲下 XD......

首先,可以在浏览器中直接访问 http://repo.taotics.com/cross-platform-input-solution/,页面会提示我们执行对应命令为 Debian 及其衍生发行版安装跨平台输入法(稳定版本和日构建版本)。

以稳定版本的安装脚本为例,可以在终端直接执行

curl -fsSL http://repo.taotics.com/cross-platform-input-solution/add-repo-cpis.sh

获取到脚本内容,如下:

#!/bin/sh

if [ `id -u` -ne 0 ]; then
	echo "please re-run ${this_file} as root."
	exit 1
fi

echo "deb [trusted=yes] http://repo.taotics.com/cross-platform-input-solution senbena contrib non-free utils" > /etc/apt/sources.list.d/cross-platform-input-solution.list
wget -O - http://repo.taotics.com/cross-platform-input-solution/key/public.key | sudo apt-key add -
cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d 
apt update

总的来说,就是写入了一个搜狗自己的仓库,顺便给这个仓库加上了公钥(否则是无法访问仓库的)。

不过问题就出在了这个加公钥上,且不说 apt-key add 这种方式已经被标记为不推荐很久了,后面一步把 /etc/apt/trusted.gpg 复制到 /etc/apt/trusted.gpg.d 文件夹里面,似乎有点多此一举?即使没有这步操作也可以访问仓库,更别说这种神奇操作本就不应该做了...... doubt

目前相对常见的做法,应该是通过 gpg --dearmor 命令,将 public.key 生成为 xxxxx.gpg 格式,并将 .gpg 文件放入 /etc/apt/trusted.gpg.d 文件夹里面。可以参考以下脚本中获取 public.key 并写入 sogou-ime.gpg 文件的写法,直接一步到位:

#!/bin/bash

if [ `id -u` -ne 0 ]; then
	echo "please re-run $0 as root."
	exit 1
fi

echo "deb [trusted=yes] http://repo.taotics.com/cross-platform-input-solution senbena contrib non-free utils" > /etc/apt/sources.list.d/cross-platform-input-solution.list
echo "deb [trusted=yes] http://repo.taotics.com/cross-platform-input-solution senbena-dailybuild contrib non-free utils" >> /etc/apt/sources.list.d/cross-platform-input-solution.list
echo "deb [trusted=yes] http://repo.taotics.com/cross-platform-input-solution senbena-deb11u1 contrib non-free utils" >> /etc/apt/sources.list.d/cross-platform-input-solution.list

wget -O - http://repo.taotics.com/cross-platform-input-solution/key/public.key | gpg -o /etc/apt/trusted.gpg.d/sogou-ime.gpg --dearmor -

apt update

P.S. 第一段是在判断执行脚本的用户是不是 root,不是的话就输出提示并退出。但是这个输出里的 ${this_file} 变量其实并不存在,输出中间是空的。可能写 $0 合适点?

不过也没啥大问题,毕竟“又不是不能用.jpg”。输入法本身好用就已经很不错了,安装脚本有点问题也不影响,等着以后进系统或者商店仓库就行 XD......

Reply Favorite View the author
All Replies
2 / 2
To page
log2021
deepin
2024-09-03 15:11
#21

重装也不行,如图问题

image.png

Reply View the author
2 / 2
To page