Portál AbcLinuxu, 27. října 2025 11:11
#! /bin/bash
# Shutdown menu
action=$(yad \
--width 290 \
--entry \
--title "Exit" \
--window-icon "system-shutdown" \
--center \
--button="gtk-close:1" \
--button="_Switch User:2" \
--button="gtk-ok:0" \
--text " Choose action:" \
--entry-text \
"Logout" "Reboot" "Power Off" "Suspend" "Hibernate" "Restart IceWM")
ret=$?
[[ $ret -eq 1 ]] && exit 0
if [[ $ret -eq 2 ]]; then
gdmflexiserver &
exit 0
fi
case $action in
Logout*)
case $(wmctrl -m | grep Name) in
*IceWM*) cmd="pkill -u $USER" ;;
*Openbox*) cmd="openbox --exit" ;;
*FVWM*) cmd="FvwmCommand Quit" ;;
*Metacity*) cmd="gnome-save-session --kill" ;;
*) exit 1 ;;
esac
;;
Reboot*) cmd= "sudo reboot" ;;
Power*) cmd= "sudo poweroff" ;;
Suspend*) cmd="dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.U$
Hibernate*) cmd="dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop$
Restart*) cmd="killall -SIGHUP icewm" ;;
*) exit 1 ;;
esac
eval exec $cmd
Avsak Logout,Shutdown a Reboot nefunguje.Zrejme to ma nieco s povolenim spusteniu tychto prikazov.
V /etc/sudoers.d mam subor local s tymto obsahom>
ALL ALL = NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff, /sbin/shutdownNevie mi niekto poradit v com je chyba? Dakujem
#includedir /etc/sudoers.d user ALL=NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff, /sbin/shutdownTakto mi to funguje.
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.Reboot" boolean:true dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true
Reboot*) cmd= "sudo reboot" ;;ta mezera mezi rovnítkem a uvozovkou by neměla byt. Nebo na řádku kde je:
Suspend*) cmd="dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.U$jsou tři uvozovky, buď jedna chybí nebo jedna přebývá. Nevím jak ten příkaz má vypadat, ale ta proměnná cmd se takto nejspíš nastaví špatně. Normálně se to u icewm dělá tak, že se vytvoří soubor
$HOME/.icewm/prefoverridea tam se ty příkazy nadefinujou
LogoutCommand="" ShutdownCommand="" RebootCommand="" SuspendCommand=""
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.