A modular repository for reproducible Linux setups. Start with Oh My Zsh and extend with additional components as needed.
This repository contains installable components for setting up a consistent development environment across different machines.
- ozsh - Oh My Zsh with Spaceship prompt and plugins
- Automatic shell change to zsh
- Syntax highlighting & auto-suggestions
- Git integration
- Docker/Kubernetes support
More components can be added to this repository (e.g., vim config, tmux, development tools, etc.).
./install.shThis opens a main menu where you can choose to install, remove, or list components.
Install Oh My Zsh:
./install.sh install ozshInstall all components:
./install.sh install allRemove Oh My Zsh:
./install.sh remove ozshList available components:
./install.sh listShow help:
./install.sh helplinux_setup_averel10/
├── install.sh # Main installer with component menu
├── README.md # This file
│
├── ozsh/ # Oh My Zsh component
│ ├── dotfiles/
│ │ ├── .zshrc # Main configuration
│ │ └── .zshrc.local # Template for customizations
│ ├── scripts/
│ │ ├── install.sh # Component installer
│ │ └── remove.sh # Component remover
│ └── README.md # Component documentation
│
├── dotfiles/ # (legacy - being phased out)
└── scripts/ # (legacy - being phased out)
Beautiful shell configuration with:
- Spaceship prompt theme
- Syntax highlighting & auto-suggestions
- Git aliases and enhancements
- Docker/Kubernetes support
- Customizable via
~/.zshrc.local
Each component has its own README with detailed instructions:
./install.shMain menu with options to:
- Install components
- Remove components
- List components
- Show help
Install Commands:
./install.sh install # Interactive menu
./install.sh install ozsh # Install specific component
./install.sh install all # Install all componentsRemove Commands:
./install.sh remove # Interactive menu
./install.sh remove ozsh # Remove specific component
./install.sh remove all # Remove all componentsUtility Commands:
./install.sh list # List available components
./install.sh help # Show help and usage
./install.sh -h # Alternative help
./install.sh --help # Alternative helpMost components support local customizations that persist across updates:
- Oh My Zsh: Edit
~/.zshrc.local
These files won't be overwritten when you pull updates and reinstall.
To get the latest updates from the repository:
git pull
bash install.sh
# or bash <component>/scripts/install.shYour personal customizations will be preserved.
Each component can be safely removed:
# Remove Oh My Zsh
./install.sh remove ozsh
# Remove all components
./install.sh remove all
# Remove with interactive menu
./install.sh removeRemoval scripts will optionally backup your configurations before removing.
Depends on the component, but generally:
bashorzshshellgitcurl(for remote installations)
Tested on:
- Ubuntu 20.04+
- Debian 10+
- Fedora 33+
- macOS 10.15+
To add a new component:
- Create a new folder:
<component-name>/ - Add
dotfiles/andscripts/subdirectories - Create
install.shandremove.shscripts - Add
README.mdwith component documentation - Update the main
install.shto include the new component
Feel free to use and modify as needed.