Bagaimana cara menghentikan penataan ulang beberapa jenis pratinjau jendela yang sama dalam pengalihan tugas?

21

Saat menggunakan pengalihan tugas dalam mode grafis default Ubuntu 12.04, jika mereka adalah beberapa jendela dari jenis yang sama, mis. beberapa jendela Terminal, Anda dapat melihatnya bersama-sama dan memilih yang mana yang Anda inginkan.

masukkan deskripsi gambar di sini

Masalah saya adalah bahwa urutan windows ini terus berubah. Ini mengikuti perintah "terakhir digunakan". Saya ingin mereka selalu dalam urutan tetap; bagaimana saya bisa melakukannya?

n611x007
sumber
3
Fitur yang sangat mengganggu. Saya mengajukan pertanyaan yang sama di sini askubuntu.com/questions/271506/… tapi sayangnya masih tidak ada jawaban.
Gumkins
5
"Masalah" ini ada di 14,04 juga! Jendela-jendela ini harus benar-benar dipesan berdasarkan posisi relatif mereka di layar, dan desktop, ketika windows dari lebih dari satu desktop dipratinjau. Hanya ketika satu janda ditempatkan dekat dengan yang lain (diukur dalam rentang piksel tertentu), maka penentuan posisi pratinjau bergantung pada aturan "yang terakhir digunakan". Saya bahkan akan membuat satu lagi "penyesuaian" pada aturan ini: terapkan preferensi bahasa regional, dari teks "kiri-ke-kanan" atau "kanan-ke-kiri", untuk memutuskan sisi mana dari layar yang dianggap "pertama" - - kiri, atau kanan.
PJ Singh
1
Solusi yang mungkin dilakukan adalah menjaga agar windows tetap sesuai dengan urutan pembuatannya, tetapi setidaknya menjaga agar windows tetap rapi. Saya lebih suka urutan acak tapi stabil daripada kekacauan ini, saya merasa seperti terus-menerus menyulap layar.
Minos
1
Saya percaya ini akan membutuhkan perubahan kode kesatuan. Anda mungkin mulai di sini: unity3d.com/learn/documentation
Penatua Geek
Saya masih mengalami masalah ini pada tahun 2018, versi 18.04. Sangat menyebalkan.
Jesse Busman

Jawaban:

2

Daripada mengubah basis kode kesatuan, Anda dapat mempertimbangkan menggunakan desktop untuk mencapai hasil yang Anda inginkan.

Contoh menggunakan Compiz Desktop Cube di CompizConfigSettingsManager

Buka CompizConfigSettingsManager ( ccsm) dan ubah pengaturan agar sesuai dengan yang berikut:

ccsm-1

ccsm-2

Buka terminal 1

Gunakan pintasan keyboard CTRL-ALT -> (panah kanan) untuk menuju desktop berikutnya ke kanan.

Buka terminal 2

Gunakan pintasan keyboard CTRL-ALT -> (panah kanan) untuk kembali ke desktop berikutnya ke kanan.

Buka terminal 3

Gunakan pintasan keyboard CTRL-ALT - <- (panah kiri) untuk pergi ke desktop sebelumnya yang berisi terminal 2 (atau dua kali untuk kembali ke terminal 1)

Pilihan lain

Gunakan Viewport manager di CompizConfig SettingManager dan tetapkan kombinasi tombol untuk langsung ke desktop pilihan Anda

Catatan: Sejauh ini saya hanya bisa mendapatkan 10 untuk bekerja walaupun 12 harus mungkin dengan metode ini. ccsm-3

Pembaruan: berdasarkan kekhawatiran yang diungkapkan dalam komentar:

Cukup Klik kanan pada bilah judul gedit dan pilih selalu di ruang kerja yang terlihat ...

Pilihan lain:

Daripada membuka terminal terpisah (atau ruang kerja) untuk berbagai aktivitas Anda, Anda juga dapat menggunakan tab di terminal gnome. Tombol pintas untuk pengalihan tab tersedia dari preferensi terminal. Lihat di bawah:

terminal-prefs

