Могу ли я вернуть Snow-Leopard-подобное скрытие приложений (Cmd-H) в Lion?

73

До Mac OS X Snow Leopard нажатие + Hво время использования приложения делало две вещи ...

  1. Приложение скрылось от глаз.
  2. Приложение размещается в конце переключателя + .

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

Однако в Lion, хотя + Hскрывает приложение, оно только перемещает его на следующую позицию в переключателе. Это эквивалентно + между двумя приложениями, за исключением того, что приложение теперь также скрыто от просмотра. ИМО, это нарушает фундаментальную особенность коммутатора и концепцию сокрытия приложений. Я понятия не имею, почему это было сделано.

Кто-нибудь знает, как, если вообще, это можно исправить? Или, может быть, места, которые я должен начать искать? Я просто надеюсь, что где-то в файле plist есть предпочтение ...

MagBUG
источник
10
Я еще никогда не замечал позицию ...;) Хороший вопрос ...;)
jm666
5
Это звучит как ошибка в Lion для меня. Возможно, сообщите об этом Apple через feedback@apple.com
dan8394
1
Я только что отправил отчет / запрос на это на apple.com/feedback .
Грег Хьюгилл
Я также усугубил это, и также подал отзыв. Однако я не знаю ни одного решения, кроме как перейти на другой переключатель cmd-tab, такой как Witch.
Майкл Х.
@khedron: Как Ведьма это исправляет? Он показывает тот же порядок, что и Cmd-Tab. Если я что-то упустил, я хотел бы знать, потому что эта неправильность заставляет меня подняться на стену.
Марсело Кантос

Ответы:

6

Это большой вопрос. Это может быть предполагаемое поведение, а не ошибка. Кажется, что управление полетом сочетало в себе как старый Expose, так и старый Space. Имея это в виду, запуск нового приложения Full Screen помещает его на свой рабочий стол. Когда вы попадаете в Mission Control, вы видите его справа от исходного пустого рабочего стола. Откройте второе приложение в полноэкранном режиме, и оно снова будет размещено на его собственном рабочем столе рядом с первым полноэкранным приложением, которое вы открыли.

Как и домашние экраны в iOS и старые Spaces, кажется, что Apple намерена оставить эти настольные компьютеры в одном месте. Почта находится "слева" от Safari, если я открыл Safari после открытия Mail. Я согласен с тем, что это пространственное понятие противоречит нашему предвзятому пониманию переключателя. То есть та же самая причина , почему скрытие отключено для приложений Full Screen (нажатие + Hбудет не скрыть полное приложение экрана).

Если все в полноэкранном режиме, концепция сокрытия становится менее актуальной. Я вспоминаю старые версии Mac OS, где у вас были стопки окон. Скрытие приложения, такого как Adobe Photoshop (и всех его многочисленных открытых дочерних окон для каждого из моих многочисленных открытых изображений) имело смысл. Если такого оконного «стекирования» пространственно не существует (поскольку эти полноэкранные приложения теперь соседствуют друг с другом, они на самом деле не располагаются друг над другом), то почти имеет смысл, что оно не работает.

Сказав все это, я не мог согласиться с тем, что Lion полностью запутался в работе многих старых пользователей Mac. Я не обязательно согласен с решениями Apple здесь, я просто пытаюсь играть в адвоката и посмотреть, есть ли у этого, в частности, какое-то объяснение, которое имеет смысл. Надеюсь это поможет.

Обновление: в этой статье на TidBITS упоминается новая функция в Lion под названием «Автоматическое завершение». Я не знал об этой функции. Интересно, связано ли это с поведением автора этого вопроса?

Кристиан Корреа
источник
3
Я не вижу, как полноэкранный режим относится к поведению ⌘H при работе с не полноэкранными приложениями.
Грег Хьюгилл
Я заметил, что Cmd + H не работает для полноэкранных приложений, поэтому я подумал, что он спрашивает, ссылаясь только на полноэкранные приложения. Однако после прочтения вопроса снова кажется, что он не указывает ни того, ни другого. Если он говорит о неэкранных полноэкранных приложениях, команда Hide которых не работает, я бы согласился, что это скорее всего ошибка. Однако смысл моего ответа выше заключался в том, что если он действительно говорил о полноэкранных приложениях; чем это могло быть одно из тех решений пользовательского интерфейса от Apple - и я предположил, что они могли бы видеть переключение полноэкранного приложения в качестве аналога переключателя приложений iOS.
Кристиан Корреа
Я обновил свой ответ, добавив в него ссылку на статью TidBITS о функции в Lion под названием «Автоматическое завершение». Похоже, что приложение может быть остановлено Lion и удалено из переключателя Command + Tab.
Кристиан Корреа
2
Я не думаю, что поведение стека окон Cmd + H также связано с автоматическим завершением, по крайней мере по двум причинам: у приложения, которое я скрываю, все еще есть открытые окна, которые я не закрывал; рассматриваемое приложение не завершается автоматически операционной системой, оно все еще работает.
Грег Хьюгилл
@Christian \ Correa - Вы, сэр, знаете свои вещи. Вы рассматривали возможность получения сертификата Apple, такого как ACSP или ACTC?
Алекс
1

