Як отримати вікна, які перемістилися "поза екраном"


50

У мене виникає ця проблема іноді при моїх налаштуваннях з подвійним екраном, особливо коли я маю на увазі багато речей.

Інколи мені здається, що я можу повністю перемістити вікно поза екраном (я не зовсім впевнений, як), і не можу його повернути. Якщо я виконую "приховати все" в меню програми (зазвичай це Mail.app, тож давайте дотримуватись цього прикладу), все зникає, і Mail, здається, вважає, що у меню Windows з'явилося вікно "Вхідні", але там нічого не видно. Закриття та перезапуск програми, здається, не допомагає (оскільки програма корисно пам'ятає, де раніше було моє вікно), і все, що я закінчую, - це вимкнути Mac, відключити другий монітор і перезапустити його, знову відкрити додаток і це Здається, переконує Mac переосмислити положення головного вікна, і все добре. Потім я можу перезапустити другий монітор тощо.

Чи є кращий спосіб? Чи існує якийсь спосіб повернення вікон назад до певного монітора чи утиліта для переміщення «відкритих» / запущених вікон? Чи я насправді роблю щось не так ? :-)

До речі, я не використовую простори - тому я впевнений, що це не якесь дивне питання про простори. :-)

Відповіді:


44

Чіліон відповів на це на SuperUser .

Я не копіюватиму та вставляти його відповідь сюди, оскільки він отримав кредит не я.

Але в основному, ви могли б це зробити (цитується з відповіді Челіона):

Другий спосіб упорядкування Windows, щоб ви могли бачити їх (якщо вони з якоїсь причини залишаються поза екраном) - це перейти на додаток, якому належить відповідне вікно, утримуйте клавішу Option і виберіть пункт "Впорядкувати спереду" з меню Вікно. Потім вони розташують усі вікна цієї програми в каскаді з верхнього лівого кута екрана.


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

3
Це рішення не працює в Yosemite, ви можете отримати доступ до меню Window лише з дисплея, у якому вікно в Yosemite.
ShemSeger

5
Параметр меню не відображається для XQuartz
Mead

1
Apple, схоже, видалила цю функцію, як у MacOS 10.13.5. Це майже як можливість отримати вікна, які перемістилися за межі екрана, вважається помилкою, а не тим, що їх можна перемістити поза екраном.
Викинути рахунок

У macOS Catalina
clearlight

15

Для повноти:

З моєї відповіді, спочатку на запитання про помилку сервера 7237 :

Якщо монітор відключений від мережі (включаючи адаптер, а також якщо це можливо - якщо адаптер залишає OS X думати, що монітор все ще підключений), усі Windows повинні перейти на головний екран. Інколи деякі вікна (наприклад, Firefox) зберігатимуть своє положення в самому крайньому правому куті екрану, залишаючи вам достатньо місця, щоб захопити заголовок і перемістити його там, де ви хочете.

Один із способів - перш ніж вимкнути зовнішній монітор (або перед тим, як вимкнути шнур), відкрити панель «Налаштування налаштувань» у налаштуваннях системи та натиснути кнопку «Зберіть Windows». Це повинно відображати кожне вікно на головному екрані, і параметр не з’являється, якщо у вас не підключений другий монітор.

Другий спосіб упорядкування Windows, щоб ви могли бачити їх (якщо вони з якоїсь причини залишаються поза екраном) - це перейти на додаток, якому належить відповідне вікно, утримуйте клавішу Option і виберіть пункт "Впорядкувати спереду" з меню Вікно. Потім вони розташують усі вікна цієї програми в каскаді з верхнього лівого кута екрана.

Нарешті, є декілька AppleScripts (наприклад, цей у Snipplr ), який також захопить кожне вікно з екрана та перемістить його на екрані для вас.

Існує також чудовий додаток умовного доступу під назвою Stay, який допоможе автоматизувати багато цього для вас, в той час як є MarcoPolo, який зробить набагато більше, ніж просто помітить, якщо монітор відключений і дозволяє запускати сценарії (у випадку, якщо ви хочете зробити більше, ніж просто переставити вікна).