Penatua Geek
sumber
Jika saya mengerti dengan benar ini akan meninggalkan saya dengan kebutuhan untuk menggunakan jalan pintas yang berbeda atau klik-cara untuk beralih tugas. Bisa dilakukan kurasa. Namun bagaimana cara saya mengkloning semua jendela non-terminal yang saya butuhkan yang biasanya hanya memiliki 1 instance untuk semua desktop, ketika saya membutuhkan atau berharap interaksi itu cepat dan mungkin antara terminal (s) dan jendela lain (s)?
n611x007
Berapa banyak contoh yang Anda butuhkan? Menggunakan manajer Viewport akan memberi Anda hingga 12. Keyboard diaktifkan. Apakah itu "clicky"?
Penatua Geek
Lihat juga askubuntu.com/questions/34572/…
Penatua Geek
Saya pikir saya salah paham ... Ruang kerja sudah cukup. Biarkan saya mencoba mengatakannya seperti ini. Contoh hipotetis. Sebelum: 3 terminal, jendela 't1', 't2', 't3', + 1. Saya salin-tempel ke-dan-sebagainya antara gedit dan 't1' dan 't2'. Urutan beralih tugas buruk. Aftter (menerapkan solusi Anda): Saya memiliki 3 terminal pada 3 ruang kerja 'w1', 'w2', 'w3', jendela gedit pada 'w1'. Saya perlu menyalin-menempelkan antara gedit dan 't1' dan 't2'. Bagaimana cara menyalin-tempel antara 't2' dan gedit di 'w2' dengan cara yang paling nyaman?
n611x007
Saya tidak punya masalah menyalin dan menempel di antara ruang kerja, jadi saya tidak yakin persis apa yang Anda tanyakan. Karena "cara paling nyaman" adalah masalah pendapat daripada fakta yang terukur, Anda memiliki permintaan maaf saya, tetapi saya rasa saya tidak bisa menanggapi secara logis untuk itu.
Penatua Geek
1

Opsi lain, jika desktop Anda cukup besar, adalah mengatur beberapa jendela untuk "selalu di atas" dan mengaturnya sehingga Anda dapat beralih menggunakan mouse. Ini adalah kludge ... tapi kadang-kadang saya merasa berguna ketika bekerja dengan beberapa jendela dari jenis yang sama.

Yang lain adalah mendefinisikan beberapa profil terminal dengan skema warna yang berbeda dan menggunakan yang berbeda untuk setiap terminal ... itu akan membuatnya mudah untuk diidentifikasi. masukkan deskripsi gambar di sini Ya, ini juga solusinya.

tertawa
sumber
1

Saya pikir Anda dapat mencapai ini dengan memodifikasi kode sumber Unity 7 . Cukup ikuti langkah-langkah yang dijelaskan di situs pengembang tetapi sebelum memulai proses pembangunan, buka: ./trunk/plugins/unityshell/src/unityshell.cppdan lihat SetUpAndShowSwitcherfungsinya:

void UnityScreen::SetUpAndShowSwitcher(switcher::ShowMode show_mode)
{
  RaiseInputWindows();

  if (!optionGetAltTabBiasViewport())
  {
    if (show_mode == switcher::ShowMode::CURRENT_VIEWPORT)
      show_mode = switcher::ShowMode::ALL;
    else
      show_mode = switcher::ShowMode::CURRENT_VIEWPORT;
  }

  auto results = launcher_controller_->GetAltTabIcons(show_mode == switcher::ShowMode::CURRENT_VIEWPORT,
                                                      switcher_controller_->show_desktop_disabled());

  if (switcher_controller_->CanShowSwitcher(results))
    switcher_controller_->Show(show_mode, switcher::SortMode::FOCUS_ORDER, results);
}

Di sini Anda dapat melihat dengan jelas bahwa inilah fungsi yang sebenarnya kami cari. Bagian atas bertanggung jawab untuk pergantian mode viewport:

Tampilkan mode

Toggling ini muncul setiap kali kita pindah ke grup Aplikasi atau jika kita keluar dari grup. optionGetAltTabBiasViewportmenunjukkan kapan ini terjadi. Kemudian GetAltTabIconsterlibat untuk mendapatkan ikon yang tepat. Dan akhirnya Showfungsi dengan SortMode::FOCUS_ORDERdipanggil untuk menampilkan ikon kami yang diurutkan. SortMode adalah enum:

enum class SortMode
{
  LAUNCHER_ORDER,
  FOCUS_ORDER,
};

dan mengubah FOCUS_ORDERuntuk LAUNCHER_ORDERmenyelesaikan masalah Anda. Anda bisa memasukkan pernyataan if tambahan sebelum menelepon Showuntuk mencegah pengurutan pesanan launcher ShowMode::ALL.

Harap dicatat bahwa kode sumber Unity 8 terlihat sangat berbeda. Jadi solusi ini dapat bekerja hanya untuk Unity 7. Setelah setengah jam memperbaiki dependensi yang hilang dan setelah satu jam berjuang dengan cmake, saya memutuskan untuk tidak merusak sistem saya dan mencobanya di VM besok;)

Dimitri Podborski
sumber