Overview
This guide covers the installation of Gentleman.Dots on Arch Linux systems. Arch Linux uses the pacman package manager and provides bleeding-edge packages, making it an excellent platform for development environments.
This guide is specifically for Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). For Ubuntu/Debian systems, see the Linux guide .
Prerequisites
Before starting the installation, ensure you have:
Arch Linux or Arch-based distribution (Manjaro, EndeavourOS, etc.)
Base development tools (will be installed during setup)
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 detects Arch Linux and uses the appropriate package manager.
You must install the Iosevka Term Nerd Font before running the script. The font is required for proper terminal display.
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
Make the Script Executable
Grant execution permissions to the script: sudo chmod +x install-linux-mac.sh
Run the Installation
Execute the script and follow the interactive prompts: bash ./install-linux-mac.sh
The script will automatically:
Detect Arch Linux and use pacman
Install base-devel and required dependencies
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
Restart Your Terminal
After installation completes, restart your terminal:
Manual Installation
Clone the Repository
First, clone the Gentleman.Dots repository: git clone [email protected] :Gentleman-Programming/Gentleman.Dots.git
cd Gentleman.Dots
Update System and Install Base Dependencies
Update your system and install the base development tools: sudo pacman -Syu --noconfirm
sudo pacman -S --needed --noconfirm base-devel curl file git wget unzip fontconfig
The base-devel package group includes essential build tools like gcc, make, and more.
Install Rust
Install Rust programming language (required for some tools): curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
. $HOME /.cargo/env
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)"
While Arch has the AUR, Homebrew provides consistent package versions across platforms and is used in the Gentleman.Dots configuration.
Install Iosevka Term Nerd Font
Install the required Nerd Font 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
Alternatively, you can install from the AUR:
Choose and Install a Terminal Emulator
Select one of the following terminal emulators: Alacritty
WezTerm
Ghostty
# Install Alacritty
sudo pacman -S --noconfirm alacritty
# Copy configuration
mkdir -p ~/.config/alacritty
cp alacritty.toml ~/.config/alacritty/alacritty.toml
# Install WezTerm
sudo pacman -S --noconfirm wezterm
# Copy configuration
mkdir -p ~/.config/wezterm
cp .wezterm.lua ~/.config/wezterm/wezterm.lua
# Install Ghostty
sudo pacman -S --noconfirm ghostty
# Copy configuration
mkdir -p ~/.config/ghostty
cp -r GentlemanGhostty/ * ~/.config/ghostty
Ghostty may also be available in the AUR if not in the official repos.
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/
# Install Fish and dependencies
brew install fish carapace zoxide atuin starship fzf
# Create directories
mkdir -p ~/.cache/starship
mkdir -p ~/.cache/carapace
mkdir -p ~/.local/share/atuin
# Copy configuration
cp -rf starship.toml ~/.config/
cp -rf GentlemanFish/fish ~/.config
# Install Zsh and dependencies
brew install zsh carapace zoxide atuin fzf
brew install zsh-autosuggestions zsh-syntax-highlighting zsh-autocomplete
# Create directories
mkdir -p ~/.cache/carapace
mkdir -p ~/.local/share/atuin
# Copy configuration
cp -rf GentlemanZsh/.zshrc ~/
cp -rf GentlemanZsh/.p10k.zsh ~/
cp -rf GentlemanZsh/.oh-my-zsh ~/
# Install PowerLevel10k
brew install powerlevel10k
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
# Install Zellij (available in repos)
sudo pacman -S --noconfirm zellij
# Or via cargo
cargo install zellij
# Copy configuration
mkdir -p ~/.config/zellij
cp -r GentlemanZellij/zellij/ * ~/.config/zellij/
If using Zellij, update your shell configuration to use it instead of Tmux.
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
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 "
Restart Your System
Restart your terminal or computer for all changes to take effect: # Either restart your terminal or run:
exec $SHELL
Arch Linux-Specific Considerations
Package Management
Arch Linux uses pacman as the package manager and has access to the AUR (Arch User Repository). The installation script automatically detects Arch and uses pacman for system packages.
Using AUR Helpers
While Homebrew is used in the configuration, you can also use AUR helpers for Arch-specific packages:
# Install yay (AUR helper)
sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
# Install packages from AUR
yay -S < package-nam e >
Bleeding Edge Packages
Arch provides the latest versions of most packages:
Neovim : Usually on the latest stable or nightly version
Rust : Latest stable release
Node.js : Latest LTS and current versions available
Display Server Options
Wayland Support : Most terminal emulators have excellent Wayland support on Arch. If you’re using Wayland, ensure your compositor is properly configured.
X11 : Fully supported by all terminal emulators
Wayland : Alacritty, WezTerm, and Ghostty have native Wayland support
Graphics Drivers
For optimal terminal performance, ensure proper graphics drivers:
# NVIDIA (proprietary)
sudo pacman -S nvidia nvidia-utils
# AMD (open source)
sudo pacman -S mesa vulkan-radeon
# Intel (open source)
sudo pacman -S mesa vulkan-intel
Troubleshooting
If you encounter package conflicts during installation: # Update package database
sudo pacman -Syu
# Remove conflicting packages
sudo pacman -R < conflicting-packag e >
# Clear package cache if needed
sudo pacman -Scc
Homebrew installation issues
If Homebrew installation fails on Arch:
Ensure base-devel is installed:
sudo pacman -S --needed base-devel
Check for conflicting packages:
Reinstall if necessary:
/bin/bash -c "$( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
/bin/bash -c "$( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
If fonts don’t render correctly:
Rebuild font cache:
Check font configuration:
Install fontconfig if not present:
sudo pacman -S fontconfig
Shell doesn't change after chsh
If the default shell doesn’t change:
Verify the shell is in /etc/shells:
Manually add if missing:
which fish | sudo tee -a /etc/shells
Log out and log back in (not just restart terminal)
Neovim plugins fail to install
If Neovim plugins don’t install:
Check Node.js installation:
node --version # Should be 18+
npm --version
Update Neovim:
Manually sync plugins in Neovim:
AUR package build failures
If AUR packages fail to build:
Ensure base-devel is installed:
sudo pacman -S --needed base-devel
Clear build cache:
Update keyring:
sudo pacman -S archlinux-keyring
Arch Linux Advantages
Rolling Release Always get the latest versions of development tools without waiting for distribution releases
AUR Access Massive repository of user-contributed packages for any tool you need
Minimalist Base Clean installation with only what you need, perfect for customization
Arch Wiki Best Linux documentation available for troubleshooting and configuration
Next Steps
Customize Your Setup Learn how to customize terminal colors, key bindings, and more
Neovim Configuration Explore Neovim features and AI integrations
Arch Wiki Explore the comprehensive Arch Linux documentation
Join the Community Get help and share your setup with the community
Arch Linux Pro Tip : The Arch Wiki is an incredible resource for configuring any aspect of your system. If you encounter issues, check the wiki first - it often has detailed solutions and explanations.