Add files via upload

This commit is contained in:
Ja.KooLit 2023-10-26 11:04:37 +09:00 committed by GitHub
commit 1dae915b90
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 1328 additions and 0 deletions

18
CHANGELOGS.md Normal file
View File

@ -0,0 +1,18 @@
## Changelogs
## 30-Sep-2023
- replaced missioncenter with gnome-system-monitor
- added some wallpaper
## 27-Sep-2023
- remove auto start of portal-hyprland-hyprland
- removal of Virtual-1 monitor in Monitors.conf
## 25-Sep-2023
- added grub function to add nvidia_drm.modeset=1 for nvidia-grub users
## 14-Sep-2023
- Bump to v4
- Renamed repo to Hyprland-v4

24
LICENSE.md Normal file
View File

@ -0,0 +1,24 @@
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <https://unlicense.org>

97
README.md Normal file
View File

@ -0,0 +1,97 @@
<div align="center">
# 💌 ** JaKooLit's Arch Hyprland Install Script ** 💌
![GitHub Repo stars](https://img.shields.io/github/stars/JaKooLit/Hyprland-v4?style=for-the-badge&color=cba6f7) ![GitHub last commit](https://img.shields.io/github/last-commit/JaKooLit/Hyprland-v4?style=for-the-badge&color=b4befe) ![GitHub repo size](https://img.shields.io/github/repo-size/JaKooLit/Hyprland-v4?style=for-the-badge&color=cba6f7)
<br/>
</div>
### A re-structured install script of my Hyprland-v3 [`Link`](https://github.com/JaKooLit/Hyprland-v3)
![alt text](https://github.com/JaKooLit/Ja-Hyprland/blob/main/screenshots/Sample-Tokyo-waybar.png "Default")
![alt text](https://github.com/JaKooLit/Ja-Hyprland/blob/main/screenshots/dual-panel-light-dark-switch.png "Default")
### 📷 you can find more screenshots in the screenshots directory
### 📽️ youtube video showcase: [`Youtube Link`](https://youtu.be/otda1nXJ5Dg?si=Wbb8eg-u3Y-tDnDQ)
### ✨ A video walk through my dotfiles[`Link`](https://youtu.be/fO-RBHvVEcc?si=ijqxxnq_DLiyO8xb)
### 🆕 What's new compared to my V3
- restructured Install script
- Can modify the packages easily. (install-scripts/00-hypr-pkgs.sh) edit as desired
- Added Tokyo-night-theme and TokyoNight-SE icons
- using dunst instead of mako
- Added Tokyo-Night SDDM Theme
- Use a wofi-power menu instead of wlogout
- Added the following:
- a. gnome-system-monitor - right click on cpu waybar module
- b. nvtop - right click on temperature waybar module
### 👀 NVidia GPU Owners.
- By default, nvidia-dkms will be installed. and only supports GTX 900 and newer. If required to install older driver, edit the nvidia.sh in scripts-folder
### ✨ to run
> clone this repo by using git. Change directory, make executable and run the script
```bash
git clone https://github.com/JaKooLit/Hyprland-v4.git
cd Hyprland-v4
chmod +x install-v4.sh
./install-v4.sh
```
### ✨ for ZSH and OH-MY-ZSH installation
> do this once installed and script completed; do the following to change the default shell zsh
```bash
chsh -s $(which zsh)
zsh
source ~/.zshrc
```
- reboot or logout
- by default gnzh theme is installed. You can find more themes from this [`OH-MY-ZSH-THEMES`](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes)
- to change the theme, edit ~/.zshrc ZSH_THEME="desired theme"
### 📒 Notes
- super h for launching a small help file
- super e to view / edit settings, monitor, keybinds, Environment Variables, etc
- go through the keybinds. There are alot of hidden features like dual panel, change waybar styles, change wallpaper, etc... its too long to put all in the readme!!!
### 🛣️ Roadmap:
- [ ] Install zsh and oh-my-zsh without necessary steps above
- [ ] possibly adding gruvbox themes, cursors, icons
- [ ] adding vertical waybar
- [X] ~~Use kitty in favor of foot~~ - Dropped the idea of kitty. Kitty is using twice memory compared to foot.
### ⚠️ some known issues
- reports from members of my discord, states that some users of nvidia are getting stuck on sddm login. credit to @Kenni Fix stated was
```
while in sddm press ctrl+alt+F2 or F3
log into your account
`lspci -nn`, find the id of your nvidia card
`ls /dev/dri/by-path` find the matching id
`ls -l /dev/dri/by-path` to check where the symlink points to
)
7. add "env = WLR_DRM_DEVICES,/dev/dri/cardX" to the ENVvariables config (.config/hypr/configs/ENVariables.conf) ; X being where the symlink of the gpu points to
```
- more info from the hyprland wiki [`Hyprland Wiki Link`](https://wiki.hyprland.org/FAQ/#my-external-monitor-is-blank--doesnt-render--receives-no-signal-laptop)
### 👍👍👍 Thanks and Credits!
- shout out to CooSee from Gentoo forums for the nice rainbow borders
## 💖 Support
- a Star on my Github repos would be nice 🌟
- Subscribe to my Youtube Channel [YouTube](https://www.youtube.com/@Ja.KooLit)
- You can also buy me Coffee Through ko-fi.com 🤩
<a href='https://ko-fi.com/jakoolit' target='_blank'><img height='35' style='border:0px;height:46px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com' />

5
assets/hyprland.desktop Normal file
View File

@ -0,0 +1,5 @@
[Desktop Entry]
Name=Hyprland
Comment=An intelligent dynamic tiling Wayland compositor
Exec=Hyprland
Type=Application

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,122 @@
#!/bin/bash
# https://github.com/JaKooLit
# edit your packages desired here.
# WARNING! If you remove packages here, dotfiles may not work properly.
# and also, ensure that packages are present in AUR and official Arch Repo
# add packages wanted here
Extra=(
)
hypr_package=(
cliphist
dunst
foot
grim
gvfs
gvfs-mtp
jq
network-manager-applet
pamixer
pavucontrol
pipewire-alsa
playerctl
polkit-kde-agent
python-requests
qt5ct
slurp
swappy
swayidle
swaylock-effects
swww
waybar
wget
wl-clipboard
wofi
xdg-user-dirs
)
# the following packages can be deleted. however, dotfiles may not work properly
hypr_package_2=(
brightnessctl
btop
cava
ffmpegthumbs
gnome-system-monitor
mousepad
mpv
nvtop
nwg-look-bin
swaybg
viewnior
vim
wlsunset
)
fonts=(
adobe-source-code-pro-fonts
noto-fonts-emoji
otf-font-awesome
otf-font-awesome-4
ttf-droid
ttf-fira-code
ttf-jetbrains-mono
ttf-jetbrains-mono-nerd
)
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_hypr-pkgs.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# Installation of main components
printf "\n%s - Installing hyprland packages.... \n" "${NOTE}"
for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${fonts[@]}" "${Extra[@]}"; do
install_package "$PKG1" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log"
exit 1
fi
done
clear

View File

@ -0,0 +1,58 @@
#!/bin/bash
blue=(
bluez
bluez-utils
blueman
)
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_bluetooth.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# Bluetooth
printf "${NOTE} Installing Bluetooth Packages...\n"
for BLUE in "${blue[@]}"; do
install_package "$BLUE" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $BLUE install had failed, please check the install.log"; exit 1; }
done
printf " Activating Bluetooth Services...\n"
sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG"
clear

View File

@ -0,0 +1,25 @@
#!/bin/bash
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +'%d-%H%M%S')_dots.log"
printf "${NOTE} Downloading Hyprland dots...\n"
if git clone https://github.com/JaKooLit/Hyprland-Dots.git; then
cd Hyprland-Dots || exit 1
chmod +x copy.sh
./copy.sh 2>&1 | tee -a "$LOG"
else
echo -e "${ERROR} Cant download Hyprland-Dots" 2>&1 | tee -a "$LOG"
fi

View File

@ -0,0 +1,106 @@
#!/bin/bash
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_themes.log"
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_themes.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# Themes and cursors
printf "\n${NOTE} INSTALLING GTK THEMES \n"
while true; do
read -rp "${CAT} Which GTK Theme and Cursors to install? Catppuccin or Tokyo Theme? Enter 'c' or 't': " choice
case "$choice" in
c|C)
printf "${NOTE} Installing Catpuccin Theme packages...\n"
for THEME1 in catppuccin-gtk-theme-mocha catppuccin-gtk-theme-latte catppuccin-cursors-mocha; do
install_package "$THEME1" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THEME1 install had failed, please check the install.log"; exit 1; }
done
# Shiny-Dark-Icons-themes
mkdir -p ~/.icons
cd assets
tar -xf Shiny-Dark-Icons.tar.gz -C ~/.icons
tar -xf Shiny-Light-Icons.tar.gz -C ~/.icons
cd ..
sed -i '9,12s/#//' config/hypr/scripts/DarkLight.sh
sed -i '9,12s/#//' config/hypr/scripts/DarkLight-swaybg.sh
sed -i '31s/#//' config/hypr/configs/Settings.conf
cp -f 'config/hypr/waybar/style/dark-styles/style-dark-cat.css' 'config/hypr/waybar/style/style-dark.css'
break
;;
t|T)
printf "${NOTE} Installing Tokyo Theme packages...\n"
wget https://github.com/ljmill/tokyo-night-icons/releases/download/v0.2.0/TokyoNight-SE.tar.bz2
mkdir -p ~/.icons
tar -xvjf TokyoNight-SE.tar.bz2 -C ~/.icons
mkdir -p ~/.themes
cp -r -f assets/tokyo-themes/* ~/.themes/
sed -i '15,18s/#//' config/hypr/scripts/DarkLight.sh
sed -i '15,18s/#//' config/hypr/scripts/DarkLight-swaybg.sh
sed -i '32s/#//' config/hypr/configs/Settings.conf
cp -f 'config/hypr/waybar/style/dark-styles/style-dark-tokyo.css' 'config/hypr/waybar/style/style-dark.css'
break
;;
*)
printf "%s - Invalid choice. Please enter 'c' or 't'\n" "${ERROR}"
continue
;;
esac
done
clear

View File

@ -0,0 +1,53 @@
#!/bin/bash
hypr=(
hyprland
)
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_hyprland.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# Hyprland
printf "${NOTE} Installing Hyprland Packages...\n"
for HYPR in "${hypr[@]}"; do
install_package "$HYPR" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $HYPR install had failed, please check the install.log"; exit 1; }
done
clear

141
install-scripts/nvidia.sh Normal file
View File

@ -0,0 +1,141 @@
#!/bin/bash
nvidia_pkg=(
nvidia-dkms
nvidia-settings
nvidia-utils
libva
libva-nvidia-driver-git
)
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_nvidia.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :("
exit 1
fi
fi
}
# nvidia stuff
printf "${YELLOW}Installing Nvidia Hyprland...${RESET}\n"
if pacman -Qs hyprland > /dev/null; then
read -n1 -rp "${CAT} Hyprland detected. Would you like to remove and install hyprland-nvidia instead? (y/n) " nvidia_hypr
echo
if [[ $nvidia_hypr =~ ^[Yy]$ ]]; then
for hyprnvi in hyprland hyprland-nvidia hyprland-nvidia-hidpi-git; do
sudo pacman -R --noconfirm "$hyprnvi" 2>/dev/null | tee -a "$LOG" || true
done
fi
fi
# install hyprland-nvidia-git
install_package "hyprland-nvidia-git" 2>&1 | tee -a "$LOG"
# Install additional Nvidia packages
printf "${YELLOW} Installing Nvidia packages...\n"
for krnl in $(cat /usr/lib/modules/*/pkgbase); do
for NVIDIA in "${krnl}-headers" "${nvidia_pkg[@]}"; do
install_package "$NVIDIA" 2>&1 | tee -a "$LOG"
done
done
# Check if the Nvidia modules are already added in mkinitcpio.conf and add if not
if grep -qE '^MODULES=.*nvidia. *nvidia_modeset.*nvidia_uvm.*nvidia_drm' /etc/mkinitcpio.conf; then
echo "Nvidia modules already included in /etc/mkinitcpio.conf" 2>&1 | tee -a "$LOG"
else
sudo sed -Ei 's/^(MODULES=\([^\)]*)\)/\1 nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf 2>&1 | tee -a "$LOG"
echo "Nvidia modules added in /etc/mkinitcpio.conf"
fi
sudo mkinitcpio -P 2>&1 | tee -a "$LOG"
printf "\n"
printf "\n"
printf "\n"
# Preparing exec.conf to enable env = WLR_NO_HARDWARE_CURSORS,1 so it will be ready once config files copied
sed -i '21s/#//' config/hypr/configs/ENVariables.conf
# Additional Nvidia steps
NVEA="/etc/modprobe.d/nvidia.conf"
if [ -f "$NVEA" ]; then
printf "${OK} Seems like nvidia-drm modeset=1 is already added in your system..moving on.\n"
printf "\n"
else
printf "\n"
printf "${YELLOW} Adding options to $NVEA..."
sudo echo -e "options nvidia-drm modeset=1" | sudo tee -a /etc/modprobe.d/nvidia.conf 2>&1 | tee -a "$LOG"
printf "\n"
fi
# additional for GRUB users
# Check if /etc/default/grub exists
if [ -f /etc/default/grub ]; then
# Check if nvidia_drm.modeset=1 is already present
if ! sudo grep -q "nvidia-drm.modeset=1" /etc/default/grub; then
# Add nvidia_drm.modeset=1 to GRUB_CMDLINE_LINUX_DEFAULT
sudo sed -i 's/\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)"/\1 nvidia-drm.modeset=1"/' /etc/default/grub
# Regenerate GRUB configuration
sudo grub-mkconfig -o /boot/grub/grub.cfg
echo "nvidia-drm.modeset=1 added to /etc/default/grub"
else
echo "nvidia-drm.modeset=1 is already present in /etc/default/grub"
fi
else
echo "/etc/default/grub does not exist"
fi
# Blacklist nouveau
read -n1 -rep "${CAT} Would you like to blacklist nouveau? (y/n)" response
echo
if [[ $response =~ ^[Yy]$ ]]; then
NOUVEAU="/etc/modprobe.d/nouveau.conf"
if [ -f "$NOUVEAU" ]; then
printf "${OK} Seems like nouveau is already blacklisted..moving on.\n"
else
printf "\n"
echo "blacklist nouveau" | sudo tee -a "$NOUVEAU" 2>&1 | tee -a "$LOG"
printf "${NOTE} has been added to $NOUVEAU.\n"
printf "\n"
# To completely blacklist nouveau (See wiki.archlinux.org/title/Kernel_module#Blacklisting 6.1)
if [ -f "/etc/modprobe.d/blacklist.conf" ]; then
echo "install nouveau /bin/true" | sudo tee -a "/etc/modprobe.d/blacklist.conf" 2>&1 | tee -a "$LOG"
else
echo "install nouveau /bin/true" | sudo tee "/etc/modprobe.d/blacklist.conf" 2>&1 | tee -a "$LOG"
fi
fi
else
printf "${NOTE} Skipping nouveau blacklisting.\n"
fi
clear

35
install-scripts/paru.sh Normal file
View File

@ -0,0 +1,35 @@
#!/bin/bash
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_paru.log"
# Check for AUR helper and install if not found
ISAUR=$(command -v yay || command -v paru)
if [ -n "$ISAUR" ]; then
printf "\n%s - AUR helper was located, moving on.\n" "${OK}"
else
printf "\n%s - AUR helper was NOT located\n" "$WARN"
printf "\n%s - Installing paru from AUR\n" "${NOTE}"
git clone https://aur.archlinux.org/paru-bin.git || { printf "%s - Failed to clone paru from AUR\n" "${ERROR}"; exit 1; }
cd paru-bin || { printf "%s - Failed to enter paru-bin directory\n" "${ERROR}"; exit 1; }
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install paru from AUR\n" "${ERROR}"; exit 1; }
fi
# Update system before proceeding
printf "\n%s - Performing a full system update to avoid issues.... \n" "${NOTE}"
ISAUR=$(command -v yay || command -v paru)
$ISAUR -Syu --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to update system\n" "${ERROR}"; exit 1; }
clear

62
install-scripts/rog.sh Normal file
View File

@ -0,0 +1,62 @@
#!/bin/bash
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_rog.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
### Install software for Asus ROG laptops ###
printf " Installing ASUS ROG packages...\n"
for ASUS in asusctl supergfxctl rog-control-center; do
install_package "$ASUS" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $ASUS install had failed, please check the install.log"
exit 1
fi
done
printf " Activating ROG services...\n"
sudo systemctl enable --now supergfxd 2>&1 | tee -a "$LOG"
sed -i '20s/#//' config/hypr/configs/Execs.conf
clear

119
install-scripts/sddm.sh Normal file
View File

@ -0,0 +1,119 @@
#!/bin/bash
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_sddm.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# SDDM
# Check if SDDM is already installed
if pacman -Qs sddm > /dev/null; then
# Prompt user to manually install sddm-git to remove SDDM
read -n1 -rep "SDDM is already installed. Would you like to manually install sddm-git to remove it? This requires manual intervention. (y/n)" manual_install_sddm
echo
if [[ $manual_install_sddm =~ ^[Yy]$ ]]; then
$ISAUR -S sddm-git 2>&1 | tee -a "$LOG"
fi
fi
# Install SDDM and Catppuccin theme
printf "${NOTE} Installing SDDM-git........\n"
for package in sddm-git; do
install_package "$package" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $package install has failed, please check the install.log"; exit 1; }
done
# Check if other login managers installed and disabling its service before enabling sddm
for login_manager in lightdm gdm lxdm lxdm-gtk3; do
if pacman -Qs "$login_manager" > /dev/null; then
echo "disabling $login_manager..."
sudo systemctl disable "$login_manager.service" 2>&1 | tee -a "$LOG"
fi
done
printf " Activating sddm service........\n"
sudo systemctl enable sddm
# Set up SDDM
echo -e "${NOTE} Setting up the login screen."
sddm_conf_dir=/etc/sddm.conf.d
[ ! -d "$sddm_conf_dir" ] && { printf "$CAT - $sddm_conf_dir not found, creating...\n"; sudo mkdir "$sddm_conf_dir" 2>&1 | tee -a "$LOG"; }
wayland_sessions_dir=/usr/share/wayland-sessions
[ ! -d "$wayland_sessions_dir" ] && { printf "$CAT - $wayland_sessions_dir not found, creating...\n"; sudo mkdir "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"; }
sudo cp assets/hyprland.desktop "$wayland_sessions_dir/" 2>&1 | tee -a "$LOG"
# SDDM-themes
read -n1 -rep "${CAT} OPTIONAL - Would you like to install SDDM themes? (y/n)" install_sddm_theme
if [[ $install_sddm_theme =~ ^[Yy]$ ]]; then
while true; do
read -rp "${CAT} Which SDDM Theme you want to install? Catpuccin or Tokyo Night 'c' or 't': " choice
case "$choice" in
c|C)
printf "\n%s - Installing Catpuccin SDDM Theme\n" "${NOTE}"
for sddm_theme in sddm-catppuccin-git; do
install_package "$sddm_theme" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $sddm_theme install has failed, please check the install.log"; }
done
echo -e "[Theme]\nCurrent=catppuccin" | sudo tee -a "$sddm_conf_dir/10-theme.conf" 2>&1 | tee -a "$LOG"
break
;;
t|T)
printf "\n%s - Installing Tokyo SDDM Theme\n" "${NOTE}"
for sddm_theme in sddm-theme-tokyo-night; do
install_package "$sddm_theme" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $sddm_theme install has failed, please check the install.log"; }
done
echo -e "[Theme]\nCurrent=tokyo-night-sddm" | sudo tee -a "$sddm_conf_dir/10-theme.conf" 2>&1 | tee -a "$LOG"
break
;;
*)
printf "%s - Invalid choice. Please enter 'c' or 't'\n" "${ERROR}"
continue
;;
esac
done
fi
clear

