Untuk memiliki opsi "meminimalkan jendela" melalui klik kanan pada ikon di peluncur Unity (Ubuntu 14.04), saya mengikuti instruksi terperinci di sini tentang mengubah .desktop
file dan membuat Firefox
peluncur khusus dalam ~/.local/share/applications/
folder. Bagian yang relevan dari file .desktop adalah:
Actions=NewWindow;NewPrivateWindow;Minimize
[Desktop Action NewWindow]
Name=Open a New Window
Exec=firefox -new-window
OnlyShowIn=Unity;
[Desktop Action NewPrivateWindow]
Name=Open a New Private Window
Exec=firefox -private-window
OnlyShowIn=Unity;
[Desktop Action Minimize]
Name=Minimize Windows
Exec=sh /home/myusername/Documents/xdotool_sh/minimize.sh firefox
OnlyShowIn=Unity;
Tindakan desktop "Minimalkan" memanggil skrip shell sederhana, minimize.sh
yang memiliki konten berikut:
#/bin/bash
name=$1
for i in $(xdotool search --class "$name"); do
xdotool windowminimize $i
done
Script menggunakan xdotool
, yang dapat diinstal dari repositori resmi, untuk menemukan semua firefox
jendela, beralih ke mereka dan meminimalkan mereka.
Skrip berfungsi dan opsi menu peluncur kanan "Minimalkan Windows" juga berfungsi, tetapi segera setelah jendela diperkecil, penunjuk tetikus masuk ke mode "sibuk" dan tetap seperti ini selama sekitar 20 detik (walaupun tindakan tetikus masih responsif).
Adakah yang tahu mengapa memulai skrip shell dari opsi menu kanan di Unity dapat menyebabkan perilaku ini?
EDIT : Rupanya masa tunggu tidak bisa dihindari, seperti yang dijelaskan dalam jawaban Jacob Vlijm. Karena mouse tetap responsif, menghindari transformasi pointer di roda pemintalan adalah solusi estetika parsial, seperti yang dijelaskan pada askubuntu .
EDIT2 : memberikan sistem jendela palsu adalah solusi yang lebih baik, seperti yang dijelaskan oleh Jacob di bawah ini.
Jawaban:
Pertanyaan yang sangat bagus
Penyebab
Biasanya, ketika memulai aplikasi GUI dari Unity Launcher, peluncur menunggu jendela muncul. Sambil menunggu, itu menunjukkan "roda berputar". Namun tidak akan menunggu selamanya; setelah sekitar 20 detik, peluncur menganggap jendela tidak akan muncul dan menyerah menunggu.
1. Perintah utama peluncur aplikasi
Dalam sebuah
.desktop
file, mengenaiExec=
baris pertama (perintah utama), Anda dapat memberi tahu peluncur untuk menunggu atau tidak, dalam satu baris:untuk membuatnya menunggu, atau
untuk membuatnya tidak menunggu.
2. Item daftar cepat dari peluncur
Namun untuk item quicklist (klik kanan) peluncur, nilai defaultnya adalah
StartupNotify=true
. Sayangnya, nilai ini tetap dan tidak dapat diubah oleh apa pun.Itu berarti bahwa jika Anda mulai setiap perintah dari mengklik kanan ikon peluncur di Unity Launcher, peluncur mengharapkan jendela dan menunggu, menampilkan roda berputar.
Intinya adalah bahwa, meskipun dapat dijelaskan, tampaknya tidak ada solusi untuk masalah saat ini, selain itu membuat peluncur khusus untuk skrip Anda dan menambahkan baris
StartupNotify=false
ke file.Bukti
Anda dapat menguji perilaku itu sendiri. Buat dua peluncur:
dan:
Simpan sebagai
test1.desktop
dantest2.desktop
, seret kedua peluncur ke peluncur Unity. Klik mereka dan lihat perbedaan perilaku.Edit; jika benar benar mengganggu Anda, beri Unity jendela palsu
Jika Anda memiliki banyak skrip dalam daftar cepat, dan / atau itu benar-benar mengganggu Anda, ada solusi kosmetik lain; kami dapat memalsukan , tidak terlihat (sepenuhnya transparan) untuk menampilkan jendela, untuk dimasukkan dalam skrip Anda. skrip Anda akan menjadi (misalnya)
dimana perintahnya
fake_window
akan memanggil jendela (palsu-) kita, membuat Unity mengakhiri roda pemintalan.Cara mengatur
~/bin
Salin skrip di bawah ini ke dalam file kosong, simpan sebagai
fake_window
(tanpa ekstensi)~/bin
dan buat itu bisa dieksekusiTambahkan sampai akhir skrip Anda perintah:
Logout dan kembali (atau jalankan
source ~/.profile
)Itu saja, roda sekarang hanya akan berputar selama skrip berjalan.
Penjelasan
Script memang membuat jendela minimalis. Jendela itu sepenuhnya transparan dan memiliki ukuran 0x0 piksel sehingga tidak terlihat. Itu akan menghancurkan dirinya sendiri segera setelah itu ada.
Memanggil jendela di akhir skrip Anda, Anda akan memuaskan keinginan Unity untuk sebuah jendela, menghentikan roda untuk berputar.
sumber
Hanya ingin menambahkan implementasi fake_window alternatif yang sedikit lebih sederhana dan tidak memicu peringatan python pada sistem Ubuntu 16.04.
sumber