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