fixed a lot of stuff

This commit is contained in:
Honney
2026-06-23 00:23:16 +02:00
parent 74f4b9b1be
commit 6591f6b020
24 changed files with 626 additions and 455 deletions
Executable
+84
View File
@@ -0,0 +1,84 @@
#!/usr/bin/env bash
set -euo pipefail
detect_pkg_manager() {
if command -v apt &>/dev/null; then
echo "apt"
elif command -v dnf &>/dev/null; then
echo "dnf"
elif command -v pacman &>/dev/null; then
echo "pacman"
elif command -v zypper &>/dev/null; then
echo "zypper"
else
echo "unknown"
fi
}
install_fish() {
local pm
pm=$(detect_pkg_manager)
case "$pm" in
apt)
sudo apt update && sudo apt install -y fish
;;
dnf)
sudo dnf install -y fish
;;
pacman)
sudo pacman -S --noconfirm fish
;;
zypper)
sudo zypper install -y fish
;;
*)
echo "No supported package manager found. Please install fish manually: https://fishshell.com"
exit 1
;;
esac
}
install_omf() {
if [ ! -d "$HOME/.local/share/omf" ]; then
echo "Installing Oh My Fish..."
curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install > install
fish install --path=~/.local/share/omf --config=~/.config/omf
else
echo "Oh My Fish already installed."
fi
}
install_bobthefish() {
if command -v fish &>/dev/null && [ -f "$HOME/.local/share/omf/init.fish" ]; then
echo "Installing bobthefish theme..."
fish -c 'omf install bobthefish'
fi
}
set_default_shell() {
local fish_path
fish_path=$(command -v fish)
if [ "$SHELL" != "$fish_path" ]; then
echo "Setting default shell to fish..."
if grep -q "^$USER:" /etc/passwd 2>/dev/null; then
chsh -s "$fish_path"
else
echo "Run this manually: chsh -s $fish_path"
fi
else
echo "Fish is already your default shell."
fi
}
main() {
install_fish
install_omf
install_bobthefish
set_default_shell
echo
echo "=== Installation complete ==="
echo "Log out and back in, or run: exec fish"
}
main