11

Я подумав, що мені слід відповісти на це, що описує рішення спеціально для XQuartz. Багато рішень тут не працюють для XQuartz. З цього квитка: https://xquartz.macosforge.org/trac/ticket/796 , я знайшов два рішення, які працюють, і я вважаю, що було б вигідно їх заявити тут.

  1. Якщо ви можете легко відключити / підключити монітор, відключіть монітор так, щоб у вашому вікні з’явилося місце, до якого ви можете отримати доступ. Потім за допомогою миші натисніть на вікно і утримуйте кнопку миші так, ніби ви збираєтесь перетягнути її. Не відпускаючи миші чи вікна, підключіть монітор. Вікно XQuartz має залишатися там, де знаходиться ваша миша.

  2. Цей пакет ShiftIt працює дуже добре для отримання вікон, які зникли поза екраном: https://github.com/fikovnik/ShiftIt/downloads Можуть бути й інші подібні пакети, але цей чистий та ефективний.

Сподіваюся, це комусь допоможе!


Shiftlt працює майже з XQuartz. Він фактично перецентрує головне вікно (наприклад) Inkscape, але не вторинне вікно (діалогове вікно властивостей). Хороший інструмент, щоб знати, однак. +1
lauhub

6

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

При відключенні другого екрана я бачу Inkscape. Але потім навіть трохи пересунувши його, якщо я підключу інший екран назад, він знову зникає з краю. Рішення таке:

  1. Відключіть другий екран
  2. Використовуйте мишу, щоб захопити рядок заголовка вікна (натисніть і утримуйте)
  3. Поки ще тримаєтесь за заголовком, підключіть монітор назад

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

4

Я знайшов дійсно просте виправлення цього.

Це сталося зі мною на Powerpoint. Я перейшов до меню Powerpoint у верхній частині екрана. Клацнув “Window”, а потім натиснув “Zoom in Window”. Зроблено


Це єдина відповідь, яка працювала за 10.11.5 (кодове ім’я El Capitan).
pzulw

Крім того, Window> Zoom просто працював на мене (Збільшити вікно не було варіантом).
Томас МакКейб

3

Щось я спробував, і це працювало для мене, це переключити роздільну здатність на нижчу, а потім повернути її назад. І це просто магічно ставить додаток у центр. Ура.


3

Я знайшов це додаток: WindowWrangler

Це дозволяє використовувати комбінації клавіш для переміщення вікна.

На жаль, воно не працює для єдиного мені потрібного вікна: Inkscape у середовищі XQuartz.


2
Ви знайшли рішення для xquartz?
gebirgsbärbel

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

@ gebirgsbärbel Дивіться відповідь, яку я щойно опублікував нижче. Я думаю, вам це може бути корисним.
nukeguy

@ gebirgsbärbel Дивіться [нову відповідь] ( apple.stackexchange.com/a/238975/31154 ), яку я опублікував нижче, використовуючи xdotoolутиліту, яка нарешті вирішила всі мої проблеми
lauhub

3

Для конкретної проблеми X11 / XQuartz ось знайдене нами рішення.

Попередня умова

По-перше, вам знадобиться xdotool . Його можна встановити за допомогоюbrew install xdotool

Основи

Ви можете перемістити вікно вліво за допомогою наступного сценарію:

xdotool getactivewindow windowmove --relative -- -100 -44

-44 - це значення, яке, на мою думку, є сумою висоти рядка заголовка та висоти рядка меню. Якщо тут не встановлено, вікно знизиться замість того, щоб утримувати положення Y.

Для правильного руху:

xdotool getactivewindow windowmove --relative -- 100 -44

Щоб рухатись вгору:

xdotool getactivewindow windowmove --relative -- x -100

Щоб рухатись вниз:

xdotool getactivewindow windowmove --relative -- x 100

Отже, тепер ви можете перемістити вибране на даний момент вікно (до якого ви могли отримати доступ за допомогою Expose, натиснувши на нього, якщо воно не в екрані).

Викрити подання

