slitaz-tools annotate tinyutils/desktopbox @ rev 189
desktopbox: add comd 'calendar' using glade XML file
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Mon May 12 14:47:37 2008 +0200 (2008-05-12) |
parents | dbf2e0b2feb7 |
children | db0e82bebc70 |
rev | line source |
---|---|
pankso@178 | 1 #! /bin/sh |
pankso@189 | 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@187 | 8 VERSION=20080512 |
pankso@178 | 9 |
pankso@189 | 10 # Glade XML file path. |
pankso@189 | 11 GLADE_XML=/usr/share/slitaz-tools/glade |
pankso@189 | 12 |
pankso@178 | 13 # Standards directories. |
pankso@178 | 14 mkdir -p $HOME/Desktop $HOME/.local/share/applications |
pankso@178 | 15 |
pankso@178 | 16 # Get the active locale (default to English). |
pankso@178 | 17 case $LANG in |
pankso@178 | 18 es*) |
pankso@178 | 19 lang="es" |
pankso@178 | 20 NEW_FOLDER_LABEL="Creat a new folder on the desktop:" |
pankso@178 | 21 FOLDER_ENTRY_MSG="dirname" |
pankso@178 | 22 NEW_FILE_LABEL="Creat a new file on the desktop:" |
pankso@178 | 23 FILE_ENTRY_MSG="filename" |
pankso@187 | 24 ADD_ICON_LABEL="Add some desktop icons" |
pankso@187 | 25 DESKTOP_DIALOG_LABEL="Session logout, system shutdown or reboot" ;; |
pankso@178 | 26 fr*) |
pankso@178 | 27 lang="fr" |
pankso@178 | 28 NEW_FOLDER_LABEL="Créer un nouveau dossier sur le bureau:" |
pankso@178 | 29 FOLDER_ENTRY_MSG="dossier" |
pankso@178 | 30 NEW_FILE_LABEL="Créer un nouveau fichier sur le bureau:" |
pankso@178 | 31 FILE_ENTRY_MSG="fichier" |
pankso@187 | 32 ADD_ICON_LABEL="Ajouter des icons de bureau" |
pankso@187 | 33 DESKTOP_DIALOG_LABEL="Déconnexion, arrêt ou redémarrage du système" ;; |
pankso@178 | 34 *) |
pankso@178 | 35 lang="" |
pankso@178 | 36 NEW_FOLDER_LABEL="Creat a new folder on the desktop:" |
pankso@178 | 37 FOLDER_ENTRY_MSG="dirname" |
pankso@178 | 38 NEW_FILE_LABEL="Creat a new file on the desktop:" |
pankso@178 | 39 FILE_ENTRY_MSG="filename" |
pankso@187 | 40 ADD_ICON_LABEL="Add some desktop icons" |
pankso@187 | 41 DESKTOP_DIALOG_LABEL="Session logout, system shutdown or reboot" ;; |
pankso@178 | 42 esac |
pankso@178 | 43 |
pankso@178 | 44 # Command line usage. |
pankso@178 | 45 usage() |
pankso@178 | 46 { |
pankso@178 | 47 echo -e "\nSliTaz Freedesktop Box - Version: $VERSION\n |
pankso@178 | 48 \033[1mUsage: \033[0m `basename $0` command |
pankso@178 | 49 \033[1mCommands: \033[0m\n |
pankso@178 | 50 new-folder Creat a new folder on the desktop with mkdir. |
pankso@178 | 51 new-file Creat a new empty file or SHell script on the desktop. |
pankso@187 | 52 add-icons Add a system icon on the desktop. |
pankso@189 | 53 calendar Display a calendard under mouse pointer. |
pankso@187 | 54 logout Prompt for X session exit or system halt/reboot.\n" |
pankso@178 | 55 } |
pankso@178 | 56 |
pankso@178 | 57 # Box commands. |
pankso@178 | 58 case $1 in |
pankso@178 | 59 new-folder) |
pankso@178 | 60 # Creat a directory on the ~/desktop. |
pankso@178 | 61 # |
pankso@178 | 62 DESKTOP_DIALOG=" |
pankso@178 | 63 <window title=\"Desktopbox - mkdir\" icon-name=\"folder-new\"> |
pankso@178 | 64 <vbox> |
pankso@178 | 65 |
pankso@178 | 66 <text use-markup=\"true\" width-chars=\"40\"> |
pankso@178 | 67 <label>\" |
pankso@178 | 68 <b>$NEW_FOLDER_LABEL</b>\" |
pankso@178 | 69 </label> |
pankso@178 | 70 </text> |
pankso@189 | 71 |
pankso@178 | 72 <hbox> |
pankso@178 | 73 <entry> |
pankso@178 | 74 <default>$FOLDER_ENTRY_MSG</default> |
pankso@178 | 75 <variable>DIR</variable> |
pankso@178 | 76 </entry> |
pankso@178 | 77 </hbox>" |
pankso@178 | 78 ACTIONS=' |
pankso@178 | 79 <hbox> |
pankso@178 | 80 <button> |
pankso@178 | 81 <label>Mkdir</label> |
pankso@178 | 82 <input file icon="folder-new"></input> |
pankso@178 | 83 <action>mkdir -p "$HOME/Desktop/$DIR"</action> |
pankso@178 | 84 <action type="exit">Exit</action> |
pankso@178 | 85 </button> |
pankso@178 | 86 <button cancel> |
pankso@178 | 87 <action type="exit">Exit</action> |
pankso@178 | 88 </button> |
pankso@178 | 89 </hbox> |
pankso@178 | 90 |
pankso@178 | 91 </vbox> |
pankso@178 | 92 </window>' |
pankso@178 | 93 export DESKTOP_DIALOG="${DESKTOP_DIALOG}${ACTIONS}" ;; |
pankso@178 | 94 new-file) |
pankso@178 | 95 # Creat a file on the ~/desktop. |
pankso@178 | 96 # |
pankso@178 | 97 DESKTOP_DIALOG=" |
pankso@178 | 98 <window title=\"Desktopbox - touch/cat\" icon-name=\"document-new\"> |
pankso@178 | 99 <vbox> |
pankso@178 | 100 <text use-markup=\"true\" width-chars=\"40\"> |
pankso@178 | 101 <label>\" |
pankso@178 | 102 <b>$NEW_FILE_LABEL</b>\" |
pankso@178 | 103 </label> |
pankso@178 | 104 </text> |
pankso@189 | 105 |
pankso@178 | 106 <hbox> |
pankso@178 | 107 <entry> |
pankso@178 | 108 <default>$FILE_ENTRY_MSG</default> |
pankso@178 | 109 <variable>FILE</variable> |
pankso@178 | 110 </entry> |
pankso@178 | 111 </hbox>" |
pankso@178 | 112 ACTIONS=' |
pankso@178 | 113 <hbox> |
pankso@178 | 114 <button> |
pankso@178 | 115 <label>SH script</label> |
pankso@178 | 116 <input file icon="document-new"></input> |
pankso@178 | 117 <action>echo "#!/bin/sh" > "$HOME/Desktop/$FILE"</action> |
pankso@178 | 118 <action>echo "#" >> "$HOME/Desktop/$FILE"</action> |
pankso@178 | 119 <action>chmod +x "$HOME/Desktop/$FILE"</action> |
pankso@178 | 120 <action type="exit">Exit</action> |
pankso@178 | 121 </button> |
pankso@178 | 122 <button> |
pankso@178 | 123 <label>Empty</label> |
pankso@178 | 124 <input file icon="document-new"></input> |
pankso@178 | 125 <action>touch "$HOME/Desktop/$FILE"</action> |
pankso@178 | 126 <action type="exit">Exit</action> |
pankso@178 | 127 </button> |
pankso@178 | 128 <button cancel> |
pankso@178 | 129 <action type="exit">Exit</action> |
pankso@178 | 130 </button> |
pankso@178 | 131 </hbox> |
pankso@178 | 132 </vbox> |
pankso@178 | 133 </window>' |
pankso@178 | 134 export DESKTOP_DIALOG="${DESKTOP_DIALOG}${ACTIONS}" ;; |
pankso@178 | 135 add-icons) |
pankso@178 | 136 # Add a new icons on the ~/desktop from /usr/share/applications. |
pankso@178 | 137 # |
pankso@178 | 138 DESKTOP_DIALOG=" |
pankso@178 | 139 <window title=\"$ADD_ICON_LABEL\" icon-name=\"document-new\"> |
pankso@178 | 140 <vbox> |
pankso@178 | 141 <text use-markup=\"true\" width-chars=\"40\"> |
pankso@178 | 142 <label>\" |
pankso@178 | 143 <b>$ADD_ICON_LABEL</b> |
pankso@178 | 144 \" |
pankso@178 | 145 </label> |
pankso@178 | 146 </text> |
pankso@178 | 147 <tree headers_visible=\"false\"> |
pankso@178 | 148 <width>420</width><height>200</height> |
pankso@178 | 149 <variable>ICON</variable> |
pankso@178 | 150 <label>Filename|Application</label>" |
pankso@178 | 151 # Get application name and icon. |
pankso@178 | 152 cd /usr/share/applications |
pankso@178 | 153 for file in *.desktop |
pankso@178 | 154 do |
pankso@178 | 155 # Try to get the name in the right locale. |
pankso@178 | 156 NAME=`grep ^Name $file | grep $lang || grep ^Name= $file` |
pankso@178 | 157 NAME=`echo $NAME | cut -d "=" -f 2` |
pankso@178 | 158 ICON=`grep ^Icon= $file | cut -d "=" -f 2` |
pankso@178 | 159 ICON=`basename $ICON` |
pankso@178 | 160 ICON=${ICON%.*} |
pankso@178 | 161 FILE=${file%.desktop} |
pankso@178 | 162 ITEM="<item icon=\"$ICON\">$FILE | $NAME</item>" |
pankso@178 | 163 DESKTOP_DIALOG="${DESKTOP_DIALOG}${ITEM}" |
pankso@178 | 164 done |
pankso@178 | 165 ACTIONS='<action>cp /usr/share/applications/$ICON.desktop ~/Desktop</action> |
pankso@178 | 166 </tree> |
pankso@178 | 167 <hbox> |
pankso@178 | 168 <button> |
pankso@178 | 169 <label>Add</label> |
pankso@178 | 170 <input file icon="gtk-add"></input> |
pankso@178 | 171 <action>cp /usr/share/applications/$ICON.desktop ~/Desktop</action> |
pankso@178 | 172 </button> |
pankso@178 | 173 <button> |
pankso@178 | 174 <label>Exit</label> |
pankso@178 | 175 <input file icon="exit"></input> |
pankso@178 | 176 <action type="exit">Exit</action> |
pankso@178 | 177 </button> |
pankso@178 | 178 </hbox> |
pankso@178 | 179 </vbox> |
pankso@187 | 180 </window>' |
pankso@187 | 181 export DESKTOP_DIALOG=${DESKTOP_DIALOG}${ACTIONS} ;; |
pankso@189 | 182 calendar) |
pankso@189 | 183 # Calendar using glade file. |
pankso@189 | 184 # |
pankso@189 | 185 gtkdialog --glade-xml=$GLADE_XML/calendar.glade \ |
pankso@189 | 186 --program=MAIN_WINDOW ;; |
pankso@187 | 187 logout) |
pankso@187 | 188 # X session/system logout. |
pankso@187 | 189 # |
pankso@187 | 190 DESKTOP_DIALOG=" |
pankso@187 | 191 <window title=\"SliTaz Desktop logout\" icon-name=\"user-desktop\"> |
pankso@187 | 192 <vbox> |
pankso@187 | 193 <pixmap> |
pankso@187 | 194 <input file>/usr/share/icons/Tango/32x32/places/user-desktop.png</input> |
pankso@187 | 195 </pixmap> |
pankso@187 | 196 <hbox> |
pankso@187 | 197 <text use-markup=\"true\" width-chars=\"64\"> |
pankso@187 | 198 <label> |
pankso@187 | 199 \"<b>$DESKTOP_DIALOG_LABEL</b> |
pankso@187 | 200 \" |
pankso@187 | 201 </label> |
pankso@187 | 202 </text> |
pankso@187 | 203 </hbox>" |
pankso@187 | 204 # Logout for Openbox or JWM and system shutdown or reboot. |
pankso@187 | 205 ACTIONS=' |
pankso@187 | 206 <hbox> |
pankso@187 | 207 <button> |
pankso@187 | 208 <label>Logout X session</label> |
pankso@187 | 209 <input file icon="video-display"></input> |
pankso@187 | 210 <action>openbox --exit || jwm -exit</action> |
pankso@187 | 211 <action type="exit">Exit</action> |
pankso@187 | 212 </button> |
pankso@187 | 213 <button> |
pankso@187 | 214 <label>Shutdown computer</label> |
pankso@187 | 215 <input file icon="system-shutdown"></input> |
pankso@187 | 216 <action>poweroff</action> |
pankso@187 | 217 <action type="exit">Exit</action> |
pankso@187 | 218 </button> |
pankso@187 | 219 <button> |
pankso@187 | 220 <label>Reboot system</label> |
pankso@187 | 221 <input file icon="reload"></input> |
pankso@187 | 222 <action>reboot</action> |
pankso@187 | 223 <action type="exit">Exit</action> |
pankso@187 | 224 </button> |
pankso@187 | 225 <button cancel> |
pankso@187 | 226 <action type="exit">Exit</action> |
pankso@187 | 227 </button> |
pankso@187 | 228 </hbox> |
pankso@187 | 229 |
pankso@187 | 230 </vbox> |
pankso@187 | 231 </window>' |
pankso@187 | 232 export DESKTOP_DIALOG=${DESKTOP_DIALOG}${ACTIONS} ;; |
pankso@178 | 233 *) |
pankso@178 | 234 # Usage if executet from cmdline. |
pankso@178 | 235 # |
pankso@178 | 236 usage |
pankso@178 | 237 exit 0 ;; |
pankso@178 | 238 esac |
pankso@178 | 239 |
pankso@178 | 240 gtkdialog --center --program=DESKTOP_DIALOG >/dev/null |
pankso@178 | 241 |
pankso@178 | 242 exit 0 |