6 ms·
Terminal Window Manager for OS X
- ef4 11y agoI like Spectacle[0] for this. It works for any window, not just terminals. Though what I really want is native xmonad in OSX. 0. http://spectacleapp.com/ http://spectacleapp.com/
- merb 11y agoOr Divy, but it costs money
- Amanjeev 11y agoI have been using Magnet (formerly Window Magnet). http://magnet.crowdcafe.com http://magnet.crowdcafe.com
- nilkn 11y agoSpectacle has worked well for me for years on OS X. I highly recommend it. I completely agree with you on xmonad though (or any true tiling window manager).
- DavideNL 11y agoOr ShiftIt https://github.com/fikovnik/ShiftIt https://github.com/fikovnik/ShiftIt
- lelandbatey 11y agoFor OS X, there's Amethyst[0] which is meant to be a near clone of Xmonad. [0] - https://github.com/ianyh/Amethyst https://github.com/ianyh/Amethyst
- Cajag 11y agoAmethyst is the closest thing I have seen to xmonad on OS X. Has some bugs but all in all works pretty well. https://github.com/ianyh/Amethyst https://github.com/ianyh/Amethyst
- isomorphic 11y agoMany of these sorts of apps reposition windows and scale to half or quarter of the screen. What I really want is intelligent repositioning so that none of my windows overlap. (xmonad, without resizing the windows.) Failing that, magnetic edges. Unfortunately, what I want is really the job of a window manager, or should be done at the OS level. On the Mac, there is no true user-serviceable window manager that can be replaced.
- therealmarv 11y agoever tried https://github.com/ianyh/Amethyst https://github.com/ianyh/Amethyst ? It does the job pretty good.
- eghri 11y agoI'm a big fan of the BetterSnapTool available on the App store. It costs $1.99, but it works with all widows and has drag-to-snap, shortcuts keys, etc. I'm still surprised Apple hasn't just incorporated this into OSX.
- jefvader 11y agoBetterTouchTool is free, and strangely incorporates the same window snapping functionality as it's sister: BetterSnapTool. I've always been a little confused by the paid download for BetterSnapTool... Unless I'm missing something you can get all the same functionality and more (mouse and trackpad configuration etc) with BTT. http://www.bettertouchtool.net/ http://www.bettertouchtool.net/
- KeytarHero 11y ago"ll" may not be the best choice of default alias - it's pretty common for people to already have it aliased to "ls -l" (or -la, or -lah, or whatever their preferred default flavor), especially for the type of power users this is targeted toward. I realize this is a bit of a moot point since the user can always change the alias, but it's generally better UX if the default is something most people will use.
- plq 11y agoI agree, the ll alias would be the first thing to change for me.
- benwithem 11y agoAgreed, but If created an alias that didn't eventually collide with another I would be shocked!
- obituary_latte 11y agoAgreed as well. Seems like 'lh' would be a better default (unless that defaults to something else I don't know of).
- apaszke 11y agoI know about it, but I didn't have an 'll' alias so i picked it just to be consistent with 'rr'. If you wish you can configure the aliases in the install.sh file (if you decline to overwrite an existing alias it asks you to type another one) :)
- pdq 11y agoI use Emacs in full screen mode on OSX. Then I split into usually 3 or 4 panes and launch a terminal in one of them. Then I have a todo list in another and the code I'm editing in another. Works great for my use.
- therealmarv 11y agoUse the free Bettertouchtool (and also helpful e.g. for middle clicking links with three finger tab) and enable "Window snapping".
- mjcohen 11y agoI think you mean Bettersnaptool.
- therealmarv 11y agono, really bettertouchtool ! Actually I've just found out that booth tools are from the same author. Bettersnaptool functionality is included in Bettertouchtool and there it is for free: http://www.bettertouchtool.net http://www.bettertouchtool.net
- ino 11y agoYup, another thing it does for me is enable back/forward buttons on my mouse.
- entelechy0 11y agoYou should look at SizeUp, it basically does the same thing except for any window :D
- jpkeisala 11y agoThis one? http://www.irradiatedsoftware.com/sizeup/ http://www.irradiatedsoftware.com/sizeup/ apparently 12.99usd
- moot 11y ago+1 for SizeUp.
- to3m 11y agoI use ShiftIt (https://github.com/fikovnik/ShiftIt https://github.com/fikovnik/ShiftIt), which is similar, as I recall, but free. Has keyboard shortcuts. I use it for pretty much all my windows. (A few years ago, before I started using OS X, I wrote something similar for Windows, for use with AutoHotKey: https://github.com/tom-seddon/align_window2 https://github.com/tom-seddon/align_window2)
- rsync 11y agoYes - have been using shiftit for years now and love it. I didn't even need to program or customize any hot-keys since everything I want to do (full screen, half screen, quarter screen) is already built into a hotkey.
- mahmoudimus 11y agoYeah, I had this problem a long time ago. Installed SizeUp + Divvy, but I've just used SizeUp and haven't looked back.
- anindyabd 11y agoI use SizeUp as well. One really nice feature is that there are keyboard shortcuts to move windows from one monitor to another. I tried some other OSX window managers but they were buggy, SizeUp ended up working the best.
- 11y ago
- STRML 11y agoAs always, I recommend Hammerspoon [1] when these sorts of things come up. If you can program Lua (or you know JS or Python, which is close enough), you can create any kind of window management system you want, saved layouts, contextual layouts across multiple monitors, adjust wifi/sound based on location, tab multiple windows, and a lot more. There are a lot of hammerspoon configurations around that will give you some cool ideas. Mine is below [2]. 1. http://www.hammerspoon.org/ http://www.hammerspoon.org/ 2. https://github.com/STRML/init/blob/master/hammerspoon/init.lua https://github.com/STRML/init/blob/master/hammerspoon/init.l...
- Linell 11y agoI second Hammerspoon. It fits perfectly between being barebones enough to not get in your way and having enough features to do just about anything you want. Here's my configuration file. https://github.com/Linell/hammerspoon-config https://github.com/Linell/hammerspoon-config
- fit2rule 11y agoGuys - thanks for informing us about Hammerspoon and sharing your configs - I've learned a lot in the last 5 minutes and solved some problems that have plagued me on OSX for years. Kudos to you and the Hammerspoon team, its a terrific tool!
- javajosh 11y agoHammerspoon looks quite good (and thank you for writing up usage instructions - I like the "mash" concept :), but part of me wonders whether or not this deserves a port to node. The reason why would be to leverage something like D3 to do window layout (I want either a treemap or a force-directed graph).
- yoklov 11y agoIt would likely be less effort to port those parts to Lua instead of the whole system to node. Does D3 even run headless anyway?
- Walkman 11y agoAll you need is Moom for every window, not just terminal. http://manytricks.com/moom/ http://manytricks.com/moom/
- techaddict009 11y agoOr http://spectacleapp.com/ http://spectacleapp.com/
- ProblemFactory 11y agoI have installed Breeze which seems to be very similar. But I rarely end up using it. Its top-bar menu is too slow to use, and I can never remember the hotkeys for positioning. The interesting part of this solution is realising that for terminals, using the mouse nor long complicated keyboard shortcuts are needed. Terminals have text input, you can type where the window is supposed to go. There commands can be memorable, and there is no risk of collision with other global hotkeys.
- girvo 11y agoI agree, which is why I absolutely adore Amethyst[0]. It is a "clone", if you will, of xmonad -- it's automatic, and keyboard shortcut driven entirely. No menu bar icon needed -- all windows snap to the grid to fill the screen by default, you can adjust the sizes on the fly, you can swap layouts with a single shortcut and viola! I highly recommend it, it used to be quite buggy but I've had zero issues in the last few months. @ianyh is an amazing developer! [0] https://github.com/ianyh/Amethyst https://github.com/ianyh/Amethyst
- steveax 11y agoNicely structured AppleScript (which is not an easy feat).
- fit2rule 11y agoYes, I concur .. for me this project not only has some proper Applescript to learn from, but its install script is genius as well, although it has a bug or two, which you'll see if you try to add an alias for a command you already have .. Still, a very interesting little bit of scripting to solve a common, age-old problem.
- apaszke 11y agoThanks! It's nice to hear that! What is the bug you're talking about?
- fit2rule 11y agoIt found a conflict with an existing alias .. 'ul' I think it was .. and then all other aliases were considered in conflict too, even though they for sure were not. On OSX, 'ul' is the 'underline utility' from BSD, dunno if that is worth knowing. I just hit enter and it soldiered on and then I manually changed the aliases in my .bashrc file ..
- apaszke 11y agoI am aware of 'ul' conflict, but I haven't heard of it before, so I just hoped that it's not popular :x If you've found a bug in installation script then please post an issue at GitHub :)
- fit2rule 11y agoIssue has already been reported: https://github.com/apaszke/termtile/issues/15 https://github.com/apaszke/termtile/issues/15 Had the same problem as those guys. EDIT: (for those reading) .. the issue has now been fixed. Kudo's!
- pekk 11y agoWhat is the real reason to make this tool platform-specific?
- mattnewton 11y agoFrom the read me: "All scripts are written in AppleScript, so they are unfortunately limited to OS X at the moment."
- to3m 11y agoTry making a cross-platform one! Maybe you'll find out ;) (Less cheeky response: no two platforms handle this stuff in the same way. You'd be able to share such a small amount of code between platforms that you'd be better off just duplicating that code rather than trying to create some kind of abstraction. This is true even if you decided to start out by not using something entirely OS X-specific such as AppleScript.)
- kennywinker 11y agoThe tools it builds on are platform specific. I don't see a lot of ubuntu boxes that support AppleScript.
- 0942v8653 11y agoThe problem it's trying to solve is also mostly platform specific. On windows and most Linux DEs you usually have default keybindings to move windows to the right half/left half/fill the screen.
- ilanco 11y agoIf someone is interested, the same can be accomplished on X by using xdotool [1]. http://www.semicomplete.com/projects/xdotool/ http://www.semicomplete.com/projects/xdotool/
- chimeracoder 11y agoI'm an i3 Linux user, and it's always sad to see the state of tiling window management on OS X. I use OS X on my work machine, and while I'm able to mimic some of i3's behavior on OS X, it's never quite the same, and I always find it frustrating. There are a number of tools that provide some subset of the functionality, but they always lack some critical piece (oftentimes FFM, multi-monitor support, or window containers).
- bello 11y agoI'm curious, what tools/configs do you use to mimic i3 on OS X? I'm also an i3 user, but currently using OS X for work.
- philsnow 11y agoOne of the more frustrating bits for me is that on OSX there are four modifiers (shift, control, option, and command), but none of them is exclusive to interacting with the "window manager". There's a lot of interface dissonance when I interact with anything over ssh (because "cmd" takes the place of an "alt" key), or use X forwarding. I've dedicated Mod4 to interacting with my window manager for over a decade and it's sensible. Mod1 and control (and, if absolutely necessary, shift) are plenty for keyboard shortcuts for apps.
- mdtusz 11y agoAnother (not yet mentioned here) tool is Mjolnir. It requires some lua scripting but seems to be really flexible. I stick with bettertouchtool combined with some keyboard shortcuts though.
- smpetrey 11y agowhy not just install a global window manager? http://spectacleapp.com/ http://spectacleapp.com/
- fit2rule 11y agoJust looking at the plethora of solutions for this problem, that are recommended in this thread, makes me think that there is something here that is being radically missed by the OS decision-makers that don't implement these kinds of tiling features by default in the OS. So many solutions to the same problem! Surely this is a sign that there are features missing in the Window manager, which should be making it into the OS at some point?
- brandonmenc 11y agoTotalTerminal [1] with tmux works well. [1] http://totalterminal.binaryage.com http://totalterminal.binaryage.com
- cjfont 11y agoNice, although I think there should also be an 'fs' option for Full Screen.
- apaszke 11y agoI didn't include it, because OS X can already make the window full screen. Do you think it would be useful just to resize the window without creating a new desktop?
- ratsimihah 11y agoIt's cool but https://github.com/jigish/slate https://github.com/jigish/slate ?
- lawry 11y agoIt's not longer being worked on, and forked at https://github.com/mattr-/slate https://github.com/mattr-/slate But honestly I switched to Hammerspoon and with some searching/learning lua/copy-pasting have the same functionality, and it's even more extendable. If you can describe what you want to do with the windows/current app/whatever, you can probably write it in lua.
- krishna2 11y agoGood idea to have a 'leader' (ala Vim style) and then have the intuitive shortcuts follow. Example 'zll' instead of 'll'. ll is almost always 'ls -l'.
- aleem 11y agoBears mention here, Spectacle[1] is a general purpose window manager which offers the same features using keyboard shortcuts for any OSX window. [1]: https://github.com/eczarny/spectacle https://github.com/eczarny/spectacle
- inguinalhernia 11y agoI admit I am boring. I use the 'Save Windows as Group' feature in a tiled four square, found under the Window menu in Terminal.app iTerm2 handles split panes quite nice as well.
- apaszke 11y agoHey guys, I'm a creator of termitile. Many of you have pointed out that there are lots of window managers for OS X and my intention wasn't to create just another one. What I really needed was a bunch of script that I could alias and use directly from the terminal without cluttering my global keyboard shortcuts. I couldn't find any other programs that had a terminal API, so I've just hacked this one :) So just to be clear, it's not intended to be a replacement for Amethyst, Divvy, or any other universal manager, but just a quick solutions just for the terminal, because you can control it with regular commands! I hope you like it!