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