Я хочу, чтобы 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, включая настройку спящего режима/выключения, можно найти здесь.