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