From 08baf32f2c7123878913f705af1012ffd241ccf9 Mon Sep 17 00:00:00 2001 From: Ade Thompson Date: Sat, 9 Aug 2025 20:55:28 +0100 Subject: [PATCH] Initial Commit --- README | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 117 insertions(+), 2 deletions(-) diff --git a/README b/README index 0fca3d0..6acde7e 100644 --- a/README +++ b/README @@ -1,2 +1,117 @@ -** This is another test ** -this is a test \ No newline at end of file +# 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 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. \ No newline at end of file