Comment arrêter la réorganisation du même type de plusieurs fenêtres d'aperçu lors du changement de tâche?


21

Lorsque vous utilisez la commutation de tâches dans le mode graphique par défaut d'Ubuntu 12.04, s'il s'agit de plusieurs fenêtres du même type, par exemple. plusieurs fenêtres de terminal, vous pouvez les voir toutes ensemble et sélectionner celle que vous souhaitez.

entrez la description de l'image ici

Mon problème est que l'ordre de ces fenêtres est constamment modifié. Il suit l'ordre de "dernière utilisation". Je les veux toujours dans un ordre fixe; Comment puis-je le faire?


3
Fonction très ennuyeuse. J'ai posé la même question ici askubuntu.com/questions/271506/… mais malheureusement toujours pas de réponse.
gumkins

5
Ce "problème" existe aussi en 14.04! Ces fenêtres doivent vraiment être ordonnées en fonction de leur position relative à l'écran et des bureaux, lorsque les fenêtres de plusieurs bureaux sont prévisualisées. Ce n'est que lorsqu'une veuve est placée étroitement au-dessus d'une autre (mesurée dans une certaine plage de pixels) que le positionnement de l'aperçu dépend de la règle du "dernier utilisé". J'apporterais même une dernière modification à cette règle: appliquer les préférences linguistiques régionales, du texte "de gauche à droite" ou "de droite à gauche", pour décider quel côté de l'écran est considéré comme "premier" - - la gauche ou la droite.
PJ Singh

1
Une solution possible serait de garder les fenêtres dans l'ordre où elles ont été créées, mais au moins de les garder fixes dans l'ordre. Je préférerais un ordre aléatoire mais stable à ce désordre, j'ai l'impression de jongler constamment avec les écrans.
Minos

1
Je crois que cela nécessiterait de changer le code de l'unité. Vous pouvez commencer ici: Unity3d.com/learn/documentation
Elder Geek

J'ai toujours ce problème en 2018, version 18.04. Super ennuyeux.
Jesse Busman

Réponses:


2

Plutôt que de modifier la base de code de l'unité, vous pourriez envisager d'utiliser des bureaux pour arriver au résultat souhaité.

Exemple d'utilisation de Compiz Desktop Cube dans CompizConfigSettingsManager

Ouvrez CompizConfigSettingsManager ( ccsm) et modifiez les paramètres pour qu'ils correspondent aux éléments suivants:

ccsm-1

ccsm-2

Terminal ouvert 1

Utilisez le raccourci clavier CTRL-ALT -> (flèche droite) pour accéder au bureau suivant à droite.

Terminal ouvert 2

Utilisez le raccourci clavier CTRL-ALT -> (flèche droite) pour accéder à nouveau au bureau suivant à droite.

Terminal ouvert 3

Utilisez le raccourci clavier CTRL-ALT - <- (flèche gauche) pour accéder au bureau précédent contenant le terminal 2 (ou deux fois pour revenir au terminal 1)

Une autre option

Utilisez le gestionnaire de fenêtres dans CompizConfig SettingManager et attribuez une combinaison de touches pour accéder directement au bureau de vos choix

Remarque: Jusqu'à présent, je n'ai pu obtenir que 10 au travail, bien que 12 devrait être possible avec cette méthode. ccsm-3

Mise à jour: sur la base des préoccupations exprimées dans les commentaires:

Faites simplement un clic droit sur la barre de titre de gedit et choisissez toujours sur l'espace de travail visible ...

Une autre option:

Plutôt que d'ouvrir des terminaux séparés (ou des espaces de travail) pour vos nombreuses activités, vous pouvez également utiliser des onglets dans le terminal gnome. Les touches de raccourci pour le changement d'onglet sont disponibles dans les préférences du terminal. Voir ci-dessous:

terminal-prefs


Si je comprends bien, cela me laisserait un besoin d'utiliser un raccourci différent ou un clic pour basculer entre les tâches. Peut être fait, je suppose. Cependant, comment pourrais-je cloner toutes les fenêtres non terminales dont j'ai besoin et qui n'ont normalement qu'une seule instance sur tous les bureaux, lorsque j'ai besoin ou souhaite que cette interaction soit rapide et possible entre le (s) terminal (s) et les autres fenêtres?
n611x007

De combien d'instances avez-vous besoin? L'utilisation du gestionnaire de fenêtres vous donnerait jusqu'à 12. Clavier activé. Est-ce "clicky"?
Elder Geek


Je pense que j'étais incompréhensible ... Les espaces de travail suffisent. Permettez-moi d'essayer de le dire comme ça. Exemple hypothétique. Avant: 3 terminaux, 't1', 't2', 't3', + 1 fenêtre gedit. Je fais du copier-coller entre gedit et à la fois 't1' et 't2'. L'ordre de changement de tâche est incorrect. Après (en appliquant votre solution de contournement): J'ai les 3 terminaux sur 3 espaces de travail 'w1', 'w2', 'w3' respectivement, une fenêtre gedit sur 'w1'. J'ai besoin de copier-coller entre gedit et à la fois «t1» et «t2». Comment copier-coller entre 't2' et gedit sur 'w2' de la manière la plus confortable?
n611x007

Je n'ai eu aucun problème à copier et coller entre les espaces de travail, donc je ne sais pas exactement ce que vous demandez. Étant donné que "la manière la plus confortable" est une question d'opinion plutôt qu'un fait mesurable, vous m'excusez, mais je ne pense pas pouvoir y répondre logiquement.
Elder Geek

1

Une autre option, si votre bureau est suffisamment grand, consiste à définir certaines fenêtres sur "toujours en haut" et à les organiser pour pouvoir basculer à l'aide de la souris. C'est un kludge ... mais je le trouve parfois utile lorsque vous travaillez avec plusieurs fenêtres du même type.

Encore une autre consiste à définir plusieurs profils de terminaux avec des schémas de couleurs différents et à utiliser un profil différent pour chaque terminal ... cela les rendrait faciles à identifier. entrez la description de l'image ici Ouais, celui-ci est aussi une solution de contournement.


1

Je pense que vous pouvez y parvenir en modifiant le code source d' Unity 7 . Suivez simplement les étapes décrites sur le site du développeur, mais avant de commencer le processus de construction, ouvrez: ./trunk/plugins/unityshell/src/unityshell.cppet jetez un œil à la SetUpAndShowSwitcherfonction:

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

Ici, vous pouvez clairement voir que c'est exactement la fonction que nous recherchions. La partie supérieure est responsable de la commutation des modes de fenêtre:

Afficher les modes

Ce basculement apparaît chaque fois que nous entrons dans un groupe d'applications ou si nous sortons du groupe. optionGetAltTabBiasViewportindique quand cela se produit. Ensuite , GetAltTabIconsest impliqué afin d'obtenir les bonnes icônes. Et enfin, la Showfonction avec le SortMode::FOCUS_ORDERest appelée pour afficher nos icônes triées. SortMode est une énumération:

enum class SortMode
{
  LAUNCHER_ORDER,
  FOCUS_ORDER,
};

et changer FOCUS_ORDERpour LAUNCHER_ORDERdevrait résoudre votre problème. Vous pouvez insérer une instruction if supplémentaire avant d'appeler Showpour empêcher le tri de l'ordre du lanceur au ShowMode::ALLcas où.

Veuillez noter que le code source d'Unity 8 est complètement différent. Cette solution peut donc fonctionner uniquement pour Unity 7. Après une demi-heure à corriger les dépendances manquantes et après une autre heure à me battre avec cmake, j'ai décidé de ne pas ruiner mon système et de l'essayer en VM demain;)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.