Merge branch 'main' of https://github.com/ChrisTitusTech/linutil
This commit is contained in:
@@ -1,179 +1,42 @@
|
||||
#!/bin/sh
|
||||
|
||||
. ../common-script.sh
|
||||
. ../common-service-script.sh
|
||||
. ../../common-script.sh
|
||||
. ../../common-service-script.sh
|
||||
|
||||
setupDWM() {
|
||||
install_dwm_titus() {
|
||||
printf "%b\n" "${YELLOW}Installing DWM-Titus...${RC}"
|
||||
case "$PACKAGER" in # Install pre-Requisites
|
||||
pacman)
|
||||
"$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm base-devel libx11 libxinerama libxft imlib2 libxcb git unzip flameshot nwg-look feh mate-polkit alsa-utils ghostty rofi xclip xarchiver thunar tumbler tldr gvfs thunar-archive-plugin dunst dex xscreensaver xorg-xprop xorg-xrandr xorg-xsetroot xorg-xset polybar picom xdg-user-dirs xdg-desktop-portal-gtk pipewire pavucontrol gnome-keyring flatpak networkmanager network-manager-applet noto-fonts-emoji
|
||||
;;
|
||||
*)
|
||||
printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
makeDWM() {
|
||||
|
||||
DWM_DIR="$HOME/.local/share/dwm-titus"
|
||||
|
||||
# Create directory if needed
|
||||
[ ! -d "$HOME/.local/share" ] && mkdir -p "$HOME/.local/share/"
|
||||
if [ ! -d "$HOME/.local/share/dwm-titus" ]; then
|
||||
printf "%b\n" "${YELLOW}DWM-Titus not found, cloning repository...${RC}"
|
||||
cd "$HOME/.local/share/" && git clone https://github.com/ChrisTitusTech/dwm-titus.git # CD to Home directory to install dwm-titus This path can be changed (e.g. to linux-toolbox directory)
|
||||
cd dwm-titus/ # Hardcoded path, maybe not the best.
|
||||
else
|
||||
printf "%b\n" "${GREEN}DWM-Titus directory already exists, replacing..${RC}"
|
||||
cd "$HOME/.local/share/dwm-titus" && git pull
|
||||
fi
|
||||
"$ESCALATION_TOOL" make clean install # Run make clean install
|
||||
}
|
||||
|
||||
install_nerd_font() {
|
||||
# Check to see if the MesloLGS Nerd Font is installed (Change this to whatever font you would like)
|
||||
FONT_NAME="MesloLGS Nerd Font Mono"
|
||||
FONT_DIR="$HOME/.local/share/fonts"
|
||||
FONT_URL="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/Meslo.zip"
|
||||
FONT_INSTALLED=$(fc-list | grep -i "Meslo")
|
||||
|
||||
if [ -n "$FONT_INSTALLED" ]; then
|
||||
printf "%b\n" "${GREEN}Meslo Nerd-fonts are already installed.${RC}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
printf "%b\n" "${YELLOW}Installing Meslo Nerd-fonts${RC}"
|
||||
|
||||
# Create the fonts directory if it doesn't exist
|
||||
if [ ! -d "$FONT_DIR" ]; then
|
||||
mkdir -p "$FONT_DIR" || {
|
||||
printf "%b\n" "${RED}Failed to create directory: $FONT_DIR${RC}"
|
||||
|
||||
# Clone or update dwm-titus repository
|
||||
if [ ! -d "$DWM_DIR" ]; then
|
||||
printf "%b\n" "${YELLOW}Cloning dwm-titus repository...${RC}"
|
||||
git clone https://github.com/ChrisTitusTech/dwm-titus.git "$DWM_DIR" || {
|
||||
printf "%b\n" "${RED}Failed to clone dwm-titus${RC}"
|
||||
return 1
|
||||
}
|
||||
fi
|
||||
printf "%b\n" "${YELLOW}Installing font '$FONT_NAME'${RC}"
|
||||
# Change this URL to correspond with the correct font
|
||||
FONT_URL="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/Meslo.zip"
|
||||
FONT_DIR="$HOME/.local/share/fonts"
|
||||
TEMP_DIR=$(mktemp -d)
|
||||
curl -sSLo "$TEMP_DIR"/"${FONT_NAME}".zip "$FONT_URL"
|
||||
unzip "$TEMP_DIR"/"${FONT_NAME}".zip -d "$TEMP_DIR"
|
||||
mkdir -p "$FONT_DIR"/"$FONT_NAME"
|
||||
mv "${TEMP_DIR}"/*.ttf "$FONT_DIR"/"$FONT_NAME"
|
||||
fc-cache -fv
|
||||
rm -rf "${TEMP_DIR}"
|
||||
printf "%b\n" "${GREEN}'$FONT_NAME' installed successfully.${RC}"
|
||||
}
|
||||
|
||||
clone_config_folders() {
|
||||
# Ensure the target directory exists
|
||||
[ ! -d ~/.config ] && mkdir -p ~/.config
|
||||
[ ! -d ~/.local/bin ] && mkdir -p ~/.local/bin
|
||||
# Copy scripts to local bin
|
||||
cp -rf "$HOME/.local/share/dwm-titus/scripts/." "$HOME/.local/bin/"
|
||||
|
||||
# Install Polybar icon fonts (MaterialIcons, Feather)
|
||||
FONT_DIR="$HOME/.local/share/fonts"
|
||||
mkdir -p "$FONT_DIR"
|
||||
if [ -d "$HOME/.local/share/dwm-titus/polybar/fonts" ]; then
|
||||
cp -r "$HOME/.local/share/dwm-titus/polybar/fonts/"* "$FONT_DIR/"
|
||||
fc-cache -fv
|
||||
printf "%b\n" "${GREEN}Polybar icon fonts installed${RC}"
|
||||
fi
|
||||
|
||||
# Iterate over all directories in config/*
|
||||
for dir in config/*/; do
|
||||
# Extract the directory name
|
||||
dir_name=$(basename "$dir")
|
||||
|
||||
# Clone the directory to ~/.config/
|
||||
if [ -d "$dir" ]; then
|
||||
cp -r "$dir" ~/.config/
|
||||
printf "%b\n" "${GREEN}Cloned $dir_name to ~/.config/${RC}"
|
||||
else
|
||||
printf "%b\n" "${YELLOW}Updating dwm-titus repository...${RC}"
|
||||
if cd "$DWM_DIR" && git pull; then
|
||||
:
|
||||
else
|
||||
printf "%b\n" "${RED}Directory $dir_name does not exist, skipping${RC}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
configure_backgrounds() {
|
||||
# Set the variable PIC_DIR which stores the path for images
|
||||
PIC_DIR="$HOME/Pictures"
|
||||
|
||||
# Set the variable BG_DIR to the path where backgrounds will be stored
|
||||
BG_DIR="$PIC_DIR/backgrounds"
|
||||
|
||||
# Check if the ~/Pictures directory exists
|
||||
if [ ! -d "$PIC_DIR" ]; then
|
||||
# If it doesn't exist, print an error message and return with a status of 1 (indicating failure)
|
||||
printf "%b\n" "${RED}Pictures directory does not exist${RC}"
|
||||
mkdir ~/Pictures
|
||||
printf "%b\n" "${GREEN}Directory was created in Home folder${RC}"
|
||||
fi
|
||||
|
||||
# Check if the backgrounds directory (BG_DIR) exists
|
||||
if [ ! -d "$BG_DIR" ]; then
|
||||
# If the backgrounds directory doesn't exist, attempt to clone a repository containing backgrounds
|
||||
if ! git clone https://github.com/ChrisTitusTech/nord-background.git "$PIC_DIR/backgrounds"; then
|
||||
# If the git clone command fails, print an error message and return with a status of 1
|
||||
printf "%b\n" "${RED}Failed to clone the repository${RC}"
|
||||
printf "%b\n" "${RED}Failed to update dwm-titus${RC}"
|
||||
return 1
|
||||
fi
|
||||
# Print a success message indicating that the backgrounds have been downloaded
|
||||
printf "%b\n" "${GREEN}Downloaded desktop backgrounds to $BG_DIR${RC}"
|
||||
else
|
||||
# If the backgrounds directory already exists, print a message indicating that the download is being skipped
|
||||
printf "%b\n" "${GREEN}Path $BG_DIR exists for desktop backgrounds, skipping download of backgrounds${RC}"
|
||||
fi
|
||||
}
|
||||
|
||||
setupDisplayManager() {
|
||||
printf "%b\n" "${YELLOW}Setting up Xorg${RC}"
|
||||
case "$PACKAGER" in
|
||||
pacman)
|
||||
"$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm xorg-xinit xorg-server
|
||||
;;
|
||||
*)
|
||||
printf "%b\n" "${RED}Unsupported package manager: $PACKAGER${RC}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
printf "%b\n" "${GREEN}Xorg installed successfully${RC}"
|
||||
printf "%b\n" "${YELLOW}Setting up Display Manager${RC}"
|
||||
currentdm="none"
|
||||
for dm in gdm sddm lightdm; do
|
||||
if command -v "$dm" >/dev/null 2>&1 || isServiceActive "$dm"; then
|
||||
currentdm="$dm"
|
||||
break
|
||||
fi
|
||||
done
|
||||
printf "%b\n" "${GREEN}Display Manager Setup: $currentdm${RC}"
|
||||
if [ "$currentdm" = "none" ]; then
|
||||
printf "%b\n" "${YELLOW}--------------------------${RC}"
|
||||
DM="sddm"
|
||||
case "$PACKAGER" in
|
||||
pacman)
|
||||
"$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm "$DM"
|
||||
if [ "$DM" = "lightdm" ]; then
|
||||
"$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm lightdm-gtk-greeter
|
||||
elif [ "$DM" = "sddm" ]; then
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/keyitdev/sddm-astronaut-theme/master/setup.sh)"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
printf "%b\n" "${RED}Unsupported package manager: $PACKAGER${RC}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
printf "%b\n" "${GREEN}$DM installed successfully${RC}"
|
||||
enableService "$DM"
|
||||
|
||||
fi
|
||||
|
||||
# Run the upstream install script
|
||||
printf "%b\n" "${YELLOW}Running dwm-titus installer...${RC}"
|
||||
bash "$DWM_DIR/install.sh" || {
|
||||
printf "%b\n" "${RED}dwm-titus installation failed${RC}"
|
||||
return 1
|
||||
}
|
||||
|
||||
printf "%b\n" "${GREEN}DWM-Titus installation complete${RC}"
|
||||
}
|
||||
|
||||
checkEnv
|
||||
setupDisplayManager
|
||||
setupDWM
|
||||
makeDWM
|
||||
install_nerd_font
|
||||
clone_config_folders
|
||||
configure_backgrounds
|
||||
install_dwm_titus
|
||||
|
||||
Reference in New Issue
Block a user