我正在 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 启动器中这样做?
我能想到的最简单的解决方法是编写一个包装脚本:
将脚本另存为
~/bin/run_ksp.sh
,使其脚本可执行(chmod 755 ~/bin/run_ksp.sh
然后使用指向该脚本的启动器代替。就在我完成发布问题时,其中一个侧边栏链接弹出了这个 2011 年的问题,该问题解决了完全不同软件的非常相似的问题。
简而言之,如果您使用文本编辑器打开由 Create Launcher 进程创建的 .desktop 文件(我使用 Pluma,因为它预装在 Ubuntu MATE 16.04 上),您可以以 Launcher 创建者赢得的方式更改文件中存储的信息't allow - 包括添加一个
Path=
键来让你的启动器指定一个工作目录来启动指定的可执行文件。我试过这样做,它有效。没有理由不能像Terdon 的回答那样使用包装脚本,但对我来说,这似乎更干净一些 - 在意外重新安装情况的情况下更有可能挽救(我通常以某种方式安装这将使我以前
/home
的文件夹完好无损,因此我可以从它们中抢救存储的项目)。这很可能是可行的,因为 MATE 源自 Gnome 2,它是 10.04 年左右 Ubuntu 的默认桌面环境。它并不能真正替代允许用户在创建启动器期间指定工作目录,但它可以完成工作。