我正在尝试为 vcvRack 制作一个桌面文件。我已将程序和其他文件保存在 中~/.Rack/
。当我双击它或使用 从终端启动时,该程序可以正常启动./Rack
。
该文件~/.local/share/applications/Rack.desktop
包含以下内容。
[Desktop Entry]
Name=Rack
Comment=bleep bloop
Exec=/home/uname/.Rack/Rack
Icon=/home/uname/.Rack/icon-3.png
Terminal=false
Type=Application
Categories=Music;
它在搜索中显示图标和所有内容,但实际上并未启动。我尝试过chmod +x Rack.desktop
和sudo chmod +x Rack.desktop
,但我认为两者都没有必要。
我还有其他几乎相同的桌面文件,用于其他运行良好的程序。
有任何想法吗?
答案1
解决方案(tl;dr):
添加Path=/home/username/opt/Rack2Free
到rack.desktop
,即替换为您在 Rack 工作目录中找到文件的任何路径Rack
。然后可能需要重新启动计算机(或注销并重新登录)。
细节:
我在为 VCV Rack 创建桌面文件时遇到了完全相同的问题。按下 时它会显示在其他应用程序中super
,但就是无法启动(什么都没有发生)。但是,通过运行文件来启动~/opt/Rack2Free/Rack
是可行的。
rack.desktop
我通过放置以下文件解决了这个问题~/.local/share/applications
:
[Desktop Entry]
Version=1.0
Type=Application
Name=VCVRack
Exec=/home/username/opt/Rack2Free/Rack
Path=/home/username/opt/Rack2Free
Icon=/home/username/opt/Rack2Free/res/icon.png
Terminal=false
Categories=Audio;Music
Keywords=Music
X-Desktop-File-Install-Version=0.26
这里的关键是“Path”变量。在此之前,当我尝试gtk-launch rack
在终端中运行时(参见上面的注释),我得到了:~/opt/Rack2Free/Rack: error while loading shared libraries: libRack.so: cannot open shared object file: No such file or directory
。因此,即使 Exec-path 在那里,它也无法找到所需的其他文件,因此将该 Path 添加到 Rack 的工作目录并重新启动计算机对我来说就解决了问题。
笔记:由于某种原因,在重启电脑之前,使用 启动gtk-launch rack
可以,但通过启动器(即super
按钮)启动则不行。但重启后问题解决了。
(另外:我在上面的评论中提到的错误显然是我在运行时遇到的./Rack
,只是我通常不通过终端运行它,所以我不习惯看到它们。它们可能与此无关,但它们是:)
MidiInJack::initialize: JACK server not running?
MidiOutJack::initialize: JACK server not running?
RtAudio alsa: _NOT_ running realtime scheduling
RtAudio alsa: _NOT_ running realtime scheduling
ERROR: File doesn't exist or otherwise can't load file
ERROR: File doesn't exist or otherwise can't load file
...