Остановить закрытие окна Safari, когда остаются только закрепленные вкладки

Мне нравится, что в Safari 9 есть закрепленные вкладки, это была последняя часть, которая позволила мне переключиться с Chrome. Однако я часто закрываю все вкладки, кроме закрепленных. Однако, если я не сделаю одну из закрепленных вкладок активной, а затем закрою другие вкладки, она закроет все окно, закрепленные вкладки и все такое.

Например, предположим, что у меня есть одна закрепленная вкладка, а другая нет. Если незакрепленная вкладка активна и я нажимаю command+ w, все окно закрывается. Но если я сделаю закрепленную вкладку активной, а затем нажму кнопку закрытия на незакрепленной вкладке, окно останется открытым. Есть ли способ держать окно открытым, пока есть открытые, закрепленные или иным образом вкладки?

Звучит как ошибка для меня. Я рекомендую вам использовать форму обратной связи, чтобы сообщить.
@Phong Я думаю, что это на самом деле задуманное поведение, поскольку открытие нового окна после случайного закрытия окна включает закрепленные вкладки. Это облегчает боль, но все еще очень странно и отличается от всех других браузеров с закрепленными вкладками.
@Phong Кроме того, хорошая идея. Я сообщил об этой проблеме.
@donut Я не думаю, что это предполагаемое поведение. Каждый раз, когда окно закрывается и вы открываете новое, вкладки снова загружают страницы. Это действительно расстраивает. А если они закреплены, то потому что я не хочу их закрывать xD
@Dave Пожалуйста, сообщите о проблеме с помощью Ассистента обратной связи. Чем больше людей сообщит об этом, тем больше шансов, что это изменится.
Я думаю, что это предполагаемое поведение, по крайней мере, в Эль-Капитане. Очень раздражает, я напишу ответ здесь, если когда-нибудь найду его.
Это так раздражает.
@ArnoldRoa Вы пробовали выбранный ответ ? Это сработало отлично для меня.

Ответы (2)

Если вы посмотрите меню «Файл», вы увидите Wизменения в зависимости от количества открытых вкладок. Если их несколько, то это «Закрыть вкладку», если одна (не считая закрепленных), то это «Закрыть окно».

Есть обходной путь! Вы можете перезаписать W, чтобы всегда выполнять «Закрыть вкладку».

Перейдите в «Системные настройки»> «Клавиатура»> «Ярлыки»> «Ярлыки приложений».

Добавить Ярлык для приложения "Сафари", пункт меню "Закрыть вкладку", ярлык w.

Если вы не используете английский язык в Safari, найдите точное название пункта меню для закрытия вкладки. В голландской версии Safari этот пункт меню называется «Sluit tabblad».

Следует отметить, что это исправление имеет побочный эффект, заключающийся в том, что вы не можете закрыть последнюю вкладку в любом открытом окне Safari, поэтому даже окна без закрепленных вкладок нельзя закрыть с помощью ⌘W.
Это отличный трюк. И вы можете закрыть окно, для этого вам просто нужно использовать Command-Shift-W. Мне это нравится, потому что это делает процесс закрытия окна явным, а не контекстным.
Хороший трюк, чтобы случайно закрыть окно, но если у вас осталась одна обычная вкладка и вы хотите закрыть ее, это все равно немного отбросит вас. Но, думаю, привыкну :). Но все же у сафари должна быть встроенная возможность сохранять закрепленные окна с вкладками.
Это так нелепо глупо. Поведение Safari, а не ваш ответ. Спасибо за ответ!

Просто хочу добавить к ответу hachre, что вы можете добиться того же результата с помощью терминала. Для перезаписи ⌘W в Safari выполните следующие строки:

defaults write com.apple.Safari NSUserKeyEquivalents -dict-add 'Close Tab' '<string>@w</string></dict>'
defaults write com.apple.universalaccess com.apple.custommenu.apps -array-add '<string>com.apple.Safari</string>'

Затем перезагрузите Safari:

killall Safari
open -a Safari

Я использую эти команды в Sierra - отлично работает.

Вам не хватает открывающего <dict>тега? поэтому второй аргумент в первой команде будет'<dict><string>@w</string></dict>'
@rudolph9 кажется, ты прав. но теперь есть возможность настроить com.apple.Safari по-новому: defaults write com.apple.safari NSUserKeyEquivalents '{"Close Tab"="@w";}'и это работает. Плохая новость заключается в том, что я не могу найти простой способ написать com.apple.universalaccess( defaults write com.apple.universalaccess "com.apple.custommenu.apps" -array-add "com.apple.Safari"просто вызвал ошибку и ничего не сделал с sudo)