mirror of
https://github.com/pratiktri/dotfiles.git
synced 2026-02-04 08:41:43 +05:30
fix(install): OS install fixes
- Do NOT start zsh & nvim at end - Do NOT install flatpaks by default: they are extremely bulky - Use different OS setup for Debian and Ubuntu - Configure repos for Ulauncher & dotnet
This commit is contained in:
@@ -10,7 +10,7 @@ input_file_check() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
install_brew() {
|
install_brew() {
|
||||||
if ! command -v brew > /dev/null 2>&1; then
|
if ! command -v brew >/dev/null 2>&1; then
|
||||||
yes | NONINTERACTIVE=1 bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
yes | NONINTERACTIVE=1 bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||||
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
||||||
fi
|
fi
|
||||||
@@ -32,17 +32,17 @@ install_brew_packages() {
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
# Check if the package exists in the Homebrew repository
|
# Check if the package exists in the Homebrew repository
|
||||||
if brew search "$brew_package" 2> /dev/null | grep -q "$brew_package"; then
|
if brew search "$brew_package" 2>/dev/null | grep -q "$brew_package"; then
|
||||||
echo "Available: $brew_package"
|
echo "Available: $brew_package"
|
||||||
found_packages="$found_packages $brew_package"
|
found_packages="$found_packages $brew_package"
|
||||||
else
|
else
|
||||||
not_found_packages="$not_found_packages $brew_package"
|
not_found_packages="$not_found_packages $brew_package"
|
||||||
echo "Unavailable: $brew_package"
|
echo "Unavailable: $brew_package"
|
||||||
fi
|
fi
|
||||||
done < "$BREW_PACKAGE_FILE"
|
done <"$BREW_PACKAGE_FILE"
|
||||||
|
|
||||||
# Install available brew packages
|
# Install available brew packages
|
||||||
if ! brew install $found_packages; then
|
if ! brew install "$found_packages"; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ setup() {
|
|||||||
OS_PKG_CHECK_COMMAND=""
|
OS_PKG_CHECK_COMMAND=""
|
||||||
|
|
||||||
# Detect package manager and set package manager commands
|
# Detect package manager and set package manager commands
|
||||||
if command -v apt-get > /dev/null 2>&1; then
|
if command -v apt-get >/dev/null 2>&1; then
|
||||||
OS_INSTALL_COMMAND="apt-get install -y"
|
OS_INSTALL_COMMAND="apt-get install -y"
|
||||||
OS_PKG_CHECK_COMMAND="apt-cache show"
|
OS_PKG_CHECK_COMMAND="apt-cache show"
|
||||||
|
|
||||||
apt_setup
|
apt_setup
|
||||||
elif command -v dnf > /dev/null 2>&1; then
|
elif command -v dnf >/dev/null 2>&1; then
|
||||||
OS_INSTALL_COMMAND="dnf install -y --allowerasing --skip-broken"
|
OS_INSTALL_COMMAND="dnf install -y --allowerasing --skip-broken"
|
||||||
OS_PKG_CHECK_COMMAND="dnf list available"
|
OS_PKG_CHECK_COMMAND="dnf list available"
|
||||||
|
|
||||||
@@ -25,17 +25,17 @@ setup() {
|
|||||||
|
|
||||||
dnf_setup() {
|
dnf_setup() {
|
||||||
# Faster dnf installs
|
# Faster dnf installs
|
||||||
echo "fastestmirror=True" | sudo tee -a /etc/dnf/dnf.conf > /dev/null
|
echo "fastestmirror=True" | sudo tee -a /etc/dnf/dnf.conf >/dev/null
|
||||||
echo "max_parallel_downloads=10" | sudo tee -a /etc/dnf/dnf.conf > /dev/null
|
echo "max_parallel_downloads=10" | sudo tee -a /etc/dnf/dnf.conf >/dev/null
|
||||||
echo "defaultYes=True" | sudo tee -a /etc/dnf/dnf.conf > /dev/null
|
echo "defaultYes=True" | sudo tee -a /etc/dnf/dnf.conf >/dev/null
|
||||||
echo "keepcache=True" | sudo tee -a /etc/dnf/dnf.conf > /dev/null
|
echo "keepcache=True" | sudo tee -a /etc/dnf/dnf.conf >/dev/null
|
||||||
|
|
||||||
# Enable RPM Fusion & Install media codecs
|
# Enable RPM Fusion & Install media codecs
|
||||||
sudo dnf install -y https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-"$(rpm -E %fedora)".noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-"$(rpm -E %fedora)".noarch.rpm && sudo dnf groupupdate -y core multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin sound-and-video && sudo dnf makecache
|
sudo dnf install -y https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-"$(rpm -E %fedora)".noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-"$(rpm -E %fedora)".noarch.rpm && sudo dnf groupupdate -y core multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin sound-and-video && sudo dnf makecache
|
||||||
|
|
||||||
# Add VS-Code repo
|
# Add VS-Code repo
|
||||||
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
|
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
|
||||||
printf "%s\n%s\n%s\n%s\n%s\n%s\n" "[code]" "name=Visual Studio Code" "baseurl=https://packages.microsoft.com/yumrepos/vscode" "enabled=1" "gpgcheck=1" "gpgkey=https://packages.microsoft/com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/vscode.repo > /dev/null
|
printf "%s\n%s\n%s\n%s\n%s\n%s\n" "[code]" "name=Visual Studio Code" "baseurl=https://packages.microsoft.com/yumrepos/vscode" "enabled=1" "gpgcheck=1" "gpgkey=https://packages.microsoft/com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/vscode.repo >/dev/null
|
||||||
|
|
||||||
# Install development Tools
|
# Install development Tools
|
||||||
sudo yum groupinstall -y "Development Tools" && yum install readline readline-devel -y
|
sudo yum groupinstall -y "Development Tools" && yum install readline readline-devel -y
|
||||||
@@ -47,14 +47,42 @@ dnf_setup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
apt_setup() {
|
apt_setup() {
|
||||||
|
# We are Debian or Ubuntu
|
||||||
|
[ -f /etc/os-release ] && . /etc/os-release
|
||||||
|
|
||||||
sudo apt-get update && sudo apt-get upgrade -y
|
sudo apt-get update && sudo apt-get upgrade -y
|
||||||
|
|
||||||
# Add VS-Code repo
|
# Add VS-Code repo
|
||||||
sudo apt-get install -y wget gpg
|
sudo apt-get install -y wget gpg
|
||||||
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
|
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor >packages.microsoft.gpg
|
||||||
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
|
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
|
||||||
echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null
|
echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list >/dev/null
|
||||||
rm -f packages.microsoft.gpg && sudo apt-get update
|
rm -f packages.microsoft.gpg
|
||||||
|
|
||||||
|
if [ "$ID" = "debian" ]; then
|
||||||
|
debian_setup
|
||||||
|
else
|
||||||
|
ubuntu_setup
|
||||||
|
fi
|
||||||
|
|
||||||
|
sudo apt-get update
|
||||||
|
}
|
||||||
|
|
||||||
|
debian_setup() {
|
||||||
|
# Add Ulauncher repo
|
||||||
|
sudo apt update && sudo apt install -y gnupg
|
||||||
|
sudo gpg --keyserver keyserver.ubuntu.com --recv 0xfaf1020699503176 && sudo gpg --export 0xfaf1020699503176 | sudo tee /usr/share/keyrings/ulauncher-archive-keyring.gpg >/dev/null
|
||||||
|
echo "deb [signed-by=/usr/share/keyrings/ulauncher-archive-keyring.gpg] \
|
||||||
|
http://ppa.launchpad.net/agornostal/ulauncher-dev/ubuntu jammy main" |
|
||||||
|
sudo tee /etc/apt/sources.list.d/ulauncher-dev-jammy.list
|
||||||
|
}
|
||||||
|
|
||||||
|
ubuntu_setup() {
|
||||||
|
# Add Ulauncher repo
|
||||||
|
sudo add-apt-repository universe -y && sudo add-apt-repository ppa:agornostal/ulauncher -y
|
||||||
|
|
||||||
|
# Add dotnet ppa
|
||||||
|
sudo add-apt-repository ppa:dotnet/backports
|
||||||
}
|
}
|
||||||
|
|
||||||
input_file_check() {
|
input_file_check() {
|
||||||
@@ -79,14 +107,14 @@ install_os_packages() {
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
# Check if the package exists in the APT repository
|
# Check if the package exists in the APT repository
|
||||||
if eval "$OS_PKG_CHECK_COMMAND" "$os_package" 2> /dev/null | grep -q "$os_package"; then
|
if eval "$OS_PKG_CHECK_COMMAND" "$os_package" 2>/dev/null | grep -q "$os_package"; then
|
||||||
echo "Available: $os_package"
|
echo "Available: $os_package"
|
||||||
os_found_packages="$os_found_packages $os_package"
|
os_found_packages="$os_found_packages $os_package"
|
||||||
else
|
else
|
||||||
echo "Unavailable: $os_package"
|
echo "Unavailable: $os_package"
|
||||||
os_not_found_packages="$os_not_found_packages $os_package"
|
os_not_found_packages="$os_not_found_packages $os_package"
|
||||||
fi
|
fi
|
||||||
done < "$OS_PACKAGE_FILE"
|
done <"$OS_PACKAGE_FILE"
|
||||||
|
|
||||||
# Install available packages
|
# Install available packages
|
||||||
if ! eval sudo "$OS_INSTALL_COMMAND" "$os_found_packages"; then
|
if ! eval sudo "$OS_INSTALL_COMMAND" "$os_found_packages"; then
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
# TODO: Things that did not work
|
# TODO: Things that did not work
|
||||||
# - Shortcuts: Maximize current window with [Windows + space] didn't
|
|
||||||
# - NEOVIM: Lazy did not download automatically
|
|
||||||
# - dotfiles: could NOT link it to aliases_personal
|
# - dotfiles: could NOT link it to aliases_personal
|
||||||
|
|
||||||
# NOTE: should download dotfiles repo to ~ and NOT to ~/Downloads - since we are going to link Downloads
|
# NOTE: should download dotfiles repo to ~ and NOT to ~/Downloads - since we are going to link Downloads
|
||||||
@@ -15,7 +13,7 @@ kitty_term() {
|
|||||||
cp ~/.local/kitty.app/share/applications/kitty-open.desktop ~/.local/share/applications/
|
cp ~/.local/kitty.app/share/applications/kitty-open.desktop ~/.local/share/applications/
|
||||||
sed -i "s|Icon=kitty|Icon=$(readlink -f ~)/.local/kitty.app/share/icons/hicolor/256x256/apps/kitty.png|g" ~/.local/share/applications/kitty*.desktop
|
sed -i "s|Icon=kitty|Icon=$(readlink -f ~)/.local/kitty.app/share/icons/hicolor/256x256/apps/kitty.png|g" ~/.local/share/applications/kitty*.desktop
|
||||||
sed -i "s|Exec=kitty|Exec=$(readlink -f ~)/.local/kitty.app/bin/kitty|g" ~/.local/share/applications/kitty*.desktop
|
sed -i "s|Exec=kitty|Exec=$(readlink -f ~)/.local/kitty.app/bin/kitty|g" ~/.local/share/applications/kitty*.desktop
|
||||||
echo 'kitty.desktop' > ~/.config/xdg-terminals.list
|
echo 'kitty.desktop' >~/.config/xdg-terminals.list
|
||||||
}
|
}
|
||||||
|
|
||||||
rustlang() {
|
rustlang() {
|
||||||
@@ -42,8 +40,6 @@ post_install() {
|
|||||||
rm -rf ~/.cache
|
rm -rf ~/.cache
|
||||||
|
|
||||||
up
|
up
|
||||||
zsh
|
|
||||||
nvim
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pre_install() {
|
pre_install() {
|
||||||
@@ -64,7 +60,7 @@ main() {
|
|||||||
|
|
||||||
./install-os-packages.sh
|
./install-os-packages.sh
|
||||||
./install-brew-packages.sh
|
./install-brew-packages.sh
|
||||||
./install-flatpak-packages.sh
|
# ./install-flatpak-packages.sh
|
||||||
|
|
||||||
manual_installs
|
manual_installs
|
||||||
post_install
|
post_install
|
||||||
|
|||||||
Reference in New Issue
Block a user