Untuk dapat mematikan dengan pintasan keyboard, kita dapat menetapkan gnome-session-quit ---power-off
pintasan khusus.
Dalam Unity ini akan mengarah ke dialog berikut:
Maka kita perlu setidaknya dua penekanan tombol untuk akhirnya mematikan sistem kita. Ini agak tidak nyaman dan saya lebih suka dialog shutdown lama ketika Anda bisa mematikan dengan hanya menekan Returnatau membiarkannya menunggu hitungan mundur default 60 detik.
Saat memanggil gnome-session-quit --poweroff
dari sesi kilas balik sesi GNOME pada sistem yang sama (14,04 LTS) dialog lama termasuk hitungan mundurnya kembali:
Jadi kita tahu itu ada di suatu tempat.
Apakah ada cara untuk memanggil dialog lama ini saat menjalankan sesi Unity?
unity
shutdown
gnome-classic
Takkat
sumber
sumber
Jawaban:
Berikut ini skrip untuk meniru perilaku yang diinginkan. Harus dijalankan seperti halnya
sudo
. Dapat diikat ke pintasan keyboard (dengan penambahan awalshutdown
perintah ke file sudoers untuk memungkinkan berjalan tanpa kata sandi ). Sederhana, ringkas, dan melakukan pekerjaan.Pembaruan: 14 Juni
Seperti yang disarankan oleh Takkat, berikut ini skrip yang menggunakan opsi --timer dan dbus zenity untuk mencapai perilaku yang sama tanpa perlu akses sudo:
Ide dasar di sini adalah opsi batas waktu zenity keluar dengan kode lebih besar dari 0, yang biasanya berarti perintah gagal. Jadi dengan memperlakukan opsi pembatalan zenity dan batas waktu sebagai kondisi yang memungkinkan shutdown, kami menggunakan operator ATAU (
||
) untuk mematikan hanya jika pengguna mengklik tombol batal (dilabeli sebagai "DOIT") atau waktu dialog habis.Variasi lain untuk meningkatkan pengalaman pengguna dapat dilakukan dengan
yad
(perlu diinstal terlebih dahulu dengan perintah inisudo apt-add-repository ppa:webupd8team/y-ppa-manager;sudo apt-get update; sudo apg-get install yad
). Variasi ini menggunakan bilah progres untuk memberi tahu pengguna berapa banyak waktu yang tersisaVersi lain yang mungkin, memperhitungkan bahwa jika Anda mengubah label tombol ok zenity, tombol yang disorot secara default mungkin atau mungkin bukan tombol ok.
Skrip mematikan sistem pada setiap pengembalian yang bukan 0. Jika skrip habis, nilai pengembalian dari 1 atau 5 memberi tahu skrip untuk menjalankan
else
bagiansumber
zenity --timeout
timer inbuilt. Dengan ini kita tidak perlu membatalkan / memulai kembali shutdown nanti.if [[ $? -eq 1 ]] ; then exit \else dbus...
kondisi yang melakukan itu. Jelas tampaknya tidak ada cara untuk memanggil pembantu logout lama ...Tidak secara harfiah apa yang Anda minta, tetapi setidaknya solusi (efektif) yang sebanding adalah dengan meletakkan script di bawah ini di bawah tombol pintas.
Apa yang dilakukannya
Saat tombol pintas digunakan:
gnome-session-quit --power-off
perintah dijalankanmouse dipindahkan ke tombol "tutup" yang sesuai, secara efektif membuat tombol shutdown telah dipilih sebelumnya:
Kemudian:
Naskah
Cara Penggunaan
Saya cukup yakin Anda tahu cara menggunakannya, tapi di sini kita pergi untuk alasan habbit:
Script digunakan
xdotool
Salin skrip ke file kosong, simpan sebagai
run_close.py
Di bagian kepala, atur lokasi layar tombol mati di jendela dekat (tebakan pertama saya benar):
dan waktu untuk menunggu sebelum dimatikan:
Tes-jalankan dengan perintah:
Uji dengan semua opsi: menekan Enteruntuk segera dimatikan, shutdown tanpa pengawasan dan hancurkan prosedur dengan mouse-move
Jika semua berfungsi dengan baik, tambahkan ke tombol pintasan: pilih: Pengaturan Sistem> "Keyboard"> "Pintasan"> "Pintasan Khusus". Klik "+" dan tambahkan perintah:
EDIT
Di bawah versi skrip yang tidak memerlukan pengaturan tambahan. Ini menghitung koordinat tombol keluar, tidak peduli apa resolusi layarnya.
Pengaturannya hampir sama, tetapi
[3.]
bisa dilewati.Penjelasan
Ukuran jendela Session Manager untuk menutup sistem selalu terpusat dan berukuran tetap (absolut), tidak tergantung pada resolusi layar. Oleh karena itu posisi relatif ke tengah layar adalah faktor konstan.
Yang perlu kita lakukan adalah membaca resolusi layar dan menghitung posisi tombol dari sana.
Fungsi yang diterapkan (
get_qloc()
) menghitung resolusi layar kiri , karena di situlah dialog akan muncul.Catatan
Waktu, yang diatur dalam garis
time.sleep(0.4)
diatur untuk sistem yang relatif lambat, untuk memastikan mouse digerakkan setelah jendela dimatikan muncul. Pada sistem yang lebih cepat, bisa lebih pendek, pada sistem yang lebih lambat (seperti mungkin VM) mungkin perlu diatur lebih lama.sumber