77
install-scripts/thunar.sh Normal file
View File

@ -0,0 +1,77 @@
#!/bin/bash
thunar=(
thunar
thunar-volman
tumbler
thunar-archive-plugin
)
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_thunar.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# Bluetooth
printf "${NOTE} Installing Thunar Packages...\n"
for THUNAR in "${thunar[@]}"; do
install_package "$THUNAR" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THUNAR install had failed, please check the install.log"; exit 1; }
done
# Check for existing config folders and backup
for DIR1 in Thunar xfce4; do
DIRPATH=~/.config/$DIR1
if [ -d "$DIRPATH" ]; then
echo -e "${NOTE} Config for $DIR1 found, backing up."
mv $DIRPATH $DIRPATH-back-up 2>&1 | tee -a "$LOG"
echo -e "${NOTE} Backed up $DIR1 to $DIRPATH-back-up."
fi
done
cp -r config/xfce4 ~/.config/ && { echo "Copy xfce4 completed!"; } || { echo "Error: Failed to copy xfce4 config files."; exit 1; } 2>&1 | tee -a "$LOG"
cp -r config/Thunar ~/.config/ && { echo "Copy Thunar completed!"; } || { echo "Error: Failed to copy Thunar config files."; exit 1; } 2>&1 | tee -a "$LOG"
clear

