详解Ubuntu16.04启动器图标异常解决方法

马帅 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了。

相关推荐