Ich möchte, dass dwm alle Fenster ordnungsgemäß schließt, wenn ich die Tastenkombination „Beenden“ drücke. Mir gefällt das Verhalten von Unity: Es zeigt eine Liste der Fenster an, die die Abmeldung verweigern (z. B. Editoren mit nicht gespeicherten Änderungen) und meldet sich nicht ab, bevor alle Probleme behoben und die Anwendungen geschlossen sind. Standardmäßig beendet dwm einfach die X-Sitzung und alle laufenden Anwendungen werden beendet.
Ich habe darüber nachgedacht, ein Skript zu schreiben, das eine Liste aller Fenster abruft, sie ordnungsgemäß schließt und wartet, bis ihre Prozesse beendet sind. Aber ich weiß nicht einmal, wie man Fenster schließt. Die einzige mir bekannte Möglichkeit ist die Verwendung von wmctrl, und dieses Dienstprogramm funktioniert nicht mit dwm.
Antwort1
Möglicherweise müssen SieStarten Sie dwm aus einem X11-Sitzungsmanager heraus
Hier ist eine Möglichkeit, dies mit Gnome Display Manager (GDM) zu tun:
Fügen Sie Folgendes hinzu zu/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
Erstellen Sie eine neue Datei unter/usr/local/bin/dwm-startmit 755 Berechtigungen.
#!/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
Wenn GDM auf Ihrem Computer richtig konfiguriert ist, sollten Sie auf dem Anmeldebildschirm im Sitzungsmenü einen neuen dwm-Eintrag sehen.