
Tmux for Mere Mortals - swalladge
https://zserge.com/posts/tmux/
======
asdff
Spent too much time wonking a tmux config only realizing it was never going to
work how I liked. You can't have it all with the mouse no matter your
settings, there will always be a compromise. It also doesn't help that no one
cites the version of tmux they wrote their configs for, nor that the configs
are not backwards compatible with all versions of tmux for all settings.

It's really clunky, but I went from tmux to just opening new shell windows as
needed. I need to be able to resize and scroll, selecting text and copy
behavior should be exactly like mac os. Even used a tiling window manager with
it for a bit, but it felt pretty restrictive so I went back to just using the
cursor to move things around.

~~~
enriquto
Yes, the mouse situation in tmux is catastrophic.

As much as I love tmux, I wonder what would it take that the program respects
the usual copy-paste conventions like all the rest of X programs. You need to
do two things, that are apparently impossible when tmux has "mouse enabled":

1\. select some text in your xterm so that it gets copied

2\. middle click on the xterm and your copied text (possibly from other
window, web browser, whatever) gets pasted at the cursor position

This is really simple and sane behavior but it's completely impossible to
achieve with the current version of tmux. I have spend much more time that I
am willing to admit seriously trying to do that.

~~~
diggan
The top reason I did start using tmux was because of how you can select text
with the keyboard in copy mode (like visual in vim mode). Then I got the
plugin tmux-plugins/tmux-yank which adds "y" command to copy the text. Also
works with selection by mouse.

I've run this setup now for something like 5 years across multiple tmux
versions and OSes (Ubuntu and Arch) without any hiccups.

But then I think tmux is a tool geared towards keyboard usage and not mouse.
The mouse stuff was added because others wanted it, not because it was part of
the core idea of what tmux wanted to provide. So if you go against that,
you'll bang your head a little.

~~~
enriquto
> The top reason I did start using tmux was because of how you can select text
> with the keyboard in copy mode (like visual in vim mode). Then I got the
> plugin tmux-plugins/tmux-yank which adds "y" command to copy the text. Also
> works with selection by mouse.

Sure, but this is the internal "copy mode" of tmux, and is not useful to copy
text in and out of your terminal.

