Linux下桌面快捷方式启动路径问题

技术 · 2023-04-11

前言

之前提到过当前公司正在进行国产化方面的东西,目前有个桌面软件需要迁移到Linux下,于是通过Avalonia UI实现了一下,具体实现过程还算顺利,跟WPF相比虽说有些差异但感觉可以接受,也可能跟本身项目不复杂有关,毕竟就三个窗口。在添加完桌面快捷方式之后遇到了点问题,于是就有了这篇日志。

创建桌面快捷方式

新建一个utf-8格式的文本,名称改为应用名称,后缀改为.desktop就可以了,为避免误人子弟,常用内容可参考这里,下面是例子:

[Desktop Entry]
Name=XXXX
Type=Application
Exec=/home/test/xxx
Path=/home/test/xxx
Icon=/home/text/xxx.png
StartupNotify=true

完了之后只要将该文件复制到桌面上就变成启动快捷方式了,如果想在开始菜单中或启动器中看到,就把该文件复制到/usr/share/applications目录中就可以了。也可以增加Categories指名应用分类,这样就可以出现在开始菜单或启动器中的不同分类下面了,具体分类可以参考这里

路径问题

正常项目启动时会生成日志文件,但是在桌面启动时却没有生成,研究了一下,找到两种解决办法,

  1. 增加Path这个关键字,该参数可以指名工作路径,处理非常简单,这也是项目里使用的办法。
  2. 可以定义一个脚本,和应用放到一起,通过启动脚本来解决路径问题,对比增加关键字,这种方式更加灵活一点,下面是脚本内容:

     #! /bin/bash
     # shellcheck disable=SC2046
     cd $(dirname $0) || exit
     ./xxx

    然后需要将.desktop文件里替换掉Exec=后面的内容,改为:sh /home/test/xxx.sh就可以了。

结束

对比windows,linux下的处理相对灵活很多,不亏是一切皆文件。

li'nu'x desktop
Theme Jasmine by Kent Liao