161 lines
4.7 KiB
Markdown
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 |
|
|
| :---: | :---: |
|
|
|  |  |
|
|
|
|
---
|
|
|
|
## 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.
|