mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2025-12-21 10:20:12 +01:00
commit
cc67ce6132
@ -1,5 +1,14 @@
|
|||||||
## Changelogs
|
## Changelogs
|
||||||
|
|
||||||
|
## 06 Feb 2025
|
||||||
|
- added semi-unattended function.
|
||||||
|
- move all the initial questions at the beginning
|
||||||
|
|
||||||
|
## 04 Feb 2025
|
||||||
|
- Re-coded for better visibility
|
||||||
|
- Offered a new SDDM theme.
|
||||||
|
- script will automatically detect if you have nvidia but script still offer if you want to set up for user
|
||||||
|
|
||||||
## 30 Jan 2025
|
## 30 Jan 2025
|
||||||
- AGS (aylur's GTK shell) v1 for desktop overview is now optional
|
- AGS (aylur's GTK shell) v1 for desktop overview is now optional
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 1.2 MiB |
26
README.md
26
README.md
@ -29,7 +29,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<br>
|
<br>
|
||||||
<a href="https://github.com/JaKooLit/Hyprland-Dots/tree/Deb-Untu-old-v-Hyprland"><kbd> <br> Hyprland-Dots Debian repo <br> </kbd></a>  
|
<a href="https://github.com/JaKooLit/Hyprland-Dots/tree/Deb-Untu-Dots"><kbd> <br> Hyprland-Dots Debian repo <br> </kbd></a>  
|
||||||
<a href="https://www.youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx"><kbd> <br> Youtube <br> </kbd></a>  
|
<a href="https://www.youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx"><kbd> <br> Youtube <br> </kbd></a>  
|
||||||
<a href="https://github.com/JaKooLit/Hyprland-Dots/wiki"><kbd> <br> Wiki <br> </kbd></a>  
|
<a href="https://github.com/JaKooLit/Hyprland-Dots/wiki"><kbd> <br> Wiki <br> </kbd></a>  
|
||||||
<a href="https://github.com/JaKooLit/Hyprland-Dots/wiki/Keybinds"><kbd> <br> Keybinds <br> </kbd></a>  
|
<a href="https://github.com/JaKooLit/Hyprland-Dots/wiki/Keybinds"><kbd> <br> Keybinds <br> </kbd></a>  
|
||||||
@ -149,7 +149,7 @@ sudo nano /etc/apt/sources.list
|
|||||||
- inside the install-scripts directory, you can edit 01-hypr-pkgs.sh. Do not edit 00-dependencies.sh unless you know what you are doing. Care though as the Hyprland Dots may not work properly!
|
- inside the install-scripts directory, you can edit 01-hypr-pkgs.sh. Do not edit 00-dependencies.sh unless you know what you are doing. Care though as the Hyprland Dots may not work properly!
|
||||||
|
|
||||||
#### 💫 SDDM and GTK Themes offered
|
#### 💫 SDDM and GTK Themes offered
|
||||||
- If you opted to install SDDM theme, here's the [`LINK`](https://github.com/JaKooLit/simple-sddm)
|
- If you opted to install SDDM theme, here's the [`LINK`](https://codeberg.org/JaKooLit/sddm-sequoia) which is a fork of [`LINK`](https://codeberg.org/minMelody/sddm-sequoia)
|
||||||
- If you opted to install GTK Themes, Icons, here's the [`LINK`](https://github.com/JaKooLit/GTK-themes-icons). This also includes Bibata Modern Ice cursor.
|
- If you opted to install GTK Themes, Icons, here's the [`LINK`](https://github.com/JaKooLit/GTK-themes-icons). This also includes Bibata Modern Ice cursor.
|
||||||
|
|
||||||
#### 🔔 NOTICE TO NVIDIA OWNERS ###
|
#### 🔔 NOTICE TO NVIDIA OWNERS ###
|
||||||
@ -173,6 +173,24 @@ chmod +x install.sh
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img align="center" width="100%" src="https://raw.githubusercontent.com/JaKooLit/Debian-Hyprland/main/Debian-Install.png" />
|
<img align="center" width="100%" src="https://raw.githubusercontent.com/JaKooLit/Debian-Hyprland/main/Debian-Install.png" />
|
||||||
|
|
||||||
|
|
||||||
|
### 🤟 semi-unattended installation (new for 2025)
|
||||||
|
- edit preset.sh to modify what packages you want. Make sure to change only with Y or N
|
||||||
|
- to use preset instead of usual `./install.sh` you can ran like this
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./install.sh --preset
|
||||||
|
```
|
||||||
|
|
||||||
|
- if you have nvidia you can add --nvidia argument
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./install.sh --preset --nvidia
|
||||||
|
```
|
||||||
|
|
||||||
|
- its called semi-unattended it is because you still have to answer some questions when installing KooL's Hyprland Dots
|
||||||
|
|
||||||
|
|
||||||
#### ✨ for ZSH and OH-MY-ZSH installation
|
#### ✨ for ZSH and OH-MY-ZSH installation
|
||||||
> installer should auto change your default shell to zsh. However, if it does not, do this
|
> installer should auto change your default shell to zsh. However, if it does not, do this
|
||||||
```bash
|
```bash
|
||||||
@ -248,6 +266,9 @@ source ~/.zshrc
|
|||||||
#### 🛣️ Roadmap:
|
#### 🛣️ Roadmap:
|
||||||
- [ ] possibly adding gruvbox themes, cursors, icons
|
- [ ] possibly adding gruvbox themes, cursors, icons
|
||||||
|
|
||||||
|
### ⁉️ KNOWN ISSUE
|
||||||
|
- [ ] hypridle wont build (Feb 2025)
|
||||||
|
|
||||||
#### ❗ some known issues for nvidia
|
#### ❗ some known issues for nvidia
|
||||||
- reports from members of my discord, states that some users of nvidia are getting stuck on sddm login. credit to @Kenni Fix stated was
|
- reports from members of my discord, states that some users of nvidia are getting stuck on sddm login. credit to @Kenni Fix stated was
|
||||||
```
|
```
|
||||||
@ -271,6 +292,7 @@ env = WLR_RENDERER_ALLOW_SOFTWARE,1
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### ❗ other known issues
|
#### ❗ other known issues
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Auto start of Hyprland after login (no SDDM or GDM or any login managers)
|
> Auto start of Hyprland after login (no SDDM or GDM or any login managers)
|
||||||
- This was disabled a few days ago. (19 May 2024). This was because some users, after they used the Distro-Hyprland scripts with other DE (gnome-wayland or plasma-wayland), if they choose to login into gnome-wayland for example, Hyprland is starting.
|
- This was disabled a few days ago. (19 May 2024). This was because some users, after they used the Distro-Hyprland scripts with other DE (gnome-wayland or plasma-wayland), if they choose to login into gnome-wayland for example, Hyprland is starting.
|
||||||
|
|||||||
BIN
assets/sddm.png
Normal file
BIN
assets/sddm.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1007 KiB |
@ -1,8 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# 💫 https://github.com/JaKooLit 💫 #
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
# main dependencies #
|
# main dependencies #
|
||||||
# 22 Aug 2024 - NOTE will trim this more down
|
|
||||||
|
|
||||||
|
|
||||||
# packages neeeded
|
# packages neeeded
|
||||||
dependencies=(
|
dependencies=(
|
||||||
@ -18,6 +16,31 @@ dependencies=(
|
|||||||
golang
|
golang
|
||||||
hwdata
|
hwdata
|
||||||
jq
|
jq
|
||||||
|
libmpdclient-dev
|
||||||
|
libnl-3-dev
|
||||||
|
libasound2-dev
|
||||||
|
libstartup-notification0-dev
|
||||||
|
libwayland-client++1
|
||||||
|
libwayland-dev
|
||||||
|
libcairo-5c-dev
|
||||||
|
libcairo2-dev
|
||||||
|
libsdbus-c++-bin
|
||||||
|
libegl-dev
|
||||||
|
libegl1-mesa-dev
|
||||||
|
libpango1.0-dev
|
||||||
|
libgdk-pixbuf-2.0-dev
|
||||||
|
libxcb-keysyms1-dev
|
||||||
|
libwayland-client0
|
||||||
|
libxcb-ewmh-dev
|
||||||
|
libxcb-cursor-dev
|
||||||
|
libxcb-icccm4-dev
|
||||||
|
libxcb-randr0-dev
|
||||||
|
libxcb-render-util0-dev
|
||||||
|
libxcb-util-dev
|
||||||
|
libxcb-xkb-dev
|
||||||
|
libxcb-xinerama0-dev
|
||||||
|
libxkbcommon-dev
|
||||||
|
libxkbcommon-x11-dev
|
||||||
meson
|
meson
|
||||||
ninja-build
|
ninja-build
|
||||||
openssl
|
openssl
|
||||||
@ -29,13 +52,17 @@ dependencies=(
|
|||||||
python3-pyquery
|
python3-pyquery
|
||||||
qt6-base-dev
|
qt6-base-dev
|
||||||
spirv-tools
|
spirv-tools
|
||||||
vulkan-validationlayers
|
#vulkan-validationlayers
|
||||||
vulkan-utility-libraries-dev
|
vulkan-utility-libraries-dev
|
||||||
wayland-protocols
|
wayland-protocols
|
||||||
xdg-desktop-portal
|
xdg-desktop-portal
|
||||||
xwayland
|
xwayland
|
||||||
)
|
)
|
||||||
|
|
||||||
|
build_dep=(
|
||||||
|
wlroots
|
||||||
|
)
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
# Determine the directory where the script is located
|
# Determine the directory where the script is located
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
@ -50,14 +77,17 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_dependencies.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_dependencies.log"
|
||||||
|
|
||||||
# Installation of main dependencies
|
# Installation of main dependencies
|
||||||
printf "\n%s - Installing main dependencies.... \n" "${NOTE}"
|
printf "\n%s - Installing ${SKY_BLUE}main dependencies....${RESET} \n" "${NOTE}"
|
||||||
|
|
||||||
for PKG1 in "${dependencies[@]}"; do
|
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
for PKG in "${dependencies[@]}"; do
|
||||||
if [ $? -ne 0 ]; then
|
install_package "$PKG" "$LOG"
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
for PKG1 in "${build_dep[@]}"; do
|
||||||
|
build_dep "$PKG1" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -24,6 +24,7 @@ hypr_package=(
|
|||||||
pavucontrol
|
pavucontrol
|
||||||
playerctl
|
playerctl
|
||||||
polkit-kde-agent-1
|
polkit-kde-agent-1
|
||||||
|
pkexec
|
||||||
python3-requests
|
python3-requests
|
||||||
python3-pip
|
python3-pip
|
||||||
qt5ct
|
qt5ct
|
||||||
@ -85,40 +86,54 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
# Set the name of the log file to include the current date and time
|
# Set the name of the log file to include the current date and time
|
||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypr-pkgs.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypr-pkgs.log"
|
||||||
|
|
||||||
# Installation of main components
|
# conflicting packages removal
|
||||||
printf "\n%s - Installing hyprland packages.... \n" "${NOTE}"
|
overall_failed=0
|
||||||
|
printf "\n%s - ${SKY_BLUE}Removing some packages${RESET} as it conflicts with KooL's Hyprland Dots \n" "${NOTE}"
|
||||||
for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${Extra[@]}"; do
|
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
printf "\n%s - Uninstalling some packages inorder for dots to work properly \n" "${NOTE}"
|
|
||||||
for PKG in "${uninstall[@]}"; do
|
for PKG in "${uninstall[@]}"; do
|
||||||
uninstall_package "$PKG" 2>&1 | tee -a "$LOG"
|
uninstall_package "$PKG" 2>&1 | tee -a "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG uninstallation had failed, please check the log"
|
overall_failed=1
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ $overall_failed -ne 0 ]; then
|
||||||
|
echo -e "${ERROR} Some packages failed to uninstall. Please check the log."
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
|
||||||
|
# Installation of main components
|
||||||
|
printf "\n%s - Installing ${SKY_BLUE}KooL's hyprland necessary packages${RESET} .... \n" "${NOTE}"
|
||||||
|
|
||||||
|
for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${Extra[@]}"; do
|
||||||
|
install_package "$PKG1" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
for PKG2 in "${force[@]}"; do
|
for PKG2 in "${force[@]}"; do
|
||||||
re_install_package "$PKG2" 2>&1 | tee -a "$LOG"
|
re_install_package "$PKG2" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - Force reinstall of $PKG2 failed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# install YAD from assets. NOTE This is downloaded from SID repo and sometimes
|
||||||
|
# Trixie is removing YAD for some strange reasons
|
||||||
|
# Check if yad is installed
|
||||||
|
if ! command -v yad &> /dev/null; then
|
||||||
|
echo "${INFO} Installing ${YELLOW}YAD from assets${RESET} ..."
|
||||||
|
sudo dpkg -i assets/yad_0.40.0-1+b2_amd64.deb
|
||||||
|
sudo apt install -f -y
|
||||||
|
echo "${INFO} ${YELLOW}YAD from assets${RESET} succesfully installed ..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
# Install up-to-date Rust
|
# Install up-to-date Rust
|
||||||
echo "Installing most up to date Rust compiler..."
|
echo "${INFO} Installing most ${YELLOW}up to date Rust compiler${RESET} ..."
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 2>&1 | tee -a "$LOG"
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 2>&1 | tee -a "$LOG"
|
||||||
source "$HOME/.cargo/env"
|
source "$HOME/.cargo/env"
|
||||||
|
|
||||||
## making brightnessctl work
|
## making brightnessctl work
|
||||||
sudo chmod +s $(which brightnessctl) 2>&1 | tee -a "$LOG" || true
|
sudo chmod +s $(which brightnessctl) 2>&1 | tee -a "$LOG" || true
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -43,8 +43,7 @@ for PKG_NAME in "${PACKAGES[@]}"; do
|
|||||||
# Delete the file
|
# Delete the file
|
||||||
sudo rm "$FILE_PATH"
|
sudo rm "$FILE_PATH"
|
||||||
echo "Deleted: $FILE_PATH" 2>&1 | tee -a "$LOG"
|
echo "Deleted: $FILE_PATH" 2>&1 | tee -a "$LOG"
|
||||||
else
|
|
||||||
echo "File not found: $FILE_PATH" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
@ -2,81 +2,115 @@
|
|||||||
# 💫 https://github.com/JaKooLit 💫 #
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
# Global Functions for Scripts #
|
# Global Functions for Scripts #
|
||||||
|
|
||||||
# Create Directory for Install Logs
|
|
||||||
if [ ! -d Install-Logs ]; then
|
|
||||||
mkdir Install-Logs
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Set some colors for output messages
|
# Set some colors for output messages
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||||
|
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
|
||||||
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
||||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||||
MAGENTA=$(tput setaf 5)
|
MAGENTA="$(tput setaf 5)"
|
||||||
WARNING=$(tput setaf 1)
|
ORANGE="$(tput setaf 214)"
|
||||||
YELLOW=$(tput setaf 3)
|
WARNING="$(tput setaf 1)"
|
||||||
RESET=$(tput sgr0)
|
YELLOW="$(tput setaf 3)"
|
||||||
|
GREEN="$(tput setaf 2)"
|
||||||
|
BLUE="$(tput setaf 4)"
|
||||||
|
SKY_BLUE="$(tput setaf 6)"
|
||||||
|
RESET="$(tput sgr0)"
|
||||||
|
|
||||||
|
# Create Directory for Install Logs
|
||||||
|
if [ ! -d Install-Logs ]; then
|
||||||
|
mkdir Install-Logs
|
||||||
|
fi
|
||||||
|
|
||||||
# Function for installing packages
|
# Show progress function
|
||||||
install_package() {
|
show_progress() {
|
||||||
# Checking if package is already installed
|
local pid=$1
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; then
|
local package_name=$2
|
||||||
echo -e "${OK} $1 is already installed. Skipping..."
|
local spin_chars=("●○○○○○○○○○" "○●○○○○○○○○" "○○●○○○○○○○" "○○○●○○○○○○" "○○○○●○○○○" \
|
||||||
else
|
"○○○○○●○○○○" "○○○○○○●○○○" "○○○○○○○●○○" "○○○○○○○○●○" "○○○○○○○○○●")
|
||||||
# Package not installed
|
local i=0
|
||||||
echo -e "${NOTE} Installing $1 ..."
|
|
||||||
sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"
|
tput civis
|
||||||
# Making sure the package is installed
|
printf "\r${INFO} Installing ${YELLOW}%s${RESET} ..." "$package_name"
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; then
|
|
||||||
echo -e "\e[1A\e[K${OK} Package ${YELLOW}$1${RESET} has been successfully installed!"
|
while ps -p $pid &> /dev/null; do
|
||||||
else
|
printf "\r${INFO} Installing ${YELLOW}%s${RESET} %s" "$package_name" "${spin_chars[i]}"
|
||||||
# Something is missing, exiting to review the log
|
i=$(( (i + 1) % 10 ))
|
||||||
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 :("
|
sleep 0.3
|
||||||
exit 1
|
done
|
||||||
fi
|
|
||||||
fi
|
printf "\r${INFO} Installing ${YELLOW}%s${RESET} ... Done!%-20s \n\n" "$package_name" ""
|
||||||
|
tput cnorm
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function for re-installing packages
|
|
||||||
re_install_package() {
|
# Function for installing packages with a progress bar
|
||||||
echo -e "${NOTE} Force installing $1 ..."
|
install_package() {
|
||||||
|
if dpkg -l | grep -q -w "$1" ; then
|
||||||
|
echo -e "${INFO} ${MAGENTA}$1${RESET} is already installed. Skipping..."
|
||||||
|
else
|
||||||
|
(
|
||||||
|
stdbuf -oL sudo apt install -y "$1" 2>&1
|
||||||
|
) >> "$LOG" 2>&1 &
|
||||||
|
PID=$!
|
||||||
|
show_progress $PID "$1"
|
||||||
|
|
||||||
# Try to reinstall the package
|
# Double check if the package successfully installed
|
||||||
if sudo apt-get install --reinstall -y "$1" 2>&1 | tee -a "$LOG"; then
|
if dpkg -l | grep -q -w "$1"; then
|
||||||
# Check if the package was installed successfully
|
echo -e "\e[1A\e[K${OK} Package ${YELLOW}$1${RESET} has been successfully installed!"
|
||||||
if dpkg -l | grep -q -w "$1"; then
|
|
||||||
echo -e "\e[1A\e[K${OK} Package ${YELLOW}$1${RESET} has been successfully installed!"
|
|
||||||
else
|
|
||||||
# Package was not found, installation failed
|
|
||||||
echo -e "${ERROR} $1 failed to install. Please check the install.log. You may need to install it manually. Sorry, I have tried :("
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
# Installation command failed
|
echo -e "\e[1A\e[K${ERROR} ${YELLOW}$1${RESET} failed to install. Please check the install.log. You may need to install it manually. Sorry, I have tried :("
|
||||||
echo -e "${ERROR} Failed to reinstall $1. Please check the install.log. You may need to install it manually. Sorry, I have tried :("
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
uninstall_package() {
|
|
||||||
# Check if package is installed
|
|
||||||
if sudo dpkg -l | grep -q -w "^ii $1" ; then
|
|
||||||
# Package is installed, attempt to uninstall
|
|
||||||
echo -e "${NOTE} Uninstalling $1 ..."
|
|
||||||
|
|
||||||
# Attempt to uninstall the package and its configuration files
|
|
||||||
sudo apt-get autoremove -y "$1" >> "$LOG" 2>&1
|
|
||||||
|
|
||||||
# Check if the package is still installed after removal attempt
|
|
||||||
if ! dpkg -l | grep -q -w "^ii $1" ; then
|
|
||||||
echo -e "\e[1A\e[K${OK} $1 was uninstalled."
|
|
||||||
else
|
|
||||||
echo -e "\e[1A\e[K${ERROR} $1 failed to uninstall. Please check the uninstall.log."
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Function for build depencies with a progress bar
|
||||||
|
build_dep() {
|
||||||
|
echo -e "${INFO} building dependencies for ${MAGENTA}$1${RESET} "
|
||||||
|
(
|
||||||
|
stdbuf -oL sudo build-dep -y "$1" 2>&1
|
||||||
|
) >> "$LOG" 2>&1 &
|
||||||
|
PID=$!
|
||||||
|
show_progress $PID "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function for re-installing packages with a progress bar
|
||||||
|
re_install_package() {
|
||||||
|
(
|
||||||
|
stdbuf -oL sudo apt install --reinstall -y "$1" 2>&1
|
||||||
|
) >> "$LOG" 2>&1 &
|
||||||
|
|
||||||
|
PID=$!
|
||||||
|
show_progress $PID "$1"
|
||||||
|
|
||||||
|
if dpkg -l | grep -q -w "$1"; then
|
||||||
|
echo -e "\e[1A\e[K${OK} Package ${YELLOW}$1${RESET} has been successfully re-installed!"
|
||||||
|
else
|
||||||
|
# Package not found, reinstallation failed
|
||||||
|
echo -e "${ERROR} ${YELLOW}$1${RESET} failed to re-install. Please check the install.log. You may need to install it manually. Sorry, I have tried :("
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function for removing packages
|
||||||
|
uninstall_package() {
|
||||||
|
local pkg="$1"
|
||||||
|
|
||||||
|
# Checking if package is installed
|
||||||
|
if sudo dpkg -l | grep -q -w "^ii $1" ; then
|
||||||
|
echo -e "${NOTE} removing $pkg ..."
|
||||||
|
sudo apt autoremove -y "$1" >> "$LOG" 2>&1 | grep -v "error: target not found"
|
||||||
|
|
||||||
|
if ! dpkg -l | grep -q -w "^ii $1" ; then
|
||||||
|
echo -e "\e[1A\e[K${OK} ${MAGENTA}$1${RESET} removed."
|
||||||
|
else
|
||||||
|
echo -e "\e[1A\e[K${ERROR} $pkg Removal failed. No actions required."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "${INFO} Package $pkg not installed, skipping."
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# 💫 https://github.com/JaKooLit 💫 #
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
# Adding user in input group for waybar keyboard state module #
|
# Adding users into input group #
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
# Determine the directory where the script is located
|
# Determine the directory where the script is located
|
||||||
@ -15,40 +15,17 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
# Set the name of the log file to include the current date and time
|
# Set the name of the log file to include the current date and time
|
||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_input.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_input.log"
|
||||||
|
|
||||||
while true; do
|
# Check if the 'input' group exists
|
||||||
echo "${WARN} This script will add your user to the 'input' group."
|
if grep -q '^input:' /etc/group; then
|
||||||
echo "${NOTE} Please note that adding yourself to the 'input' group might be necessary for waybar keyboard-state functionality."
|
echo "${OK} ${MAGENTA}input${RESET} group exists."
|
||||||
|
else
|
||||||
|
echo "${NOTE} ${MAGENTA}input${RESET} group doesn't exist. Creating ${MAGENTA}input${RESET} group..."
|
||||||
|
sudo groupadd input
|
||||||
|
echo "${MAGENTA}input${RESET} group created" >> "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
# Add the user to the 'input' group
|
||||||
|
sudo usermod -aG input "$(whoami)"
|
||||||
read -p "${YELLOW}Do you want to proceed? (y/n): ${RESET}" choice
|
echo "${OK} ${YELLOW}user${RESET} added to the ${MAGENTA}input${RESET} group. Changes will take effect after you log out and log back in." >> "$LOG"
|
||||||
|
|
||||||
if [[ $choice == "y" || $choice == "Y" ]]; then
|
printf "\n%.0s" {1..2}
|
||||||
# Check if the 'input' group exists
|
|
||||||
if grep -q '^input:' /etc/group; then
|
|
||||||
echo "${OK} 'input' group exists." 2>&1 | tee -a "$LOG"
|
|
||||||
else
|
|
||||||
echo "${NOTE} 'input' group doesn't exist. Creating 'input' group..." 2>&1 | tee -a "$LOG"
|
|
||||||
sudo groupadd input
|
|
||||||
|
|
||||||
# Log the creation of the 'input' group
|
|
||||||
echo "${NOTE} 'input' group created" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add the user to the input group
|
|
||||||
sudo usermod -aG input "$(whoami)"
|
|
||||||
echo "${OK} User added to the 'input' group. Changes will take effect after you log out and log back in." 2>&1 | tee -a "$LOG"
|
|
||||||
|
|
||||||
# Log the addition of the user to the 'input' group
|
|
||||||
echo "${NOTE} - User added to 'input' group" 2>&1 | tee -a "$LOG"
|
|
||||||
break # Break out of the loop if 'yes' is chosen
|
|
||||||
|
|
||||||
elif [[ $choice == "n" || $choice == "N" ]]; then
|
|
||||||
echo "${NOTE} No changes made. Exiting the script." 2>&1 | tee -a "$LOG"
|
|
||||||
break # Break out of the loop if 'no' is chosen
|
|
||||||
else
|
|
||||||
echo "${ERROR} Invalid choice. Please enter 'y' for yes or 'n' for no."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
clear
|
|
||||||
@ -16,6 +16,14 @@ ags=(
|
|||||||
libsoup-3.0-dev
|
libsoup-3.0-dev
|
||||||
)
|
)
|
||||||
|
|
||||||
|
f_ags=(
|
||||||
|
npm
|
||||||
|
)
|
||||||
|
|
||||||
|
build_dep=(
|
||||||
|
pam
|
||||||
|
)
|
||||||
|
|
||||||
# specific tags to download
|
# specific tags to download
|
||||||
ags_tag="v1.9.0"
|
ags_tag="v1.9.0"
|
||||||
|
|
||||||
@ -33,21 +41,38 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_ags.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_ags.log"
|
||||||
MLOG="install-$(date +%d-%H%M%S)_ags2.log"
|
MLOG="install-$(date +%d-%H%M%S)_ags2.log"
|
||||||
|
|
||||||
|
# Check if AGS is installed
|
||||||
|
if command -v ags &>/dev/null; then
|
||||||
|
AGS_VERSION=$(ags -v | awk '{print $NF}')
|
||||||
|
if [[ "$AGS_VERSION" == "1.9.0" ]]; then
|
||||||
|
printf "${INFO} ${MAGENTA}Aylur's GTK Shell v1.9.0${RESET} is already installed. Skipping installation."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Installation of main components
|
||||||
|
printf "\n%s - Installing ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET} Dependencies \n" "${INFO}"
|
||||||
|
|
||||||
# Installing ags Dependencies
|
# Installing ags Dependencies
|
||||||
for PKG1 in "${ags[@]}"; do
|
for PKG1 in "${ags[@]}"; do
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
install_package "$PKG1" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
done
|
||||||
echo -e "\033[1A\033[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
for force_ags in "${f_ags[@]}"; do
|
||||||
fi
|
re_install_package "$force_ags" 2>&1 | tee -a "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
for PKG1 in "${build_dep[@]}"; do
|
||||||
|
build_dep "$PKG1" "$LOG"
|
||||||
done
|
done
|
||||||
|
|
||||||
#install typescript by npm
|
#install typescript by npm
|
||||||
sudo npm install --global typescript 2>&1 | tee -a "$LOG"
|
sudo npm install --global typescript 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
# ags
|
# ags
|
||||||
|
printf "${INFO} Install and Compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET} .. \n"
|
||||||
printf "${NOTE} Install and Compiling Aylurs GTK shell $ags_tag.. \n"
|
|
||||||
|
|
||||||
# Check if folder exists and remove it
|
# Check if folder exists and remove it
|
||||||
if [ -d "ags" ]; then
|
if [ -d "ags" ]; then
|
||||||
@ -62,17 +87,18 @@ if git clone --recursive -b "$ags_tag" --depth 1 https://github.com/Aylur/ags.gi
|
|||||||
npm install
|
npm install
|
||||||
meson setup build
|
meson setup build
|
||||||
if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then
|
if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then
|
||||||
printf "${OK} ags installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
printf "${OK} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Installation failed for ags" 2>&1 | tee -a "$MLOG"
|
echo -e "${ERROR} Installation failed for ${YELLOW}Aylur's GTK shell $ags_tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Move logs to Install-Logs directory
|
# Move logs to Install-Logs directory
|
||||||
mv "$MLOG" ../Install-Logs/ || true
|
mv "$MLOG" ../Install-Logs/ || true
|
||||||
cd ..
|
cd ..
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Failed to download ags Please check your connection" 2>&1 | tee -a "$LOG"
|
echo -e "${ERROR} Failed to download ${YELLOW}Aylur's GTK shell $ags_tag${RESET} . Please check your connection" 2>&1 | tee -a "$LOG"
|
||||||
mv "$MLOG" ../Install-Logs/ || true
|
mv "$MLOG" ../Install-Logs/ || true
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
@ -21,13 +21,12 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_bluetooth.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_bluetooth.log"
|
||||||
|
|
||||||
# Bluetooth
|
# Bluetooth
|
||||||
printf "${NOTE} Installing Bluetooth Packages...\n"
|
printf "${NOTE} Installing ${SKY_BLUE}Bluetooth${RESET} Packages...\n"
|
||||||
for BLUE in "${blue[@]}"; do
|
for BLUE in "${blue[@]}"; do
|
||||||
install_package "$BLUE" 2>&1 | tee -a "$LOG"
|
install_package "$BLUE" "$LOG"
|
||||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $BLUE Package installation failed, Please check the installation logs"; exit 1; }
|
|
||||||
done
|
done
|
||||||
|
|
||||||
printf " Activating Bluetooth Services...\n"
|
printf " Activating ${YELLOW}Bluetooth${RESET} Services...\n"
|
||||||
sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG"
|
sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -3,15 +3,16 @@
|
|||||||
# Hyprland-Dots to download from main #
|
# Hyprland-Dots to download from main #
|
||||||
|
|
||||||
#specific branch or release
|
#specific branch or release
|
||||||
dots_tag="Deb-Untu-old-v-Hyprland"
|
dots_tag="Deb-Untu-Dots"
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
|
||||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
|
|
||||||
# Check if Hyprland-Dots exists
|
# Check if Hyprland-Dots exists
|
||||||
printf "${NOTE} Downloading KooL's Hyprland Dots for Debian....\n"
|
printf "${NOTE} Cloning and Installing ${SKY_BLUE}KooL's Hyprland Dots for Debian${RESET}....\n"
|
||||||
|
|
||||||
|
# Check if Hyprland-Dots exists
|
||||||
if [ -d Hyprland-Dots-Debian ]; then
|
if [ -d Hyprland-Dots-Debian ]; then
|
||||||
cd Hyprland-Dots-Debian
|
cd Hyprland-Dots-Debian
|
||||||
git stash
|
git stash
|
||||||
@ -25,8 +26,8 @@ else
|
|||||||
chmod +x copy.sh
|
chmod +x copy.sh
|
||||||
./copy.sh
|
./copy.sh
|
||||||
else
|
else
|
||||||
echo -e "$ERROR Can't download Hyprland-Dots-Debian"
|
echo -e "$ERROR Can't download ${YELLOW}KooL's Hyprland-Dots-Debian${RESET}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -23,25 +23,23 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
# Set the name of the log file to include the current date and time
|
# Set the name of the log file to include the current date and time
|
||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_fonts.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_fonts.log"
|
||||||
|
|
||||||
|
|
||||||
# Installation of main components
|
# Installation of main components
|
||||||
printf "\n%s - Installing fonts.... \n" "${NOTE}"
|
printf "\n%s - Installing necessary ${SKY_BLUE}fonts${RESET}.... \n" "${NOTE}"
|
||||||
|
|
||||||
for PKG1 in "${fonts[@]}"; do
|
for PKG1 in "${fonts[@]}"; do
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
install_package "$PKG1" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
# jetbrains nerd font. Necessary for waybar
|
# jetbrains nerd font. Necessary for waybar
|
||||||
printf "\n%s - Downloading and Extracting Jetbrains Mono Nerd Font.... \n" "${NOTE}"
|
|
||||||
DOWNLOAD_URL="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.tar.xz"
|
DOWNLOAD_URL="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.tar.xz"
|
||||||
# Maximum number of download attempts
|
# Maximum number of download attempts
|
||||||
MAX_ATTEMPTS=3
|
MAX_ATTEMPTS=2
|
||||||
for ((ATTEMPT = 1; ATTEMPT <= MAX_ATTEMPTS; ATTEMPT++)); do
|
for ((ATTEMPT = 1; ATTEMPT <= MAX_ATTEMPTS; ATTEMPT++)); do
|
||||||
curl -OL "$DOWNLOAD_URL" 2>&1 | tee -a "$LOG" && break
|
curl -OL "$DOWNLOAD_URL" 2>&1 | tee -a "$LOG" && break
|
||||||
echo "Download attempt $ATTEMPT failed. Retrying in 2 seconds..." 2>&1 | tee -a "$LOG"
|
echo "Download ${YELLOW}DOWNLOAD_URL${RESET} attempt $ATTEMPT failed. Retrying in 2 seconds..." 2>&1 | tee -a "$LOG"
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -50,12 +48,16 @@ if [ -d ~/.local/share/fonts/JetBrainsMonoNerd ]; then
|
|||||||
rm -rf ~/.local/share/fonts/JetBrainsMonoNerd 2>&1 | tee -a "$LOG"
|
rm -rf ~/.local/share/fonts/JetBrainsMonoNerd 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p ~/.local/share/fonts/JetBrainsMonoNerd
|
mkdir -p ~/.local/share/fonts/JetBrainsMonoNerd 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
# Extract the new files into the JetBrainsMono folder and log the output
|
# Extract the new files into the JetBrainsMono folder and log the output
|
||||||
tar -xJkf JetBrainsMono.tar.xz -C ~/.local/share/fonts/JetBrainsMonoNerd 2>&1 | tee -a "$LOG"
|
tar -xJkf JetBrainsMono.tar.xz -C ~/.local/share/fonts/JetBrainsMonoNerd 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
# Update font cache and log the output
|
# Update font cache and log the output
|
||||||
fc-cache -v 2>&1 | tee -a "$LOG"
|
fc-cache -v 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
clear
|
# clean up
|
||||||
|
if [ -d "JetBrainsMono.tar.xz" ]; then
|
||||||
|
rm -r JetBrainsMono.tar.xz 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ engine=(
|
|||||||
)
|
)
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
|
||||||
# Determine the directory where the script is located
|
# Determine the directory where the script is located
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
@ -23,11 +24,7 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_themes.log"
|
|||||||
|
|
||||||
# installing engine needed for gtk themes
|
# installing engine needed for gtk themes
|
||||||
for PKG1 in "${engine[@]}"; do
|
for PKG1 in "${engine[@]}"; do
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
install_package "$PKG1" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\033[1A\033[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Check if the directory exists and delete it if present
|
# Check if the directory exists and delete it if present
|
||||||
@ -36,7 +33,7 @@ if [ -d "GTK-themes-icons" ]; then
|
|||||||
rm -rf "GTK-themes-icons" 2>&1 | tee -a "$LOG"
|
rm -rf "GTK-themes-icons" 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$NOTE Cloning GTK themes and Icons repository..." 2>&1 | tee -a "$LOG"
|
echo "$NOTE Cloning ${SKY_BLUE}GTK themes and Icons${RESET} repository..." 2>&1 | tee -a "$LOG"
|
||||||
if git clone --depth 1 https://github.com/JaKooLit/GTK-themes-icons.git ; then
|
if git clone --depth 1 https://github.com/JaKooLit/GTK-themes-icons.git ; then
|
||||||
cd GTK-themes-icons
|
cd GTK-themes-icons
|
||||||
chmod +x auto-extract.sh
|
chmod +x auto-extract.sh
|
||||||
@ -47,4 +44,4 @@ else
|
|||||||
echo "$ERROR Download failed for GTK themes and Icons.." 2>&1 | tee -a "$LOG"
|
echo "$ERROR Download failed for GTK themes and Icons.." 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
@ -25,40 +25,37 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypridle.log"
|
|||||||
MLOG="install-$(date +%d-%H%M%S)_hypridle2.log"
|
MLOG="install-$(date +%d-%H%M%S)_hypridle2.log"
|
||||||
|
|
||||||
# Installation of dependencies
|
# Installation of dependencies
|
||||||
printf "\n%s - Installing hypridle dependencies.... \n" "${NOTE}"
|
printf "\n%s - Installing ${YELLOW}hypridle dependencies${RESET} .... \n" "${INFO}"
|
||||||
|
|
||||||
for PKG1 in "${idle[@]}"; do
|
for PKG1 in "${idle[@]}"; do
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
echo -e "\e[1A\e[K${ERROR} - ${YELLOW}$PKG1${RESET} Package installation failed, Please check the installation logs"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Check if hypridle folder exists and remove it
|
# Check if hypridle folder exists and remove it
|
||||||
if [ -d "hypridle" ]; then
|
if [ -d "hypridle" ]; then
|
||||||
printf "${NOTE} Removing existing hypridle folder...\n"
|
|
||||||
rm -rf "hypridle"
|
rm -rf "hypridle"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Clone and build
|
# Clone and build
|
||||||
printf "${NOTE} Installing hypridle...\n"
|
printf "${INFO} Installing ${YELLOW}hypridle $idle_tag${RESET} ...\n"
|
||||||
if git clone --recursive -b $idle_tag https://github.com/hyprwm/hypridle.git; then
|
if git clone --recursive -b $idle_tag https://github.com/hyprwm/hypridle.git; then
|
||||||
cd hypridle || exit 1
|
cd hypridle || exit 1
|
||||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build
|
||||||
cmake --build ./build --config Release --target hypridle -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
cmake --build ./build --config Release --target hypridle -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||||
printf "${OK} hypridle installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
printf "${OK} ${MAGENTA}hypridle $idle_tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Installation failed for hypridle." 2>&1 | tee -a "$MLOG"
|
echo -e "${ERROR} Installation failed for ${YELLOW}hypridle $idle_tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
fi
|
fi
|
||||||
#moving the addional logs to Install-Logs directory
|
#moving the addional logs to Install-Logs directory
|
||||||
mv $MLOG ../Install-Logs/ || true
|
mv $MLOG ../Install-Logs/ || true
|
||||||
cd ..
|
cd ..
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Download failed for hypridle." 2>&1 | tee -a "$LOG"
|
echo -e "${ERROR} Download failed for ${YELLOW}hypridle $idle_tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -29,17 +29,15 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland.log"
|
|||||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
|
|
||||||
# Hyprland
|
# Hyprland
|
||||||
printf "${NOTE} Installing additional Hyprland packages .......\n"
|
printf "${NOTE} Installing ${SKY_BLUE}Hyprland packages${RESET} .......\n"
|
||||||
for HYPR in "${hypr[@]}"; do
|
for HYPR in "${hypr[@]}"; do
|
||||||
install_package "$HYPR" 2>&1 | tee -a "$LOG"
|
install_package "$HYPR" "$LOG"
|
||||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $HYPR Package installation failed, Please check the installation logs"; exit 1; }
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# force
|
# force
|
||||||
printf "${NOTE} Force Installing Hyprland .......\n"
|
printf "${NOTE} Reinstalling ${SKY_BLUE}Hyprland packages${RESET} .......\n"
|
||||||
for HYPR1 in "${f_hypr[@]}"; do
|
for HYPR1 in "${f_hypr[@]}"; do
|
||||||
re_install_package "$HYPR1" 2>&1 | tee -a "$LOG"
|
re_install_package "$HYPR1" "$LOG"
|
||||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $HYPR1 Package installation failed, Please check the installation logs"; exit 1; }
|
|
||||||
done
|
done
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
@ -29,39 +29,33 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprlock.log"
|
|||||||
MLOG="install-$(date +%d-%H%M%S)_hyprlock2.log"
|
MLOG="install-$(date +%d-%H%M%S)_hyprlock2.log"
|
||||||
|
|
||||||
# Installation of dependencies
|
# Installation of dependencies
|
||||||
printf "\n%s - Installing hyprlock dependencies.... \n" "${NOTE}"
|
printf "\n%s - Installing ${YELLOW}hyprlock dependencies${RESET} .... \n" "${INFO}"
|
||||||
|
|
||||||
for PKG1 in "${lock[@]}"; do
|
for PKG1 in "${lock[@]}"; do
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
install_package "$PKG1" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Check if hyprlock folder exists and remove it
|
# Check if hyprlock folder exists and remove it
|
||||||
if [ -d "hyprlock" ]; then
|
if [ -d "hyprlock" ]; then
|
||||||
printf "${NOTE} Removing existing hyprlock folder...\n"
|
|
||||||
rm -rf "hyprlock"
|
rm -rf "hyprlock"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Clone and build hyprlock
|
# Clone and build hyprlock
|
||||||
printf "${NOTE} Installing hyprlock...\n"
|
printf "${INFO} Installing ${YELLOW}hyprlock $lock_tag${RESET} ...\n"
|
||||||
if git clone --recursive -b $lock_tag https://github.com/hyprwm/hyprlock.git; then
|
if git clone --recursive -b $lock_tag https://github.com/hyprwm/hyprlock.git; then
|
||||||
cd hyprlock || exit 1
|
cd hyprlock || exit 1
|
||||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build
|
||||||
cmake --build ./build --config Release --target hyprlock -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
cmake --build ./build --config Release --target hyprlock -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
|
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
|
||||||
printf "${OK} hyprlock installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
printf "${OK} ${YELLOW}hyprlock $lock_tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Installation failed for hyprlock." 2>&1 | tee -a "$MLOG"
|
echo -e "${ERROR} Installation failed for ${YELLOW}hyprlock $lock_tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
fi
|
fi
|
||||||
#moving the addional logs to Install-Logs directory
|
#moving the addional logs to Install-Logs directory
|
||||||
mv $MLOG ../Install-Logs/ || true
|
mv $MLOG ../Install-Logs/ || true
|
||||||
cd ..
|
cd ..
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Download failed for hyprlock." 2>&1 | tee -a "$LOG"
|
echo -e "${ERROR} Download failed for ${YELLOW}hyprlock $lock_tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
|||||||
@ -1,67 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# 💫 https://github.com/JaKooLit 💫 #
|
|
||||||
# imagemagick from source #
|
|
||||||
|
|
||||||
depend=(
|
|
||||||
build-essential
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
|
||||||
# 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
|
|
||||||
|
|
||||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|
||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
|
||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_image.log"
|
|
||||||
MLOG="install-$(date +%d-%H%M%S)_image2.log"
|
|
||||||
|
|
||||||
# Installing depencies
|
|
||||||
for PKG1 in "${depend[@]}"; do
|
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\033[1A\033[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# check if Imagemagick is already installed manually
|
|
||||||
if [ -f "/usr/local/bin/magick" ]; then
|
|
||||||
echo "${NOTE} /usr/local/bin/magick already exists. skipping installation of Imagemagick." 2>&1 | tee -a "$LOG"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "${NOTE} Installing ImageMagick from source...\n"
|
|
||||||
|
|
||||||
# Check if folder exists and remove it
|
|
||||||
if [ -d "ImageMagick" ]; then
|
|
||||||
printf "${NOTE} Removing existing ImageMagick folder...\n"
|
|
||||||
rm -rf "ImageMagick"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Clone and build ImageMagick
|
|
||||||
printf "${NOTE} Installing ImageMagick...\n"
|
|
||||||
if git clone --depth 1 https://github.com/ImageMagick/ImageMagick.git; then
|
|
||||||
cd ImageMagick || exit 1
|
|
||||||
./configure
|
|
||||||
make
|
|
||||||
if sudo make install 2>&1 | tee -a "$MLOG" ; then
|
|
||||||
sudo ldconfig /usr/local/lib
|
|
||||||
printf "${OK} ImageMagick installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
|
||||||
else
|
|
||||||
echo -e "${ERROR} Installation failed for ImageMagick." 2>&1 | tee -a "$MLOG"
|
|
||||||
fi
|
|
||||||
#moving the addional logs to Install-Logs directory
|
|
||||||
mv $MLOG ../Install-Logs/ || true
|
|
||||||
cd ..
|
|
||||||
else
|
|
||||||
echo -e "${ERROR} Download failed for ImageMagick." 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
clear
|
|
||||||
|
|
||||||
@ -57,13 +57,13 @@ add_to_file() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Install additional Nvidia packages
|
# Install additional Nvidia packages
|
||||||
printf "${YELLOW} Installing Nvidia packages...\n"
|
printf "${YELLOW} Installing ${SKY_BLUE}Nvidia packages${RESET} ...\n"
|
||||||
for NVIDIA in "${nvidia_pkg[@]}"; do
|
for NVIDIA in "${nvidia_pkg[@]}"; do
|
||||||
install_package "$NVIDIA" 2>&1 | tee -a "$LOG"
|
install_package "$NVIDIA" "$LOG"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# adding additional nvidia-stuff
|
||||||
printf "${YELLOW} nvidia-stuff to /etc/default/grub..."
|
printf "${YELLOW} adding ${SKY_BLUE}nvidia-stuff${RESET} to /etc/default/grub..."
|
||||||
|
|
||||||
# Additional options to add to GRUB_CMDLINE_LINUX
|
# Additional options to add to GRUB_CMDLINE_LINUX
|
||||||
additional_options="rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 rcutree.rcu_idle_gp_delay=1"
|
additional_options="rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 rcutree.rcu_idle_gp_delay=1"
|
||||||
@ -106,4 +106,4 @@ printf "${YELLOW} nvidia-stuff to /etc/default/grub..."
|
|||||||
echo "Modules file ($modules_file) not found." 2>&1 | tee -a "$LOG"
|
echo "Modules file ($modules_file) not found." 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -1,68 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# 💫 https://github.com/JaKooLit 💫 #
|
|
||||||
# nwg-look ) #
|
|
||||||
|
|
||||||
# nwg-look is now in trixie repo 14-Sep-2024
|
|
||||||
|
|
||||||
nwg_look=(
|
|
||||||
golang
|
|
||||||
libgtk-3-dev
|
|
||||||
libcairo2-dev
|
|
||||||
libglib2.0-bin
|
|
||||||
)
|
|
||||||
|
|
||||||
# specific tags to download
|
|
||||||
nwg_tag="v0.2.7"
|
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
|
||||||
# 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
|
|
||||||
|
|
||||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|
||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
|
||||||
LOG="Install-Logs/install-$(date +'%d-%H%M%S')_nwg-look.log"
|
|
||||||
MLOG="install-$(date +'%d-%H%M%S')_nwg-look2.log"
|
|
||||||
|
|
||||||
# Installing NWG-Look Dependencies
|
|
||||||
for PKG1 in "${nwg_look[@]}"; do
|
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\033[1A\033[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
printf "${NOTE} Installing nwg-look\n"
|
|
||||||
|
|
||||||
# Check if nwg-look folder exists and remove it
|
|
||||||
if [ -d "nwg-look" ]; then
|
|
||||||
printf "${NOTE} Removing existing nwg-look folder...\n"
|
|
||||||
rm -rf "nwg-look"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Clone nwg-look repository with the specified tag
|
|
||||||
if git clone --recursive -b "$nwg_tag" --depth 1 https://github.com/nwg-piotr/nwg-look.git; then
|
|
||||||
cd nwg-look || exit 1
|
|
||||||
# Build nwg-look
|
|
||||||
make build
|
|
||||||
if sudo make install 2>&1 | tee -a "$MLOG"; then
|
|
||||||
printf "${OK} nwg-look installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
|
||||||
else
|
|
||||||
echo -e "${ERROR} Installation failed for nwg-look" 2>&1 | tee -a "$MLOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Move logs to Install-Logs directory
|
|
||||||
mv "$MLOG" ../Install-Logs/ || true
|
|
||||||
cd ..
|
|
||||||
else
|
|
||||||
echo -e "${ERROR} Failed to download nwg-look. Please check your connection" 2>&1 | tee -a "$LOG"
|
|
||||||
mv "$MLOG" ../Install-Logs/ || true
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
clear
|
|
||||||
@ -12,6 +12,14 @@ rofi=(
|
|||||||
libnl-3-dev
|
libnl-3-dev
|
||||||
libasound2-dev
|
libasound2-dev
|
||||||
libstartup-notification0-dev
|
libstartup-notification0-dev
|
||||||
|
libwayland-client++1
|
||||||
|
libwayland-dev
|
||||||
|
libcairo-5c-dev
|
||||||
|
libcairo2-dev
|
||||||
|
libpango1.0-dev
|
||||||
|
libgdk-pixbuf-2.0-dev
|
||||||
|
libxcb-keysyms1-dev
|
||||||
|
libwayland-client0
|
||||||
libxcb-ewmh-dev
|
libxcb-ewmh-dev
|
||||||
libxcb-cursor-dev
|
libxcb-cursor-dev
|
||||||
libxcb-icccm4-dev
|
libxcb-icccm4-dev
|
||||||
@ -22,11 +30,11 @@ rofi=(
|
|||||||
libxcb-xinerama0-dev
|
libxcb-xinerama0-dev
|
||||||
libxkbcommon-dev
|
libxkbcommon-dev
|
||||||
libxkbcommon-x11-dev
|
libxkbcommon-x11-dev
|
||||||
imagemagick
|
ohcount
|
||||||
wget
|
wget
|
||||||
)
|
)
|
||||||
|
|
||||||
|
rofi_tag="1.7.8+wayland1"
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
# Determine the directory where the script is located
|
# Determine the directory where the script is located
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
@ -41,56 +49,42 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_rofi_wayland.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_rofi_wayland.log"
|
||||||
MLOG="install-$(date +%d-%H%M%S)_rofi_wayland2.log"
|
MLOG="install-$(date +%d-%H%M%S)_rofi_wayland2.log"
|
||||||
|
|
||||||
# uninstall other rofi
|
|
||||||
for PKG in "rofi" "bison"; do
|
|
||||||
uninstall_package "$PKG" 2>&1 | tee -a "$LOG"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG uninstallation had failed, please check the log"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
sleep 1
|
|
||||||
printf "\n"
|
|
||||||
# Installation of main components
|
# Installation of main components
|
||||||
printf "\n%s - Installing rofi-wayland dependencies.... \n" "${NOTE}"
|
printf "\n%s - Re-installing ${SKY_BLUE}rofi-wayland dependencies${RESET}.... \n" "${INFO}"
|
||||||
|
|
||||||
printf "${NOTE} Force installing packages...\n"
|
|
||||||
for FORCE in "${rofi[@]}"; do
|
for FORCE in "${rofi[@]}"; do
|
||||||
sudo apt-get --reinstall install -y "$FORCE" 2>&1 | tee -a "$LOG"
|
re_install_package "$FORCE" "$LOG"
|
||||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $FORCE Package installation failed, Please check the installation logs"; exit 1; }
|
|
||||||
done
|
done
|
||||||
|
|
||||||
printf "\n\n"
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
# Clone and build rofi - wayland
|
# Clone and build rofi - wayland
|
||||||
printf "${NOTE} Installing rofi-wayland...\n"
|
printf "${NOTE} Installing ${SKY_BLUE}rofi-wayland${RESET}...\n"
|
||||||
|
|
||||||
# Check if rofi folder exists
|
# Check if rofi folder exists
|
||||||
if [ -d "rofi-1.7.5+wayland3" ]; then
|
if [ -d "rofi-$rofi_tag" ]; then
|
||||||
rm -rf "rofi-1.7.5+wayland3"
|
rm -rf "rofi-$rofi_tag"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# cloning rofi-wayland
|
# cloning rofi-wayland
|
||||||
printf "${NOTE} Downloading rofi-wayland v1.7.5+wayland3 from releases...\n"
|
printf "${NOTE} Downloading ${YELLOW}rofi-wayland $rofi_tag${RESET} from releases...\n"
|
||||||
wget https://github.com/lbonn/rofi/releases/download/1.7.5%2Bwayland3/rofi-1.7.5+wayland3.tar.gz
|
wget https://github.com/lbonn/rofi/releases/download/1.7.8%2Bwayland1/rofi-1.7.8+wayland1.tar.gz
|
||||||
|
|
||||||
if [ -f "rofi-1.7.5+wayland3.tar.gz" ]; then
|
if [ -f "rofi-$rofi_tag.tar.gz" ]; then
|
||||||
printf "rofi-wayland downloaded successfully.\n" 2>&1 | tee -a "$LOG"
|
printf "${OK} ${YELLOW}rofi-wayland $rofi_tag${RESET} downloaded successfully.\n" 2>&1 | tee -a "$LOG"
|
||||||
tar xf rofi-1.7.5+wayland3.tar.gz
|
tar xf rofi-$rofi_tag.tar.gz
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd rofi-1.7.5+wayland3 || exit 1
|
cd rofi-$rofi_tag || exit 1
|
||||||
|
|
||||||
# Proceed with the installation steps
|
# Proceed with the installation steps
|
||||||
if meson setup build && ninja -C build ; then
|
if meson setup build && ninja -C build ; then
|
||||||
if sudo ninja -C build install 2>&1 | tee -a "$MLOG"; then
|
if sudo ninja -C build install 2>&1 | tee -a "$MLOG"; then
|
||||||
printf "${OK} rofi-wayland installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
printf "${OK} rofi-wayland installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Installation failed for rofi-wayland." 2>&1 | tee -a "$MLOG"
|
echo -e "${ERROR} Installation failed for ${YELLOW}rofi-wayland $rofi_tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Meson setup or ninja build failed for rofi-wayland." 2>&1 | tee -a "$MLOG"
|
echo -e "${ERROR} Meson setup or ninja build failed for ${YELLOW}rofi-wayland $rofi_tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Move logs to Install-Logs directory
|
# Move logs to Install-Logs directory
|
||||||
@ -98,6 +92,6 @@ mv "$MLOG" ../Install-Logs/ || true
|
|||||||
cd .. || exit 1
|
cd .. || exit 1
|
||||||
|
|
||||||
# clean up
|
# clean up
|
||||||
rm -rf rofi-1.7.5+wayland3.tar.gz
|
rm -rf rofi-$rofi_tag.tar.gz
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -68,4 +68,4 @@ install_and_log "asusctl" "https://gitlab.com/asus-linux/asusctl.git"
|
|||||||
# Download and build supergfxctl
|
# Download and build supergfxctl
|
||||||
install_and_log "supergfxctl" "https://gitlab.com/asus-linux/supergfxctl.git"
|
install_and_log "supergfxctl" "https://gitlab.com/asus-linux/supergfxctl.git"
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
@ -8,11 +8,9 @@ sddm1=(
|
|||||||
)
|
)
|
||||||
|
|
||||||
sddm2=(
|
sddm2=(
|
||||||
qml-module-qtgraphicaleffects
|
qml6-module-qt5compat-graphicaleffects
|
||||||
qml-module-qtquick-controls
|
qt6-declarative-dev
|
||||||
qml-module-qtquick-controls2
|
qt6-svg-dev
|
||||||
qml-module-qtquick-extras
|
|
||||||
qml-module-qtquick-layouts
|
|
||||||
)
|
)
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
@ -30,89 +28,31 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm.log"
|
|||||||
|
|
||||||
|
|
||||||
# Install SDDM (no-recommends)
|
# Install SDDM (no-recommends)
|
||||||
printf "\n%s - Installing sddm.... \n" "${NOTE}"
|
printf "\n%s - Installing ${SKY_BLUE}SDDM and dependencies${RESET} .... \n" "${NOTE}"
|
||||||
for PKG1 in "${sddm1[@]}" ; do
|
for PKG1 in "${sddm1[@]}" ; do
|
||||||
sudo apt-get install --no-install-recommends -y "$PKG1" 2>&1 | tee -a "$LOG"
|
sudo apt install --no-install-recommends -y "$PKG1" | tee -a "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Installation of additional sddm stuff
|
# Installation of additional sddm stuff
|
||||||
printf "\n%s - Installing sddm additional stuff.... \n" "${NOTE}"
|
|
||||||
for PKG2 in "${sddm2[@]}"; do
|
for PKG2 in "${sddm2[@]}"; do
|
||||||
install_package "$PKG2" 2>&1 | tee -a "$LOG"
|
install_package "$PKG2" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG2 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Check if other login managers are installed and disabling their service before enabling sddm
|
# Check if other login managers are installed and disable their service before enabling SDDM
|
||||||
for login_manager in lightdm gdm lxdm lxdm-gtk3; do
|
for login_manager in lightdm gdm3 gdm lxdm xdm lxdm-gtk3; do
|
||||||
if sudo apt-get list installed "$login_manager" &>> /dev/null; then
|
if sudo apt list --installed "$login_manager" > /dev/null; then
|
||||||
echo "Disabling $login_manager..."
|
echo "Disabling $login_manager..."
|
||||||
sudo systemctl disable "$login_manager" 2>&1 | tee -a "$LOG"
|
sudo systemctl disable "$login_manager.service" 2>&1 | tee -a "$LOG"
|
||||||
|
echo "$login_manager disabled."
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
printf " Activating sddm service........\n"
|
printf " Activating sddm service........\n"
|
||||||
sudo systemctl enable sddm
|
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 -p "$sddm_conf_dir" 2>&1 | tee -a "$LOG"; }
|
|
||||||
|
|
||||||
wayland_sessions_dir=/usr/share/wayland-sessions
|
wayland_sessions_dir=/usr/share/wayland-sessions
|
||||||
[ ! -d "$wayland_sessions_dir" ] && { printf "$CAT - $wayland_sessions_dir not found, creating...\n"; sudo mkdir -p "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"; }
|
[ ! -d "$wayland_sessions_dir" ] && { printf "$CAT - $wayland_sessions_dir not found, creating...\n"; sudo mkdir -p "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"; }
|
||||||
sudo cp assets/hyprland.desktop "$wayland_sessions_dir/" 2>&1 | tee -a "$LOG"
|
sudo cp assets/hyprland.desktop "$wayland_sessions_dir/" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
# SDDM-themes
|
|
||||||
valid_input=false
|
|
||||||
while [ "$valid_input" != true ]; do
|
|
||||||
read -n 1 -r -p "${CAT} OPTIONAL - Would you like to install SDDM themes? (y/n)" install_sddm_theme
|
|
||||||
if [[ $install_sddm_theme =~ ^[Yy]$ ]]; then
|
|
||||||
printf "\n%s - Installing Simple SDDM Theme\n" "${NOTE}"
|
|
||||||
|
|
||||||
# Check if /usr/share/sddm/themes/simple-sddm exists and remove if it does
|
|
||||||
if [ -d "/usr/share/sddm/themes/simple-sddm" ]; then
|
|
||||||
sudo rm -rf "/usr/share/sddm/themes/simple-sddm"
|
|
||||||
echo -e "\e[1A\e[K${OK} - Removed existing 'simple-sddm' directory." 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if simple-sddm directory exists in the current directory and remove if it does
|
|
||||||
if [ -d "simple-sddm" ]; then
|
|
||||||
rm -rf "simple-sddm"
|
|
||||||
echo -e "\e[1A\e[K${OK} - Removed existing 'simple-sddm' directory from the current location." 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if git clone https://github.com/JaKooLit/simple-sddm.git; then
|
|
||||||
while [ ! -d "simple-sddm" ]; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ ! -d "/usr/share/sddm/themes" ]; then
|
|
||||||
sudo mkdir -p /usr/share/sddm/themes
|
|
||||||
echo -e "\e[1A\e[K${OK} - Directory '/usr/share/sddm/themes' created." 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo mv simple-sddm /usr/share/sddm/themes/
|
|
||||||
echo -e "[Theme]\nCurrent=simple-sddm" | sudo tee "$sddm_conf_dir/theme.conf.user" &>> "$LOG"
|
|
||||||
else
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - Failed to clone the theme repository. Please check your internet connection or repository availability." | tee -a "$LOG" >&2
|
|
||||||
fi
|
|
||||||
valid_input=true
|
|
||||||
elif [[ $install_sddm_theme =~ ^[Nn]$ ]]; then
|
|
||||||
printf "\n%s - No SDDM themes will be installed.\n" "${NOTE}" 2>&1 | tee -a "$LOG"
|
|
||||||
valid_input=true
|
|
||||||
else
|
|
||||||
printf "\n%s - Invalid input. Please enter 'y' for Yes or 'n' for No.\n" "${ERROR}" 2>&1 | tee -a "$LOG"
|
|
||||||
install_sddm_theme=""
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
clear
|
|
||||||
71
install-scripts/sddm_theme.sh
Executable file
71
install-scripts/sddm_theme.sh
Executable file
@ -0,0 +1,71 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# SDDM themes #
|
||||||
|
|
||||||
|
source_theme="https://codeberg.org/JaKooLit/sddm-sequoia"
|
||||||
|
theme_name="sequoia_2"
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
# 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
|
||||||
|
|
||||||
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm_theme.log"
|
||||||
|
|
||||||
|
# SDDM-themes
|
||||||
|
printf "${INFO} Installing ${SKY_BLUE}Additional SDDM Theme${RESET}\n"
|
||||||
|
|
||||||
|
# Check if /usr/share/sddm/themes/$theme_name exists and remove if it does
|
||||||
|
if [ -d "/usr/share/sddm/themes/$theme_name" ]; then
|
||||||
|
sudo rm -rf "/usr/share/sddm/themes/$theme_name"
|
||||||
|
echo -e "\e[1A\e[K${OK} - Removed existing $theme_name directory." 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if $theme_name directory exists in the current directory and remove if it does
|
||||||
|
if [ -d "$theme_name" ]; then
|
||||||
|
rm -rf "$theme_name"
|
||||||
|
echo -e "\e[1A\e[K${OK} - Removed existing $theme_name directory from the current location." 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone the repository
|
||||||
|
if git clone --depth 1 "$source_theme" "$theme_name"; then
|
||||||
|
if [ ! -d "$theme_name" ]; then
|
||||||
|
echo "${ERROR} Failed to clone the repository." | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create themes directory if it doesn't exist
|
||||||
|
if [ ! -d "/usr/share/sddm/themes" ]; then
|
||||||
|
sudo mkdir -p /usr/share/sddm/themes
|
||||||
|
echo "${OK} - Directory '/usr/share/sddm/themes' created." | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Move cloned theme to the themes directory
|
||||||
|
sudo mv "$theme_name" "/usr/share/sddm/themes/$theme_name" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
# Set up new theme
|
||||||
|
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 -p "$sddm_conf_dir" 2>&1 | tee -a "$LOG"; }
|
||||||
|
|
||||||
|
# Configure theme settings
|
||||||
|
echo -e "[Theme]\nCurrent=$theme_name" | sudo tee "$sddm_conf_dir/theme.conf.user" >> "$LOG"
|
||||||
|
|
||||||
|
# Replace current background from assets
|
||||||
|
sudo cp -r assets/sddm.png "/usr/share/sddm/themes/$theme_name/backgrounds/default" 2>&1 | tee -a "$LOG"
|
||||||
|
sudo sed -i 's|^wallpaper=".*"|wallpaper="backgrounds/default"|' "/usr/share/sddm/themes/$theme_name/theme.conf" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
echo "${OK} - ${MAGENTA}Additional SDDM Theme${RESET} successfully installed." | tee -a "$LOG"
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
echo "${ERROR} - Failed to clone the sddm theme repository. Please check your internet connection." | tee -a "$LOG" >&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
@ -2,6 +2,18 @@
|
|||||||
# 💫 https://github.com/JaKooLit 💫 #
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
# SWWW - Wallpaper Utility #
|
# SWWW - Wallpaper Utility #
|
||||||
|
|
||||||
|
# Check if 'swww' is installed
|
||||||
|
if command -v swww &>/dev/null; then
|
||||||
|
SWWW_VERSION=$(swww -V | awk '{print $NF}')
|
||||||
|
if [[ "$SWWW_VERSION" == "0.9.5" ]]; then
|
||||||
|
echo -e "${OK} ${MAGENTA}swww v0.9.5${RESET} is already installed. Skipping installation."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "${NOTE} ${MAGENTA}swww${RESET} is not installed. Proceeding with installation."
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
swww=(
|
swww=(
|
||||||
liblz4-dev
|
liblz4-dev
|
||||||
)
|
)
|
||||||
@ -24,31 +36,23 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_swww.log"
|
|||||||
MLOG="install-$(date +%d-%H%M%S)_swww2.log"
|
MLOG="install-$(date +%d-%H%M%S)_swww2.log"
|
||||||
|
|
||||||
# Installation of swww compilation needed
|
# Installation of swww compilation needed
|
||||||
printf "\n%s - Installing swww dependencies.... \n" "${NOTE}"
|
printf "\n%s - Installing ${SKY_BLUE}swww $swww_tag and dependencies${RESET} .... \n" "${NOTE}"
|
||||||
|
|
||||||
for PKG1 in "${swww[@]}"; do
|
for PKG1 in "${swww[@]}"; do
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
install_package "$PKG1" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
printf "${NOTE} Installing swww\n"
|
|
||||||
|
|
||||||
# Check if swww folder exists
|
# Check if swww folder exists
|
||||||
if [ -d "swww" ]; then
|
if [ -d "swww" ]; then
|
||||||
printf "${NOTE} swww folder exists. Pulling latest changes...\n"
|
|
||||||
cd swww || exit 1
|
cd swww || exit 1
|
||||||
git pull origin main 2>&1 | tee -a "$MLOG"
|
git pull origin main 2>&1 | tee -a "$MLOG"
|
||||||
else
|
else
|
||||||
printf "${NOTE} Cloning swww repository...\n"
|
|
||||||
if git clone --recursive -b $swww_tag https://github.com/LGFae/swww.git; then
|
if git clone --recursive -b $swww_tag https://github.com/LGFae/swww.git; then
|
||||||
cd swww || exit 1
|
cd swww || exit 1
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Download failed for swww" 2>&1 | tee -a "$LOG"
|
echo -e "${ERROR} Download failed for ${YELLOW}swww $swww_tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -88,4 +92,4 @@ sudo cp -r completions/_swww /usr/share/zsh/site-functions/_swww 2>&1 | tee -a "
|
|||||||
mv "$MLOG" ../Install-Logs/ || true
|
mv "$MLOG" ../Install-Logs/ || true
|
||||||
cd - || exit 1
|
cd - || exit 1
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -12,6 +12,7 @@ thunar=(
|
|||||||
)
|
)
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
|
||||||
# Determine the directory where the script is located
|
# Determine the directory where the script is located
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
@ -24,37 +25,23 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
# Set the name of the log file to include the current date and time
|
# Set the name of the log file to include the current date and time
|
||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_thunar.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_thunar.log"
|
||||||
|
|
||||||
printf "${NOTE} Installing Thunar Packages...\n"
|
# Thunar
|
||||||
|
printf "${NOTE} Installing ${SKY_BLUE}Thunar${RESET} Packages...\n\n"
|
||||||
for THUNAR in "${thunar[@]}"; do
|
for THUNAR in "${thunar[@]}"; do
|
||||||
install_package "$THUNAR" 2>&1 | tee -a "$LOG"
|
install_package "$THUNAR" "$LOG"
|
||||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THUNAR Package installation failed, Please check the installation logs"; exit 1; }
|
|
||||||
done
|
done
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
# Ask the user if they want to use Thunar as the default file manager
|
|
||||||
read -p "${CAT} Do you want to set Thunar as the default file manager? (y/n): " thunar_default
|
|
||||||
|
|
||||||
if [[ "$thunar_default" == [Yy] ]]; then
|
|
||||||
# Setting Thunar as the default file manager
|
|
||||||
xdg-mime default thunar.desktop inode/directory
|
|
||||||
xdg-mime default thunar.desktop application/x-wayland-gnome-saved-search
|
|
||||||
echo "${OK} Thunar has been set as the default file manager." 2>&1 | tee -a "$LOG"
|
|
||||||
else
|
|
||||||
echo "${NOTE} you choose not to set Thunar as default file manager." 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "\n"
|
|
||||||
|
|
||||||
# Check for existing configs and copy if does not exist
|
# Check for existing configs and copy if does not exist
|
||||||
for DIR1 in gtk-3.0 Thunar xfce4; do
|
for DIR1 in gtk-3.0 Thunar xfce4; do
|
||||||
DIRPATH=~/.config/$DIR1
|
DIRPATH=~/.config/$DIR1
|
||||||
if [ -d "$DIRPATH" ]; then
|
if [ -d "$DIRPATH" ]; then
|
||||||
echo -e "${NOTE} Config for $DIR1 found, no need to copy." 2>&1 | tee -a "$LOG"
|
echo -e "${NOTE} Config for ${MAGENTA}$DIR1${RESET} found, no need to copy." 2>&1 | tee -a "$LOG"
|
||||||
else
|
else
|
||||||
echo -e "${NOTE} Config for $DIR1 not found, copying from assets." 2>&1 | tee -a "$LOG"
|
echo -e "${NOTE} Config for ${YELLOW}$DIR1${RESET} not found, copying from assets." 2>&1 | tee -a "$LOG"
|
||||||
cp -r assets/$DIR1 ~/.config/ && echo "Copy $DIR1 completed!" || echo "Error: Failed to copy $DIR1 config files." 2>&1 | tee -a "$LOG"
|
cp -r assets/$DIR1 ~/.config/ && echo "${OK} Copy $DIR1 completed!" || echo "${ERROR} Failed to copy $DIR1 config files." 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
25
install-scripts/thunar_default.sh
Executable file
25
install-scripts/thunar_default.sh
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Thunar-default #
|
||||||
|
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
# 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
|
||||||
|
|
||||||
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_thunar-default.log"
|
||||||
|
|
||||||
|
printf "${INFO} Setting ${SKY_BLUE}Thunar${RESET} as default file manager...\n"
|
||||||
|
|
||||||
|
xdg-mime default thunar.desktop inode/directory
|
||||||
|
xdg-mime default thunar.desktop application/x-wayland-gnome-saved-search
|
||||||
|
echo "${OK} ${MAGENTA}Thunar${RESET} is now set as the default file manager." | tee -a "$LOG"
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
@ -19,7 +19,7 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_wallust.log"
|
|||||||
mkdir -p "$(dirname "$LOG")"
|
mkdir -p "$(dirname "$LOG")"
|
||||||
|
|
||||||
# Install up-to-date Rust
|
# Install up-to-date Rust
|
||||||
echo "Installing most up to date Rust compiler..."
|
echo "${INFO} Installing most ${YELLOW}up to date Rust compiler${RESET} ..."
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 2>&1 | tee -a "$LOG"
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 2>&1 | tee -a "$LOG"
|
||||||
source "$HOME/.cargo/env"
|
source "$HOME/.cargo/env"
|
||||||
|
|
||||||
@ -34,16 +34,16 @@ fi
|
|||||||
printf "\n%.0s" {1..2}
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
# Install Wallust using Cargo
|
# Install Wallust using Cargo
|
||||||
echo "Installing Wallust using Cargo..." | tee -a "$LOG"
|
echo "${INFO} Installing ${SKY_BLUE}Wallust using Cargo${RESET} ..." | tee -a "$LOG"
|
||||||
if cargo install wallust 2>&1 | tee -a "$LOG" ; then
|
if cargo install wallust 2>&1 | tee -a "$LOG" ; then
|
||||||
echo "Wallust installed successfully." | tee -a "$LOG"
|
echo "${OK} ${MAGENTA}Wallust${RESET} installed successfully." | tee -a "$LOG"
|
||||||
|
|
||||||
# Move the newly compiled binary to /usr/local/bin
|
# Move the newly compiled binary to /usr/local/bin
|
||||||
echo "Moving Wallust binary to /usr/local/bin..." | tee -a "$LOG"
|
echo "Moving Wallust binary to /usr/local/bin..." | tee -a "$LOG"
|
||||||
sudo mv "$HOME/.cargo/bin/wallust" /usr/local/bin 2>&1 | tee -a "$LOG"
|
sudo mv "$HOME/.cargo/bin/wallust" /usr/local/bin 2>&1 | tee -a "$LOG"
|
||||||
else
|
else
|
||||||
echo "Error: Wallust installation failed. Check the log file $LOG for details." | tee -a "$LOG"
|
echo "${ERROR} Wallust installation failed. Check the log file $LOG for details." | tee -a "$LOG"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -18,40 +18,10 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log"
|
|||||||
# Check if the file exists and remove it
|
# Check if the file exists and remove it
|
||||||
[[ -f "/usr/lib/xdg-desktop-portal-hyprland" ]] && sudo rm "/usr/lib/xdg-desktop-portal-hyprland"
|
[[ -f "/usr/lib/xdg-desktop-portal-hyprland" ]] && sudo rm "/usr/lib/xdg-desktop-portal-hyprland"
|
||||||
|
|
||||||
printf "${NOTE} Installing xdg-desktop-portals...\n"
|
# XDG-DESKTOP-PORTAL-HYPRLAND
|
||||||
for portal in "${xdg[@]}"; do
|
printf "${NOTE} Installing ${SKY_BLUE}xdg-desktop-portal-hyprland${RESET}\n\n"
|
||||||
install_package "$portal" 2>&1 | tee -a "$LOG"
|
for xdgs in "${xdg[@]}"; do
|
||||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $portal Package installation failed, Please check the installation logs"; exit 1; }
|
install_package "$xdgs" "$LOG"
|
||||||
done
|
done
|
||||||
|
|
||||||
printf "\n\n${NOTE} Checking for other XDG-Desktop-Portal-Implementations...\n"
|
printf "\n%.0s" {1..2}
|
||||||
sleep 1
|
|
||||||
printf "${NOTE} XDG-desktop-portal-KDE & GNOME (if installed) should be manually disabled or removed! I can't remove it... sorry...\n"
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
read -rp "${CAT} Would you like to try to remove other XDG-Desktop-Portal-Implementations? (y/n) " XDPH1
|
|
||||||
echo
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
case $XDPH1 in
|
|
||||||
[Yy])
|
|
||||||
printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n"
|
|
||||||
for portal in xdg-desktop-portal-wlr xdg-desktop-portal-lxqt; do
|
|
||||||
if dpkg -l | grep -q "$portal"; then
|
|
||||||
echo "Removing $portal..."
|
|
||||||
sudo apt-get remove -y "$portal" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
[Nn])
|
|
||||||
echo "No other XDG-implementations will be removed." 2>&1 | tee -a "$LOG"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Invalid input. Please enter 'y' for yes or 'n' for no."
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
clear
|
|
||||||
|
|||||||
@ -31,87 +31,53 @@ done
|
|||||||
# Installing zsh packages
|
# Installing zsh packages
|
||||||
printf "${NOTE} Installing core zsh packages...${RESET}\n"
|
printf "${NOTE} Installing core zsh packages...${RESET}\n"
|
||||||
for ZSHP in "${zsh[@]}"; do
|
for ZSHP in "${zsh[@]}"; do
|
||||||
install_package "$ZSHP" 2>&1 | tee -a "$LOG"
|
install_package "$ZSHP"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $ZSHP Package installation failed, Please check the installation logs"
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
## Optional Pokemon color scripts
|
|
||||||
while true; do
|
|
||||||
read -p "${CAT} Do you want to install Pokemon color scripts? (y/n): " choice
|
|
||||||
case "$choice" in
|
|
||||||
[Yy]*)
|
|
||||||
if [ -d "pokemon-colorscripts" ]; then
|
|
||||||
cd pokemon-colorscripts && git pull && sudo ./install.sh && cd ..
|
|
||||||
else
|
|
||||||
git clone https://gitlab.com/phoneybadger/pokemon-colorscripts.git &&
|
|
||||||
cd pokemon-colorscripts && sudo ./install.sh && cd ..
|
|
||||||
fi
|
|
||||||
sed -i '/#pokemon-colorscripts --no-title -s -r/s/^#//' assets/.zshrc >> "$LOG" 2>&1
|
|
||||||
|
|
||||||
# commenting out fastfetch since pokemon was chosen to install
|
|
||||||
sed -i '/^fastfetch -c $HOME\/.config\/fastfetch\/config-compact.jsonc/s/^/#/' assets/.zshrc >> "$LOG" 2>&1
|
|
||||||
|
|
||||||
echo "${NOTE} Pokemon Installation process completed" 2>&1 | tee -a "$LOG"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
[Nn]*)
|
|
||||||
echo "${MAGENTA} You chose not to install Pokemon Color Scripts." 2>&1 | tee -a "$LOG"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Please enter 'y' for yes or 'n' for no." 2>&1 | tee -a "$LOG"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
printf "\n"
|
|
||||||
|
|
||||||
# Install Oh My Zsh, plugins, and set zsh as default shell
|
# Install Oh My Zsh, plugins, and set zsh as default shell
|
||||||
if command -v zsh >/dev/null; then
|
if command -v zsh >/dev/null; then
|
||||||
printf "${NOTE} Installing Oh My Zsh and plugins...\n"
|
printf "${NOTE} Installing ${SKY_BLUE}Oh My Zsh and plugins${RESET} ...\n"
|
||||||
if [ ! -d "$HOME/.oh-my-zsh" ]; then
|
if [ ! -d "$HOME/.oh-my-zsh" ]; then
|
||||||
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended || true
|
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended || true
|
||||||
else
|
else
|
||||||
echo "Directory .oh-my-zsh already exists. Skipping re-installation." 2>&1 | tee -a "$LOG"
|
echo "${INFO} Directory .oh-my-zsh already exists. Skipping re-installation." 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
# Check if the directories exist before cloning the repositories
|
# Check if the directories exist before cloning the repositories
|
||||||
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-autosuggestions" ]; then
|
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-autosuggestions" ]; then
|
||||||
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions || true
|
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions || true
|
||||||
else
|
else
|
||||||
echo "Directory zsh-autosuggestions already exists. Skipping cloning." 2>&1 | tee -a "$LOG"
|
echo "${INFO} Directory zsh-autosuggestions already exists. Cloning Skipped." 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting" ]; then
|
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting" ]; then
|
||||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting || true
|
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting || true
|
||||||
else
|
else
|
||||||
echo "Directory zsh-syntax-highlighting already exists. Skipping cloning." 2>&1 | tee -a "$LOG"
|
echo "${INFO} Directory zsh-syntax-highlighting already exists. Cloning Skipped." 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if ~/.zshrc and .zprofile exists, create a backup, and copy the new configuration
|
# Check if ~/.zshrc and .zprofile exists, create a backup, and copy the new configuration
|
||||||
if [ -f "$HOME/.zshrc" ]; then
|
if [ -f "$HOME/.zshrc" ]; then
|
||||||
cp -b "$HOME/.zshrc" "$HOME/.zshrc-backup" || true
|
cp -b "$HOME/.zshrc" "$HOME/.zshrc-backup" || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "$HOME/.zprofile" ]; then
|
if [ -f "$HOME/.zprofile" ]; then
|
||||||
cp -b "$HOME/.zprofile" "$HOME/.zprofile-backup" || true
|
cp -b "$HOME/.zprofile" "$HOME/.zprofile-backup" || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Copying the preconfigured zsh themes and profile
|
||||||
|
cp -r 'assets/.zshrc' ~/
|
||||||
|
cp -r 'assets/.zprofile' ~/
|
||||||
|
|
||||||
cp -r 'assets/.zshrc' ~/
|
printf "${NOTE} Changing default shell to ${MAGENTA}zsh${RESET}..."
|
||||||
cp -r 'assets/.zprofile' ~/
|
printf "\n%.0s" {1..2}
|
||||||
|
while ! chsh -s $(which zsh); do
|
||||||
printf "${NOTE} Changing default shell to zsh...\n"
|
echo "${ERROR} Authentication failed. Please enter the correct password." 2>&1 | tee -a "$LOG"
|
||||||
|
sleep 1
|
||||||
while ! chsh -s $(which zsh); do
|
done
|
||||||
echo "${ERROR} Authentication failed. Please enter the correct password."
|
printf "${INFO} Shell changed successfully to ${MAGENTA}zsh${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
printf "\n"
|
|
||||||
printf "${NOTE} Shell changed successfully to zsh.\n" 2>&1 | tee -a "$LOG"
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
35
install-scripts/zsh_pokemon.sh
Executable file
35
install-scripts/zsh_pokemon.sh
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# pokemon-color-scripts#
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
# 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
|
||||||
|
|
||||||
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_zsh_pokemon.log"
|
||||||
|
|
||||||
|
printf "${INFO} Installing ${SKY_BLUE}Pokemon color scripts${RESET} ..."
|
||||||
|
|
||||||
|
if [ -d "pokemon-colorscripts" ]; then
|
||||||
|
cd pokemon-colorscripts && git pull && sudo ./install.sh && cd ..
|
||||||
|
else
|
||||||
|
git clone --depth 1 https://gitlab.com/phoneybadger/pokemon-colorscripts.git &&
|
||||||
|
cd pokemon-colorscripts && sudo ./install.sh && cd ..
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if ~/.zshrc exists
|
||||||
|
if [ -f "$HOME/.zshrc" ]; then
|
||||||
|
sed -i '/#pokemon-colorscripts --no-title -s -r/s/^#//' "$HOME/.zshrc" >> "$LOG" 2>&1
|
||||||
|
sed -i '/^fastfetch -c $HOME\/.config\/fastfetch\/config-compact.jsonc/s/^/#/' "$HOME/.zshrc" >> "$LOG" 2>&11
|
||||||
|
else
|
||||||
|
echo "$HOME/.zshrc not found. Cant enable ${YELLOW}Pokemon color scripts${RESET}" >> "$LOG" 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
259
install.sh
259
install.sh
@ -1,15 +1,32 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# https://github.com/JaKooLit
|
# https://github.com/JaKooLit
|
||||||
|
|
||||||
|
clear
|
||||||
|
|
||||||
|
# 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)"
|
||||||
|
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
|
||||||
|
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
||||||
|
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||||
|
MAGENTA="$(tput setaf 5)"
|
||||||
|
ORANGE="$(tput setaf 214)"
|
||||||
|
WARNING="$(tput setaf 1)"
|
||||||
|
YELLOW="$(tput setaf 3)"
|
||||||
|
GREEN="$(tput setaf 2)"
|
||||||
|
BLUE="$(tput setaf 4)"
|
||||||
|
SKY_BLUE="$(tput setaf 6)"
|
||||||
|
RESET="$(tput sgr0)"
|
||||||
|
|
||||||
|
|
||||||
# Check if running as root. If root, script will exit
|
# Check if running as root. If root, script will exit
|
||||||
if [[ $EUID -eq 0 ]]; then
|
if [[ $EUID -eq 0 ]]; then
|
||||||
echo "This script should not be executed as root! Exiting......."
|
echo "${ERROR} This script should ${WARNING}NOT${RESET} be executed as root!! Exiting......."
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clear
|
|
||||||
|
|
||||||
# Function to check if the system is Ubuntu
|
# Function to check if the system is Ubuntu
|
||||||
is_ubuntu() {
|
is_ubuntu() {
|
||||||
# Check for 'Ubuntu' in /etc/os-release
|
# Check for 'Ubuntu' in /etc/os-release
|
||||||
@ -21,41 +38,58 @@ is_ubuntu() {
|
|||||||
|
|
||||||
# Check if the system is Ubuntu
|
# Check if the system is Ubuntu
|
||||||
if is_ubuntu; then
|
if is_ubuntu; then
|
||||||
echo "This script is NOT intended for Ubuntu / Ubuntu Based. Refer to README for the correct link for Ubuntu-Hyprland project."
|
echo "${WARN}This script is ${WARNING}NOT intended for Ubuntu / Ubuntu Based${RESET}. Refer to ${YELLOW}README for the correct link for Ubuntu-Hyprland project${RESET} "
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clear
|
# Check if --preset argument is provided
|
||||||
|
if [[ "$1" == "--preset" ]]; then
|
||||||
|
|
||||||
|
# nvidia
|
||||||
|
if [[ "$2" == "--nvidia" ]]; then
|
||||||
|
sed -i 's/^nvidia=".*"/nvidia="Y"/' preset.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
source ./preset.sh
|
||||||
|
fi
|
||||||
|
|
||||||
# ASCII art
|
printf "\n%.0s" {1..2}
|
||||||
printf "\n%.0s" {1..3}
|
echo -e "\e[35m
|
||||||
echo " | _. |/ _ _ | o _|_ "
|
╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐
|
||||||
echo " \_| (_| o |\ (_) (_) |_ | |_ "
|
╠╩╗│ ││ │║ ╠═╣└┬┘├─┘├┬┘│ ├─┤│││ ││ 2025
|
||||||
printf "\n%.0s" {1..2}
|
╩ ╩└─┘└─┘╩═╝ ╩ ╩ ┴ ┴ ┴└─┴─┘┴ ┴┘└┘─┴┘
|
||||||
|
\e[0m"
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
# Welcome message
|
# Welcome message
|
||||||
echo "$(tput setaf 6)Welcome to JaKooLit's Debian Trixie/SID Hyprland Install Script!$(tput sgr0)"
|
echo "${SKY_BLUE}Welcome to JaKooLit's Debian Trixie/SID Hyprland (2025) Install Script!${RESET}"
|
||||||
echo
|
echo
|
||||||
echo "$(tput setaf 166)ATTENTION: Run a full system update and reboot first!! (Highly Recommended)$(tput sgr0)"
|
echo "${WARNING}ATTENTION: Run a full system update and Reboot first!! (Highly Recommended) ${RESET}"
|
||||||
echo
|
echo
|
||||||
echo "$(tput setaf 3)NOTE: You will be required to answer some questions during the installation!$(tput sgr0)"
|
echo "${YELLOW}NOTE: You will be required to answer some questions during the installation! ${RESET}"
|
||||||
echo
|
echo
|
||||||
echo "$(tput setaf 3)NOTE: If you are installing on a VM, ensure to enable 3D acceleration; otherwise, Hyprland won't start!$(tput sgr0)"
|
echo "${YELLOW}NOTE: If you are installing on a VM, ensure to enable 3D acceleration else Hyprland wont start! ${RESET}"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
# Prompt user to proceed
|
# Prompt user to proceed
|
||||||
read -p "$(tput setaf 6)Would you like to proceed? (y/n): $(tput sgr0)" proceed
|
read -p "$(tput setaf 6)Would you like to proceed? (y/n): $(tput sgr0)" proceed
|
||||||
|
|
||||||
if [[ "$proceed" != "y" ]]; then
|
if [ "$proceed" != "y" ]; then
|
||||||
echo "Installation aborted."
|
printf "\n%.0s" {1..2}
|
||||||
|
echo "${INFO} Installation aborted. ${SKY_BLUE}No changes in your system.${RESET} ${YELLOW}Goodbye!${RESET}"
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
read -p "$(tput setaf 6)Have you edited your /etc/apt/sources.list? [Very Important] (y/n): $(tput sgr0)" proceed2
|
echo "${NOTE} Ensure to uncomment the ${YELLOW}deb-src's${RESET} in ${YELLOW}/etc/apt/sources.list${RESET}"
|
||||||
|
read -p "${CAT} ${YELLOW}Very Important else script will likely fail${RESET}. OK to proceed? (y/n): ${RESET}" proceed2
|
||||||
|
|
||||||
if [ "$proceed2" != "y" ]; then
|
if [ "$proceed2" != "y" ]; then
|
||||||
echo "Installation aborted Kindly edit your sources.list first. Refer to readme."
|
printf "\n%.0s" {1..2}
|
||||||
|
echo "Installation aborted! Kindly edit your ${YELLOW}sources.list${RESET} first. Refer to readme."
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -64,16 +98,14 @@ if [ ! -d Install-Logs ]; then
|
|||||||
mkdir Install-Logs
|
mkdir Install-Logs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set some colors for output messages
|
printf "\n%.0s" {1..1}
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
# install pciutils if detected not installed. Necessary for detecting GPU
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
if ! dpkg -l | grep -w pciutils > /dev/null; then
|
||||||
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
echo "pciutils is not installed. Installing..."
|
||||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
sudo apt install -y pciutils
|
||||||
MAGENTA=$(tput setaf 5)
|
printf "\n%.0s" {1..1}
|
||||||
WARNING=$(tput setaf 1)
|
fi
|
||||||
YELLOW=$(tput setaf 3)
|
|
||||||
RESET=$(tput sgr0)
|
|
||||||
|
|
||||||
# Function to colorize prompts
|
# Function to colorize prompts
|
||||||
colorize_prompt() {
|
colorize_prompt() {
|
||||||
@ -85,26 +117,21 @@ colorize_prompt() {
|
|||||||
# Set the name of the log file to include the current date and time
|
# Set the name of the log file to include the current date and time
|
||||||
LOG="install-$(date +%d-%H%M%S).log"
|
LOG="install-$(date +%d-%H%M%S).log"
|
||||||
|
|
||||||
# Initialize variables to store user responses
|
|
||||||
bluetooth=""
|
|
||||||
dots=""
|
|
||||||
gtk_themes=""
|
|
||||||
nvidia=""
|
|
||||||
nwg=""
|
|
||||||
rog=""
|
|
||||||
sddm=""
|
|
||||||
thunar=""
|
|
||||||
xdph=""
|
|
||||||
zsh=""
|
|
||||||
|
|
||||||
# Export PKG_CONFIG_PATH for libinput
|
|
||||||
export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
|
|
||||||
|
|
||||||
# Define the directory where your scripts are located
|
# Define the directory where your scripts are located
|
||||||
script_directory=install-scripts
|
script_directory=install-scripts
|
||||||
|
|
||||||
# Function to ask a yes/no question and set the response in a variable
|
# Function to ask a yes/no question and set the response in a variable
|
||||||
ask_yes_no() {
|
ask_yes_no() {
|
||||||
|
if [[ ! -z "${!2}" ]]; then
|
||||||
|
echo "$(colorize_prompt "$CAT" "$1 (Preset): ${!2}")"
|
||||||
|
if [[ "${!2}" = [Yy] ]]; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
eval "$2=''"
|
||||||
|
fi
|
||||||
while true; do
|
while true; do
|
||||||
read -p "$(colorize_prompt "$CAT" "$1 (y/n): ")" choice
|
read -p "$(colorize_prompt "$CAT" "$1 (y/n): ")" choice
|
||||||
case "$choice" in
|
case "$choice" in
|
||||||
@ -138,7 +165,7 @@ execute_script() {
|
|||||||
if [ -f "$script_path" ]; then
|
if [ -f "$script_path" ]; then
|
||||||
chmod +x "$script_path"
|
chmod +x "$script_path"
|
||||||
if [ -x "$script_path" ]; then
|
if [ -x "$script_path" ]; then
|
||||||
"$script_path"
|
env USE_PRESET=$use_preset "$script_path"
|
||||||
else
|
else
|
||||||
echo "Failed to make script '$script' executable."
|
echo "Failed to make script '$script' executable."
|
||||||
fi
|
fi
|
||||||
@ -148,56 +175,81 @@ execute_script() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Collect user responses to all questions
|
# Collect user responses to all questions
|
||||||
printf "\n"
|
# Check if nvidia is present
|
||||||
ask_yes_no "-Do you have any nvidia gpu in your system?" nvidia
|
if lspci | grep -i "nvidia" &> /dev/null; then
|
||||||
printf "\n"
|
printf "\n"
|
||||||
ask_yes_no "-Install GTK themes (required for Dark/Light function)?" gtk_themes
|
printf "${INFO} ${YELLOW}NVIDIA GPU${RESET} detected in your system \n"
|
||||||
printf "\n"
|
printf "${NOTE} Script will install ${YELLOW}nvidia-dkms nvidia-utils and nvidia-settings${RESET} \n"
|
||||||
ask_yes_no "-Do you want to configure Bluetooth?" bluetooth
|
ask_yes_no "-Do you want script to configure ${YELLOW}NVIDIA${RESET} for you?" nvidia
|
||||||
printf "\n"
|
fi
|
||||||
ask_yes_no "-Do you want to install Thunar file manager?" thunar
|
|
||||||
printf "\n"
|
|
||||||
ask_yes_no "-Install AGS (aylur's gtk shell) v1 for Desktop Like Overview?" ags
|
|
||||||
printf "\n"
|
|
||||||
ask_yes_no "-Install & configure SDDM log-in Manager plus (OPTIONAL) SDDM Theme?" sddm
|
|
||||||
printf "\n"
|
|
||||||
ask_yes_no "-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)" xdph
|
|
||||||
printf "\n"
|
|
||||||
ask_yes_no "-Install zsh & oh-my-zsh plus (OPTIONAL) pokemon-colorscripts for tty?" zsh
|
|
||||||
printf "\n"
|
|
||||||
|
|
||||||
# 14 Sep 2024, now in Debian repo
|
|
||||||
#ask_yes_no "-Install nwg-look? (a GTK Theming app - lxappearance-like) WARN! This Package Takes long time to build!" nwg
|
|
||||||
#printf "\n"
|
|
||||||
|
|
||||||
ask_yes_no "-Installing on Asus ROG Laptops?" rog
|
|
||||||
printf "\n"
|
printf "\n"
|
||||||
ask_yes_no "-Do you want to download and install pre-configured Hyprland-dotfiles?" dots
|
ask_yes_no "-Install ${YELLOW}GTK themes${RESET} (required for Dark/Light function)?" gtk_themes
|
||||||
|
|
||||||
printf "\n"
|
printf "\n"
|
||||||
|
ask_yes_no "-Do you want to configure ${YELLOW}Bluetooth${RESET}?" bluetooth
|
||||||
|
|
||||||
# Ensuring all in the scripts folder are made executable
|
printf "\n"
|
||||||
chmod +x install-scripts/*
|
ask_yes_no "-Do you want to install ${YELLOW}Thunar file manager${RESET}?" thunar
|
||||||
|
|
||||||
printf "\n%.0s" {1..3}
|
if [[ "$thunar" == "Y" ]]; then
|
||||||
|
ask_yes_no "-Set ${YELLOW}Thunar${RESET} as the default file manager?" thunar_choice
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Input group
|
||||||
|
printf "\n"
|
||||||
|
if ! groups "$(whoami)" | grep -q '\binput\b'; then
|
||||||
|
printf "${NOTE} adding to ${YELLOW}input${RESET} group might be necessary for ${YELLOW}waybar keyboard-state functionality${RESET} \n"
|
||||||
|
ask_yes_no "-Would you like to be added to the ${YELLOW}input${RESET} group?" input_group
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n"
|
||||||
|
printf "${NOTE} ${YELLOW}AGS Desktop Overview DEMO link${RESET} on README\n"
|
||||||
|
ask_yes_no "-Install ${YELLOW}AGS (aylur's GTK shell) v1${RESET} for Desktop-Like Overview?" ags
|
||||||
|
|
||||||
|
printf "\n"
|
||||||
|
ask_yes_no "-Install & configure ${YELLOW}SDDM${RESET} as login manager?" sddm
|
||||||
# check if any known login managers are active when users choose to install sddm
|
# check if any known login managers are active when users choose to install sddm
|
||||||
if [ "$sddm" == "Y" ]; then
|
if [ "$sddm" == "y" ] || [ "$sddm" == "Y" ]; then
|
||||||
# List of services to check
|
# List of services to check
|
||||||
services=("gdm.service" "gdm3.service" "lightdm.service" "xdm.service" "lxdm.service")
|
services=("gdm.service" "gdm3.service" "lightdm.service" "xdm.service" "lxdm.service")
|
||||||
|
|
||||||
# Loop through each service
|
# Loop through each service
|
||||||
for svc in "${services[@]}"; do
|
for svc in "${services[@]}"; do
|
||||||
if systemctl is-active --quiet "$svc"; then
|
if systemctl is-active --quiet "$svc"; then
|
||||||
echo "${ERROR} $svc is active. Please stop or disable it first or do not choose SDDM to install."
|
echo "${ERROR} ${MAGENTA}$svc${RESET} is active. stop or disable it first or ${YELLOW}DO NOT choose SDDM${RESET} to install."
|
||||||
echo "${NOTE} If you have GDM, no need to install SDDM. GDM will work fine as Login Manager for Hyprland."
|
echo "${NOTE} If you have GDM, no need to install SDDM. GDM will work fine as Login Manager for Hyprland."
|
||||||
printf "\n%.0s" {1..3}
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
if [[ "$sddm" == "Y" ]]; then
|
||||||
|
ask_yes_no "-Download and Install ${YELLOW}SDDM Theme?${RESET} " sddm_theme
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n"
|
||||||
|
ask_yes_no "-Install ${YELLOW}XDG-DESKTOP-PORTAL-HYPRLAND?${RESET} (For proper Screen Share, e.g., OBS)" xdph
|
||||||
|
|
||||||
|
printf "\n"
|
||||||
|
ask_yes_no "-Install ${YELLOW}zsh${RESET} with ${YELLOW}oh-my-zsh?${RESET}" zsh
|
||||||
|
|
||||||
|
if [[ "$zsh" == "Y" ]]; then
|
||||||
|
ask_yes_no "-Add ${YELLOW}Pokemon color scripts?${RESET} in your terminal?" pokemon_choice
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n"
|
||||||
|
ask_yes_no "-Installing on ${YELLOW}Asus ROG laptops?${RESET}" rog
|
||||||
|
|
||||||
|
printf "\n"
|
||||||
|
ask_yes_no "-Do you want to add pre-configured ${YELLOW}KooL's Hyprland dotfiles?${RESET}" dots
|
||||||
|
|
||||||
|
printf "\n"
|
||||||
|
|
||||||
|
# Ensuring all in the scripts folder are made executable
|
||||||
|
chmod +x install-scripts/*
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
sudo apt update
|
sudo apt update
|
||||||
|
|
||||||
# execute pre clean up
|
# execute pre clean up
|
||||||
@ -236,6 +288,9 @@ fi
|
|||||||
if [ "$thunar" == "Y" ]; then
|
if [ "$thunar" == "Y" ]; then
|
||||||
execute_script "thunar.sh"
|
execute_script "thunar.sh"
|
||||||
fi
|
fi
|
||||||
|
if [ "$thunar_choice" == "Y" ]; then
|
||||||
|
execute_script "thunar_default.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$ags" == "Y" ]; then
|
if [ "$ags" == "Y" ]; then
|
||||||
execute_script "ags.sh"
|
execute_script "ags.sh"
|
||||||
@ -244,25 +299,30 @@ fi
|
|||||||
if [ "$sddm" == "Y" ]; then
|
if [ "$sddm" == "Y" ]; then
|
||||||
execute_script "sddm.sh"
|
execute_script "sddm.sh"
|
||||||
fi
|
fi
|
||||||
|
if [ "$sddm_theme" == "Y" ]; then
|
||||||
|
execute_script "sddm_theme.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$xdph" == "Y" ]; then
|
if [ "$xdph" == "Y" ]; then
|
||||||
execute_script "xdph.sh"
|
execute_script "xdph.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [ "$zsh" == "Y" ]; then
|
if [ "$zsh" == "Y" ]; then
|
||||||
execute_script "zsh.sh"
|
execute_script "zsh.sh"
|
||||||
fi
|
fi
|
||||||
|
if [ "$pokemon_choice" == "Y" ]; then
|
||||||
|
execute_script "zsh_pokemon.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
#if [ "$nwg" == "Y" ]; then
|
if [ "$input_group" == "Y" ]; then
|
||||||
# execute_script "nwg-look.sh"
|
execute_script "InputGroup.sh"
|
||||||
#fi
|
fi
|
||||||
|
|
||||||
if [ "$rog" == "Y" ]; then
|
if [ "$rog" == "Y" ]; then
|
||||||
execute_script "rog.sh"
|
execute_script "rog.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
execute_script "InputGroup.sh"
|
|
||||||
|
|
||||||
if [ "$dots" == "Y" ]; then
|
if [ "$dots" == "Y" ]; then
|
||||||
execute_script "dotfiles-branch.sh"
|
execute_script "dotfiles-branch.sh"
|
||||||
fi
|
fi
|
||||||
@ -290,25 +350,42 @@ printf "\n%.0s" {1..1}
|
|||||||
|
|
||||||
# Check if either hyprland or hyprland-git is installed
|
# Check if either hyprland or hyprland-git is installed
|
||||||
if dpkg -l | grep -qw hyprland; then
|
if dpkg -l | grep -qw hyprland; then
|
||||||
printf "\n${OK} Hyprland is installed. However, some essential packages may not be installed Please see above!"
|
printf "\n${OK} Hyprland is installed. However, some essential packages may not be installed. Please see above!"
|
||||||
printf "\n${CAT} Ignore this message if it states 'All essential packages are installed.'\n"
|
printf "\n${CAT} Ignore this message if it states ${YELLOW}All essential packages${RESET} are installed as per above\n"
|
||||||
sleep 2
|
sleep 2
|
||||||
printf "\n${NOTE} You can start Hyprland by typing 'Hyprland' (IF SDDM is not installed) (note the capital H!).\n"
|
printf "\n%.0s" {1..2}
|
||||||
printf "\n${NOTE} However, it is highly recommended to reboot your system.\n\n"
|
|
||||||
|
printf "${SKY_BLUE}Thank you${RESET} for using ${MAGENTA}KooL's Hyprland Dots${RESET}. ${YELLOW}Enjoy and Have a good day!${RESET}"
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
printf "\n${NOTE} You can start Hyprland by typing ${SKY_BLUE}Hyprland${RESET} (IF SDDM is not installed) (note the capital H!).\n"
|
||||||
|
printf "\n${NOTE} However, it is ${YELLOW}highly recommended to reboot${RESET} your system.\n\n"
|
||||||
|
|
||||||
# Prompt user to reboot
|
|
||||||
read -rp "${CAT} Would you like to reboot now? (y/n): " HYP
|
read -rp "${CAT} Would you like to reboot now? (y/n): " HYP
|
||||||
|
|
||||||
# Check if the user answered 'y' or 'Y'
|
HYP=$(echo "$HYP" | tr '[:upper:]' '[:lower:]')
|
||||||
if [[ "$HYP" =~ ^[Yy]$ ]]; then
|
|
||||||
if [[ "$nvidia" == "Y" ]]; then
|
if [[ "$HYP" == "y" || "$HYP" == "yes" ]]; then
|
||||||
echo "${NOTE} NVIDIA GPU detected. Rebooting the system..."
|
echo "${INFO} Rebooting now..."
|
||||||
|
systemctl reboot
|
||||||
|
elif [[ "$HYP" == "n" || "$HYP" == "no" ]]; then
|
||||||
|
echo "${OK} You choose NOT to reboot"
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
# Check if NVIDIA GPU is present
|
||||||
|
if lspci | grep -i "nvidia" &> /dev/null; then
|
||||||
|
echo "${INFO} HOWEVER ${YELLOW}NVIDIA GPU${RESET} detected. Reminder that you must REBOOT your SYSTEM..."
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
fi
|
fi
|
||||||
systemctl reboot
|
else
|
||||||
|
echo "${WARN} Invalid response. Please answer with 'y' or 'n'. Exiting."
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Print error message if neither package is installed
|
# Print error message if neither package is installed
|
||||||
printf "\n${WARN} Hyprland failed to install. Please check 00_CHECK-time_installed.log and other files Install-Logs/ directory...\n\n"
|
printf "\n${WARN} Hyprland is NOT installed. Please check 00_CHECK-time_installed.log and other files in the Install-Logs/ directory..."
|
||||||
|
printf "\n%.0s" {1..3}
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
|||||||
49
preset.sh
Normal file
49
preset.sh
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
|
||||||
|
## -- Make sure you use the right answer or install script will fail ###
|
||||||
|
# Use only Y for Yes and N for No . If you put other letter, the script will fail
|
||||||
|
|
||||||
|
|
||||||
|
###-Would you like script to Configure NVIDIA for you?
|
||||||
|
nvidia="N"
|
||||||
|
|
||||||
|
###-Install GTK themes (required for Dark/Light function)?
|
||||||
|
gtk_themes="Y"
|
||||||
|
|
||||||
|
###-Do you want to configure Bluetooth?
|
||||||
|
bluetooth="Y"
|
||||||
|
|
||||||
|
###-Do you want to install Thunar file manager?
|
||||||
|
thunar="Y"
|
||||||
|
### Do you want to set Thunar as the default file manager?
|
||||||
|
thunar_choice="Y"
|
||||||
|
|
||||||
|
|
||||||
|
### Adding user to the 'input' group might be necessary for waybar keyboard-state functionality
|
||||||
|
input_group="Y"
|
||||||
|
|
||||||
|
### Desktop overview Demo Link in README
|
||||||
|
### Install AGS (aylur's GTK shell) v1 for Desktop-Like Overview?"
|
||||||
|
ags="Y"
|
||||||
|
|
||||||
|
###-Install & configure SDDM log-in Manager
|
||||||
|
sddm="Y"
|
||||||
|
### install and download SDDM themes
|
||||||
|
sddm_theme="Y"
|
||||||
|
|
||||||
|
###-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)
|
||||||
|
xdph="Y"
|
||||||
|
|
||||||
|
### Shell extension. Bash alternative
|
||||||
|
###-Install zsh, oh-my-zsh
|
||||||
|
zsh="Y"
|
||||||
|
|
||||||
|
### add Pokemon color scripts to terminal
|
||||||
|
pokemon_choice="Y"
|
||||||
|
|
||||||
|
### This will install ASUSCTL & SUPERGFXCTL
|
||||||
|
###-Installing on Asus ROG Laptops?
|
||||||
|
rog="N"
|
||||||
|
|
||||||
|
###-Do you want to add pre-configured KooL's Hyprland dotfiles?
|
||||||
|
dots="Y"
|
||||||
Loading…
x
Reference in New Issue
Block a user