Science and technology

Use tmux to create the console of your goals

Last 12 months, I introduced you 19 days of recent (to you) productiveness instruments for 2019. This 12 months, I am taking a distinct strategy: constructing an surroundings that may can help you be extra productive within the new 12 months, utilizing instruments you might or could not already be utilizing.

Do all of it on the console with tmux and tmuxinator

In this sequence to date, I’ve written about particular person apps and instruments. Starting immediately, I am going to put them collectively into complete setups to streamline issues. Starting on the command line. Why the command line? Simply put, working on the command line permits me to entry quite a lot of these instruments and capabilities from wherever I can run SSH. I can SSH into one in every of my private machines and run the identical setup on my work machine as I exploit on my private one. And the first instrument I will use for that’s tmux.

Most individuals use tmux for very primary capabilities, akin to opening it on a distant server then beginning a course of, possibly opening a second session to look at log information or debug data, then disconnecting and coming again later. But you are able to do a lot work with tmux.

First issues first—when you’ve got an present tmux configuration file, again it up. The configuration file for tmux is ~/.tmux.conf. Move it to a different listing, like ~/tmp. Now, clone the Oh My Tmux mission with Git. Link to .tmux.conf from that and replica within the .tmux.conf.native file to make changes:

cd ~
mkdir ~/tmp
mv ~/.tmux.conf ~/tmp/
git clone https://github.com/gpakosz/.tmux.git
ln -s ~/.tmux/.tmux.conf ./
cp ~/.tmux.conf.native ./

The .tmux.conf.native file accommodates native settings and overrides. For instance, I modified the default colours a bit and turned on the Powerline dividers. This snippet exhibits solely the issues I modified:

tmux_conf_theme_24b_colour=true
tmux_conf_theme_focused_pane_bg='default'
tmux_conf_theme_pane_border_style=fats
tmux_conf_theme_left_separator_main='uE0B0'
tmux_conf_theme_left_separator_sub='uE0B1'
tmux_conf_theme_right_separator_main='uE0B2'
tmux_conf_theme_right_separator_sub='uE0B3'
#tmux_conf_battery_bar_symbol_full='◼'
#tmux_conf_battery_bar_symbol_empty='◻'
tmux_conf_battery_bar_symbol_full='♥'
tmux_conf_battery_bar_symbol_empty='·'
tmux_conf_copy_to_os_clipboard=true
set -g mouse on

Note that you don’t want to have Powerline put in—you simply want a font that helps the Powerline symbols. I exploit Hack Nerd Font for nearly all the things console-related since it’s straightforward for me to learn and has many, many helpful further symbols. You’ll additionally word that I activate working system clipboard assist and mouse assist.

Now, when tmux begins up, the standing bar on the backside offers a bit extra data—and in thrilling colours. Ctrl+b remains to be the “leader” key for getting into instructions, however some others have modified. Splitting panes horizontally (high/backside) is now Ctrl+b+ and vertically is now Ctrl+b+_. With mouse mode turned on, you possibly can click on to change between the panes and drag the dividers to resize them. Opening a brand new window remains to be Ctrl+b+n, and now you can click on on the window title on the underside bar to change between them. Also, Ctrl+b+e will open up the .tmux.conf.native file for enhancing. When you exit the editor, tmux will reload the configuration with out reloading anything. Very helpful.

So far, I’ve solely made some easy modifications to performance and visible show and added mouse assist. Now I am going to set it as much as launch the apps I would like in a approach that is smart and with out having to reposition and resize them each time. For that, I am going to use tmuxinator. Tmuxinator is a launcher for tmux that lets you specify and handle layouts and autostart purposes with a YAML file. To use it, begin tmux and create panes with the stuff you need working in them. Then, open a brand new window with Ctrl+b+n, and execute tmux list-windows. You will get detailed details about the structure.

Note the primary line within the code above the place I arrange 4 panes with an utility in each. Save the output from once you run it for later. Now, run tmuxinator new 20days to create a structure named 20days. This will carry up a textual content editor with the default structure file. It has quite a lot of helpful stuff in it, and I encourage you to learn up on all of the choices. Start by placing within the structure data above and what apps you need the place:

# /Users/ksonney/.config/tmuxinator/20days.yml
title: 20days
root: ~/
home windows:
   - mail:
      structure: d9da,208x60,zero,zero[208x26,zero,zero,208x33,zero,27104x33,zero,27,1,103x33,105,27,four]] @zero
      panes:
        - alot
        - abook
        - ikhal
        - todo.sh ls +20days

Be cautious with the areas! Like Python code, the areas and indentation matter to how the file is interpreted. Save the file after which run tmuxinator 20days. You ought to get 4 panes with the alot mail program, abook, ikhal (a shortcut to khal interactive), and something in todo.txt with the tag +20days.

You’ll additionally discover that the window on the underside bar is labeled Mail. You can click on on the title (together with different named home windows) to leap to that view. Nifty, proper? I arrange a second window named Social with Tuir, Newsboat, an IRC shopper linked to BitlBee, and Rainbow Stream in the identical file.

Tmux is my productiveness powerhouse for protecting observe of all of the issues, and with tmuxinator, I haven’t got to fret about continually resizing, putting, and launching my purposes.

Most Popular

To Top