~~~
nmarriott
You can configure tmux to synchronize with the X clipboard, although it is
somewhat fiddly because of how terminal emulators work. See this page:
[https://github.com/tmux/tmux/wiki/Clipboard](https://github.com/tmux/tmux/wiki/Clipboard)

In most terminal emulators you can also use Shift (or sometimes a different
modifier) to bypass application mouse mode and have the terminal emulator
handle the mouse event. Of course you can't copy out of the history with this,
but that is another limitation of terminal emulators.

~~~
enriquto
> that is another limitation of terminal emulators.

This seems more an excuse than a cause. When the "mouse mode" of tmux is off,
the copy-paste mechanism works perfectly. There is no reason why this couldn't
still be the case when the mouse mode is on. For example, tmux could enable
the mouse only for scrolling and resizing the panes, while keeping the correct
copy paste behavior intact. But it chooses not to.

~~~
nmarriott
No, this is not how it works. There is no terminal emulator that offers this
kind of fine-grained mouse support. tmux can either turn the mouse on and
handle everything (resize, scroll, copy and paste) itself, or it can leave it
off and receive no mouse events.

~~~
enriquto
Then it could react to a middle-click inside a pane by pasting the text of the
clipboard.

~~~
nmarriott
tmux has no direct access to the X clipboard itself. Reading the clipboard
with OSC 52 is possible but it is unfortunately not widely supported by
terminal emulators (you can do it with `refresh-client -l` if the terminal
emulator supports it).

Or you could read it with `xclip`, `xsel` or `pbpaste`, something like:

    
    
        bind -n MouseDown2Pane run "pbpaste|tmux loadb -" \; pasteb
    

From tmux 3.2, middle click will paste the top tmux paste buffer by default.

------
VikingCoder
Can someone please please make a util that configures tmux for me?

I'd like to run a small program that generates a tmux.conf, after asking me
some questions, and having me demonstrate my responses.

So step one, it should be able to figure out what version of tmux I'm using.
Then it probably needs to know what SSH program I'm using, so it knows how the
keyboard and mouse from that program will mess with it.

Picture a Wizard where it asks, "Do you use the mouse to copy and paste? Try
to highlight this text: [example1]. Then try to paste it back into this
screen." and etc.

Wouldn't this be... kind of an obvious thing to make?

~~~
JoeAltmaier
Oh so many useful utilities to write. Folks often say "what should I do with
my programming skills?" when there are endless tools, whos lack hold us back.

My favorite would be a tool that wrote a Linux device tree source file, by
digesting the board schematic. Port Linux to your new device with one click!
Of course, that would take away a large part of my contracts. I'd have to do
some real work for a change.

~~~
kamarg
If you build it yourself you could easily continue those contracts with way
less work put in. There's many, many jobs out there that exist only because
people don't think they can read the documentation and figure out how to run
things themselves.

If the contracts start to dry up, offer it as an automated service. Look at
how many people still pay to have someone install and configure things like
Wordpress. There's literally thousands of free guides on the internet about
how to do it yourself but people will gladly hand over their money to have
someone that claims to be an expert do it instead.

~~~
Uehreka
Only if he’s a freelancer. If he works for a company, they could just take
this piece of work product that he made, use it in all the ways your just
described, and then lay him off.

~~~
komali2
If they write it in their free time, they could offer to sell it to their
company for 2x yearly salary or something. Got a buddy that has done that 3
jobs in a row.

~~~
kdtsh
Depends on your contract. It’s not uncommon (or even necessarily unreasonable
if you’re a full time employee) for a contract to stipulate that any code you
write during the period of your employment that you make use of at work is
owned by your company. I would imagine there are exceptions to this - I don’t
think an employer could make a case that they own your Emacs scripts if you
use them both at home and at work, and they certainly couldn’t try to take
ownership of your side hustle that has absolutely nothing to do with your job
- but for a fairly niche tool which produces value at your job, I think they’d
be at least trying their hand at holding onto the IP if/when you leave, and
restricting you from selling it on the side while you’re still employed.
Probably also depends on the culture at your workplace and how decent your
managers/bosses are.

------
hhsuey
After a few years in tmux, I actually moved back to just iterm2 (I'm always on
osx). There are many new Iterm2 features over the last few years that make
tmux unecessary IMO.

\- Iterm2 can now restore sessions, even partially after a reboot (attempts to
recreate workspaces). This was the main benefit of tmux for me.

\- Iterm2 can also have a visual mode to browse your scrollback buffer, and
there are some shortcuts similar to vim. This was the second main benefit of
tmux for me.

\- It's less keybindings to remember and configure.

\- Iterm2 can better size your split panes. You can also change text size per
pane. Useful for wide text.

\- A bunch of other things that iterm2 does better when tmux is not open.
Autocomplete. Paste history. Instant replay. Some of these are quite gimmicky
TBH, but could be useful for some.

\- Text, colors, etc... appear sharper without tmux. I think. There are
antialiasing configs you can mess around with in Iterm2 at least.

\- Shell integration. Jump to your last shell prompts in scrollback. Highlight
all your prompts in all your panes. Then move to those panes with your mouse
without clicking. Amazing.

~~~
gukoff
Don't forget about iterm2's tmux integration. It makes both local tmux and
tmux over ssh appear like regular tmux panes. No more bizarre keybindings and
tmux configs - it just works.

~~~
Aeolun
Wait, what? I didn’t know this existed! Thanks for informing me :)

~~~
rovr138
Run,

    
    
        tmux -CC

------
nickjj
If anyone is curious what it looks like to use tmux in your day to day, I made
a video about this at: [https://nickjanetakis.com/blog/using-tmux-sessions-
windows-p...](https://nickjanetakis.com/blog/using-tmux-sessions-windows-
panes-and-vim-buffers-together)

It covers how I use tmux sessions, windows and splits along with Vim buffers /
splits / tabs to manage my work flow for developing applications and switching
to different projects within seconds.

