Будь-які приємні, стабільні способи зберегти вікно "Завжди на вершині" на Mac?


82

Я шукаю стабільний спосіб зберегти будь-яке вікно "завжди вгорі" на OSX.

Afloat , додаток, для якого потрібна SIMBL / easySIMBL, яка, здається, не дуже стабільна.

Чи є якісніші рішення? Насправді дивно, що немає рідного способу цього здійснити.


2
HIG OSX цього не дозволяє, і тому він ніколи не був запрограмований ніде в системі вікон. Зазвичай це означає, що ви намагаєтеся вирішити проблему неправильно, або додаток, який ви використовуєте, написано погано і не робить того, що для цього потрібно. Фактичні рішення потребують або кращого пояснення проблеми, або програміста для виправлення програми.
Джон Кітс

2
Якщо дозволити користувачеві встановити свій вибір вікна, щоб він завжди знаходився поверх інших вікон, це може спричинити небажану та несподівану поведінку. Заставка також є лише вікном - ви хочете плисти над цим? Що про важливі сповіщення? Що робити, якщо дві програми вимагають завжди бути в топі? Теоретично ви можете зробити DoS користувачем, поставивши додаток на весь екран і вийти з нього. Ось чому в Какао немає властивості "завжди на початку". Можна лише вказати відносний індекс Z (і Apple закликає цього не робити). Ваші параметри в основному перекодують додаток або використовують SIMBL.
JJ

Ви хочете зробити це для будь-якого додатка в ОС Mac? Якщо так, чи хочете, щоб він завжди мав фокус (маючи на увазі натискання клавіш та клацання миші), чи ви хочете, щоб вікно програми "пливе над" усіма іншими, але НЕ бути активним вікном?
kenjikato

7
FWIW Fedora завжди дозволяла це (з середини 90-х років у формі RH), і у мене ніколи не було проблем "небажаного" характеру. Це просто не в OSX, коли його можна було б поставити.
nerak99

1
Джон Кіт - На жаль, ви не знаєте, про що говорите. Xcode здійснив таку поведінку зі своїм Simulator, тримаючи його перед усіма іншими вікнами, і така поведінка існувала довгі роки, поки вони нарешті не усунули її в Xcode 9.
Logicsaurus Rex

Відповіді:


25

Зауважу, що у iOS Simulator є / була можливість Stay in Front. Надзвичайно корисна функціональність і доводить, що існують підтримувані Apple та санкціоновані способи досягнення такої поведінки.

Можливо, варто відкрити радари, особливо для додавання до терміналу.

Ви можете дублювати мій радар :

Ідентифікатор помилки 27430873: Додайте опцію "Залишатися попереду" до вікон терміналів.

Залишайтеся в передній частині в iOS Simulator

На жаль, Xcode 9 видалив цю функцію в iOS Simulator. Будь ласка, дублюйте мій звіт про помилку Apple, щоб повернути це також!

Ідентифікатор помилки 32852924: у симуляторі Xcode 9 iOS Simulator відсутня опція "Залишатися попереду"

У додатку Apple Activity Monitor так само є опція, Keep CPU Windows on Topщо плаває невеликі графіки процесора поверх вікон усіх інших програм:

Монітор активності> Вікно> Тримайте Windows CPU вгорі


1
Що це за симулятор iOS? Це як емулятор? Я шукав його.
tjt263

@ tjt263 симулятор iOS в комплекті з Xcode і в основному використовується для розробки додатків для iOS
pkamb

1
О, добре. Що таке радар? Як звіт про помилку?
tjt263

@ Tjt263 так, bugreport.apple.com
pkamb

3
Ця функціональність також відображається в попередньо встановленому "Моніторі діяльності" - якщо ви перейдете до меню "Вікно", ви побачите опцію "Тримати Windows у центральному процесорі вгорі" - так, схоже, існує офіційний Apple спосіб це зробити. (Це я бачу 10.13.2)
клавіші

16

Якщо ви хочете зробити це лише за скажімо, у вікні Інтернет-браузера, ви можете подивитися на додаток гелію з відкритим кодом . Це безкоштовно, і ви також можете завантажити джерело і скласти власну версію, якщо хочете.

Це в основному Інтернет-браузер, який завжди плаває над усіма іншими вікнами. Гелій App

Редагувати:

Також є новіший додаток від Apple Mac App Store під назвою Fluid Browser, який зробить те саме. Це коштує пару доларів, але він працює чудово і має кілька функцій, ніж Гелій (станом на 6.07.2016). Отже, у вас є два різних додатки на вибір.

Різний браузер


Мені не сподобався досвід роботи з Fluid Browser. Так, у нього є ще кілька функцій, але він досить влучний і громіздкий. Гелій дуже легкий, але робить свою роботу.
Winterflags

