linux-scripts/debian.sh
billypom on debian 30f9fed77a update
2025-06-28 13:08:06 -04:00

151 lines
4.8 KiB
Bash
Executable File

#!/bin/bash
fg_black="$(tput setaf 0)"
fg_red="$(tput setaf 1)"
fg_green="$(tput setaf 2)"
fg_yellow="$(tput setaf 3)"
fg_blue="$(tput setaf 4)"
fg_magenta="$(tput setaf 5)"
fg_cyan="$(tput setaf 6)"
fg_white="$(tput setaf 7)"
reset="$(tput sgr0)"
scriptdir=$PWD
# colored text
cecho() {
local text="$1"
local color="$2"
# Ensure the color variable exists and is valid
if [[ -z "$color" || -z "${!color}" ]]; then
echo "Error: Invalid color variable"
return 1
fi
local fg_color="${!color}"
# Print the colored string
echo -e "${fg_color}${text}${reset}"
}
confirm() {
# call with a prompt string or use a default
read -r -p "${fg_yellow}${1:-Are you sure? [y/N]}${reset} " response
case "$response" in
[yY][eE][sS]|[yY])
true
;;
*)
false
;;
esac
}
check_dir_exists() {
dir=$1
if [ -d dir ]; then
return 1 # Dir exists
else
return 0 # Dir does not exist
fi
}
is_macbook=false
is_server=true
install_themes=false
install_nerdfonts=false
install_neovim=false
install_dotfiles=false
install_gnome_configs=false
include_debian_backports=false
echo "${fg_blue}"
cat ascii.txt
echo "${reset}"
cecho "----debian install script-----" fg_cyan
confirm "Is this a server? (Y/N)" && is_server=true
# confirm "Include debian backports in apt package manager? (Y/N)" && include_debian_backports=true
confirm "Swap Left Super & Left Control <for mac keyboard> (Y/N)" && is_macbook=true
if $is_server; then
echo ":3"
else
if echo $DESKTOP_SESSION | grep -q "gnome"; then
confirm "Install gnome extensions, tweaks, and configs? (Y/N)" && install_gnome_configs=true
confirm "Install GTK themes? (Y/N)" && install_themes=true
fi
fi
confirm "Install Nerd Fonts? (Y/N)" && install_nerdfonts=true
confirm "Install billypom dotfiles? - includes .bash_aliases file, tmux, kitty, and nvim configs (Y/N)" && install_dotfiles=true
confirm "Install Neovim? (Y/N)" && install_neovim=true
cecho "Updating package manager" fg_cyan
sudo apt update
cecho "Purging yucky packages" fg_cyan
sudo apt purge nano evolution nautilus
cecho "Installing yummy packages" fg_cyan
if $is_server; then
sudo apt install vim git cifs-utils nfs-common ripgrep stow virtualenv wget zip unzip kitty python3-pip ncdu tldr htop
else
sudo apt install vim git cifs-utils nfs-common ripgrep stow virtualenv wget zip unzip kitty python3-pip ncdu tldr htop libfuse-dev nemo
fi
# themes
if $is_server; then
echo ":3"
else
if $install_themes; then
# user theme directory
cecho "Installing themes" fg_cyan
mkdir -p ~/.themes
bash options/lavanda-gtk-theme.sh
bash options/kora-gtk-icons.sh
bash options/tokyonight-gtk-theme.sh
fi
fi
if $is_server; then
echo ":3"
else
# wayland specific packages
if echo $XDG_SESSION_TYPE | grep -q "wayland"; then
cecho "Installing wayland specific packages" fg_cyan
sudo apt install -y wl-clipboard
fi
# gnome specific packages
if echo $DESKTOP_SESSION | grep -q "gnome" && $install_gnome_configs; then
bash options/gnome-configs.sh
fi
fi
# nerdfonts
if $install_nerdfonts; then
cecho "Installing nerdfonts" fg_cyan
bash options/nerdfonts.sh
fi
# set default file manager
xdg-mime default nemo.desktop inode/directory
# install neovim
if $install_neovim; then
cecho "Installing neovim" fg_cyan
bash options/neovim.sh
fi
# install my dotfiles
if $install_dotfiles; then
cecho "Installing billypom dotfiles" fg_cyan
bash options/dotfiles.sh
fi
# apt repositories setup
# this wont work because of permissions...hmmm
# if ! grep -q "deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware" /etc/apt/sources.list; then echo "deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware" >> /etc/apt/sources.list; fi
#
# if ! grep -q "deb-src http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware" /etc/apt/sources.list; then echo "deb-src http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware" >> /etc/apt/sources.list; fi
# if $include_debian_backports; then
# if ! grep -q "deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware" /etc/apt/sources.list; then echo "deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware" >> /etc/apt/sources.list; fi
#
# if ! grep -q "deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware" /etc/apt/sources.list; then echo "deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware" >> /etc/apt/sources.list; fi
# fi
echo "\e[0;32m--- debian install script finished running ---\e[0m"