Так как это беспокоило меня с тех пор, как это было изменено, я дал ему еще один шанс. Похоже, что единственный работающий способ - это имитировать его, переключаясь на все открытые приложения перед тем, как скрыться. Не уверен, что яблочный скрипт немного изменился, но мне пришлось изменить сценарий Уилльмы, как этот, чтобы он работал. Это также имеет значительно меньше нажатий клавиш, поэтому следует выполнять работу быстрее.

delay 0.5
set i to 0
tell application "System Events"
    set first_app to name of the first process whose frontmost is true
    repeat with p in every process
        if visible of p then
            set i to i + 1
        end if
    end repeat
    repeat i - 1 times
        key down command
        key down shift
        keystroke tab
        delay 0.01
        key up shift
        key up command
        delay 0.1
    end repeat
    set visible of process first_app to false
end tell

При переключении будет отображаться некоторое мерцание, и задержка может быть слишком короткой, если некоторые анимации занимают больше времени (например, переключение на полноэкранные приложения), поэтому цифры, вероятно, не оптимальны для всех компьютеров Mac или ситуаций. И хотя должна быть возможность установить службу Automator с помощью глобальной горячей клавиши, для меня ничего не произошло. Мне повезло больше с небольшим приложением iCanHazShortcut , которое можно вызывать osascript <scriptname>при нажатии cmd-h.

kjyv
источник
0

Могу ли я вернуть Snow-Leopard-подобное скрытие приложений (Cmd-H) в Lion? ... Приложение расположено в конце переключателя + . ...

С тех пор как в Mac OS 8.5 был представлен Application Switcher , произошли различные изменения.

Во льве

Вероятно, невозможно получить старое место размещения с более новым Application Switcher.

Если вы идентифицируете двоичный файл, используемый для коммутатора, выполнение strings(1) может показать больше.

... Это может быть намеренное поведение ...

Я так считаю.

...  не собирался использовать это в течение некоторого времени ...

Поведение в Lion, вероятно, для значительной части случаев использования, где сокрытие является краткосрочным .

С удобной комбинацией клавиш ( Command- Shift- Tabменее эргономично): 

  • Лев быстрее Снежного Барса показывает скрытое приложение.

Вне Льва

В Mountain Lion, например, есть другое изменение: больше не бесконечный цикл в ответ на Command- Tab.

В OS X 10.9 могут быть дальнейшие изменения.

Грэм Перрин
источник
0

Это определенно предполагаемое поведение. Это также не исчезает значок, который я нахожу раздражающим. Я написал GUI appleScript, который имитирует старый способ работы. Скопируйте, вставьте это в Applescript, сохраните его, затем используйте быстрые скрипты, чтобы связать его с сочетанием клавиш (например, Ctrl + H).

set i to 0
tell application "System Events"
    set first_app to name of the first process whose frontmost is true
    repeat with p in every process
        if p is visible then
            set i to i + 1
        end if
    end repeat
    repeat i - 1 times
        key down command
        repeat i - 1 times
            keystroke tab
            delay 0.03
        end repeat
        key up command
        delay 0.03
    end repeat
    set visible of process first_app to false
end tell
willlma
источник
error "Системные события получили ошибку: не удается увидеть." номер -1728 от видимого
user10352
Спасибо за сценарий. Я на самом деле не пользуюсь им и не проверял его в тех точных целях, которые вы изложили (проверял его на предмет чего-то похожего), но просто отмечаю для кого-то, мне пришлось поставить "" вокруг видимого в пятой строке, чтобы это: if p is "visible" then.
Что касается исчезновения иконки, это легко исправить, установив TinkerTool .
Уайлдкарт