![Изящный выход из системы в dwm](https://rvso.com/image/1317062/%D0%98%D0%B7%D1%8F%D1%89%D0%BD%D1%8B%D0%B9%20%D0%B2%D1%8B%D1%85%D0%BE%D0%B4%20%D0%B8%D0%B7%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%20%D0%B2%20dwm.png)
Я хочу, чтобы dwm корректно закрывал все окна, когда я нажимаю горячую клавишу выхода. Мне нравится поведение Unity: он отображает список окон, запрещающих выход (например, редакторы с несохраненными изменениями), и не выходит из системы, пока все проблемы не будут решены и приложения не будут закрыты. По умолчанию dwm просто завершает сеанс X, и все запущенные приложения закрываются.
Я думал написать скрипт, который будет получать список всех окон, корректно закрывать их и ждать завершения их процессов. Но я даже не знаю, как закрывать окна. Единственный известный мне способ — использовать wmctrl, а эта утилита не работает с dwm.
решение1
Вам может понадобитьсязапустить dwm из менеджера сеансов X11
Вот один из способов сделать это с помощью Gnome Display Manager (GDM)
Добавьте следующее к/usr/share/xsessions/dwm.desktop
[Desktop Entry]
Encoding=UTF-8
Name=dwm
Comment=This session starts dwm
Exec=/usr/local/bin/dwm-start
Type=Application
Создайте новый файл по адресу/usr/local/bin/dwm-startс разрешениями 755.
#!/bin/sh
# You can add other programs to set the background, add autoloading
# and add autoload for USB and such here
# Make sure you start dwm last as it never returns control to this script
exec /usr/local/bin/dwm > /dev/null
Если GDM на вашем компьютере настроен правильно, вы должны увидеть новую запись dwm в меню сеанса на экране входа в систему.
Дополнительные настройки dwm, включая настройку спящего режима/выключения, можно найти здесь.