我正在制作一个自定义启动器/桌面文件以放置在 Unity 启动器栏中。但是,当我从 拖动启动器图标时~/.local/share/applications
,它会立即消失。这可能是由于我的文件中的语法错误造成的.desktop
。是否有 Unity 日志文件可供我查看以找出问题所在?
答案1
我也遇到过同样的问题。我可以给你两个建议:
- 使用 mlux.at 的“创建启动器”等应用程序来创建启动器。
- 如果它是一个 shell 脚本并且您无法启动它,则请回显所执行的命令并将该命令放入您选择的脚本中,然后将其放入启动器中。
前任:
echo $_JAVA_EXEC $_VM_PROPERTIES -Xmx${MAXIMUM_HEAP_SIZE} -Dsmartsvn.vm-xmx=${MAXIMUM_HEAP_SIZE} -jar "$SMARTSVN_HOME/lib/smartsvn.jar" "$@"
在 smartsvn.sh 中
我创建了一个文件 smart.sh 并将其放入里面
/home/rudy/opt/jdk1.6.0_33/bin/java -XX:-UseSSE42Intrinsics -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Xmx256m -Dsmartsvn.vm-xmx=256m -jar /home/rudy/opt/smartsvn-7_0_4/lib/smartsvn.jar
这次成功了。
希望能帮助到你。
答案2
解决方法:
1) 使用创建启动器。文件位于 ~/.local/share/applications。
例1:
[Desktop Entry]
Version=1.0
Type=Application
Name=IntelliJ IDEA
Exec="/home/rudy/opt/idea-IU-117.105/bin/idea.sh" %f
Icon=/home/rudy/opt/idea-IU-117.105/bin/idea.png
Comment=Develop with pleasure!
Categories=Development;IDE;
Terminal=false
StartupNotify=true
StartupWMClass=jetbrains-idea
例2:
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Squirrel
Comment=squirrel sql database
Exec="/home/rudy/opt/squirrel-sql-3.3.0/squirrel-sql.sh"
Path=/home/rudy/opt/squirrel-sql-3.3.0/
Icon=/home/rudy/opt/squirrel-sql-3.3.0/icons/acorn.png
Categories=Development;
StartupNotify=true
StartupWMClass=net-sourceforge-squirrel_sql-client-Main
例3:
#!/usr/bin/env xdg-open
#ManageLauncher_Version=1.0
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Idle
Comment=python
Exec="idle"
Icon=/home/rudy/resources/icons/python_icon.gif
Categories=Accessibility;
StartupNotify=true
StartupWMClass=Toplevel
Name[en_US]=Idle
在这些示例中,有两种启动器。Java 应用程序启动器和非 Java 应用程序启动器。
对所调用的 sh 进行回显,并将此命令放入脚本中并使用它......(当然,如果它不能按正常方式工作)
2)如果需要,添加StartupNotify和StartupWMClass
我必须引用资源名称,但很难找到。使用 xprop WM_CLASS 来发现资源名称。如果是 java,则是主类,其中点被下划线替换。启动 xprop,然后单击应用程序。
3)将文件拖放到启动栏中。
StartupNotify/StartupWMClass,一种避免再次单击图标时启动多次相同应用程序的方法……