summaryrefslogtreecommitdiff
path: root/scripts/xdg-desktop-icon
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/xdg-desktop-icon')
-rwxr-xr-xscripts/xdg-desktop-icon231
1 files changed, 112 insertions, 119 deletions
diff --git a/scripts/xdg-desktop-icon b/scripts/xdg-desktop-icon
index af69ecf..9dfe88e 100755
--- a/scripts/xdg-desktop-icon
+++ b/scripts/xdg-desktop-icon
@@ -1,6 +1,6 @@
#!/bin/sh
#---------------------------------------------
-# xdg-desktop
+# xdg-desktop-icon
#
# Utility script to install desktop items on a Linux desktop.
#
@@ -34,16 +34,15 @@
usage()
{
cat << _USAGE
- xdg-desktop-icon -- command line tool for (un)installing icons to the
- desktop
+xdg-desktop-icon — command line tool for (un)installing icons to the desktop
Synopsis
- xdg-desktop-icon install [--vendor vendor-id] FILE
+xdg-desktop-icon install [--vendor vendor-id] FILE
- xdg-desktop-icon uninstall [--vendor vendor-id] FILE
+xdg-desktop-icon uninstall [--vendor vendor-id] FILE
- xdg-desktop-icon { --help | --manual | --version }
+xdg-desktop-icon { --help | --manual | --version }
_USAGE
}
@@ -53,153 +52,145 @@ manualpage()
cat << _MANUALPAGE
Name
- xdg-desktop-icon -- command line tool for (un)installing icons to the
- desktop
+xdg-desktop-icon — command line tool for (un)installing icons to the desktop
Synopsis
- xdg-desktop-icon install [--vendor vendor-id] FILE
+xdg-desktop-icon install [--vendor vendor-id] FILE
- xdg-desktop-icon uninstall [--vendor vendor-id] FILE
+xdg-desktop-icon uninstall [--vendor vendor-id] FILE
- xdg-desktop-icon { --help | --manual | --version }
+xdg-desktop-icon { --help | --manual | --version }
Description
- The xdg-desktop-icon program can be used to install an application
- launcher or other file on the desktop of the current user.
+The xdg-desktop-icon program can be used to install an application launcher or
+other file on the desktop of the current user.
- An application launcher is represented by a *.desktop file. Desktop files
- are defined by the freedesktop.org Desktop Entry Specification. The most
- important aspects of *.desktop files are summarized below.
+An application launcher is represented by a *.desktop file. Desktop files are
+defined by the freedesktop.org Desktop Entry Specification. The most important
+aspects of *.desktop files are summarized below.
Commands
- install
- Installs FILE to the desktop of the current user. FILE can be a
- *.desktop file or any other type of file.
-
- uninstall
- Removes FILE from the desktop of the current user.
+install
+ Installs FILE to the desktop of the current user. FILE can be a *.desktop
+ file or any other type of file.
+uninstall
+ Removes FILE from the desktop of the current user.
Options
- --vendor vendor-id
- Adds vendor-id as a prefix when installing desktop files.
-
- --help
- Show command synopsis.
-
- --manual
- Show this manualpage.
-
- --version
- Show the xdg-utils version information.
+--vendor vendor-id
+ Adds vendor-id as a prefix when installing desktop files.
+--help
+ Show command synopsis.
+--manual
+ Show this manualpage.
+--version
+ Show the xdg-utils version information.
Desktop Files
- An application launcher can be added to the desktop by installing a
- *.desktop file. A *.desktop file consists of a [Desktop Entry] header
- followed by several Key=Value lines.
-
- A *.desktop file can provide a name and description for an application in
- several different languages. This is done by adding a language code as
- used by LC_MESSAGES in square brackets behind the Key. This way one can
- specify different values for the same Key depending on the currently
- selected language.
-
- The following keys are often used:
-
- Value=1.0
- This is a mandatory field to indicate that the *.desktop file
- follows the 1.0 version of the specification.
-
- Type=Application
- This is a mandatory field that indicates that the *.desktop file
- describes an application launcher.
-
- Name=Application Name
- The name of the application. For example Mozilla
-
- GenericName=Generic Name
- A generic description of the application. For example Web Browser
-
- Comment=Comment
- Optional field to specify a tooltip for the application. For
- example Visit websites on the Internet
-
- Icon=Icon File
- The icon to use for the application. This can either be an
- absolute path to an image file or an icon-name. If an icon-name is
- provided an image lookup by name is done in the user's current
- icon theme. The xdg-icon-resource command can be used to install
- image files into icon themes. The advantage of using an icon-name
- instead of an absolute path is that with an icon-name the
- application icon can be provided in several different sizes as
- well as in several differently themed styles.
-
- Exec=Command Line
- The command line to start the application. If the application can
- open files the %f placeholder should be specified. When a file is
- dropped on the application launcher the %f is replaced with the
- file path of the dropped file. If multiple files can be specified
- on the command line the %F placeholder should be used instead of
- %f. If the application is able to open URLs in addition to local
- files then %u or %U can be used instead of %f or %F.
-
- For a complete oveview of the *.desktop file format please visit
- http://www.freedesktop.org/wiki/Standards/desktop-entry-spec
+An application launcher can be added to the desktop by installing a *.desktop
+file. A *.desktop file consists of a [Desktop Entry] header followed by several
+Key=Value lines.
+
+A *.desktop file can provide a name and description for an application in
+several different languages. This is done by adding a language code as used by
+LC_MESSAGES in square brackets behind the Key. This way one can specify
+different values for the same Key depending on the currently selected language.
+
+The following keys are often used:
+
+Value=1.0
+ This is a mandatory field to indicate that the *.desktop file follows the
+ 1.0 version of the specification.
+Type=Application
+ This is a mandatory field that indicates that the *.desktop file describes
+ an application launcher.
+Name=Application Name
+ The name of the application. For example Mozilla
+GenericName=Generic Name
+ A generic description of the application. For example Web Browser
+Comment=Comment
+ Optional field to specify a tooltip for the application. For example Visit
+ websites on the Internet
+Icon=Icon File
+ The icon to use for the application. This can either be an absolute path to
+ an image file or an icon-name. If an icon-name is provided an image lookup
+ by name is done in the user's current icon theme. The xdg-icon-resource
+ command can be used to install image files into icon themes. The advantage
+ of using an icon-name instead of an absolute path is that with an icon-name
+ the application icon can be provided in several different sizes as well as
+ in several differently themed styles.
+Exec=Command Line
+ The command line to start the application. If the application can open
+ files the %f placeholder should be specified. When a file is dropped on the
+ application launcher the %f is replaced with the file path of the dropped
+ file. If multiple files can be specified on the command line the %F
+ placeholder should be used instead of %f. If the application is able to
+ open URLs in addition to local files then %u or %U can be used instead of
+ %f or %F.
+
+For a complete oveview of the *.desktop file format please visit http://
+www.freedesktop.org/wiki/Standards/desktop-entry-spec
+
+Environment Variables
+
+xdg-desktop-icon honours the following environment variables:
+
+XDG_UTILS_DEBUG_LEVEL
+ Setting this environment variable to a non-zero numerical value makes
+ xdg-desktop-icon do more verbose reporting on stderr. Setting a higher
+ value increases the verbosity.
Exit Codes
- An exit code of 0 indicates success while a non-zero exit code indicates
- failure. The following failure codes can be returned:
-
- 1
- Error in command line syntax.
+An exit code of 0 indicates success while a non-zero exit code indicates
+failure. The following failure codes can be returned:
- 2
- One of the files passed on the command line did not exist.
-
- 3
- A required tool could not be found.
-
- 4
- The action failed.
+1
+ Error in command line syntax.
+2
+ One of the files passed on the command line did not exist.
+3
+ A required tool could not be found.
+4
+ The action failed.
See Also
- xdg-icon-resource(1)
+xdg-icon-resource(1)
Examples
- The company ShinyThings Inc. has developed an application named
- "WebMirror" and would like to add a launcher for for on the desktop. The
- company will use "shinythings" as its vendor id. In order to add the
- application to the desktop there needs to be a .desktop file for the
- application:
+The company ShinyThings Inc. has developed an application named "WebMirror" and
+would like to add a launcher for for on the desktop. The company will use
+"shinythings" as its vendor id. In order to add the application to the desktop
+there needs to be a .desktop file for the application:
- webmirror.desktop:
+webmirror.desktop:
- [Desktop Entry]
- Encoding=UTF-8
- Type=Application
+ [Desktop Entry]
+ Encoding=UTF-8
+ Type=Application
- Exec=webmirror
- Icon=webmirror
+ Exec=webmirror
+ Icon=webmirror
- Name=WebMirror
- Name[nl]=WebSpiegel
+ Name=WebMirror
+ Name[nl]=WebSpiegel
- Now the xdg-desktop-icon tool can be used to add the webmirror.desktop
- file to the desktop:
+Now the xdg-desktop-icon tool can be used to add the webmirror.desktop file to
+the desktop:
- xdg-desktop-icon install --vendor shinythings ./webmirror.desktop
+xdg-desktop-icon install --vendor shinythings ./webmirror.desktop
- To add a README file to the desktop as well, the following command can be
- used:
+To add a README file to the desktop as well, the following command can be used:
+
+xdg-desktop-icon install ./shinythings-README
- xdg-desktop-icon install ./shinythings-README
_MANUALPAGE
}
@@ -211,9 +202,9 @@ _MANUALPAGE
DEBUG()
{
- [ ${xdg_utils_debug_level-0} -lt $1 ] && return 0;
+ [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt $1 ] && return 0;
shift
- echo "$@"
+ echo "$@" >&2
}
#-------------------------------------------------------------
@@ -412,6 +403,8 @@ desktop_dir=$HOME/Desktop
basefile=`basename $desktop_file`
[ -z $vendor ] || [ x"$filetype" != x"desktop" ] || basefile=$vendor-$basefile
+DEBUG 1 "$action $desktop_file in $desktop_dir"
+
case $action in
install)
save_umask=`umask`