Skip to main content

Overview

This guide covers the complete installation process for Gentleman.Dots on Linux systems (Ubuntu/Debian). The installation includes terminal emulators, shells, window managers, and Neovim with AI integrations.
For Arch Linux users, please refer to the Arch Linux guide.

Prerequisites

Before starting the installation, ensure you have:
  • Ubuntu or Debian-based Linux distribution
  • Administrator privileges (sudo access)
  • Internet connection for downloading packages
  • At least 2GB of free disk space

Installation Methods

Automatic Installation

Recommended: Use the automated script for quick setup

Manual Installation

Step-by-step manual configuration for advanced users

Automatic Installation

The automated installation script handles all dependencies and configurations automatically.
You must install the Iosevka Term Nerd Font before running the script. The font is required for proper terminal display.
1

Download the Installation Script

Download the automated installation script from the repository:
curl -O https://raw.githubusercontent.com/Gentleman-Programming/Gentleman.Dots/refs/heads/main/install-linux-mac.sh
2

Make the Script Executable

Grant execution permissions to the script:
sudo chmod +x install-linux-mac.sh
3

Run the Installation

Execute the script and follow the interactive prompts:
bash ./install-linux-mac.sh
The script will:
  • Install system dependencies (build-essential, curl, file, git)
  • Install Rust and Homebrew
  • Configure your chosen terminal emulator
  • Set up your selected shell (Fish, Zsh, or Nushell)
  • Install your preferred window manager (Tmux or Zellij)
  • Configure Neovim with AI integrations
4

Restart Your Terminal

After installation completes, restart your terminal or computer:
# Restart your terminal or run
exec $SHELL

Manual Installation

1

Clone the Repository

First, clone the Gentleman.Dots repository:
git clone [email protected]:Gentleman-Programming/Gentleman.Dots.git
cd Gentleman.Dots
2

Install Base Dependencies

Install the required build tools and dependencies:
sudo apt-get update
sudo apt-get install -y build-essential curl file git unzip fontconfig
3

Install Rust

Install Rust programming language (required for some tools):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
. $HOME/.cargo/env
4

Install Homebrew

Install Homebrew package manager:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Add Homebrew to your PATH
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
5

Install Iosevka Term Nerd Font

The Iosevka Term Nerd Font is required for proper icon display:
mkdir -p ~/.local/share/fonts
wget -O ~/.local/share/fonts/Iosevka.zip https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/IosevkaTerm.zip
unzip ~/.local/share/fonts/Iosevka.zip -d ~/.local/share/fonts/
fc-cache -fv
6

Choose and Install a Terminal Emulator

Select one of the following terminal emulators:
sudo add-apt-repository ppa:aslatter/ppa
sudo apt update
sudo apt install alacritty

# Copy configuration
mkdir -p ~/.config/alacritty
cp alacritty.toml ~/.config/alacritty/alacritty.toml
7

Choose and Install a Shell

Select and configure your preferred shell:
# Install Nushell and dependencies
brew install nushell carapace zoxide atuin jq bash starship fzf

# Create directories
mkdir -p ~/.cache/starship
mkdir -p ~/.cache/carapace
mkdir -p ~/.local/share/atuin

# Copy configuration files
cp -rf bash-env-json ~/.config/
cp -rf bash-env.nu ~/.config/
cp -rf starship.toml ~/.config/

# Copy Nushell config
mkdir -p ~/.config/nushell
cp -rf GentlemanNushell/* ~/.config/nushell/
8

Choose and Install a Window Manager

Select either Tmux or Zellij:
# Install Tmux
brew install tmux

# Install Tmux Plugin Manager
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

# Copy configuration
mkdir -p ~/.tmux
cp -r GentlemanTmux/.tmux/* ~/.tmux/
cp GentlemanTmux/.tmux.conf ~/

# Install plugins
tmux new-session -d -s plugin-installation 'source ~/.tmux.conf; tmux run-shell ~/.tmux/plugins/tpm/bin/install_plugins'
tmux kill-session -t plugin-installation
9

Install Neovim

Install Neovim and all required dependencies:
# Install core dependencies
brew install nvim node npm git gcc fzf fd ripgrep coreutils bat curl lazygit tree-sitter

# Install AI CLI tools
curl -fsSL https://opencode.ai/install | bash
curl -fsSL https://claude.ai/install.sh | bash
brew install gemini-cli

# Copy Neovim configuration
mkdir -p ~/.config/nvim
cp -r GentlemanNvim/nvim/* ~/.config/nvim/

# Configure OpenCode
mkdir -p ~/.config/opencode/themes
cp GentlemanOpenCode/opencode.json ~/.config/opencode/
cp GentlemanOpenCode/themes/gentleman.json ~/.config/opencode/themes/

# Configure Obsidian path (optional)
mkdir -p ~/.config/obsidian/templates
nvim ~/.config/nvim/lua/plugins/obsidian.lua
# Update the path field to your Obsidian vault location
10

Set Default Shell

Set your chosen shell as the default:
shell_path=$(which fish)
sudo sh -c "grep -Fxq \"$shell_path\" /etc/shells || echo \"$shell_path\" >> /etc/shells"
sudo chsh -s "$shell_path" "$USER"
11

Restart Your System

Restart your terminal or computer for all changes to take effect:
# Either restart your terminal or run:
exec $SHELL

Linux-Specific Considerations

Package Manager Differences: Ubuntu/Debian use apt, while Arch uses pacman. This guide focuses on Ubuntu/Debian. Arch users should see the Arch Linux guide.

Display Server Compatibility

  • Wayland: Some terminal emulators (like Alacritty) work best with Wayland. Ensure your display server is properly configured.
  • X11: All terminal emulators support X11 by default.

System Requirements

  • Kernel Version: Linux kernel 5.0 or higher recommended
  • GPU Drivers: Install proper GPU drivers for best terminal performance
  • Memory: At least 4GB RAM recommended for full Neovim setup with AI integrations

Troubleshooting

If Homebrew installation fails, ensure you have all build dependencies:
sudo apt-get install build-essential procps curl file git
Then try installing Homebrew again.
If icons or fonts aren’t displaying properly:
  1. Verify the font is installed:
    fc-list | grep Iosevka
    
  2. Clear font cache:
    fc-cache -fv
    
  3. Restart your terminal emulator
If your default shell doesn’t change:
  1. Verify the shell path is in /etc/shells:
    cat /etc/shells
    
  2. Manually change the shell:
    chsh -s $(which fish)  # or zsh, nu
    
  3. Log out and log back in
If you encounter permission errors during installation:
# Fix Homebrew permissions
sudo chown -R $(whoami) $(brew --prefix)/*

# Fix config directory permissions
sudo chown -R $(whoami) ~/.config
If Neovim plugins fail to load:
  1. Open Neovim and run:
    :Lazy sync
    
  2. Check for errors:
    :checkhealth
    
  3. Ensure Node.js is properly installed:
    node --version  # Should be 18+
    

Next Steps

Customize Your Setup

Learn how to customize terminal colors, key bindings, and more

Neovim Configuration

Explore Neovim features and AI integrations

Shell Tips & Tricks

Master your chosen shell with productivity tips

Join the Community

Get help and share your setup with the community
After installation, explore the included configurations and customize them to match your workflow. The Gentleman.Dots setup is designed to be a starting point for your perfect development environment!

Build docs developers (and LLMs) love