13 ms·
Tmux for Mere Mortals
- afarviral 6y agoThis is just what Ive been looking for! Thanks!
- rshnotsecure 6y agoTmux 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 6y agoThere'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.
- ssivark 6y agoWhat 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 6y agoPortability 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.
- swalladge 6y ago> What this author has settled on looks very similar to commonly used tiling window manager shortcuts This is what really intrigued me about the article. Most are about remapping the prefix to something easier to type, or using more intuitive mappings, but removing the prefix altogether is different. I think I might try it for a while. I'm kind of in two minds - on one hand it shortens common actions from a chorded prefix + a chord to a single chord. On the other hand, it makes it easier to clash with existing keybindings and modifiers (readline default bindings use alt/meta and ctrl, my i3 config uses super, other cli apps use ctrl...). It also means I need 2 sets of muscle memory, because I use tmux in many servers and such where I don't have the opportunity to add custom config. > 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 Unless you use a different modifier for the tiling wm actions - eg. I use super + <keys> to namespace i3 bindings, which leaves alt/meta free for readline and others.
- nmarriott 6y agoYes, and there are a number of other configurations doing the same. This is another recent one https://github.com/jabirali/tmux-tilish https://github.com/jabirali/tmux-tilish that works as a tmux plugin.
- nvarsj 6y agoI think this is very common for tmux usage in general. I think the reason is that terminals seem to benefit the most from tiling WMs, as generally their own internal window management is quite lackluster and you usually want to open many terminals side by side. If you don't have the luxury of a tiling WM (or just want a simple-no-yak-shaving-required WM like Gnome), then tmux can be a real life saver.
- dhimes 6y agoI was a heavy tmux user until I switched to fluxbox- then I almost forgot about tmux. It is nice for saving sessions though.
- K0SM0S 6y ago> 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 6y agoI’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!
- K0SM0S 6y agoMakes so much sense, indeed! Mod+- might be zoom out though, depending on your underlying terminal app / OS. (e.g. on Linux, I use Meta++ and Meta+- to zoom the whole screen in accessibility mode, and Ctrl with the same keys changes the terminal font size) I may have to find a way to change one of those because I like your idea very much. FWIW, I'm always looking for the "perfect" keyboard-only shortcut layout. At one time using AutoHotKey on Windows (long time ago), I juggled with 5 levels of mods and had encoded pretty much all of math, greek, ASCII art and whatnot I could ever use. It was awesome. AHK is the one program I truly, dearly miss on Linux. (at least on KDE, and Gnome afaik, there's just no substitute for the breadth of features and behaviors of AHK).
- zserge 6y agoI've been using those for some time, before I met German keyboards with weird layouts. Now I try to stick to alphanumeric symbols only.
- K0SM0S 6y agoI was born in France, so grew up with one of the weirdest ISO layout: "AZERTY".[1] The worst offense is not even A-Z but rather symbols — take the key "ù" for instance: it's a non-mod key that is used for 1 single word in the entire French language. Literally, ONE WORD in the dictionary. And you need to Shift that 'ù' key to get '%'. How stupid is that... I won't even comment on the weird 'M' position, which shortens the bottom row (index hits no letter, it's a symbol...) Like WTF, seriously. Also, top row requires Shift for numbers... (no modifier yields symbols...) What a strange, impractical decision. Every number requires pressing a modifier, but underscore or '&' do not... Sure, yeah, OK. Should we talk about period '.' requiring a Shift, but not ';' No, no we shouldn't. It's not like a period is common in language... I thus call it 'weirdest', because it's as far as it gets from ANSI, and it has to be the worst ISO I've ever tried altogether. The question is, why do it so differently? Why not change as little as necessary based on ANSI? Was it a misguided sense of cultural appropriation? Did they like torturing typists and programmers alike? So one day, as I was learning programming, I decided to stop fighting my keyboard, to preserve my sanity (and limit RSI). QWERTY US (ANSI) is simply the best for tech (IT, prog). Not necessarily inherently (although it's very good for language), but because of the chicken-and-the-egg: most software is designed by/for US companies and programmers, so symbols like e.g. []{}|/ are used in programming, bash, tools, because they are easy to use on a QWERTY keyboard. And I vastly prefer the 1-row wide Enter to the inverted-L shaped ISO style (less RSI-inducing on the right pinky). For non-US programmers, there's life before, and after switching to ANSI-US. I'm not even kidding, it's a life-changer in simplicity, comfort (ergonomics) and generally intuition— e.g. there's a reason why ()[]{} are close by. And it lets one buy keyboards anywhere (you'll always find QWERTY, but good luck finding ISO-XX in country YY. Thank you to anyone who read this. I hope you feel the pain. Now revel in the fact that you weren't born in France and did not have to suffer the computer illiteracy and impractical engineering design of an entire generation before you. /rant I don't know if French AZERTY is funny or appalling, I'll let you be the judge of that; I just need to vent 25 years of frustration every now and then, even 10+ years later. ____ [1]: https://upload.wikimedia.org/wikipedia/commons/b/b9/KB_France.svg https://upload.wikimedia.org/wikipedia/commons/b/b9/KB_Franc...
- kohtatsu 6y agoIMO 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.
- todd3834 6y agoI 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 6y agoSomething 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 6y agoWhen 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.
- nmarriott 6y agoPeople do seem to often complain about the tmux defaults or say their particular configuration is "sane" and the defaults are not. But if you look at changes people make or at requests made over the years, they are all over the place and there is rarely a single common consensus on how the defaults could be better. Even if you look at something like "tmux-sensible", it is maybe a dozen lines of changes, of which some are now obsolete, some have downsides that prevent them being the default , and some are obviously personal preference. I did have new panes and windows default to the current working directory for a while, and I in fact do this in my own config, but there are security concerns and it was felt it was better that people have to configure it explicitly if they want it.
- asdff 6y agoSpent 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 6y agoYes, 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.
- nmarriott 6y agoThis is little to do with tmux and much to do with the features offered to terminal applications by terminal emulators. Both clipboard and mouse support in terminals generally is quite limited. For the clipboard, this page documents how to configure it within the limits of what is possible: https://github.com/tmux/tmux/wiki/Clipboard https://github.com/tmux/tmux/wiki/Clipboard
- p1esk 6y agoThat's the main problem with tmux in my experience, whenever I open an issue or a feature request on tmux github, the devs say it's a terminal issue. I then open the same issue on the terminal github and the devs there say it's a tmux problem. Perhaps a solution could be combining a terminal and tmux into one product, so there would be no more excuses, however I don't think core devs are interested in getting a proper mouse support working in tmux.
- pot8n 6y agoI've been using Tmux for years now when sshing to servers and I still can't even make some copy-paste with my mouse.
- hhsuey 6y agoAfter 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.
- nmarriott 6y agoThese others are fair points but: > Text, colors, etc... appear sharper without tmux. The renderer is the same, iTerm2 just gets its data stream from tmux rather that from the program running in tmux. There is no difference in the display.
- daveFNbuck 6y agoiTerm2 also has tmux integration, which gives you all of these nice features when using tmux on a remote machine.
- gukoff 6y agoDon'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 6y agoWait, what? I didn’t know this existed! Thanks for informing me :)
- cachestash 6y agoI 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.
- kiplkipl 6y agotmux has been around for as long as I've been using a CLI daily and both tmux and screen have the same overhead for installing from a package manager. I'm not using tmux over screen: I'm just using tmux.
- bxparks 6y agoI 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 ----
- ramraj07 6y agoTmux 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 6y agoYou 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}`.
- dfee 6y agoNow 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 6y agoThat'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.
- didibus 6y agoI 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 6y agoI like byobu, but I haven't been able to get onedark for vim/neovim to work with it. Any advice?
- cletus 6y agoSo 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 6y agoHow 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 6y agoWon't that still run afoul of losing your network connection? et is resilient to those sorts of changes. Anything short of a reboot, really.
- CardenB 6y agoHow did you set up ET for this? I couldn’t get it to work.
- jeroenjanssens 6y agoA 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
- zimpenfish 6y agoHaving 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.
- thom 6y agoAm 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.
- xref 6y agoSo 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?
- mcjiggerlog 6y agoNice 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
- JanMa 6y agoIf 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
- snvzz 6y agoChanging 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.
- draw_down 6y agoI just use tabs in the terminal app. I never liked using this, yet another set of key bindings to remember.
- VikingCoder 6y agoCan 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?
- fb03 6y agoJust use 'byobu'. it's a pretty good starting point :)
- JoeAltmaier 6y agoOh 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.
- rozab 6y agoNot if you keep it for yourself ;)
- kamarg 6y agoIf 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.
- gfiorav 6y agoThese 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.
- nickjj 6y agoIf 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-panes-and-vim-buffers-together https://nickjanetakis.com/blog/using-tmux-sessions-windows-p... 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 6y agoIn the video, are you ssh'd into three servers, or are all of the projects local, or some combination?
- nickjj 6y agoThey 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 6y agoHaving 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.
- kyuudou 6y agoAbsolutely, it's invaluable for just this feature. Also for digital nomad type workers who often have inferior internet to work with, and for being at the same exact spot when you left the office and get home to wrap up that last bit of work. Just reattach session and keep going. I also like to keep a freenode pane open that stays relatively uninterrupted.
- swiley 6y agoA 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.
- hx2a 6y agoI'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.
- necrotic_comp 6y agoI 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.
- mkhnews 6y agoI 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.
- kyuudou 6y agoIf 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-3d3921abc0b9 https://medium.com/@victormours/a-better-nerdtree-setup-3d39...
- oalders 6y agoHow are you setting your tmux colours in different environments?
- emidln 6y agoI have this in my ~/.bashrc: declare -A TMUX_SSH_COLORS_TABLE TMUX_SSH_COLORS_TABLE=( \ ["server"]="fg=yellow bold,bg=black" \ ["router"]="fg=red bold,bg=black" \ ["desktop"]="fg=white bold,bg=black" \ ) function ssh { trap 'tmux select-pane -t:. -P "default"' RETURN for arg; do local arg_value="${TMUX_SSH_COLORS_TABLE[$arg]}" [[ -n "${arg_value}" ]] && tmux select-pane -t:. -P "${arg_value}" break done /usr/bin/ssh "$@" } On my laptop, `ssh desktop` will switch my tmux colors and then when ssh dies/quits/etc I go back to the default color scheme.
- d0m 6y agoOn 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).
- era86 6y agoTmux + Vim + TrackPoint (ThinkPad) means I very rarely ever leave home-row. It's amazing!
- dustinkirkland 6y agoHi 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 6y agoDoes 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 6y agoAs 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.
- dustinkirkland 6y ago(Author of Byobu here) Byobu does run "best" on Ubuntu + Gnome-Terminal + Tmux, mainly because that's the primary environment in which I test it. However, I and others have ported and used it on many other Linux and Unix systems, and I'm always happy to take bug reports and patches that fix issues on other OSes.
- coolspot 6y agoWhy tmux instead of the screen?
- jchook 6y agoI feel my spacebar is simply too big and could allow another “mod” key. Would make a world of difference for apps like Tmux.
- deleted 6y ago[deleted]
- kps 6y agoAll 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 6y agoGNU screen?
- kps 6y agoAs 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.
- 0xff00ffee 6y agoHmmm... 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 6y agoI 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 6y ago> I always want to emulate my seemingly-more-efficient colleagues Heh, well put. Me too. I come to HN looking for... well... "hacks".
- strangelove026 6y agoHow does copy and paste work with this? On a mac
- opan 6y agoI 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)
- hendry 6y agoRebinding 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.