122 lines
3.9 KiB
Markdown
122 lines
3.9 KiB
Markdown
# 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/fishing_tackle/raw/branch/main/cast.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. |