For coaches who want to create and sell online courses, but struggle with the technical aspects


Properly Configuring Tabby Terminal for Development Environments

Tabby is a modern, highly customizable terminal emulator that’s gaining popularity among developers. However, when switching from other terminals, you might encounter issues with environment variables and PATH settings not being properly loaded. This guide explains how to properly configure Tabby to ensure your development tools (like Lando, Node, or other CLI tools) are available in your terminal sessions.

The Problem

When opening a new Tabby terminal tab, you might find that certain commands that work in your regular terminal are suddenly “not found.” This typically happens because Tabby isn’t loading your shell initialization files correctly.

Common symptoms include:

  • Commands like lando, nvm, or custom tools returning “command not found”
  • Environment variables not being set properly
  • Having to manually run source ~/.bashrc in each new tab

Troubleshooting Steps

1. Check Your Current Shell

First, determine which shell you’re using:

which bash
# Output example: /usr/bin/bash

2. Examine Your PATH

Check what’s in your PATH variable:

echo $PATH
# Output example: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

If you don’t see the directories containing your development tools, that’s the issue.

3. Verify Your Shell Configuration Files

For Bash users, check if your .profile is correctly sourcing your .bashrc:

cat ~/.profile | grep bashrc

You should see something like:

# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi

4. Check How Your Tools Are Added to PATH

Look at your 

.bashrc file to see how tools like Lando are added to your PATH:

cat ~/.bashrc | grep PATH

For example, Lando might be added with a line like:

export PATH="/home/username/.lando/bin${PATH+:$PATH}";

The Solution: Configuring Tabby Properly

The key issue with Tabby is that it might be using a non-login shell by default, which doesn’t load your complete environment.

Step 1: Check Tabby’s Default Profile Settings

  1. Open Tabby’s settings (gear icon or Ctrl+,)
  2. Navigate to the “Profiles” section
  3. Note the command used for the default profile

Tabby has a “User default” entry, that isn’t editable; mine is set to /bin/bash (which is wrong).

It also has a “User default” entry, that is editable that you should rename so it isn’t confused with “User default”! I renamed mine so instead of “User” i had my initials.

Step 2: Create a Properly Configured Profile

  1. Set the shell command to /usr/bin/bash --login (or your preferred shell with login flag), by clicking on the name to bring up the edit panel. (See 1)
  2. Ensure this profile is set as the “Default profile for new tabs” by clicking that field (See 2)

Step 3: Test Your Configuration

  1. Open a new tab
  2. Run echo $PATH to verify your full PATH is loaded
  3. Test commands like lando that were previously not found

Common Issues and Solutions

Non-editable Default Profile

Tabby sometimes has a non-editable “User default” profile. If you encounter this:

  1. Create a new profile with your desired settings
  2. Explicitly set this new profile as the “Default profile for new tabs”
  3. Rename it to something recognizable (e.g., “Bash Login Shell”)

Login Shell Options

For Bash, you have several options to ensure proper initialization:

  • --login or -l: Full login shell that reads profile and ~/.profile
  • -i: Interactive shell
  • --rcfile ~/.bashrc: Explicitly load your .bashrc

The most reliable option is typically /usr/bin/bash -il  (interactive login shell).

Environment Variables in Tabby Config

As a last resort, you can add critical environment variables directly in Tabby’s configuration:

profiles:
- name: My Development Profile
shell: /usr/bin/bash
environment:
PATH: /home/username/.lando/bin:${PATH}

Conclusion

With proper configuration, Tabby can be an excellent terminal for development work. The key is ensuring it loads your shell initialization files correctly, particularly for tools that modify your PATH. Once configured properly, you should have a consistent experience across all your terminal tabs without needing to manually source configuration files.