mengembalikan kromium / firefox windows ke ruang kerja / desktop asli

9

Saya memiliki tiga pengaturan monitor, dengan dua monitor yang digerakkan langsung oleh Ubuntu 12,04 untuk total area kerja / desktop 3840x1200¹. Saya biasanya bekerja dengan 5 ruang kerja virtual, seringkali lebih jika saya bekerja pada beberapa proyek secara paralel. Saya biasanya memiliki setidaknya 15 jendela browser terbuka (kebanyakan Firefox-nightly, tetapi juga Firefox 12,04 standar dan Chrome).

Setiap kali browser perlu memulai ulang sebagai hasil dari pembaruan (cq crash), atau perlu memulai setelah login, jendela browser kembali ke posisi semula, tetapi semua berada di ruang kerja yang sama. Setelah itu saya harus memindahkan paling tidak 80% dari windows ke ruang kerja² yang lain.

Baik Firefox maupun Chrome tidak menyimpan informasi EWMH tambahan yang diperlukan untuk pemulihan ke ruang kerja asli. Saya telah membaca laporan bug yang belum diselesaikan yang berasal dari 4-5 tahun yang lalu tentang itu.

Tampaknya, setidaknya beberapa tahun yang lalu, KDE mengelola ruang kerja sebagai offset besar (lebih lebar dari layar), yang memungkinkan peramban mengembalikan ke ruang kerja yang benar. Tetapi ini tampaknya tidak lagi menjadi masalah (dikurangkan dari laporan bug, bukan dari pengalaman pribadi).

Apakah ada workspace / desktop-manager yang tidak memiliki perilaku restore-all-to-one-workspace dengan Firefox dan Chrome (lebih baik di Ubuntu atau Linux Mint)?

Atau adakah cara lain untuk meningkatkan Firefox dan Chrome (mis. Add-on) untuk menegakkan perilaku ini?

Milik saya bukan tata letak yang tetap, di mana Browser X di ruang kerja Y selalu terbuka ke URL tertentu. Fungsi mengembalikan memberi saya jendela, posisi dan URL persis seperti yang saya inginkan. Mereka "hanya" harus berada di ruang kerja yang benar.

¹ A 1200x1920 monitor ketiga adalah pada mesin yang terpisah dengan x2vncyang digunakan untuk berbagi satu mouse dan keyboard. Itu dengan baik membuat bahan bacaan saya seperti halaman manual dan dokumentasi tersedia (dalam mode potret).
² Semua barang-barang U&L ada di ruang kerja 3. Saya biasanya membiarkan mesin berjalan, dan tetap masuk, selama berminggu-minggu pada suatu waktu, salah satu alasan untuk itu adalah pemulihan berbagai jendela.

Anthon
sumber

Jawaban:

6

Tampaknya tidak ada banyak motivasi untuk mengimplementasikan beberapa dukungan EWMH di Firefox atau di Chrome, meskipun ini akan membuat pemulihan masalah ruang kerja diselesaikan dengan sejumlah besar desktop. Sebuah bug telah terbuka untuk Firefox sejak 2007 dan satu untuk Chrome sejak 2009.

Apa yang dapat Anda lakukan di luar Firefox dan Chrome, jika TAB yang aktif di jendela browser yang berbeda menunjuk ke URL yang berbeda, adalah dengan menggunakan kecenderungan bahwa URL yang berbeda biasanya memiliki judul yang berbeda yang terkait dengan halaman dan karenanya dengan jendela di mana mereka ditampilkan.

Dimulai dengan gagasan itu, Anda dapat menggunakan output wmctrl -l -G -pyang memberi Anda

  • id jendela
  • nomor ruang kerja
  • memproses id
  • x, posisi jendela
  • lebar dan tinggi jendela
  • nama mesin
  • judul jendela (jika ada)

untuk setiap jendela. Diberikan PID id proses Anda dapat melihat ke mana tautan /proc/PID/exemenunjuk dan menyaring jendela non-browser. Untuk windows terkait browser, simpan setidaknya judul jendela dan nomor ruang kerja (mungkin juga jenis browser dan semua informasi lainnya).

Setelah browser (kembali) dimulai, ketika semua jendela dipulihkan, tetapi hidup dalam satu ruang kerja, gunakan data yang disimpan untuk mencari id jendela baru, WID, yang terkait dengan judul tertentu dan dorong ke ruang kerja terkait yang diambil dengan wmctrl -i -r WID -t workspacenumber.


Jika Anda tidak ingin menerapkan hal-hal di atas sendiri (sebagian besar pemrosesan teks dan pencarian symlink) di shell atau bahasa scripting pilihan Anda, Anda dapat mengunduh program yang melakukan semua ini untuk Anda (dan sedikit lebih banyak). Atau Anda dapat menginstalnya dari PyPI menggunakan:

sudo pip install ruamel.bws

setelah itu bwsperintah harus tersedia dengan opsi untuk save(beberapa penyimpanan disimpan, 10 secara default), list(tampilkan tanggal yang disimpan dengan jumlah jendela yang disimpan), atau restore(secara default info terbaru yang disimpan).

Anthon
sumber
Firefox 75 menyertakan api yang diperlukan untuk ini dengan beberapa peringatan hg.mozilla.org/integration/autoland/rev/323e2a212629
Braiam