Jakieś ładne, stabilne sposoby na utrzymanie okna „Zawsze na wierzchu” na komputerze Mac?


82

Poszukuję stabilnego sposobu na utrzymanie dowolnego okna „zawsze na wierzchu” w OSX.

Afloat , aplikacja, która to wymaga, wymaga SIMBL / easySIMBL, co, jak się wydaje, nie jest bardzo stabilne.

Czy są jakieś lepsze rozwiązania? Zaskakujące jest to, że nie ma natywnego sposobu na wdrożenie tego.


2
HIG OSX na to nie pozwala i dlatego nigdy nie został zaprogramowany w systemie okienkowym. Zwykle oznacza to, że próbujesz rozwiązać problem w niewłaściwy sposób lub aplikacja, której używasz, jest źle napisana i nie robi tego, co powinna. Rzeczywiste rozwiązania będą wymagać lepszego wyjaśnienia problemu lub programisty, aby naprawić aplikację.
John Keates,

2
Zezwolenie użytkownikowi na ustawienie okna wyboru zawsze na wierzch innych okien może spowodować niepożądane i nieoczekiwane zachowanie. Wygaszacz ekranu to także tylko okno - czy chcesz unosić się nad tym? Co z ważnymi alertami? Co się stanie, jeśli dwie aplikacje będą zawsze dostępne? Możesz teoretycznie wykonać ZS użytkownika, umieszczając aplikację pełnoekranową na górze i wylogowując ją. Właśnie dlatego w Kakao nie ma nieruchomości „zawsze na wierzchu”. Można podać tylko względny indeks Z (i Apple namawia do tego). Twoje opcje to w zasadzie ponowne kodowanie aplikacji lub użycie SIMBL.
JJ

Czy chcesz to zrobić dla dowolnej aplikacji w systemie Mac OS? Jeśli tak, to czy chcesz, aby zawsze była aktywna (co oznacza naciskanie klawiszy i klikanie myszą), czy też chcesz, aby okno aplikacji „unosiło się nad” wszystkimi innymi, ale NIE jest aktywnym oknem?
kenjikato

7
FWIW Fedora zawsze na to zezwalała (od połowy lat 90. w formie RH) i nigdy nie miałem żadnych problemów z „niepożądaną” naturą. Po prostu nie ma go w OSX, kiedy można go wprowadzić.
nerak99,

1
John Keates - Niestety nie wiesz o czym mówisz. Xcode zrobił to samo ze swoim symulatorem, trzymając je przed wszystkimi innymi oknami, i takie zachowanie istniało przez wiele lat, aż w końcu usunęło je w Xcode 9.
Logicsaurus Rex

Odpowiedzi:


25

Zauważę, że iOS Simulator ma / miał taką opcję Stay in Front. Niezwykle przydatna funkcjonalność i dowodzi, że istnieją obsługiwane przez Apple i usankcjonowane sposoby osiągnięcia tego zachowania.

Może warto otworzyć radar, szczególnie w celu dodania do terminalu.

Możesz powielić mój radar :

Błąd ID 27430873: Dodaj opcję „Zostań z przodu” do okien terminala.

Opcja Bądź na bieżąco w iOS Simulator

Niestety Xcode 9 usunął tę funkcję w symulatorze iOS. Zduplikuj mój raport o błędach Apple, aby to również przywrócić!

Błąd ID 32852924: Xcode 9 iOS Simulator nie ma opcji „Bądź z przodu”

Podobnie aplikacja Apple Monitor aktywności ma opcję Keep CPU Windows on Topumieszczania małych wykresów procesora nad oknami wszystkich innych aplikacji:

Monitor aktywności> Okno> Utrzymuj procesor Windows na wierzchu


1
Co to jest ten symulator iOS? Czy to jest jak emulator? Szukałem jednego.
głosy,

@ tjt263 symulator iOS jest dołączony do Xcode i służy głównie do tworzenia aplikacji na iOS
pkamb

1
Oh ok Co to jest radar? Jak raport o błędzie?
głosy

@ tjt263 tak, bugreport.apple.com
pkamb

3
Ta funkcja jest również wyświetlana we wstępnie zainstalowanym „monitorze aktywności” - jeśli przejdziesz do menu „Okno”, zobaczysz opcję „Zachowaj procesor Windows na wierzchu” - tak więc wygląda na to, że jest oficjalne Apple sposób na zrobienie tego. (Właśnie to widzę w 10.13.2)
keybity

16

Jeśli chcesz to zrobić na przykład w oknie przeglądarki internetowej, możesz spojrzeć na aplikację Helium typu open source . Jest bezpłatny, możesz także pobrać źródło i skompilować własną wersję, jeśli chcesz.

Jest to w zasadzie przeglądarka internetowa, która zawsze unosi się nad wszystkimi innymi oknami. Aplikacja Helu

EDYTOWAĆ:

Jest też nowsza aplikacja ze sklepu Apple Mac App Store o nazwie Fluid Browser , która zrobi to samo. Kosztuje kilka dolarów, ale działa doskonale i ma kilka dodatkowych funkcji niż Hel (stan na dzień 07.06.2016). Masz teraz dwie różne aplikacje do wyboru.

Przeglądarka płynów


