¿Cómo detener el reordenamiento del mismo tipo de ventanas de vista previa múltiple en el cambio de tareas?

21

Cuando se utiliza el cambio de tareas en el modo gráfico predeterminado de Ubuntu 12.04, si son múltiples ventanas del mismo tipo, por ejemplo. múltiples ventanas de Terminal, puede verlas todas juntas y seleccionar cuál desea.

ingrese la descripción de la imagen aquí

Mi problema es que el orden de estas ventanas cambia constantemente. Sigue el orden de "último uso". Los quiero en un orden fijo siempre; ¿Cómo puedo hacerlo?

n611x007
fuente
3
Característica muy molesta. Hice la misma pregunta aquí askubuntu.com/questions/271506/… pero desafortunadamente todavía no hay respuesta.
gumkins
55
¡Este "problema" también existe en 14.04! Estas ventanas realmente deben ordenarse en función de sus posiciones relativas en la pantalla y los escritorios, cuando se visualizan las ventanas de más de un escritorio. Solo cuando una viuda se coloca cerca de otra (medida dentro de un cierto rango de píxeles), el posicionamiento de la vista previa dependerá de la regla del "último uso". Incluso haría un "ajuste" más a esta regla: aplicar las preferencias de idioma regional, de texto "de izquierda a derecha" o "de derecha a izquierda", para decidir qué lado de la pantalla se considera "primero" - - La izquierda o la derecha.
PJ Singh
1
Una posible solución sería mantener las ventanas en el orden en que fueron creadas, pero al menos mantenerlas en orden. Preferiría un orden aleatorio pero estable sobre este desastre, siento que estoy constantemente haciendo malabarismos con las pantallas.
Minos
1
Creo que esto requeriría cambiar el código de unidad. Puede comenzar aquí: unity3d.com/learn/documentation
Elder Geek
Todavía tengo este problema en 2018, versión 18.04. Súper molesto.
Jesse Busman

Respuestas:

2

En lugar de cambiar la base de código de la unidad, puede considerar usar escritorios para llegar al resultado deseado.

Ejemplo de uso de Compiz Desktop Cube en CompizConfigSettingsManager

Abra CompizConfigSettingsManager ( ccsm) y cambie la configuración para que coincida con lo siguiente:

ccsm-1

ccsm-2

Abrir terminal 1

Use el método abreviado de teclado CTRL-ALT -> (flecha derecha) para ir al siguiente escritorio a la derecha.

Abrir terminal 2

Use el atajo de teclado CTRL-ALT -> (flecha derecha) para ir al siguiente escritorio a la derecha nuevamente.

Abrir terminal 3

Use el método abreviado de teclado CTRL-ALT - <- (flecha izquierda) para ir al escritorio anterior que contiene el terminal 2 (o dos veces para volver al terminal 1)

Otra opción

Use el administrador de Viewport en CompizConfig SettingManager y asigne una combinación de teclas para ir directamente al escritorio de su elección

Nota: Hasta ahora solo he podido hacer que 10 funcione, aunque 12 deberían ser posibles con este método. ccsm-3

Actualización: según las preocupaciones expresadas en los comentarios:

Simplemente haga clic derecho en la barra de título de gedit y elija siempre en el espacio de trabajo visible ...

Otra opción:

En lugar de abrir terminales separadas (o espacios de trabajo) para sus numerosas actividades, también puede usar pestañas en la terminal de gnomo. Las teclas de acceso directo para cambiar de pestaña están disponibles en las preferencias de terminal. Vea abajo:

terminal-prefs

Elder Geek
fuente
Si entiendo correctamente, esto me dejaría con la necesidad de usar un acceso directo diferente o hacer clic para cambiar de tarea. Se puede hacer, supongo. Sin embargo, ¿cómo clonaría todas las ventanas que no son de terminal que necesito y que normalmente solo tienen 1 instancia para todos los escritorios, cuando necesito o deseo que la interacción sea rápida y posible entre los terminales y las otras ventanas?
n611x007
¿Cuántas instancias necesitas? Usar el administrador de Viewport le daría hasta 12. Teclado activado. ¿Es eso "clicky"?
Élder Geek
Ver también askubuntu.com/questions/34572/…
Elder Geek
Creo que era incomprensible ... Los espacios de trabajo son suficientes. Déjame intentar ponerlo así. Ejemplo hipotético Antes: 3 terminales, 't1', 't2', 't3', + 1 ventana gedit. Copio y pego entre gedit y 't1' y 't2'. El orden de cambio de tarea es malo. Después (aplicando su solución alternativa): Tengo los 3 terminales en 3 espacios de trabajo 'w1', 'w2', 'w3' respectivamente, una ventana gedit en 'w1'. Necesito copiar y pegar entre gedit y 't1' y 't2'. ¿Cómo copio y pego entre 't2' y gedit en 'w2' de la manera más cómoda?
n611x007
No he tenido problemas al copiar y pegar entre espacios de trabajo, por lo que no estoy seguro de lo que está preguntando. Dado que "la forma más cómoda" es una cuestión de opinión en lugar de un hecho medible, le pido disculpas, pero no creo que pueda responder lógicamente a eso.
Élder Geek
1

Otra opción, si su escritorio es lo suficientemente grande, es establecer algunas ventanas en "siempre en la parte superior" y organizarlas para que pueda cambiar usando el mouse. Es un error ... pero a veces me resulta útil cuando trabajo con múltiples ventanas del mismo tipo.

Otro más es definir varios perfiles de terminal con diferentes esquemas de color y usar uno diferente para cada terminal ... sería más fácil identificarlos. ingrese la descripción de la imagen aquí Sí, esta también es una solución alternativa.

risa
fuente
1

Creo que puede lograr esto modificando el código fuente de Unity 7 . Simplemente siga los pasos descritos en el sitio del desarrollador, pero antes de iniciar el proceso de construcción, abra: ./trunk/plugins/unityshell/src/unityshell.cppy eche un vistazo a la SetUpAndShowSwitcherfunció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);
}

Aquí puede ver claramente que esta es exactamente la función que estábamos buscando. La parte superior es responsable del cambio de los modos de ventana gráfica:

Mostrar modos

Este cambio aparece cada vez que nos movemos a un grupo de aplicaciones o si nos mudamos fuera del grupo. optionGetAltTabBiasViewportindica cuándo sucede esto. Luego GetAltTabIconsparticipa para obtener los íconos correctos. Y finalmente, se llama a la Showfunción con SortMode::FOCUS_ORDERpara mostrar nuestros iconos ordenados. SortMode es una enumeración:

enum class SortMode
{
  LAUNCHER_ORDER,
  FOCUS_ORDER,
};

y cambiar FOCUS_ORDERa LAUNCHER_ORDERdebería resolver su problema. Puede insertar una declaración if adicional antes de llamar Showpara evitar la clasificación de la orden del iniciador en ShowMode::ALLcaso de que así sea.

Tenga en cuenta que el código fuente de Unity 8 se ve completamente diferente. Por lo tanto, esta solución puede funcionar solo para Unity 7. Después de media hora arreglando dependencias faltantes y después de otra hora luchando con cmake, decidí no arruinar mi sistema y probarlo en VM mañana;)

Dimitri Podborski
fuente