В связи с повсеместным внедрением PolicyKit решил настроить энергосбережение компьютера и монтирование сменных носителей без использования привилегий, получаемых с помощью sudo.
Если в «продвинутых» рабочих окружениях (KDE, Gnome) это должно уже работать «из коробки», то в awesome нужно чуть «поработать напильником» :)
Убеждаюсь, что sys-auth/consolekit собран с поддержкой policykit:
Так как в качестве менеджера дисплеев я использую Slim, добавляю в файл ~/.xinitrc следующую строку:
В каталоге /etc/polkit-1/localauthority/50-local.d создаём файлы 01-local-consolekit.pkla:
01-local-upower.pkla:
*маленькая ремарка: так как ноутбуком я пользуюсь один, решил не создавать отдельную группу пользователей для управления энергосбережением, однако и разрешение только одному пользователю я считаю недостаточным , потому что иногда логинюсь под другим именем. Остановился на группе users.
Привёл файл ~/.config/awesome/shutdown_dialog.sh из поста «Меню выхода в awesome» к следующему виду:
Для того, чтобы заработало автомонтирование сменных носителей и возможность программного извлечения CD/DVD-дисков, следует создать файл
01-local-udisks.pkla
Если в «продвинутых» рабочих окружениях (KDE, Gnome) это должно уже работать «из коробки», то в awesome нужно чуть «поработать напильником» :)
Убеждаюсь, что sys-auth/consolekit собран с поддержкой policykit:
lupo@gentoo-laptop ~ % emerge -pv consolekit
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] sys-auth/consolekit-0.4.5-r1 USE="pam policykit -debug -doc -test" 0 kB
Total: 1 package (1 reinstall), Size of downloads: 0 kB
Так как в качестве менеджера дисплеев я использую Slim, добавляю в файл ~/.xinitrc следующую строку:
ck-launch-session awesome
В каталоге /etc/polkit-1/localauthority/50-local.d создаём файлы 01-local-consolekit.pkla:
[System Shutdown permissions for users]
Identity=unix-group:users
Action=org.freedesktop.consolekit.system.stop;org.freedesktop.consolekit.system.restart
ResultAny=yes
ResultInactive=no
ResultActive=no
01-local-upower.pkla:
[Suspend permissions for users]
Identity=unix-group:users
Action=org.freedesktop.upower.suspend
ResultAny=yes
ResultInactive=no
ResultActive=no
*маленькая ремарка: так как ноутбуком я пользуюсь один, решил не создавать отдельную группу пользователей для управления энергосбережением, однако и разрешение только одному пользователю я считаю недостаточным , потому что иногда логинюсь под другим именем. Остановился на группе users.
Привёл файл ~/.config/awesome/shutdown_dialog.sh из поста «Меню выхода в awesome» к следующему виду:
#!/bin/sh
ACTION=$(kdialog --radiolist "Опции выхода:" quit "Выйти" on halt "Выключить" off reboot "Перегрузить" off sleep "Усыпить" off)
if [ -n "${ACTION}" ];then
case $ACTION in
quit)
# pkill awesome
echo "awesome.quit()" | awesome-client
;;
halt)
# sudo halt
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit \
/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
;;
reboot)
# sudo reboot
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit \
/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
;;
sleep)
# sudo pm-suspend
dbus-send --system --print-reply --dest=org.freedesktop.UPower \
/org/freedesktop/UPower org.freedesktop.UPower.Suspend
;;
esac
fi
Для того, чтобы заработало автомонтирование сменных носителей и возможность программного извлечения CD/DVD-дисков, следует создать файл
01-local-udisks.pkla
[Mount Permissions for users]
Action=org.freedesktop.udisks.filesystem-mount;org.freedesktop.udisks.drive-eject
ResultAny=yes
ResultInactive=no
ResultActive=no
Комментариев нет:
Отправить комментарий