Update README.md

This commit is contained in:
2025-08-09 20:57:08 +01:00
parent 08baf32f2c
commit 1efa7795dd

117
README.md Normal file
View File

@@ -0,0 +1,117 @@
# Fish Installer Script
Automates installation and setup of the [Fish shell](https://fishshell.com/), the [Fisher](https://github.com/jorgebucaran/fisher) plugin manager, and a curated set of plugins.
The script detects your OS/package manager, installs Fish (if needed), ensures Fisher is present, installs/updates plugins, and can optionally set Fish as your default shell.
---
## Features
- **OS detection** for common package managers (`apt`, `dnf`, `pacman`, `zypper`, `brew`).
- **Installs Fish** if missing; skips if already installed.
- **Installs Fisher** if missing; skips if already installed.
- **Installs/updates plugins** (listed below).
- **Optional update checks** for Fish and plugins.
- **Optional default shell change** via final prompt.
---
## Supported Platforms (via package manager)
- Debian/Ubuntu and derivatives — `apt`
- Fedora — `dnf`
- Arch/Manjaro — `pacman`
- openSUSE — `zypper`
- macOS — `brew` (requires Homebrew pre-installed)
> If your distro isnt listed, you can still run Fish/Fisher manually, then re-run the installer for plugin setup.
---
## Requirements
- Internet connectivity
- `curl` or `wget`
- `sudo` privileges for package installation
---
## Quick Start
Run directly from your repository (replace URL with your host/path):
curl -fsSL https://your-domain-or-gitea-instance/fish_install/raw/branch/main/fish_installer.sh | bash
The script will:
1. Detect your OS and package manager.
2. Install Fish (if absent).
3. Install Fisher (if absent).
4. Install/update the configured plugins.
5. Prompt to set Fish as your default shell.
----------
## Plugins Installed
- **Fisher (manager):** [https://github.com/jorgebucaran/fisher](https://github.com/jorgebucaran/fisher)
- **nvm.fish (Node versions):** [https://github.com/jorgebucaran/nvm.fish](https://github.com/jorgebucaran/nvm.fish)
- **fzf.fish (fuzzy finder integration):** [https://github.com/PatrickF1/fzf.fish](https://github.com/PatrickF1/fzf.fish)
- **tide (prompt/theme):** [https://github.com/IlanCosman/tide](https://github.com/IlanCosman/tide)
- **fish-abbreviation-tips:** [https://github.com/meaningful-ooo/fish-abbreviation-tips](https://github.com/meaningful-ooo/fish-abbreviation-tips)
> You can customize the plugin list by editing the array/list inside the script before running it.
----------
## Typical Output (abridged)
✓ Detected debian (apt)
✓ Fish already installed
• Checking Fish updates…
✓ Skipped update check
✓ Fisher already present
✓ All requested plugins already installed
? Set Fish as your default shell now? (y/N)
## Troubleshooting
- **Command not found (curl/wget):** Install `curl` or `wget` with your package manager.
- **Permission denied:** Re-run with a user that has `sudo` privileges.
- **Terminal still using old shell:** Log out/in or run `chsh -s /usr/bin/fish` (path may vary; the script offers to do this).
----------
## Useful Links
- **Fish Shell:** https://fishshell.com/
- **Fisher:** [https://github.com/jorgebucaran/fisher](https://github.com/jorgebucaran/fisher)
- **nvm.fish:** [https://github.com/jorgebucaran/nvm.fish](https://github.com/jorgebucaran/nvm.fish)
- **fzf.fish:** [https://github.com/PatrickF1/fzf.fish](https://github.com/PatrickF1/fzf.fish)
- **Tide Prompt:** [https://github.com/IlanCosman/tide](https://github.com/IlanCosman/tide)
- **Fish Abbreviation Tips:** [https://github.com/meaningful-ooo/fish-abbreviation-tips](https://github.com/meaningful-ooo/fish-abbreviation-tips)
----------
## License
MIT License — You are free to use, modify, and distribute this script.