totalterminal
totalterminal copied to clipboard
activating visor window hides current full screen app
if i am viewing a window in lion's full screen mode and then activate the visor window, the full screen app slides away as if i was switching to another application.
yeah, would be great to have totalterminal to cover the fullscreen-app. So your terminal is always with you, no matter what fullscreen app you're working on.
Might be hard to implement, i guess.
At least the flickering when a fullscreen app switches to totalterminal on the desktop (on hitting the hotkey it switches to desktop with total terminal window visible, then it hides, and comes backs again) should be removed.
this would be a must, specially when running Textmate with fullscreen plugin.
Issue #12 references this same problem!
I encourage someone to go further and implement it because personally I don't use fullscreen apps right now and I don't plan to fix this anytime soon.
This will probably involve some new 10.7 APIs to tell the system that activating windows of Terminal.app should not exit fullscreen mode of fullscreen apps.
I think someone needs to implement NSWindowCollectionBehaviorFullScreenAuxiliary
see:
NSWindowCollectionBehaviorFullScreenAuxiliary Windows with this collection behavior can be shown on the same space as the fullscreen window. Available in Mac OS X v10.7 and later. Declared in NSWindow.h.
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html#//apple_ref/occ/cl/NSWindow
I have just tried it without success. Also one guy has open question on Developer Forums at Apple since Jul 5 and without answer.
My understanding so far: When window goes to fullscreen mode, system creates a new exclusive space for this fullscreen window. Exclusive space allows only app's windows to be shown there. The app can create multiple fullscreen windows and each of them takes new exclusive space (try Safari and multiple CMD+N). You may mark some of your windows to be NSWindowCollectionBehaviorFullScreenAuxiliary so they can be shown on top of fullscreen windows without creating a new space. AppKit auxiliary windows like NSPanel have this flag set by default.
The problem: Terminal.app is different app and there is probably no supported way how it could display its own windows in exclusive space of some other app (say Safari).
My guess is that this will be possible on window server level with some CGSPrivate hackery (after someone takes the time to reverse-engineer it).
I have noticed that Adium message windows are sometimes able to occupy the Fullscreen apps spaces, not sure how yet.
As an workaround you can set LSUIElement in Terminal's Info.plist
It works!
The drawbacks:
- Terminal no longer shows on Dock ( This is quite obvious as LSUIElement does exactly that ).
- There is a space the size of the top bar on top of every TotalTerminal visor opened on Fullscreen apps windows.
- You can no longer CMD - Tab to regular Terminal windows.
- You cannot Force Kill Terminal process.
Apart from that, works like a charm!
Great job guys!
Hey darwin, do you think you can put an option on TotalTerminal preferences to inject or remove LSUIElement from Terminal preferences Plist? You can name it something like "Work with Fullscreen apps". Is it possible to do it in runtime ?
It is possible to add it to preferences, but Terminal.app reastart will be required (no big deal).
Not a priority for me right now.
Is this going to make it in to the software soon?
@EricWVGG: probably not, I'm pretty stuck, I'm going to do some traveling and spend rest of my time working on Asepsis and TotalFinder support
if you really think this is an important issue you may consider adding it in your fork, I would merge it
As an aside, I noticed some other odd behavior w.r.t. full screen apps and TT.
- Open Itunes in fullscreen mode
- Manually add another desktop in Spaces
- Should look like: [Dashboard, Desktop 1, Desktop 2, iTunes]
- Switch to iTunes
- Activate TT (wihch switches away from iTunes to show TT on Desktop 1)
- Desktop order is now:
- [Dashboard, Desktop 1, iTunes, Desktop 2]
It's weird (and possibly related). Just FYI.
It would be awesome if we can get if LSUIElement is set to 1 in the window and if TotalTerminal was invoked from a Fullscreen application window, them reset the top margin to 0 instead the size of the top bar, so we will no longer have the gap between total terminal and screen top when invoking TotalTerminal from a Fullscreen app window.
A sure thing to think about when the time comes to implement LSUIElement as a preference :)
Xscope appears to have found a way around this, which involves removing their app from the Dock. Dunno if you can gleam any hints from it:
http://support.iconfactory.com/kb/xscope/problems-measuring-apps-running-in-full-screen-mode-on-lion
Great solution, thanks!
Any updates on this ticket? Would be nice to have the ability to run TT above full-screen apps, especially for development. I personally run Emacs full screen but prefer TT for running code in the shell over running a shell within Emacs, and all the flicking about is starting to get a tad annoying.
Any movement on this? TT on fullscreen apps would be sweet for people with small screen laptops always running vim.
LSUIElement should be a temporary solution for 10.8
OS X 10.9 might have a better support for this (a rumor)
Doesn't work in 10.9 and cannot found a solution for now =(
Info.plist cannot be changed under Mavericks due to more strict security rules
See #3 for solution how to set LSUIElement dynamically with TotalTerminal 1.4.2
Yep, It does the trick. Thanks a lot! For further readers the solution is:
- Make sure TT is not running
- Start default OS X terminal
- write: defaults write com.apple.Terminal TotalTerminalHideDockIcon -bool YES
- DONE
Neither of these options worked for me, default terminal, TotalTerminal, or AppleScript. The window still reverts to the desktop when the visor opens and the dock icon is still there. You can still edit the Info.plist in Mavericks, but you still have to change ownership of the file and Contents folder. This worked fine for me on Mavericks even before the new updates. Even over fullscreen apps including Safari.
Edit. This worked before the new TT release. Since then it still doesn't work.
@PeacefulChaos No, with default Mavericks settings, changing Info.plist of Terminal.app will break the code signature and system will refuse to launch it.
Since 1.4.4, switching to LSUIElement will be available via TotalTerminal preferences option "Run Terminal.app as a background app"
I edited the plist file once I updated to Mavericks with TT v1.4.1 and it still worked. The only side effect was there was no animation to the visor, but other than that, it worked fine. I'll be looking forward to the release of 1.4.4.
Please try 1.4.4, it is already available on the beta channel: http://totalterminal.binaryage.com/#changelog
1.4.4 does remove the Terminal Icon from the dock and App Switcher, however it's still not working over full screen apps. This time instead of switching to the default desktop, it doesn't do anything at all until I switch to the main screen myself and then input the keystroke to open the visor. Suggestions?
Edit: I reverted the Info.plist to the original code and reset permissions to root:wheel.
Another Edit: Looking at Safari's behavior, it seem that the window is activating but it seems that it's behind the fullscreen apps.
Scratch my last. I did a reboot and now it works perfectly. Thanks!