Magellan Linux

Diff of /mcore-src/trunk/mcore-tools/daemon/client/include/fluxbox.client.class

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

mcore-src/trunk/mcore-tools/daemon/client/include/session.client.class revision 1248 by niro, Wed Feb 2 20:20:24 2011 UTC mcore-src/trunk/mcore-tools/daemon/client/include/fluxbox.client.class revision 1642 by niro, Thu Mar 10 18:12:24 2011 UTC
# Line 1  Line 1 
1  # $Id$  # $Id$
2    
3    # todo wallpaper?
4    
5  # what does this plugin provide?  # what does this plugin provide?
6  provide fluxbox  provide fluxbox
7    
8  # helper  # helper
9  helper_session_rebuild_fluxbox_menu()  helper_rebuild_fluxbox_menu()
10  {  {
11   :> ${SETTINGSPATH}/fluxbox/alxmenu   local MMINCLUDE
12     local CONFIG
13    
14     MMINCLUDE="${MCORE_CONFIG_PATH}/fluxbox/mcore-menu-include"
15     CONFIG="${MMINCLUDE}"
16     clearconfig
17    
18   for file in ${SETTINGSPATH}/fluxbox/menu/*   for file in ${MCORE_CONFIG_PATH}/fluxbox/menu/*
19   do   do
20   echo "[include] (${file})" >> ${SETTINGSPATH}/fluxbox/alxmenu   addconfig "[include] (${file})"
21   done   done
22    
23   # rebuild the user menu too atm   # rebuild the user menu too atm
24   cat ${ALX_SKELETONS}/fluxbox/menu.header > ${ALX_UNPRIV_HOME}/.fluxbox/menu   CONFIG="${MCORE_UNPRIV_HOME}/.fluxbox/menu"
25     if [[ ! -d ${MCORE_UNPRIV_HOME}/.fluxbox ]]
26     then
27     install -o ${MCORE_UNPRIV_USER} -o ${MCORE_UNPRIV_GROUP} -d ${MCORE_UNPRIV_HOME}/.fluxbox
28     fi
29    
30   # now fix it with proper messages :P   # fluxbox menu header
31     clearconfig
32   local ver="$(< /etc/mageversion)"   local ver="$(< /etc/mageversion)"
33   sed -i "s:@CHANGEME@:tinyALX-${ver}  #${ALX_SERIAL}:g" ${ALX_UNPRIV_HOME}/.fluxbox/menu   addconfig "[begin] (mCore-${ver}  #${MCORE_SERIAL})"
34    
35   # add a newline (maybe there is no crlf in the header)   # add a newline (maybe there is no crlf in the header)
36   echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu   addconfig
37    
38   # our specific include   # our specific menu include
39   echo "[include] (${SETTINGSPATH}/fluxbox/alxmenu)" >> ${ALX_UNPRIV_HOME}/.fluxbox/menu   addconfig "[include] (${MMINCLUDE})"
40    
41   # fluxbox menu footer   # fluxbox menu footer
42   cat ${ALX_SKELETONS}/fluxbox/menu.footer >> ${ALX_UNPRIV_HOME}/.fluxbox/menu   addconfig '[separator]'
43     addconfig '[exit] (Abmelden)'
44     addconfig '[exec] (Neustarten) {sudo /sbin/reboot}'
45     addconfig '[exec] (Herunterfahren) {sudo /sbin/halt}'
46     addconfig '[end]'
47    
48   # add a newline (maybe there is no crlf in the footer)   # add a newline (maybe there is no crlf in the footer)
49   echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu   addconfig
50  }  }
51    
52  help_session_addmenuitem()  help_fluxbox_menuitem()
53  {  {
54   mecho "set session.addmenuitem [name] [exec] [workdir] [icon]"   mecho "get fluxbox.menuitem"
55   mecho " adds a fluxbox menu entry"   mecho " Shows all custom added menuitems of fluxbox."
56   mecho "  name    - menu entry name"   mecho
57   mecho "  exec    - executable to start"   mecho "set fluxbox.menuitem [action] [name] [exec] [workdir] [icon]"
58   mecho "  workdir - working directory for the executable - optional"   mecho " Adds or deletes a fluxbox menu entry."
59   mecho "  icon    - pixmap icon of the entry - optional"   mecho " Actions:"
60     mecho "   add     - adds a menuitem"
61     mecho "   del     - deletes a menuitem"
62     mecho
63     mecho "   name    - menu entry name"
64     mecho "   exec    - executable to start"
65     mecho "   workdir - working directory for the executable - optional"
66     mecho "   icon    - pixmap icon of the entry - optional"
67     mecho
68     mecho " If no [name] given, all entries will be deleted."
69  }  }
70    
71  # set_session_addmenuitem $name $exec $workdir $icon  # set_fluxbox_menuitem $name $exec $workdir $icon
72  set_session_addmenuitem()  set_fluxbox_menuitem()
73  {  {
74   local name="$1"   local action="$1"
75   local exec="$2"   local name="$2"
76   local workdir="$3"   local exec="$3"
77   local icon="$4"   local workdir="$4"
78     local icon="$5"
79   echo "[exec] (${name}) {${exec}}" > ${SETTINGSPATH}/fluxbox/menu/${name}   local CONFIG
80    
81     [[ -z ${action} ]] && help_fluxbox_menuitem && return 1
82    
83     case "${action}" in
84     add)
85     [[ -z ${name} ]] && help_fluxbox_menuitem && return 1
86     [[ -z ${exec} ]] && help_fluxbox_menuitem && return 1
87     CONFIG="${MCORE_CONFIG_PATH}/fluxbox/menu/${name}"
88     clearconfig
89     addconfig "[exec] (${name}) {${exec}}"
90     ;;
91     del)
92     if [[ -f ${MCORE_CONFIG_PATH}/fluxbox/menu/${name} ]]
93     then
94     rm ${MCORE_CONFIG_PATH}/fluxbox/menu/"${name}"
95     elif [[ -z ${name} ]]
96     then
97     # delete all items
98     rm ${MCORE_CONFIG_PATH}/fluxbox/menu/*
99     fi
100     ;;
101     *)
102     help_fluxbox_menuitem && return 1
103     ;;
104     esac
105    
106   # rebuild the menu now   # rebuild the menu now
107   helper_session_rebuild_fluxbox_menu   helper_rebuild_fluxbox_menu
108  }  }
109    
110  help_session_delmenuitem()  # get_fluxbox_menuitem
111    get_fluxbox_menuitem()
112  {  {
113   mecho "set session.delmenuitem [name]"   local i
114   mecho " deletes a fluxbox menu entry"   local item
115   mecho "  name - menu entry name"  
116     for i in $(find ${MCORE_CONFIG_PATH}/fluxbox/menu -type f | sort)
117     do
118     item="${item} $(basename ${i})"
119     done
120    
121     rvecho "${item}"
122  }  }
123    
124  # set_session_delmenuitem [$name]  help_fluxbox_theme()
 set_session_delmenuitem()  
125  {  {
126   local name="$1"   mecho "get fluxbox.theme [method]"
127     mecho " Displays current installed or system-wide available themes."
128     mecho " Methods:"
129     mecho "   system  - shows systemwide available themes"
130     mecho "   current - shows current selected theme"
131     mecho
132     mecho "set fluxbox.theme [theme]"
133     mecho " Sets a default theme for fluxbox."
134    }
135    
136   if [[ -f ${SETTINGSPATH}/fluxbox/menu/${name} ]]  set_fluxbox_theme()
137   then  {
138   rm ${SETTINGSPATH}/fluxbox/menu/${name}   local theme="$1"
139   elif [[ -z ${name} ]]   local stylesdir="/usr/share/fluxbox/styles"
140    
141     [[ -z ${theme} ]] && help_fluxbox_theme && return 1
142     [[ ! -x $(which fluxbox-remote) ]] && eecho "fluxbox-remote missing! Aborted" && return 1
143    
144     if [[ -e ${stylesdir}/${theme} ]]
145   then   then
146   # delete all items   x11runas "fluxbox-remote 'SetStyle ${stylesdir}/${theme}'"
147   rm ${SETTINGSPATH}/fluxbox/menu/*   else
148     eechoe "Theme '${theme}' does not exist!"
149   fi   fi
150    }
151    
152   # rebuild the menu now  get_fluxbox_theme()
153   helper_session_rebuild_fluxbox_menu  {
154     local method="$1"
155     local stylesdir="/usr/share/fluxbox/styles"
156     local value
157     local i
158    
159     [[ -z ${method} ]] && help_fluxbox_theme && return 1
160    
161     case "${method}" in
162     system)
163     for i in $(find ${stylesdir} -mindepth 1 -maxdepth 1 | sort)
164     do
165     value="${value} $(basename ${i})"
166     done
167     rvecho "${value}"
168     ;;
169    
170     current)
171     value=$(grep -i '^session.stylefile' ${MCORE_UNPRIV_HOME}/.fluxbox/init | sed 's:.*/\(.*\):\1:')
172     rvecho "${value}"
173     ;;
174     *) help_fluxbox_theme && return 1 ;;
175     esac
176  }  }

Legend:
Removed from v.1248  
changed lines
  Added in v.1642