¿Alguna forma agradable y estable de mantener una ventana 'Siempre arriba' en la Mac?


82

Estoy buscando una forma estable de mantener cualquier ventana 'siempre arriba' en OSX.

Afloat , una aplicación que hace eso requiere SIMBL / easySIMBL, lo que parece que no es muy estable.

¿Hay alguna solución mejor? De hecho, es sorprendente que no haya una forma nativa de implementar esto.


2
El HIG de OSX no lo permite y, por lo tanto, nunca se programó en ninguna parte del sistema de ventanas. Por lo general, significa que está tratando de resolver un problema de manera incorrecta, o una aplicación que usa está mal escrita y no hace lo que debe hacer. Las soluciones reales necesitarán una mejor explicación del problema o un programador para arreglar la aplicación.
John Keates

2
Permitir que el usuario configure su ventana de elección para estar siempre encima de otras ventanas puede causar un comportamiento no deseado e inesperado. El protector de pantalla también es solo una ventana: ¿desea flotar por encima de eso? ¿Qué pasa con las alertas importantes? ¿Qué pasa si dos aplicaciones exigen estar siempre en la cima? Teóricamente, podrías hacer un usuario de DoS al poner tu aplicación de pantalla completa en la parte superior y cerrar sesión. Esta es la razón por la cual no hay una propiedad 'siempre en la cima' en Cocoa. Uno solo puede especificar un índice Z relativo (y Apple insta a no hacerlo). Sus opciones son básicamente volver a codificar la aplicación o usar SIMBL.
JJ

¿Desea hacer esto para cualquier aplicación en Mac OS? Si es así, ¿desea que siempre tenga el foco (es decir, presionar las teclas y hacer clic con el mouse), o desea que la ventana de una aplicación "flote por encima" de todas las demás, pero NO sea la ventana activa?
kenjikato

77
FWIW Fedora siempre ha permitido esto (desde mediados de los 90 en forma de HR) y nunca he tenido ningún problema de naturaleza "no deseada". Simplemente no está en OSX cuando se podría
instalar

1
John Keates - Desafortunadamente no sabes de qué estás hablando. Xcode hizo este mismo comportamiento con su simulador, manteniéndolo frente a todas las demás ventanas, y este comportamiento existió durante muchos años hasta que finalmente lo eliminaron en Xcode 9.
Logicsaurus Rex

Respuestas:


25

Notaré que el simulador de iOS tiene / tenía la opción Stay in Front. Funcionalidad extremadamente útil, y demuestra que hay formas compatibles y aprobadas por Apple para lograr este comportamiento.

Puede valer la pena abrir un radar, especialmente para agregar a la Terminal.

Puedes duplicar mi radar :

ID de error 27430873: agregue la opción "Mantenerse al frente" a las ventanas de Terminal.

Opción Stay in Front en iOS Simulator

Desafortunadamente, Xcode 9 eliminó esta función en el simulador de iOS. ¡Por favor, duplique mi informe de errores de Apple para recuperar eso también!

Id. De error 32852924: Xcode 9 iOS Simulator no tiene la opción "Mantenerse al frente"

La aplicación Activity Monitor de Apple también tiene la opción de hacer Keep CPU Windows on Topflotar los pequeños gráficos de CPU en la parte superior de todas las ventanas de otras aplicaciones:

Monitor de actividad> Ventana> Mantener ventanas de CPU en la parte superior


1
¿Qué es este simulador de iOS? ¿Es como un emulador? He estado buscando uno.
voces

@ tjt263 el simulador de iOS se incluye con Xcode y se usa principalmente para desarrollar aplicaciones de iOS
pkamb

1
Oh ok ¿Qué es un radar? ¿Como un informe de error?
voces

@ tjt263 sí, bugreport.apple.com
pkamb

3
Esta funcionalidad también se muestra en el 'Monitor de actividad' preinstalado: si va al menú 'Ventana', verá una opción para 'Mantener las ventanas de CPU en la parte superior', por lo que parece que hay una Apple oficial manera de hacer esto. (Esto es lo que veo en 10.13.2)
keybits

16

Si está buscando hacer esto solo por decir una ventana del navegador de Internet, puede mirar la aplicación de código abierto Helium . Es gratis, y también puede descargar la fuente y compilar su propia versión si lo desea.

Básicamente es un navegador de Internet que siempre flota sobre todas las demás ventanas. Aplicación de helio

EDITAR:

También hay una aplicación más nueva de Apple Mac App Store llamada Fluid Browser que hará lo mismo. Cuesta un par de $ s, pero funciona excelentemente y tiene algunas características más que Helium (a partir del 7/6/2016). Entonces ahora tiene dos aplicaciones diferentes para elegir.

Navegador de fluidos


No me gustó la experiencia de Fluid Browser. Sí, tiene algunas características más, pero es bastante defectuoso y engorroso. El helio es muy liviano pero hace el trabajo.
Winterflags el

