Anclar aplicaciones a múltiples escritorios en Windows 10

73

Una de las grandes características nuevas para Windows es el hecho de que múltiples escritorios "virtuales" ahora son compatibles de forma nativa, lo que le permite organizar colecciones de ventanas juntas y grupos separados de tareas.

Esto es bueno.

Puede mover ventanas entre escritorios haciendo clic en el botón "tareas" y luego haciendo clic derecho en la ventana de una aplicación y seleccionando "Mover a ..."

Esto es un poco torpe y no tan bueno.

Tengo dos monitores y, a menudo, me gusta reproducir una película en mi segundo monitor, ya sea en un navegador web o reproductor multimedia, mientras tengo un navegador y algunas otras aplicaciones en la pantalla principal. Hacer esto no es un problema en mi configuración actual, simplemente funciona.

Con el advenimiento de los escritorios virtuales, quería poner el navegador en un escritorio virtual y otra aplicación en otro escritorio virtual y aún así poder ver el video cuando cambio de escritorio, de manera que sea visible en ambos escritorios virtuales. El uso de la aplicación predeterminada de Cine y TV para reproducir un video y luego pasar a otro escritorio simplemente hace que su video se detenga sin ninguna advertencia.

Esto no está bien.

Lo que esperaba era que los dos monitores tuvieran su propio escritorio virtual o que tuvieran alguna opción de "anclar a todos los escritorios" similar a la función de "ventana adhesiva" que he visto en muchos administradores de ventanas basados ​​en Linux.

¿Hay alguna forma de lograr esto?

Mokubai
fuente
No es que yo sepa, aunque tengo experiencia con múltiples sistemas que usan espacios de trabajo (diferentes sistemas Linux), ninguno ha tenido esta característica, lo que rompe el concepto de tener múltiples lugares de trabajo.
Daniel
2
@Daniel He hablado con varias personas y se refieren a él como "ventanas adhesivas"
Mokubai
2
@Psychogeek Me refiero tanto a los monitores múltiples como a los escritorios virtuales, el lado de los monitores múltiples está bien. Puedo abrir un video, ponerlo en la segunda pantalla y todo está bien, pero si cambio a otro escritorio usando la nueva función de escritorio virtual, la ventana de video desaparece y (en algunos casos) deja de reproducirse por completo. Me gustaría tener alguna forma de fijar una ventana a múltiples escritorios virtuales.
Mokubai
Entendido, muchos de los programas de escritorio virtual tenían esa característica, donde asignarías programas a virtuales específicos, todavía existían muchos pequeños problemas con errores dependiendo del método.
Psycogeek
66
Creo que un ejemplo bastante estándar para esta necesidad es casi cualquier aplicación de comunicación. Me gustaría usar escritorios virtuales separados para diferentes proyectos en los que estoy trabajando, pero me gustaría fijar / pegar clientes de mensajería instantánea y correo electrónico. ¡Parece un caso de uso bastante estándar para mí que me gustaría separar mis espacios de trabajo sin tener que cambiar el escritorio solo para recibir alertas por correo electrónico!
Colin K

Respuestas:

100

La función ahora se ha lanzado como una de varias "Mejoras de escritorio virtual" en la Actualización de aniversario de Windows 10 (compilación 14316):

Ahora puede anclar una ventana para que esté disponible en todos los escritorios. Para hacer esto, inicie la Vista de tareas, luego haga clic derecho en la ventana que desea anclar y elija "Mostrar esta ventana en todos los escritorios". Intenta fijar Skype o Groove Music para que siempre estén a tu alcance. Y si tiene una configuración multi-mon, puede disfrutar de la posibilidad de tener su aplicación de correo electrónico en el segundo monitor sin importar a qué escritorio se cambie.

ingrese la descripción de la imagen aquí

Daniel Ballinger
fuente
La publicación habla de estar disponible en el Anillo rápido de Windows Insider, ¿tiene alguna línea de tiempo para cuando esto caerá para los usuarios normales?
Mokubai
1
@Mokubai Por lo que puedo decir, todavía no hay una fecha de lanzamiento público firme. Solo un vago "Este verano [del hemisferio norte]".
Daniel Ballinger
pero ¿cómo lo desatascas?
Mikey
@Mikey ¿Desmarca la opción "Mostrar X en todos los escritorios"?
Daniel Ballinger
Funciona en las ventanas en las que puedo hacer clic, el problema es cuando no están visibles en la vista de tareas. Por supuesto, era visible antes cuando lo encendí, pero ahora cada vez que entra en la vista de tareas, la ventana desaparece. Entonces, ¿cuál es otra forma de desactivarlo? ¿Hay una clave reg? Actualmente estoy teniendo este problema con Telegram, que creo que es una QT (aplicación multiplataforma). Para ser claros, la ventana es visible en todos los escritorios, pero desaparece cuando entro en la vista de tareas
Mikey
18

Sí. [casi :)] Todas las ventanas con el atributo WS_EX_TOOLWINDOW son visibles en todos los escritorios.

Autohotkey es de gran ayuda en esto. Script de ejemplo: MyLoop.ahk:

WS_EX_TOOLWINDOW: = 0x00000080
Lazo
{
   WinSet, ExStyle, +% WS_EX_TOOLWINDOW%, ahk_class Chrome_WidgetWin_1
   Dormir, 100
}

Ponga esto en el inicio de Windows y la ventana de Google Chrome se "pegará" a todos los escritorios virtuales.

O asigne esto como una tecla de acceso rápido: Ejemplo de script - MyHotkeys.ahk:

WS_EX_TOOLWINDOW: = 0x00000080
+ MButton :: WinSet, ExStyle, ^% WS_EX_TOOLWINDOW%, A
^ MButton :: WinSet, AlwaysOnTop, alternar, A

Ponga esto en el inicio de Windows y puede alternar el estado "adhesivo" para cualquier ventana presionando Shift + botón central haciendo clic en él.

Tecla de adición: Ctrl + clic en el botón central alternará el estado "superior". Muy útil.

PD: las aplicaciones modernas (por ejemplo, Windows 10 Calculator) de alguna manera ignoran esto. No se porque. Pero para la ventana del explorador de Windows y la mayoría de las 'aplicaciones antiguas', funciona bien

IDj
fuente
Probé los scripts para el clic medio + teclas de acceso rápido. El botón central Ctrl + funcionó bien. Sin embargo, no pude lograr que el escritorio virtual se pegara al trabajo. Ninguna de las ventanas en las que lo probé hizo la transición.
Daniel Ballinger
Trabajó para mi. En mi caso, siempre quise configurarlo para mostrar, así que cambié el cursor ( ^) con un signo más ( +).
Ohaal
1

Basado en la solución @idj anterior, así es cómo hacerlo en C:

exstyle = GetWindowLongPtr(hwndPtr, GWL_EXSTYLE);
exstyle |= WS_EX_TOOLWINDOW
SetWindowLongPtr(hwndPtr, GWL_EXSTYLE, exstyle);
Noitidart
fuente