Saya ingin menutup semua jendela yang muncul di desktop saya. Saya berpikir untuk melakukan ini pkill
, tapi saya hanya bisa membunuh mereka satu per satu, yang bukan yang saya inginkan. Tujuan akhirnya adalah memasukkan skrip ini ke dalam menjalankan kios, itu akan mendeteksi jika perangkat lunak kios berjalan (saya menemukan bagian ini) dan jika tidak, maka akan membunuh semua jendela yang terbuka, dan restart saya perangkat lunak kios.
9
Jawaban:
Pendekatan paling sederhana menggunakan
xdotool
:xdotool search ""
daftar setiap jendela.windowkill %@
membunuh setiap orang dari mereka;%@
merujuk ke semua hasil pencarian sebelumnya.Anda dapat memilih untuk menggunakan
--maxdepth 1
opsi untuksearch
membatasi jendela yang dipilih untuk jendela tingkat atas.sumber
ini berfungsi setidaknya untuk kde dan xfce (gnome tidak diuji, tetapi mungkin juga berfungsi):
1) instal wmctrl
2) lalu buat skrip bernama
close_windows.sh
:3) membuatnya dapat dieksekusi:
chmod +x ./close_windows.sh
3) buat entri di menu mulai yang mengarah ke skrip close_windows.
4) jalankan script close_windows dari entri ini.
sumber: https://forum.manjaro.org/index.php?topic=4412.0 :
sumber
Michael Homer dan Guido van Steen telah menunjukkan cara untuk membunuh semua jendela. Ini tidak akan mematikan proses latar belakang, jika ada. Itu tidak akan membunuh program macet yang jendelanya sudah hilang tetapi masih dijalankan tanpa antarmuka pengguna. Jadi, Anda mungkin lebih memilih untuk membunuh prosesnya saja.
Anda dapat menjalankan
kill -9 -1
sebagai pengguna non-root untuk membunuh semua proses yang berjalan sebagai pengguna itu. Anda perlu menjalankan aplikasi kios sebagai pengguna khusus (itu adalah konfigurasi standar untuk kios, untuk keamanan) dan untuk memastikan bahwa antarmuka kios memulai kembali ketika semua proses dalam sesi sudah mati (yang juga merupakan konfigurasi standar untuk kios, untuk ketahanan).sumber
Jawaban Guido sangat cocok untuk saya. Saya menulis prog Linux Pascal Linux / cross-compilable kecil yang dikompilasi dengan Lazarus / FPC untuk saya gunakan sendiri, yang meluncurkan perintah wmctrl-nya, atau perintah windows Powershell yang setara:
Saya juga memperhatikan bahwa Diego benar tentang nama desktop, dan executable Linux saya hanya akan bekerja pada lingkungan xfce Prancis dengan desktop bernama "Bureau". Saya tidak dapat menemukan nama desktop di variabel lingkungan (dan itu tidak sepadan dengan masalahnya).
sumber