1
¿Se pueden bloquear anuncios en Helio o Fluido?
powder366

5

Si realmente desea / necesita la funcionalidad "mantenerse al tanto" para su ventana Terminal.app (como yo), hay una visera desplegable de estilo Quake / Guake , un complemento SIMBL disponible que admite ser fijado en primer plano; TotalTerminal .

Entonces es posible, a pesar de la idea errónea común de que no lo es.

A partir de MacOS 10.11 (El Capitan) , para instalar / ejecutar TotalTerminal , es posible que deba deshabilitar la  Protección de integridad del sistema :

csrutil enable --without debug

Ya no es de código abierto, pero la última implementación de código abierto todavía está disponible en GitHub . Entonces, si lo desea, podría investigar exactamente cómo se logra. Le envié un correo electrónico al desarrollador para preguntar, pero ha pasado tanto tiempo desde que trabajaron en él, que realmente no pudieron (¿o no lo harían?).


TotalTerminal ya no se mantiene en estos días. Terminé cambiando a iTerm para obtener el mismo comportamiento: apple.stackexchange.com/questions/48796/…
André Morujão

Así es, no sugeriría usarlo. Pero si alguien está motivado para implementar su propia solución, podría valer la pena explorar el código fuente vinculado.
voces

Para terminal flotante, estoy usando Helium con gotty. gotty le permite abrir una terminal en el navegador web y Helium es un navegador web flotante.
wesley6j

Realmente, realmente, realmente, y realmente quiero decir realmente, debe tener en cuenta que debe volver a habilitar SIP después de hacer lo que documenta.
Pryftan

@Pryftan nah, SIP es para coños.
voces

5

Acabo de renunciar a mySIMBLE y a flote. Fenêtre es una aplicación paga con una versión lite gratuita que funciona muy bien.

Lo uso para reproducir videos ventana en ventana mientras trabajo o para mantener las instrucciones en línea en la parte superior. ¿No estás seguro de para qué lo quieres usar?


3

Hay una aplicación gratuita llamada Key Codes en la Mac App Store que, por lo que puedo decir, se mantiene por encima de todas las demás ventanas. Además de los elementos del menú, se mantiene encima de todas las otras aplicaciones, incluida la Terminal y la barra de URL de Safari.


11
Consejo brillante Seamus si el operador necesita específicamente esa aplicación en particular para mantenerse en la cima. Ahora, si, hipotéticamente hablando, por supuesto, quiere una aplicación diferente para mantenerse en la cima, o tal vez incluso algunas diferentes, ¿entonces quizás no tan excelente?
mysomic

2
¡Gracias! Funciona muy bien para el caso de uso "ocluya esta cosa horrible".
ecmanaut

3

No es realmente una respuesta, sino más bien una solución: puede usar Spectacle o una aplicación similar para configurar rápidamente un diseño de escritorio que le permita seguir la ventana original.

Por supuesto, esto no ayudará cuando esté esperando que alguien más se una a un chat de soporte y, mientras tanto, decida usar su tiempo para algo más útil que mirar una ventana en blanco, como trabajar en otro escritorio virtual :(

Grab Spectacle desde aquí: https://www.spectacleapp.com


Bienvenido a Ask Different y tómese el tiempo para publicar una respuesta. Como una mejora sugerida, debe proporcionar enlaces a las aplicaciones a las que hace referencia en su publicación. Se hace para una mejor experiencia de usuario. Para obtener más información sobre cómo elaborar una buena respuesta, consulte: apple.stackexchange.com/help/how-to-answer
Allan

2
Hola Allan, muchas gracias por ayudar a hacer de AskDifferent un lugar ordenado y ordenado, seguiré tus instrucciones. Salud.
i90rr

2

simplemente arrastre su terminal, sobre la ventana de safari, después de escribir el F3.

esto organiza automáticamente el terminal, verticalmente, en el lado derecho de la ventana de safari, por ejemplo ... para que pueda trabajar y tener acceso al terminal, mientras está en otra ventana ...


No pasa nada cuando intento esto. La ventana de terminal vuelve a su posición original.
jmh


2

Si usted es un desarrollador y su SIP está deshabilitado (csrutil), se puede cambiar la levelpropiedad del NSWindowuso lldb. Una vez que se adjunte al proceso (es decir, App Store) en XCode simplemente escriba:

(lldb) e NSWindow *$window = [(NSArray *)[NSApp windows] firstObject]
(lldb) po $window
<NSWindow: 0x600000d64200>

(lldb) po [$window setLevel:3]
resume debugging

PD: si la aplicación tiene varias ventanas, obtenga la correcta usando el comando

(lldb) po [NSApp windows]

Para regresar, simplemente cierre la ventana o use

(lldb) po [$window setLevel:0]

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.