Bagaimana cara menutup, memperkecil, dan memaksimalkan jendela yang ditentukan dari Terminal?

16

Saya menjalankan Ubuntu GNOME 15.10 dengan GNOME 3.18 dan saya bertanya-tanya apakah ada cara dari Terminal untuk menutup, memperkecil, meminimalkan, memaksimalkan, dan mengecilkan jendela yang ditentukan?

Catatan - Saya sudah melihat T&J ini - Saya bertanya bagaimana cara melakukannya dari Terminal ... Tidak cara menambahkan tombol ... Tombol sudah ada di sana, saya tidak perlu menambahkannya.

Komunitas
sumber
2
Kemungkinan duplikat dari Bisakah saya meminimalkan jendela dari baris perintah?
Anastasia
@Anastasia: Bagaimana ini duplikat dari itu? Itu hanya bertanya tentang meminimalkan ... Aku bertanya tentang semua hal lain juga yang tidak dijawab di sana.
Saya berasumsi bahwa tindakan itu sangat erat hubungannya sehingga menjawab satu harus mengarah ke yang lain, tetapi Anda benar, itu mungkin merupakan sapuan luas. Sekarang saya juga bertanya-tanya dalam himpunan bagian dari pertanyaan dapat dianggap duplikat.
Anastasia
@Anastasia: Ya, karena jawaban untuk pertanyaan lain tidak benar-benar menyebutkan bagaimana mencapainya, bahkan jika mereka akan membantu saya, itu masih bukan duplikat dari pertanyaan itu. Ditambah bahkan jika jawaban untuk pertanyaan lain menjawab pertanyaan saya, pertanyaan saya masih tidak menanyakan hal yang sama seperti yang ditanyakan orang lain.
Hai Para, saya harap pertanyaannya masih "terbuka". Tinjauan ...
Jacob Vlijm

Jawaban:

17

Ada dua alat penting untuk memanipulasi windows cli; xdotooldan wmctrl. Kedua alat tumpang tindih satu sama lain dalam fungsi, tetapi perintah yang paling penting mengacu pada pertanyaan Anda:

Dalam ikhtisar (tidak diragukan lagi tidak lengkap), daftar perintah yang paling saya gunakan:

Menutup jendela

wmctrl:

wmctrl -ic <window_id>

Meminimalkan jendela

xdotool:

xdotool windowminimize <window_id>

Membatalkan jendela

wmctrl:

un-minimizing secara efektif dilakukan oleh:

wmctrl -ia <window_id>

Saya menyebutkan secara efektif , karena perintah pindah ke desktop yang sesuai, meminimalkan dan menaikkan jendela, tetapi perintah juga melakukan itu pada windows yang tidak diminimalkan.

Memaksimalkan jendela

xdotool:

xdotool windowsize <window_id> 100% 100%

wmctrl:

wmctrl -ir <window_id> -b add,maximized_vert,maximized_horz

Tidak memaksimalkan jendela:

wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horz

Catatan

  • Keduanya xdotooldan wmctrltidak ada di sistem Anda secara default:

    sudo apt-get install xdotool wmctrl
    
  • Untuk menjalankan perintah di jendela yang sedang aktif :

    • untuk wmctrlperintah, hapus -iopsi, ganti <window_id>dengan:ACTIVE:

    • untuk xdotoolperintah: ganti <window_id>dengan$(xdotool getactivewindow)

  • Dalam banyak kasus, perintah dapat dijalankan dengan menggunakan id jendela atau nama jendela . The -ipilihan di wmctrlmemberitahu wmctrlmenggunakan jendela id. Saya sarankan tidak menggunakan nama jendela sebagai pengidentifikasi, untuk mencegah bentrokan nama. Ini terjadi lebih mudah daripada yang Anda harapkan.

  • Dari pengalaman saya sendiri, menggunakan memaksimalkan dalam skrip; Menggunakan wmctrluntuk memaksimalkan / unmaximize bisa jadi agak buggy pada keduanya Unitydan Gnome, sementara xdotoolopsi bekerja lebih kuat dalam pengalaman saya. Dalam sebagian besar skrip, saya akhirnya menggunakan campuran keduanya wmctrldan xdotool.

Info lebih lanjut tentang man wmctrl dan man xdotool (terutama bagian: WINDOW COMMANDS ).

Yakub Vlijm
sumber
Terima kasih atas jawaban Anda! Tapi bagaimana Anda juga meminimalkan jendela?
1
@ParanoidPanda lihat jawaban saya yang diperbarui :)
Jacob Vlijm
1
wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horztidak bekerja di gnome 3.20
user41209
4

Menambahkan ke jawaban Jacob Vlijm:

xdotool windowactivate $minwinid
xdotool windowraise $minwinid
xdotool windowfocus $minwinid

Juga berfungsi untuk meminimalkan jendela. Animasi lebih cepat untuk saya.

asdfdsa
sumber