LINUX.ORG.RU

Меню выключения и запуска приложений в awesome

 


1

1

Надоел стандартный prompt в awesome, хочу нечто похожее на xfce4-appfinder, вроде в i3 такое есть. Как в awesome запилить ? Ну и для выключения/ребута/рестарта/выхода меню вроде такого. Желательно, чтобы в меню выхода можно было поставить свои команды и весь остальной экран при входе в такое меню темнел. Заранее спасибо.

Зачем вся эта гуйня, когда есть терминал? У тебя несоответствие идеологии с идеологией авесома. Попробуй гном там, штоле.

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

Ну в i3 же есть. И что ? Он , по-моему , ещё более идеалогичный , чем awesome. Сейчас выключение/ребут оформлены так:

quitmenu = {
   {"reboot", "gksudo reboot"},
   {"shut down", "gksudo poweroff"},
   { "restart", awesome.restart },
   { "quit", awesome.quit }
}

Мне это кажется костыльным и всё равно вылезает диалог (gksudo), так хоть покрасивее менюшка будет. Терминал для таких целей тыкать неудобно.

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

systemctl poweroff попробуй, вроде без как без запроса выключает или попробовать использовать dbus для команды выключения/перезагрузки и прочего, аналогично с systemctl.

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

Если держишь в системе dbus и zenity, то можно такое выключение сделать:

#!/bin/bash
RETURN_CODE=`zenity  --window-icon="/home/user/.icons/Faenza/actions/24/system-shutdown-restart-panel.png" \
		--list --radiolist \
		--title="Выключение компьютера" \
		--text="Выберите предпочитаемое действие:" \
		--column="Выбор" --column="Действие" \
		TRUE "Выключение компьютера" FALSE "Перезагрузка" FALSE "Ждущий режим" FALSE "Спящий режим"`
if [ "$RETURN_CODE" = "Выключение компьютера" ]; then
#	echo "Надо выключать"
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
fi
if [ "$RETURN_CODE" = "Перезагрузка" ]; then
#	echo "Надо перезагружать"
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
fi
if [ "$RETURN_CODE" = "Ждущий режим" ]; then
#	echo "Надо переводить в ждущий режим"
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
fi
if [ "$RETURN_CODE" = "Спящий режим" ]; then
#	echo "Надо переводить в спящий режим"
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
fi
Путь к иконке сам пропишешь, если надо.

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

Учитывая количество не типичных запросов и элементов системы, тебе лучше написать такой виджет самому, это не сложно, за несколько часов справишься.

LiBer ★★★ ()

Я для выключения просто жму mod+shift+q и на экране логина жму выключить, се устраивает. kdm.

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

Сейчас выключение/ребут оформлены так

Сделай это отдельными меню (если еще не), вызываемым по хоткею. Размести по центру экрана. Настрой ему вид: размеры, цвета, шрифт. Более того, зная матчасть можно задать свой оригинальный конструктор для создания уникального вида хоть каждой строке менюшки (загляни в код awful.menu).

Альтернативный вариант: написать полностью свой виджет с нуля, но, имхо, оно того не стоит.

всё равно вылезает диалог (gksudo)

Найти способ выключать машину командой от пользователя? Ну это не к wm вопрос. Я лично пользуюсь костылем.

и весь остальной экран при входе в такое меню темнел

Вот это наверно самое проблематичное, нужно либо колдовать с композитным менеджером, либо городить что-то типа такого.

Worron ★★★ ()

Нафига prompt, когда можно просто нужные команды на хоткеи повесить?

Если сильно хочется, можно взять из кранча менюшку. Я когда-то у себя юзал её https://github.com/Kilte/awesome-desktop/blob/master/pylogout

Можешь добавить любые команды и оформить эту менюшку, как угодно.

Чтобы те команды, которые прописаны там сейчас, заработали от простого юзера, нужно прописать в /etc/sudoers %username% $HOSTNAME=NOPASSWD: /sbin/shutdown -h now,/sbin/reboot", где %username% — нужное имя пользователя.

Можно ещё в арчвики заглянуть и сделать как там, если этот вариант подойдёт.

и весь остальной экран при входе в такое меню темнел

Вот с этим не знаю, как быть. Как уже советовали выше, посмотри в сторону какого-нибудь композитного менеджера. Я использую compton, он может рисовать тени, но как сделать так, чтобы у конкретного окна были собственные настройки, я не знаю. И вообще сомневаюсь, что такое возможно.

Наверняка с помощью того же PyGTK можно так сделать, правда не без костылей. Нарисовать полупрозрачный png, задать как основной фон для окна, а само окно всегда держать развёрнутым. Ну и т.д. Вроде понятно, я думаю.

Kilte ★★★★★ ()

вроде в i3 такое есть

У i3wm вообще нет своего лаунчера. Это был dmenu, rofi или что-то более экзотичное.

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

Сейчас прикрутил rofi. Имхо самый лучший «appfinder» и замена промпту. Думаю в sudores поковырять и через rofi выключаться, ну или через меню как раньше. Но всё равно спасибо, может где пригодится.

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

Честно говоря, понятия не имею, в чём причина. Похоже там что-то поменяли, потому что у меня подобная строка в jessie вообще отказалась работать, хотя на wheezy всё ок было.

Попробуй так:

user ALL=(ALL) NOPASSWD: /sbin/shutdown -h now,/sbin/reboot
Kilte ★★★★★ ()
Ответ на: комментарий от sudopacman

Проще так, хотя менее секьюрно:

chmod u+s /sbin/reboot /sbin/poweroff

Deleted ()

Решение (для тех , кто отслеживает а также для тех , кто эту тему возможно загуглит)

Благодаря скриншотам Dontes в галерее откопал замечательную программу - obshutdown. По внешнему виду она подходит мне идеально. Также узнал как сделать выключение/ребут без пароля: в .obshutdown.rc прописать:

shutdown =       dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
restart =        dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
и в .xinitrc вместо exec awesome прописать exec ck-launch-session dbus-launch awesome.

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