Easily add a beautiful, dynamic welcome message to your Linux or macOS shellβcomplete with system stats, public IP, disk usage, weather, and multi-language support.
- π¬ Multi-language support (auto-detected via
LANG) - π¦ Fastfetch system overview at login
- π Weather, public IP, disk usage report
- πΎ System metrics dashboard (memory, CPU usage)
- β‘ Performance optimized with smart caching
- π¨ Customizable via configuration file
- π Security focused with timeouts and error handling
- π Bash & ZSH support
- π¦ Multi-distro support (Ubuntu, Debian, Fedora, Arch, openSUSE, RHEL)
- π Improved Raspberry Pi detection and throttling status
- β Idempotent installer β safe to run repeatedly
- π§ͺ Test mode and uninstall options
Run this command to install:
curl -s https://raw.githubusercontent.com/MichalAFerber/welcome-message/main/install_welcome.sh | bashβ You can re-run this any time β it will only update the script if needed.
# Test mode - see what would be installed without making changes
curl -s https://raw.githubusercontent.com/MichalAFerber/welcome-message/main/install_welcome.sh | bash -s -- --test
# Skip dependency installation (if you already have curl and fastfetch)
curl -s https://raw.githubusercontent.com/MichalAFerber/welcome-message/main/install_welcome.sh | bash -s -- --no-deps
# Uninstall welcome message
curl -s https://raw.githubusercontent.com/MichalAFerber/welcome-message/main/install_welcome.sh | bash -s -- --uninstall
# Show help
curl -s https://raw.githubusercontent.com/MichalAFerber/welcome-message/main/install_welcome.sh | bash -s -- --helpAfter installation, customize your welcome message by editing:
~/.config/welcome.sh/config# Display toggles
SHOW_FASTFETCH=true # Show fastfetch system info
SHOW_WEATHER=true # Show weather from wttr.in
SHOW_PUBLIC_IP=true # Show your public IP address
SHOW_SYSTEM_METRICS=true # Show disk usage, memory, CPU temp, and top process
SHOW_ASCII_ART=false # Show ASCII art banner
QUIET_MODE=false # Minimal output for faster loading
# Customization
WEATHER_LOCATION="" # Set your city (e.g., "New+York", "London")
CACHE_TIMEOUT=3600 # Cache duration in seconds (default: 1 hour)
REQUEST_TIMEOUT=3 # Timeout for external API calls (seconds)Example configuration file: config.example
Enable ASCII art banner:
echo "SHOW_ASCII_ART=true" >> ~/.config/welcome.sh/configChange weather location:
echo "WEATHER_LOCATION=\"Tokyo\"" >> ~/.config/welcome.sh/configSpeed up loading (disable slow features):
cat >> ~/.config/welcome.sh/config << EOF
SHOW_WEATHER=false
SHOW_PUBLIC_IP=false
QUIET_MODE=true
EOFThe installer detects your system language using LANG and fetches a matching welcome.sh.template.{lang}.
Currently available: en, es, nl, fr, de.
If no matching template is found, the script will display all available templates and automatically use English.
You can temporarily force a language without changing your system locale permanently:
LANG=fr_FR.UTF-8 LANGUAGE=fr \
bash <(curl -s https://raw.githubusercontent.com/MichalAFerber/welcome-message/main/install_welcome.sh)- Smart Caching: Public IP and weather data are cached for 1 hour by default
- Timeouts: External API calls timeout after 3 seconds to prevent hanging
- Quiet Mode: Disable resource-intensive features for faster loading
- Conditional Checks: System metrics only run when needed
Cache files are stored in: ~/.cache/welcome.sh/
- Uses content comparison (not hashes) to determine updates
- Adds hook to
.bashrcand.zshrcif needed - Will not duplicate or overwrite if already installed
- Test mode available to preview changes
- Clean uninstall option removes all files and hooks
- Linux: Ubuntu, Debian, Fedora, RHEL, CentOS, Arch Linux, Manjaro, openSUSE, SUSE Linux, Raspberry Pi OS
- macOS: Fully compatible with Bash and Zsh (Homebrew installation recommended)
- APT (Debian, Ubuntu, Raspberry Pi OS)
- DNF (Fedora, RHEL 8+)
- YUM (CentOS, RHEL 7)
- Pacman (Arch Linux, Manjaro)
- Zypper (openSUSE, SUSE Linux)
On macOS, you'll need Homebrew to install dependencies. If you don't have Homebrew installed yet:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Then install the required dependencies:
brew install curl fastfetchFinally, run the installer:
curl -s https://raw.githubusercontent.com/MichalAFerber/welcome-message/main/install_welcome.sh | bashNote: The installer will automatically detect macOS and skip Linux-specific package managers. Just ensure curl and fastfetch are installed via Homebrew first.
Improved detection using multiple methods:
/proc/device-tree/modelcheck/boot/config.txtpresence- Automatic
libraspberrypi-bininstallation - Throttling status monitoring
These are installed automatically (unless --no-deps is used):
bash,curlfastfetch(via distribution package manager or PPA)libraspberrypi-bin(only on Raspberry Pi)
Ubuntu 22.04+ users benefit from a Fastfetch PPA for latest builds.
When SHOW_SYSTEM_METRICS=true, the welcome message includes:
- Disk Usage: Disk space on
/ - Memory Usage: Shows used/total memory with percentage (uses
vm_stat/sysctlon macOS,freeon Linux) - Top CPU Process: Displays the most CPU-intensive process (hidden in quiet mode)
- CPU Temperature: Multi-method temperature detection
Always shown (independent of SHOW_SYSTEM_METRICS):
- Package Updates: Works across multiple package managers
- Reboot Status: Warning if system reboot is required
- Throttling Status: Raspberry Pi throttling detection
.
βββ install_welcome.sh
βββ config.example
βββ templates/
βββ welcome.sh.template.en
βββ welcome.sh.template.es
βββ welcome.sh.template.nl
βββ welcome.sh.template.fr
βββ welcome.sh.template.deWant to contribute a translation? Add a new welcome.sh.template.xx file!
To manually trigger an update, just rerun:
curl -s https://raw.githubusercontent.com/MichalAFerber/welcome-message/main/install_welcome.sh | bashAfter editing your config file, test it immediately:
~/welcome.shComment out the hook in your shell rc file:
# ~/.bashrc or ~/.zshrc
# ~/welcome.shDownload and modify the template locally:
curl -O https://raw.githubusercontent.com/MichalAFerber/welcome-message/main/templates/welcome.sh.template.en
# Edit welcome.sh.template.en as desired
mv welcome.sh.template.en ~/welcome.sh
chmod +x ~/welcome.shTo test in a clean shell environment, use Docker or a VM:
docker run -it ubuntu:22.04 bash -c "curl -s https://raw.githubusercontent.com/MichalAFerber/welcome-message/main/install_welcome.sh | bash && bash"Pull requests are welcome! Especially for:
- π Translations (
templates/welcome.sh.template.xx) - π‘ Feature ideas and enhancements
- π Bug fixes and improvements
- π Documentation improvements
- π¨ ASCII art banners and visual enhancements
- Copy an existing template:
cp templates/welcome.sh.template.en templates/welcome.sh.template.xx - Translate all user-facing strings
- Test the template:
bash templates/welcome.sh.template.xx - Submit a pull request
- Check if the hook exists:
grep welcome.sh ~/.bashrc ~/.zshrc - Test manually:
~/welcome.sh - Check for errors:
bash -x ~/welcome.sh
- Enable caching (default is enabled)
- Disable weather:
echo "SHOW_WEATHER=false" >> ~/.config/welcome.sh/config - Disable public IP:
echo "SHOW_PUBLIC_IP=false" >> ~/.config/welcome.sh/config - Enable quiet mode:
echo "QUIET_MODE=true" >> ~/.config/welcome.sh/config
- Install
lm-sensors:sudo apt install lm-sensors(Ubuntu/Debian) - Run sensors detection:
sudo sensors-detect
- Manually install:
sudo apt install fastfetchor check your distro's package manager - On older Ubuntu: The installer will try to add the PPA automatically
You may see warnings like W: An error occurred during signature verification during installation on systems with third-party repositories (e.g., NodeSource for Node.js). These warnings are:
- Not caused by the welcome-message installer
- Typically from deprecated SHA1 signatures in third-party repos
- Safe to ignore β they don't affect the welcome-message installation
- The installer handles these gracefully and will continue normally
These are system-level warnings from your package manager when updating repository metadata, not from this project.
For more info, read the full blog guide: Custom Linux Welcome Message
Enjoy your new login experience. Whiskey, Tango, Foxtrot ready. π«‘
