Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2015 - (show annotations) (download)
Mon Aug 13 10:05:03 2012 UTC (11 years, 8 months ago) by niro
File size: 4370 byte(s)
-use find to prevent annoying error messages if nothing was found
1 # $Id$
2
3 # todo wallpaper?
4
5 # what does this plugin provide?
6 provide fluxbox
7
8 # helper
9 helper_rebuild_fluxbox_menu()
10 {
11 local MMINCLUDE
12 local CONFIG
13
14 MMINCLUDE="${MCORE_CONFIG_PATH}/fluxbox/mcore-menu-include"
15 CONFIG="${MROOT}/${MMINCLUDE}"
16 clearconfig
17 for file in $(find ${MROOT}/${MCORE_CONFIG_PATH}/fluxbox/menu -type f)
18 do
19 [[ ! -z ${MROOT} ]] && file=$(echo ${file} | sed "s:${MROOT}::")
20 addconfig "[include] (${file})"
21 done
22
23 # rebuild the user menu too atm
24 CONFIG="${MROOT}/${MCORE_UNPRIV_HOME}/.fluxbox/menu"
25 if [[ ! -d ${MROOT}/${MCORE_UNPRIV_HOME}/.fluxbox ]]
26 then
27 install -o ${MCORE_UNPRIV_USER} -o ${MCORE_UNPRIV_GROUP} -d ${MROOT}/${MCORE_UNPRIV_HOME}/.fluxbox
28 fi
29
30 # fluxbox menu header
31 clearconfig
32 local ver="$(< ${MROOT}/etc/mageversion)"
33 addconfig "[begin] (mCore-${ver} #${MCORE_SERIAL})"
34
35 # add a newline (maybe there is no crlf in the header)
36 addconfig
37
38 # our specific menu include
39 addconfig "[include] (${MMINCLUDE})"
40
41 # fluxbox menu footer
42 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)
49 addconfig
50 }
51
52 helper_rebuild_fluxbox_autostart()
53 {
54 local CONFIG
55
56 CONFIG="${MROOT}/${MCORE_UNPRIV_HOME}/.fluxbox/apps"
57 clearconfig
58 for file in $(find ${MROOT}/${MCORE_CONFIG_PATH}/fluxbox/autostart -type f)
59 do
60 addconfig "$(< ${file})"
61 done
62
63 # add a newline (maybe there is no crlf in the footer)
64 addconfig
65 }
66
67 help_fluxbox_menuitem()
68 {
69 mecho "get fluxbox.menuitem"
70 mecho " Shows all custom added menuitems of fluxbox."
71 mecho
72 mecho "set fluxbox.menuitem [action] [name] [exec] [workdir] [icon]"
73 mecho " Adds or deletes a fluxbox menu entry."
74 mecho " Actions:"
75 mecho " add - adds a menuitem"
76 mecho " del - deletes a menuitem"
77 mecho
78 mecho " name - menu entry name"
79 mecho " exec - executable to start"
80 mecho " workdir - working directory for the executable - optional"
81 mecho " icon - pixmap icon of the entry - optional"
82 mecho
83 mecho " If no [name] given, all entries will be deleted."
84 }
85
86 # set_fluxbox_menuitem $name $exec $workdir $icon
87 set_fluxbox_menuitem()
88 {
89 local action="$1"
90 local name="$2"
91 local exec="$3"
92 local workdir="$4"
93 local icon="$5"
94 local CONFIG
95
96 [[ -z ${action} ]] && help_fluxbox_menuitem && return 1
97
98 case "${action}" in
99 add)
100 [[ -z ${name} ]] && help_fluxbox_menuitem && return 1
101 [[ -z ${exec} ]] && help_fluxbox_menuitem && return 1
102 CONFIG="${MROOT}/${MCORE_CONFIG_PATH}/fluxbox/menu/${name}"
103 clearconfig
104 addconfig "[exec] (${name}) {${exec}}"
105 ;;
106 del)
107 if [[ -f ${MROOT}/${MCORE_CONFIG_PATH}/fluxbox/menu/${name} ]]
108 then
109 rm ${MROOT}/${MCORE_CONFIG_PATH}/fluxbox/menu/"${name}"
110 elif [[ -z ${name} ]]
111 then
112 # delete all items
113 rm ${MROOT}/${MCORE_CONFIG_PATH}/fluxbox/menu/*
114 fi
115 ;;
116 *)
117 help_fluxbox_menuitem && return 1
118 ;;
119 esac
120
121 # rebuild the menu now
122 helper_rebuild_fluxbox_menu
123 }
124
125 # get_fluxbox_menuitem
126 get_fluxbox_menuitem()
127 {
128 list_files_in_directory ${MROOT}/${MCORE_CONFIG_PATH}/fluxbox/menu
129 }
130
131 help_fluxbox_theme()
132 {
133 mecho "get fluxbox.theme [method]"
134 mecho " Displays current installed or system-wide available themes."
135 mecho " Methods:"
136 mecho " system - shows systemwide available themes"
137 mecho " current - shows current selected theme"
138 mecho
139 mecho "set fluxbox.theme [theme]"
140 mecho " Sets a default theme for fluxbox."
141 }
142
143 set_fluxbox_theme()
144 {
145 local theme="$1"
146 local stylesdir="/usr/share/fluxbox/styles"
147
148 [[ -z ${theme} ]] && help_fluxbox_theme && return 1
149 [[ ! -x $(which fluxbox-remote) ]] && eecho "fluxbox-remote missing! Aborted" && return 1
150
151 if [[ -e ${stylesdir}/${theme} ]]
152 then
153 x11runas "fluxbox-remote 'SetStyle ${stylesdir}/${theme}'"
154 else
155 eechoe "Theme '${theme}' does not exist!"
156 fi
157 }
158
159 get_fluxbox_theme()
160 {
161 local method="$1"
162 local stylesdir="/usr/share/fluxbox/styles"
163 local value
164 local i
165
166 [[ -z ${method} ]] && help_fluxbox_theme && return 1
167
168 case "${method}" in
169 system)
170 list_files_in_directory -type d -mindepth 1 -maxdepth 1 ${MROOT}/${stylesdir}
171 ;;
172
173 current)
174 value=$(grep -i '^session.stylefile' ${MROOT}/${MCORE_UNPRIV_HOME}/.fluxbox/init | sed 's:.*/\(.*\):\1:')
175 rvecho "${value}"
176 ;;
177 *) help_fluxbox_theme && return 1 ;;
178 esac
179 }