Đăng xuất duyên dáng trong dwm


5

Tôi muốn dwm đóng tất cả các cửa sổ một cách duyên dáng khi tôi nhấn thoát phím nóng. Tôi thích hành vi của Unity: nó hiển thị danh sách các cửa sổ từ chối đăng xuất (ví dụ: các biên tập viên có thay đổi chưa được lưu) và không đăng xuất trước khi tất cả các vấn đề được giải quyết và các ứng dụng bị đóng. Theo mặc định, dwm chỉ kết thúc phiên X và tất cả các ứng dụng đang chạy đều bị hủy.

Tôi đã suy nghĩ về việc viết một kịch bản sẽ lấy danh sách tất cả các cửa sổ, duyên dáng đóng chúng lại và chờ cho quá trình của chúng kết thúc. Nhưng tôi thậm chí không biết cách đóng cửa sổ. Cách duy nhất tôi biết là sử dụng wmctrl và tiện ích này không hoạt động với dwm.


vì tôi có kinh nghiệm làm việc với mã của DWM, nhưng đây không phải là stackoverflow nên tôi phải ở trong bối cảnh: bạn sẽ phải có một trình bao bọc xung quanh dwm, đó là cách tốt nhất bạn có thể làm mà không phải viết lại mã. Tôi sử dụng một tập lệnh gửi sigterm đến mọi thứ trừ dwm chạy bên dưới nó và nếu (chỉ khi) mọi thứ cũng bị giết, đó không phải là trường hợp nếu một chương trình bật lên hộp "lưu tài liệu của bạn", thì cũng sẽ giết chết dwm nếu không / không giết). Bạn có thể sửa đổi một tập lệnh như vậy để làm những gì bạn muốn tuy nhiên gói nó mà không đi vào mã thách thức thực sự. (nhưng như tôi đã nói đây không phải là stackoverflow)
osirisgothra

btw bạn có thể sử dụng kết hợp ps, kill, grep và sed, để có được thông tin bạn cần về các quy trình của mình khi trong tập lệnh, tất nhiên bạn có thể tìm thấy ví dụ dwm chính xác thông qua biến HIỂN THỊ
osirisgothra

Câu trả lời:


0

Bạn có thể cần phải bắt đầu dwm từ trong trình quản lý phiên X11


Đây là một cách để làm điều đó với Trình quản lý hiển thị Gnome (GDM)

Thêm vào đây /usr/share/xsimes/dwm.desktop

 [Desktop Entry]
 Encoding=UTF-8
 Name=dwm
 Comment=This session starts dwm
 Exec=/usr/local/bin/dwm-start
 Type=Application

Tạo một tệp mới tại / usr / local / bin / dwm-start với 755 quyền.

 #!/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

Nếu GDM được cấu hình đúng trên máy tính của bạn, bạn sẽ thấy mục nhập dwm mới trong menu phiên trên màn hình đăng nhập.

Nhiều chỉnh sửa dwm, bao gồm thiết lập cho chế độ ngủ đông / tắt máy đang ở đây.


Tôi đang bắt đầu dwm từ lightdm (trình quản lý đăng nhập mặc định trong Ubuntu). Khi dwm kết thúc, tất cả các ứng dụng bị giết. Tôi không thấy gdm hoặc lightdm cung cấp bất kỳ chức năng nào cho hỏi Tôi thực sự muốn những ứng dụng này bị giết.
Riateche

@Riateche nếu bạn đang bắt đầu điều này trong lightdm .. bạn đã thử gnome-session-Thoát --logout-hộp thoại chưa? Tôi không chắc liệu nó có hợp lệ nếu không có máy tính để bàn gnome / unity hay không nhưng nó đáng để thử.
Jeremy W

gnome-session-Thoát chỉ hoạt động nếu gnome-session được bắt đầu. dwm hoạt động không tốt với phiên gnome.
Riateche

1
@Riateche mod + Shift + Q chỉ nên giết dwm ... không phải X. Đây có phải là trường hợp dành cho bạn không?
Jeremy W

Có hai lựa chọn. Đầu tiên: lệnh session được đặt trực tiếp thành dwm. Trong trường hợp này mod + shift + q giết dwm, X và tất cả các ứng dụng gui. Thứ hai: lệnh session được đặt thành script khởi động lại dwm trong vòng lặp vô hạn. Trong trường hợp này, mod + shift + q khởi động lại dwm mà không làm chết ứng dụng và killall dwm Giết chết dwm, X và tất cả các ứng dụng gui. Tôi hiện đang sử dụng loại thiết lập thứ hai.
Riateche
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.