slitaz-tools annotate tinyutils/desktopbox @ rev 282
desktopbox: translate logout dialog buttons
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Tue Dec 30 10:55:32 2008 +0100 (2008-12-30) |
parents | bb9eadd784aa |
children | 48278a1fa8e5 |
rev | line source |
---|---|
pankso@178 | 1 #! /bin/sh |
pankso@189 | 2 # |
MikeDSmith25@252 | 3 # Multi-call script providing GTK boxes to manage a desktop following |
MikeDSmith25@252 | 4 # Freedesktop standards. |
pankso@178 | 5 # |
pankso@178 | 6 # (C) GNU gpl v3 - SliTaz GNU/Linux 2008. |
pankso@178 | 7 # |
MikeDSmith25@252 | 8 VERSION=20080719 |
pankso@178 | 9 |
pankso@189 | 10 # Glade XML file path. |
pankso@189 | 11 GLADE_XML=/usr/share/slitaz-tools/glade |
pankso@189 | 12 |
MikeDSmith25@252 | 13 # Standard 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" |
MikeDSmith25@252 | 20 NEW_FOLDER_LABEL="Create a new folder on the desktop:" |
pankso@178 | 21 FOLDER_ENTRY_MSG="dirname" |
MikeDSmith25@252 | 22 NEW_FILE_LABEL="Create a new file on the desktop:" |
pankso@178 | 23 FILE_ENTRY_MSG="filename" |
pankso@187 | 24 ADD_ICON_LABEL="Add some desktop icons" |
pankso@282 | 25 CHARS_SIZE="64" |
pascal@268 | 26 DESKTOP_DIALOG_TAZUSB="Save filesystem using compression" |
pankso@282 | 27 DESKTOP_DIALOG_LABEL="Session logout, system shutdown or reboot" |
pankso@282 | 28 DESKTOP_LOGOUT_BUTTON="Logout X session" |
pankso@282 | 29 DESKTOP_SHUTDOWN_BUTTON="Shutdown computer" |
pankso@282 | 30 DESKTOP_REBOOT_BUTTON="Reboot system" ;; |
pankso@178 | 31 fr*) |
pankso@178 | 32 lang="fr" |
pascal@281 | 33 NEW_FOLDER_LABEL="Créer un nouveau dossier sur le bureau:" |
pankso@178 | 34 FOLDER_ENTRY_MSG="dossier" |
pascal@281 | 35 NEW_FILE_LABEL="Créer un nouveau fichier sur le bureau:" |
pankso@178 | 36 FILE_ENTRY_MSG="fichier" |
pascal@281 | 37 ADD_ICON_LABEL="Ajouter des icônes de bureau" |
pankso@282 | 38 CHARS_SIZE="72" |
pascal@281 | 39 DESKTOP_DIALOG_TAZUSB="Enregistrer le système avec la compression" |
pankso@282 | 40 DESKTOP_DIALOG_LABEL="Déconnexion, arrêt ou redémarrage du système" |
pankso@282 | 41 DESKTOP_LOGOUT_BUTTON="Fermer la session X" |
pankso@282 | 42 DESKTOP_SHUTDOWN_BUTTON="Eteindre le système" |
pankso@282 | 43 DESKTOP_REBOOT_BUTTON="Redémarrer le système" ;; |
pankso@178 | 44 *) |
pankso@178 | 45 lang="" |
MikeDSmith25@252 | 46 NEW_FOLDER_LABEL="Create a new folder on the desktop:" |
pankso@178 | 47 FOLDER_ENTRY_MSG="dirname" |
MikeDSmith25@252 | 48 NEW_FILE_LABEL="Create a new file on the desktop:" |
pankso@178 | 49 FILE_ENTRY_MSG="filename" |
pankso@187 | 50 ADD_ICON_LABEL="Add some desktop icons" |
pankso@282 | 51 CHARS_SIZE="64" |
pascal@268 | 52 DESKTOP_DIALOG_TAZUSB="Save filesystem using compression" |
pankso@282 | 53 DESKTOP_DIALOG_LABEL="Session logout, system shutdown or reboot" |
pankso@282 | 54 DESKTOP_LOGOUT_BUTTON="Logout X session" |
pankso@282 | 55 DESKTOP_SHUTDOWN_BUTTON="Shutdown computer" |
pankso@282 | 56 DESKTOP_REBOOT_BUTTON="Reboot system" ;; |
pankso@178 | 57 esac |
pankso@178 | 58 |
pankso@178 | 59 # Command line usage. |
pankso@178 | 60 usage() |
pankso@178 | 61 { |
pankso@178 | 62 echo -e "\nSliTaz Freedesktop Box - Version: $VERSION\n |
pankso@178 | 63 \033[1mUsage: \033[0m `basename $0` command |
pankso@178 | 64 \033[1mCommands: \033[0m\n |
MikeDSmith25@252 | 65 new-folder Create a new folder on the desktop with mkdir. |
MikeDSmith25@252 | 66 new-file Create a new empty file or SHell script on the desktop. |
pankso@187 | 67 add-icons Add a system icon on the desktop. |
MikeDSmith25@252 | 68 calendar Display a calendar under mouse pointer. |
pankso@187 | 69 logout Prompt for X session exit or system halt/reboot.\n" |
pankso@178 | 70 } |
pankso@178 | 71 |
pankso@178 | 72 # Box commands. |
pankso@178 | 73 case $1 in |
pankso@178 | 74 new-folder) |
MikeDSmith25@252 | 75 # Create a directory on the ~/Desktop. |
pankso@178 | 76 # |
pankso@178 | 77 DESKTOP_DIALOG=" |
pankso@178 | 78 <window title=\"Desktopbox - mkdir\" icon-name=\"folder-new\"> |
pankso@178 | 79 <vbox> |
pankso@178 | 80 |
pankso@178 | 81 <text use-markup=\"true\" width-chars=\"40\"> |
pankso@178 | 82 <label>\" |
pankso@178 | 83 <b>$NEW_FOLDER_LABEL</b>\" |
pankso@178 | 84 </label> |
pankso@178 | 85 </text> |
pankso@189 | 86 |
pankso@178 | 87 <hbox> |
pankso@178 | 88 <entry> |
pankso@178 | 89 <default>$FOLDER_ENTRY_MSG</default> |
pankso@178 | 90 <variable>DIR</variable> |
pankso@178 | 91 </entry> |
pankso@178 | 92 </hbox>" |
pankso@178 | 93 ACTIONS=' |
pankso@178 | 94 <hbox> |
pankso@178 | 95 <button> |
pankso@178 | 96 <label>Mkdir</label> |
pankso@178 | 97 <input file icon="folder-new"></input> |
pankso@178 | 98 <action>mkdir -p "$HOME/Desktop/$DIR"</action> |
pankso@178 | 99 <action type="exit">Exit</action> |
pankso@178 | 100 </button> |
pankso@178 | 101 <button cancel> |
pankso@178 | 102 <action type="exit">Exit</action> |
pankso@178 | 103 </button> |
pankso@178 | 104 </hbox> |
pankso@178 | 105 |
pankso@178 | 106 </vbox> |
pankso@178 | 107 </window>' |
pankso@178 | 108 export DESKTOP_DIALOG="${DESKTOP_DIALOG}${ACTIONS}" ;; |
pankso@178 | 109 new-file) |
MikeDSmith25@252 | 110 # Create a file on the ~/Desktop. |
pankso@178 | 111 # |
pankso@178 | 112 DESKTOP_DIALOG=" |
pankso@178 | 113 <window title=\"Desktopbox - touch/cat\" icon-name=\"document-new\"> |
pankso@178 | 114 <vbox> |
pankso@178 | 115 <text use-markup=\"true\" width-chars=\"40\"> |
pankso@178 | 116 <label>\" |
pankso@178 | 117 <b>$NEW_FILE_LABEL</b>\" |
pankso@178 | 118 </label> |
pankso@178 | 119 </text> |
pankso@189 | 120 |
pankso@178 | 121 <hbox> |
pankso@178 | 122 <entry> |
pankso@178 | 123 <default>$FILE_ENTRY_MSG</default> |
pankso@178 | 124 <variable>FILE</variable> |
pankso@178 | 125 </entry> |
pankso@178 | 126 </hbox>" |
pankso@178 | 127 ACTIONS=' |
pankso@178 | 128 <hbox> |
pankso@178 | 129 <button> |
pankso@178 | 130 <label>SH script</label> |
pankso@178 | 131 <input file icon="document-new"></input> |
pankso@178 | 132 <action>echo "#!/bin/sh" > "$HOME/Desktop/$FILE"</action> |
pankso@178 | 133 <action>echo "#" >> "$HOME/Desktop/$FILE"</action> |
pankso@178 | 134 <action>chmod +x "$HOME/Desktop/$FILE"</action> |
pankso@178 | 135 <action type="exit">Exit</action> |
pankso@178 | 136 </button> |
pankso@178 | 137 <button> |
pankso@178 | 138 <label>Empty</label> |
pankso@178 | 139 <input file icon="document-new"></input> |
pankso@178 | 140 <action>touch "$HOME/Desktop/$FILE"</action> |
pankso@178 | 141 <action type="exit">Exit</action> |
pankso@178 | 142 </button> |
pankso@178 | 143 <button cancel> |
pankso@178 | 144 <action type="exit">Exit</action> |
pankso@178 | 145 </button> |
pankso@178 | 146 </hbox> |
pankso@178 | 147 </vbox> |
pankso@178 | 148 </window>' |
pankso@178 | 149 export DESKTOP_DIALOG="${DESKTOP_DIALOG}${ACTIONS}" ;; |
pankso@178 | 150 add-icons) |
MikeDSmith25@252 | 151 # Add new icons on the ~/Desktop from /usr/share/applications. |
pankso@178 | 152 # |
pankso@178 | 153 DESKTOP_DIALOG=" |
pankso@178 | 154 <window title=\"$ADD_ICON_LABEL\" icon-name=\"document-new\"> |
pankso@178 | 155 <vbox> |
pankso@178 | 156 <text use-markup=\"true\" width-chars=\"40\"> |
pankso@178 | 157 <label>\" |
pankso@178 | 158 <b>$ADD_ICON_LABEL</b> |
pankso@178 | 159 \" |
pankso@178 | 160 </label> |
pankso@178 | 161 </text> |
pankso@178 | 162 <tree headers_visible=\"false\"> |
pankso@178 | 163 <width>420</width><height>200</height> |
pankso@178 | 164 <variable>ICON</variable> |
pankso@178 | 165 <label>Filename|Application</label>" |
pankso@178 | 166 # Get application name and icon. |
pankso@178 | 167 cd /usr/share/applications |
pankso@178 | 168 for file in *.desktop |
pankso@178 | 169 do |
pankso@178 | 170 # Try to get the name in the right locale. |
pankso@178 | 171 NAME=`grep ^Name $file | grep $lang || grep ^Name= $file` |
pankso@178 | 172 NAME=`echo $NAME | cut -d "=" -f 2` |
pankso@178 | 173 ICON=`grep ^Icon= $file | cut -d "=" -f 2` |
pankso@178 | 174 ICON=`basename $ICON` |
pankso@178 | 175 ICON=${ICON%.*} |
pankso@178 | 176 FILE=${file%.desktop} |
pankso@178 | 177 ITEM="<item icon=\"$ICON\">$FILE | $NAME</item>" |
pankso@178 | 178 DESKTOP_DIALOG="${DESKTOP_DIALOG}${ITEM}" |
pankso@178 | 179 done |
pankso@178 | 180 ACTIONS='<action>cp /usr/share/applications/$ICON.desktop ~/Desktop</action> |
pankso@178 | 181 </tree> |
pankso@178 | 182 <hbox> |
pankso@178 | 183 <button> |
pankso@178 | 184 <label>Add</label> |
pankso@178 | 185 <input file icon="gtk-add"></input> |
pankso@178 | 186 <action>cp /usr/share/applications/$ICON.desktop ~/Desktop</action> |
pankso@178 | 187 </button> |
pankso@178 | 188 <button> |
pankso@178 | 189 <label>Exit</label> |
pankso@178 | 190 <input file icon="exit"></input> |
pankso@178 | 191 <action type="exit">Exit</action> |
pankso@178 | 192 </button> |
pankso@178 | 193 </hbox> |
pankso@178 | 194 </vbox> |
pankso@187 | 195 </window>' |
pankso@187 | 196 export DESKTOP_DIALOG=${DESKTOP_DIALOG}${ACTIONS} ;; |
pankso@189 | 197 calendar) |
pankso@189 | 198 # Calendar using glade file. |
pankso@189 | 199 # |
pankso@189 | 200 gtkdialog --glade-xml=$GLADE_XML/calendar.glade \ |
pankso@189 | 201 --program=MAIN_WINDOW ;; |
pankso@187 | 202 logout) |
pankso@187 | 203 # X session/system logout. |
pankso@187 | 204 # |
pankso@187 | 205 DESKTOP_DIALOG=" |
pankso@187 | 206 <window title=\"SliTaz Desktop logout\" icon-name=\"user-desktop\"> |
pankso@187 | 207 <vbox> |
pankso@187 | 208 <pixmap> |
pankso@187 | 209 <input file>/usr/share/icons/Tango/32x32/places/user-desktop.png</input> |
pankso@187 | 210 </pixmap> |
pankso@187 | 211 <hbox> |
pankso@282 | 212 <text use-markup=\"true\" width-chars=\"$CHARS_SIZE\"> |
pankso@187 | 213 <label> |
pankso@187 | 214 \"<b>$DESKTOP_DIALOG_LABEL</b> |
pankso@187 | 215 \" |
pankso@187 | 216 </label> |
pankso@187 | 217 </text> |
pankso@187 | 218 </hbox>" |
pascal@268 | 219 TAZUSB_DIALOG=" |
pascal@268 | 220 <hbox> |
pascal@268 | 221 <checkbox> |
pascal@268 | 222 <label>$DESKTOP_DIALOG_TAZUSB</label> |
pascal@268 | 223 <variable>TAZUSB_WRITE</variable> |
pascal@268 | 224 <default>false</default> |
pascal@268 | 225 </checkbox> |
pascal@268 | 226 <radiobutton> |
pascal@268 | 227 <label>lzma</label> |
pascal@268 | 228 <variable>LZMA</variable> |
pascal@268 | 229 </radiobutton> |
pascal@268 | 230 <radiobutton active=\"true\"> |
pascal@268 | 231 <label>gzip</label> |
pascal@268 | 232 <variable>GZIP</variable> |
pascal@268 | 233 </radiobutton> |
pascal@268 | 234 <radiobutton> |
pascal@268 | 235 <label>none</label> |
pascal@268 | 236 <variable>NONE</variable> |
pascal@268 | 237 </radiobutton> |
pascal@268 | 238 </hbox>" |
pascal@269 | 239 EXTRA="COMP=none; [ \$LZMA = true ] && COMP=lzma; [ \$GZIP = true ] && COMP=gzip; [ \$TAZUSB_WRITE = true ] && { subox \"xterm -e '/usr/bin/tazusb writefs \$COMP'\"; sleep 1; while ps x | grep -v grep | grep -q tazusb; do sleep 1; done; };" |
pascal@269 | 240 [ -f /home/boot/rootfs.gz ] || { TAZUSB_DIALOG=""; EXTRA=""; } |
pankso@187 | 241 # Logout for Openbox or JWM and system shutdown or reboot. |
pascal@268 | 242 ACTIONS=" |
pankso@187 | 243 <hbox> |
pankso@187 | 244 <button> |
pankso@282 | 245 <label>$DESKTOP_LOGOUT_BUTTON</label> |
pascal@268 | 246 <input file icon=\"video-display\"></input> |
pascal@269 | 247 <action>$EXTRA openbox --exit || jwm -exit</action> |
pascal@268 | 248 <action type=\"exit\">Exit</action> |
pankso@187 | 249 </button> |
pankso@187 | 250 <button> |
pankso@282 | 251 <label>$DESKTOP_SHUTDOWN_BUTTON</label> |
pascal@268 | 252 <input file icon=\"system-shutdown\"></input> |
pascal@269 | 253 <action>$EXTRA poweroff</action> |
pascal@268 | 254 <action type=\"exit\">Exit</action> |
pankso@187 | 255 </button> |
pankso@187 | 256 <button> |
pankso@282 | 257 <label>$DESKTOP_REBOOT_BUTTON</label> |
pascal@268 | 258 <input file icon=\"reload\"></input> |
pascal@269 | 259 <action>$EXTRA reboot</action> |
pascal@268 | 260 <action type=\"exit\">Exit</action> |
pankso@187 | 261 </button> |
pankso@187 | 262 <button cancel> |
pascal@268 | 263 <action type=\"exit\">Exit</action> |
pankso@187 | 264 </button> |
pankso@187 | 265 </hbox> |
pankso@187 | 266 </vbox> |
pascal@268 | 267 </window>" |
pascal@268 | 268 export DESKTOP_DIALOG=${DESKTOP_DIALOG}${TAZUSB_DIALOG}${ACTIONS} ;; |
pankso@178 | 269 *) |
MikeDSmith25@252 | 270 # Usage if executed from cmdline. |
pankso@178 | 271 # |
pankso@178 | 272 usage |
pankso@178 | 273 exit 0 ;; |
pankso@178 | 274 esac |
pankso@178 | 275 |
pankso@178 | 276 gtkdialog --center --program=DESKTOP_DIALOG >/dev/null |
pankso@178 | 277 |
pankso@178 | 278 exit 0 |