# StianNOR-ZSHkit 🚀 > A clean, powerful Zsh setup for Linux — featuring Powerlevel10k, Oh My Zsh, Hack Nerd Font, colorls, fastfetch, and a full-featured update dashboard with health checks, tool suggestions and interactive install mode. > [!TIP] > Having issues? Please open an issue: [https://github.com/StianNOR/StianNOR-ZSHkit/issues](https://github.com/StianNOR/StianNOR-ZSHkit/issues) > Join the community on Discord: [https://discord.gg/eHEHCzGCAE](https://discord.gg/eHEHCzGCAE) --- ## What's Included - **Zsh** with Oh My Zsh and Powerlevel10k prompt - **Hack Nerd Font** installed system-wide with automatic terminal/DE configuration - **colorls** for beautiful directory listings - **fastfetch** for a system info splash on terminal open - **zsh-autosuggestions**, **zsh-syntax-highlighting**, **zsh-completions** plugins - **Update Dashboard** (`up.sh`) — a full system update + health check tool with interactive tool browser - **ZSHrc Merge Script** (`update_zshrc.sh`) — safely merges new features into your existing `~/.zshrc` without overwriting personal config --- ## Supported Package Managers ✅ | Package Manager | Distros | |-----------------|-------------------------------------------| | **APT** | Debian, Ubuntu, Linux Mint, Pop!_OS, etc | | **DNF** | Fedora, CentOS 8+, RHEL 8+, Rocky Linux, etc | | **Pacman** | Arch Linux, Manjaro, EndeavourOS, etc | | **Zypper** | openSUSE, SUSE Linux Enterprise, etc | | **APK** | Alpine Linux | --- ## Installation ```bash cd ~ git clone https://github.com/StianNOR/StianNOR-ZSHkit.git ZSHkit cd ZSHkit chmod +x *.sh ./setup_zsh.sh ``` After installation, **log out and back in** (or reboot) for the shell change and font to take effect. Then run `p10k configure` to set up your prompt style. --- ## Update Dashboard 🚀 The update dashboard keeps your system up to date and healthy with a single command. ```bash up # update everything: packages, flatpak, gems, Oh My Zsh, docker upc # first-run config: full update + interactive tool install/suppress mode uph # health check only ups # tool suggestions and interactive info browser uphelp # show all commands ``` ### What `up` does - Updates system packages (pacman/yay, apt, dnf, zypper, or apk) - Updates Flatpak apps - Updates Ruby gems (colorls etc.) - Updates Oh My Zsh and all custom plugins - Prunes Docker images and volumes - Cleans journals, thumbnail cache and /tmp - Rotates logs automatically (keeps last 10) - Shows a health summary with GOOD/BAD verdict ### Tool Suggestions & Info Mode 📖 After running `upc` (or pressing `i` after `ups`), an interactive tool browser opens: | Category | Tools | |----------|-------| | 🔒 Security | UFW, fail2ban, rkhunter, lynis, ClamAV, auditd, AppArmor | | ⚡ Optimization | earlyoom, irqbalance, thermald, zram, preload | | 📡 Monitoring | btop, smartmontools, ncdu, gdu, duf, nethogs, logwatch, nvtop | | 🛠 Terminal | bat, fzf, rsync, restic, tldr | | 🌐 Network & Extras | nmap, mtr, timeshift, yay (Arch), nala (Debian) | **Controls:** | Key | Action | |-----|--------| | `↑` / `↓` | Navigate tools | | `→` / `←` | Next / previous page | | `i` | Queue tool for install | | `s` | Suppress tool (hide from suggestions permanently) | | `q` | Save and exit | --- ## Keeping Your Config Up To Date If you already have a customised `~/.zshrc` and don't want it overwritten, use the merge script instead of copying: ```bash cd ~/ZSHkit git pull zup # merges new ZSHkit sections into your existing ~/.zshrc fresh # reload ``` The merge script only updates the **managed sections** (aliases, autosuggestions config) and leaves everything else untouched. ```bash zup --dry-run # preview changes without writing anything zup --status # check which sections are present in your ~/.zshrc ``` --- ## Helpful Aliases | Alias | Description | |-------|-------------| | `up` | Run system updates | | `upc` | First-run config + tool browser | | `uph` | Health check | | `ups` | Suggestions + info mode | | `uphelp` | Show all up commands | | `zup` | Merge new ZSHkit config into local ~/.zshrc | | `fresh` | Reload ~/.zshrc | | `ali` | Show all active aliases | | `rsy` | rsync with progress display | | `p10` | Launch Powerlevel10k configurator | | `ls` / `ll` / `la` / `sls` | colorls variants | --- ## Uninstall ```bash ./uninstall_zsh_setup.sh ``` --- ## Screenshots | Before | After | | :---: | :---: | | ![Before]() | ![After]() | --- ## Author **StianNOR** --- ## Disclaimer ⚠️ Provided *as-is* for supported Linux distributions. Always back up important data before running scripts. The author accepts no responsibility for data loss or damage. Test in a VM if unsure.