DEV Community

Amrit
Amrit

Posted on • Edited on

The Minimalist Terminal Setup

TL;DR Alacritty + Tmux + Vim

I find the beauty of a development environment in its simplicity. How much an IDE or setup can do without external plugins is their true extent of utility.

I love minimalist setups, I don't like bloating the software with external plugins and themes just to make it look pretty. A config file saved somewhere in /home directory is more elegant than GUI or Wizard. If you are like me, you will also love this minimalist terminal setup.

terminal screenshot

Alacritty

Alacritty is nothing but a terminal emulator. It does not have features that you'll generally find in an interactive terminal emulator. List all the things it does not have.

  • Multiple tabs
  • Preference Wizard
  • Package Manager(of any kind)
  • Built-in themes
  • No GUI settings window of any kind.

List of things it is.

  • Fast
  • Simple
  • Independent
  • Extensible
  • < 2.0 MB size

Alacritty is faster than any interactive terminal apps. It does not require extra setup or dependency to run. It can also apply settings from existing configuration files i.e. .bashrc, .profile etc.

Configurations

  • Color schemes: Open the alacritty.yml file located at ~/.config/alacritty/alacritty.yml move to the colors: variable. Change the respective color values to your liking. You can also visit this wiki to copy some cool color values.
# Colors (Ayu Dark)
colors:
  # Default colors
  primary:
    background: '0x0A0E14'
    foreground: '0xB3B1AD'

  # Normal colors
  normal:
    black: '0x01060E'
    red: '0xEA6C73'
    green: '0x91B362'
    yellow: '0xF9AF4F'
    blue: '0x53BDFA'
    magenta: '0xFAE994'
    cyan: '0x90E1C6'
    white: '0xC7C7C7'

  # Bright colors
  bright:
    black: '0x686868'
    red: '0xF07178'
    green: '0xC2D94C'
    yellow: '0xFFB454'
    blue: '0x59C2FF'
    magenta: '0xFFEE99'
    cyan: '0x95E6CB'
    white: '0xFFFFFF'
Enter fullscreen mode Exit fullscreen mode
  • Fonts: In the same config file, move to the font: variable, under normal: variable and uncomment family: append your favorite font name and style.
font:
  # Normal (roman) font face
  normal:
    # Font family
    #
    # Default:
    #   - (macOS) Menlo
    #   - (Linux) monospace
    #   - (Windows) Consolas
    family: 'SF Mono'

    # The `style` can be specified to pick a specific face.
    style: Regular
Enter fullscreen mode Exit fullscreen mode
  • Font Size: In the config file, move to size: variable and change the value, make sure you add .0 decimal after the integer.
  # Point size
  size: 11.0
Enter fullscreen mode Exit fullscreen mode
  • Line Height: In the config file, offset: variable have two sub variables x and y, where y can be called as line height and x as the letter spacing.
  offset:
    x: 0
    y: 0
Enter fullscreen mode Exit fullscreen mode

Download

Alacritty is available for almost all the major platforms Linux, BSD, Windows, Mac etc. It is also available as bash file. You can download binaries and package files here.

Tmux

tmux screenshot

Something crucial that Alacritty does not have are tabs. We need tabs. We love leaving things on them tabs and CMD + T onto next ones.

The solution to tabs in Alacritty is Tmux. Tmux is command line based window and session manager. With its key bindings Tmux becomes very powerful. You can simultaneously open up multiple sessions and leave jobs running until you visit them next time.

Download

Tmux can be directly downloaded from github or you can install it via package manager.

Vim

At last, Vim. It needs no introduction. I do not use any vim plugins other than color scheme files.

My settings

I've spent a great amount of time researching configuration options, color schemes and other settings so you don't have to. I have saved all my settings on my github ap4gh/settings repository. Just copy-paste them at their respective places.

Troubleshooting

Some vim config may misbehave. But don't worry I am here to help you out. Just send a message on my twitter.

Read next: The easiest way to create a blog with Gatsby

Top comments (8)

Collapse
 
jesusgollonet profile image
jesús gollonet • Edited

That looks quite similar to my reasoning and setup. The only reason I can't switch to alacritty yet (and I'm dying to!) is proper full screen support.

With iTerm2 I open my terminal, press cmd+enter and my terminal instantly covers my screen (no animation!). That feature is totally key for me.

Collapse
 
amritpandey23 profile image
Amrit

Alacritty covers the screen too.

I did tried to maximize it using "CMD+ENTER" but it didn't, however if you click on the green maximize button, it will.

The keybinding for that feature(maximize) can be created in the alacritty.yml config file.

Collapse
 
jesusgollonet profile image
jesús gollonet • Edited

oh but that's with the osx default animation right? I don't know of a way to disable that, and that's way too slow for my workflow since i maximize and resize many times for different things.

Will take another look when I got more time. Would love to be wrong on this one.

Collapse
 
moopet profile image
Ben Sinclair

Your link to blog.amritpandey.dev/how-I-created... doesn't connect.

Collapse
 
amritpandey23 profile image
Amrit

Hi! Thanks for reminding. I have updated that link now. You can read that post here diaryofdev.com/how-I-created-devdi...

Collapse
 
alexisfinn profile image
AlexisFinn

I use i3wm and suddenly Tmux is no longer so relevant since everything is tabbed or tiled by default

Collapse
 
soulninjadev profile image
SoulNinja-dev

yep same thing with dwm 😉

Collapse
 
pratham82 profile image
Prathamesh Mali

Thanks I was using hyper till now but alacritty is way much faster than hyper and sleeker.