既然 fcitx5 都和 fcitx4 冲突了,就直接设置成包冲突,并且在 rpm 里写一个更新新闻说明需要运行迁移向导,这样可以吗?
更新时候的输出可能不容易被看到,有些人不关心新闻,升级后发现自己输入法配置没了,然后也没有提示要迁移,体验不好。
我指的是确认更新之前的调用 pager 的、类似 changelog 的、不读完不让更新的那种新闻(话说 openSUSE 应该有这种吧)
这种可以,我以为只是输出文字。
这个办法好
@fusionfuture 如果你想用 C++ 写插件的话,可以复用 fcitx5 本身的 notificationitem module,classic ui 也使用了它。
或者干脆就写个 lua 插件,这个比较简单了,但是 lua 的依赖不太好找
不过还有一个问题,如果是用 PackageKit 的一系列前端升级的话(比如 KDE 的 Discover),这种通知还会展示吗?
这个……真不清楚
是啊,感觉也不难啊。不需要管是不是首次启动吧,就一直弹个常驻通知,直到用户决定要不要迁移。
不过我认为的情况是 fcitx4 和 5 在仓库里是共存的,不主动安装就不会变,类似 fish 和 fish3,情况应该能好一点?
TW 里装 fish 貌似就是 fish3 没得选……
不会了。所以还是不怎么好
@lilydjwg 我有了个 lua 插件的 idea。就是 watch key event,用户每天第一次不管按下什么键,直接 notify-send 一个提示。升级完了按提示直接把 lua 插件包一卸载就行了(打包机制还在想,怎么让这个包能预装上还不是强依赖,还不用每次都装),或者不用 notify-send,用 lua 弹一个窗,点一下我已完成就不会再出来了之类的
框架已经出来了。利用 fcitx5-lua 的插件机制,在用户每天第一次使用 fcitx5 的时候(判断方法是按下 ctrl + space 切进中文输入模式的时候,跟 ~/.local/share/fcitx5/.timestamp 这个文件的时间做对比,超过 24 小时就认为你今天是第一次使用 ),弹出个窗来提示你升级,你点 ok 就会跳到 fcitx5-migrator,之后不管你是直接关掉还是真的做了升级,都不会再弹窗烦你了。如果你点的 cancel 就明天继续。
要是手动运行 fcitx5-migrator 升级过的用户也很简单,自己禁用一下这个插件就可以了。或者 touch ~/.config/fcitx/.migration-complete。
我觉得这个构思很巧妙的吧 @fusionfuture @lilydjwg
后续只需要写完程序后,单独打个包,暂时让 fcitx5 强依赖一阵子它,等以后 fcitx4 没了直接去掉强依赖把这个包从 Factory 移除就好了。
支持大佬,顶一下
代码已经写完了,就差打包了
测试一下吧,推到 M17N 里了。现在还可以使用 systemctl —user enable fcitx5 来启用 fcitx5。
本主题在最后一个回复创建后60分钟后自动锁定。不再允许添加新回复。