79
install-scripts/xdph.sh Normal file
View File

@ -0,0 +1,79 @@
#!/bin/bash
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_xdph.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# XDG-DESKTOP-PORTAL-HYPRLAND
for xdph in xdg-desktop-portal-hyprland; do
install_package "$xdph" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $xdph install had failed, please check the install.log"
exit 1
fi
done
printf "${NOTE} Checking for other XDG-Desktop-Portal-Implementations....\n"
sleep 1
printf "\n"
printf "${NOTE} XDG-desktop-portal-KDE (if installed) should be manually disabled or removed! I can't remove it... sorry...\n"
read -n1 -rep "${CAT} Would you like me to try to remove other XDG-Desktop-Portal-Implementations? (y/n)" XDPH1
sleep 1
if [[ $XDPH1 =~ ^[Yy]$ ]]; then
# Clean out other portals
printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n"
# Check if packages are installed and uninstall if present
if pacman -Qs xdg-desktop-portal-gnome > /dev/null ; then
echo "Removing xdg-desktop-portal-gnome..."
sudo pacman -R --noconfirm xdg-desktop-portal-gnome 2>&1 | tee -a $LOG
fi
if pacman -Qs xdg-desktop-portal-gtk > /dev/null ; then
echo "Removing xdg-desktop-portal-gtk..."
sudo pacman -R --noconfirm xdg-desktop-portal-gtk 2>&1 | tee -a $LOG
fi
if pacman -Qs xdg-desktop-portal-wlr > /dev/null ; then
echo "Removing xdg-desktop-portal-wlr..."
sudo pacman -R --noconfirm xdg-desktop-portal-wlr 2>&1 | tee -a $LOG
fi
if pacman -Qs xdg-desktop-portal-lxqt > /dev/null ; then
echo "Removing xdg-desktop-portal-lxqt..."
sudo pacman -R --noconfirm xdg-desktop-portal-lxqt 2>&1 | tee -a $LOG
fi
fi
clear

