What still bothers me mightily is that, up to this day, nobody has bothered to get the history scrolling right (neither in tmux, btw). You still have to press an awkward key combination to switch to "copy mode", the normal mechanisms (PGUP, mousewheel, scrollbar) only result in garbage.
I've tried various partial fixes ("altscreen off") but none works properly across sessions or with multiple windows. Years back I even tried to patch screen myself but had to surrender over the (for me) crufty code-base.
And that despite the solution being fairly obvious: Just redraw the entire window while scrolling, just like irssi and plenty other console apps do it. And just like screen itself does it in copy-mode.
I wish someone would finally take on this issue...
I've tried both, and the licensing issue aside, I've found I prefer tmux.
Anyway, not wanting to turn this into a gnu vs. bsd, tmux vs. screen argument, but I didn't eve know tmux existed until someone pointed me to it, so I'm just passing on the knowledge.
off hand from just playing with tmux for the past 20 minutes, it looks like tmux better abstracts its commands from how it internally tracks the windows and sessions than does screen.
In particular, when i've played with screen, i found that i was frequently stymied by the broken abstraction of the way screen stored its state vs what I wanted to do.
byobu sadly doesn't work on macbooks, but it looks cool!
to further clarify: when choosing a session (and thus a collection of windows), in screen the process id info etc is exposed at the user level, which perhaps is useful to someone, but not for how use terminal and such. Thus because these things are not as directly exposed via the interaction model that tmux does, doing stuff becomes simpler and semantically clearer
One of the big things is that it preserves split screen arrangements upon detachment. I SSH into a server and basically use Screen/tmux as my IDE, and losing my split screen setup when I detach is very annoying.
A nice function (not mentioned in this presentation) is the ability to send commands (-X) to a specific window in a screen session. This allows you to completely control GNU Screen the shell or another programming environment while benefiting from the persistent or logging of a session.
The Gnu Screen command 'stuff' writes directly to the STDIN on the window. This is how the REPL integration setups with screen/vim that appear on HN from time to time work. e.g.
screen -a window1 -X stuff 'import sys'
would send 'import sys' to whatever app was reading STDIN on window1.
If you haven't heard of it, Xpra is sort of like screen for X, in that it lets you run persistent X sessions (rootlessly, unlike VNC). Shifter (http://shifter.devloop.org.uk/) packages screen and Xpra together with a nice user-friendly interface for Windows, OpenSolaris, BSD, Mac OS, Linux, etc., and it includes a patch for Xpra so that it works for Windows!
My biggest impediment to using screen is emacs key binding conflicts. I never took the time to determine an acceptable solution. Can an emacs guru share their solution...?
I use it on a daily basis for ~10 years.
What still bothers me mightily is that, up to this day, nobody has bothered to get the history scrolling right (neither in tmux, btw). You still have to press an awkward key combination to switch to "copy mode", the normal mechanisms (PGUP, mousewheel, scrollbar) only result in garbage.
I've tried various partial fixes ("altscreen off") but none works properly across sessions or with multiple windows. Years back I even tried to patch screen myself but had to surrender over the (for me) crufty code-base.
And that despite the solution being fairly obvious: Just redraw the entire window while scrolling, just like irssi and plenty other console apps do it. And just like screen itself does it in copy-mode.
I wish someone would finally take on this issue...