slitaz-tools annotate tinyutils/desktopbox @ rev 178
Add: desktopbox - Multi-call GTKdialog for Freedesktop
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Fri May 09 17:42:13 2008 +0200 (2008-05-09) |
parents | |
children | dbf2e0b2feb7 |
rev | line source |
---|---|
pankso@178 | 1 #! /bin/sh |
pankso@178 | 2 # |
pankso@178 | 3 # Multi-call script provinding GTK boxes to manage a desktop following |
pankso@178 | 4 # Freedesktop standars. |
pankso@178 | 5 # |
pankso@178 | 6 # (C) GNU gpl v3 - SliTaz GNU/Linux 2008. |
pankso@178 | 7 # |
pankso@178 | 8 VERSION=20080509 |
pankso@178 | 9 |
pankso@178 | 10 # Standards directories. |
pankso@178 | 11 mkdir -p $HOME/Desktop $HOME/.local/share/applications |
pankso@178 | 12 |
pankso@178 | 13 # Get the active locale (default to English). |
pankso@178 | 14 case $LANG in |
pankso@178 | 15 es*) |
pankso@178 | 16 lang="es" |
pankso@178 | 17 NEW_FOLDER_LABEL="Creat a new folder on the desktop:" |
pankso@178 | 18 FOLDER_ENTRY_MSG="dirname" |
pankso@178 | 19 NEW_FILE_LABEL="Creat a new file on the desktop:" |
pankso@178 | 20 FILE_ENTRY_MSG="filename" |
pankso@178 | 21 ADD_ICON_LABEL="Add some desktop icons" ;; |
pankso@178 | 22 fr*) |
pankso@178 | 23 lang="fr" |
pankso@178 | 24 NEW_FOLDER_LABEL="Créer un nouveau dossier sur le bureau:" |
pankso@178 | 25 FOLDER_ENTRY_MSG="dossier" |
pankso@178 | 26 NEW_FILE_LABEL="Créer un nouveau fichier sur le bureau:" |
pankso@178 | 27 FILE_ENTRY_MSG="fichier" |
pankso@178 | 28 ADD_ICON_LABEL="Ajouter des icons de bureau" ;; |
pankso@178 | 29 *) |
pankso@178 | 30 lang="" |
pankso@178 | 31 NEW_FOLDER_LABEL="Creat a new folder on the desktop:" |
pankso@178 | 32 FOLDER_ENTRY_MSG="dirname" |
pankso@178 | 33 NEW_FILE_LABEL="Creat a new file on the desktop:" |
pankso@178 | 34 FILE_ENTRY_MSG="filename" |
pankso@178 | 35 ADD_ICON_LABEL="Add some desktop icons" ;; |
pankso@178 | 36 esac |
pankso@178 | 37 |
pankso@178 | 38 # Command line usage. |
pankso@178 | 39 usage() |
pankso@178 | 40 { |
pankso@178 | 41 echo -e "\nSliTaz Freedesktop Box - Version: $VERSION\n |
pankso@178 | 42 \033[1mUsage: \033[0m `basename $0` command |
pankso@178 | 43 \033[1mCommands: \033[0m\n |
pankso@178 | 44 new-folder Creat a new folder on the desktop with mkdir. |
pankso@178 | 45 new-file Creat a new empty file or SHell script on the desktop. |
pankso@178 | 46 add-icons Add a system icon on the desktop.\n" |
pankso@178 | 47 } |
pankso@178 | 48 |
pankso@178 | 49 # Box commands. |
pankso@178 | 50 case $1 in |
pankso@178 | 51 new-folder) |
pankso@178 | 52 # Creat a directory on the ~/desktop. |
pankso@178 | 53 # |
pankso@178 | 54 DESKTOP_DIALOG=" |
pankso@178 | 55 <window title=\"Desktopbox - mkdir\" icon-name=\"folder-new\"> |
pankso@178 | 56 <vbox> |
pankso@178 | 57 |
pankso@178 | 58 <text use-markup=\"true\" width-chars=\"40\"> |
pankso@178 | 59 <label>\" |
pankso@178 | 60 <b>$NEW_FOLDER_LABEL</b>\" |
pankso@178 | 61 </label> |
pankso@178 | 62 </text> |
pankso@178 | 63 |
pankso@178 | 64 <hbox> |
pankso@178 | 65 <entry> |
pankso@178 | 66 <default>$FOLDER_ENTRY_MSG</default> |
pankso@178 | 67 <variable>DIR</variable> |
pankso@178 | 68 </entry> |
pankso@178 | 69 </hbox>" |
pankso@178 | 70 ACTIONS=' |
pankso@178 | 71 <hbox> |
pankso@178 | 72 <button> |
pankso@178 | 73 <label>Mkdir</label> |
pankso@178 | 74 <input file icon="folder-new"></input> |
pankso@178 | 75 <action>mkdir -p "$HOME/Desktop/$DIR"</action> |
pankso@178 | 76 <action type="exit">Exit</action> |
pankso@178 | 77 </button> |
pankso@178 | 78 <button cancel> |
pankso@178 | 79 <action type="exit">Exit</action> |
pankso@178 | 80 </button> |
pankso@178 | 81 </hbox> |
pankso@178 | 82 |
pankso@178 | 83 </vbox> |
pankso@178 | 84 </window>' |
pankso@178 | 85 export DESKTOP_DIALOG="${DESKTOP_DIALOG}${ACTIONS}" ;; |
pankso@178 | 86 new-file) |
pankso@178 | 87 # Creat a file on the ~/desktop. |
pankso@178 | 88 # |
pankso@178 | 89 DESKTOP_DIALOG=" |
pankso@178 | 90 <window title=\"Desktopbox - touch/cat\" icon-name=\"document-new\"> |
pankso@178 | 91 <vbox> |
pankso@178 | 92 <text use-markup=\"true\" width-chars=\"40\"> |
pankso@178 | 93 <label>\" |
pankso@178 | 94 <b>$NEW_FILE_LABEL</b>\" |
pankso@178 | 95 </label> |
pankso@178 | 96 </text> |
pankso@178 | 97 |
pankso@178 | 98 <hbox> |
pankso@178 | 99 <entry> |
pankso@178 | 100 <default>$FILE_ENTRY_MSG</default> |
pankso@178 | 101 <variable>FILE</variable> |
pankso@178 | 102 </entry> |
pankso@178 | 103 </hbox>" |
pankso@178 | 104 ACTIONS=' |
pankso@178 | 105 <hbox> |
pankso@178 | 106 <button> |
pankso@178 | 107 <label>SH script</label> |
pankso@178 | 108 <input file icon="document-new"></input> |
pankso@178 | 109 <action>echo "#!/bin/sh" > "$HOME/Desktop/$FILE"</action> |
pankso@178 | 110 <action>echo "#" >> "$HOME/Desktop/$FILE"</action> |
pankso@178 | 111 <action>chmod +x "$HOME/Desktop/$FILE"</action> |
pankso@178 | 112 <action type="exit">Exit</action> |
pankso@178 | 113 </button> |
pankso@178 | 114 <button> |
pankso@178 | 115 <label>Empty</label> |
pankso@178 | 116 <input file icon="document-new"></input> |
pankso@178 | 117 <action>touch "$HOME/Desktop/$FILE"</action> |
pankso@178 | 118 <action type="exit">Exit</action> |
pankso@178 | 119 </button> |
pankso@178 | 120 <button cancel> |
pankso@178 | 121 <action type="exit">Exit</action> |
pankso@178 | 122 </button> |
pankso@178 | 123 </hbox> |
pankso@178 | 124 </vbox> |
pankso@178 | 125 </window>' |
pankso@178 | 126 export DESKTOP_DIALOG="${DESKTOP_DIALOG}${ACTIONS}" ;; |
pankso@178 | 127 add-icons) |
pankso@178 | 128 # Add a new icons on the ~/desktop from /usr/share/applications. |
pankso@178 | 129 # |
pankso@178 | 130 DESKTOP_DIALOG=" |
pankso@178 | 131 <window title=\"$ADD_ICON_LABEL\" icon-name=\"document-new\"> |
pankso@178 | 132 <vbox> |
pankso@178 | 133 <text use-markup=\"true\" width-chars=\"40\"> |
pankso@178 | 134 <label>\" |
pankso@178 | 135 <b>$ADD_ICON_LABEL</b> |
pankso@178 | 136 \" |
pankso@178 | 137 </label> |
pankso@178 | 138 </text> |
pankso@178 | 139 <tree headers_visible=\"false\"> |
pankso@178 | 140 <width>420</width><height>200</height> |
pankso@178 | 141 <variable>ICON</variable> |
pankso@178 | 142 <label>Filename|Application</label>" |
pankso@178 | 143 # Get application name and icon. |
pankso@178 | 144 cd /usr/share/applications |
pankso@178 | 145 for file in *.desktop |
pankso@178 | 146 do |
pankso@178 | 147 # Try to get the name in the right locale. |
pankso@178 | 148 NAME=`grep ^Name $file | grep $lang || grep ^Name= $file` |
pankso@178 | 149 NAME=`echo $NAME | cut -d "=" -f 2` |
pankso@178 | 150 ICON=`grep ^Icon= $file | cut -d "=" -f 2` |
pankso@178 | 151 ICON=`basename $ICON` |
pankso@178 | 152 ICON=${ICON%.*} |
pankso@178 | 153 FILE=${file%.desktop} |
pankso@178 | 154 ITEM="<item icon=\"$ICON\">$FILE | $NAME</item>" |
pankso@178 | 155 DESKTOP_DIALOG="${DESKTOP_DIALOG}${ITEM}" |
pankso@178 | 156 done |
pankso@178 | 157 ACTIONS='<action>cp /usr/share/applications/$ICON.desktop ~/Desktop</action> |
pankso@178 | 158 </tree> |
pankso@178 | 159 <hbox> |
pankso@178 | 160 <button> |
pankso@178 | 161 <label>Add</label> |
pankso@178 | 162 <input file icon="gtk-add"></input> |
pankso@178 | 163 <action>cp /usr/share/applications/$ICON.desktop ~/Desktop</action> |
pankso@178 | 164 </button> |
pankso@178 | 165 <button> |
pankso@178 | 166 <label>Exit</label> |
pankso@178 | 167 <input file icon="exit"></input> |
pankso@178 | 168 <action type="exit">Exit</action> |
pankso@178 | 169 </button> |
pankso@178 | 170 </hbox> |
pankso@178 | 171 </vbox> |
pankso@178 | 172 </window> |
pankso@178 | 173 ' |
pankso@178 | 174 export DESKTOP_DIALOG="${DESKTOP_DIALOG}${ACTIONS}" ;; |
pankso@178 | 175 *) |
pankso@178 | 176 # Usage if executet from cmdline. |
pankso@178 | 177 # |
pankso@178 | 178 usage |
pankso@178 | 179 exit 0 ;; |
pankso@178 | 180 esac |
pankso@178 | 181 |
pankso@178 | 182 gtkdialog --center --program=DESKTOP_DIALOG >/dev/null |
pankso@178 | 183 |
pankso@178 | 184 exit 0 |