马帅 2018-04-04
在Ubuntu16.04中,将某个程序锁定到启动器后,偶尔会出现无法正常运行、不能正确输入中文等问题。这里以SQLyog为例,总结一些常见问题和解决方法。
1. 锁定后图标消失/无法启动
在~/.local/share/applications/文件夹下可以找到以.desktop结尾的配置文件,以SQLyog为例,初始的配置文件如下:
[Desktop Entry] Encoding=UTF-8 Version=1.0 Type=Application Name=SQLyog Icon=sqlyog_exe.png Path=/home/kevinyang/SQLyog10.2 Exec=Z:\\home\\kevinyang\\SQLyog10.2\\SQLyog.exe StartupNotify=false StartupWMClass=SQLyog.exe OnlyShowIn=Unity; X-UnityGenerated=true
因为SQLyog是借助wine启动的,而这里的Exec这个配置记录的是wine内部的执行方式,所以一来锁定到启动器的图标会无法正常显示,二来点击图标也无法启动SQLyog。将启动配置更改为下面的命令:
Exec=wine "Z:\\home\\kevinyang\\SQLyog10.2\\SQLyog.exe"
图标就可以正常显示,点击它也能正常启动程序了。
2. 无法使用搜狗输入法
可以尝试在启动时添加fcitx相关的这几个环境变量:
export XMODIFIERS="@im=fcitx" export GTK_IM_MODULE="fcitx" export QT_IM_MODULE="fcitx"
以SQLyog为例,编写一个启动脚本如下:
#!/bin/sh export XMODIFIERS="@im=fcitx" export GTK_IM_MODULE="fcitx" wine "Z:\\home\\kevinyang\\SQLyog10.2\\SQLyog.exe"
使用chmod +x命令给这个脚本赋予执行权限,然后在.desktop文件中将Exec配置指向这个脚本即可。
题外话:sublime不能输中文的问题也是一个经常被问起的问题,以前很多博客里的解决方案都比较复杂,现在有个大神专门搞了一个脚本项目解决这个问题,点击查看sublime-text-imfix项目,整合了以前解决方案中编译库文件等等一些工作,拉下来之后直接执行sublime-text-imfix脚本就可以了,有需要的朋友可以参考下,反正我已经转去用vscode了。