Потім можна відкрити термінал і повторювати команди, поки не з’явиться вікно.

Доступ до нього за допомогою ярлика

Щоб перенести вікно за допомогою комбінації клавіш, ви можете використовувати пояснення, наведені тут

Я фактично додав ці ярлики за допомогою BetterTouchTool.

  1. BetterTouchPreferences> Клавіатура
  2. Додати новий ярлик
  3. Виберіть текстове поле клавіатури швидкого клавіші та натисніть (наприклад) shift+ ^+ cmd+
  4. Виберіть заздалегідь задану тригер : Керування іншими програмами> Виконати команду термінала
  5. Введіть команду для (наприклад) праворушного переміщення повним шляхом до xdotool (ви можете отримати його за допомогою which xdotoolкоманди)

    /usr/local/bin/xdotool getactivewindow windowmove --relative -- 100 -44

  6. Натисніть кнопку збереження.

Повторіть те ж саме для інших напрямків і насолоджуйтесь!


Фінк НЕ xdotool
Mei

2

Крім того, для повноти я натрапив на це: Залишайтеся програмою для Mac, хоча я ще не пробував і не купував її.

З їх веб-сайту:

Stay може зберігати набір вікон для кожної комбінації дисплеїв, якими ви користуєтесь на комп’ютері. Наприклад, якщо у вас є ноутбук, який іноді підключений до зовнішнього монітора, ви можете зберігати два набори вікон у програмі Stay; один із підключеним зовнішнім монітором та один без. Зробивши це, ви зможете забезпечити, щоб ваші вікна завжди були там, де ви хочете, щоб вони були, залишаючи відновити вікна, коли ви підключаєте або відключаєте зовнішній монітор. Перебування можна навіть налаштувати для автоматичного відновлення вікон під час підключення та відключення дисплеїв.


2

У мене є рішення, яке працювало на мене, і я обходив форуми і спробував усе, що міг.

Врешті-решт я знайшов спосіб. Встановіть додаток під назвою BetterTouchTool. Це дозволяє зробити ярлик для того, щоб робити різні зручні речі з екраном і т.д. Я встановив це так, що "промах на два пальці" призвів до дії "Максимізувати вікно" Це застрягло програму, що відсутня, на екрані мого ноутбука та далеко від екрану фантомного монітора, на який він був застряг.

Проблема вирішена.

Ось зображення, як виглядав BetterTouchTool, коли я встановлював ярлик:

Ярлик BetterTouchTool


Я також вирішую проблему за допомогою BetterTouchTool.
Євгеніо

2

Я просто мав цю саму проблему в Mavericks, мені вдалося вирішити проблему, виконавши наступні кроки:

  1. Візьміть вказівник на край вікна, який перемістився з екрана, наприклад, на край праворуч.
  2. Коли ви побачите піктограму розміру (у моєму випадку значок горизонтального розміру), натисніть і потримайте.
  3. Утримуючи клацання, перетягніть вікно. Вуаля!

Це працює лише в тому випадку, якщо вікно стоїть на краю іншого вікна
Май


2

У El Capitan прості відповіді тут не працювали для мене або не були доступні як варіанти. Робота полягала в тому, щоб клацнути правою кнопкою миші додаток у Доку (Chrome у моєму випадку) та виберіть Опції> Призначити робочому столу на дисплеї 1. Це перемістило всі вікна до мого поточного робочого столу.


1

Здається, що це трапляється зі мною найчастіше, коли вторинний дисплей "нагорі" (в системних налаштуваннях -> Дисплей -> Розташування). Якщо проблема виникає, якщо я переміщу зовнішній дисплей "вправо", то вікна X11 знову з’являються.


1

В Йосеміті, якби на мене працював

  1. відкрити Налаштування системи
  2. відкрити Дисплей <Роздільна здатність
  3. виберіть "Масштабований"
  4. тимчасово змінити налаштування на будь-що інше

Для мене цього було достатньо, щоб змусити програму повернутися на екран.


1

Трохи дивно, хоча вікно (Термінал в моєму випадку) загубилося в розташуванні. Я спробував збільшити масштаб, вивести все на фронт, але нічого, здавалося, не вийшло.

