Görev değiştirmede aynı tür çoklu önizleme pencerelerinin yeniden sıralanması nasıl durdurulur?


21

Ubuntu 12.04'ün varsayılan grafik modunda görev değiştirme işlevini kullanırken, aynı türden birden fazla pencere varsa, örn. birden fazla Terminal penceresi, hepsini bir arada görebilir ve hangisini istediğinizi seçebilirsiniz.

görüntü tanımını buraya girin

Benim sorunum bu pencerelerin sırasının sürekli değişmesidir. "Son kullanılan" sırayı izler. Onları her zaman sabit bir sırayla istiyorum; nasıl yapabilirim?


3
Çok can sıkıcı bir özellik. Burada da aynı soruyu sordum askubuntu.com/questions/271506/… ama ne yazık ki hala cevap yok.
gumkins

5
Bu "sorun" 14.04'te de var! Bu pencereler, birden fazla masaüstündeki pencereler önizlendiğinde, ekrandaki ve masaüstündeki göreceli konumlarına göre gerçekten sipariş edilmelidir. Sadece bir dul bir diğerinin üstüne yerleştirildiğinde (belirli bir piksel aralığında ölçülmüş) önizlemenin konumu "son kullanılan" kuralına bağlı olmalıdır. Bu kurala bir tane daha "çimdik" bile koyardım: ekranın hangi tarafının "ilk" olarak kabul edileceğine karar vermek için "soldan sağa" veya "sağdan sola" metin bölgesel dil tercihlerini uygulayın - - sola veya sağa.
PJ Singh

1
Olası bir çözüm, pencereleri oluşturuldukları sırayla tutmaktır, ancak en azından sıralarını sabit tutmaktır. Bu karışıklığı yerine rastgele ama istikrarlı bir düzen tercih ederdim, sürekli ekranları hokkabaz gibi hissediyorum.
Minos

1
Bunun birlik kodunu değiştirmeyi gerektireceğine inanıyorum. Buradan başlayabilirsiniz: unity3d.com/learn/documentation
Elder Geek

Bu sorunu 2018'de, 18.04 versiyonunda yaşıyorum. Süper can sıkıcı.
Jesse Busman

Yanıtlar:


2

Birlik kod tabanını değiştirmek yerine, istediğiniz sonuca ulaşmak için masaüstlerini kullanmayı düşünebilirsiniz.

CompizConfigSettingsManager'da Compiz Masaüstü Küpünü kullanma örneği

CompizConfigSettingsManager ( ccsm) uygulamasını açın ve aşağıdakilerle eşleşecek şekilde ayarları değiştirin:

ccsm-1

ccsm-2

Terminal 1'i açın

Sağdaki bir sonraki masaüstüne gitmek için CTRL-ALT -> (sağ ok) klavye kısayolunu kullanın.

Terminal 2'yi açın

Bir sonraki masaüstüne tekrar sağa gitmek için CTRL-ALT -> (sağ ok) klavye kısayolunu kullanın.

Terminal 3'ü açın

Terminal 2'yi içeren önceki masaüstüne gitmek için CTRL-ALT - <- (sol ok) klavye kısayolunu kullanın (veya terminal 1'e geri dönmek için iki kez)

Başka seçenek

CompizConfig SettingManager'da Viewport yöneticisini kullanın ve doğrudan tercihlerinizin masaüstüne gitmek için bir tuş kombinasyonu atayın

Not: Şimdiye kadar sadece 10 çalışabildim, ancak bu yöntemle 12 mümkün olmalı. ccsm-3

Güncelleme: yorumlarda ifade edilen endişelere dayanarak:

Gedit başlık çubuğuna sağ tıklayın ve her zaman görünür çalışma alanını seçin ...

Başka seçenek:

Çok sayıda aktiviteniz için ayrı terminaller (veya çalışma alanları) açmak yerine, gnome terminalinde sekmeleri de kullanabilirsiniz. Sekme değiştirme için kısayol tuşları, terminal tercihlerinden edinilebilir. Aşağıya bakınız:

terminal prefs