Nie podobało mi się korzystanie z Fluid Browser. Tak, ma kilka dodatkowych funkcji, ale jest dość wadliwy i niewygodny. Hel jest bardzo lekki, ale spełnia swoje zadanie.
Winterflags

1
Czy możesz blokować reklamy w helu lub płynie?
proszek366

5

Jeśli naprawdę chcesz / potrzebujesz funkcji „pozostania na górze” w oknie Terminal.app (podobnie jak ja), dostępny jest rozwijany wizjer w stylu Quake / Guake , dostępna wtyczka SIMBL , która obsługuje przypinanie na pierwszym planie; TotalTerminal .

Jest to możliwe, pomimo powszechnego błędnego przekonania, że ​​tak nie jest.

Począwszy od MacOS 10.11 (El Capitan) , aby zainstalować / uruchomić TotalTerminal , może być konieczne wyłączenie  Ochrony integralności systemu :

csrutil enable --without debug

To nie jest już open source, ale ostatnia implementacja open source jest nadal dostępna na GitHub . Więc jeśli masz na to ochotę, możesz dokładnie zbadać, jak to osiągnąć. Wysłałem e-mail do programisty, aby zapytać, ale minęło już tak dużo czasu, odkąd nad nim pracowali, że nie mogli (lub nie chcieliby) tak naprawdę mi powiedzieć.


TotalTerminal nie jest już utrzymywany. Skończyło się na przejściu na iTerm, aby uzyskać to samo zachowanie: apple.stackexchange.com/questions/48796/…
André Morujão

Zgadza się, nie sugerowałbym tego. Ale jeśli ktoś jest zmotywowany do wdrożenia własnego rozwiązania, warto przejrzeć połączony kod źródłowy.
głosy

Do terminala pływającego używam helu z gotty. gotty pozwala na otwarcie terminala w przeglądarce internetowej, a Helium jest przeglądarką sieciową.
wesley6j

Naprawdę, naprawdę, naprawdę, i naprawdę naprawdę mam na myśli, naprawdę, musisz pamiętać, że powinieneś ponownie włączyć SIP po zrobieniu tego, co dokumentujesz.
Pryftan

@Pryftan nah, SIP jest dla cipek.
głosy

5

Właśnie zrezygnowałem z mySIMBLE i na powierzchni. Fenêtre to płatna aplikacja z darmową wersją Lite, która działa naprawdę dobrze.

Używam go do odtwarzania okna wideo w oknie podczas pracy lub do utrzymywania instrukcji online na górze. Nie wiesz, do czego chcesz go użyć?


3

W Mac App Store dostępna jest bezpłatna aplikacja o nazwie Key Codes, która, o ile wiem, pozostaje na wierzchu wszystkich innych okien. Poza elementami menu pozostaje na wszystkich innych aplikacjach, w tym terminalu i pasku adresu URL Safari.


11
Genialna wskazówka Seamus, jeśli op potrzebuje konkretnej aplikacji, aby pozostać na topie. Teraz, jeśli, hipotetycznie rzecz biorąc, chce, aby inna aplikacja pozostała na szczycie, a może nawet kilka różnych, to może nie tak znakomity?
mysomic

2
Dzięki! Działa świetnie w przypadku użycia „proszę okludować tę upiorną rzecz”.
ecmanaut

3

Naprawdę nie jest to odpowiedź, ale bardziej jak obejście: możesz użyć Spectacle lub podobnej aplikacji, aby szybko skonfigurować układ pulpitu, który pozwoli ci śledzić oryginalne okno.

Oczywiście to nie pomoże, gdy czekasz, aż ktoś dołączy do czatu wsparcia, a tymczasem zdecydujesz się poświęcić swój czas na coś bardziej użytecznego niż gapienie się w puste okno - na przykład pracę na innym wirtualnym pulpicie :(

Chwyć spektakl stąd: https://www.spectacleapp.com


Witamy w Ask Different i nie spiesz się, aby opublikować odpowiedź. Jako sugerowane ulepszenie należy podać linki do aplikacji, do których odwołujesz się w swoim poście. To zapewnia lepszą obsługę. Aby uzyskać więcej informacji na temat tworzenia dobrej odpowiedzi, zobacz: apple.stackexchange.com/help/how-to-answer
Allan

2
Cześć Allan, bardzo dziękuję za pomoc w uczynieniu AskDifferent schludnym i schludnym miejscem, będę postępować zgodnie z twoimi instrukcjami. Twoje zdrowie.
i90rr

2

przeciągnij terminal nad oknem safari po wpisaniu F3.

to automatycznie ustawia terminal, pionowo, po prawej stronie okna safari, na przykład ... abyś mógł trochę popracować i mieć dostęp do terminala, podczas gdy w innym oknie ...


Nic się nie dzieje, gdy próbuję tego. Okno terminala właśnie powraca do pierwotnej pozycji.
jmh


2

Jeśli jesteś programistą i Twój SIP jest wyłączony (csrutil), możesz zmienić levelwłaściwość NSWindowużywania lldb. Po dołączeniu do procesu (np. App Store) w XCode po prostu wpisz:

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

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

PS: Jeśli aplikacja ma wiele okien, uzyskaj prawidłowe za pomocą polecenia

(lldb) po [NSApp windows]

Aby wrócić, zamknij okno lub użyj

(lldb) po [$window setLevel:0]

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.