Нарешті вікно → Об’єднати всі Windows зробили свою справу.


0

Ви можете створити просту програму, щоб зробити це в редакторі AppleScript. Введіть наступний текст і збережіть його як додаток. Якщо ви помістите його в папку «Додатки», до нього буде легко отримати доступ через SpotLight. Я назвав мої вікна збирати.

property processesToIgnore : {}
tell application "Finder"
    set _b to bounds of window of desktop
    set screen_width to item 3 of _b
    set screen_height to item 4 of _b
end tell
tell application "System Events"
    set allProcesses to application processes
    set _results to ""
    repeat with i from 1 to count allProcesses
        set doIt to 1
        repeat with z from 1 to count processesToIgnore
            if process i = process (item z of processesToIgnore) then
                set doIt to 0
            end if
        end repeat
        if doIt = 1 then
            tell process i
                repeat with x from 1 to (count windows)
                    set winPos to position of window x
                    set _x to item 1 of winPos
                    set _y to item 2 of winPos
                    if (_x < 0 or _y < 0 or _x > screen_width or _y > screen_height) then
                        set position of window x to {0, 22}
                    end if
                end repeat
            end tell
        end if
    end repeat
end tell

1
Для повноти вам потрібно буде пояснити, як обійти "Редактор сценаріїв не надає допоміжний доступ" (Yosemite)
jcollum

0

Ще одне рішення для XQuartz:

brew install wmctrl
wmctrl -i -r $(wmctrl -G -l | grep -i inkscape | cut -d' ' -f1 ) -e 0,0,0,100,100

Замініть "Inkscape" на все, що завгодно.


0

Ось проста відповідь, яка займає 15 секунд і є постійним виправленням.

https://groups.google.com/forum/#!topic/eggbotuser/48RbZ2Pey5A

Ця проблема з’являється, якщо у вас кілька дисплеїв. Документ відкрито, його просто вліво, поза екраном усіх дисплеїв. Ви не можете виправити це за допомогою Applescript: XQuartz не реалізує стандартні дієслова написання для отримання та встановлення положення вікон. Він також не реалізує стандартні еквіваленти менеджера вікон X11.

Причиною проблеми є конфлікт між налаштуваннями налаштувань у Inkscape та налаштуваннями переваг у Mavericks.

Налаштування параметрів вибору у вікні для Mavericks в системних налаштуваннях> Управління місією [x] Дисплеї мають окремі простори

Налаштування параметрів вибору вікна для Inkscape на панелі меню Файл> Налаштування Inkscape> Windows є (•) Збереження та відновлення геометрії вікна для кожного документа.

Якщо ви змінили налаштування OS X (вимагає виходу з системи та входу назад) або ви змінили налаштування Inkscape на (•) Не зберігайте вікно Геометрія (чого ви не можете зробити, якщо ви не зможете отримати Inkscape, щоб показати вам вікно) Inkscape виконує як очікувалося.

Отже, якщо ви хочете нової поведінки Mavericks з кількома дисплеями на вашому Mac, а потім тимчасово поверніться до старого способу, змініть параметр Inkscape, а потім поверніть Mavericks назад до рядка меню на кожному екрані.


0

Під пунктом меню програми "Вікно" виберіть "Впорядкувати всі". Це працювало для Microsoft PowerPoint для Mac, можливо, не для всіх.


0

Під час відкриття MS Powerpoint у мене на Mac схожа проблема, оскільки вона не відображатиметься на екрані. Найпростіший спосіб - зайти в панель меню Powerpoint у верхній частині екрана Mac і натиснути "Window", потім під цим натиснути "Упорядкувати всі". Відображаються / приховані вікна PowerPoint


0

Найпростіше рішення, яке я знайшов у цій проблемі, - це клацнути правою кнопкою миші відповідну піктограму на панелі завдань, а потім вибрати «Сховати». Потім ви можете зробити те ж саме і вибрати "Показати", і тоді ваше зникне вікно з'явиться знову.

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