我想问一些有关 .desktop 文件的问题,并找出一些我认为相当巧妙的东西。
首先我要说的是,我正在运行内核为 [3.2.0-65-generic-pae] 的 [elementary OS Luna]。
我对 .desktop 文件及其用途略知一二。我从 eOS IRC 上的某个人那里学到了这一点。制作自己的 .desktop 文件时,有一件小事总是困扰着我。我相信,当您通过其 .desktop 打开应用程序时,它会在 ubuntu 中点亮该图标。在 eOS 中,我们也会得到一个小指示灯。它与图标本身一起出现。当您制作自己的 .desktop 文件时,它不会出现。
例如,我制作了一个 .desktop,它附加到可以打开 .jar 的 .sh 上。当我单击图标时,它会按照我的意愿打开。我唯一不喜欢的是弹出了一个全新的图标。它是 Oracle Java 图标,而且很模糊,很碍眼。我很好奇是否有一个命令可以放入我的 .desktop 中,使它只点亮原始图标,就像其他应用程序一样。
另外,我很好奇是否有办法将 .png 之类的文件转换为 .desktops 图标的文件格式。
提前感谢您。
答案1
首先我建议你查看文件日志:
打开 终端
auditctl -a exit,always -w /path/to/file
并按 Enter。
sudo nano /var/log/audit/audit.log
并按 Enter 查看日志。
完整的 Freedesktop.org 参考:桌面入门规格
Freedesktop 示例
[Desktop Entry]
Version=1.0
Type=Application
Name=Foo Viewer
Comment=The best viewer for Foo objects available!
TryExec=fooview
Exec=fooview %F
Icon=fooview
MimeType=image/x-foo;
Actions=Gallery;Create;
[Desktop Action Gallery]
Exec=fooview --gallery
Name=Browse Gallery
[Desktop Action Create]
Exec=fooview --create-new
Name=Create a new Foo!
Icon=fooview-new
引用:与操作一起显示的图标。如果名称是绝对路径,则将使用给定的文件。如果名称不是绝对路径,则使用图标主题规范将用于定位图标。实现可以选择忽略它。
Joe Reimero 的精彩简短教程:.desktop 文件剖析
Joe Reimero 示例
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=$HOME/MyApplication
Name=My Application
Icon=$HOME/Icons/MyIcon.png
乔,我也同意图标可以是绝对的或者相对而言,这取决于您选择构建符号链接的标准。传统上是 PNG。
特别为您准备的精彩教程:让你的 Java 应用变得适合 Gnome-Shell
[Desktop Entry]
Version=10.5.1
Name=IntelliJ IDEA Ultimate Edition
Comment=The Most Intelligent Java IDE
Categories=Applications;Development;
Encoding=UTF-8
Exec=env IDEA_CLASSPATH\=../lib/asm.jar /home/diego/bin/ideaIU-10.5/bin/idea.sh
GenericName=IntelliJ
Icon=/home/diego/bin/ideaIU-10.5/bin/idea128.png
MimeType=text/x-java
Terminal=false
Type=Application
URL=http://www.jetbrains.com/idea
行注释:
Exec=env IDEA_CLASSPATH\=../lib/asm.jar /home/diego/bin/ideaIU-10.5/bin/idea.sh
您会在 exec 旁边看到 CLASSPATH 变量。
有没有可能它也可以帮助说出 OS Luna:
.desktop 文件遵循 freedesktop.org 桌面入口规范。它们应该安装在 中
/usr/share/applications
。用户可以通过将 .desktop 文件放入 中来创建自己的启动器~/.local/share/applications
。
答案2
.desktop 启动器文件可以(某种程度上)简化为以下内容
[Desktop Entry]
Type=Application
Name=Google Maps
Exec=google-chrome --app=https://www.google.co.uk/maps/@52.0547887,-1.3424413,11z
Comment=Open Google Maps
GenericName=Open Google Maps
Icon=/home/wilf/.local/Google-Maps-icon.png
Categories=GTK;Utility;
Keywords=Maps;
Hidden=false
NoDisplay=false
Terminal=false
在哪里:
- 您需要两者
[Desktop Entry]
并Type=Application
说它是一个应用程序启动器。 Name
是它的名字Exec
是它运行的命令Comment
/GenericName
描述它(不总是需要)Icon
是图标的路径或您正在使用的主题的图标/usr/share/icons
(并非总是需要,但默认图标经常令人讨厌)Categories
- 指定其所属类别(对菜单有用 - 并非总是需要)Keywords
是您搜索时可以用来找到它的单词(并非总是需要)。Hidden
/NoDisplay
设置为 false 确保它显示(并非总是需要)。Terminal
是否在终端中运行`。
要更改图标,您只需更改行Icon
以指定不同的图标 - 例如使用来自的文本编辑器图标/usr/share/icons
:
Icon=accessories-text-editor
或者您可以指定图标文件的路径
Icon=/home/wilf/.local/Google-Maps-icon.png
这也可以通过在大多数文件管理器中右键单击启动器并选择属性来实现:
然后单击图标并选择一个新的 - 注意如果它在,/usr/share/applications
您可能需要权限来编辑该文件。
注意:
我不记得具体原因了(可能是因为某种原因),但我似乎有以下可以创建 .desktop 启动器的脚本 - 就在这里:
#!/bin/bash
if [ "$1" = "--help" ]; then
echo -e "\e[1mUsage:\e[0m\n create-launcher [OPTIONS...] [FILENAME] - create a launcher\n\e[1mHelp Options:\e[0m\n --help Show help options\n\e[1mApplication Options:\e[0m\n -n NAME Sets the name of the New launcher\n -c COMMAND Sets the command the launcher will be used to Launch\n -t COMMENT Sets the comment used to describe the launcher\n -i ICON Specifies an icon filename or stock icon to display.\n\n\e[1mNote\e[0m - ideally all of the above options should be used, mainly the Name option as it used to create the name of the launcher, and the command option as that is required for the launcher to work."
exit
fi
while getopts n:c:t:i: option
do
case "${option}"
in
n) NAME=${OPTARG};;
c) COMMAND=${OPTARG};;
t) COMMENT=${OPTARG};;
i) ICON=${OPTARG};;
esac
done
FILE=$HOME/.local/share/applications/$(echo $NAME | sed 's/ /-/g').desktop
NOFILE=$HOME/.local/share/applications/.desktop
if [ $FILE = $NOFILE ]; then
echo -e "ERROR: Please enter atleast the Name for the launcher - for more info run\n create-launcher --help"
exit 1
else
echo "New launcher created at $FILE"
echo -e "[Desktop Entry]\nType=Application" > $FILE
echo Name=$NAME >> $FILE
echo Exec=$COMMAND >> $FILE
echo Comment=$COMMENT >> $FILE
echo Icon=$ICON >> $FILE
echo -e "Hidden=false\nNoDisplay=false\nTerminal=false\n#X-GNOME-Autostart-enabled=true" >> $FILE
chmod +x $FILE
fi
exit
这可以保存到可执行文件中,并创建如下所示的简单启动器(除非通过指定脚本选项来填充字段 - 请参阅./create-launcher --help
)在~/.local/share/applications
(这应该意味着启动器显示在菜单等中)
[Desktop Entry]
Type=Application
Name=
Exec=
Comment=
Icon=
Hidden=false
NoDisplay=false
Terminal=false
#X-GNOME-Autostart-enabled=true
最后一行并不重要,除非它在其他地方用于在登录时启动程序。