35
install-scripts/yay.sh Normal file
View File

@ -0,0 +1,35 @@
#!/bin/bash
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_yay.log"
# Check for AUR helper and install if not found
ISAUR=$(command -v yay || command -v paru)
if [ -n "$ISAUR" ]; then
printf "\n%s - AUR helper yay was located, moving on.\n" "${OK}"
else
printf "\n%s - AUR helper was NOT located\n" "$WARN"
printf "\n%s - Installing yay from AUR\n" "${NOTE}"
git clone https://aur.archlinux.org/yay-bin.git || { printf "%s - Failed to clone yay from AUR\n" "${ERROR}"; exit 1; }
cd yay-bin || { printf "%s - Failed to enter yay-bin directory\n" "${ERROR}"; exit 1; }
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install yay from AUR\n" "${ERROR}"; exit 1; }
fi
# Update system before proceeding
printf "\n%s - Performing a full system update to avoid issues.... \n" "${NOTE}"
ISAUR=$(command -v yay || command -v paru)
$ISAUR -Syu --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to update system\n" "${ERROR}"; exit 1; }
clear

68
install-scripts/zsh.sh Normal file
View File

@ -0,0 +1,68 @@
#!/bin/bash
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_zsh.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# zsh and oh-my-zsh
printf "${WARN} #### IF YOU HAVE ALREADY ZSH AND OH MY ZSH, YOU SHOULD CHOOSE NO HERE #########\n"
printf "${WARN} ### --------------------------------------------------------------------########\n"
printf "${NOTE} ## CHECK OUT README FOR ADDITIONAL STEPS REQUIRED ONCE ZSH AND OH-MY-ZSH INSTALLED ##\n"
printf "\n"
printf "\n"
read -n1 -rep "${CAT} OPTIONAL - Would you like to install zsh and oh-my-zsh and use as default shell? (y/n)" zsh
echo
if [[ $zsh =~ ^[Yy]$ ]]; then
for ZSH in zsh zsh-completions; do
install_package "$ZSH" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $ZSH install had failed, please check the install.log"
fi
done
# Oh-my-zsh plus zsh-autosuggestions and zsh-syntax-highlighting
printf "${NOTE} Installing oh-my-zsh and plugins.\n"
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended && \
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && \
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && \
cp -r 'assets/.zshrc' ~/
print_success "ZSH and oh-my-zsh installed."
else
printf "${NOTE} ZSH wont be installed.\n"
fi
clear

