diff options
Diffstat (limited to 'scripts/xdg-desktop-icon')
-rwxr-xr-x | scripts/xdg-desktop-icon | 231 |
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` |