1
Чи можете заблокувати оголошення в гелії або рідини?
порошок366

5

Якщо ви дійсно хочете / потребуєте функціоналу "залишатися вгорі" для вашого вікна Terminal.app (як я), є випадаючий козирок Quake / Guake- стилю, доступний плагін SIMBL, який підтримує прикріплення на передній план; TotalTerminal .

Тож можливо, незважаючи на поширену помилку, що це не так.

Станом на MacOS 10.11 (El Capitan) , щоб встановити / запустити TotalTerminal , можливо, вам потрібно буде відключити  захист цілісності системи :

csrutil enable --without debug

Це вже не відкритий код, але остання реалізація з відкритим кодом все ще доступна на GitHub . Тож якщо ви схильні до цього, ви можете дослідити, як саме це досягнуто. Я надіслав електронною поштою розробнику запитання, але минуло так довго, як вони над цим працювали, і вони не могли (або не хотіли?) Мені сказати.


У ці дні TotalTerminal більше не підтримується. Я перейшов на iTerm, щоб отримати таку саму поведінку: apple.stackexchange.com/questions/48796/…
André Morujão

Правильно, я б не пропонував його використовувати. Але якщо когось вмотивовано реалізувати власне рішення, можливо, варто переглядати зв'язаний вихідний код.
tjt263

Для плаваючого терміналу я використовую Гелій з Гетті. gotty дозволяє відкрити термінал у веб-браузері, а Гелій - плаваючий веб-браузер.
wesley6j

Ви дійсно, дуже, дуже, і я справді маю на увазі дійсно так, потрібно зауважити, що вам слід повторно включити SIP, зробивши те, що ви документуєте.
Прифтан

@Pryftan так, SIP призначений для киць.
tjt263

5

Я щойно відмовився від mySIMBLE та на плаву. Fenêtre - це платний додаток з безкоштовною версією Lite, яка працює дуже добре.

Я використовую його для відтворення відео у вікні під час роботи або для того, щоб підтримувати онлайн-інструкції. Не впевнені, для чого ви хочете його використовувати?


3

У магазині додатків Mac є безкоштовне додаток під назвою Ключові коди, яке, наскільки я можу, залишається поверх усіх інших вікон. Крім пунктів меню, він залишається на вершині всіх інших програм, включаючи термінал та URL-адресу Safari.


11
Чудовий наконечник Seamus, якщо спеціалісту спеціально потрібен саме цей додаток, щоб залишатися на вершині. Тепер, якщо, звичайно, гіпотетично кажучи, він хоче, щоб інший додаток залишався на вершині чи, можливо, навіть декілька різних, то, можливо, це не так стерлінгово?
таємничий

1
Дякую! Чудово підходить для випадку використання "будь ласка, прикрийте цю жахливу річ".
еманаут

3

Насправді не відповідь, але більше нагадує обхід: ви можете використовувати Spectacle або подібний додаток для швидкого налаштування макета робочого столу, яке дозволяє вам слідувати за початковим вікном.

Звичайно, це не допоможе, коли ви чекаєте, коли хтось ще приєднається до чату підтримки, а тим часом вирішите використати свій час на щось корисніше, ніж дивитись у порожнє вікно - наприклад, працювати на іншому віртуальному робочому столі :(

Візьміть видовище звідси: https://www.spectacleapp.com


Ласкаво просимо до "Запитайте різних" і знайдіть час, щоб опублікувати відповідь. Як запропоноване вдосконалення, слід надати посилання на додатки, на які ви посилаєтесь у своїй публікації. Це сприяє кращому користуванню. Для отримання додаткової інформації про кращу відповідь дивіться: apple.stackexchange.com/help/how-to-answer
Аллан

2
Привіт Аллан, дуже дякую за допомогу зробити AskDifferent акуратним та охайним місцем, я буду виконувати ваші вказівки. Ура.
i90rr

2

просто перетягніть свій термінал через вікно сафарі після введення F3.

це автоматично розташовує термінал, вертикально, в правій частині вікна сафарі, наприклад ... так що ви можете виконати певну роботу і мати доступ до терміналу, перебуваючи в іншому вікні ...


Нічого не відбувається, коли я спробую це. Вікно терміналу просто повертається у вихідне положення.
jmh


1

Якщо ви розробник, і ваш SIP відключений (csrutil), ви можете змінити levelвластивість NSWindowвикористання lldb. Після того, як ви додасте до процесу (тобто App Store) в XCode, просто введіть:

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

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

PS: Якщо програма має кілька вікон, отримайте правильне за допомогою команди

(lldb) po [NSApp windows]

Для повернення назад просто закрийте вікно або скористайтеся

(lldb) po [$window setLevel:0]

введіть тут опис зображення введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.