204
install.sh Normal file
View File

@ -0,0 +1,204 @@
#!/bin/bash
clear
# Welcome message
echo "$(tput setaf 6)Welcome to JaKooLit's Arch-Hyprland Install Script!$(tput sgr0)"
echo
echo "$(tput setaf 3)NOTE: You will be required to answer some questions during the installation! $(tput sgr0)"
echo
read -p "$(tput setaf 6)Would you like to proceed? (y/n): $(tput sgr0)" proceed
if [ "$proceed" != "y" ]; then
echo "Installation aborted."
exit 1
fi
# Check if running as root. If root, script will exit
if [[ $EUID -eq 0 ]]; then
echo "This script should not be executed as root! Exiting......."
exit 1
fi
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Function to colorize prompts
colorize_prompt() {
local color="$1"
local message="$2"
echo -n "${color}${message}$(tput sgr0)"
}
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S).log"
# Initialize variables to store user responses
aur_helper=""
bluetooth=""
dots=""
gtk_themes=""
nvidia=""
rog=""
sddm=""
thunar=""
xdph=""
zsh=""
# Define the directory where your scripts are located
script_directory=install-scripts
# Function to ask a yes/no question and set the response in a variable
ask_yes_no() {
while true; do
read -p "$(colorize_prompt "$CAT" "$1 (y/n): ")" choice
case "$choice" in
[Yy]* ) eval "$2='Y'"; return 0;;
[Nn]* ) eval "$2='N'"; return 1;;
* ) echo "Please answer with y or n.";;
esac
done
}
# Function to ask a custom question with specific options and set the response in a variable
ask_custom_option() {
local prompt="$1"
local valid_options="$2"
local response_var="$3"
while true; do
read -p "$(colorize_prompt "$CAT" "$prompt ($valid_options): ")" choice
if [[ " $valid_options " == *" $choice "* ]]; then
eval "$response_var='$choice'"
return 0
else
echo "Please choose one of the provided options: $valid_options"
fi
done
}
# Function to execute a script if it exists and make it executable
execute_script() {
local script="$1"
local script_path="$script_directory/$script"
if [ -f "$script_path" ]; then
chmod +x "$script_path"
if [ -x "$script_path" ]; then
"$script_path"
else
echo "Failed to make script '$script' executable."
fi
else
echo "Script '$script' not found in '$script_directory'."
fi
}
# Collect user responses to all questions
printf "\n"
ask_custom_option "Select AUR helper" "paru or yay" aur_helper
printf "\n"
ask_yes_no "Do you have nvidia gpu?" nvidia
printf "\n"
ask_yes_no "Do you want to install GTK themes?" gtk_themes
printf "\n"
ask_yes_no "Do you want to configure Bluetooth?" bluetooth
printf "\n"
ask_yes_no "Do you want to install Thunar file manager?" thunar
printf "\n"
ask_yes_no "Installing in Asus ROG Laptops?" rog
printf "\n"
ask_yes_no "Do you want to install and configure SDDM?" sddm
printf "\n"
ask_yes_no "Do you want to install XDG-DESKTOP-PORTAL-HYPRLAND?" xdph
printf "\n"
ask_yes_no "Do you want to install zsh and oh-my-zsh?" zsh
printf "\n"
ask_yes_no "Do you want to copy dotfiles?" dots
printf "\n"
# Ensuring all in the scripts folder are made executable
chmod +x install-scripts/*
# Execute AUR helper script based on user choice
if [ "$aur_helper" == "paru" ]; then
execute_script "paru.sh"
elif [ "$aur_helper" == "yay" ]; then
execute_script "yay.sh"
fi
# Install hyprland packages
execute_script "00-hypr-pkgs.sh"
if [ "$nvidia" == "Y" ]; then
execute_script "nvidia.sh"
fi
if [ "$nvidia" == "N" ]; then
execute_script "hyprland.sh"
fi
if [ "$gtk_themes" == "Y" ]; then
execute_script "gtk_themes.sh"
fi
if [ "$bluetooth" == "Y" ]; then
execute_script "bluetooth.sh"
fi
if [ "$thunar" == "Y" ]; then
execute_script "thunar.sh"
fi
if [ "$rog" == "Y" ]; then
execute_script "rog.sh"
fi
if [ "$sddm" == "Y" ]; then
execute_script "sddm.sh"
fi
if [ "$xdph" == "Y" ]; then
execute_script "xdph.sh"
fi
if [ "$zsh" == "Y" ]; then
execute_script "zsh.sh"
fi
if [ "$dots" == "Y" ]; then
execute_script "dotfiles.sh" "$(pwd)"
fi
clear
printf "\n${OK} Yey! Installation Completed.\n"
printf "\n"
printf "\n${NOTE} NOTICE TO NVIDIA OWNERS! System will reboot your system!\n"
sleep 2
printf "\n${NOTE} You can start Hyprland by typing Hyprland (IF SDDM is not installed) (note the capital H!).\n"
printf "\n"
printf "\n"
read -n1 -rep "${CAT} Would you like to start Hyprland now? (y,n)" HYP
if [[ $HYP =~ ^[Yy]$ ]]; then
if [[ "$nvidia" == "Y" ]]; then
echo "${NOTE} NVIDIA GPU detected. Rebooting the system..."
systemctl reboot
elif command -v sddm >/dev/null; then
sudo systemctl start sddm 2>&1 | tee -a "$LOG"
else
if command -v Hyprland >/dev/null; then
exec Hyprland
else
echo "${ERROR} Hyprland not found. Please make sure Hyprland is installed by checking install logs"
fi
fi
fi

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
screenshots/WofiEmoji.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

BIN
screenshots/gnome-style.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 KiB

BIN
screenshots/pavuExample.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB