projects
/
grml-quickconfig.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Provide more detailed network information
[grml-quickconfig.git]
/
quickconfig
/
030-wm.sh
diff --git
a/quickconfig/030-wm.sh
b/quickconfig/030-wm.sh
index
a2a34a6
..
2a9dd69
100644
(file)
--- a/
quickconfig/030-wm.sh
+++ b/
quickconfig/030-wm.sh
@@
-1,12
+1,20
@@
# window manager module for grml-quickconfig
# window manager module for grml-quickconfig
-LINE='print_line "Start
${HIGHLIGHT}x${NORMAL} (${HIGHLIGHT_NAME}grml-x${NORMAL}
)"'
+LINE='print_line "Start
^x (/grml-x/
)"'
KEY=(x)
FUNCTION='wm_menu'
display_entry() {
KEY=(x)
FUNCTION='wm_menu'
display_entry() {
- return 0
+ . /etc/grml/script-functions
+ check4progs grml-x >/dev/null 2>&1
+ return $?
}
}
+if [ "$(cat /proc/1/comm 2>/dev/null)" = "systemd" ] ; then
+ SYSTEMD=true
+else
+ SYSTEMD=false
+fi
+
# variable definition {{{
typeset -A wms
typeset -A available
# variable definition {{{
typeset -A wms
typeset -A available
@@
-22,6
+30,7
@@
wms=(
v fvwm
2 fvwm2
c fvwm-crystal
v fvwm
2 fvwm2
c fvwm-crystal
+ 3 i3
j jwm
o openbox
k pekwm
j jwm
o openbox
k pekwm
@@
-38,10
+47,11
@@
wms=(
print_available_wm() {
. /etc/grml/script-functions
LEN=0
print_available_wm() {
. /etc/grml/script-functions
LEN=0
+ AVAILABLE_WM_COUNT=0
local line
for key value in ${(kv)wms} ; do
local line
for key value in ${(kv)wms} ; do
- if check4progs $value >/dev/null ; then
+ if check4progs $value >/dev/null
2>&1
; then
available[$key]=$value
# test if word could be added to current line
if [ $((${(c)#value} + $LEN)) -ge $(($MAXLEN-9)) ] ; then
available[$key]=$value
# test if word could be added to current line
if [ $((${(c)#value} + $LEN)) -ge $(($MAXLEN-9)) ] ; then
@@
-51,6
+61,7
@@
print_available_wm() {
fi
line+="$(highlight_char $value $key) "
LEN=$((${(c)#value} + $LEN))
fi
line+="$(highlight_char $value $key) "
LEN=$((${(c)#value} + $LEN))
+ AVAILABLE_WM_COUNT=$(($AVAILABLE_WM_COUNT + 1))
fi
done
output+="$line"
fi
done
output+="$line"
@@
-68,6
+79,17
@@
wm_heading() {
# print windowm manager loop {{{
wm_menu() {
# print windowm manager loop {{{
wm_menu() {
+ if [ $AVAILABLE_WM_COUNT == 1 ]; then
+ if $SYSTEMD ; then
+ chvt 7
+ return
+ else
+ chgrp tty "$TTY"
+ chmod g+rw "$TTY"
+ run sudo -u grml grml-x
+ return
+ fi
+ fi
echo
wm_heading
for line in ${output} ; do
echo
wm_heading
for line in ${output} ; do
@@
-79,7
+101,15
@@
wm_menu() {
get_key INPUT
case $INPUT in
[${(k)available}])
get_key INPUT
case $INPUT in
[${(k)available}])
- run su grml -c "grml-x ${available[$INPUT]}"
+ if $SYSTEMD ; then
+ mkdir -p /var/run/grml-x/
+ echo "${available[$INPUT]}" > /var/run/grml-x/window-manager
+ chvt 7
+ else
+ chgrp tty "$TTY"
+ chmod g+rw "$TTY"
+ run sudo -u grml -c "grml-x ${available[$INPUT]}"
+ fi
;;
esac
}
;;
esac
}
@@
-88,4
+118,4
@@
wm_menu() {
print_available_wm
## END OF FILE #################################################################
print_available_wm
## END OF FILE #################################################################
-# vim:foldmethod=marker expandtab ai ft=zsh shiftwidth=
3
+# vim:foldmethod=marker expandtab ai ft=zsh shiftwidth=
2