详解Ubuntu16.04启动器图标异常解决方法
<p>在Ubuntu16.04中,将某个程序锁定到启动器后,偶尔会出现无法正常运行、不能正确输入中文等问题。这里以SQLyog为例,总结一些常见问题和解决方法。</p>
<p>
<strong>1. 锁定后图标消失/无法启动</strong></p>
<p>
在~/.local/share/applications/文件夹下可以找到以.desktop结尾的配置文件,以SQLyog为例,初始的配置文件如下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_860085">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"></code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">Encoding=UTF-8</code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">Version=1.0</code>
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">Type=Application</code>
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">Name=SQLyog</code>
</div>
<div class="line number6 index5 alt1">
<code class="plain plain">Icon=sqlyog_exe.png</code>
</div>
<div class="line number7 index6 alt2">
<code class="plain plain">Path=/home/kevinyang/SQLyog10.2</code>
</div>
<div class="line number8 index7 alt1">
<code class="plain plain">Exec=Z:\\home\\kevinyang\\SQLyog10.2\\SQLyog.exe</code>
</div>
<div class="line number9 index8 alt2">
<code class="plain plain">StartupNotify=false</code>
</div>
<div class="line number10 index9 alt1">
<code class="plain plain">StartupWMClass=SQLyog.exe</code>
</div>
<div class="line number11 index10 alt2">
<code class="plain plain">OnlyShowIn=Unity;</code>
</div>
<div class="line number12 index11 alt1">
<code class="plain plain">X-UnityGenerated=true</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
因为SQLyog是借助wine启动的,而这里的Exec这个配置记录的是wine内部的执行方式,所以一来锁定到启动器的图标会无法正常显示,二来点击图标也无法启动SQLyog。将启动配置更改为下面的命令:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_291616">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">Exec=wine "Z:\\home\\kevinyang\\SQLyog10.2\\SQLyog.exe"</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
图标就可以正常显示,点击它也能正常启动程序了。</p>
<p>
<strong>2. 无法使用搜狗输入法</strong></p>
<p>
可以尝试在启动时添加fcitx相关的这几个环境变量:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_469218">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">export XMODIFIERS="@im=fcitx"</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">export GTK_IM_MODULE="fcitx"</code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">export QT_IM_MODULE="fcitx"</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
以SQLyog为例,编写一个启动脚本如下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_352870">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash preprocessor bold">#!/bin/sh</code>
</div>
<div class="line number2 index1 alt1">
</div>
<div class="line number3 index2 alt2">
<code class="bash functions">export</code> <code class="bash plain">XMODIFIERS=</code><code class="bash string">"@im=fcitx"</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash functions">export</code> <code class="bash plain">GTK_IM_MODULE=</code><code class="bash string">"fcitx"</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">wine </code><code class="bash string">"Z:\\home\\kevinyang\\SQLyog10.2\\SQLyog.exe"</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
使用chmod +x命令给这个脚本赋予执行权限,然后在.desktop文件中将Exec配置指向这个脚本即可。</p>
<p>
题外话:sublime不能输中文的问题也是一个经常被问起的问题,以前很多博客里的解决方案都比较复杂,现在有个大神专门搞了一个脚本项目解决这个问题,点击查看sublime-text-imfix项目,整合了以前解决方案中编译库文件等等一些工作,拉下来之后直接执行sublime-text-imfix脚本就可以了,有需要的朋友可以参考下,反正我已经转去用vscode了。</p>
<p>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。</p>
<p>
原文链接:https://www.jianshu.com/p/03bf3ef65ad2</p>
頁:
[1]