dotfiles/init/fedora.sh

152 lines
5.3 KiB
Bash
Executable File

#!/bin/sh
# Hostname that should be set
HOST="martha"
# dnf packages that should be installed
FEDORA_PKG="zsh rsync tmux mosh htop hugo gnome-tweaks firefox thunderbird elementary-planner codium newsflash calibre adobe-source-code-pro-fonts fira-code-fonts zeal sequeler gitg deja-dup deja-dup-nautilus vim-enhanced marker ImageMagick nodejs npm util-linux-user nextcloud-client nextcloud-client-nautilus gnome-extensions-app papirus-icon-theme libreoffice-icon-theme-papirus vlc libappindicator libappindicator-gtk3 broadcom-wl portfolio-performance"
FEDORA_FLAT="com.spotify.client girens noson"
FEDORA_PIP="gnome-extensions-cli"
FEDORA_COPR="lray/PortfolioPerformance"
GNOME_SHELL_EXTENSIONS="appindicatorsupport@rgcjonas.gmail.com auto-move-windows@gnome-shell-extensions.gcampax.github.com blyr@yozoon.dev.gmail.com caffeine@patapon.info dash-to-dock@micxgx.gmail.com Hide_Activities@shay.shayel.org Move_Clock@rmy.pobox.com native-window-placement@gnome-shell-extensions.gcampax.github.com netspeed@hedayaty.gmail.com nightthemeswitcher@romainvigier.fr panel-osd@berend.de.schouwer.gmail.com remove-dropdown-arrows@mpdeimos.com status-area-horizontal-spacing@mathematical.coffee.gmail.com steal-my-focus@kagesenshi.org user-theme@gnome-shell-extensions.gcampax.github.com"
# NPM packes that should be installed
NPM_PKG="nativefier typescript"
# Which App to use at default etxt editor (instead of gEdit)
DEFAULT_EDITOR="codium.desktop"
DEFAULT_EDITOR_FILETYPES="public.plain-text public.unix-executable public.data .zsh)"
## Get username
USER=`whoami`
## Ask for the administrator password upfront
sudo -v
## Set hostname
echo ">>> Setting hostname"
sudo hostnamectl set-hostname ${HOST}
echo ">>> Adding repos"
## Add RPM Fusion repos
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
## Add VSCodium repo
sudo rpm --import https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg
printf "[gitlab.com_paulcarroty_vscodium_repo]\nname=gitlab.com_paulcarroty_vscodium_repo\nbaseurl=https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/rpms/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg" |sudo tee -a /etc/yum.repos.d/vscodium.repo
## Add copr repos
echo ">>> Adding copr repos"
if [ ! -z "${FEDORA_COPR}" ]; then
for copr in ${FEDORA_COPR}; do
sudo dnf copr enable ${copr} -y
done
fi
## Add flatpak repos
echo ">>> Adding flatpak repos"
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
## Update repos
echo ">>> Updating repos"
sudo dnf upgrade -y
## Update installed flatpaks
echo ">>> Updating flatpaks"
flatpak update
## Install packages
if [ ! -z "${FEDORA_PKG}" ]; then
echo ">>> Installing packages"
sudo dnf install ${FEDORA_PKG} -y
fi
## Install flatpaks
if [ ! -z "${FEDORA_FLAT}" ]; then
echo ">>> Installing flatpaks"
flatpak install ${FEDORA_FLAT} -y
fi
## Install npm packages
if [ ! -z "${NPM_PKG}" ]; then
echo ">>> Setting up npm"
mkdir "${HOME}/.npm-packages"
npm config set prefix "${HOME}/.npm-packages"
echo ">>> Installing NPM packages"
npm install -g ${NPM_PKG}
PATH="${PATH}:${HOME}/.npm-packages/bin"
fi
## Install pip packages
if [ ! -z "${FEDORA_PIP}" ]; then
echo ">>> Installing PIP packages"
pip install --user ${FEDORA_PIP}
fi
## Apply GNOME settings
if [ -f "gsettings.lst" ]; then
echo ">>> Applying GNOME settings"
cat gsettings.lst | while read line; do
schema=$(echo $line | cut -f1 -d' ')
key=$(echo $line | cut -f2 -d' ')
value=$(echo $line | cut -f3- -d' ')
echo $schema "$key => $value"
# commented out for dry-run:
gsettings set ${schema} ${key} "${value}"
done
fi
## Install Nord theme for gnome-terminal
echo ">>> Installing Nord theme for gnome-terminal"
git clone https://github.com/arcticicestudio/nord-gnome-terminal.git /tmp/gnome-terminal
cd /tmp/gnome-terminal/src
./nord.sh
## Install pop_shell
echo ">>> Installing pop_shell"
git clone https://github.com/pop-os/shell.git /tmp/pop_shell
cd /tmp/pop_shell
touch .confirm_shortcut_change
## No need to restart gnome-shell at this point
sed -e '/^make restart-shell/s/^/#/' -i ./rebuild.sh
sed -e '/^make listen/s/^/#/' -i ./rebuild.sh
./rebuild.sh
## Install workspace-switcher
echo ">>> Installing workspace-switcher"
git clone https://github.com/tomha/gnome-shell-extension-workspace-switcher ${HOME}/.local/share/gnome-shell/extensions/workspace-switcher@tomha.github.com
gnome-extensions enable workspace-switcher@tomha.github.com
# Install gnome-shell extensions
echo ">>> Installing gnome-shell extensions"
${HOME}/.local/bin/gnome-extensions-cli install ${GNOME_SHELL_EXTENSIONS}
## Install VSCodium extensions
echo ">>> Install VSCodium extensions"
cat ${HOME}/.config/VSCodium/User/extensions.list | xargs -L 1 codium --install-extension
echo ">>> Setting VSCodium as default text editor"
xdg-mime default ${DEFAULT_EDITOR} text/plain
for EXT in ${EDITOR_FILETYPES}; do
xdg-mime default ${DEFAULT_EDITOR} ${EXT}
done
## Set zsh as shell
echo ">>> Setting zsh as shell for ${USER}"
sudo chsh -s $(which zsh) ${USER}
## Rebuild kernel extensions
echo ">>> Rebuilding kernel extensions"
sudo akmods
echo ">>> Everything is done. You should reboot now."