Subversion Repository

Parent Directory Parent Directory | Revision Log Revision Log


Revision 201 - (show annotations)
Sun Oct 4 15:01:40 2009 UTC (3 years, 7 months ago) by cjg
File size: 45325 byte(s)
importing opt
1 #!/bin/sh
2 #
3 # generate_menu for Fluxbox
4 #
5 # Copyright (c) 2002-2004 Han Boetes <han@mijncomputer.nl>
6 #
7 # Permission is hereby granted, free of charge, to any person obtaining a
8 # copy of this software and associated documentation files (the "Software"),
9 # to deal in the Software without restriction, including without limitation
10 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
11 # and/or sell copies of the Software, and to permit persons to whom the
12 # Software is furnished to do so, subject to the following conditions:
13 #
14 # The above copyright notice and this permission notice shall be included in
15 # all copies or substantial portions of the Software.
16 #
17 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 # DEALINGS IN THE SOFTWARE.
24 #
25 # $Id: fluxbox-generate_menu.in,v 1.28 2004/08/22 04:29:16 rathnor Exp $
26
27 #
28 # Portability notes:
29 # To guarantee this script works on all platforms that support fluxbox
30 # please keep the following restrictions in mind:
31 #
32 # - don't use if ! command;, use command; if [ $? -ne 0 ];
33 # - don't use [ -e file ] use [ -r file ]
34 # - don't use $(), use ``
35 # - don't use ~, use ${HOME}
36 # - don't use id -u or $UID, use whoami
37 # - getopts won't work on all platforms, but the config-file can
38 # compensate for that.
39 # - various software like grep/sed/perl may be not present or not
40 # the version you have. for example grep '\W' only works on gnu-grep.
41 # Keep this in mind, use bare basic defaults.
42 # - Do _NOT_ suggest to use #!/bin/bash. Not everybody uses bash.
43 # Non portable features like getopts in this script can be achieved in
44 # other ways.
45
46
47 WHOAMI=`whoami`
48 [ "$WHOAMI" = root ] && PATH=/bin:/usr/bin/:/usr/local/bin:/usr/X11R6/bin
49
50 # Functions
51 display_usage() {
52 cat << EOF
53 Usage: fluxbox-generate_menu [-kgrBh] [-t terminal] [-w url] [-b browser]
54 [-m menu-title] [-o /path] [-u /path] [-p /path] [-n /path] [-q /path]
55 EOF
56 }
57
58 display_help() {
59 display_usage
60 cat << EOF
61
62 Options:
63
64 -k Insert a kde menu
65 -g Add a gnome menu
66 -B enable backgrounds menu
67 -r Don't remove empty menu-entries; for templates
68
69 -t Favourite terminal
70 -w Homepage for console-browsers. Default is fluxbox.org
71 -b Favourite browser
72 -m Menu-title; default is "Fluxbox"
73 -o Outputfile; default is ~/.fluxbox/menu
74 -u user sub-menu; default is ~/.fluxbox/usermenu
75
76 -h Display this help
77 -a Display the authors of this script
78
79 Only for packagers:
80
81 -p prefix; default is /usr/local
82 -n Gnome-prefix; /opt, /usr, /usr/X11R6 and /usr/local autodetected
83 -q KDE-prefix; idem dito
84
85
86 Files:
87 ~/.fluxbox/usermenu your own submenu which will be included in the menu
88 ~/.fluxbox/menuconfig rc file for fluxbox-generate_menu
89
90 EOF
91 }
92
93 display_authors() {
94 cat << EOF
95
96 fluxbox-generate_menu was brought to you by:
97
98 Henrik Kinnunen: Project leader.
99 Han Boetes: Packaging, debugging and scripts.
100 Simon Bowden: Cleanups and compatibility for sun.
101 Jeramy B. Smith: Packaging assistance, gnome and kde menu system.
102 Filippo Pappalardo: Italian locales and -t option.
103 $WHOAMI: Innocent bystander.
104
105 EOF
106 }
107
108 # ugly code for solaris compat.
109 case `uname` in
110 Linux|*BSD)
111 find_it() {
112 [ -z "$1" ] && return 1
113 type $1 > /dev/null 2>&1 && shift && $*
114 }
115
116 find_it_options() {
117 set -- $1
118 [ -z "$1" ] && return 1
119 type $1 > /dev/null 2>&1
120 }
121 ;;
122 *)
123 find_it() {
124 file=`type $1 2> /dev/null`
125 if [ -x "$file" ]; then
126 if [ $# -gt 1 ]; then
127 shift
128 $*
129 fi
130 return 0
131 else
132 return 1
133 fi
134 }
135
136 find_it_options() {
137 file=`type $1 2> /dev/null`
138 if [ -x "$file" ]; then
139 return 0
140 else
141 return 1
142 fi
143 }
144
145 ;;
146 esac
147
148 append() {
149 if [ -z "${INSTALL}" ]; then
150 echo -n " $*" >> ${MENUFILENAME}
151 execname="`echo $*|cut -d\( -f2|cut -d\) -f1`"
152 if [ -r "${HOME}/.fluxbox/icons/$execname.xpm" ]; then
153 echo "<${HOME}/.fluxbox/icons/$execname.xpm>" >> ${MENUFILENAME}
154 else
155 echo >> ${MENUFILENAME}
156 fi
157 else
158 echo " $*" >> ${MENUFILENAME}
159 fi
160 }
161
162 append_menu() {
163 echo "$*" >> ${MENUFILENAME}
164 }
165
166 append_submenu() {
167 [ "${REMOVE}" ] && echo >> ${MENUFILENAME} # only an empty line in templates
168 append_menu "[submenu] ($1)"
169 }
170
171 append_menu_end() {
172 append_menu '[end]'
173 [ "${REMOVE}" ] && echo >> ${MENUFILENAME} # only an empty line in templates
174 }
175
176 menu_entry() {
177 if [ -f "$1" ]; then
178 # space&tab here
179 entry_name=`grep '^[ ]*Name=' "$1" | head -1 | cut -d = -f 2`
180 entry_exec=`grep '^[ ]*Exec=' "$1" | head -1 | cut -d = -f 2`
181 if [ -n "$entry_name" -a -n "$entry_exec" ]; then
182 append "[exec] ($entry_name) {$entry_exec}"
183 fi
184 fi
185 }
186
187 menu_entry_dir() {
188 for b in "$*"/*.desktop; do
189 menu_entry "${b}"
190 done
191 }
192
193 menu_entry_dircheck() {
194 if [ -d "$*" ]; then
195 menu_entry_dir "$*"
196 fi
197 }
198
199
200 # recursively build a menu from the listed directories
201 # the dirs are merged
202 recurse_dir_menu () {
203 ls "$@"/ 2>/dev/null | sort | uniq | while read name; do
204 for dir in "$@"; do
205 if [ -n "$name" -a -d "$dir/$name" ]; then
206 # recurse
207 append_submenu "${name}"
208 # unfortunately, this is messy since we can't easily expand
209 # them all. Only allow for 3 atm. Add more if needed
210 recurse_dir_menu ${1:+"$1/$name"} ${2:+"$2/$name"} ${3:+"$3/$name"}
211 append_menu_end
212 break; # found one, it'll pick up all the rest
213 fi
214 # ignore it if it is a file, since menu_entry_dir picks those up
215 done
216 done
217
218 # Make entries for current dir after all submenus
219 for dir in "$@"; do
220 menu_entry_dircheck "${dir}"
221 done
222 }
223
224
225 normal_find() {
226 while [ "$1" ]; do
227 find_it $1 append "[exec] ($1) {$1}"
228 shift
229 done
230 }
231
232 clean_up() {
233 # Some magic to clean up empty menus
234 rm -f ${MENUFILENAME}.tmp
235 touch ${MENUFILENAME}.tmp
236 counter=10 # prevent looping in odd circumstances
237 until [ $counter -lt 1 ] || \
238 cmp ${MENUFILENAME} ${MENUFILENAME}.tmp 2>&1 > /dev/null; do
239 [ -s ${MENUFILENAME}.tmp ] && mv ${MENUFILENAME}.tmp ${MENUFILENAME}
240 counter=`expr $counter - 1`
241 grep -v '^$' ${MENUFILENAME}|sed -e "/^\[submenu].*/{
242 n
243 N
244 /^\[submenu].*\n\[end]/d
245 }"|sed -e "/^\[submenu].*/{
246 N
247 /^\[submenu].*\n\[end]/d
248 }" > ${MENUFILENAME}.tmp
249 done
250 rm -f ${MENUFILENAME}.tmp
251 }
252
253 # menu defaults (if translation forget to set one of them)
254 BACKGROUNDMENU='Backgrounds'
255 BACKGROUNDMENUTITLE='Set the Background'
256 BROWSERMENU='Browsers'
257 CONFIGUREMENU='Configure'
258 EDITORMENU='Editors'
259 EXITITEM='Exit'
260 FBSETTINGSMENU='fluxbox menu'
261 FILEUTILSMENU='File utils'
262 FLUXBOXCOMMAND='Fluxbox Command'
263 GAMESMENU='Games'
264 GNOMEMENUTEXT='Gnome-menus'
265 GRAPHICMENU='Graphics'
266 KDEMENUTEXT='KDE-menus'
267 LOCKSCREEN='Lock screen'
268 MISCMENU='Misc'
269 MULTIMEDIAMENU='Multimedia'
270 MUSICMENU='Audio'
271 NETMENU='Net'
272 OFFICEMENU='Office'
273 RANDOMBACKGROUND='Random Background'
274 REGENERATEMENU='Regen Menu'
275 RELOADITEM='Reload config'
276 RESTARTITEM='Restart'
277 RUNCOMMAND='Run'
278 SCREENSHOT='Screenshot'
279 STYLEMENUTITLE='Choose a style...'
280 SYSTEMSTYLES='System Styles'
281 TERMINALMENU='Terminals'
282 TOOLS='Tools'
283 USERSTYLES='User Styles'
284 VIDEOMENU='Video'
285 WINDOWMANAGERS='Window Managers'
286 WINDOWNAME='Window name'
287 WORKSPACEMENU='Workspace List'
288 XUTILSMENU='X-utils'
289
290 # Check translation
291 case ${LC_ALL} in
292 ru_RU*) #Russian locales
293
294 # Ah my Russian hero. Please help me update the translation
295 # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig
296 # $ $EDITOR fluxbox-generate-menu.in
297 # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff
298 # email fbgm.diff to han@mijncomputer.nl
299
300 BACKGROUNDMENU='Обои'
301 BACKGROUNDMENUTITLE='Установить обои'
302 BROWSERMENU='Браузеры'
303 CONFIGUREMENU='Настройка'
304 EDITORMENU='Редакторы'
305 EXITITEM='Выйти'
306 FBSETTINGSMENU='FB-настройки'
307 FILEUTILSMENU='Файловые утилиты'
308 FLUXBOXCOMMAND='Выполнить команду'
309 GAMESMENU='Игры'
310 GNOMEMENUTEXT='Gnome-меню'
311 GRAPHICMENU='Графика'
312 KDEMENUTEXT='KDE-меню'
313 LOCKSCREEN='Заблокировать экран'
314 MISCMENU='Прочее'
315 MUSICMENU='Звук'
316 NETMENU='Сеть'
317 OFFICEMENU='Офисные приложения'
318 RANDOMBACKGROUND='Случайные обои'
319 REGENERATEMENU='Создать меню заново'
320 RELOADITEM='Перенастроить'
321 RESTARTITEM='Перезапустить'
322 RUNCOMMAND='Выполнить'
323 SCREENSHOT='Снимок экрана'
324 STYLEMENUTITLE='Выберите стиль'
325 SYSTEMSTYLES='Системные стили'
326 TERMINALMENU='Терминалы'
327 TOOLS='Утилиты'
328 USERSTYLES='Пользовательские стили'
329 WINDOWMANAGERS='Менеджеры окон'
330 WINDOWNAME='Имя окна'
331 WORKSPACEMENU='Рабочие пространства'
332 XUTILSMENU='X-утилиты'
333 ;;
334 de_DE*) # german locales
335 BACKGROUNDMENU='Hintergrundbilder'
336 BACKGROUNDMENUTITLE='Hintergrundbild setzen'
337 BROWSERMENU='Internet-Browser'
338 CONFIGUREMENU='Einstellungen'
339 EDITORMENU='Editoren'
340 EXITITEM='Beenden'
341 FBSETTINGSMENU='Fluxbox-Einstellungen'
342 FILEUTILSMENU='Datei-Utilities'
343 FLUXBOXCOMMAND='Fluxbox Befehl'
344 GAMESMENU='Spiele'
345 GNOMEMENUTEXT='Gnome-Menues'
346 GRAPHICMENU='Grafik'
347 KDEMENUTEXT='Kde-Menues'
348 LOCKSCREEN='Bildschirmsperre'
349 MISCMENU='Sonstiges'
350 MUSICMENU='Musik'
351 NETMENU='Netzwerk'
352 OFFICEMENU='Bueroprogramme'
353 RANDOMBACKGROUND='Zufaelliger Hintergrund'
354 REGENERATEMENU='Menu-Regeneration'
355 RELOADITEM='Konfiguration neu laden'
356 RESTARTITEM='Neustarten'
357 RUNCOMMAND='AusfЭhren'
358 SCREENSHOT='Bildschirmfoto'
359 STYLEMENUTITLE='Einen Stil auswaehlen...'
360 SYSTEMSTYLES='Systemweite Stile'
361 TERMINALMENU='Terminals'
362 TOOLS='Helfer'
363 USERSTYLES='Eigene Stile'
364 WINDOWMANAGERS='Window Manager'
365 WINDOWNAME='Window Name'
366 WORKSPACEMENU='Arbeitsflaechenliste'
367 XUTILSMENU='X-Anwendungen'
368 ;;
369 sv_SE*) #Swedish locales
370 # Ah my Swedish hero. Please help me update the translation
371 # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig
372 # $ $EDITOR fluxbox-generate-menu.in
373 # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff
374 # email fbgm.diff to han@mijncomputer.nl
375
376 BACKGROUNDMENU='Bakgrunder'
377 BACKGROUNDMENUTITLE='SДtt bakgrund'
378 BROWSERMENU='Browsers'
379 CONFIGUREMENU='Konfiguration'
380 EDITORMENU='Editorer'
381 EXITITEM='Exit (CHANGE ME!)'
382 FBSETTINGSMENU='FB-instДllningar'
383 FILEUTILSMENU='File utils (CHANGE ME!)'
384 FLUXBOXCOMMAND='Fluxbox Command (CHANGE ME!)'
385 GAMESMENU='Spel'
386 GNOMEMENUTEXT='Gnome-menyer'
387 GRAPHICMENU='Grafik'
388 KDEMENUTEXT='KDE-menyer'
389 LOCKSCREEN='Lock screen'
390 MISCMENU='Blandat'
391 MUSICMENU='Musik'
392 NETMENU='Net'
393 OFFICEMENU='Office (CHANGE ME!)'
394 RANDOMBACKGROUND='Random Background (CHANGE ME!)'
395 REGENERATEMENU='Regen Menu (CHANGE ME!)'
396 RELOADITEM='Ladda om konfig'
397 RESTARTITEM='Starta om'
398 RUNCOMMAND='Run (CHANGE ME!)'
399 SCREENSHOT='Screenshot (CHANGE ME!)'
400 STYLEMENUTITLE='VДlj en stil'
401 SYSTEMSTYLES='Stiler'
402 TERMINALMENU='Terminaler'
403 TOOLS='Tools (CHANGE ME!)'
404 USERSTYLES='Stiler'
405 WINDOWMANAGERS='FЖnsterhanterare'
406 WINDOWNAME='Window name (CHANGE ME!)'
407 WORKSPACEMENU='Arbetsytor'
408 XUTILSMENU='X-program (CHANGE ME!)'
409 ;;
410 nl_*) #Nederlandse locales
411 BACKGROUNDMENU='Achtergrond'
412 BACKGROUNDMENUTITLE='Kies een achtergrond'
413 BROWSERMENU='Browsers'
414 CONFIGUREMENU='Instellingen'
415 EDITORMENU='Editors'
416 EXITITEM='Afsluiten'
417 FBSETTINGSMENU='FB-Instellingen'
418 FILEUTILSMENU='Verkenners'
419 FLUXBOXCOMMAND='Fluxbox Commando'
420 GAMESMENU='Spelletjes'
421 GNOMEMENUTEXT='Gnome-menu'
422 GRAPHICMENU='Grafisch'
423 KDEMENUTEXT='KDE-menu'
424 LOCKSCREEN='Scherm op slot'
425 MISCMENU='Onregelmatig'
426 MUSICMENU='Muziek'
427 NETMENU='Internet'
428 OFFICEMENU='Office'
429 RANDOMBACKGROUND='Willekeurige Achtergrond'
430 REGENERATEMENU='Nieuw Menu'
431 RELOADITEM='Vernieuw instellingen'
432 RESTARTITEM='Herstart'
433 RUNCOMMAND='Voer uit'
434 SCREENSHOT='Schermafdruk'
435 STYLEMENUTITLE='Kies een stijl'
436 SYSTEMSTYLES='Systeem Stijlen'
437 TERMINALMENU='Terminals'
438 TOOLS='Gereedschap'
439 USERSTYLES='Gebruikers Stijlen'
440 WINDOWMANAGERS='Venster Managers'
441 WINDOWNAME='Venster Naam'
442 WORKSPACEMENU='Werkveld menu'
443 XUTILSMENU='X-Gereedschap'
444 ;;
445 fi_FI*) #Finnish locales
446 BACKGROUNDMENU='Taustakuvat'
447 BACKGROUNDMENUTITLE='MДДritД taustakuva'
448 BROWSERMENU='Selaimet'
449 CONFIGUREMENU='Asetukset'
450 EDITORMENU='Editorit'
451 EXITITEM='Lopeta'
452 FBSETTINGSMENU='Fluxboxin sДДdЖt'
453 FILEUTILSMENU='TiedostotyЖkalut'
454 FLUXBOXCOMMAND='Komentorivi'
455 GAMESMENU='Pelit'
456 GNOMEMENUTEXT='Gnomen valikot'
457 GRAPHICMENU='Grafiikka'
458 KDEMENUTEXT='KDE:n valikot'
459 LOCKSCREEN='Lukitse tyЖpЖytД'
460 MISCMENU='Sekalaista'
461 MUSICMENU='Musiikki'
462 NETMENU='Verkko'
463 OFFICEMENU='ToimistotyЖkalut'
464 RANDOMBACKGROUND='Satunnainen taustakuva'
465 REGENERATEMENU='PДivitД valikko'
466 RELOADITEM='PДivitД'
467 RESTARTITEM='KДynnistД uudelleen'
468 RUNCOMMAND='Suorita'
469 SCREENSHOT='Kuvakaappaus'
470 STYLEMENUTITLE='Valitse tyyli'
471 SYSTEMSTYLES='JДrjestelmДn tyylit'
472 TERMINALMENU='Terminaalit'
473 TOOLS='TyЖkalut'
474 USERSTYLES='KДyttДjДn tyylit'
475 WINDOWMANAGERS='Ikkunanhallintaohjelmat'
476 WINDOWNAME='Ikkunan nimi'
477 WORKSPACEMENU='TyЖalueet'
478 XUTILSMENU='X-Ohjelmat'
479 ;;
480 ja_JP*) #Japanese locales
481 # Ah my Japanese hero. Please help me update the translation
482 # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig
483 # $ $EDITOR fluxbox-generate-menu.in
484 # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff
485 # email fbgm.diff to han@mijncomputer.nl
486
487 BACKGROUNDMENU='гь╥й'
488 BACKGROUNDMENUTITLE='гь╥й╓нюъдЙ'
489 BROWSERMENU='╔ж╔И╔╕╔╤'
490 CONFIGUREMENU='юъдЙ'
491 EDITORMENU='╔╗╔г╔ё╔©'
492 EXITITEM='╫╙н╩'
493 FBSETTINGSMENU='Fluxbox╓нюъдЙ'
494 FILEUTILSMENU='╔у╔║╔╓╔КаЮ╨Н'
495 FLUXBOXCOMMAND='Fluxbox╔Ё╔ч╔С╔и'
496 GAMESMENU='╔╡║╪╔Ю'
497 GNOMEMENUTEXT='Gnome╔А╔к╔Е║╪'
498 GRAPHICMENU='╡ХаЭ'
499 KDEMENUTEXT='KDE╔А╔к╔Е║╪'
500 LOCKSCREEN='╔╧╔╞╔Й║╪╔С╔М╔ц╔╞'
501 MISCMENU='╓╓╓М╓╓╓М'
502 MUSICMENU='╡╩Ёз'
503 NETMENU='╔м╔ц╔х╔О║╪╔╞'
504 OFFICEMENU='╔╙╔у╔ё╔╧(Office)'
505 RANDOMBACKGROUND='гь╥й(╔И╔С╔ю╔Ю)'
506 REGENERATEMENU='╔А╔к╔Е║╪╨ф╧╫ю╝'
507 RELOADITEM='╨ффи╓ъ╧Ч╓ъ'
508 RESTARTITEM='╨ф╣╞ф╟'
509 RUNCOMMAND='╔Ё╔ч╔С╔и╓н╪б╧т'
510 SCREENSHOT='╔╧╔╞╔Й║╪╔С╔╥╔Г╔ц╔х'
511 STYLEMENUTITLE='╔╧╔©╔╓╔Ка╙бР...'
512 SYSTEMSTYLES='╔╧╔©╔╓╔К'
513 TERMINALMENU='╔©║╪╔ъ╔й╔К'
514 TOOLS='╔д║╪╔К'
515 USERSTYLES='╔╧╔©╔╓╔К'
516 WINDOWMANAGERS='╔╕╔ё╔С╔и╔╕╔ч╔м║╪╔╦╔Ц'
517 WINDOWNAME='╔╕╔ё╔С╔и╔╕л╬'
518 WORKSPACEMENU='╔О║╪╔╞╔╧╔з║╪╔╧'
519 XUTILSMENU='X╔Ф║╪╔ф╔ё╔Й╔ф╔ё'
520 ;;
521 fr_FR*) # french locales
522 # Ah my french hero. Please help me update the translation
523 # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig
524 # $ $EDITOR fluxbox-generate-menu.in
525 # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff
526 # email fbgm.diff to han@mijncomputer.nl
527
528 BACKGROUNDMENU="Fond d'Иcran"
529 BACKGROUNDMENUTITLE="Changer le fond d'Иcran"
530 BROWSERMENU='Navigateurs'
531 CONFIGUREMENU='Configurer'
532 EDITORMENU='Editeurs'
533 EXITITEM='Sortir'
534 FBSETTINGSMENU='Configurer Fluxbox'
535 FILEUTILSMENU='Outils fichiers'
536 FLUXBOXCOMMAND='Commande Fluxbox'
537 GAMESMENU='Jeux'
538 GNOMEMENUTEXT='Menus Gnome'
539 GRAPHICMENU='Graphisme'
540 KDEMENUTEXT='Menus KDE'
541 LOCKSCREEN="Verouiller l'Иcran"
542 MISCMENU='Divers'
543 MUSICMENU='Musique'
544 NETMENU='RИseau'
545 OFFICEMENU='Bureautique'
546 RANDOMBACKGROUND="Fond d'Иcran alИatoire"
547 REGENERATEMENU='RИgИnИrer le menu'
548 RELOADITEM='Recharger la configuration'
549 RESTARTITEM='RedИmarrer Fluxbox'
550 RUNCOMMAND='Run'
551 SCREENSHOT="Capture d'Иcran"
552 STYLEMENUTITLE='Choisir un style...'
553 SYSTEMSTYLES='Styles Systeme'
554 TERMINALMENU='Terminaux'
555 TOOLS='Outils'
556 USERSTYLES='Styles Utilisateur'
557 WINDOWMANAGERS='Gestionnaires de fenЙtres'
558 WINDOWNAME='Nom de la fenetre'
559 WORKSPACEMENU='Liste des bureaux'
560 XUTILSMENU='Outils X'
561 ;;
562 it_IT*) # italian locales
563 BACKGROUNDMENU='Sfondi'
564 BACKGROUNDMENUTITLE='Imposta lo sfondo'
565 BROWSERMENU='Browsers'
566 CONFIGUREMENU='Configurazione'
567 EDITORMENU='Editori'
568 EXITITEM='Esci'
569 FBSETTINGSMENU='Preferenze'
570 FILEUTILSMENU='UtilitЮ'
571 FLUXBOXCOMMAND='Comando Fluxbox'
572 GAMESMENU='Giochi'
573 GNOMEMENUTEXT='Gnome'
574 GRAPHICMENU='Grafica'
575 KDEMENUTEXT='KDE'
576 LOCKSCREEN='Blocca lo schermo'
577 MISCMENU='Varie'
578 MUSICMENU='Musica'
579 NETMENU='Internet'
580 OFFICEMENU='Office'
581 RANDOMBACKGROUND='Sfondo casuale'
582 REGENERATEMENU='Rigenera il menu'
583 RELOADITEM='Rileggi la configurazione'
584 RESTARTITEM='Riavvia'
585 RUNCOMMAND='Esegui'
586 SCREENSHOT='Schermata'
587 STYLEMENUTITLE='Scegli uno stile'
588 SYSTEMSTYLES='Stile'
589 TERMINALMENU='Terminali'
590 TOOLS='Attrezzi'
591 USERSTYLES='Stile'
592 WINDOWMANAGERS='Gestori finestre'
593 WINDOWNAME='Nome della finestra'
594 WORKSPACEMENU='Aree di lavoro'
595 XUTILSMENU='UtilitЮ X'
596 ;;
597 ro_RO*) # Romanian locales
598 # Ah my Russian hero. Please help me update the translation
599 # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig
600 # $ $EDITOR fluxbox-generate-menu.in
601 # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff
602 # email fbgm.diff to han@mijncomputer.nl
603
604 BACKGROUNDMENU='Fundaluri'
605 BACKGROUNDMENUTITLE='Alege fundalul'
606 BROWSERMENU='Navigatoare'
607 CONFIGUREMENU='Configurare'
608 EDITORMENU='Editoare'
609 EXITITEM='Iesire'
610 FBSETTINGSMENU='Meniul Fluxbox'
611 FILEUTILSMENU='File utils (CHANGE ME!)'
612 FLUXBOXCOMMAND='Fluxbox Command (CHANGE ME!)'
613 GAMESMENU='Jocuri'
614 GNOMEMENUTEXT='Meniu Gnome'
615 GRAPHICMENU='Grafica'
616 KDEMENUTEXT='Meniu KDE'
617 LOCKSCREEN='Lock screen (CHANGE ME!)'
618 MISCMENU='Diverse'
619 MULTIMEDIAMENU='Multimedia (CHANGE ME!)'
620 MUSICMENU='Muzica'
621 NETMENU='Net (CHANGE ME!)'
622 OFFICEMENU='Office (CHANGE ME!)'
623 RANDOMBACKGROUND='Random Background (CHANGE ME!)'
624 REGENERATEMENU='Regen Menu (CHANGE ME!)'
625 RELOADITEM='Reincarca configuratia'
626 RESTARTITEM='Restart (CHANGE ME!)'
627 RUNCOMMAND='Run (CHANGE ME!)'
628 SCREENSHOT='Screenshot (CHANGE ME!)'
629 STYLEMENUTITLE='Alege un stil...'
630 SYSTEMSTYLES='Stiluri sistem'
631 TERMINALMENU='Terminale'
632 TOOLS='Tools (CHANGE ME!)'
633 USERSTYLES='Stiluri utilizator'
634 WINDOWMANAGERS='WindowManagers'
635 WINDOWNAME='Window name (CHANGE ME!)'
636 WORKSPACEMENU='Lista workspace-uri'
637 XUTILSMENU='Utilitare X'
638 ;;
639 es_ES*) # spanish locales
640 # Ah my Spanish hero. Please help me update the translation
641 # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig
642 # $ $EDITOR fluxbox-generate-menu.in
643 # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff
644 # email fbgm.diff to han@mijncomputer.nl
645
646 BACKGROUNDMENUTITLE='Seleccionar Fondo'
647 BROWSERMENU='Navegadores'
648 CONFIGUREMENU='Configurar'
649 EDITORMENU='Editores'
650 EXITITEM='Salir'
651 FBSETTINGSMENU='MenЗ fluxbox'
652 GAMESMENU='Juegos'
653 GNOMEMENUTEXT='MenЗs Gnome'
654 GRAPHICMENU='GrАficos'
655 KDEMENUTEXT='MenЗs KDE'
656 MISCMENU='Varios'
657 MULTIMEDIAMENU='Multimedia'
658 MUSICMENU='MЗsica'
659 NETMENU='Red'
660 OFFICEMENU='Oficina'
661 RELOADITEM='Reconfigurar'
662 RESTARTITEM='Reiniciar'
663 STYLEMENUTITLE='Escoge un Estilo...'
664 SYSTEMSTYLES='Estilos del Sistema'
665 TERMINALMENU='Terminales'
666 USERSTYLES='Estilos del Usuario'
667 WORKSPACEMENU='Lista de Escritorios'
668 XUTILSMENU='Utilidades X'
669 BACKGROUNDMENU='Fondos'
670 FILEUTILSMENU='Utilidades'
671 FLUXBOXCOMMAND='Comandos de Fluxbox'
672 LOCKSCREEN='Bloquear Pantalla'
673 RANDOMBACKGROUND='Fondo Aleatoreo'
674 REGENERATEMENU='Regenerar MenЗ'
675 RUNCOMMAND='Ejecutar'
676 SCREENSHOT='Captura de Pantalla'
677 TOOLS='Herramienta'
678 WINDOWMANAGERS='Gestores de Ventanas'
679 WINDOWNAME='Nombre de Ventana'
680 ;;
681 pl_PL*) # Polish locales
682 # Ah my Russian hero. Please help me update the translation
683 # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig
684 # $ $EDITOR fluxbox-generate-menu.in
685 # $ diff u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff
686 # email fbgm.diff to han@mijncomputer.nl
687
688 BACKGROUNDMENU='Tapety'
689 BACKGROUNDMENUTITLE='Ustaw tapetЙ'
690 BROWSERMENU='Przegl╠darki'
691 CONFIGUREMENU='Konfiguracja'
692 EDITORMENU='Edytory'
693 EXITITEM='Wyj╤cie'
694 FBSETTINGSMENU='Menu Fluxbox'
695 FILEUTILSMENU='NarzЙdzia do plikСw'
696 FLUXBOXCOMMAND='Polecenia Fluxbox'
697 GAMESMENU='Gry'
698 GNOMEMENUTEXT='Menu Gnome'
699 GRAPHICMENU='Grafika'
700 KDEMENUTEXT='Menu KDE'
701 LOCKSCREEN='Zablokuj ekran'
702 MISCMENU='RС©ne'
703 MULTIMEDIAMENU='Multimedia'
704 MUSICMENU='Muzyka'
705 NETMENU='SieФ'
706 OFFICEMENU='Aplikacje biurowe'
707 RANDOMBACKGROUND='Losowa tapeta'
708 REGENERATEMENU='Wygeneruj menu'
709 RELOADITEM='Od╤wie© konfiguracjЙ'
710 RESTARTITEM='Restartuj'
711 RUNCOMMAND='Uruchom...'
712 SCREENSHOT='Zrzut ekranu'
713 STYLEMENUTITLE='Wybierz styl...'
714 SYSTEMSTYLES='Style systemowe'
715 TERMINALMENU='Terminale'
716 TOOLS='NarzЙdzia'
717 USERSTYLES='Style u©ytkownika'
718 WINDOWMANAGERS='Menad©ery okien'
719 WINDOWNAME='Nazwy okien'
720 WORKSPACEMENU='Lista pulpitСw'
721 XUTILSMENU='NarzЙdzia X'
722 ;;
723 pt_PT*) # Portuguese locales
724 BACKGROUNDMENU='Imagens de Fundo'
725 BACKGROUNDMENUTITLE='Definir Imagem de Fundo'
726 BROWSERMENU='Browsers'
727 CONFIGUREMENU='ConfiguraГЦo'
728 EDITORMENU='Editores'
729 EXITITEM='Sair'
730 FBSETTINGSMENU='Menu Fluxbox'
731 FILEUTILSMENU='UtilitАrios de Ficheiros'
732 FLUXBOXCOMMAND='Comando Fluxbox'
733 GAMESMENU='Jogos'
734 GNOMEMENUTEXT='Menu Gnome'
735 GRAPHICMENU='GrАficos'
736 KDEMENUTEXT='Menu KDE'
737 LOCKSCREEN='Trancar EcrЦ'
738 MISCMENU='Misc.'
739 MULTIMEDIAMENU='MultimИdia'
740 MUSICMENU='аudio'
741 NETMENU='Rede'
742 OFFICEMENU='EscritСrio'
743 RANDOMBACKGROUND='Imagem AleatСria'
744 REGENERATEMENU='Regenerar Menu'
745 RELOADITEM='Recarregar configuraГЦo'
746 RESTARTITEM='Reiniciar'
747 RUNCOMMAND='Executar'
748 SCREENSHOT='Capturar EcrЦ'
749 STYLEMENUTITLE='Escolha um estilo...'
750 SYSTEMSTYLES='Estilos do Sistema'
751 TERMINALMENU='Terminais'
752 TOOLS='Ferramentas'
753 USERSTYLES='Estilos do Utilizador'
754 VIDEOMENU='VМdeo'
755 WINDOWMANAGERS='Gestores de Janelas'
756 WINDOWNAME='Nome da Janela'
757 WORKSPACEMENU='Lista de аreas de Trabalho'
758 XUTILSMENU='UtilitАrios X'
759 ;;
760 *)
761 ;;
762 esac
763
764 # Set Defaults
765 MENUFILENAME="${MENUFILENAME:=${HOME}/.fluxbox/menu}"
766 MENUTITLE="${MENUTITLE:=Fluxbox}"
767 HOMEPAGE="${HOMEPAGE:=fluxbox.org}"
768 USERMENU="${USERMENU:=${HOME}/.fluxbox/usermenu}"
769
770 # Read the menuconfig file if it exists or else create it.
771 # But not during install time, use envvar for sun
772 if [ ! "${INSTALL}" = Yes ]; then
773 if [ -r ${HOME}/.fluxbox/menuconfig ]; then
774 . ${HOME}/.fluxbox/menuconfig
775 else
776 if [ ! "$WHOAMI" = root ]; then # this is only for users.
777 if touch ${HOME}/.fluxbox/menuconfig; then
778 cat << EOF > ${HOME}/.fluxbox/menuconfig
779 # This file is read by fluxbox-generate_menu. If you don't like a
780 # default you can change it here. Don't forget to remove the # in front
781 # of the line.
782
783 # Your favourite terminal. Put the command in quotes if you want to use
784 # options. Put a backslash in before odd chars
785 # MY_TERM='Eterm --tint \#123456'
786 # MY_TERM='aterm -tint $(random_color)'
787
788 # Your favourite browser. You can also specify options.
789 # MY_BROWSER=mozilla
790
791 # Name of the outputfile
792 # MENUFILENAME=${HOME}/.fluxbox/menu
793
794 # MENUTITLE=\`fluxbox -version|cut -d " " -f-2\`
795
796 # standard url for console-browsers
797 # HOMEPAGE=fluxbox.org
798
799 # location with your own menu-entries
800 # USERMENU=~/.fluxbox/usermenu
801
802 # Options for fbrun
803 # FBRUNOPTIONS='-font 10x20 -fg grey -bg black -title run'
804
805 # --- PREFIX'es
806 # These are prefixes; So if fluxbox is installed in /usr/bin/fluxbox
807 # your prefix is: /usr
808
809 # fluxbox-generate already looks in /usr/X11R6, /usr, /usr/local and /opt so
810 # there should be no need to specify them.
811 #
812 # PREFIX=/usr
813 # GNOME_PREFIX=/opt/gnome
814 # KDE_PREFIX=/opt/kde
815
816
817 # Sepparate the list of background-dirs with semicolumns ':'
818 # BACKGROUND_DIRS="${HOME}/.fluxbox/backgrounds/:/usr/local/share/fluxbox/backgrounds/:/usr/share/wallpapers"
819
820
821 # --- Boolean variables.
822 # Setting a variable to ``no'' won't help. Comment them out if you don't
823 # want them. Setting are overruled by the command-line options.
824
825 # Include all backgrounds in your backgrounds-directory
826 # BACKGROUNDMENUITEM=yes
827
828 # Include kde-menus
829 # KDEMENU=yes
830
831 # Include gnome-menus
832 # GNOMEMENU=yes
833
834 # Don't cleanup the menu
835 # REMOVE=no
836
837 EOF
838 else
839 echo "Warning: I couldn't create ${HOME}/.fluxbox/menuconfig" >&2
840 fi
841 fi
842 fi
843 fi
844
845 testoption() {
846 if [ -z "$3" -o -n "`echo $3|grep '^-'`" ]; then
847 echo "Error: The option $2 requires an argument." >&2
848 exit 1
849 fi
850 case $1 in
851 ex) # executable
852 if find_it "$3"; then
853 :
854 else
855 echo "Error: The option $2 needs an executable as argument, and \`$3' is not." >&2
856 fi
857 ;;
858 di) # directory
859 if [ -d "$3" ]; then
860 :
861 else
862 echo "Error: The option $2 needs a directory as argument, and \`$3' is not." >&2
863 fi
864 ;;
865 fl) # file
866 if [ -r "$3" ]; then
867 :
868 else
869 echo "Error: The option $2 needs a readable file as argument, and \`$3' is not." >&2
870 fi
871 ;;
872 sk) # skip
873 :
874 ;;
875 esac
876 }
877
878 # Get options.
879 while [ $# -gt 0 ]; do
880 case "$1" in
881 -B) BACKGROUNDMENUITEM=yes; shift;;
882 -k) KDEMENU=yes; shift;;
883 -g) GNOMEMENU=yes; shift;;
884 -t) MY_TERM=${2}; testoption ex $1 $2; shift 2;;
885 -b) MY_BROWSER=${2}; testoption ex $1 $2; shift 2;;
886 -o) MENUFILENAME=${2}; shift 2; CHECKINIT=NO ;;
887 -p) PREFIX=${2}; testoption di $1 $2; shift 2;;
888 -n) GNOME_PREFIX=${2}; testoption di $1 $2; shift 2;;
889 -q) KDE_PREFIX=${2}; testoption di $1 $2; shift 2;;
890 -m) MENUTITLE=${2}; testoption sk $1 $2; shift 2;;
891 -w) HOMEPAGE=${2}; testoption sk $1 $2; shift 2;;
892 -u) USERMENU=${2}; testoption fl $1 $2; shift 2;;
893 -r) REMOVE=no; shift;;
894 -h) display_help ; exit 0 ;;
895 -a) display_authors ; exit 0 ;;
896 --*) echo "fluxbox-generate_menu doesn't recognize -- gnu-longopts."
897 echo 'Use fluxbox-generate_menu -h for a long help message.'
898 display_usage
899 exit 1 ;;
900 -[a-zA-Z][a-zA-Z]*)
901 # split concatenated single-letter options apart
902 FIRST="$1"; shift
903 set -- `echo "$FIRST" | sed 's/^-\(.\)\(.*\)/-\1 -\2/'` "$@"
904 ;;
905 -*)
906 echo 1>&2 "fluxbox-generate_menu: unrecognized option "\`"$1'"
907 display_usage
908 exit 1
909 ;;
910 *)
911 break
912 ;;
913 esac
914 done
915
916 # Check defaults
917
918 # Can we actually create ${MENUFILENAME}
919 touch ${MENUFILENAME} 2> /dev/null
920 if [ $? -ne 0 ]; then
921 echo "Fatal error: can't create or write to $MENUFILENAME" >&2
922 exit 1
923 fi
924
925 # backup menu
926 if [ -w "${MENUFILENAME}" ]; then
927 if [ -f ${MENUFILENAME}.firstbak ]; then
928 cp ${MENUFILENAME} ${MENUFILENAME}.firstbak
929 fi
930 mv ${MENUFILENAME} ${MENUFILENAME}.bak
931 fi
932
933 # prefix
934 PREFIX="${PREFIX:=@PREFIX@}"
935 if [ -z "${PREFIX}" -o ! -d "${PREFIX}" ]; then
936 PREFIX=`type fluxbox | sed 's,/bin/fluxbox$,,'`
937 fi
938
939
940 # gnome prefix
941 for GNOME_PREFIX in "${GNOME_PREFIX}" /usr/local /usr/X11R6 /usr /opt "${PREFIX}"; do
942 if [ -n "${GNOME_PREFIX}" -a -d "$GNOME_PREFIX/share/gnome" ]; then
943 break;
944 fi
945 done
946 # Will remain $PREFIX if all else fails
947
948 # kde prefix
949 for KDE_PREFIX in "${KDE_PREFIX}" /usr/local /usr/X11R6 /usr /opt "${PREFIX}"; do
950 if [ -n "${KDE_PREFIX}" -a -d "$KDE_PREFIX/share/applnk" ]; then
951 break;
952 fi
953 done
954
955 # directory for the backgrounds
956 if [ -z "$BACKGROUND_DIRS" ]; then
957 BACKGROUND_DIRS="${HOME}/.fluxbox/backgrounds/:${PREFIX}/share/fluxbox/backgrounds/"
958 fi
959
960 # find the default terminal
961 if find_it_options $MY_TERM; then
962 DEFAULT_TERM=$MY_TERM
963 else
964 [ -n "$MY_TERM" ] && echo "Warning: you chose an invalid term." >&2
965 #The precise order is up for debate.
966 for term in Eterm aterm rxvt wterm xterm konsole gnome-terminal; do
967 if find_it $term; then
968 DEFAULT_TERM=$term
969 break
970 fi
971 done
972 fi
973 # a unix system without any terms. that's odd
974 if [ -z "$DEFAULT_TERM" ]; then
975 cat << EOF >&2
976
977 Warning: I can't find any terminal-emulators in your PATH. Please fix
978 your PATH or specify your favourite terminal-emulator with the -t option
979
980 EOF
981 DEFAULT_TERM=xterm
982 fi
983
984 set -- $DEFAULT_TERM
985 DEFAULT_TERMNAME=${1##*/}
986
987 # find the default browser
988 if find_it_options $MY_BROWSER; then
989 DEFAULT_BROWSER=$MY_BROWSER
990 else
991 [ -n "$MY_BROWSER" ] && echo "Warning: you chose an invalid browser." >&2
992 #The precise order is up for debate.
993 for browser in firefox mozilla-firefox mozilla-firebird MozillaFirebird opera skipstone mozilla galeon konqueror dillo netscape w3m links lynx; do
994 if find_it $browser; then
995 DEFAULT_BROWSER=$browser
996 break
997 fi
998 done
999 fi
1000 set -- $DEFAULT_BROWSER
1001 DEFAULT_BROWSERNAME=${1##*/}
1002
1003 # Start of menu
1004 cat << EOF > ${MENUFILENAME}
1005 # Generated by fluxbox-generate_menu
1006 #
1007 # If you read this it means you want to edit this file manually, so here
1008 # are some useful tips:
1009 #
1010 # - You can add your own menu-entries to ~/.fluxbox/usermenu
1011 #
1012 # - If you miss apps please let me know and I will add them for the next
1013 # release.
1014 #
1015 # - The -r option prevents removing of empty menu entries and lines which
1016 # makes things much more readable.
1017 #
1018 # - To prevent any other app from overwriting your menu
1019 # you can change the menu name in .fluxbox/init to:
1020 # session.menuFile: /home/you/.fluxbox/my-menu
1021
1022 EOF
1023
1024 echo "[begin] (${MENUTITLE})" >> ${MENUFILENAME}
1025
1026 append "[exec] (${DEFAULT_TERMNAME}) {${DEFAULT_TERM}}"
1027
1028 case "$DEFAULT_BROWSERNAME" in
1029 links|w3m|lynx) append "[exec] (${DEFAULT_BROWSERNAME}) {${DEFAULT_TERM} -e ${DEFAULT_BROWSER} ${HOMEPAGE}}" ;;
1030 firefox|firebird|mozilla|phoenix|galeon|dillo|netscape) append "[exec] (${DEFAULT_BROWSERNAME}) {${DEFAULT_BROWSER}}" ;;
1031 konqueror) append "[exec] (konqueror) {kfmclient openProfile webbrowsing}" ;;
1032 opera) append "[exec] (opera) {env QT_XFT=true opera}" ;;
1033 MozillaFirebird) append "[exec] (firebird) {MozillaFirebird}" ;;
1034 MozillaFirefox) append "[exec] (firefox) {MozillaFirefox}" ;;
1035 *) append "[exec] ($DEFAULT_BROWSERNAME) {$DEFAULT_BROWSER}" ;;
1036 esac
1037
1038 find_it fbrun append "[exec] (${RUNCOMMAND}) {fbrun $FBRUNOPTIONS}"
1039
1040
1041 append_submenu "${TERMINALMENU}"
1042 normal_find xterm gnome-terminal Eterm konsole aterm rxvt
1043 append_menu_end
1044
1045
1046 append_submenu "${NETMENU}"
1047 append_submenu "${BROWSERMENU}"
1048 normal_find firefox mozilla-firefox MozillaFirefox galeon mozilla dillo netscape
1049 find_it links append "[exec] (links-graphic) {links -driver x ${HOMEPAGE}}"
1050 find_it opera append "[exec] (opera) {env QT_XFT=true opera}"
1051 find_it konqueror append "[exec] (konqueror) {kfmclient openProfile webbrowsing}"
1052 find_it links append "[exec] (links) {${DEFAULT_TERM} -e links ${HOMEPAGE}}"
1053 find_it w3m append "[exec] (w3m) {${DEFAULT_TERM} -e w3m ${HOMEPAGE}}"
1054 find_it lynx append "[exec] (lynx) {${DEFAULT_TERM} -e lynx ${HOMEPAGE}}"
1055 append_menu_end
1056
1057 append_submenu IM
1058 normal_find gaim kopete gnomemeeting sim kadu
1059 find_it licq append "[exec] (licq) {env QT_XFT=true licq}"
1060 append_menu_end
1061
1062 append_submenu Mail
1063 normal_find sylpheed kmail evolution thunderbird
1064 find_it mutt append "[exec] (mutt) {${DEFAULT_TERM} -e mutt}"
1065 append_menu_end
1066
1067 append_submenu IRC
1068 normal_find xchat ksirc vyqchat lostirc logui konversation kvirc
1069 find_it irssi append "[exec] (irssi) {${DEFAULT_TERM} -e irssi}"
1070 find_it BitchX append "[exec] (BitchX) {${DEFAULT_TERM} -e BitchX -N}" || \
1071 find_it bitchx append "[exec] (BitchX) {${DEFAULT_TERM} -e bitchx -N}"
1072 find_it ircii append "[exec] (ircii) {${DEFAULT_TERM} -e ircii -s}"
1073 find_it epic4 append "[exec] (epic4) {${DEFAULT_TERM} -e epic4}"
1074 find_it weechat append "[exec] (weechat) {${DEFAULT_TERM} -e weechat}"
1075 find_it ninja append "[exec] (ninja) {${DEFAULT_TERM} -e ninja}"
1076 append_menu_end
1077
1078 append_submenu P2P
1079 normal_find gtk-gnutella lopster nicotine pyslsk xmule amule dcgui-qt
1080 find_it TekNap append "[exec] (TekNap) {${DEFAULT_TERM} -e TekNap}"
1081 find_it giFTcurs append "[exec] (giFTcurs) {${DEFAULT_TERM} -e giFTcurs}"
1082 append_menu_end
1083
1084 append_submenu ftp
1085 normal_find gftp IglooFTP-PRO
1086 find_it ncftp append "[exec] (ncftp) {${DEFAULT_TERM} -e ncftp}"
1087 find_it pftp append "[exec] (pftp) {${DEFAULT_TERM} -e pftp}"
1088 find_it ftp append "[exec] (ftp) {${DEFAULT_TERM} -e ftp}"
1089 find_it lftp append "[exec] (lftp) {${DEFAULT_TERM} -e lftp}"
1090 find_it yafc append "[exec] (yafc) {${DEFAULT_TERM} -e yafc}"
1091 append_menu_end
1092
1093 normal_find pan xnmap skype ftd
1094
1095 append_menu_end
1096
1097 append_submenu "${EDITORMENU}"
1098 normal_find gvim bluefish nedit gedit xedit kword kwrite kate anjuta \
1099 wings xemacs emacs
1100 find_it nano append "[exec] (nano) {${DEFAULT_TERM} -e nano}"
1101 find_it vi append "[exec] (vi) {${DEFAULT_TERM} -e vi}" ||\
1102 find_it vim append "[exec] (vim) {${DEFAULT_TERM} -e vim}"
1103 find_it zile append "[exec] (zile) {${DEFAULT_TERM} -e zile}"
1104 find_it jed append "[exec] (jed) {${DEFAULT_TERM} -e jed}"
1105 find_it emacs append "[exec] (emacs-nw) {${DEFAULT_TERM} -e emacs -nw}"
1106 find_it xemacs append "[exec] (xemacs-nw) {${DEFAULT_TERM} -e xemacs -nw}"
1107 append_menu_end
1108
1109 append_submenu "${FILEUTILSMENU}"
1110 normal_find konqueror gentoo krusader linuxcmd rox tuxcmd krename
1111 find_it nautilus append "[exec] (nautilus) {nautilus --no-desktop}"
1112 find_it mc append "[exec] (mc) {${DEFAULT_TERM} -e mc}"
1113 append_menu_end
1114
1115 append_submenu "${MULTIMEDIAMENU}"
1116 append_submenu "${GRAPHICMENU}"
1117 normal_find gimp xv gqview showimg xpaint kpaint kiconedit \
1118 ee xzgv xscreensaver-demo xlock
1119 find_it xnview append "[exec] (xnview browser) {xnview -browser}"
1120 find_it blender append "[exec] (blender) {blender -w}"
1121 find_it gears append "[exec] (Mesa gears) {gears}"
1122 find_it morph3d append "[exec] (Mesa morph) {morph3d}"
1123 find_it reflect append "[exec] (Mesa reflect) {reflect}"
1124 append_menu_end
1125
1126 append_submenu "${MUSICMENU}"
1127 normal_find xmms noatun alsaplayer gqmpeg aumix xmixer gmix kmix kscd \
1128 grecord kmidi xplaycd soundtracker grip easytag audacity \
1129 zinf rhythmbox kaboodle beep-media-player lastfm
1130 find_it cdcd append "[exec] (cdcd) {${DEFAULT_TERM} -e cdcd}"
1131 find_it cplay append "[exec] (cplay) {${DEFAULT_TERM} -e cplay}"
1132 find_it alsamixer append "[exec] (AlsaMixer) {${DEFAULT_TERM} -e alsamixer}"
1133 append_menu_end
1134
1135
1136 append_submenu "${VIDEOMENU}"
1137 normal_find xine aviplay gtv gmplayer xmovie xcdroast xgdb realplay xawtv
1138 find_it dvdrip append "[exec] (dvdrip) {nohup dvdrip}"
1139 append_menu_end
1140
1141 append_submenu "${XUTILSMENU}"
1142 normal_find xfontsel xman xload xfigxbiff editres viewres xclock \
1143 xmag wmagnify gkrellm gkrellm2 vmware portagemaster celestia
1144 append_menu_end
1145 append_menu_end
1146
1147
1148 append_submenu "${OFFICEMENU}"
1149 normal_find xclock xcalc kcalc
1150 find_it gcalc append "[exec] (gcalc) {gcalc}" || \
1151 find_it gnome-calculator append "[exec] (gcalc) {gnome-calculator}"
1152
1153 for ext in s o xo; do
1154 find_it ${ext}office append "[exec] (Open Office) {${ext}office}"
1155 find_it ${ext}ocalc append "[exec] (OO Calc) {${ext}ocalc}"
1156 find_it ${ext}owriter append "[exec] (OO Writer) {${ext}owriter}"
1157 find_it ${ext}oimpress append "[exec] (OO Impress) {${ext}oimpress}"
1158 find_it ${ext}odraw append "[exec] (OO Draw) {${ext}odraw}"
1159 find_it ${ext}omath append "[exec] (OO Math) {${ext}omath}"
1160 find_it ${ext}opadmin append "[exec] (OO Printer Admin) {${ext}opadmin}"
1161 find_it mrproject append "[exec] (Mr.Project) {mrproject}"
1162 done
1163
1164 normal_find abiword kword wordperfect katoob acroread xpdf
1165 append_menu_end
1166
1167 append_submenu "${GAMESMENU}"
1168 normal_find bzflag gnibbles gnobots2 tuxpuck gataxx glines \
1169 gnect mahjongg gnomine gnome-stones gnometris gnotravex \
1170 gnotski iagno knights eboard xboard scid freecell pysol \
1171 gtali tuxracer xpenguins xsnow xeyes xpenguins smclone \
1172 openmortal quake2 quake3 skoosh same-gnome enigma xbill \
1173 icebreaker scorched3d sol dosbox
1174 find_it et append "[exec] (Enemy Territory) {et}"
1175 find_it ut append "[exec] (Unreal Tournament) {ut}"
1176 find_it ut2003 append "[exec] (Unreal Tournament 2003) {ut2003}"
1177 append_menu_end
1178
1179 # We'll only use this once
1180 ETCAPPLNK=/etc/X11/applnk
1181 # gnome menu
1182 if [ "${GNOMEMENU}" ]; then
1183 append_submenu "${GNOMEMENUTEXT}"
1184 recurse_dir_menu "${GNOME_PREFIX}/share/gnome/apps" "$HOME/.gnome/apps" ${ETCAPPLNK}
1185 append_menu_end
1186 unset ETCAPPLNK
1187 fi
1188
1189 # kde submenu
1190 if [ -d "${KDE_PREFIX}/share/applnk/" -a "${KDEMENU}" ]; then
1191 append_submenu "${KDEMENUTEXT}"
1192 recurse_dir_menu "${KDE_PREFIX}/share/applnk" "$HOME/.kde/share/applnk" ${ETCAPPLNK}
1193 append_menu_end
1194 unset ETCAPPLNK
1195 fi
1196
1197 #User menu
1198 if [ -r "${USERMENU}" ]; then
1199 cat ${USERMENU} >> ${MENUFILENAME}
1200 fi
1201
1202 append_submenu "${FBSETTINGSMENU}"
1203 append "[config] (${CONFIGUREMENU})"
1204
1205 append_menu "[submenu] (${SYSTEMSTYLES}) {${STYLEMENUTITLE}}"
1206 append "[stylesdir] (${PREFIX}/share/fluxbox/styles)"
1207 append "[stylesdir] (/usr/share/commonbox/styles/)"
1208 append_menu_end
1209
1210 append_menu "[submenu] (${USERSTYLES}) {${STYLEMENUTITLE}}"
1211 append "[stylesdir] (~/.fluxbox/styles)"
1212 append_menu_end
1213
1214 # Backgroundmenu
1215 addbackground() {
1216 picturename=${1##*/}
1217 append "[exec] (${picturename%.???}) {fbsetbg -a \"$1\" }"
1218 }
1219
1220 if [ "$BACKGROUNDMENUITEM" = yes ]; then
1221 IFS=: # set delimetor for find
1222 NUMBER_OF_BACKGROUNDS=`find $BACKGROUND_DIRS -follow -type f 2> /dev/null|wc -l`
1223 if [ "$NUMBER_OF_BACKGROUNDS" -gt 0 ]; then
1224 append_menu "[submenu] (${BACKGROUNDMENU}) {${BACKGROUNDMENUTITLE}}"
1225 append "[exec] (${RANDOMBACKGROUND}) {fbsetbg -r ${HOME}/.fluxbox/backgrounds}"
1226 if [ "$NUMBER_OF_BACKGROUNDS" -gt 30 ]; then
1227 menucounter=1 ; counter=1
1228 append_menu "[submenu] (${BACKGROUNDMENU} $menucounter) {${BACKGROUNDMENUTITLE}}"
1229 find $BACKGROUND_DIRS -follow -type f|sort|while read i; do
1230 counter=`expr $counter + 1`
1231 if [ $counter -eq 30 ]; then
1232 counter=1
1233 menucounter=`expr $menucounter + 1`
1234 append_menu_end
1235 append_menu "[submenu] (${BACKGROUNDMENU} $menucounter) {${BACKGROUNDMENUTITLE}}"
1236 fi
1237 addbackground "$i"
1238 done
1239 append_menu_end
1240 else
1241 find $BACKGROUND_DIRS -follow -type f|sort|while read i; do
1242 addbackground "$i"
1243 done
1244 fi
1245 append_menu_end
1246 else
1247 echo "Warning: You wanted a background-menu but I couldn't find any backgrounds in:
1248 $BACKGROUND_DIRS" >&2
1249 fi
1250 fi
1251
1252 append "[workspaces] (${WORKSPACEMENU})"
1253
1254 append_submenu ${TOOLS}
1255 normal_find fluxconf fluxkeys fluxmenu
1256 # if gxmessage exitst use it; else use xmessage
1257 find_it gxmessage append \
1258 "[exec] (${WINDOWNAME}) {xprop WM_CLASS|cut -d \\\" -f 2|gxmessage -file - -center}" || \
1259 find_it xmessage append \
1260 "[exec] (${WINDOWNAME}) {xprop WM_CLASS|cut -d \\\" -f 2|xmessage -file - -center}"
1261 find_it import append "[exec] (${SCREENSHOT}) {import screenshot.png && qiv -W 50 screenshot.png}"
1262 find_it fbrun append "[exec] (${RUNCOMMAND}) {fbrun $FBRUNOPTIONS}"
1263 find_it switch append "[exec] (gtk-theme-switch) {switch}"
1264 find_it switch2 append "[exec] (gtk2-theme-switch) {switch2}"
1265 find_it fluxbox-generate_menu append "[exec] (${REGENERATEMENU}) {fluxbox-generate_menu}"
1266 append_menu_end
1267
1268 append_submenu ${WINDOWMANAGERS}
1269 #hard to properly maintain since there are so many exceptions to the rule.
1270 for wm in icewm ion kde sawfish enlightenment fvwm openbox evilwm waimea xfce pekwm; do
1271 find_it start${wm} append "[restart] (${wm}) {start${wm}}" ||\
1272 find_it ${wm} append "[restart] (${wm}) {${wm}}"
1273 done
1274 find_it startgnome append "[restart] (gnome) {startgnome}" ||\
1275 find_it gnome-session append "[restart] (gnome) {gnome-session}"
1276
1277 find_it startwindowmaker append "[restart] (windowmaker) {startwindowmaker}" ||\
1278 find_it wmaker append "[restart] (windowmaker) {wmaker}"
1279 append_menu_end
1280 find_it xlock append "[exec] (${LOCKSCREEN}) {xlock}" ||\
1281 find_it xscreensaver-command append "[exec] (${LOCKSCREEN}) {xscreensaver-command -lock}"
1282 append "[commanddialog] (${FLUXBOXCOMMAND})"
1283 append "[reconfig] (${RELOADITEM})"
1284 append "[restart] (${RESTARTITEM})"
1285 append "[separator]"
1286 append "[exit] (${EXITITEM})"
1287
1288 append_menu_end
1289 append_menu_end
1290
1291 # this function removes empty menu items. It can not yet remove nested
1292 # empty submenus :\
1293
1294 if [ ! "${REMOVE}" ]; then
1295 clean_up
1296 fi
1297
1298 if [ -z "$INSTALL" ]; then
1299 if [ -z "$CHECKINIT" ]; then
1300 INITMENUFILENAME=`awk '/menuFile/ {print $2}' $HOME/.fluxbox/init`
1301 cmp $INITMENUFILENAME $MENUFILENAME 2> /dev/null
1302 if [ $? -ne 0 ]; then
1303 echo "Warning: Your $HOME/.fluxbox/init does not point to $MENUFILENAME but to $INITMENUFILENAME" >&2
1304 fi
1305 fi
1306 echo 'Menu successfully generated.'
1307 echo 'Use fluxbox-generate_menu -h to read about all the latest features.'
1308 fi