如何在 MATE 16.04 上的启动器中更改工作目录?

如何在 MATE 16.04 上的启动器中更改工作目录?

我正在 Ubuntu Mate 16.04 上设置 Kerbal Space Program 安装,并且我安装的其中一个模块(Principia - 使游戏重力像真实重力一样)无法找到它,principia.so除非工作目录与安装游戏的目录相同。

不幸的是,几个月前,当我安装 16.04 MATE 时,我了解到 Mate 桌面启动器不支持复合命令(如cd /home/username/KSP-RO_1.3.1 && KSP.x86_64),并且似乎没有提供从启动器属性更改工作目录的功能。KDE 启动器允许指定工作目录(或者在 14.04 中允许;我很少使用 Kubuntu 16.04);有没有办法在 MATE 启动器中这样做?

答案1

我能想到的最简单的解决方法是编写一个包装脚本:

#!/bin/sh
cd /home/username/KSP-RO_1.3.1 && KSP.x86_64

将脚本另存为~/bin/run_ksp.sh,使其成为可执行脚本(chmod 755 ~/bin/run_ksp.sh然后使用指向该脚本的启动器)。

答案2

我刚把问题发布完,侧边栏的一个链接就弹出来了2011 年的问题它用完全不同的软件来解决非常相似的问题。

简而言之,如果您使用文本编辑器打开由 Cr​​eate Launcher 过程创建的 .desktop 文件(我使用 Pluma,因为它预装在 Ubuntu MATE 16.04 上),您可以以启动器创建者不允许的方式更改存储在文件中的信息 - 包括添加一个Path=密钥以让您的启动器指定一个工作目录来启动指定的可执行文件。

我试过这样做,而且有效。没有理由不能使用包装器脚本,如下所示Terdon 的回答,但对我来说,这似乎更干净一些 - 并且在意外重新安装的情况下更有可能被挽救(我通常以一种保持我以前的/home文件夹完整的方式安装,这样我就可以从中挽救存储的项目)。

这可能是因为 MATE 源自 Gnome 2,后者是 Ubuntu 10.04 左右的默认桌面环境。它实际上并不能替代允许用户在启动器创建期间指定工作目录的功能,但它可以完成工作。

相关内容