My feature-rich and minimal Linux terminal

These apps and themes help make my terminal my own.
81 readers like this
81 readers like this
Digital images of a computer desktop

Opensource.com

Everyone likes to set up their workspaces in a specific way; it helps your productivity and makes life easier to have things organized in a way that feels organic and to have an environment that feels good to you. That definitely applies to terminals too; that's probably why there are so many terminal options available.

When starting on a new computer, the very first thing I do is set up my terminal to make it my own.

My preferred terminal app is terminator because of its minimalist design and built-in windowing options. But it gets more complex from there. I would describe my preferred terminal style as "feature-rich yet, keeping it minimal." That balance is one I'm often fine-tuning.

I use zsh as my default shell, and Ohmyzsh to give is additional features. One can install Ohmyzsh by downloading its install script:

$ curl -fsSL \
https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh \
--output install-zsh.sh

Read the script over to see what it does, and to ensure you feel confident in running it on your computer. Once you're ready, run the script:

$ sh ./install-zsh.sh

My favorite theme/prompt is Powerlevel 10k, which is an incredibly detailed view of my environment. It includes everything from color highlighting of commands to timestamps for when they were run. All the details integrate into an elegant, context-aware prompt. [context-aware is used as a benefit twice, here and below, can author provide more here on what that means and why it is a good thing in a terminal?}

Installing Powerlevel10k begins with downloading the source code in the .oh-my-zsh/ custom theme directory.

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k

However, to make Powerlevel10k look as it is shown in the repository, we need to add some fonts that are not included by default; these are listed below:

This results in a beautiful and context-aware terminal (as shown by screenfetch)

terminator terminal shot via screenFetch

I've become accustomed to this particular setup, but, as important as it is to make your work environment your own, that's also not a reason to be stubborn about trying new things. New terminals emerge in order to answer the needs and demands of new generations of users. That means that, even if it's unfamiliar at first, one of the more recently developed terminals could be better suited to today's environments and responsibilities than your old standby.

I have been considering other options recently. I started watching the development of Starship, which describes itself as a minimal, blazing-fast, and infinitely customizable prompt for any shell. It still has a lot of visually immersive details without as much of what some might find distracting from Powerlevel10k.

What's your favorite terminal, and why? Share in the comments!

What to read next
Tags
Hey, open source folks! I am Sumantro, hailing from India (the eastern part - former capital during the British era AKA Kolkata). I love sharing knowledge and writing about technology and experiences (mostly that I try every day).

14 Comments

I'm still using classic terminal in 2020. It would be good for me. Looks good.

Yeah, I think we have wildly different definitions of "minimal".
My terminal setup is a patched st build using the fish shell, and that's it

I was thinking the same thing. Calling terminator and zsh with OhMyzsh minimal is kinda funny.
Also is terminator even a terminal? Isn't it just a multiplexer?

In reply to by Pascal Puffke (not verified)

To be fair, installing oh-my-zsh isn't "custom" - it does what it's supposed to do and its not plain dumb bash. I'm using a similar setup with the agnoster theme, but with a little bit of customizaton. I color code local-dev-stage-prod prompts so do I have that extra level of f-up protection. Blue-green-yellow-red works for me.

In reply to by Pascal Puffke (not verified)

tmux

Didn't work for me. First I had to install curl, which is fine. Then when I tried to execute the first command nothing happened. When I executed the second command it said command not found.
Please provide more detailed information. Thanks

This part you are describing usually consists of two parts. username@hostname.
If you want to shorten that part you have the options of shortening either your username or the hostname of your system. In your example your hostname is really long so I would suggest that you find an online resource that describes how to change your username on your distro.
If you are using ubuntu (because of your linked tutorials from above) you can use the hostnamectl tool in your terminal. Simply type sudo hostnamectl set-hostname to set a new hostname for your machine.
A more detailed description of the hostnamectl tool and more ways to change your hostname can be found in those articles:
https://www.cyberciti.biz/faq/ubuntu-change-hostname-command/
https://www.tecmint.com/set-hostname-permanently-in-linux/
I hope you found the answer you looked for :)

In reply to by dryphi

I don't understand what is a context-aware terminal. What are the benefits of a terminal being context-aware?

context aware prompt means it is aware of certain environment modifications, for example:
- knows if you are in an active virtualenv, and displays the name
- displays git repo name/branch/status, if you are inside a git repo directory structure

In reply to by Dr Anirban Mitra

I prefer st. Over the years I've grown to appreciate it. I'm all about free and open source software. The beauty of Linux is do what works for you.

I personally prefer kitty as my terminal and fish as my shell, customized with the `es` theme from `oh-my-fish` and `pisces`, an auto-pair for brackets, parens and quotes. very minimal prompt that stays out of the way yet is informative when in a git dir, ssh or failed command.

though I often distro hop on a test laptop, I am beginning to like `st` though `kitty` is great "out of the box"

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.