最近装了个open suse各种折腾,果然不管是在使用人数还是支持上都不如ubuntu或者fedora这些火热的发行版啊,有点坑,自带的libreoffice有个非常蛋疼的问题,之前我用它改了一个pptx文件,保存,然后再打开发现啥都没了,醉了……

于是就打算装WPS Office,据说兼容ms office兼容得不错。

下载RPM安装包

wps社区可以下到最新的alpha版,现在也有64位的安装包了,我之前还各种解决32位包依赖问题,重复装了好多包的32bit版本,然后猛然发现了居然有64位的安装包。

不过可能还是有一些包依赖的问题需要手动解决一下,毕竟yast的源中也没有wps office(至少我是没找到),不然就方便多了。

解决fcitx的使用

装完了以后出现了一个非常蛋疼的问题,我用的fcitx输入法在wps office中调不出来,这不是意味着打不了中文了吗……打不了中文还玩个毛线啊……

于是又百度了一下,这篇文介绍的比较靠谱fcitx在wps、winewpp中失灵问题的解决

因为WPS Office for linux基于Qt构建,而我们需要设置一下fcitx的IM_MODULE和XIM插件什么的(具体原理也搞不明白啊),方法就是设置一下环境变量:

1
2
3
4
5
export XIM="fcitx"
export XIM_PROGRAM="fcitx"
export XMODIFIERS="@im=fcitx"
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"

不过这些变量设置在哪里呢?linux中使用export导出的变量只能使用在当前的shell和其生成的子shell中,但其实gnome的环境不知道是哪个shell(我基本对gnome启动一窍不通)。所以会出现将这些代码放在.bashrc、.bash_profile、/etc/profile中都不成功的问题。但好像也有人成功了,这里面的道理我自己也不太明白。

有一点是比较明确的,就是如果在shell中先export然后再执行wps肯定是有效的,也就是它的确能够解决问题。如果需要在gnome的桌面图标执行的时候也生效,只能像博文中说的那样去修改desktop文件了。具体就是写一个脚本:

1
2
3
4
5
6
7
#!/usr/bin/sh
export XIM="fcitx"
export XIM_PROGRAM="fcitx"
export XMODIFIERS="@im=fcitx"
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
/usr/bin/wps "$1"

注:这里的$1指的是shell的第一个参数,加上双引号以避免转移字符的干扰,否则如果文件名中有空格就会被分成2个文件处理,这是其它blog中没有注意的问题。

找个地方保存,我保存的地方是/usr/bin/wps-fcitx.sh,加上执行属性chmod +x。
然后修改/usr/share/applications中的wps-office-wps.desktop,其中的Exec一行改为

1
Exec=/usr/bin/wps-fcitx.sh %f

博主说不知道%f是啥意思,其实就是a single file name,表示打开的文件名。

接着照着添加脚本修改wps-office-wpp.desktop、wps-office-et.desktop,完成。

遗留问题

完成上面的操作以后,然而我从gnome的应用启动菜单打开WPS还是没法切换输入法,不过如果直接双击文件打开就可以切换,有点蛋疼,我觉得是上面的配置还是有哪里出了问题,不知道哪位大牛能找出问题所在…….

PS:后来这个问题莫名其妙地又好了,让我非常震惊……