A powerful Zsh environment setup with Oh My Posh themes, essential plugins, and advanced search capabilities. This repository provides scripts to automatically configure your terminal with modern features and aesthetics.
- Minimum 256MB RAM
- 100MB free disk space
- Internet connection for installation
- Terminal with Unicode support
- Ubuntu/Debian-based Linux distribution
- Basic terminal knowledge
- Git installed (
sudo apt install git
) - Nerd Fonts - Required for proper icon display
- If not installed, run
./install_fonts.sh
before proceeding with the setup - Recommended fonts: JetBrainsMono Nerd Font, Meslo LGM Nerd Font, or FiraCode Nerd Font
- After installing fonts, configure your terminal to use one of the Nerd Fonts
- Restart your terminal after font configuration
- If not installed, run
# Clone the repository
git clone https://github.com/Easy-Cloud-in/zsh-setup.git
cd zsh-setup
# Make scripts executable
chmod +x *.sh
# Install and configure Nerd Fonts (if not already installed)
./install_fonts.sh
# After font installation, configure your terminal to use a Nerd Font and restart your terminal
# Run the setup script
./zsh_oh_my_posh_setup.sh
# Start using Zsh (either open a new terminal or run):
zsh
-
Clone the Repository
git clone https://github.com/Easy-Cloud-in/zsh-setup.git cd zsh-setup
-
Make Scripts Executable
chmod +x *.sh
-
Install Required Fonts (if not already installed)
./install_fonts.sh
- Configure your terminal to use one of the installed Nerd Fonts
- For VS Code, add to settings.json:
{ "terminal.integrated.fontFamily": "JetBrainsMono Nerd Font", "editor.fontFamily": "JetBrainsMono Nerd Font" }
- Restart your terminal/editor after font configuration
-
Run the Setup Script
./zsh_oh_my_posh_setup.sh
-
Restart Your Terminal
zsh
- Automatically suggests commands as you type
- Accept suggestion:
Right Arrow
orCtrl + E
- Accept word:
Alt + Right Arrow
- Commands appear in green if valid
- Red if invalid
- Yellow for aliases
- Blue for functions
gst
- git statusga
- git addgc
- git commitgp
- git pushgl
- git pull- Full list: Run
alias | grep git
Ctrl + T
- Fuzzy file searchCtrl + R
- Search command historyAlt + C
- Fuzzy directory navigation
# Search file contents
fif "search term"
# Find files
fd pattern
# Search with ripgrep
rg "pattern"
Change theme anytime:
./change_posh_theme.sh
-
List themes:
ls ~/.oh-my-posh-themes/*.json
-
Change theme:
./change_posh_theme.sh
# Edit Zsh settings
nano ~/.zshrc
# Apply changes
source ~/.zshrc
To update all components to their latest versions:
./zsh_oh_my_posh_setup.sh -f
This project:
- Does not collect any personal data
- Requires sudo access only for package installation
- Creates backups before modifying any config files
- All scripts are open source and can be reviewed
See CHANGELOG.md for version history and updates.
- Make sure Nerd Fonts are installed correctly
- Verify terminal is using a Nerd Font
- Try reinstalling fonts:
./install_fonts.sh
# Check themes directory
ls -l ~/.oh-my-posh-themes/
# Reinitialize Oh My Posh
oh-my-posh init zsh
# Restore backup
cp ~/.zshrc.backup.* ~/.zshrc
# Rebuild cache
rm ~/.zcompdump*
compinit
-
If you see boxes or question marks instead of icons:
- Verify terminal is using a Nerd Font
- Run
fc-list | grep "Nerd"
to confirm font installation - Try different Nerd Font if issues persist
-
If prompt looks broken:
- Check terminal font settings
- Try updating Oh My Posh:
./zsh_oh_my_posh_setup.sh -f
- Verify terminal supports Unicode
Remove all components:
uninstall_oh_my_zsh
rm -rf ~/.oh-my-posh-themes
rm -rf ~/.fzf
sudo apt remove zsh ripgrep fd-find
- Fork the repository
- Create your feature branch:
git checkout -b feature/AmazingFeature
- Commit your changes:
git commit -m 'Add some AmazingFeature'
- Push to the branch:
git push origin feature/AmazingFeature
- Open a Pull Request
MIT License - See LICENSE for details
- Star this repository if you find it helpful
- Report issues on GitHub with:
- Your OS version
- Terminal emulator and version
- Steps to reproduce the issue
- Error messages (if any)
- Submit pull requests with improvements
- Share with others who might benefit
- Follow Easy-Cloud.in for updates
This project stands on the shoulders of giants. Special thanks to:
- Zsh - The powerful shell that makes this possible
- Oh My Zsh - Framework for managing Zsh configuration
- Oh My Posh - Prompt theme engine
- Nerd Fonts - Iconic font aggregator
- fzf - Command-line fuzzy finder
- ripgrep - Line-oriented search tool
- fd - Simple, fast alternative to 'find'
- bat - A cat clone with syntax highlighting
These projects have made our terminal experience better, and we're grateful for their continuous work in the open-source community.
Made with ❤️ by Easy-Cloud.in
To run the setup script:
./zsh_oh_my_posh_setup.sh [options]
Available Options:
-h
,--help
: Show the help message and exit.-f
,--force
: Force reinstallation of Zsh, Oh My Zsh, Oh My Posh, and plugins, even if they seem to be installed already. This also overwrites the existing.zshrc
backup.--update-rc
: Only update the~/.zshrc
configuration file. Skips installation checks and plugin updates. Useful for quickly applying changes to the.zshrc
template or switching themes without reinstalling components.
Example:
Run the full setup:
./zsh_oh_my_posh_setup.sh
Force a full reinstall/reconfiguration:
./zsh_oh_my_posh_setup.sh --force
Only update the .zshrc
file (e.g., after modifying the script or to change themes):
./zsh_oh_my_posh_setup.sh --update-rc