Is there a Safari shortcut that always works to reopen last-closed tab?
Note: this is not a duplicate of How can I get Safari to reopen my last closed tab?
I am familiar with the shortcut ⌘+Z working when the tab was just closed. However, I often do something else that I don't want to undo.
For instance, I sometimes close a tab, write half and answer on Stack Exchange, realize I didn't want to close it, and am then stuck with accessing the history manually.
So, is there any Safari shortcut or menu item specifically for reopening my last closed tab?
Update: This isn't a fix, but if your only problem is not wanting to undo anything besides closed tabs (and you don't care about having something that'll always work), setting a shortcut for "Undo Close Tab" in Keyboard preferences will filter the shortcut to closed tabs only!
Solution 1:
With the new macOS Sierra, it is possible to use the keyboard shortcut ⌘⇧T to reopen the last closed tab – à la Chrome and other browsers.
The previous shortcut, ⌘Z, allowed you to reopen closed tabs, but was more of a "general purpose" button which allowed you to reopen closed tabs, but also to undo other actions. The new shortcut is specifically meant to reopen closed tabs.
Solution 2:
The answer is no, Safari does not provide any built-in functionality or shortcut (to the non-existing functionality) to restore the last closed tab.
The only functionality that Safari currently offers is:
- Reopen last closed window
- Undo Close Tab (as part of the Undo event chain)
The first does just that, re-opens the last closed window, including all the tabs that were open when it closed.
The second works as you already know, it only works if it's the last thing you did, or you have to undo other things which is the caveat you noted above.
Looking at Safari Extensions, there are a few Tab managers around, however none of them specifically note their support for Tab Undo's except SafariTabs and this functionality was removed from the product for Safari 5; as the developer notes that Safari 5 now provides this as part of the Undo chain
Developing a solution for this while it's not trivial, isn't something that is going to be impossible as Apple have done most of the hard work. :D
Safari provides event propagation to Safari Extensions, and the particular one you would be interested in is CloseEvent (SafariEvent). Of course determining a method of distinguishing between the CloseEvent's for Windows (with each Tab receiving its own CloseEvent) and singular Tab CloseEvents... well there's the hard work.
Solution 3:
If you are using Keyboard Maestro you could emulate this behaviour with a HotKey trigger. Even multiple restore tabs / windows. I did an initial run at it. Thats the gist of it. Note: this doesn't restore the history of the tabs. So you'll get the URL back, but won't be able to go back.