Skip to content
This repository was archived by the owner on Feb 4, 2026. It is now read-only.

Latest commit

 

History

History
227 lines (168 loc) · 6.21 KB

File metadata and controls

227 lines (168 loc) · 6.21 KB

Dotfiles TUI Installer

A beautiful Terminal User Interface (TUI) installer for your dotfiles, built with Bubble Tea.

Features

  • 🎨 Beautiful TUI - Interactive and intuitive interface
  • 🎯 Selective Installation - Choose exactly what you want to install
  • 📦 Categorized Components - Organized into logical groups
  • 🔍 Real-time Progress - See what's happening during installation
  • ⚠️ Error Handling - Clear feedback on any issues
  • 📝 Detailed Logging - All output saved to ~/install.log

Installation Categories

Graphics Drivers

  • NVIDIA Drivers (proprietary with CUDA support)
  • AMD Drivers (open-source)
  • Intel Drivers (integrated graphics)
  • VirtualBox Guest Graphics (for VirtualBox VMs)

Development Tools

  • Visual Studio Code
  • Neovim (modern Vim-based text editor)
  • Git (version control system)
  • Docker with docker-compose
  • Node.js and npm
  • MongoDB

Web Browsers

  • Zen Browser (Firefox-based, privacy-focused)
  • Firefox
  • Chromium

Communication

  • Discord (Vesktop - better Wayland support)
  • Telegram Desktop
  • Signal Desktop

Media & Entertainment

  • Spotify (Spotube - open-source client)
  • VLC Media Player
  • GIMP
  • Pinta (simple image editor)

Gaming

  • Steam (with GPU-specific 32-bit libraries)

Virtualization

  • QEMU/KVM - Complete virtualization stack with virt-manager GUI
  • Wine - Windows application compatibility layer

Terminal Applications

  • Terminal Emulator (Kitty) - GPU-accelerated terminal
  • System Monitor (btop) - Modern resource monitor
  • bat - Better version of cat with syntax highlighting
  • Fastfetch - System information display
  • tldr - Simplified man pages
  • onefetch - Git repository information

File Managers

  • Nautilus - GNOME file manager with extensions
  • Superfile - Modern terminal-based file manager

System Applications

  • Calculator - GNOME calculator
  • Software Center (Discover) - KDE application manager
  • Bluetooth Manager (Blueman) - Graphical Bluetooth management

Entertainment

  • cmatrix - Terminal Matrix effect screensaver
  • cbonsai - ASCII art bonsai tree generator
  • pipes-rs - Terminal screensaver with animated pipes
  • astroterm - Terminal-based astronomy application

Wallpapers & Themes

  • Wallpapers - Setup wallpapers and background themes
  • Theming Support - Icons, themes, and appearance tools

System Configuration

  • Core Packages (essential system packages) [Required]
  • AUR Helper (paru) and AUR packages [Required]
  • Hyprland Window Manager (Wayland compositor)
  • Desktop Portals (XDG desktop integration)
  • SDDM Login Manager (display manager with themes)
  • Security Tools (keyring and credential management)
  • Terminal Tools (shell utilities like zsh, eza, fzf, etc.)
  • Network Tools (network utilities and connection management)
  • File Manager Tools (system file management utilities)
  • Multimedia Base (audio/video control and image processing)
  • Bluetooth Support (core Bluetooth utilities)
  • Software Management (Flatpak support)
  • Fonts (essential and programming fonts)
  • Zsh Shell with plugins
  • Dotfiles (configuration files) [Required]

Usage

Quick Start

  1. Clone and navigate to your dotfiles directory:

    cd /path/to/your/dotfiles
  2. Build the installer:

    ./build.sh
  3. Run the installer:

    ./dotfiles-installer

Manual Build

If you prefer to build manually:

# Ensure Go is installed
go version

# Download dependencies
go mod tidy

# Build the application
go build -o dotfiles-installer main.go

# Run the installer
./dotfiles-installer

Navigation

  • Arrow Keys or hjkl: Navigate through options
  • ←→: Switch between category tabs
  • ↑↓: Navigate through packages in current category
  • Space: Toggle selection (for optional components)
  • Enter: Start installation
  • q: Quit

Interface

The installer now features a horizontal tab interface:

  • Category tabs are displayed horizontally at the top
  • Package list is shown vertically for the selected category
  • Only one category is visible at a time for cleaner interface

Legend

  • [●] - Required component (cannot be deselected)
  • [✓] - Selected optional component
  • [ ] - Unselected optional component
  • - Current selection

Requirements

  • Go 1.21+ for building the installer
  • Arch Linux or Arch-based distribution
  • Internet connection for downloading packages
  • sudo privileges for system package installation

What Gets Installed

The installer respects your selections and only installs what you choose. Required components ensure your system has essential functionality:

  • Core Packages: Base system dependencies, Hyprland, terminal, fonts, etc.
  • AUR Helper: Installs paru and selected AUR packages
  • Dotfiles: Copies your configuration files to appropriate locations

Optional components allow you to customize your installation based on your needs.

Logging

All installation output is logged to ~/install.log. If something goes wrong, check this file for detailed error information.

Troubleshooting

Build Issues

# Ensure Go is properly installed
go version

# Clear Go module cache if needed
go clean -modcache
go mod download

Installation Issues

  1. Check ~/install.log for detailed error messages
  2. Ensure you have internet connectivity
  3. Verify you have sufficient disk space
  4. Make sure you're running with appropriate permissions

Permission Issues

If you get "Permission denied" errors:

# Fix all permissions at once
./fix-permissions.sh

# Or manually:
chmod +x *.sh
chmod +x dotfiles-installer

Graphics Driver Issues

  • Only select one graphics driver option
  • NVIDIA drivers may require a reboot to function properly
  • AMD/Intel drivers use open-source implementations

Contributing

Feel free to modify the installer to suit your needs:

  1. Add new categories: Update the categories slice in main.go
  2. Add new applications: Create functions in lib/apps.sh
  3. Customize styling: Modify the lipgloss styles in main.go

License

This installer is part of your dotfiles configuration and follows the same license as your dotfiles repository.