# Fishing Tackle - My Fish Installer Script I created (supported by ChatGPT) this script to automate the 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. A simple one liner does all the heavy lifting and is perfect for setting up a new terminal enviroment. --- ## 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 isn’t 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.