Як я можу надіслати поточне активне вікно назад?


15

Чи є ярлик або такий, щоб надіслати поточне активне вікно на задній частині екрана, зберігаючи його відкритим (щоб воно закінчилося "під" усі інші відкриті вікна)?


2
H надішле поточну програму (включаючи всі її вікна) на задню частину і приховає її, поки ви не повернете її на передню частину (з док-станції або -TAB, щоб повторно вибрати додаток). У більшості програм Shift-- ~ буде проходити через вікна поточного додатка, що, мабуть, найближче до того, що ви шукаєте.
Mic Channel

Я знаю про це, це не те, що я хочу.

1
Якщо ви хочете відправити його повністю назад, яке вікно має бути зосередженим? Попереднє вибране вікно?
sayzlim

Відповіді:


10

Коротка відповідь: Ні , Apple не надає API, який дозволяє змінювати індекс вікна програми, за винятком того, як приводить вікно на передню частину (індекс 1). Елегантних рішень немає . Але:

Довга відповідь: Так , ви можете використовувати AppleScript для ефективного переміщення вікна на задню частину стека вікон, що підтримують AppleScript, збираючи список вікон, а потім швидко переміщуючи кожне ( крім переднього) на передню частину , залишаючи вибране вікно на задній.

Ось приклад AppleScript, який надсилає передні вікна Finder на задній частині.

tell application "Finder"
    set winList to every window whose visible is true
    if not winList = {} then
        repeat with oWin in (items 1 through -2 of reverse of winList)
            set index of oWin to 1
        end repeat
    end if
end tell

Цей сценарій заснований на рішенні JMichaelTX, обговореному на форумі KeyboardMaestro.

Перестановка неймовірно швидка, але в Редакторі сценаріїв ви можете перевірити, як вона працює, залишивши "506" на дні та вискочивши "502-505" вгору таким чином, щоб зберегти їх порядок:

get every window whose visible = true
    --> {Finder window id 506, Finder window id 505, Finder window id 504, Finder window id 503, Finder window id 502}
set index of Finder window id 502 to 1
    --> 1
set index of Finder window id 503 to 1
    --> 1
set index of Finder window id 504 to 1
    --> 1
set index of Finder window id 505 to 1
    --> 1

Ви можете нанести на карту цей AppleScript на ярлик служби або клавіатури, використовуючи а) введення сценарію в дію Виконати AppleScript всередині служби Automator або b) за допомогою пускового пристрою (Альфред, Клавіатура Maestro тощо). Детальніше про призначення клавіатури Applescript див .: Як призначити ярлик клавіатури написаному AppleScript?

Це може задовольнити потреби ОП - це незрозуміло з оригіналу посади. Це рішення також може бути розширено до декількох додатків, що підтримують AppleScript. Я НЕ , проте відомо про рішення зробити це ефективно працювати з сумішшю сценарних і не сценарних вікон, в зв'язку з тим , що в AppleScript, System Eventsадресовані вікна для НЕ сценарних додатків не мають set indexдієслово / властивості. Існує дія "AXRaise" для деяких вікон, коли ввімкнено допоміжні пристрої / доступність, але це також не стосується всіх вікон. Існують розроблені хаки, які передбачають проходження кожного активного додатка та показ / приховування або мінімізацію / відновлення вікон, але вони безлад.

Пов'язані дискусії:


Чи можливо надіслати вікно будь-якої програми назад, замість вікна конкретної програми?
Ді Лю

На жаль, як і у Мохаве, це, здається, більше не працює.
Едвард Фолк

Починаючи з Mojave, я розумію, що для керування Finder з AppleScript тепер потрібні дозволи (неперевірені). Якщо ви отримуєте помилки, такі як errAEEventNotPermitted, то є рішення, як додати ці дозволи - див. Відповідні дискусії: forums.developer.apple.com/thread/106949
JeremyDouglass

2

Ваше запитання не дуже зрозуміло, але якщо ви хочете, це ярлик для проїзду через усі вікна в даний час активного додатка, ви повинні мати можливість це зробити за допомогою Command~комбінації клавіш.

~Ключ зазвичай знаходиться зліва від 1клавіші.

Для того, щоб уточнити, що Command~клавіатурне сполучення - це перегляд усіх вікон поточного додатка, в якому ви перебуваєте. Наприклад, якщо ви використовуєте MS Word і у вас є три документи, вони перейдуть через ці три документи.

Однак Command~комбінація клавіш не проходить по вкладках. Наприклад, якщо у вас відкрито Safari з трьома вікнами, і кожне вікно має п'ять вкладок, за допомогою цього ярлика буде проходити цикл через три вікна, а не через окремі вкладки.

Ще одним варіантом, який може досягти бажаного, є CommandMкомбінація клавіш. Однак це зводить до мінімуму активне вікно до Доку, тому я підозрюю, що це не те, що ви хочете.

Якщо я повністю зрозумів ваше запитання, будь ласка, уточніть.


Я думаю, що це той випадок використання, якого хоче ОП: скажіть, у мене програма для повідомлень відкрита перед моєю поштовою програмою, і я хочу швидко винести поштову програму на перший план і надіслати повідомлення на другий план, я можу зробити клавіатуру ярлик, і додаток для повідомлень буде позаду моєї пошти. Я спробував комбінацію клавіш, і цього не вдалося.
owlswipe

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