/[magellan-source]/trunk/mlivecdbuild/profiles/openvpn-i686/custom-files/fluxbox-generate_menu_custom.sh |
Contents of /trunk/mlivecdbuild/profiles/openvpn-i686/custom-files/fluxbox-generate_menu_custom.sh
Parent Directory | Revision Log
Revision 582 -
(show annotations)
(download)
(as text)
Sat Oct 13 11:42:09 2007 UTC (16 years, 6 months ago) by niro
File MIME type: application/x-sh
File size: 52020 byte(s)
Sat Oct 13 11:42:09 2007 UTC (16 years, 6 months ago) by niro
File MIME type: application/x-sh
File size: 52020 byte(s)
-added openvpn profile
1 | #!/bin/sh |
2 | # |
3 | # generate_menu for Fluxbox |
4 | # |
5 | # Copyright (c) 2005 Dung N. Lam <dnlam@users.sourceforge.net> |
6 | # Copyright (c) 2002-2004 Han Boetes <han@mijncomputer.nl> |
7 | # |
8 | # Permission is hereby granted, free of charge, to any person obtaining a |
9 | # copy of this software and associated documentation files (the "Software"), |
10 | # to deal in the Software without restriction, including without limitation |
11 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, |
12 | # and/or sell copies of the Software, and to permit persons to whom the |
13 | # Software is furnished to do so, subject to the following conditions: |
14 | # |
15 | # The above copyright notice and this permission notice shall be included in |
16 | # all copies or substantial portions of the Software. |
17 | # |
18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
19 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
20 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
21 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
22 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
23 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
24 | # DEALINGS IN THE SOFTWARE. |
25 | # |
26 | # $Id: fluxbox-generate_menu_custom.sh,v 1.1 2007-10-13 11:42:09 niro Exp $ |
27 | |
28 | # |
29 | # Portability notes: |
30 | # To guarantee this script works on all platforms that support fluxbox |
31 | # please keep the following restrictions in mind: |
32 | # |
33 | # - don't use [ "a" == "a" ]; use [ "a" = "a" ] (found with help from FreeBSD user relaxed) |
34 | # - don't use if ! command;, use command; if [ $? -ne 0 ]; |
35 | # - don't use [ -e file ] use [ -r file ] |
36 | # - don't use $(), use `` |
37 | # - don't use ~, use ${HOME} |
38 | # - don't use id -u or $UID, use whoami |
39 | # - getopts won't work on all platforms, but the config-file can |
40 | # compensate for that. |
41 | # - OpenBSD and Solaris grep do not have the -m option |
42 | # - various software like grep/sed/perl may be not present or not |
43 | # the version you have. for example grep '\W' only works on gnu-grep. |
44 | # Keep this in mind, use bare basic defaults. |
45 | # - Do _NOT_ suggest to use #!/bin/bash. Not everybody uses bash. |
46 | # Non portable features like getopts in this script can be achieved in |
47 | # other ways. |
48 | |
49 | |
50 | WHOAMI=`whoami` |
51 | [ "$WHOAMI" = root ] && PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin |
52 | |
53 | # Check for Imlib2-support |
54 | if fluxbox -info 2> /dev/null | grep -q "^IMLIB"; then |
55 | PNG_ICONS="yes" |
56 | else |
57 | # better assume to assume "no" |
58 | PNG_ICONS="no" |
59 | fi |
60 | |
61 | # Functions |
62 | display_usage() { |
63 | cat << EOF |
64 | Usage: fluxbox-generate_menu [-kgrBh] [-t terminal] [-w url] [-b browser] |
65 | [-m menu-title] [-o /path] [-u /path] [-p /path] [-n /path] [-q /path] |
66 | [-d /path ] [-ds] [-i /path] [-is] |
67 | EOF |
68 | } |
69 | |
70 | display_help() { |
71 | display_usage |
72 | cat << EOF |
73 | |
74 | Options: |
75 | |
76 | -k Insert a kde menu |
77 | -g Add a gnome menu |
78 | -B enable backgrounds menu |
79 | -r Don't remove empty menu-entries; for templates |
80 | |
81 | -d other path(s) to recursively search for *.desktop files |
82 | -ds wider search for *.desktop files (takes more time) |
83 | -i other path(s) to search for icons |
84 | e.g., "/usr/kde/3.3/share/icons/crystalsvg/16x16/*" |
85 | -is wider search for icons (worth the extra time) |
86 | -in skip icon search |
87 | |
88 | -t Favourite terminal |
89 | -w Homepage for console-browsers. Default is fluxbox.org |
90 | -b Favourite browser |
91 | -m Menu-title; default is "Fluxbox" |
92 | -o Outputfile; default is ~/.fluxbox/menu |
93 | -u user sub-menu; default is ~/.fluxbox/usermenu |
94 | |
95 | -h Display this help |
96 | -a Display the authors of this script |
97 | |
98 | Only for packagers: |
99 | |
100 | -p prefix; default is /usr |
101 | -n Gnome-prefix; /opt, /usr, /usr/X11R6 and /usr/local autodetected |
102 | -q KDE-prefix; idem dito |
103 | |
104 | |
105 | Files: |
106 | ~/.fluxbox/usermenu your own submenu which will be included in the menu |
107 | ~/.fluxbox/menuconfig rc file for fluxbox-generate_menu |
108 | |
109 | EOF |
110 | } |
111 | |
112 | display_authors() { |
113 | cat << EOF |
114 | |
115 | fluxbox-generate_menu was brought to you by: |
116 | |
117 | Henrik Kinnunen: Project leader. |
118 | Han Boetes: Packaging, debugging and scripts. |
119 | Simon Bowden: Cleanups and compatibility for sun. |
120 | Jeramy B. Smith: Packaging assistance, gnome and kde menu system. |
121 | Filippo Pappalardo: Italian locales and -t option. |
122 | $WHOAMI: Innocent bystander. |
123 | |
124 | EOF |
125 | } |
126 | |
127 | # some which's have a reliable return code, some don't |
128 | # Lets figure out which which we have. |
129 | if which this_program_does_not_exist-no_really-aA1zZ9 2> /dev/null 1> /dev/null; then |
130 | # can't rely on return value |
131 | find_it() { |
132 | file=`which $1 2> /dev/null` |
133 | if [ -x "$file" ]; then |
134 | if [ $# -gt 1 ]; then |
135 | shift |
136 | "$@" |
137 | fi |
138 | return 0 |
139 | else |
140 | return 1 |
141 | fi |
142 | } |
143 | |
144 | find_it_options() { |
145 | file=`which $1 2> /dev/null` |
146 | if [ -x "$file" ]; then |
147 | return 0 |
148 | else |
149 | return 1 |
150 | fi |
151 | } |
152 | |
153 | else |
154 | # can rely on return value |
155 | find_it() { |
156 | which $1 > /dev/null 2>&1 && shift && "$@" |
157 | } |
158 | |
159 | find_it_options() { |
160 | which $1 > /dev/null 2>&1 |
161 | } |
162 | fi |
163 | |
164 | #echo "replaceWithinString: $1, $2, $3" >&2 |
165 | #echo ${1//$2/$3} # causes error in BSD even though not used |
166 | replaceWithinString(){ |
167 | echo $1 | awk "{ gsub(/$2/, \"$3\"); print }" |
168 | } |
169 | |
170 | convertIcon(){ |
171 | if [ ! -f "$1" ] ; then |
172 | echo "Icon file not found: $1" >&2 |
173 | return 1 |
174 | fi |
175 | |
176 | if [ "$1" = "$2" ]; then |
177 | # $dnlamVERBOSE "Files are in the same location: $1 = $2" >&2 |
178 | # not really an error; just nothing to do. |
179 | return 0; |
180 | fi |
181 | |
182 | local BASENAME |
183 | BASENAME="${1##*/}" |
184 | |
185 | # make sure it is an icon by checking if it has an extension |
186 | if [ "$BASENAME" = "${BASENAME%%.*}" ]; then |
187 | # $dnlamVERBOSE "File $1 does not have a filename extention." >&2 |
188 | return 1; |
189 | fi |
190 | |
191 | # don't have to convert xpm files |
192 | case "$1" in |
193 | *.xpm) |
194 | echo "$1" |
195 | return 0; |
196 | ;; |
197 | esac |
198 | |
199 | # may not have to convert png if imlib is enabled |
200 | if [ "$PNG_ICONS" = "yes" ]; then |
201 | case "$1" in |
202 | *.png) |
203 | echo "$1" |
204 | return 0; |
205 | ;; |
206 | esac |
207 | fi |
208 | |
209 | # convert all others icons and save it as xpm format under directory $2 |
210 | entry_icon="$2/${BASENAME%.*}.xpm" |
211 | if [ -f "${entry_icon}" ]; then |
212 | : echo "File exists. To overwrite, type: convert \"$1\" \"$entry_icon\"" >&2 |
213 | else |
214 | if which convert &> /dev/null; then |
215 | convert "$1" "$entry_icon" |
216 | # echo convert "$1" , "$entry_icon" >> $ICONMAPPING |
217 | else |
218 | echo "Please install ImageMagick's convert utility" >&2 |
219 | fi |
220 | fi |
221 | echo "$entry_icon" |
222 | } |
223 | |
224 | removePath(){ |
225 | execname="$1" |
226 | progname="${execname%% *}" |
227 | # separate program name and its parameters |
228 | if [ "$progname" = "$execname" ]; then |
229 | # no params |
230 | # remove path from only program name |
231 | execname="${progname##*/}" |
232 | else |
233 | params="${execname#* }" |
234 | # remove path from only program name |
235 | execname="${progname##*/} $params" |
236 | fi |
237 | echo $execname |
238 | } |
239 | |
240 | doSearchLoop(){ |
241 | for ICONPATH in "$@"; do |
242 | ## $dnlamVERBOSE ": $ICONPATH" >> $ICONMAPPING |
243 | [ -d "$ICONPATH" ] || continue |
244 | #echo -n "." |
245 | # # $dnlamVERBOSE ":: $ICONPATH/$temp_icon" >> $ICONMAPPING |
246 | if [ -f "$ICONPATH/$temp_icon" ]; then |
247 | echo "$ICONPATH/$temp_icon" |
248 | return 0; |
249 | else # try different extensions; |
250 | # remove extension |
251 | iconNOext="${temp_icon%%.*}" |
252 | [ -d "$ICONPATH" ] && for ICONEXT in .xpm .png .gif ; do |
253 | ## echo "::: $ICONPATH/$iconNOext$ICONEXT" >> $ICONMAPPING |
254 | if [ -f "$ICONPATH/$iconNOext$ICONEXT" ]; then |
255 | echo "$ICONPATH/$iconNOext$ICONEXT" |
256 | return 0; |
257 | fi |
258 | done |
259 | fi |
260 | done |
261 | #echo "done" |
262 | return 1 |
263 | } |
264 | |
265 | doSearch(){ |
266 | # remove '(' from '(fluxbox ...) | ...' |
267 | execname=`replaceWithinString "$1" "\("` |
268 | temp_icon="$2" |
269 | # $dnlamVERBOSE "# Searching for icon $temp_icon for $execname" >> $ICONMAPPING |
270 | |
271 | # check in $ICONMAPPING before searching directories |
272 | entry_icon=`grep "^\"${execname}\"" $ICONMAPPING | head -n 1 | grep -o '<.*>'` |
273 | if [ -n "$entry_icon" ]; then |
274 | entry_icon=`replaceWithinString "$entry_icon" "<"` |
275 | entry_icon=`replaceWithinString "$entry_icon" ">"` |
276 | echo $entry_icon |
277 | return 0; |
278 | fi |
279 | # echo "$ICONMAPPING for $execname: $entry_icon" |
280 | |
281 | # the following paths include a user-defined variable, listing paths to search for icons |
282 | # echo -n "for $temp_icon" |
283 | eval doSearchLoop $USER_ICONPATHS \ |
284 | "$FB_ICONDIR" \ |
285 | "/usr/share/${execname%% *}" \ |
286 | ${OTHER_ICONPATHS} \ |
287 | |
288 | |
289 | } |
290 | |
291 | searchForIcon(){ |
292 | # remove '&' and everything after it |
293 | entry_exec="${1%%&*}" |
294 | entry_icon="$2" |
295 | # $dnlamVERBOSE echo "searchForIcon \"$entry_exec\" \"$entry_icon\"" >&2 |
296 | |
297 | # get the basename and parameters of entry_exec -- no path |
298 | entry_exec=`removePath "${entry_exec}"` |
299 | [ -z "$entry_exec" ] && { echo "Exec is NULL $1 with icon $2"; return 1; } |
300 | |
301 | # search for specified icon if it does not exists |
302 | if [ -n "$entry_icon" ] && [ ! "$entry_exec" = "$entry_icon" ] && [ ! -f "$entry_icon" ]; then |
303 | # to search for icon in other paths, |
304 | # get basename |
305 | temp_icon="${entry_icon##*/}" |
306 | # remove parameters |
307 | temp_icon="${temp_icon#* }" |
308 | # clear entry_icon until temp_icon is found |
309 | unset entry_icon |
310 | |
311 | if [ ! -f "$entry_icon" ]; then |
312 | entry_icon=`doSearch "$entry_exec" "$temp_icon"` |
313 | fi |
314 | fi |
315 | |
316 | # remove parameters |
317 | execname="${entry_exec%% *}" |
318 | |
319 | # echo "search for icon named $execname.{xpm,png,gif}" |
320 | if [ ! -f "$entry_icon" ]; then |
321 | entry_icon=`doSearch "$entry_exec" "$execname"` |
322 | fi |
323 | |
324 | # ----------- done with search ------------ |
325 | # $dnlamVERBOSE echo "::: $entry_icon" >&2 |
326 | |
327 | # convert icon file, if needed |
328 | if [ -f "$entry_icon" ] && [ -n "yes$ConvertIfNecessary" ]; then |
329 | entry_icon=`convertIcon "$entry_icon" "$HOME/.fluxbox/icons"` |
330 | # $dnlamVERBOSE echo ":::: $entry_icon" >&2 |
331 | fi |
332 | |
333 | # remove path to icon; just get basename |
334 | icon_base="${entry_icon##*/}" |
335 | # remove extension |
336 | icon_base="${icon_base%%.*}" |
337 | # echo "^.${entry_exec}.[[:space:]]*<.*/${icon_base}\....>" |
338 | if [ -f "$entry_icon" ]; then |
339 | # if icon exists and entry does not already exists, add it |
340 | if ! grep -q -m 1 "^.${entry_exec}.[[:space:]]*<.*/${icon_base}\....>" $ICONMAPPING 2> /dev/null; then |
341 | echo -e "\"${entry_exec}\" \t <${entry_icon}>" >> $ICONMAPPING |
342 | else |
343 | : echo "# mapping already exists for ${entry_exec}" >> $ICONMAPPING |
344 | fi |
345 | else |
346 | echo "# No icon file found for $entry_exec" >> $ICONMAPPING |
347 | fi |
348 | } |
349 | |
350 | toSingleLine(){ echo "$@"; } |
351 | createIconMapping(){ |
352 | # $dnlamVERBOSE "# creating `date`" >> $ICONMAPPING |
353 | # $dnlamVERBOSE "# using desktop files in $@" >> $ICONMAPPING |
354 | # $dnlamVERBOSE "# searching for icons in `eval toSingleLine $OTHER_ICONPATHS`" >> $ICONMAPPING |
355 | # need to determine when to use .fluxbox/icons/$execname.xpm over those listed in iconmapping |
356 | # $dnlamVERBOSE echo "createIconMapping: $@" |
357 | for DIR in "$@" ; do |
358 | if [ -d "$DIR" ]; then |
359 | # $dnlamVERBOSE echo "# ------- Looking in $DIR" >&2 |
360 | # >> $ICONMAPPING |
361 | find "$DIR" -type f -name "*.desktop" | while read DESKTOP_FILE; do |
362 | # echo $DESKTOP_FILE; |
363 | #entry_name=`grep '^[ ]*Name=' $DESKTOP_FILE | head -n 1` |
364 | #entry_name=${entry_name##*=} |
365 | entry_exec=`grep '^[ ]*Exec=' "$DESKTOP_FILE" | head -n 1` |
366 | entry_exec=${entry_exec##*=} |
367 | entry_exec=`replaceWithinString "$entry_exec" "\""` |
368 | if [ -z "$entry_exec" ]; then |
369 | entry_exec=${DESKTOP_FILE%%.desktop*} |
370 | fi |
371 | |
372 | entry_icon=`grep '^[ ]*Icon=' "$DESKTOP_FILE" | head -n 1` |
373 | entry_icon=${entry_icon##*=} |
374 | |
375 | # $dnlamVERBOSE echo "--- $entry_exec $entry_icon" >&2 |
376 | case "$entry_icon" in |
377 | "" | mime_empty | no_icon ) |
378 | : echo "no icon for $entry_exec" |
379 | ;; |
380 | *) |
381 | searchForIcon "$entry_exec" "$entry_icon" |
382 | ;; |
383 | esac |
384 | done |
385 | fi |
386 | done |
387 | # $dnlamVERBOSE "# done `date`" >> $ICONMAPPING |
388 | } |
389 | |
390 | lookupIcon() { |
391 | if [ ! -f "$ICONMAPPING" ]; then |
392 | echo "!!! Icon map file not found: $ICONMAPPING" >&2 |
393 | return 1 |
394 | fi |
395 | |
396 | execname="$1" |
397 | shift |
398 | [ -n "$1" ] && echo "!! Ignoring extra paramters: $*" >&2 |
399 | |
400 | [ -z "$execname" ] && { echo "execname is NULL; cannot lookup"; return 1; } |
401 | execname=`removePath "$execname"` |
402 | |
403 | #echo "grepping ${execname}" |
404 | iconString=`grep "^\"${execname}\"" $ICONMAPPING | head -n 1 | grep -o '<.*>'` |
405 | # $dnlamVERBOSE "lookupIcon $execname, $iconString" >&2 |
406 | |
407 | if [ -z "$iconString" ] ; then |
408 | iconString=`grep "^\"${execname%% *}" $ICONMAPPING | head -n 1 | grep -o '<.*>'` |
409 | fi |
410 | |
411 | if [ -z "$iconString" ] && [ -z "$PARSING_DESKTOP" ] ; then |
412 | ## $dnlamVERBOSE "lookupIcon: Searching ... should only be needed for icons not gotten from *.desktop (manual-created ones): $execname" >&2 |
413 | searchForIcon "$execname" "$execname" |
414 | [ -n "$entry_icon" ] && iconString="<$entry_icon>" |
415 | fi |
416 | |
417 | # [ -n "$iconString" ] && echo " Found icon for $execname: $iconString" >&2 |
418 | echo $iconString |
419 | } |
420 | |
421 | append() { |
422 | if [ -z "${INSTALL}" ]; then |
423 | # $dnlamVERBOSE echo "append: $*" >&2 |
424 | iconString="`echo $* | grep -o '<.*>'`" |
425 | # echo "iconString=$iconString" >&2 |
426 | if [ -z "$iconString" ] && [ -z "$NO_ICON" ]; then |
427 | echo -n " $* " >> ${MENUFILENAME} |
428 | # get the program name between '{}' from parameters |
429 | execname="$*" |
430 | execname=${execname#*\{} |
431 | execname=${execname%%\}*} |
432 | # $dnlamVERBOSE echo "execname=$execname" >&2 |
433 | # if execname hasn't changed from original $*, then no '{...}' was given |
434 | if [ ! "$execname" = "$*" ]; then |
435 | case "$execname" in |
436 | $DEFAULT_TERM*) |
437 | # remove quotes |
438 | execname=`replaceWithinString "$execname" "\""` |
439 | # remove "$DEFAULT_TERM -e " |
440 | # needed in case calling another program (e.g., vi) via "xterm -e" |
441 | execname=${execname##*$DEFAULT_TERM -e } |
442 | ;; |
443 | esac |
444 | # lookup execname in icon map file |
445 | iconString=`lookupIcon "$execname"` |
446 | #[ -n "$iconString" ] || echo "No icon found for $execname" |
447 | fi |
448 | echo "${iconString}" >> ${MENUFILENAME} |
449 | else |
450 | echo " $*" >> ${MENUFILENAME} |
451 | fi |
452 | else |
453 | echo " $*" >> ${MENUFILENAME} |
454 | fi |
455 | } |
456 | |
457 | append_menu() { |
458 | echo "$*" >> ${MENUFILENAME} |
459 | } |
460 | |
461 | append_submenu() { |
462 | [ "${REMOVE}" ] && echo >> ${MENUFILENAME} # only an empty line in templates |
463 | append_menu "[submenu] ($1)" |
464 | } |
465 | |
466 | append_menu_end() { |
467 | append_menu '[end]' |
468 | [ "${REMOVE}" ] && echo >> ${MENUFILENAME} # only an empty line in templates |
469 | } |
470 | |
471 | menu_entry() { |
472 | if [ -f "$1" ]; then |
473 | # space&tab here |
474 | entry_name=`grep '^[ ]*Name=' "$1" | head -n 1 | cut -d = -f 2` |
475 | entry_exec=`grep '^[ ]*Exec=' "$1" | head -n 1 | cut -d = -f 2` |
476 | if [ -n "$entry_name" -a -n "$entry_exec" ]; then |
477 | append "[exec] ($entry_name) {$entry_exec}" |
478 | fi |
479 | fi |
480 | } |
481 | |
482 | menu_entry_dir() { |
483 | for b in "$*"/*.desktop; do |
484 | menu_entry "${b}" |
485 | done |
486 | } |
487 | |
488 | menu_entry_dircheck() { |
489 | if [ -d "$*" ]; then |
490 | menu_entry_dir "$*" |
491 | fi |
492 | } |
493 | |
494 | |
495 | # recursively build a menu from the listed directories |
496 | # the dirs are merged |
497 | recurse_dir_menu () { |
498 | ls "$@"/ 2>/dev/null | sort | uniq | while read name; do |
499 | for dir in "$@"; do |
500 | if [ -n "$name" -a -d "$dir/$name" ]; then |
501 | # recurse |
502 | append_submenu "${name}" |
503 | # unfortunately, this is messy since we can't easily expand |
504 | # them all. Only allow for 3 atm. Add more if needed |
505 | recurse_dir_menu ${1:+"$1/$name"} ${2:+"$2/$name"} ${3:+"$3/$name"} |
506 | append_menu_end |
507 | break; # found one, it'll pick up all the rest |
508 | fi |
509 | # ignore it if it is a file, since menu_entry_dir picks those up |
510 | done |
511 | done |
512 | |
513 | # Make entries for current dir after all submenus |
514 | for dir in "$@"; do |
515 | menu_entry_dircheck "${dir}" |
516 | done |
517 | } |
518 | |
519 | |
520 | normal_find() { |
521 | while [ "$1" ]; do |
522 | find_it $1 append "[exec] ($1) {$1}" |
523 | shift |
524 | done |
525 | } |
526 | |
527 | cli_find() { |
528 | while [ "$1" ]; do |
529 | find_it $1 append "[exec] ($1) {${DEFAULT_TERM} -e $1}" |
530 | shift |
531 | done |
532 | } |
533 | |
534 | clean_up() { |
535 | [ -f "$ICONMAPPING" ] && rm -f "$ICONMAPPING" |
536 | |
537 | # Some magic to clean up empty menus |
538 | rm -f ${MENUFILENAME}.tmp |
539 | touch ${MENUFILENAME}.tmp |
540 | counter=10 # prevent looping in odd circumstances |
541 | until [ $counter -lt 1 ] || \ |
542 | cmp ${MENUFILENAME} ${MENUFILENAME}.tmp 2>&1 > /dev/null; do |
543 | [ -s ${MENUFILENAME}.tmp ] && mv ${MENUFILENAME}.tmp ${MENUFILENAME} |
544 | counter=`expr $counter - 1` |
545 | grep -v '^$' ${MENUFILENAME}|sed -e "/^\[submenu].*/{ |
546 | n |
547 | N |
548 | /^\[submenu].*\n\[end]/d |
549 | }"|sed -e "/^\[submenu].*/{ |
550 | N |
551 | /^\[submenu].*\n\[end]/d |
552 | }" > ${MENUFILENAME}.tmp |
553 | done |
554 | rm -f ${MENUFILENAME}.tmp |
555 | } |
556 | |
557 | # menu defaults (if translation forget to set one of them) |
558 | ABOUTITEM='About' |
559 | BACKGROUNDMENU='Backgrounds' |
560 | BACKGROUNDMENUTITLE='Set the Background' |
561 | BROWSERMENU='Browsers' |
562 | BURNINGMENU='Burning' |
563 | CONFIGUREMENU='Configure' |
564 | EDITORMENU='Editors' |
565 | EDUCATIONMENU='Education' |
566 | EXITITEM='Exit' |
567 | FBSETTINGSMENU='fluxbox menu' |
568 | FILEUTILSMENU='File utils' |
569 | FLUXBOXCOMMAND='Fluxbox Command' |
570 | GAMESMENU='Games' |
571 | GNOMEMENUTEXT='Gnome-menus' |
572 | GRAPHICMENU='Graphics' |
573 | KDEMENUTEXT='KDE-menus' |
574 | LOCKSCREEN='Lock screen' |
575 | MISCMENU='Misc' |
576 | MULTIMEDIAMENU='Multimedia' |
577 | MUSICMENU='Audio' |
578 | NETMENU='Net' |
579 | NEWS='News' |
580 | OFFICEMENU='Office' |
581 | RANDOMBACKGROUND='Random Background' |
582 | REGENERATEMENU='Regen Menu' |
583 | RELOADITEM='Reload config' |
584 | RESTARTITEM='Restart' |
585 | RUNCOMMAND='Run' |
586 | SCREENSHOT='Screenshot' |
587 | STYLEMENUTITLE='Choose a style...' |
588 | SYSTEMSTYLES='System Styles' |
589 | SYSTEMTOOLSMENU='System Tools' |
590 | TERMINALMENU='Terminals' |
591 | TOOLS='Tools' |
592 | USERSTYLES='User Styles' |
593 | VIDEOMENU='Video' |
594 | WINDOWMANAGERS='Window Managers' |
595 | WINDOWNAME='Window name' |
596 | WORKSPACEMENU='Workspace List' |
597 | XUTILSMENU='X-utils' |
598 | |
599 | # Check translation |
600 | case ${LC_ALL} in |
601 | ru_RU*) #Russian locales |
602 | |
603 | # Ah my Russian hero. Please help me update the translation |
604 | # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig |
605 | # $ $EDITOR fluxbox-generate-menu.in |
606 | # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff |
607 | # email fbgm.diff to han@mijncomputer.nl |
608 | |
609 | BACKGROUNDMENU='ïÂÏÉ' |
610 | BACKGROUNDMENUTITLE='õÓÔÁÎÏ×ÉÔØ ÏÂÏÉ' |
611 | BROWSERMENU='âÒÁÕÚÅÒÙ' |
612 | CONFIGUREMENU='îÁÓÔÒÏÊËÁ' |
613 | EDITORMENU='òÅÄÁËÔÏÒÙ' |
614 | EXITITEM='÷ÙÊÔÉ' |
615 | FBSETTINGSMENU='FB-ÎÁÓÔÒÏÊËÉ' |
616 | FILEUTILSMENU='æÁÊÌÏ×ÙÅ ÕÔÉÌÉÔÙ' |
617 | FLUXBOXCOMMAND='÷ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ' |
618 | GAMESMENU='éÇÒÙ' |
619 | GNOMEMENUTEXT='Gnome-ÍÅÎÀ' |
620 | GRAPHICMENU='çÒÁÆÉËÁ' |
621 | KDEMENUTEXT='KDE-ÍÅÎÀ' |
622 | LOCKSCREEN='úÁÂÌÏËÉÒÏ×ÁÔØ ÜËÒÁÎ' |
623 | MISCMENU='ðÒÏÞÅÅ' |
624 | MUSICMENU='ú×ÕË' |
625 | NETMENU='óÅÔØ' |
626 | OFFICEMENU='ïÆÉÓÎÙÅ ÐÒÉÌÏÖÅÎÉÑ' |
627 | RANDOMBACKGROUND='óÌÕÞÁÊÎÙÅ ÏÂÏÉ' |
628 | REGENERATEMENU='óÏÚÄÁÔØ ÍÅÎÀ ÚÁÎÏ×Ï' |
629 | RELOADITEM='ðÅÒÅÎÁÓÔÒÏÉÔØ' |
630 | RESTARTITEM='ðÅÒÅÚÁÐÕÓÔÉÔØ' |
631 | RUNCOMMAND='÷ÙÐÏÌÎÉÔØ' |
632 | SCREENSHOT='óÎÉÍÏË ÜËÒÁÎÁ' |
633 | STYLEMENUTITLE='÷ÙÂÅÒÉÔÅ ÓÔÉÌØ' |
634 | SYSTEMSTYLES='óÉÓÔÅÍÎÙÅ ÓÔÉÌÉ' |
635 | TERMINALMENU='ôÅÒÍÉÎÁÌÙ' |
636 | TOOLS='õÔÉÌÉÔÙ' |
637 | USERSTYLES='ðÏÌØÚÏ×ÁÔÅÌØÓËÉÅ ÓÔÉÌÉ' |
638 | WINDOWMANAGERS='íÅÎÅÄÖÅÒÙ ÏËÏÎ' |
639 | WINDOWNAME='éÍÑ ÏËÎÁ' |
640 | WORKSPACEMENU='òÁÂÏÞÉÅ ÐÒÏÓÔÒÁÎÓÔ×Á' |
641 | XUTILSMENU='X-ÕÔÉÌÉÔÙ' |
642 | ;; |
643 | |
644 | cs_CZ.ISO*) # Czech locales (ISO-8859-2 encodings) |
645 | ABOUTITEM='O programu...' |
646 | BACKGROUNDMENU='Pozadí' |
647 | BACKGROUNDMENUTITLE='Nastavení pozadí' |
648 | BROWSERMENU='Prohlí¾eèe' |
649 | BURNINGMENU='Vypalování' |
650 | CONFIGUREMENU='Konfigurace' |
651 | EDITORMENU='Editory' |
652 | EXITITEM='Ukonèit' |
653 | FBSETTINGSMENU='Fluxbox Menu' |
654 | FILEUTILSMENU='Souborové utility' |
655 | FLUXBOXCOMMAND='Pøíkaz Fluxboxu' |
656 | GAMESMENU='Hry' |
657 | GNOMEMENUTEXT='Gnome-menu' |
658 | GRAPHICMENU='Grafika' |
659 | KDEMENUTEXT='KDE-menu' |
660 | LOCKSCREEN='Zamknout obrazovku' |
661 | MISCMENU='Rùzné' |
662 | MULTIMEDIAMENU='Multimédia' |
663 | MUSICMENU='Audio' |
664 | NETMENU='Internet' |
665 | NEWS='News' |
666 | OFFICEMENU='Kanceláø' |
667 | RANDOMBACKGROUND='Náhodné pozadí' |
668 | REGENERATEMENU='Obnovení menu' |
669 | RELOADITEM='Obnovení konfigurace' |
670 | RESTARTITEM='Restart' |
671 | RUNCOMMAND='Spustit program...' |
672 | SCREENSHOT='Screenshot' |
673 | STYLEMENUTITLE='Volba stylu...' |
674 | SYSTEMTOOLSMENU='Systémové utility' |
675 | SYSTEMSTYLES='Systémové styly' |
676 | TERMINALMENU='Terminály' |
677 | TOOLS='Nástroje' |
678 | USERSTYLES='U¾ivatelské styly' |
679 | VIDEOMENU='Video' |
680 | WINDOWMANAGERS='Okenní mana¾ery' |
681 | WINDOWNAME='Jméno okna' |
682 | WORKSPACEMENU='Seznam ploch' |
683 | XUTILSMENU='X-utility' |
684 | ;; |
685 | |
686 | de_DE*) # german locales |
687 | BACKGROUNDMENU='Hintergrundbilder' |
688 | BACKGROUNDMENUTITLE='Hintergrundbild setzen' |
689 | BROWSERMENU='Internet-Browser' |
690 | CONFIGUREMENU='Einstellungen' |
691 | EDITORMENU='Editoren' |
692 | EXITITEM='Beenden' |
693 | FBSETTINGSMENU='Fluxbox-Einstellungen' |
694 | FILEUTILSMENU='Datei-Utilities' |
695 | FLUXBOXCOMMAND='Fluxbox Befehl' |
696 | GAMESMENU='Spiele' |
697 | GNOMEMENUTEXT='Gnome-Menues' |
698 | GRAPHICMENU='Grafik' |
699 | KDEMENUTEXT='Kde-Menues' |
700 | LOCKSCREEN='Bildschirmsperre' |
701 | MISCMENU='Sonstiges' |
702 | MUSICMENU='Musik' |
703 | NETMENU='Netzwerk' |
704 | OFFICEMENU='Bueroprogramme' |
705 | RANDOMBACKGROUND='Zufaelliger Hintergrund' |
706 | REGENERATEMENU='Menu-Regeneration' |
707 | RELOADITEM='Konfiguration neu laden' |
708 | RESTARTITEM='Neustarten' |
709 | RUNCOMMAND='Ausführen' |
710 | SCREENSHOT='Bildschirmfoto' |
711 | STYLEMENUTITLE='Einen Stil auswaehlen...' |
712 | SYSTEMSTYLES='Systemweite Stile' |
713 | TERMINALMENU='Terminals' |
714 | TOOLS='Helfer' |
715 | USERSTYLES='Eigene Stile' |
716 | WINDOWMANAGERS='Window Manager' |
717 | WINDOWNAME='Window Name' |
718 | WORKSPACEMENU='Arbeitsflaechenliste' |
719 | XUTILSMENU='X-Anwendungen' |
720 | ;; |
721 | sv_SE*) #Swedish locales |
722 | # Ah my Swedish hero. Please help me update the translation |
723 | # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig |
724 | # $ $EDITOR fluxbox-generate-menu.in |
725 | # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff |
726 | # email fbgm.diff to han@mijncomputer.nl |
727 | |
728 | BACKGROUNDMENU='Bakgrunder' |
729 | BACKGROUNDMENUTITLE='Sätt bakgrund' |
730 | BROWSERMENU='Webbläsare' |
731 | CONFIGUREMENU='Konfiguration' |
732 | EDITORMENU='Editorer' |
733 | EXITITEM='Avsluta' |
734 | FBSETTINGSMENU='FB-inställningar' |
735 | FILEUTILSMENU='Filverktyg' |
736 | FLUXBOXCOMMAND='Fluxbox kommando' |
737 | GAMESMENU='Spel' |
738 | GNOMEMENUTEXT='Gnome-menyer' |
739 | GRAPHICMENU='Grafik' |
740 | KDEMENUTEXT='KDE-menyer' |
741 | LOCKSCREEN='Lås skärm' |
742 | MISCMENU='Blandat' |
743 | MULTIMEDIAMENU='Multimedia' |
744 | MUSICMENU='Musik' |
745 | NETMENU='Internet' |
746 | OFFICEMENU='Office' |
747 | RANDOMBACKGROUND='Slumpmässig bakgrund' |
748 | REGENERATEMENU='Generera meny' |
749 | RELOADITEM='Ladda om konfig' |
750 | RESTARTITEM='Starta om' |
751 | RUNCOMMAND='Kör' |
752 | SCREENSHOT='Skärmdump' |
753 | STYLEMENUTITLE='Välj en stil' |
754 | SYSTEMSTYLES='Stiler' |
755 | TERMINALMENU='Terminaler' |
756 | TOOLS='Verktyg' |
757 | USERSTYLES='Stiler' |
758 | VIDEOMENU='Video' |
759 | WINDOWMANAGERS='Fönsterhanterare' |
760 | WINDOWNAME='Fönsternamn' |
761 | WORKSPACEMENU='Arbetsytor' |
762 | XUTILSMENU='X-program' |
763 | ;; |
764 | nl_*) #Nederlandse locales |
765 | BACKGROUNDMENU='Achtergrond' |
766 | BACKGROUNDMENUTITLE='Kies een achtergrond' |
767 | BROWSERMENU='Browsers' |
768 | CONFIGUREMENU='Instellingen' |
769 | EDITORMENU='Editors' |
770 | EXITITEM='Afsluiten' |
771 | FBSETTINGSMENU='FB-Instellingen' |
772 | FILEUTILSMENU='Verkenners' |
773 | FLUXBOXCOMMAND='Fluxbox Commando' |
774 | GAMESMENU='Spelletjes' |
775 | GNOMEMENUTEXT='Gnome-menu' |
776 | GRAPHICMENU='Grafisch' |
777 | KDEMENUTEXT='KDE-menu' |
778 | LOCKSCREEN='Scherm op slot' |
779 | MISCMENU='Onregelmatig' |
780 | MUSICMENU='Muziek' |
781 | NETMENU='Internet' |
782 | OFFICEMENU='Office' |
783 | RANDOMBACKGROUND='Willekeurige Achtergrond' |
784 | REGENERATEMENU='Nieuw Menu' |
785 | RELOADITEM='Vernieuw instellingen' |
786 | RESTARTITEM='Herstart' |
787 | RUNCOMMAND='Voer uit' |
788 | SCREENSHOT='Schermafdruk' |
789 | STYLEMENUTITLE='Kies een stijl' |
790 | SYSTEMSTYLES='Systeem Stijlen' |
791 | TERMINALMENU='Terminals' |
792 | TOOLS='Gereedschap' |
793 | USERSTYLES='Gebruikers Stijlen' |
794 | WINDOWMANAGERS='Venster Managers' |
795 | WINDOWNAME='Venster Naam' |
796 | WORKSPACEMENU='Werkveld menu' |
797 | XUTILSMENU='X-Gereedschap' |
798 | ;; |
799 | fi_FI*) #Finnish locales |
800 | BACKGROUNDMENU='Taustakuvat' |
801 | BACKGROUNDMENUTITLE='Määritä taustakuva' |
802 | BROWSERMENU='Selaimet' |
803 | CONFIGUREMENU='Asetukset' |
804 | EDITORMENU='Editorit' |
805 | EXITITEM='Lopeta' |
806 | FBSETTINGSMENU='Fluxboxin säädöt' |
807 | FILEUTILSMENU='Tiedostotyökalut' |
808 | FLUXBOXCOMMAND='Komentorivi' |
809 | GAMESMENU='Pelit' |
810 | GNOMEMENUTEXT='Gnomen valikot' |
811 | GRAPHICMENU='Grafiikka' |
812 | KDEMENUTEXT='KDE:n valikot' |
813 | LOCKSCREEN='Lukitse työpöytä' |
814 | MISCMENU='Sekalaista' |
815 | MUSICMENU='Musiikki' |
816 | NETMENU='Verkko' |
817 | OFFICEMENU='Toimistotyökalut' |
818 | RANDOMBACKGROUND='Satunnainen taustakuva' |
819 | REGENERATEMENU='Päivitä valikko' |
820 | RELOADITEM='Päivitä' |
821 | RESTARTITEM='Käynnistä uudelleen' |
822 | RUNCOMMAND='Suorita' |
823 | SCREENSHOT='Kuvakaappaus' |
824 | STYLEMENUTITLE='Valitse tyyli' |
825 | SYSTEMSTYLES='Järjestelmän tyylit' |
826 | TERMINALMENU='Terminaalit' |
827 | TOOLS='Työkalut' |
828 | USERSTYLES='Käyttäjän tyylit' |
829 | WINDOWMANAGERS='Ikkunanhallintaohjelmat' |
830 | WINDOWNAME='Ikkunan nimi' |
831 | WORKSPACEMENU='Työalueet' |
832 | XUTILSMENU='X-Ohjelmat' |
833 | ;; |
834 | ja_JP*) #Japanese locales |
835 | # Ah my Japanese hero. Please help me update the translation |
836 | # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig |
837 | # $ $EDITOR fluxbox-generate-menu.in |
838 | # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff |
839 | # email fbgm.diff to han@mijncomputer.nl |
840 | |
841 | BACKGROUNDMENU='ÇØ·Ê' |
842 | BACKGROUNDMENUTITLE='ÇطʤÎÀßÄê' |
843 | BROWSERMENU='¥Ö¥é¥¦¥¶' |
844 | CONFIGUREMENU='ÀßÄê' |
845 | EDITORMENU='¥¨¥Ç¥£¥¿' |
846 | EXITITEM='½ªÎ»' |
847 | FBSETTINGSMENU='Fluxbox¤ÎÀßÄê' |
848 | FILEUTILSMENU='¥Õ¥¡¥¤¥ëÁàºî' |
849 | FLUXBOXCOMMAND='Fluxbox¥³¥Þ¥ó¥É' |
850 | GAMESMENU='¥²¡¼¥à' |
851 | GNOMEMENUTEXT='Gnome¥á¥Ë¥å¡¼' |
852 | GRAPHICMENU='²èÁü' |
853 | KDEMENUTEXT='KDE¥á¥Ë¥å¡¼' |
854 | LOCKSCREEN='¥¹¥¯¥ê¡¼¥ó¥í¥Ã¥¯' |
855 | MISCMENU='¤¤¤í¤¤¤í' |
856 | MUSICMENU='²»³Ú' |
857 | NETMENU='¥Í¥Ã¥È¥ï¡¼¥¯' |
858 | OFFICEMENU='¥ª¥Õ¥£¥¹(Office)' |
859 | RANDOMBACKGROUND='ÇØ·Ê(¥é¥ó¥À¥à)' |
860 | REGENERATEMENU='¥á¥Ë¥å¡¼ºÆ¹½À®' |
861 | RELOADITEM='ºÆÆɤ߹þ¤ß' |
862 | RESTARTITEM='ºÆµ¯Æ°' |
863 | RUNCOMMAND='¥³¥Þ¥ó¥É¤Î¼Â¹Ô' |
864 | SCREENSHOT='¥¹¥¯¥ê¡¼¥ó¥·¥ç¥Ã¥È' |
865 | STYLEMENUTITLE='¥¹¥¿¥¤¥ëÁªÂò...' |
866 | SYSTEMSTYLES='¥¹¥¿¥¤¥ë' |
867 | TERMINALMENU='¥¿¡¼¥ß¥Ê¥ë' |
868 | TOOLS='¥Ä¡¼¥ë' |
869 | USERSTYLES='¥¹¥¿¥¤¥ë' |
870 | WINDOWMANAGERS='¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã' |
871 | WINDOWNAME='¥¦¥£¥ó¥É¥¦Ì¾' |
872 | WORKSPACEMENU='¥ï¡¼¥¯¥¹¥Ú¡¼¥¹' |
873 | XUTILSMENU='X¥æ¡¼¥Æ¥£¥ê¥Æ¥£' |
874 | ;; |
875 | fr_FR*) # french locales |
876 | # Ah my french hero. Please help me update the translation |
877 | # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig |
878 | # $ $EDITOR fluxbox-generate-menu.in |
879 | # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff |
880 | # email fbgm.diff to han@mijncomputer.nl |
881 | |
882 | BACKGROUNDMENU="Fond d'écran" |
883 | BACKGROUNDMENUTITLE="Changer le fond d'écran" |
884 | BROWSERMENU='Navigateurs' |
885 | CONFIGUREMENU='Configurer' |
886 | EDITORMENU='Editeurs' |
887 | EXITITEM='Sortir' |
888 | FBSETTINGSMENU='Configurer Fluxbox' |
889 | FILEUTILSMENU='Outils fichiers' |
890 | FLUXBOXCOMMAND='Commande Fluxbox' |
891 | GAMESMENU='Jeux' |
892 | GNOMEMENUTEXT='Menus Gnome' |
893 | GRAPHICMENU='Graphisme' |
894 | KDEMENUTEXT='Menus KDE' |
895 | LOCKSCREEN="Verouiller l'écran" |
896 | MISCMENU='Divers' |
897 | MUSICMENU='Musique' |
898 | NETMENU='Réseau' |
899 | OFFICEMENU='Bureautique' |
900 | RANDOMBACKGROUND="Fond d'écran aléatoire" |
901 | REGENERATEMENU='Régénérer le menu' |
902 | RELOADITEM='Recharger la configuration' |
903 | RESTARTITEM='Redémarrer Fluxbox' |
904 | RUNCOMMAND='Run' |
905 | SCREENSHOT="Capture d'écran" |
906 | STYLEMENUTITLE='Choisir un style...' |
907 | SYSTEMSTYLES='Styles Systeme' |
908 | TERMINALMENU='Terminaux' |
909 | TOOLS='Outils' |
910 | USERSTYLES='Styles Utilisateur' |
911 | WINDOWMANAGERS='Gestionnaires de fenêtres' |
912 | WINDOWNAME='Nom de la fenetre' |
913 | WORKSPACEMENU='Liste des bureaux' |
914 | XUTILSMENU='Outils X' |
915 | ;; |
916 | it_IT*) # italian locales |
917 | BACKGROUNDMENU='Sfondi' |
918 | BACKGROUNDMENUTITLE='Imposta lo sfondo' |
919 | BROWSERMENU='Browsers' |
920 | CONFIGUREMENU='Configurazione' |
921 | EDITORMENU='Editori' |
922 | EXITITEM='Esci' |
923 | FBSETTINGSMENU='Preferenze' |
924 | FILEUTILSMENU='Utilità' |
925 | FLUXBOXCOMMAND='Comando Fluxbox' |
926 | GAMESMENU='Giochi' |
927 | GNOMEMENUTEXT='Gnome' |
928 | GRAPHICMENU='Grafica' |
929 | KDEMENUTEXT='KDE' |
930 | LOCKSCREEN='Blocca lo schermo' |
931 | MISCMENU='Varie' |
932 | MUSICMENU='Musica' |
933 | NETMENU='Internet' |
934 | OFFICEMENU='Office' |
935 | RANDOMBACKGROUND='Sfondo casuale' |
936 | REGENERATEMENU='Rigenera il menu' |
937 | RELOADITEM='Rileggi la configurazione' |
938 | RESTARTITEM='Riavvia' |
939 | RUNCOMMAND='Esegui' |
940 | SCREENSHOT='Schermata' |
941 | STYLEMENUTITLE='Scegli uno stile' |
942 | SYSTEMSTYLES='Stile' |
943 | TERMINALMENU='Terminali' |
944 | TOOLS='Attrezzi' |
945 | USERSTYLES='Stile' |
946 | WINDOWMANAGERS='Gestori finestre' |
947 | WINDOWNAME='Nome della finestra' |
948 | WORKSPACEMENU='Aree di lavoro' |
949 | XUTILSMENU='Utilità X' |
950 | ;; |
951 | ro_RO*) # Romanian locales |
952 | # Ah my Romanian hero. Please help me update the translation |
953 | # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig |
954 | # $ $EDITOR fluxbox-generate-menu.in |
955 | # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff |
956 | # email fbgm.diff to han@mijncomputer.nl |
957 | |
958 | BACKGROUNDMENU='Fundaluri' |
959 | BACKGROUNDMENUTITLE='Alege fundalul' |
960 | BROWSERMENU='Navigatoare' |
961 | CONFIGUREMENU='Configurare' |
962 | EDITORMENU='Editoare' |
963 | EXITITEM='Iesire' |
964 | FBSETTINGSMENU='Meniul Fluxbox' |
965 | FILEUTILSMENU='Utilitare de fisier' |
966 | FLUXBOXCOMMAND='Comanda Fluxbox' |
967 | GAMESMENU='Jocuri' |
968 | GNOMEMENUTEXT='Meniu Gnome' |
969 | GRAPHICMENU='Grafica' |
970 | KDEMENUTEXT='Meniu KDE' |
971 | LOCKSCREEN='Incuie ecranul' |
972 | MISCMENU='Diverse' |
973 | MULTIMEDIAMENU='Multimedia' |
974 | MUSICMENU='Muzica' |
975 | NETMENU='Retea' |
976 | OFFICEMENU='Office' |
977 | RANDOMBACKGROUND='Fundal aleator' |
978 | REGENERATEMENU='Regenereaza meniul' |
979 | RELOADITEM='Reincarca configuratia' |
980 | RESTARTITEM='Restart' |
981 | RUNCOMMAND='Lanseaza' |
982 | SCREENSHOT='Captura ecran' |
983 | STYLEMENUTITLE='Alege un stil...' |
984 | SYSTEMSTYLES='Stiluri sistem' |
985 | TERMINALMENU='Terminale' |
986 | TOOLS='Unelte' |
987 | USERSTYLES='Stiluri utilizator' |
988 | WINDOWMANAGERS='WindowManagers' |
989 | WINDOWNAME='Nume fereastra' |
990 | WORKSPACEMENU='Lista workspace-uri' |
991 | XUTILSMENU='Utilitare X' |
992 | ;; |
993 | es_ES*) # spanish locales |
994 | |
995 | ABOUTITEM='Acerca' |
996 | BACKGROUNDMENU='Fondos' |
997 | BACKGROUNDMENUTITLE='Seleccionar Fondo' |
998 | BROWSERMENU='Navegadores' |
999 | BURNINGMENU='Herramientas de grabación' |
1000 | CONFIGUREMENU='Configurar' |
1001 | EDITORMENU='Editores' |
1002 | EDUCATIONMENU='Educación' |
1003 | EXITITEM='Salir' |
1004 | FBSETTINGSMENU='Menú fluxbox' |
1005 | FILEUTILSMENU='Utilidades' |
1006 | FLUXBOXCOMMAND='Comandos de Fluxbox' |
1007 | GAMESMENU='Juegos' |
1008 | GNOMEMENUTEXT='Menús Gnome' |
1009 | GRAPHICMENU='Gráficos' |
1010 | KDEMENUTEXT='Menús KDE' |
1011 | LOCKSCREEN='Bloquear Pantalla' |
1012 | MISCMENU='Varios' |
1013 | MULTIMEDIAMENU='Multimedia' |
1014 | MUSICMENU='Música' |
1015 | NETMENU='Red' |
1016 | NEWS='Noticias' |
1017 | OFFICEMENU='Oficina' |
1018 | RANDOMBACKGROUND='Fondo Aleatoreo' |
1019 | REGENERATEMENU='Regenerar Menú' |
1020 | RELOADITEM='Reconfigurar' |
1021 | RESTARTITEM='Reiniciar' |
1022 | RUNCOMMAND='Ejecutar' |
1023 | SCREENSHOT='Captura de Pantalla' |
1024 | STYLEMENUTITLE='Escoge un Estilo...' |
1025 | SYSTEMSTYLES='Estilos del Sistema' |
1026 | TERMINALMENU='Terminales' |
1027 | TOOLS='Herramienta' |
1028 | USERSTYLES='Estilos del Usuario' |
1029 | VIDEOMENU='Video' |
1030 | WINDOWMANAGERS='Gestores de Ventanas' |
1031 | WINDOWNAME='Nombre de Ventana' |
1032 | WORKSPACEMENU='Lista de Escritorios' |
1033 | XUTILSMENU='Utilidades X' |
1034 | ;; |
1035 | pl_PL*) # Polish locales |
1036 | # Ah my Russian hero. Please help me update the translation |
1037 | # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig |
1038 | # $ $EDITOR fluxbox-generate-menu.in |
1039 | # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff |
1040 | # email fbgm.diff to han@mijncomputer.nl |
1041 | |
1042 | BACKGROUNDMENU='Tapety' |
1043 | BACKGROUNDMENUTITLE='Ustaw tapetê' |
1044 | BROWSERMENU='Przegl±darki' |
1045 | CONFIGUREMENU='Konfiguracja' |
1046 | EDITORMENU='Edytory' |
1047 | EXITITEM='Wyj¶cie' |
1048 | FBSETTINGSMENU='Menu Fluxbox' |
1049 | FILEUTILSMENU='Narzêdzia do plików' |
1050 | FLUXBOXCOMMAND='Polecenia Fluxbox' |
1051 | GAMESMENU='Gry' |
1052 | GNOMEMENUTEXT='Menu Gnome' |
1053 | GRAPHICMENU='Grafika' |
1054 | KDEMENUTEXT='Menu KDE' |
1055 | LOCKSCREEN='Zablokuj ekran' |
1056 | MISCMENU='Ró¿ne' |
1057 | MULTIMEDIAMENU='Multimedia' |
1058 | MUSICMENU='Muzyka' |
1059 | NETMENU='Sieæ' |
1060 | OFFICEMENU='Aplikacje biurowe' |
1061 | RANDOMBACKGROUND='Losowa tapeta' |
1062 | REGENERATEMENU='Wygeneruj menu' |
1063 | RELOADITEM='Od¶wie¿ konfiguracjê' |
1064 | RESTARTITEM='Restartuj' |
1065 | RUNCOMMAND='Uruchom...' |
1066 | SCREENSHOT='Zrzut ekranu' |
1067 | STYLEMENUTITLE='Wybierz styl...' |
1068 | SYSTEMSTYLES='Style systemowe' |
1069 | TERMINALMENU='Terminale' |
1070 | TOOLS='Narzêdzia' |
1071 | USERSTYLES='Style u¿ytkownika' |
1072 | WINDOWMANAGERS='Menad¿ery okien' |
1073 | WINDOWNAME='Nazwy okien' |
1074 | WORKSPACEMENU='Lista pulpitów' |
1075 | XUTILSMENU='Narzêdzia X' |
1076 | ;; |
1077 | pt_PT*) # Portuguese locales |
1078 | ABOUTMENU="Sobre" |
1079 | BACKGROUNDMENU='Imagens de Fundo' |
1080 | BACKGROUNDMENUTITLE='Definir Imagem de Fundo' |
1081 | BROWSERMENU='Browsers' |
1082 | BURNINGMENU='Ferramentas de Gravação' |
1083 | CONFIGUREMENU='Configuração' |
1084 | EDITORMENU='Editores' |
1085 | EDUCATIONMENU='Educação' |
1086 | EXITITEM='Sair' |
1087 | FBSETTINGSMENU='Menu Fluxbox' |
1088 | FILEUTILSMENU='Utilitários de Ficheiros' |
1089 | FLUXBOXCOMMAND='Comando Fluxbox' |
1090 | GAMESMENU='Jogos' |
1091 | GNOMEMENUTEXT='Menu Gnome' |
1092 | GRAPHICMENU='Gráficos' |
1093 | KDEMENUTEXT='Menu KDE' |
1094 | LOCKSCREEN='Trancar Ecrã' |
1095 | MISCMENU='Misc.' |
1096 | MULTIMEDIAMENU='Multimédia' |
1097 | MUSICMENU='Áudio' |
1098 | NETMENU='Rede' |
1099 | NEWS='Notícias' |
1100 | OFFICEMENU='Escritório' |
1101 | RANDOMBACKGROUND='Imagem Aleatória' |
1102 | REGENERATEMENU='Regenerar Menu' |
1103 | RELOADITEM='Recarregar configuração' |
1104 | RESTARTITEM='Reiniciar' |
1105 | RUNCOMMAND='Executar' |
1106 | SCREENSHOT='Capturar Ecrã' |
1107 | STYLEMENUTITLE='Escolha um estilo...' |
1108 | SYSTEMSTYLES='Estilos do Sistema' |
1109 | SYSTEMTOOLSMENU='Ferramentas de Sistema' |
1110 | TERMINALMENU='Terminais' |
1111 | TOOLS='Ferramentas' |
1112 | USERSTYLES='Estilos do Utilizador' |
1113 | VIDEOMENU='Vídeo' |
1114 | WINDOWMANAGERS='Gestores de Janelas' |
1115 | WINDOWNAME='Nome da Janela' |
1116 | WORKSPACEMENU='Lista de Áreas de Trabalho' |
1117 | XUTILSMENU='Utilitários X' |
1118 | ;; |
1119 | nb_NO*) # Norwegian locales |
1120 | ABOUTITEM='Om' |
1121 | BACKGROUNDMENU='Bakgrunner' |
1122 | BACKGROUNDMENUTITLE='Velg bakgrunn' |
1123 | BROWSERMENU='Nettlesere' |
1124 | CONFIGUREMENU='Oppsett' |
1125 | EDITORMENU='Tekstredigeringsprogram' |
1126 | EDUCATIONMENU='Lek og lær' |
1127 | EXITITEM='Avslutt' |
1128 | FBSETTINGSMENU='FluxBox-meny' |
1129 | FILEUTILSMENU='Filverktøy' |
1130 | FLUXBOXCOMMAND='FluxBox-kommando' |
1131 | GAMESMENU='Spill' |
1132 | GNOMEMENUTEXT='Gnome-menyer' |
1133 | GRAPHICMENU='Grafikk' |
1134 | KDEMENUTEXT='KDE-menyer' |
1135 | LOCKSCREEN='LÃ¥s skjermen' |
1136 | MISCMENU='Diverse' |
1137 | MULTIMEDIAMENU='Multimedia' |
1138 | MUSICMENU='Lyd' |
1139 | NETMENU='Nett' |
1140 | NEWS='Nyheter' |
1141 | OFFICEMENU='Kontor' |
1142 | RANDOMBACKGROUND='Tilfeldig bakgrunn' |
1143 | REGENERATEMENU='Regen Menu' |
1144 | RELOADITEM='Last oppsett på nytt' |
1145 | RESTARTITEM='Start på nytt' |
1146 | RUNCOMMAND='Kjør' |
1147 | SCREENSHOT='Ta bilde' |
1148 | STYLEMENUTITLE='Velg en stil . . .' |
1149 | SYSTEMSTYLES='System-stiler' |
1150 | TERMINALMENU='Terminaler' |
1151 | TOOLS='Verktøy' |
1152 | USERSTYLES='Bruker-stiler' |
1153 | VIDEOMENU='Video' |
1154 | WINDOWMANAGERS='Vindusbehandlere' |
1155 | WINDOWNAME='Vindunavn' |
1156 | WORKSPACEMENU='Liste over arbeidsområder' |
1157 | XUTILSMENU='X-verktøy' |
1158 | ;; |
1159 | *) |
1160 | ;; |
1161 | esac |
1162 | |
1163 | # Set Defaults |
1164 | MENUFILENAME="${MENUFILENAME:=${HOME}/.fluxbox/menu}" |
1165 | MENUTITLE="${MENUTITLE:=Fluxbox}" |
1166 | HOMEPAGE="${HOMEPAGE:=fluxbox.org}" |
1167 | USERMENU="${USERMENU:=${HOME}/.fluxbox/usermenu}" |
1168 | |
1169 | # Read the menuconfig file if it exists or else create it. |
1170 | # But not during install time, use envvar for sun |
1171 | if [ ! "${INSTALL}" = Yes ]; then |
1172 | if [ -r ${HOME}/.fluxbox/menuconfig ]; then |
1173 | . ${HOME}/.fluxbox/menuconfig |
1174 | else |
1175 | if [ ! "$WHOAMI" = root ]; then # this is only for users. |
1176 | if touch ${HOME}/.fluxbox/menuconfig; then |
1177 | cat << EOF > ${HOME}/.fluxbox/menuconfig |
1178 | # This file is read by fluxbox-generate_menu. If you don't like a |
1179 | # default you can change it here. Don't forget to remove the # in front |
1180 | # of the line. |
1181 | |
1182 | # Your favourite terminal. Put the command in quotes if you want to use |
1183 | # options. Put a backslash in before odd chars |
1184 | # MY_TERM='Eterm --tint \#123456' |
1185 | # MY_TERM='aterm -tint \$(random_color)' |
1186 | |
1187 | # Your favourite browser. You can also specify options. |
1188 | # MY_BROWSER=mozilla |
1189 | |
1190 | # Name of the outputfile |
1191 | # MENUFILENAME=${HOME}/.fluxbox/menu |
1192 | |
1193 | # MENUTITLE=\`fluxbox -version|cut -d " " -f-2\` |
1194 | |
1195 | # standard url for console-browsers |
1196 | # HOMEPAGE=fluxbox.org |
1197 | |
1198 | # location with your own menu-entries |
1199 | # USERMENU=~/.fluxbox/usermenu |
1200 | |
1201 | # Put the launcher you would like to use here |
1202 | # LAUNCHER=fbrun |
1203 | # LAUNCHER=fbgm |
1204 | |
1205 | # Options for fbrun |
1206 | # FBRUNOPTIONS='-font 10x20 -fg grey -bg black -title run' |
1207 | |
1208 | # --- PREFIX'es |
1209 | # These are prefixes; So if fluxbox is installed in /usr/bin/fluxbox |
1210 | # your prefix is: /usr |
1211 | |
1212 | # fluxbox-generate already looks in /usr/X11R6, /usr, /usr/local and /opt so |
1213 | # there should be no need to specify them. |
1214 | # |
1215 | # PREFIX=/usr |
1216 | # GNOME_PREFIX=/opt/gnome |
1217 | # KDE_PREFIX=/opt/kde |
1218 | |
1219 | |
1220 | # Sepparate the list of background-dirs with semicolumns ':' |
1221 | # BACKGROUND_DIRS="${HOME}/.fluxbox/backgrounds/:/usr/share/fluxbox/backgrounds/:/usr/share/wallpapers" |
1222 | |
1223 | |
1224 | # --- Boolean variables. |
1225 | # Setting a variable to ``no'' won't help. Comment them out if you don't |
1226 | # want them. Setting are overruled by the command-line options. |
1227 | |
1228 | # Include all backgrounds in your backgrounds-directory |
1229 | # BACKGROUNDMENUITEM=yes |
1230 | |
1231 | # Include kde-menus |
1232 | # KDEMENU=yes |
1233 | |
1234 | # Include gnome-menus |
1235 | # GNOMEMENU=yes |
1236 | |
1237 | # Don't cleanup the menu |
1238 | # REMOVE=no |
1239 | |
1240 | EOF |
1241 | else |
1242 | echo "Warning: I couldn't create ${HOME}/.fluxbox/menuconfig" >&2 |
1243 | fi |
1244 | fi |
1245 | fi |
1246 | fi |
1247 | |
1248 | testoption() { |
1249 | if [ -z "$3" -o -n "`echo $3|grep '^-'`" ]; then |
1250 | echo "Error: The option $2 requires an argument." >&2 |
1251 | exit 1 |
1252 | fi |
1253 | case $1 in |
1254 | ex) # executable |
1255 | if find_it "$3"; then |
1256 | : |
1257 | else |
1258 | echo "Error: The option $2 needs an executable as argument, and \`$3' is not." >&2 |
1259 | fi |
1260 | ;; |
1261 | di) # directory |
1262 | if [ -d "$3" ]; then |
1263 | : |
1264 | else |
1265 | echo "Error: The option $2 needs a directory as argument, and \`$3' is not." >&2 |
1266 | fi |
1267 | ;; |
1268 | fl) # file |
1269 | if [ -r "$3" ]; then |
1270 | : |
1271 | else |
1272 | echo "Error: The option $2 needs a readable file as argument, and \`$3' is not." >&2 |
1273 | fi |
1274 | ;; |
1275 | sk) # skip |
1276 | : |
1277 | ;; |
1278 | esac |
1279 | } |
1280 | |
1281 | # Get options. |
1282 | while [ $# -gt 0 ]; do |
1283 | case "$1" in |
1284 | -B) BACKGROUNDMENUITEM=yes; shift;; |
1285 | -k) KDEMENU=yes; shift;; |
1286 | -g) GNOMEMENU=yes; shift;; |
1287 | -in) NO_ICON=yes; shift;; |
1288 | -is) OTHER_ICONPATHS=" |
1289 | /usr/share/icons, |
1290 | /usr/share/icons/mini, |
1291 | /usr/share/pixmaps, |
1292 | /usr/local/share/icons, |
1293 | /usr/local/share/icons/mini, |
1294 | /usr/local/share/pixmaps, |
1295 | /usr/share/xclass/icons, |
1296 | /usr/share/xclass/pixmaps, |
1297 | /usr/local/share/xclass/icons, |
1298 | /usr/local/share/xclass/pixmaps, |
1299 | /usr/X11R6/share/icons/default/16x16, |
1300 | /usr/X11R6/share/icons/kde/16x16, |
1301 | /usr/X11R6/share/icons/hicolor/16x16, |
1302 | /usr/local/X11R6/share/icons/default/16x16, |
1303 | /usr/local/X11R6/share/icons/kde/16x16, |
1304 | /usr/local/X11R6/share/icons/hicolor/16x16, |
1305 | " |
1306 | shift;; |
1307 | -ds) OTHER_DESKTOP_PATHS=" |
1308 | /usr/share/mimelnk |
1309 | /usr/share/applications |
1310 | /usr/share/xsessions |
1311 | /usr/share/services |
1312 | " |
1313 | # /usr/share/apps \ |
1314 | shift;; |
1315 | -i) USER_ICONPATHS=${2}; |
1316 | #needs testing |
1317 | for aPath in $2; do |
1318 | testoption di $1 $aPath; |
1319 | done |
1320 | shift 2;; |
1321 | -d) USER_DESKTOP_PATHS=${2}; |
1322 | #needs testing |
1323 | for aPath in $2; do |
1324 | testoption di $1 $aPath; |
1325 | done |
1326 | shift 2;; |
1327 | -t) MY_TERM=${2}; testoption ex $1 $2; shift 2;; |
1328 | -b) MY_BROWSER=${2}; testoption ex $1 $2; shift 2;; |
1329 | -o) MENUFILENAME=${2}; shift 2; CHECKINIT=NO ;; |
1330 | -p) PREFIX=${2}; testoption di $1 $2; shift 2;; |
1331 | -n) GNOME_PREFIX=${2}; testoption di $1 $2; shift 2;; |
1332 | -q) KDE_PREFIX=${2}; testoption di $1 $2; shift 2;; |
1333 | -m) MENUTITLE=${2}; testoption sk $1 $2; shift 2;; |
1334 | -w) HOMEPAGE=${2}; testoption sk $1 $2; shift 2;; |
1335 | -u) USERMENU=${2}; testoption fl $1 $2; shift 2;; |
1336 | -r) REMOVE=no; shift;; |
1337 | -h) display_help ; exit 0 ;; |
1338 | -a) display_authors ; exit 0 ;; |
1339 | --*) echo "fluxbox-generate_menu doesn't recognize -- gnu-longopts." |
1340 | echo 'Use fluxbox-generate_menu -h for a long help message.' |
1341 | display_usage |
1342 | exit 1 ;; |
1343 | -[a-zA-Z][a-zA-Z]*) |
1344 | # split concatenated single-letter options apart |
1345 | FIRST="$1"; shift |
1346 | set -- `echo "$FIRST" | sed 's/^-\(.\)\(.*\)/-\1 -\2/'` "$@" |
1347 | ;; |
1348 | -*) |
1349 | echo 1>&2 "fluxbox-generate_menu: unrecognized option "\`"$1'" |
1350 | display_usage |
1351 | exit 1 |
1352 | ;; |
1353 | *) |
1354 | break |
1355 | ;; |
1356 | esac |
1357 | done |
1358 | |
1359 | # Check defaults |
1360 | |
1361 | # Can we actually create ${MENUFILENAME} |
1362 | touch ${MENUFILENAME} 2> /dev/null |
1363 | if [ $? -ne 0 ]; then |
1364 | echo "Fatal error: can't create or write to $MENUFILENAME" >&2 |
1365 | exit 1 |
1366 | fi |
1367 | |
1368 | # backup menu |
1369 | if [ -w "${MENUFILENAME}" ]; then |
1370 | if [ -f ${MENUFILENAME}.firstbak ]; then |
1371 | cp ${MENUFILENAME} ${MENUFILENAME}.firstbak |
1372 | fi |
1373 | if [ -s "${MENUFILENAME}" ]; then |
1374 | mv ${MENUFILENAME} ${MENUFILENAME}.bak |
1375 | fi |
1376 | fi |
1377 | |
1378 | # prefix |
1379 | PREFIX="${PREFIX:=/usr}" |
1380 | if [ -z "${PREFIX}" -o ! -d "${PREFIX}" ]; then |
1381 | PREFIX=`which fluxbox | sed 's,/bin/fluxbox$,,'` |
1382 | fi |
1383 | |
1384 | |
1385 | # gnome prefix |
1386 | for GNOME_PREFIX in "${GNOME_PREFIX}" /usr/local /usr/X11R6 /usr /opt "${PREFIX}"; do |
1387 | if [ -n "${GNOME_PREFIX}" -a -d "$GNOME_PREFIX/share/gnome" ]; then |
1388 | break; |
1389 | fi |
1390 | done |
1391 | # Will remain $PREFIX if all else fails |
1392 | |
1393 | # kde prefix |
1394 | for KDE_PREFIX in "${KDE_PREFIX}" /usr/local /usr/X11R6 /usr /opt "${PREFIX}"; do |
1395 | if [ -n "${KDE_PREFIX}" -a -d "$KDE_PREFIX/share/applnk" ]; then |
1396 | break; |
1397 | fi |
1398 | done |
1399 | |
1400 | if [ -z "${INSTALL}" ] && [ -z "${NO_ICON}" ]; then |
1401 | # [ -z "$dnlamVERBOSE" ] && dnlamVERBOSE=": echo" # for debugging |
1402 | FB_ICONDIR="$HOME/.fluxbox/icons" |
1403 | [ -r "$FB_ICONDIR" ] || mkdir "$FB_ICONDIR" |
1404 | ICONMAPPING="$HOME/.fluxbox/iconmapping" |
1405 | |
1406 | if [ "$GNOMEMENU" ] ; then |
1407 | OTHER_DESKTOP_PATHS="\"$HOME/.gnome/apps\" \"${GNOME_PREFIX}/share/gnome/apps\" $OTHER_DESKTOP_PATHS" |
1408 | #[ "OTHER_ICONPATHS" ] && OTHER_ICONPATHS= |
1409 | fi |
1410 | if [ "$KDEMENU" ] ; then |
1411 | OTHER_DESKTOP_PATHS="\"$HOME/.kde/share/applnk\" \"${KDE_PREFIX}/share/applnk\" $OTHER_DESKTOP_PATHS" |
1412 | [ "OTHER_ICONPATHS" ] && OTHER_ICONPATHS="\"$HOME\"/.kde/share/icons/{,*} $OTHER_ICONPATHS" |
1413 | fi |
1414 | [ "$GNOMEMENU$KDEMENU" ] && OTHER_DESKTOP_PATHS="\"$ETCAPPLNK\" $OTHER_DESKTOP_PATHS" |
1415 | |
1416 | checkDirs(){ |
1417 | #echo checkDirs: $* >&2 |
1418 | local CHECKED_DIRS="" |
1419 | for DIR in "$@"; do |
1420 | if [ -d "$DIR" ]; then |
1421 | # todo: should check if there are duplicates |
1422 | CHECKED_DIRS="$CHECKED_DIRS \"$DIR\"" |
1423 | fi |
1424 | done |
1425 | #echo checkDirs - $CHECKED_DIRS >&2 |
1426 | echo $CHECKED_DIRS |
1427 | } |
1428 | |
1429 | OTHER_ICONPATHS=`eval checkDirs $OTHER_ICONPATHS` |
1430 | OTHER_DESKTOP_PATHS=`eval checkDirs $OTHER_DESKTOP_PATHS` |
1431 | |
1432 | # $dnlamVERBOSE "Using USER_DESKTOP_PATHS=\"$USER_DESKTOP_PATHS\" and USER_ICONPATHS=\"$USER_ICONPATHS\"" |
1433 | # $dnlamVERBOSE "Using OTHER_ICONPATHS=$OTHER_ICONPATHS" |
1434 | # $dnlamVERBOSE "Using OTHER_DESKTOP_PATHS=$OTHER_DESKTOP_PATHS" |
1435 | # $dnlamVERBOSE "Calling function: createIconMapping" |
1436 | |
1437 | # $dnlamVERBOSE "Creating $ICONMAPPING" >&2 |
1438 | touch "$ICONMAPPING" |
1439 | eval createIconMapping $USER_DESKTOP_PATHS $OTHER_DESKTOP_PATHS |
1440 | # $dnlamVERBOSE "Done createIconMapping." |
1441 | fi |
1442 | |
1443 | # directory for the backgrounds |
1444 | if [ -z "$BACKGROUND_DIRS" ]; then |
1445 | BACKGROUND_DIRS="${HOME}/.fluxbox/backgrounds/:${PREFIX}/share/fluxbox/backgrounds/" |
1446 | fi |
1447 | |
1448 | # find the default terminal |
1449 | if find_it_options $MY_TERM; then |
1450 | DEFAULT_TERM=$MY_TERM |
1451 | else |
1452 | [ -n "$MY_TERM" ] && echo "Warning: you chose an invalid term." >&2 |
1453 | #The precise order is up for debate. |
1454 | for term in Eterm urxvt urxvtc aterm rxvt wterm xterm konsole gnome-terminal; do |
1455 | if find_it $term; then |
1456 | DEFAULT_TERM=$term |
1457 | break |
1458 | fi |
1459 | done |
1460 | fi |
1461 | # a unix system without any terms. that's odd |
1462 | if [ -z "$DEFAULT_TERM" ]; then |
1463 | cat << EOF >&2 |
1464 | |
1465 | Warning: I can't find any terminal-emulators in your PATH. Please fix |
1466 | your PATH or specify your favourite terminal-emulator with the -t option |
1467 | |
1468 | EOF |
1469 | DEFAULT_TERM=xterm |
1470 | fi |
1471 | |
1472 | DEFAULT_TERMNAME=`echo $DEFAULT_TERM|awk '{print $1}'` |
1473 | DEFAULT_TERMNAME=`basename $DEFAULT_TERMNAME` |
1474 | |
1475 | |
1476 | # find the default browser |
1477 | if find_it_options $MY_BROWSER; then |
1478 | DEFAULT_BROWSER=$MY_BROWSER |
1479 | else |
1480 | [ -n "$MY_BROWSER" ] && echo "Warning: you chose an invalid browser." >&2 |
1481 | #The precise order is up for debate. |
1482 | for browser in firefox mozilla-firefox mozilla-firebird MozillaFirebird opera skipstone mozilla galeon konqueror dillo netscape w3m amaya links lynx; do |
1483 | if find_it $browser; then |
1484 | DEFAULT_BROWSER=$browser |
1485 | break |
1486 | fi |
1487 | done |
1488 | fi |
1489 | DEFAULT_BROWSERNAME=`echo $DEFAULT_BROWSER|awk '{print $1}'` |
1490 | DEFAULT_BROWSERNAME=`basename $DEFAULT_BROWSERNAME` |
1491 | |
1492 | |
1493 | # Start of menu |
1494 | cat << EOF > ${MENUFILENAME} |
1495 | # Generated by fluxbox-generate_menu |
1496 | # |
1497 | # If you read this it means you want to edit this file manually, so here |
1498 | # are some useful tips: |
1499 | # |
1500 | # - You can add your own menu-entries to ~/.fluxbox/usermenu |
1501 | # |
1502 | # - If you miss apps please let me know and I will add them for the next |
1503 | # release. |
1504 | # |
1505 | # - The -r option prevents removing of empty menu entries and lines which |
1506 | # makes things much more readable. |
1507 | # |
1508 | # - To prevent any other app from overwriting your menu |
1509 | # you can change the menu name in .fluxbox/init to: |
1510 | # session.menuFile: /home/you/.fluxbox/my-menu |
1511 | |
1512 | EOF |
1513 | |
1514 | echo "[begin] (${MENUTITLE})" >> ${MENUFILENAME} |
1515 | |
1516 | append "[exec] (${DEFAULT_TERMNAME}) {${DEFAULT_TERM}}" |
1517 | |
1518 | case "$DEFAULT_BROWSERNAME" in |
1519 | links|w3m|lynx) append "[exec] (${DEFAULT_BROWSERNAME}) {${DEFAULT_TERM} -e ${DEFAULT_BROWSER} ${HOMEPAGE}}" ;; |
1520 | firefox|firebird|mozilla|phoenix|galeon|dillo|netscape|amaya) append "[exec] (${DEFAULT_BROWSERNAME}) {${DEFAULT_BROWSER}}" ;; |
1521 | konqueror) append "[exec] (konqueror) {kfmclient openProfile webbrowsing}" ;; |
1522 | opera) append "[exec] (opera) {env QT_XFT=true opera}" ;; |
1523 | MozillaFirebird) append "[exec] (firebird) {MozillaFirebird}" ;; |
1524 | MozillaFirefox) append "[exec] (firefox) {MozillaFirefox}" ;; |
1525 | *) append "[exec] ($DEFAULT_BROWSERNAME) {$DEFAULT_BROWSER}" ;; |
1526 | esac |
1527 | |
1528 | find_it "${LAUNCHER}" append "[exec] (${RUNCOMMAND}) {${LAUNCHER} $FBRUNOPTIONS}" |
1529 | |
1530 | # We'll only use this once |
1531 | ETCAPPLNK=/etc/X11/applnk |
1532 | PARSING_DESKTOP="true" |
1533 | # gnome menu |
1534 | if [ "${GNOMEMENU}" ]; then |
1535 | append_submenu "${GNOMEMENUTEXT}" |
1536 | recurse_dir_menu "${GNOME_PREFIX}/share/gnome/apps" "$HOME/.gnome/apps" ${ETCAPPLNK} |
1537 | append_menu_end |
1538 | unset ETCAPPLNK |
1539 | fi |
1540 | |
1541 | # kde submenu |
1542 | if [ -d "${KDE_PREFIX}/share/applnk/" -a "${KDEMENU}" ]; then |
1543 | append_submenu "${KDEMENUTEXT}" |
1544 | recurse_dir_menu "${KDE_PREFIX}/share/applnk" "$HOME/.kde/share/applnk" ${ETCAPPLNK} |
1545 | append_menu_end |
1546 | unset ETCAPPLNK |
1547 | fi |
1548 | unset PARSING_DESKTOP |
1549 | |
1550 | #User menu |
1551 | if [ -r "${USERMENU}" ]; then |
1552 | cat ${USERMENU} >> ${MENUFILENAME} |
1553 | fi |
1554 | |
1555 | # livecd default menu |
1556 | if [ -r "${LIVECDMENU}" ]; then |
1557 | cat ${LIVECDMENU} >> ${MENUFILENAME} |
1558 | fi |
1559 | |
1560 | append "[separator]" |
1561 | append "[exec] (Reboot) {sudo /sbin/reboot}" |
1562 | append "[exec] (Shutdown) {sudo /sbin/halt}" |
1563 | |
1564 | append_menu_end |
1565 | |
1566 | # this function removes empty menu items. It can not yet remove nested |
1567 | # empty submenus :\ |
1568 | |
1569 | if [ ! "${REMOVE}" ]; then |
1570 | clean_up |
1571 | fi |
1572 | |
1573 | # escapes any parentheses in menu label |
1574 | # e.g., "[exec] (konqueror (web))" becomes "[exec] (konqueror (web\))" |
1575 | sed 's/(\(.*\)(\(.*\)))/(\1 (\2\\))/' $MENUFILENAME > menu.tmp |
1576 | mv -f menu.tmp $MENUFILENAME |
1577 | |
1578 | if [ -z "$INSTALL" ]; then |
1579 | if [ -z "$CHECKINIT" ]; then |
1580 | INITMENUFILENAME=`awk '/menuFile/ {print $2}' $HOME/.fluxbox/init` |
1581 | INITMENUFILENAME=`replaceWithinString "$INITMENUFILENAME" "~" "$HOME"` |
1582 | if [ ! "$INITMENUFILENAME" = "$MENUFILENAME" ]; then |
1583 | echo "Note: In $HOME/.fluxbox/init, your \"session.menuFile\" does not point to $MENUFILENAME but to $INITMENUFILENAME" >&2 |
1584 | fi |
1585 | fi |
1586 | echo "Menu successfully generated: $MENUFILENAME" |
1587 | #echo " Make sure \"session.menuFile: $MENUFILENAME\" is in $HOME/.fluxbox/init." |
1588 | echo 'Use fluxbox-generate_menu -h to read about all the latest features.' |
1589 | fi |