Despite the video being almost a year old, I work in the exact same way today.
It's been a very wonderful experience. My dotfiles are included at the bottom
of the post if you wanted to poke around the configs.

~~~
dhimes
In the video, are you ssh'd into three servers, or are all of the projects
local, or some combination?

~~~
nickjj
They are local projects, but you can be ssh'd into another server from a tmux
session / window. A tmux window or split window is just another terminal at
the end of the day.

~~~
dhimes
Having them remote also saves you from the window-update-hell, which annoys me
no end. You can save the session and log out.

As I said in another post, I was a heavy tmux user until I started using
Fluxbox. But tmux definitely had advantages. Now in the WFH world it's a good
opportunity to try to optimize the workflow again.

~~~
nickjj
> Having them remote also saves you from the window-update-hell, which annoys
> me no end. You can save the session and log out.

Yeah, I mean there's nothing stopping you from throwing up a $5 / month DO
server and having your code and dev environment all configured there and then
just connect to that from anywhere. As long as your network latency is low it
should be quite doable.

Personally I'm ok with keeping things local because I have a single
workstation where I do most of my work but I can see how a fully remote set up
could be beneficial for some folks.

------
cletus
So I predominantly use Macs. The one and only reason why I personally use tmux
is because of tmux -CC. I never bothered with screen/tmux simply because I
didn't want to learn another whole new set of keybinds (let alone reconfigure
them). tmux -CC largely behaves as a native app. Want a new tab? CMD+T. New
window? CMD+N. Scrollback with the trackpad. That sort of thing.

The complete system is iterm2 + tmux -CC + et (EternalTerminal) for persistent
ssh connections.

~~~
wasdfff
How is the behavior in et compared to setting up a no kill signal from your
ssh config? Sometimes my no kill signals get killed after a half hour or
longer.

~~~
cletus
Won't that still run afoul of losing your network connection? et is resilient
to those sorts of changes. Anything short of a reboot, really.

------
dustinkirkland
Hi there! I'm the author and maintainer of Byobu (byobu.org) here. Byobu
started as "Screen for mere mortals", but eventually pivoted to work with
Tmux, as well. Nowadays, Byobu is much more tightly tied to Tmux. You can
think of it, as a super opinionated set of Tmux settings, easily portable
across all of your machines. Happy to answer any questions here!

~~~
knbknb
Does Byobu run best on Ubuntu?

Or is Byobu not (or not any longer) tied to any particular Linux distribution
(I am an ubuntu user) ?

~~~
efreak
As a byobu user, the only difficulties I've had getting it working was when I
tried to get it on Android/termux, which doesn't provide Python/etc packages
through apt (default termux repos also don't provide gcc). It works fine for
me on fedora and other full distros. As far as working _well_ , byobu doesn't
work _well_ on windows WSL1, but I think that's more related to the process
model being different and the missing (filesystem, init) functionally for
status bar applets.

------
ssivark
What this author has settled on looks very similar to commonly used tiling
window manager shortcuts (which should not be very surprising, because a lot
of the constraints desired by the author apply to the other situation also).
In fact, even more directly, the author is basically using TMUX as a the
tiling window manager for their terminals. So, I guess the funny thing is,
this gives a nice bunch of Tmux shortcuts, _unless_ you're using a tiling WM
for your system , in which case this is hopeless :-)

BTW, for any newbies looking to start out with tiling window managers, I would
_highly_ recommend Regolith (which is basically i3 with a nice set of
conventions).

~~~
mjbrownie
Portability and accessibility do work in tmux's favour which a tiling window
manager (I was on ion3 for ages) cant emulate. I probably have a weird
development style but with tmux/ssh and the same session I can..

* Work from my desktop

* move to my laptop on the couch

* nick off to a cafe (well perhaps not atm) on an ipad.

* keep tabs on long running processes on my phone and termux.

all with a consistent interface. I think it's worth getting a working
knowledge up.

