eternalterminal: 文件系统中存在 /usr/bin/et (由 wps-office-cn 所有)
有办法给 wps 的组件改个名吗?和 EternalTerminal 项目的惯用 CLI 名称冲突了。
补充: 参考 https://github.com/Rongronggg9/wps-office-repack 把 et 改成 wpset,把 wpp 改成 wpswpp 我觉得是比较合理的选择。et 是个更纯粹的 CLI 工具,而 wps 几乎不需要在命令行中被调用。
| Git Clone URL: | https://aur.archlinux.org/wps-office-cn.git (read-only, click to copy) |
|---|---|
| Package Base: | wps-office-cn |
| Description: | Kingsoft Office (WPS Office) CN version - an office productivity suite |
| Upstream URL: | https://linux.wps.cn |
| Licenses: | LicenseRef-WPS-EULA |
| Conflicts: | kingsoft-office, wps-office |
| Provides: | wps-office |
| Submitter: | Universebenzene |
| Maintainer: | Clover_Yan |
| Last Packager: | Clover_Yan |
| Votes: | 62 |
| Popularity: | 1.06 |
| First Submitted: | 2020-01-10 04:38 (UTC) |
| Last Updated: | 2026-04-13 11:38 (UTC) |
eternalterminal: 文件系统中存在 /usr/bin/et (由 wps-office-cn 所有)
有办法给 wps 的组件改个名吗?和 EternalTerminal 项目的惯用 CLI 名称冲突了。
补充: 参考 https://github.com/Rongronggg9/wps-office-repack 把 et 改成 wpset,把 wpp 改成 wpswpp 我觉得是比较合理的选择。et 是个更纯粹的 CLI 工具,而 wps 几乎不需要在命令行中被调用。
强制wps界面默认语言为zh-cn,不受系统环境变量默认语言设置影响
xlsx、docx等文件图标会被系统图标覆盖,通过以下命令可以让wps的图标优先显示
sudo sed -i 's/<generic-icon /<icon /g' /usr/share/mime/packages/custom-wps-office.xml
wps 'PhD topic intro ABC_DE.pptx' /usr/bin/wps: 第 70 行:[: 参数太多
solution:
sudo sed -i 's/if \[ \${gFilePath:0:7}/if [ "${gFilePath:0:7}"/g' /usr/bin/wps
更新时间:2026-04-25 18:59:46 CST
当前环境:
wps-office-cn 12.1.2.24722-2wps-office-mui-zh-cn 12.1.2.24722-2wps-office-fonts 1.0-2XDG_CURRENT_DESKTOP=niri,XDG_SESSION_TYPE=wayland实际症状:
wps 可以正常启动欢迎界面。wps /绝对/路径/文件.docx 时,WPS 无法正常打开文件。.docx 看起来“没有反应”。wps /path/to/file.docx
因此只要“带路径参数启动”有问题,双击打开就一定会失效。
/usr/bin/wps 只是包装脚本系统里的 wps 并不是真实二进制,而是一个 Bash 包装脚本:
which wps
# /usr/bin/wps
这个脚本最终调用真实程序:
/usr/lib/office6/wps
同时该脚本无论内部子进程是否失败,最后都会:
exit 0
因此:
wps 脚本本身的退出码,无法可靠判断内部真实失败状态。/usr/lib/office6/wps 的行为。测试过将 HOME 指向一个全新的临时目录,让 WPS 在“空白用户配置”下启动:
HOME=/tmp/wps-clean-home /usr/lib/office6/wps /tmp/test.docx
结果仍然是 255 退出。
这说明:
~/.config/Kingsoft 里的旧配置不是本问题的主因。现象上 WPS 裸启动正常,说明:
如果是典型缺库问题,通常连裸启动都过不去。
这是本次定位里最关键的一步。
直接执行真实二进制:
/usr/lib/office6/wps /tmp/codex-wps-test.docx
返回:
rc=255
并且 strace 显示:
/usr/lib/office6/cfgs/setup.cfg;~/.config/Kingsoft/Office.conf;open() 目标文档之前,直接执行了:exit_group(-1)
也就是说:
测试方式:
cd /tmp/wps-reltest
/usr/lib/office6/wps a.docx
这条路径不再立即 255 秒退,而是继续进入图形初始化流程,说明:
基于实际行为,最合理的判断是:
wps-office-cn 12.1.2.24722-2这一版在 Linux/Arch 当前环境下,对“绝对本地文件路径”的启动参数处理存在 bug。
更准确地说:
exit(-1);单独跑真实二进制且不在完整图形上下文时,确实能看到 Qt 类报错,例如:
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
qt.qpa.xcb: could not connect to display :0
但这类报错只说明:
真正关键的差异是:
因此主矛盾不是 Qt 插件本身。
系统查询结果显示 .docx 默认关联本来就是:
wps-office-wps.desktop
所以关联本身没坏。
问题在于:
采用的思路不是继续硬改 WPS 本体,而是在它外面加一层“路径改写”包装。
核心策略:
file:// URI:cd 到文件所在目录;这样就能把:
wps /tmp/demo.docx
改造成逻辑等价的:
cd /tmp
wps demo.docx
从而绕开 WPS 的绝对路径 bug。
新增:
/home/myself/.local/bin/wps-pathfix
用途:
wps、et、wpp 的文件路径参数;新增:
/home/myself/.local/share/applications/wps-office-wps.desktop
/home/myself/.local/share/applications/wps-office-et.desktop
/home/myself/.local/share/applications/wps-office-wpp.desktop
它们覆盖了系统自带 desktop 项的 Exec=,分别改为:
Exec=/home/myself/.local/bin/wps-pathfix wps %U
Exec=/home/myself/.local/bin/wps-pathfix et %F
Exec=/home/myself/.local/bin/wps-pathfix wpp %F
这样做的好处:
xdg-open、MIME 打开路径都能走到修复逻辑。验证结果:
255;如果以后 WPS 官方/AUR 新版本已经修掉这个问题,可以回退当前 workaround。
删除以下文件即可:
rm -f ~/.local/bin/wps-pathfix
rm -f ~/.local/share/applications/wps-office-wps.desktop
rm -f ~/.local/share/applications/wps-office-et.desktop
rm -f ~/.local/share/applications/wps-office-wpp.desktop
update-desktop-database ~/.local/share/applications
如果文件管理器仍缓存旧 desktop 条目,可重启文件管理器或重新登录图形会话。
可继续追的方向:
file:// URI、工作目录、单实例通信有关;wps-office-cn 新版本是否修复该问题。当前这台机器上,最靠谱的结论是:
WPS 本体可用,文档也能打开;坏掉的是“直接把绝对路径交给 WPS”的入口。
所以最稳妥、最小代价的方案就是保留本次用户级路径重写修复。
这次故障不是“WPS 完全打不开文档”,而是:
这版 WPS 在 Arch/Linux 当前环境里对绝对路径参数有缺陷,导致文件管理器双击传参时秒退;通过把绝对路径改写成相对路径,问题已被稳定绕过。
与 " WPS的 设置\其他\切换窗口管理模式 改成多组件模式,即可解决问题;其后也可以再改回整合模式 " 应属同一问题,提供另外一种解决方法
asduhkv 在 2026-01-14 22:15 (CST) 发表了评论 (在 2026-01-14 22:17 (CST) 被 asduhkv 编辑) 如果从Dolphin无法用WPS打开PDF等文件,启动器中无法启动WPS文档、WPS表格等,可能是WPS默认的整合模式导致的,可以进入WPS的 设置\其他\切换窗口管理模式 改成多组件模式,即可解决问题;其后也可以再改回整合模式。前面的朋友的方法很有效。
要么上游修复,要么锁定评论
对于wps-office-cn,在配置了 “解决方式:在 desktop 文件中,如wps-office-et.desktop 文件中,启动命令增加 参数: --ozone-platform=x11,如 Exec=/usr/bin/et --ozone-platform=x11 %F” ,仍不可用时,推荐配置:sudo nano /usr/bin/wps export QT_IM_MODULE=fcitx export GT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx 来提供IM配置
如果从Dolphin无法用WPS打开PDF等文件,启动器中无法启动WPS文档、WPS表格等,可能是WPS默认的整合模式导致的,可以进入WPS的 设置\其他\切换窗口管理模式 改成多组件模式,即可解决问题;其后也可以再改回整合模式。前面的朋友的方法很有效。
命令行,文件夹打不开
claude code 找到的方案
把 Exec=/usr/bin/wps %U 改成了 Exec=/usr/lib/office6/wpsoffice /prometheus %U
从 WPS 自己的启动脚本里看到的。之前我读取了 /usr/bin/wps,第 128-129 行:
elif [ 1 -eq ${gIsFushion} ] && [ "$1" != "/prometheus" ]; then { unset GIO_LAUNCHED_DESKTOP_FILE && ${gInstallPath}/office6/${gApp} /prometheus ${gOptExt} ${gOpt} "$@"; } > /dev/null 2>&1
/prometheus 是 WPS 的融合模式(Fusion Mode)启动参数:
你的 WPS 可能默认启用了融合模式,但启动脚本的逻辑有 bug —— 只有在特定条件下才会加 /prometheus,而从文件管理器打开时条件不满足。
Pinned Comments
asduhkv commented on 2026-01-14 14:15 (UTC) (edited on 2026-01-14 14:17 (UTC) by asduhkv)
如果从Dolphin无法用WPS打开PDF等文件,启动器中无法启动WPS文档、WPS表格等,可能是WPS默认的整合模式导致的,可以进入WPS的 设置\其他\切换窗口管理模式 改成多组件模式,即可解决问题;其后也可以再改回整合模式。前面的朋友的方法很有效。
Universebenzene commented on 2020-01-10 08:31 (UTC) (edited on 2020-01-10 08:45 (UTC) by Universebenzene)
[Attention] The zh_CN mui files (including all the Simplified Chinese support) are splitted into the
wps-office-mui-zh-cnpackage. If you want zh_CN support, DO NOT FORGET to install the mui-zh-cn package.Also the mui-zh-cn package can be installed to recover the zh_CN support of the Intl version https://aur.archlinux.org/packages/wps-office , but the login and some other supports are still only available in the CN version.