Wie stoppe ich das Umordnen von mehreren Vorschaufenstern derselben Art beim Taskwechsel?


21

Wenn Sie die Taskumschaltung im Standard-Grafikmodus von Ubuntu 12.04 verwenden, wenn es sich um mehrere Fenster derselben Art handelt, z. In mehreren Terminalfenstern können Sie sie alle zusammen sehen und auswählen, welches Sie möchten.

Bildbeschreibung hier eingeben

Mein Problem ist, dass die Reihenfolge dieser Fenster ständig geändert wird. Es folgt die "zuletzt verwendete" Reihenfolge. Ich möchte sie immer in einer festen Reihenfolge haben. wie kann ich es tun?


3
Sehr nerviges Feature. Ich habe die gleiche Frage hier gestellt askubuntu.com/questions/271506/… aber leider immer noch keine Antwort.
Gummibärchen

5
Diese "Ausgabe" existiert auch in 14.04! Diese Fenster sollten wirklich nach ihrer relativen Position auf dem Bildschirm und auf den Desktops sortiert werden, wenn eine Vorschau von Fenstern von mehr als einem Desktop angezeigt wird. Nur wenn eine Witwe dicht übereinander liegt (gemessen in einem bestimmten Pixelbereich), sollte die Positionierung der Vorschau von der "zuletzt verwendeten" Regel abhängen. Ich würde diese Regel sogar noch einmal "optimieren": Wenden Sie die regionalen Spracheinstellungen "von links nach rechts" oder "von rechts nach links" an, um zu entscheiden, welche Seite des Bildschirms als "erste" betrachtet wird. - die linke oder die rechte.
PJ Singh

1
Eine mögliche Lösung wäre, die Fenster in der Reihenfolge zu belassen, in der sie erstellt wurden, zumindest aber in der festgelegten Reihenfolge. Ich würde eine zufällige, aber stabile Reihenfolge gegenüber diesem Durcheinander vorziehen. Ich habe das Gefühl, ständig mit Bildschirmen zu jonglieren.
Minos

1
Ich glaube, dies würde eine Änderung des Einheitscodes erfordern. Sie könnten hier anfangen: unity3d.com/learn/documentation
Elder Geek

Ich habe dieses Problem noch im Jahr 2018, Version 18.04. Super nervig.
Jesse Busman

Antworten:


2

Anstatt die Unity-Codebasis zu ändern, können Sie auch Desktops verwenden, um das gewünschte Ergebnis zu erzielen.

Beispiel für die Verwendung von Compiz Desktop Cube im CompizConfigSettingsManager

Öffnen Sie den CompizConfigSettingsManager ( ccsm) und ändern Sie die Einstellungen wie folgt:

ccsm-1

ccsm-2

Öffnen Sie Terminal 1

Verwenden Sie die Tastenkombination STRG-ALT -> (rechter Pfeil), um zum nächsten Desktop auf der rechten Seite zu gelangen.

Öffnen Sie Terminal 2

Verwenden Sie die Tastenkombination STRG-ALT -> (rechter Pfeil), um wieder zum nächsten Desktop rechts zu wechseln.

Öffnen Sie das Terminal 3

Verwenden Sie die Tastenkombination STRG-ALT - <- (linker Pfeil), um zum vorherigen Desktop mit Terminal 2 zu wechseln (oder zweimal, um zu Terminal 1 zurückzukehren).

Andere Option

Verwenden Sie den Ansichtsfenster-Manager in CompizConfig SettingManager und weisen Sie eine Tastenkombination zu, um direkt zum Desktop Ihrer Wahl zu gelangen

Hinweis: Bisher konnte ich nur 10 zum Laufen bringen, obwohl mit dieser Methode 12 möglich sein sollten. ccsm-3

Update: basierend auf Bedenken in Kommentaren ausgedrückt:

Klicken Sie einfach mit der rechten Maustaste auf die Titelleiste von gedit und wählen Sie immer den sichtbaren Arbeitsbereich aus ...

Andere Option:

Anstatt separate Terminals (oder Arbeitsbereiche) für Ihre zahlreichen Aktivitäten zu öffnen, können Sie auch Registerkarten im Gnome-Terminal verwenden. Tastenkombinationen zum Wechseln zwischen Registerkarten sind in den Terminaleinstellungen verfügbar. Siehe unten:

Terminal-Einstellungen