Eğer doğru anlarsam, görev geçişinde farklı bir kısayol ya da tıklama yolu kullanma ihtiyacım olacaktı. Yapılabilir sanırım. Ancak, terminaller ve diğer pencereler arasında bu etkileşimin hızlı ve mümkün olmasını istediğimde veya istediğimde, normalde tüm masaüstlerine yalnızca 1 örneği olan ihtiyacım olan tüm terminal olmayan pencereleri nasıl klonlarım?
n611x007

Kaç tane örneğe ihtiyacınız var? Viewport yöneticisini kullanmak size 12 tanesini verir. Klavye etkin. Bu "küstah" mı?
Elder Geek


Sanırım yanlış anlaşıldım ... Çalışma alanları yeterli. Bu şekilde koymaya çalışmama izin ver. Varsayım örneği Önce: 3 terminal, 't1', 't2', 't3', + 1 gedit penceresi. Gedit ve 't1' ve 't2' arasında kopyalayıp yapıştırın. Görev değiştirme sırası bozuk. Daha sonra (geçici çözümünüzü uygulayın): 3 çalışma alanında 'w1', 'w2', 'w3' 3 terminaline, 'w1' üzerine bir gedit penceresi var. Gedit ve 't1' ve 't2' arasında kopyala-yapıştır yapmam gerekiyor. 'T2' ve 'w2' üzerine gedit arasında kopyala-yapıştır nasıl en rahat şekilde?
n611x007

Çalışma alanları arasında kopyalama ve yapıştırma konusunda hiçbir sorun yaşamadım, bu yüzden tam olarak ne sorduğunuzdan emin değilim. "En rahat yol" ölçülebilir bir gerçek olmaktan ziyade bir düşünce meselesi olduğundan, özürlerimi aldınız ama buna mantıklı bir şekilde cevap verebileceğimi sanmıyorum.
Elder Geek

1

Masaüstünüz yeterince büyükse başka bir seçenek de, bazı pencereleri "her zaman üstte" olarak ayarlamak ve onları fareyi kullanarak değiştirebileceğiniz şekilde ayarlamaktır. Bu bir küfür ... ama bazen aynı tipteki birden fazla pencereyle çalışırken yararlı buluyorum.

Yine bir diğeri, farklı renk şemalarına sahip birkaç terminal profili tanımlamak ve her terminal için farklı bir profil kullanmaktır ... bunların tanımlanmasını kolaylaştırır. görüntü tanımını buraya girin Evet, bu da bir geçici çözüm.


1

Unity 7'nin kaynak kodunu değiştirerek bunu başarabileceğinizi düşünüyorum . Sadece geliştirici sitesinde açıklanan adımları takip edin, ancak yapım sürecini açmadan önce: ./trunk/plugins/unityshell/src/unityshell.cppve SetUpAndShowSwitcherfonksiyonuna bir göz atın :

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);
}

Burada, bunun tam olarak aradığımız fonksiyon olduğunu açıkça görebilirsiniz. Vitrin modlarının değiştirilmesinden üst kısım sorumludur:

Modları göster

Bu geçiş, bir Apps grubuna her taşındığımızda veya gruptan çıktığımızda görünür. optionGetAltTabBiasViewportbunun ne zaman olacağını gösterir. Sonra GetAltTabIconsdoğru simgeleri elde etmek için dahil edilir. Sonunda, sıralı simgelerimizi görüntülemek için Showile işlev SortMode::FOCUS_ORDERçağrılır. SortMode bir enum:

enum class SortMode
{
  LAUNCHER_ORDER,
  FOCUS_ORDER,
};

ve değişen FOCUS_ORDERiçin LAUNCHER_ORDERsorunu çözmek gerekir. ShowBaşlatma sırası sıralamasını engellemek için aramadan önce ek bir if ifadesi ekleyebilirsiniz ShowMode::ALL.

Unity 8'in kaynak kodunun tamamen farklı olduğunu lütfen unutmayın. Dolayısıyla bu çözüm yalnızca Unity 7 için işe yarayabilir. Yarım saat sonra bağımlılıkları kaybettim ve bir saat sonra cmake ile kavga ettikten sonra, sistemimi mahvetmeme ve yarın VM'de denemeye karar verdim;)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.