Files
StianNOR-ZSHkit/README.md
2026-03-25 15:19:54 +01:00

161 lines
4.7 KiB
Markdown

# 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](<Standard Terminal.png>) | ![After](<ZSH StianNOR install.png>) |
---
## 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.