Wenn ich das richtig verstehe, hätte ich die Notwendigkeit, eine andere Verknüpfung oder einen anderen Klick-Weg zum Wechseln der Aufgabe zu verwenden. Kann ich denke getan werden. Wie würde ich jedoch alle nicht-terminalen Fenster klonen, die ich benötige und die normalerweise nur eine Instanz für alle Desktops haben, wenn ich diese schnelle und mögliche Interaktion zwischen den Terminals und den anderen Fenstern benötige oder möchte?
n611x007,

Wie viele Instanzen benötigen Sie? Wenn Sie den Ansichtsfenster-Manager verwenden, erhalten Sie bis zu 12. Tastatur aktiviert. Ist das "clicky"?
Elder Geek


Ich glaube, ich war unverständlich ... Arbeitsbereiche sind genug. Lassen Sie mich versuchen, es so auszudrücken. Hypothetisches Beispiel. Vorher: 3 Terminals, 't1', 't2', 't3', + 1 Bearbeitungsfenster. Ich kopiere und füge zwischen gedit und 't1' und 't2' hin und her. Die Reihenfolge der Taskwechsel ist schlecht. Nachher (unter Anwendung Ihrer Problemumgehung): Ich habe die 3 Terminals in 3 Arbeitsbereichen 'w1', 'w2', 'w3' bzw. ein gedit-Fenster in 'w1'. Ich muss zwischen gedit und 't1' und 't2' kopieren und einfügen. Wie kopiere und füge ich zwischen 't2' und 'gedit' auf 'w2' am bequemsten ein?
n611x007,

Ich hatte keine Probleme beim Kopieren und Einfügen zwischen Arbeitsbereichen, daher bin ich mir nicht sicher, was Sie genau fragen. Da "der bequemste Weg" eher eine Ansichtssache als eine messbare Tatsache ist, haben Sie meine Entschuldigung, aber ich glaube nicht, dass ich darauf logisch reagieren kann.
Elder Geek

1

Wenn Ihr Desktop groß genug ist, können Sie auch einige Fenster so einstellen, dass sie immer im Vordergrund sind, und sie so anordnen, dass Sie mit der Maus wechseln können. Es ist ein Trick ... aber ich finde es manchmal nützlich, wenn ich mit mehreren Fenstern desselben Typs arbeite.

Eine weitere Möglichkeit besteht darin, mehrere Terminalprofile mit unterschiedlichen Farbschemata zu definieren und für jedes Terminal ein anderes zu verwenden. Dies würde die Identifizierung vereinfachen. Bildbeschreibung hier eingeben Ja, das ist auch ein Workaround.


1

Ich denke, dass Sie dies erreichen können, indem Sie den Quellcode von Unity 7 ändern . Befolgen Sie einfach die auf der Entwicklerseite beschriebenen Schritte, bevor Sie den Erstellungsprozess starten: ./trunk/plugins/unityshell/src/unityshell.cppund werfen Sie einen Blick auf die SetUpAndShowSwitcherFunktion:

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

Hier sieht man deutlich, dass dies genau die Funktion ist, nach der wir gesucht haben. Der obere Teil ist für das Umschalten der Ansichtsfenster-Modi verantwortlich:

Modi anzeigen

Dieses Umschalten wird bei jedem Wechsel in eine Gruppe von Apps oder beim Verlassen der Gruppe angezeigt. optionGetAltTabBiasViewportGibt an, wann dies geschieht. Dann GetAltTabIconsgeht es darum, die richtigen Icons zu bekommen. Und schließlich wird die ShowFunktion mit dem SortMode::FOCUS_ORDERaufgerufen, um unsere sortierten Symbole anzuzeigen. SortMode ist eine Aufzählung:

enum class SortMode
{
  LAUNCHER_ORDER,
  FOCUS_ORDER,
};

und zu ändern FOCUS_ORDER, LAUNCHER_ORDERsollte Ihr Problem lösen. Sie können vor dem Aufruf eine zusätzliche if-Anweisung einfügen, Showum die Sortierung der Startreihenfolge zu verhindern ShowMode::ALL.

Bitte beachten Sie, dass der Quellcode von Unity 8 völlig anders aussieht. Daher funktioniert diese Lösung möglicherweise nur für Unity 7. Nach einer halben Stunde, in der fehlende Abhängigkeiten behoben wurden, und nach einer weiteren Stunde, in der ich mit cmake gekämpft habe, habe ich beschlossen, mein System nicht zu ruinieren und es morgen in VM auszuprobieren;)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.