LINUX.ORG.RU

Помогите написать или переделать скрипт

 


0

1

Пилю возможность управления питанием пк в i3

Установил пакет:

sudo apt-get install gxmessage

Создал скрипт:

#!/bin/bash
 
gxmessage "Завершение работы" -center -title "Take action" -font "Sans bold 10" -default "Отмена" -buttons "_Отмена":1,"_Гибернация":2,"_Перезагрузка":3,"_Выключение":4,"_Выход из сеанса":5 >/dev/null 
 
case $? in
	1)
		echo "Exit";;
	2)
		dbus-send --system --print-reply  --dest=org.freedesktop.UPower /org/freedesktop/UPower  org.freedesktop.UPower.Hibernate;;
	3)
		dbus-send --system --print-reply  --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager  org.freedesktop.ConsoleKit.Manager.Restart;;
	4)
		dbus-send --system --print-reply  --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager  org.freedesktop.ConsoleKit.Manager.Stop;;
	5)
		openbox --exit;;
esac

с названием oblogout и поместил его в ~/bin, дал права на запуск.

В конфиге i3 for_window [class=«Gxmessage»] floating enable border normal bindsym $mod+minus scratchpad show

В итоге: окно появляется, но ни одна из кнопок не действует при клике по ним.

Но дело в том что скрипт написан для openbox, а мне надо для xfce4.

Прошу помочь решить проблему.

В консоли-то запускалось? Что говорит? У меня так, например, для «Гибернация», но тут Arch с systemd, гибернация не используется.

~ $ bash your_script.sh 
Error org.freedesktop.DBus.Error.UnknownMethod: Метод «Hibernate» отсутствует

Nirvandil ()
Ответ на: комментарий от Nirvandil

Вот что говорит консоль по каждой из команд:

Гибернация: Error org.freedesktop.DBus.Error.UnknownMethod: Метод «Hibernate» отсутствует

Выключение и перезагрузка: Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.ConsoleKit was not provided by any .service files

Выход из системы: /bin/oblogout: строка 15: xfce4: команда не найдена

Novichok2014 ★★ ()
Ответ на: комментарий от Novichok2014

Посмотри readme к этому пакету. Самая последняя секция #configuration. Там что-то про настройку logout.

logon ()

В xfce4 есть (ну, по крайней мере, когда-то был) xfce4-session-logout. Но чтобы эта прога работала, ей нужна активная dbus-сессия. Но был баг, из-за которого управление питанием через d-bus не работало — можно было только выходить из сессии, но не выключать и перезагружать машину. В слаквари обходились так:

#!/bin/sh
#  xinitrc.xfce - modified to work around xfce4session bug
#                 https://bugzilla.xfce.org/show_bug.cgi?id=8841


########################################################################
##  Merge in defaults and keymaps                                     ##
########################################################################

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

if [ -f $sysresources ]; then
    /usr/bin/xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    /usr/bin/xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
    /usr/bin/xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
    /usr/bin/xmodmap $usermodmap
fi

########################################################################
##  Start xfce Desktop Environment                                    ##
########################################################################

if [ -z "$DESKTOP_SESSION" -a -x /usr/bin/ck-launch-session ]; then
  exec ck-launch-session dbus-launch --exit-with-session /usr/bin/startxfce4
else
  exec dbus-launch --exit-with-session /usr/bin/startxfce4
fi
В зависимости от используемого DM, возможно, потребуется прямой запуск startxfce4, не через dbus-launch (или ck-launch).

yars068 ★★★★ ()
Последнее исправление: yars068 (всего исправлений: 1)
Ответ на: комментарий от Novichok2014

Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.ConsoleKit

consolekit поставь.

yars068 ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.