NOTE

经过努力反馈,多显示器下算法服务闪退的 bug 已修复,相关信息和最新的构建下载看这个 issue:外接屏幕的切换会导致算法服务失效 #1073

前文在关于双拼和小狼毫的两篇文章Rime-小狼毫-小鹤双拼-从入门到养老-双拼学习篇Rime-小狼毫-小鹤双拼-从入门到养老-配置篇中详细的介绍了 Rime 这款输入法。

不过最近不知道是不是 Windows 打了补丁的缘故还是什么原因,电脑在系统启动后小狼毫总是无法输入文字,即便重新部署也没有任何反应。

后来尝试着手动执行 Windos 菜单中小狼毫文件夹中的「小狼毫算法」服务后才恢复正常,但是现在搞的每次开机都要手动操作一下,虽然也说不上麻烦,但是总觉得十分膈应。

在 weasel 的 issue 无法输入中文 #737 中我发现有不少人都有这个问题,而且博客微信群中三四个用 Rime 的用户似乎都有这个问题。遂找了一下解决方案。

方案一:启动文件夹(无效)

该 issue 中提有用户提了一些解决方案,基本解决思路都是:「没启动就让他启动嘛」,一些用户创建了算法服务程序的快捷方式放进 shell:startup 中,不过这个方式我测试后发现并没有作用。

方案二:WeaselServerAutostart

我在 Github 上找到一个用于在开机后启动小狼毫算法服务的程序,作者也是遇到同类问题,所以利用 AutoHotkey 写了个启动脚本打包,下载后创建快捷方式放进 shell:startup 中即可,程序逻辑为:

  1. 检测小狼毫算法服务 WeaselServer.exe 是否已经启动。如果没有运行,则脚本会启动与脚本同目录下的 WeaselServer.exe 程序。如果目录下没有该算法程序,则使用 weasel-0.15.0 的默认安装路径。
  2. 然后,脚本会休眠 30 秒,并再次检测算法服务是否已经启动。
  3. 接着,脚本休眠 180 秒,最后检测一次算法服务是否已经启动。这次之后,无论结果如何,程序都将自动退出。

方案三:计划任务

根据上面这个软件的使用体检得出总结,在系统启动后 30 秒左右基本上可以正常启动算法服务,而且上面提到的 issue 中也有用户用了这个方案,所以我们也可以不用方案二提到的程序,而是直接使用 Widnows 系统自带的「计划任务设置」自动启动,该功能自带延迟任务启动时间选项,动手能力强的小伙伴们可以使用这种方式。

最终方案:脚本保活

前面的方法只能启动一次,我昨日在多屏使用时发现在切换屏幕时会导致小狼毫算法服务退出,为了解决这个问题我用 ChatGPT 糊了一个循环检测脚本。

该脚本会根据设置的检测时间检测后台是否有算法服务,没有就启动,有就不管。

$processName = "WeaselServer"
$processPath = "C:\Program Files (x86)\Rime\weasel-0.15.0\WeaselServer.exe"
$intervalInSeconds = 10
 
function Start-WeaselServer {
    Start-Process -FilePath $processPath
}
 
while ($true) {
    $process = Get-Process -Name $processName -ErrorAction SilentlyContinue
    if (!$process) {
        Write-Output "WeaselServer process not found, starting..."
        Start-WeaselServer
    }
    Start-Sleep -Seconds $intervalInSeconds
}

搭配计划任务可以做到后台无感运行,计划任务设置如下:

计划任务设置

微信配色主题分享

另外分享一组用了很久的 Rime 微信配色主题,之前老版本的小狼毫不支持一些圆角、透明通道等特性,边框总是不太完美,十分讨厌。

好在最近 weasel 主仓库合并了 fxliang 大佬的分支之后支持了很多新主题属性,其中有圆角、支持透明通道等等特性,所以做了一下修改,现在更完美了。

  preset_color_schemes/wechat_light:
    name: 微信键盘浅色
    author: zsakvo      
    horizontal: true                          # true横排,false竖排
    back_color: 0xFFFFFF                      # 候选条背景色
    border_height: 0                          # 窗口上下高度,大于圆角半径才生效
    border_width: 8                           # 窗口左右宽度,大于圆角半径才生效
    candidate_format: '%c %@ '                # 用 1/6 em 空格 U+2005 来控制编号 %c 和候选词 %@ 前后的空间
    comment_text_color: 0x999999              # 拼音等提示文字颜色
    corner_radius: 5                          # 窗口圆角
    hilited_corner_radius: 5                  # 高亮圆角
    font_face: 'Maple UI'                     # 候选词字体
    font_point: 16                            # 候选字大小
    hilited_candidate_back_color: 0x75B100    # 第一候选项背景色
    hilited_candidate_text_color: 0xFFFFFF    # 第一候选项文字颜色
    label_font_point: 12                      # 候选编号大小
    text_color: 0x424242                      # 拼音行文字颜色
    inline_preedit: true                      # 拼音位于: 候选框 false | 行内
    border_color: 0x00FFFFFF
    shadow_color: 0x4c808080                  #阴影颜色
      
  preset_color_schemes/wechat_dark:
      name: 微信键盘深色
      author: zsakvo      
      horizontal: true                          # true横排,false竖排
      back_color: 0x2e2925                      # 候选条背景色
      border_height: 0                          # 窗口上下高度,大于圆角半径才生效
      border_width: 8                           # 窗口左右宽度,大于圆角半径才生效
      candidate_format: '%c %@ '                # 用 1/6 em 空格 U+2005 来控制编号 %c 和候选词 %@ 前后的空间
      comment_text_color: 0x999999              # 拼音等提示文字颜色
      corner_radius: 5                          # 窗口圆角
      hilited_corner_radius: 5                  # 高亮圆角
      font_face: 'Maple UI'                     # 候选词字体
      font_point: 16                            # 候选字大小
      hilited_candidate_back_color: 0x75B100    # 第一候选项背景色
      hilited_candidate_text_color: 0xFFFFFF    # 第一候选项文字颜色
      label_font_point: 12                      # 候选编号大小
      text_color: 0x424242                      # 拼音行文字颜色
      label_color: 0x999999                     # 预选栏编号颜色
      candidate_text_color: 0xe9e9ea            # 预选项文字颜色
      inline_preedit: false                     # 拼音位于: 候选框 false | 行内 true
      border_color: 0x00FFFFFF
      shadow_color: 0x4c808080                  #阴影颜色