This dotfiles system provides a complete, cross-platform development environment setup designed for test developers, DevOps engineers, and software developers. It automates the installation and configuration of essential development tools while maintaining consistency across different operating systems.
# 1. Clone the repository
git clone ssh://git@teabaer.api64.de:222/Baerspektivo/dotfiles.git ~/git/dotfiles
# 2. Run the installer
cd ~/git/dotfiles
chmod +x install.sh
./install.sh
# 3. Choose your shell (Fish or Zsh)
# 4. Restart your terminal
# 5. Enjoy your new development environment!
macOS:
# Install Xcode Command Line Tools (if not already installed)
xcode-select --install
Linux:
# Update package database
sudo apt update # Debian/Ubuntu
sudo pacman -Sy # Arch Linux
sudo dnf check-update # Fedora
# Create git directory structure
mkdir -p ~/git
cd ~/git
# Clone your dotfiles
git clone ssh://git@teabaer.api64.de:222/Baerspektivo/dotfiles.git dotfiles
cd dotfiles
# Make script executable
chmod +x install.sh
# Optional: Review what will be installed
less install.sh
./install.sh
The installer will:
# Restart your terminal or run:
exec $SHELL
# Your new environment is ready!
# The system will show neofetch with custom ASCII art
After installation, verify everything works:
# Check shell
echo $SHELL
# Check key tools
starship --version
neofetch --version
btop --version
# Check package managers
brew --version # macOS
yay --version # Arch Linux
# Test auto-update system
~/.local/bin/update-system.sh --force
Ghostty Terminal Emulator
Starship Prompt
Neofetch System Info
Version Control
Text Editing
Package Management
Location: ~/.config/fish/
Structure:
fish/
├── config.fish # Main configuration
├── conf.d/ # Auto-loaded configurations
│ ├── aliases.fish # Command aliases
│ ├── kubernetes.fish # K8s integration
│ ├── devops-tools.fish # DevOps shortcuts
│ ├── ssh-gpg.fish # Security tools
│ ├── paths.fish # PATH management
│ └── tools.fish # Tool initialization
├── functions/ # Custom functions
│ └── colormap.fish # Terminal color testing
└── completions/ # Auto-completions
Key Features:
Included Plugins:
jorgebucaran/nvm.fish - Node Version ManagerPatrickF1/fzf.fish - Fuzzy finder integrationfranciscolourenco/done - Command completion notificationsLocation: ~/.zshrc
Features:
Included Plugins:
git - Git command enhancementsdocker - Docker completion and aliaseskubectl - Kubernetes command completionnode - Node.js development toolsnpm - NPM package manager integrationKey Aliases (Both Shells):
# System Management
alias ll='ls -la'
alias vim='nvim'
alias ram='vm_stat' # Memory usage (macOS)
# Development
alias py='python3'
alias pip='pip3'
alias k='kubectl'
alias d='docker'
alias dc='docker compose'
# DevOps
alias kgp='kubectl get pods'
alias kgs='kubectl get services'
alias dps='docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"'
# Testing
alias pw='npx playwright'
alias pwt='npx playwright test'
alias pwh='npx playwright test --headed'
alias pwr='npx playwright show-report'
The system includes an intelligent auto-update mechanism that works for both always-on servers and laptops that get shut down regularly.
Dual Approach:
Automatic Updates Run:
System Packages
Development Tools
vim +PlugUpdate)npm update -g)npx playwright install)Dotfiles
System Cleanup
# Force immediate update
~/.local/bin/update-system.sh --force
# View update logs
tail -f ~/.local/share/system-updates.log
# Check last update time
cat ~/.local/share/last-system-update
macOS: LaunchAgent (~/Library/LaunchAgents/)
Linux: systemd user service or shell profile integration
Purpose: Distributed version control for code management
Usage: Track changes, collaborate on projects, manage dotfiles
Configuration: Optimized for development workflows with useful aliases
Purpose: Powerful, modal text editor for coding
Configuration: Kickstart.vim with modern plugins and LSP support
Features: Syntax highlighting, code completion, file navigation
Plugins: Automatically managed via vim-plug
Purpose: Modern programming language for backend development and DevOps tools
Usage: Building efficient, concurrent applications
Integration: Full toolchain including compiler, formatter, and package manager
Purpose: Versatile language for automation, testing, and data processing
Usage: Scripting, web development, testing frameworks
Integration: pip package manager and virtual environment support
Purpose: Server-side JavaScript execution and modern web development
Management: Installed via NVM (Node Version Manager) for easy version switching
Usage: Frontend development, testing tools, build systems
Purpose: Fast, customizable prompt with Git and development context
Features:
Purpose: Attractive system information display with custom ASCII art
Customization: Features custom "QA Bug Hunter Whale" ASCII art
Information Displayed: OS, kernel, memory, CPU, development tool versions
Purpose: Modern system resource monitor with beautiful UI
Features:
Purpose: Command-line fuzzy finder for files, history, processes
Integration: Deep shell integration for enhanced productivity
Usage: Quick file finding, history search, directory jumping
Purpose: Extremely fast grep replacement for searching code
Features: Regex support, automatic binary file detection, Git integration
Usage: Code searching, log analysis, pattern matching
Purpose: Simple, fast alternative to the find command
Features: Intuitive syntax, parallel execution, Git integration
Usage: Quick file and directory location
Purpose: Cat command with syntax highlighting and Git integration
Features: Line numbers, paging, syntax highlighting for 200+ languages
Usage: File viewing, code review, configuration inspection
Purpose: Continuous file synchronization between devices
Features:
Purpose: Zero-config VPN for secure remote access
Features:
Purpose: Low-latency remote desktop for development and gaming
Features:
Purpose: Comprehensive tool for API testing and development
Features:
Purpose: Secure password and credential management
Features:
Purpose: Web browser with built-in privacy protection
Features:
Purpose: Modern, fast terminal emulator with GPU acceleration
Features:
Purpose: End-to-end testing for web applications
Features:
Playwright Aliases:
pw # npx playwright
pwt # npx playwright test
pwh # npx playwright test --headed (visible browser)
pwr # npx playwright show-report
Purpose: Package manager for macOS
Commands: brew install, brew update, brew upgrade
Manages: Both command-line tools and GUI applications
Purpose: AUR helper for Arch Linux
Features: Installs from both official repositories and AUR
Commands: yay -S package, yay -Syu (system update)
Purpose: Native package manager for Debian-based systems
Commands: apt install, apt update, apt upgrade
Integration: Additional repositories configured for some tools
Purpose: Next-generation package manager for Fedora
Commands: dnf install, dnf update, dnf upgrade
Features: Improved dependency resolution over YUM
Add personal aliases to the appropriate shell configuration:
Fish: ~/.config/fish/conf.d/personal.fish
# Personal aliases
alias myproject="cd ~/Documents/my-important-project"
alias serve="python3 -m http.server 8000"
Zsh: ~/.zshrc (add at the end)
# Personal aliases
alias myproject="cd ~/Documents/my-important-project"
alias serve="python3 -m http.server 8000"
Edit ~/.config/starship.toml:
# Add custom modules
[custom.mycompany]
command = "echo 'MyCompany'"
when = "test -f .mycompany-project"
style = "bold blue"
Create custom ASCII art in ~/.config/neofetch/ascii/my-logo.txt and update config:
# In ~/.config/neofetch/config.conf
image_source="$HOME/.config/neofetch/ascii/my-logo.txt"
Add custom Ghostty themes to ~/.config/ghostty/themes/:
# ~/.config/ghostty/themes/my-theme.yml
background: "#1a1b26"
foreground: "#c0caf5"
# ... additional colors
Edit install.sh and add your tool to the appropriate OS section:
# In the macOS section
install_package my-new-tool
# Install manually
brew install my-tool # or appropriate package manager
# Add aliases in shell config
echo 'alias mt="my-tool"' >> ~/.config/fish/conf.d/personal.fish
# Fix: Run with proper permissions
sudo ./install.sh
# Or fix directory permissions
sudo chown -R $USER:$USER ~/git/dotfiles
# macOS: Install Homebrew manually
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Arch: Install yay manually
git clone https://aur.archlinux.org/yay.git /tmp/yay
cd /tmp/yay && makepkg -si
# Test internet connectivity
ping -c 3 google.com
# Check DNS resolution
nslookup github.com
# Retry installation with verbose output
./install.sh --verbose
# Check if fish is in /etc/shells
cat /etc/shells | grep fish
# Add fish manually
echo $(which fish) | sudo tee -a /etc/shells
# Set as default shell
chsh -s $(which fish)
# Reset Oh-My-Zsh
rm -rf ~/.oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Reload shell
exec $SHELL
# Check PATH
echo $PATH
# Source configuration manually
source ~/.config/fish/config.fish # Fish
source ~/.zshrc # Zsh
# Check cron job
crontab -l
# Test update script manually
~/.local/bin/update-system.sh --force
# Check logs
tail -f ~/.local/share/system-updates.log
# Fix ownership of dotfiles
sudo chown -R $USER:$USER ~/git/dotfiles
# Reset update timestamp to force retry
rm ~/.local/share/last-system-update
# Find your backup
ls ~/.config-backup-*
# Restore specific configuration
cp -r ~/.config-backup-YYYYMMDD-HHMMSS/fish ~/.config/
# Reset to system defaults
rm ~/.config/fish ~/.config/starship.toml ~/.config/neofetch
# Remove all dotfiles
rm -rf ~/.config/fish ~/.config/ghostty ~/.config/neofetch
rm ~/.config/starship.toml
# Remove scripts
rm -rf ~/.local/bin/update-system.sh
# Remove cron jobs
crontab -r
# Reinstall from scratch
cd ~/git/dotfiles && ./install.sh
# Manual system update
~/.local/bin/update-system.sh --force
# Review logs for issues
tail -n 50 ~/.local/share/system-updates.log
# Check disk usage
df -h ~
# Update dotfiles repository
cd ~/git/dotfiles
git pull origin main
git add -A
git commit -m "Update local configurations"
git push
# Review and clean old backups
ls ~/.config-backup-* | head -n -3 | xargs rm -rf
# Check system health
brew doctor # macOS
yay -Yc # Arch
apt autoremove # Debian/Ubuntu
# Review installed packages
brew list # macOS
yay -Q # Arch
apt list --installed # Debian/Ubuntu
# Update documentation
vim ~/git/dotfiles/README.md
# Backup important configurations to external storage
# Measure startup time
time fish -c exit
time zsh -c exit
# Profile fish startup
fish --profile /tmp/fish.profile -c exit
less /tmp/fish.profile
# Clean package caches
brew cleanup --prune=all # macOS
yay -Yc # Arch
apt autoclean # Debian/Ubuntu
# Clean old logs
find ~/.local/share -name "*.log" -mtime +30 -delete
#!/bin/bash
# backup-dotfiles.sh
BACKUP_DIR="~/dotfiles-backup-$(date +%Y%m%d)"
mkdir -p "$BACKUP_DIR"
# Backup configurations
cp -r ~/.config/fish "$BACKUP_DIR/"
cp -r ~/.config/ghostty "$BACKUP_DIR/"
cp -r ~/.config/neofetch "$BACKUP_DIR/"
cp ~/.config/starship.toml "$BACKUP_DIR/"
# Backup scripts
cp -r ~/.local/bin "$BACKUP_DIR/"
# Create archive
tar -czf "$BACKUP_DIR.tar.gz" "$BACKUP_DIR"
rm -rf "$BACKUP_DIR"
echo "Backup created: $BACKUP_DIR.tar.gz"
# Extract backup
tar -xzf ~/dotfiles-backup-YYYYMMDD.tar.gz
# Restore configurations
cp -r ~/dotfiles-backup-YYYYMMDD/* ~/.config/
# Reload shell
exec $SHELL
# Create feature branch
cd ~/git/dotfiles
git checkout -b feature/my-improvement
# Make changes and commit
git add -A
git commit -m "Add: New feature description"
# Push and create pull request
git push origin feature/my-improvement
When reporting issues, include:
This documentation covers the complete dotfiles system. For additional help, check the logs, review the source code, or create an issue in the repository.