------
necrotic_comp
I didn't see this posted in this thread, but by far the most useful thing I've
seen with tmux is the "send-keys" command -
[https://blog.damonkelley.me/2016/09/07/tmux-send-
keys/](https://blog.damonkelley.me/2016/09/07/tmux-send-keys/)

This is nice in isolation, but it becomes powerful if you have a persistent
target and have a keybinding to issue a send-keys command to the persistent
target.

For instance, in my vimrc, I have a set of commands bound like so:

noremap <leader>R :silent !tmux send-keys -t 2.2 startjob Enter <CR>

noremap <leader>E :silent !tmux send-keys -t 2.2 killjob Enter <CR>

where startjob is a local alias to starting my development environment and 2.2
is the target.

This means from any of the vim instances I have, I can start and stop my
development environment without having to do so in a running vim instance, and
get all the appropriate logging in a terminal that I can switch to when I
choose.

This becomes even more powerful with a build script I have triggered by an
inotifywait that's running in 2.1 that will build my entire environment with
all its dependencies (yes, I need to do it this way because building one
project may require another to be rebuilt, and just triggering 'make' in vim
doesn't cut it) whenever a file is written.

It reduces a lot of the pain with developing a C++ project in the terminal and
lets me get back to the work of just thinking about what needs to be done.

'Send-keys' is, to me, the killer feature of tmux.

------
kyuudou
If you use vim as your IDE and haven't already, make use of nerdtree with its
git addon[1] along with tmux.

I use different tmux colors for different environments so I know where I'm at
instantly.

[1][https://medium.com/@victormours/a-better-nerdtree-
setup-3d39...](https://medium.com/@victormours/a-better-nerdtree-
setup-3d3921abc0b9)

~~~
dhimes
Different colors are great even without Tmux. Even in my simple WSL
environment I have aliases to open, say,

    
    
        alias liveTerm='urxvt -bg "#5b0000" -fb white &'
    

-so my production ssh will be red, staging green, another site purple, etc.

~~~
dhimes
^^ whoops make that(too late to edit)

    
    
        -fg white

------
didibus
I recommend people try out byobu from here:
[https://www.byobu.org/](https://www.byobu.org/)

Provides a nice user friendly layer on top of tmux, much recommended.

~~~
jessaustin
I like byobu, but I haven't been able to get onedark for vim/neovim to work
with it. Any advice?

------
jeroenjanssens
A great feature of tmux is that every action can be automated from the command
line using commands such as split-window, resize-pane, and select-layout. With
the send-keys and capture-pane commands you can even automate interacting with
any process running inside tmux. The man page provides a good overview of
these commands. There also exists a wrapper for Python [0] and I'm currently
working on one for R [1].

[0] [https://github.com/tmux-python/libtmux/](https://github.com/tmux-
python/libtmux/)

[1]
[https://github.com/datascienceworkshops/tmuxr](https://github.com/datascienceworkshops/tmuxr)

------
rshnotsecure
Tmux is what makes Linux _worth_ it for me. Or more specifically, the command
line. It is incredibly freeing, and discovering it is what made me finally
choose the sysadmin path over outright programming.

Fun Fact: Google Cloud Shell is by default Tmux. You can tell, because you
don't need to start Tmux up ever if you are in it. Simply hit something like
ctrl+b++" and watch your terminal split in two.

~~~
K0SM0S
There's life _before_ , and life _after_ tmux.

It's like a new dimension. Or two, or _n_ , actually.

I'm pretty sure the Buddha once said “Man's suffering comes from not using
tmux.” Illusion of impermanence and all that.

------
cachestash
I have honestly never seen any big value in using tmux over screen. I do all
the multiplexing in my window manager and I use tilix which allows me to sync
commands over multiple sessions.

~~~
bxparks
I used screen for like 10-15 years. Two years ago, I switched to tmux because
of some rough edges with screen. I can't remember what they were now, I think
something to do with selecting the correct terminal type (TERM=screen?
TERM=xterm-256color? TERM=screen.xterm-256color?). Something went wrong, and I
couldn't fix it.

Normally, I try to keep to the application's defaults for portability, but the
screen key-bindings are in my muscle memory. I was able to migrate to tmux
almost seamlessly with just a few key-bindings in .tmux.conf, which is
reproduced below in its entirety:

(Edit: formatting)

\----

# Remap prefix from 'C-b' to 'C-a' (compat screen(1))

unbind C-b

set-option -g prefix C-a

# Send C-a: 'C-a a'

bind a send-prefix

# Flip to previous window: `C-a C-a' (compat screen(1))

bind C-a last-window

# Make C-n and C-p act like 'n' and 'p' (compat screen(1))

bind C-n next-window

bind C-p previous-window

# Make C-a C-[ act like C-a [ (compat screen(1)

bind C-[ copy-mode

# Change background color of status line from green to yellow for readability

set-option -g status-style bg=yellow

# Increase scrollback to 5000 lines from 2000 default

set-option -g history-limit 5000

\----

------
thom
Am I missing anything if I’ve always just logged in somewhere and used Emacs
within screen? I get to use all the navigation, window management and
clipboard commands I’m used to. Very rarely I’ll need to fire up ansi-term
which is slightly less integrated I guess.

------
mcjiggerlog
Nice to see somebody else go through the exact same thought processes I did -
there's no need for tiling when everything other than the terminal is
fullscreened on its own workspace. 2D workspace grids are crucial to this flow
though, which is sadly something that seems to be slowly being removed from
most desktop environments. I can recommend
[https://extensions.gnome.org/extension/1485/workspace-
matrix...](https://extensions.gnome.org/extension/1485/workspace-matrix/) for
Gnome.

My tmux bindings are also different, but the logic behind them is the same.
Mine are available here - [https://github.com/tom-james-
watson/dotfiles](https://github.com/tom-james-watson/dotfiles)

------
K0SM0S
> Now tmux feels like a regular desktop app and truly boosts the productivity
> in the terminal. What do you think?

I think it's _really_ nice. Well done!

> Mod+V: split vertically

> Mod+B: split horizontally (“bisect”)

That's _smart_. I love it!

% and " tend to feel... just weird. I can see the visual cue, but it's always
been weird to me nonetheless.

~~~
urs
I’ve always done:

> Mod+| for vertical split

> Mod+- for horizontal split

I’ve been using it like that for years, but haven’t seen it in too many places
like that. It just feels super logical since the symbols look like the split!

~~~
joeyo
Could not agree more. I throw in underscore and backslash for good measure
too:

    
    
      bind-key | split-window -h
      bind-key \ split-window -h
      bind-key - split-window -v
      bind-key _ split-window -v

~~~
oalders
This is really helpful. I hadn't thought about adding bindings that work
without shift. I just tried this and had to escape the slash to get the second
binding to work:

    
    
      bind-key \\ split-window -h

~~~
oalders
Actually, it depends on your tmux version. Looks like

    
    
      bind-key '\' split-window -h
    

is more portable between versions.

------
todd3834
I spend a lot of my time using VIM. About 6 months ago I started using tmux. I
can honestly say I love it. It was a little rough at first but I just made a
cheat sheet on a piece of paper the size of a business card. That helped a
lot. The default keys start to feel okay just like with VIM. I don’t have any
problem with people customizing tools however they want so this post is really
great. Anything that lowers the barrier for entry and or improves things is
great.

Personally I like to try the defaults for a reasonable length of time to see
if there is maybe some logic behind why they were chosen. I’ve gotten so used
to the defaults now that I don’t think I would change too much except for this
one thing:

\- Opening a new pane or window was customized to start in the folder where
the command was originated from.

~~~
urs
Something cool to try is to blend your tmux bindings with your vim bindings:
[https://gist.github.com/mislav/5189704](https://gist.github.com/mislav/5189704)

Mislav Marohnić has a super nice method of moving between tmux splits and vim
splits the same way so you don’t really get stuck thinking one split is
actually the other.

This would drive me crazy, but after a little hacking, my tmux/vim combo feels
so nice and snappy.

~~~
colordrops
When I first configured this it changed my life as a developer. I use eternal
terminal + tmux + vim, and can connect to my "IDE" from any computer.

------
opan
I see he generically refers to "the mod key" but I don't see anything
declaring what the mod key should be like you would in a tiling wm config, so
I'm assuming the M- is the _meta_ key in all these keybinds then. I wish that
had been made more clear. I was pretty curious the whole time I read the
article how he'd changed C-b to something else and what he'd picked. I had
also briefly wondered if he'd somehow made things modal like vim so he could
enter some sort of "tmux mode" where he could just press a key for an action
and then return to his insert mode after. (also a bit like i3/sway's modes,
the most common one being for resizing windows)

------
swiley
A lot of people seem to think tmux is a replacement for a window manger which
IMO isn’t quite right.

Personally I use it to organize VT sessions by topic; I’ll make a tmux socket
in the root of a project (or at work, ticket) folder and leave things like vim
running, that way I never end up loosing vim and opening it twice. You still
need a window manager in addition to this to handle efermal windows (browsers,
REPLs, other VTs with tmux for other projects etc.)

Also it keeps things from getting SIGHUP. Some fancy VT app probably isn’t
going to do that and it’s certainly not going to do it in a platform agnostic
way.

------
gfiorav
These days I dropped tmux for vim :term (panel for files/terminals; tabs for
workspaces). If I'm in a remote server and want to preserve the session, I
just use screen.

------
dfee
Now would be a cool time to remark that VSCode is adding tmux control mode
support (As of yesterday it was added to the backlog) [0]. This will be very
useful in persisting terminals.

[0]
[https://github.com/microsoft/vscode/issues/90696](https://github.com/microsoft/vscode/issues/90696)

~~~
tiborsaas
That's the only thing I envy from the VI/Emacs/tmux world is that the editors
and terminals can work in the same window in the same spot of the screen and
it looks seamless.

------
kohtatsu
IMO these are the most important tmux config directives.

    
    
      # Inherit directory
      bind '%' split-window -h -c '#{pane_current_path}'
      bind '"' split-window -v -c '#{pane_current_path}'
      bind c new-window -c '#{pane_current_path}'
    
      # Vim pane movement
      bind h select-pane -L
      bind l select-pane -R
      bind k select-pane -U
      bind j select-pane -D
      
      # Misc
      set -g renumber-windows on
      set -g escape-time 0
    
    

My prefix is Ctrl+F fwiw (on the inner session), I think with capslock as
control I wouldn't want to bother remembering and committing to one-stroke
bindings.

System Preferences > Keyboard > Modifier Keys on Mac, I think it's xkbdmap or
such on Linux/X11.

Edit: not to detract from the OP, it looks like they put a lot of thought into
the ones they made so I'd do well to give them a shot. I'm happy tmux makes it
so easy to bind keys as such.

------
ramraj07
Tmux is amazing, my only request is there be an option to name panes (with the
names showing perpetually on top or bottom of the pane). Every time I ssh into
an ec2 instance I can't remember what logs are showing in each pane!

~~~
nmarriott
You can do this. Turn on pane status lines (set `pane-border-status` option to
`top` or `bottom`). You can then change `pane-border-format` to contain the
text you want. It can show the application-set pane title (`#{pane_title}`,
also settable with `selectp -T`) or anything else really.

There are no builtin pane names but if you are running tmux 3.0a or later you
can just set a pane user option like `set -p @myname name1` then use it in
`pane-border-format` with `#{@myname}`.

------
JanMa
If you are looking for a nice tmux config I can definitely recommend "Oh my
tmux": [https://github.com/gpakosz/.tmux](https://github.com/gpakosz/.tmux)

------
hx2a
I'm currently reading "tmux 2" by Brian Hogan. It's a great intro to what tmux
can do and how to use it well.

[https://pragprog.com/book/bhtmux2/tmux-2](https://pragprog.com/book/bhtmux2/tmux-2)

It's a quick read and worth the effort. Available through O'Reilly learning
online.

------
pot8n
I've been using Tmux for years now when sshing to servers and I still can't
even make some copy-paste with my mouse.

------
d0m
On my side, here's how I configured my mac.

Workspace at the top level.

\- cmd+f1..f9 --> Switch to workspace. \- cmd+ctrl+1..9 --> Also switch to
workspace (because fkeys are removed and the touchbar is terrible)

Inside each workspace, I use one app in full-screen.

Workspace 1 = IDE Workspace 2 = Terminals Workspace 3 = Browser Workspace 4-9
depends (Spotify, debugger, etc.)

For each app, I switch between tabs using cmd+1...9.

So intuitively, to jump somewhere, cmd+fX to go to the right workspace, then
cmd+X to jump to the right tab. For instance, I know my database logs are
always in the first tab of my terminal, so: cmd+f2, cmd+1. (On the mac with
touchbar, capslock+cmd+2 then cmd+1 (as capslock is bound to ctrl)).

I try to keep this nomenclature everywhere as much as possible. For instance,
in Chrome, cmd+1..N jump to the right tab. I configured vscode to do the same.
I also disable any transition animations.

For me, this is so intuitive and fast that I have a hard time using 2 monitors
as it's faster to jump to the right place than moving my head around or to
find the app using cmd+tab.

Finally, where it makes sense, I sub-divide some tabs in tiles. For instance,
my "web server tab" is often divided in 4 tiles. Or my IDE is split in various
tiles with the files I'm working on.

I used a similar approach back then when I was using stumpwm on linux and
tried to bring it back to my mac with as little configuration change as
possible. (I only have to map caps lock to ctrl and tweak a few hotkeys to
switch workspaces).

------
mkhnews
I have to say I spent some time on my tmux config, but the result is just
awesome. I have key bindings to search/select/copy text and have integrated
the mouse fully and can copy/paste between all windows and other apps (such as
firefox etc.) perfectly. I find tmux an incredible tool.

------
jchook
I feel my spacebar is simply too big and could allow another “mod” key.

Would make a world of difference for apps like Tmux.

------
kps
All I use tmux for is to reattach to sessions after a connection drops. The
rest I just configure away as much as possible, but not quite as much as I
want. Is there any simpler utility that _only_ provides persistent sessions?

~~~
seabrookmx
GNU screen?

~~~
kps
As far as I can tell, screen also has its own mandatory terminal emulation,
which is the only remaining tmux annoyance that I haven't configured away.

------
hendry
Rebinding tmux to make it more like a window manager?

Two problems with this. 1) tmux is slower than a window manager like dwm 2)
Why not just use dwm

Personally feel rebinding a tool like tmux will bite you down the road.

------
snvzz
Changing the default keybindings will bite you in the back, the moment you
have to touch a system that isn't yours.

It's worth learning the defaults, and it's not that hard. They do make some
sense.

------
xref
So in the era of containers and kubernetes and devops “if you have to ssh in
you’re doing something wrong” does learning tmux still have high value?

------
afarviral
This is just what Ive been looking for! Thanks!

------
era86
Tmux + Vim + TrackPoint (ThinkPad) means I very rarely ever leave home-row.
It's amazing!

------
zimpenfish
Having tried tmux this week (I'm a screen diehard) and had it entirely
disconnect and lose the session without warning because I pressed ... some key
combination I have no idea what ... I've put that back into the "eh, maybe"
pile for another 5 years.

------
strangelove026
How does copy and paste work with this? On a mac

------
0xff00ffee
Hmmm... I would find this extremely error-prone. Probably due to my own
issues, but flipping through multiple remote sessions in tmux in the same
window would get confusing after N=2 terminals.

But who manages THAT many remote sessions? Seems like an upstream problem to
me, no?

~~~
cardiffspaceman
I always want to emulate my seemingly-more-efficient colleagues. One of them
had a set of 6 sessions in some layer talking to screen which was talking to
vim or XXsh (bash, zsh, or something), and he had memorized an arrangement
whereby he could think "I'm in this one and I want that one" and he'd go left-
left or right-up and be in the right one. But he always had one unused when I
would visit him and would pursue a search in that one. None of this was remote
by the way. This inspiration got me to try screen but I didn't like it after
all. It in no way inspired me to run Vim because I already preferred Emacs.

~~~
0xff00ffee
> I always want to emulate my seemingly-more-efficient colleagues

Heh, well put. Me too. I come to HN looking for... well... "hacks".

