Compare commits
99 Commits
Arch-Hyprl
...
Arch-Hyprl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0803fb9c0f | ||
|
|
10d45b5d99 | ||
|
|
3fcfdc0bad | ||
|
|
5011f153be | ||
|
|
672a700695 | ||
|
|
78310220d4 | ||
|
|
409c612049 | ||
|
|
aab92dac45 | ||
|
|
165b06ea25 | ||
|
|
9ff63be4ac | ||
|
|
807ca99fc2 | ||
|
|
63330afe2f | ||
|
|
6b88c9cc58 | ||
|
|
ced0769af2 | ||
|
|
26ee47374d | ||
|
|
14711bacd3 | ||
|
|
ead1dc65a5 | ||
|
|
d29eee9b17 | ||
|
|
6cfb2ef41f | ||
|
|
7b759fd829 | ||
|
|
585357ca07 | ||
|
|
1f034b4f22 | ||
|
|
36e84ebc53 | ||
|
|
a4164ca612 | ||
|
|
ff2e5a02e3 | ||
|
|
eedc504ecd | ||
|
|
6820111709 | ||
|
|
ffee7f7b9a | ||
|
|
9b3df653a9 | ||
|
|
050fd2dcc4 | ||
|
|
2c54155221 | ||
|
|
1e1253d1e6 | ||
|
|
8c0de4d74f | ||
|
|
4212522647 | ||
|
|
9b41ac3eeb | ||
|
|
750d565ee1 | ||
|
|
79b725deb6 | ||
|
|
cde0a7c6f8 | ||
|
|
3e0c99b822 | ||
|
|
e2e2e47738 | ||
|
|
f4a2591cde | ||
|
|
817c1d9810 | ||
|
|
d158b95283 | ||
|
|
a5aab435fd | ||
|
|
3c65d6b5b6 | ||
|
|
e632e64fce | ||
|
|
9e144ad61a | ||
|
|
92b279e5a0 | ||
|
|
64040f0b34 | ||
|
|
c93101a99e | ||
|
|
bab65fd28d | ||
|
|
ccb1ceb29e | ||
|
|
5fb35a7d3e | ||
|
|
c20d0682d1 | ||
|
|
acc2238bf0 | ||
|
|
a74b17a97c | ||
|
|
068d55dd4b | ||
|
|
06187ec5e6 | ||
|
|
f0c32198fc | ||
|
|
ec1285d8d1 | ||
|
|
3486e33dde | ||
|
|
0bdef7305d | ||
|
|
f3d0b3ddfb | ||
|
|
96d3adc1ed | ||
|
|
e6b78f074a | ||
|
|
902464683c | ||
|
|
3010cc882d | ||
|
|
cd16826482 | ||
|
|
96c03b18a2 | ||
|
|
11a27c79b9 | ||
|
|
e565faf376 | ||
|
|
17494d5d9d | ||
|
|
971a4083ff | ||
|
|
432a2070cf | ||
|
|
450267e45b | ||
|
|
279536e69b | ||
|
|
ffaf189402 | ||
|
|
e31f518c36 | ||
|
|
3c6090925b | ||
|
|
d345c08e01 | ||
|
|
36b0732056 | ||
|
|
30fb2d1814 | ||
|
|
213e3757df | ||
|
|
e87f6c1beb | ||
|
|
16f1b2418d | ||
|
|
54ff099d51 | ||
|
|
79ce9a266e | ||
|
|
ab7063cadc | ||
|
|
eafb151d0d | ||
|
|
7976768137 | ||
|
|
59f9364309 | ||
|
|
185a7d2db7 | ||
|
|
07ab9e9147 | ||
|
|
f0186dec33 | ||
|
|
bf44e13dac | ||
|
|
aae594ecff | ||
|
|
c3c4d621ca | ||
|
|
58185e1dd3 | ||
|
|
cc3d20e664 |
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
blank_issues_enabled: false
|
||||
@@ -1,5 +1,20 @@
|
||||
## CHANGELOGS
|
||||
|
||||
## 20 March 2025
|
||||
- adjusted hyprland installation script. This is great for those who are using -git packages
|
||||
- added findutils as dependencies
|
||||
|
||||
## 11 March 2025
|
||||
- Added uninstall script
|
||||
- forked AGS v1 into JakooLit repo. This is just incase Aylur decide to take down v1
|
||||
|
||||
## 10 March 2025
|
||||
- Dropped pyprland in favor of hyprland built in tool for a drop down like terminal and Desktop magnifier
|
||||
|
||||
## 06 March 2025
|
||||
- Switched to whiptail version for Y & N questions
|
||||
- switched eza to lsd
|
||||
|
||||
## 23 Feb 2025
|
||||
- added Victor Mono Font for proper hyprlock font rendering for Dots v2.3.12
|
||||
- added Fantasque Sans Mono Nerd for Kitty
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Contributing to Community Standards
|
||||
# Contributing to KooL Hyprland Projects
|
||||
|
||||
Thank you for your interest in contributing to Community Standards! We welcome any contributions, including bug fixes, feature enhancements, documentation improvements, and other general improvements.
|
||||
Thank you for your interest in contributing to KooL Hyprland Projects! We welcome any contributions, including bug fixes, feature enhancements, documentation improvements, and other general improvements.
|
||||
|
||||
## Getting Started
|
||||
|
||||
@@ -55,10 +55,9 @@ Thank you for your interest in contributing to Community Standards! We welcome a
|
||||
- Make sure all tests pass or fully tested before submitting your changes.
|
||||
- Keep your pull request focused and avoid including unrelated changes.
|
||||
- Remember to follow the following files before submitting your changes.
|
||||
- [bug_report.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/bug_report.md) - Use this template to create a report to help us improve.
|
||||
- [feature_request.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/feature_request.md) - Use this template to suggest a feature for this project.
|
||||
- [documentation_update.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/documentation_update.md) - Use this template to propose a change to the documentation.
|
||||
- [custom.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/custom.md) - Use this template to submit a custom issue.
|
||||
- [bug.yml](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/bug.yml) - Use this template to create a report to help us improve.
|
||||
- [feature.yml](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/feature.yml) - Use this template to suggest a feature for this project.
|
||||
- [documentation-update.yml](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/documentation-update.yml) - Use this template to propose a change to the documentation.
|
||||
- [PULL_REQUEST_TEMPLATE.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/PULL_REQUEST_TEMPLATE.md) - Use this template to submit a pull request.
|
||||
- [COMMIT_MESSAGE_GUIDELINES.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/COMMIT_MESSAGE_GUIDELINES.md) - Read this file to learn about the commit message guidelines.
|
||||
- [CONTRIBUTING.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/CONTRIBUTING.md) - Read this file to learn about the contributing guidelines.
|
||||
@@ -67,4 +66,4 @@ Thank you for your interest in contributing to Community Standards! We welcome a
|
||||
|
||||
## Contact
|
||||
|
||||
If you have any questions, feel free to contact via [GitHub Discussions](https://github.com/JaKooLit/Arch-Hyprland/discussions) or [Through Discord Server](https://discord.gg/V2SJ92vbEN)
|
||||
If you have any questions, feel free to contact via [GitHub Discussions](https://github.com/JaKooLit/Arch-Hyprland/discussions) or [Through Discord Server](https://discord.gg/kool-tech-world)
|
||||
|
||||
BIN
Installer.png
BIN
Installer.png
Binary file not shown.
|
Before Width: | Height: | Size: 589 KiB |
72
README.md
72
README.md
@@ -6,7 +6,7 @@
|
||||
<img src="https://raw.githubusercontent.com/JaKooLit/Hyprland-Dots/main/assets/latte.png" width="400" />
|
||||
</p>
|
||||
|
||||
   <a href="https://discord.gg/9JEgZsfhex"> <img src="https://img.shields.io/discord/1151869464405606400?style=for-the-badge&logo=discord&color=cba6f7&link=https%3A%2F%2Fdiscord.gg%9JEgZsfhex"> </a>
|
||||
   <a href="https://discord.gg/kool-tech-world"> <img src="https://img.shields.io/discord/1151869464405606400?style=for-the-badge&logo=discord&color=cba6f7&link=https%3A%2F%2Fdiscord.gg%kool-tech-world"> </a>
|
||||
|
||||
|
||||
<br/>
|
||||
@@ -34,7 +34,7 @@
|
||||
<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/FAQ"><kbd> <br> FAQ <br> </kbd></a>  
|
||||
<a href="https://discord.gg/9JEgZsfhex"><kbd> <br> Discord <br> </kbd></a>
|
||||
<a href="https://discord.gg/kool-tech-world"><kbd> <br> Discord <br> </kbd></a>
|
||||
</div><br>
|
||||
|
||||
<p align="center">
|
||||
@@ -66,10 +66,7 @@ https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872
|
||||
- the wallpaper offered to be downloaded towards the end is from this [`REPO`](https://github.com/JaKooLit/Wallpaper-Bank)
|
||||
|
||||
> [!IMPORTANT]
|
||||
> install a backup tool like `snapper` or `timeshift`. and Backup your system before installing hyprland using this script. This script does NOT include uninstallation of packages
|
||||
|
||||
> [!NOTE]
|
||||
> Main reason why I have not included an uninstallation script is simple. Some packages maybe already installed on your system by default. If I create an uninstall script with packages that I have set to install, you may end up a unrecoverable system.
|
||||
> install a backup tool like `snapper` or `timeshift`. and Backup your system before installing hyprland using this script (HIGHLY RECOMMENDED)
|
||||
|
||||
> [!CAUTION]
|
||||
> Download this script on a directory where you have write permissions. ie. HOME. Or any directory within your home directory. Else script will fail
|
||||
@@ -84,6 +81,13 @@ https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872
|
||||
#### ✨ Customize the packages to be installed
|
||||
- inside the install-scripts directory, you can edit 00-hypr-pkgs.sh. Care though as the Hyprland Dots may not work properly!
|
||||
|
||||
#### 🚩 Switching to SDDM assuming you have GDM installed and running
|
||||
- if you really want switch to SDDM from GDM, you need to disable the gdm first.
|
||||
- `sudo systemctl disable gdm.service` then reboot
|
||||
- after reboot, need to ran the install script via tty. So suggest download the install script first. Then disable gdm. reboot and once logged in, cd into Distro-Hyprland then `./install.sh` and then choose SDDM and SDDM theme in the options.
|
||||
- NOTE: Distro-Hyprland is Arch-Hyprland, or Fedora-Hyprland .. depends on which install scripts you downloaded.
|
||||
|
||||
|
||||
#### 💫 SDDM and GTK Themes offered
|
||||
- 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.
|
||||
@@ -92,10 +96,20 @@ https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872
|
||||
- By default, nvidia-dkms will be installed. and only supports GTX 900 and newer. If required to install older driver, edit the nvidia.sh in install-scripts directory
|
||||
|
||||
> [!IMPORTANT]
|
||||
> If you want to use nouveau driver, choose N when asked if you have nvidia gpu. This is because the nvidia installer part, it will blacklist nouveau. Hyprland will still be installed but it will skip blacklisting nouveau.
|
||||
> If you want to use nouveau driver, dont choose nvidia in the option. This is because the nvidia installer part, it will blacklist nouveau. Hyprland will still be installed but it will skip blacklisting nouveau.
|
||||
|
||||
- After installation, check [`THIS`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Notes_to_remember#--for-nvidia-gpu-users)
|
||||
|
||||
## ✨ Auto clone and install
|
||||
> [!CAUTION]
|
||||
> If you are using FISH SHELL, DO NOT use this function. Clone and ran install.sh instead
|
||||
|
||||
- you can use this command to automatically clone the installer and ran the script for you
|
||||
- NOTE: `curl` package is required before running this command
|
||||
```bash
|
||||
sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Arch-Hyprland/main/auto-install.sh)
|
||||
```
|
||||
|
||||
## ✨ to use this script
|
||||
- clone this repo (latest commit only) to reduce file size download by using git. Change directory, make executable and run the script
|
||||
|
||||
@@ -106,26 +120,10 @@ chmod +x install.sh
|
||||
./install.sh
|
||||
```
|
||||
|
||||
<p align="center">
|
||||
<img align="center" width="100%" src="https://raw.githubusercontent.com/JaKooLit/Arch-Hyprland/main/Installer.png" />
|
||||
|
||||
|
||||
### 🤟 semi-unattended installation (new for Feb 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
|
||||
|
||||
### 💥 💥 UNINSTALL SCRIPT / Removal of Config Files
|
||||
- 11 March 2025, due to popular request, created a guided `uninstall.sh` script. USE this with caution as it may render your system unstable.
|
||||
- I will not be responsible if your system breaks
|
||||
- The best still to revert to previous state of your system is via `timeshift or snapper`
|
||||
|
||||
#### ✨ for ZSH and OH-MY-ZSH installation
|
||||
> installer should auto change your default shell to zsh. However, if it does not, do this
|
||||
@@ -213,16 +211,16 @@ env = WLR_RENDERER_ALLOW_SOFTWARE,1
|
||||
- [`SEE HERE`](https://github.com/JaKooLit/Hyprland-Dots/discussions/123#discussion-6035205)
|
||||
|
||||
#### 📒 Final Notes
|
||||
- join my discord channel [`Discord`](https://discord.com/invite/9JEgZsfhex)
|
||||
- join my discord channel [`Discord`](https://discord.com/invite/kool-tech-world)
|
||||
- Feel free to copy, re-distribute, and use this script however you want. Would appreciate if you give me some loves by crediting my work :)
|
||||
|
||||
|
||||
|
||||
#### ⏩ Contributing
|
||||
#### ✍️ Contributing
|
||||
- As stated above, these script does not contain actual config files. These are only the installer of packages
|
||||
- The development branch of this script is pulling the latest "stable" releases of the Hyprland-Dotfiles.
|
||||
- If you want to contribute and/or test the Hyprland-Dotfiles (development branch), [`Hyprland-Dots-Development`](https://github.com/JaKooLit/Hyprland-Dots/tree/development)
|
||||
|
||||
- Want to contribute on KooL-Hyprland-Dots Click [`HERE`](https://github.com/JaKooLit/Hyprland-Dots/blob/main/CONTRIBUTING.md) for a guide how to contribute
|
||||
- Want to contribute on This Installer? Click [`HERE`](https://github.com/JaKooLit/Arch-Hyprland/blob/main/CONTRIBUTING.md) for a guide how to contribute
|
||||
|
||||
#### 👍👍👍 Thanks and Credits!
|
||||
- [`Hyprland`](https://hyprland.org/) Of course to Hyprland and @vaxerski for this awesome Dynamic Tiling Manager.
|
||||
@@ -232,12 +230,20 @@ env = WLR_RENDERER_ALLOW_SOFTWARE,1
|
||||
|
||||
- Subscribe to my Youtube Channel [YouTube](https://www.youtube.com/@Ja.KooLit)
|
||||
|
||||
- You can also buy me Coffee Through ko-fi.com or Coffee.com 🤩
|
||||
- you can also give support through coffee's or btc 😊
|
||||
|
||||
<a href='https://ko-fi.com/jakoolit' target='_blank'><img height='35' style='border:0px;height:46px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com' />
|
||||
[](https://ko-fi.com/jakoolit)
|
||||
|
||||
or
|
||||
|
||||
[](https://www.buymeacoffee.com/JaKooLit)
|
||||
|
||||
Or you can donate cryto on my btc wallet :)
|
||||
> 1N3MeV2dsX6gQB42HXU6MF2hAix1mqjo8i
|
||||
|
||||

|
||||
|
||||
|
||||
#### 📹 Youtube videos (Click to view and watch the playlist) 📹
|
||||
[](https://youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx&si=iaNjLulFdsZ6AV-t)
|
||||
|
||||
|
||||
@@ -25,10 +25,12 @@ source $ZSH/oh-my-zsh.sh
|
||||
# fastfetch. Will be disabled if above colorscript was chosen to install
|
||||
fastfetch -c $HOME/.config/fastfetch/config-compact.jsonc
|
||||
|
||||
# Set-up icons for files/folders in terminal
|
||||
alias ls='eza -a --icons'
|
||||
alias ll='eza -al --icons'
|
||||
alias lt='eza -a --tree --level=1 --icons'
|
||||
# Set-up icons for files/directories in terminal using lsd
|
||||
alias ls='lsd'
|
||||
alias l='ls -l'
|
||||
alias la='ls -a'
|
||||
alias lla='ls -la'
|
||||
alias lt='ls --tree'
|
||||
|
||||
# Set-up FZF key bindings (CTRL R for fuzzy history finder)
|
||||
source <(fzf --zsh)
|
||||
|
||||
@@ -35,7 +35,6 @@ packages=(
|
||||
"hypridle-git"
|
||||
"xdg-desktop-portal-hyprland-git"
|
||||
"hyprpolkitagent-git"
|
||||
"pyprland"
|
||||
)
|
||||
|
||||
# rotating stars progress
|
||||
|
||||
@@ -35,7 +35,6 @@ packages=(
|
||||
"hypridle"
|
||||
"xdg-desktop-portal-hyprland"
|
||||
"hyprpolkitagent"
|
||||
"pyprland"
|
||||
)
|
||||
|
||||
# rotating stars progress
|
||||
|
||||
@@ -45,7 +45,6 @@ packages=(
|
||||
"xdg-desktop-portal-hyprland-git"
|
||||
"hyprpolkitagent"
|
||||
"hyprpolkitagent-git"
|
||||
"pyprland"
|
||||
)
|
||||
|
||||
# Function for uninstall packages
|
||||
|
||||
BIN
assets/sddm.png
BIN
assets/sddm.png
Binary file not shown.
|
Before Width: | Height: | Size: 1007 KiB After Width: | Height: | Size: 1.5 MiB |
50
auto-install.sh
Normal file
50
auto-install.sh
Normal file
@@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
# https://github.com/JaKooLit
|
||||
|
||||
# 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)"
|
||||
|
||||
# Variables
|
||||
Distro="Arch-Hyprland"
|
||||
Github_URL="https://github.com/JaKooLit/$Distro.git"
|
||||
Distro_DIR="$HOME/$Distro"
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
if ! command -v git &> /dev/null
|
||||
then
|
||||
echo "${INFO} Git not found! ${SKY_BLUE}Installing Git...${RESET}"
|
||||
if ! sudo pacman -S git --noconfirm; then
|
||||
echo "${ERROR} Failed to install Git. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
if [ -d "$Distro_DIR" ]; then
|
||||
echo "${YELLOW}$Distro_DIR exists. Updating the repository... ${RESET}"
|
||||
cd "$Distro_DIR"
|
||||
git stash && git pull
|
||||
chmod +x install.sh
|
||||
./install.sh
|
||||
else
|
||||
echo "${MAGENTA}$Distro_DIR does not exist. Cloning the repository...${RESET}"
|
||||
git clone --depth=1 "$Github_URL" "$Distro_DIR"
|
||||
cd "$Distro_DIR"
|
||||
chmod +x install.sh
|
||||
./install.sh
|
||||
fi
|
||||
@@ -1,23 +1,35 @@
|
||||
#!/bin/bash
|
||||
# 💫 https://github.com/JaKooLit 💫 #
|
||||
# base devel + archlinux-keyring #
|
||||
# base-devel + archlinux-keyring #
|
||||
|
||||
base=(
|
||||
base-devel
|
||||
archlinux-keyring
|
||||
findutils
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||
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" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_base.log"
|
||||
|
||||
|
||||
# Installation of main components
|
||||
printf "\n%s - Installing ${SKY_BLUE}base-devel${RESET} \n" "${NOTE}"
|
||||
# Installation of main components with pacman
|
||||
echo -e "\nInstalling ${SKY_BLUE}base-devel${RESET} and ${SKY_BLUE}archlinux-keyring${RESET}..."
|
||||
|
||||
for PKG1 in "${base[@]}"; do
|
||||
echo "Installing $PKG1 with pacman..."
|
||||
install_package_pacman "$PKG1" "$LOG"
|
||||
done
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
@@ -25,11 +25,11 @@ hypr_package=(
|
||||
jq
|
||||
kitty
|
||||
kvantum
|
||||
libspng
|
||||
nano
|
||||
network-manager-applet
|
||||
pamixer
|
||||
pavucontrol
|
||||
pipewire-alsa
|
||||
playerctl
|
||||
python-requests
|
||||
python-pyquery
|
||||
@@ -68,7 +68,6 @@ hypr_package_2=(
|
||||
nwg-displays
|
||||
pacman-contrib
|
||||
qalculate-gtk
|
||||
vim
|
||||
yt-dlp
|
||||
)
|
||||
|
||||
@@ -76,8 +75,8 @@ hypr_package_2=(
|
||||
uninstall=(
|
||||
aylurs-gtk-shell
|
||||
dunst
|
||||
mako
|
||||
cachyos-hyprland-settings
|
||||
mako
|
||||
rofi
|
||||
wallust-git
|
||||
rofi-lbonn-wayland
|
||||
@@ -85,14 +84,19 @@ uninstall=(
|
||||
)
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
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)_hypr-pkgs.log"
|
||||
@@ -114,7 +118,7 @@ fi
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
# Installation of main components
|
||||
printf "\n%s - Installing ${SKY_BLUE}KooL's hyprland necessary packages${RESET} .... \n" "${NOTE}"
|
||||
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"
|
||||
|
||||
@@ -18,7 +18,6 @@ packages=(
|
||||
hypridle
|
||||
hyprlock
|
||||
hyprland
|
||||
pyprland
|
||||
)
|
||||
|
||||
# Local packages that should be in /usr/local/bin/
|
||||
@@ -67,7 +66,7 @@ done
|
||||
|
||||
# Log missing packages
|
||||
if [ ${#missing[@]} -eq 0 ] && [ ${#local_missing[@]} -eq 0 ]; then
|
||||
echo "${OK} GREAT! It seems All ${YELLOW}essential packages${RESET} are installed." | tee -a "$LOG"
|
||||
echo "${OK} GREAT! All ${YELLOW}essential packages${RESET} have been successfully installed." | tee -a "$LOG"
|
||||
else
|
||||
if [ ${#missing[@]} -ne 0 ]; then
|
||||
echo "${WARN} The following packages are not installed and will be logged:"
|
||||
|
||||
@@ -71,7 +71,6 @@ install_package_pacman() {
|
||||
}
|
||||
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
# Function to install packages with either yay or paru
|
||||
install_package() {
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
@@ -110,6 +109,7 @@ install_package_f() {
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Function for removing packages
|
||||
uninstall_package() {
|
||||
local pkg="$1"
|
||||
|
||||
@@ -3,14 +3,19 @@
|
||||
# Adding users into input group #
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
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)_input.log"
|
||||
|
||||
@@ -26,14 +26,19 @@ ags=(
|
||||
ags_tag="v1.9.0"
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
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)_ags.log"
|
||||
@@ -62,18 +67,18 @@ printf "\n%.0s" {1..1}
|
||||
# ags v1
|
||||
printf "${NOTE} Install and Compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}..\n"
|
||||
|
||||
# Check if folder exists and remove it
|
||||
if [ -d "ags" ]; then
|
||||
printf "${NOTE} Removing existing ags folder...\n"
|
||||
rm -rf "ags"
|
||||
# Check if directory exists and remove it
|
||||
if [ -d "ags_v1.9.0" ]; then
|
||||
printf "${NOTE} Removing existing ags directory...\n"
|
||||
rm -rf "ags_v1.9.0"
|
||||
fi
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
printf "${INFO} Kindly Standby...cloning and compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}...\n"
|
||||
printf "\n%.0s" {1..1}
|
||||
# Clone repository with the specified tag and capture git output into MLOG
|
||||
if git clone --recursive -b "$ags_tag" --depth 1 https://github.com/Aylur/ags.git; then
|
||||
cd ags || exit 1
|
||||
if git clone --depth=1 https://github.com/JaKooLit/ags_v1.9.0.git; then
|
||||
cd ags_v1.9.0 || exit 1
|
||||
npm install
|
||||
meson setup build
|
||||
if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then
|
||||
|
||||
@@ -9,14 +9,19 @@ blue=(
|
||||
)
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
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)_bluetooth.log"
|
||||
|
||||
@@ -2,22 +2,30 @@
|
||||
# 💫 https://github.com/JaKooLit 💫 #
|
||||
# Hyprland-Dots to download from main #
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
|
||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
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" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if Hyprland-Dots exists
|
||||
printf "${NOTE} Cloning and Installing ${SKY_BLUE}KooL's Hyprland Dots${RESET}....\n"
|
||||
|
||||
if [ -d Hyprland-Dots ]; then
|
||||
cd Hyprland-Dots
|
||||
git stash
|
||||
git pull
|
||||
git stash apply
|
||||
git stash && git pull
|
||||
chmod +x copy.sh
|
||||
./copy.sh
|
||||
else
|
||||
if git clone --depth 1 https://github.com/JaKooLit/Hyprland-Dots; then
|
||||
if git clone --depth=1 https://github.com/JaKooLit/Hyprland-Dots; then
|
||||
cd Hyprland-Dots || exit 1
|
||||
chmod +x copy.sh
|
||||
./copy.sh
|
||||
|
||||
@@ -16,18 +16,24 @@ fonts=(
|
||||
ttf-jetbrains-mono
|
||||
ttf-jetbrains-mono-nerd
|
||||
ttf-victor-mono
|
||||
noto-fonts
|
||||
)
|
||||
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
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)_fonts.log"
|
||||
|
||||
@@ -8,15 +8,18 @@ engine=(
|
||||
)
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
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)_themes.log"
|
||||
@@ -29,17 +32,17 @@ done
|
||||
|
||||
# Check if the directory exists and delete it if present
|
||||
if [ -d "GTK-themes-icons" ]; then
|
||||
echo "$NOTE GTK themes and Icons folder exist..deleting..." 2>&1 | tee -a "$LOG"
|
||||
echo "$NOTE GTK themes and Icons directory exist..deleting..." 2>&1 | tee -a "$LOG"
|
||||
rm -rf "GTK-themes-icons" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
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
|
||||
chmod +x auto-extract.sh
|
||||
./auto-extract.sh
|
||||
cd ..
|
||||
echo "$OK Extracted GTK Themes & Icons to ~/.icons & ~/.themes folders" 2>&1 | tee -a "$LOG"
|
||||
echo "$OK Extracted GTK Themes & Icons to ~/.icons & ~/.themes directories" 2>&1 | tee -a "$LOG"
|
||||
else
|
||||
echo "$ERROR Download failed for GTK themes and Icons.." 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
@@ -2,41 +2,50 @@
|
||||
# 💫 https://github.com/JaKooLit 💫 #
|
||||
# Main Hyprland Package #
|
||||
|
||||
hypr=(
|
||||
hyprland
|
||||
hypr_eco=(
|
||||
hypridle
|
||||
hyprlock
|
||||
pyprland
|
||||
libspng
|
||||
)
|
||||
|
||||
hypr=(
|
||||
hyprland
|
||||
)
|
||||
|
||||
## 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)"
|
||||
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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland.log"
|
||||
|
||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||
|
||||
# Removing other Hyprland to avoid conflict
|
||||
printf "${YELLOW} Checking for other hyprland packages and remove if any..${RESET}\n"
|
||||
if pacman -Qs hyprland >/dev/null; then
|
||||
printf "${YELLOW} Hyprland detected. attempting to uninstall to install Hyprland from official repo...${RESET}\n"
|
||||
for hyprnvi in hyprland-git hyprland-nvidia hyprland-nvidia-git hyprland-nvidia-hidpi-git; do
|
||||
sudo pacman -R --noconfirm "$hyprnvi" 2>/dev/null | tee -a "$LOG" || true
|
||||
# Check if Hyprland is installed
|
||||
if command -v Hyprland >/dev/null 2>&1; then
|
||||
printf "$NOTE - ${YELLOW} Hyprland is already installed.${RESET} No action required.\n"
|
||||
else
|
||||
printf "$INFO - Hyprland not found. ${SKY_BLUE} Installing Hyprland...${RESET}\n"
|
||||
for HYPRLAND in "${hypr[@]}"; do
|
||||
install_package "$HYPRLAND" "$LOG"
|
||||
done
|
||||
fi
|
||||
|
||||
# Hyprland
|
||||
printf "${NOTE} Installing ${SKY_BLUE}Hyprland packages${RESET} .......\n"
|
||||
for HYPR in "${hypr[@]}"; do
|
||||
install_package "$HYPR" "$LOG"
|
||||
# Hyprland -eco packages
|
||||
printf "${NOTE} - Installing ${SKY_BLUE}other Hyprland-eco packages${RESET} .......\n"
|
||||
for HYPR in "${hypr_eco[@]}"; do
|
||||
if ! command -v "$HYPR" >/dev/null 2>&1; then
|
||||
printf "$INFO - ${YELLOW}$HYPR${RESET} not found. Installing ${YELLOW}$HYPR...${RESET}\n"
|
||||
install_package "$HYPR" "$LOG"
|
||||
else
|
||||
printf "$NOTE - ${YELLOW} $HYPR is already installed.${RESET} No action required.\n"
|
||||
fi
|
||||
done
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
@@ -12,14 +12,19 @@ nvidia_pkg=(
|
||||
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
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)_nvidia.log"
|
||||
|
||||
@@ -3,14 +3,19 @@
|
||||
# Nvidia Blacklist #
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
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)_nvidia.log"
|
||||
|
||||
@@ -3,7 +3,18 @@
|
||||
# pacman adding up extra-spices #
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||
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" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_pacman.log"
|
||||
|
||||
@@ -37,7 +37,7 @@ if [ -n "$ISAUR" ]; then
|
||||
else
|
||||
printf "\n%s - Installing ${SKY_BLUE}$pkg${RESET} from AUR\n" "${NOTE}"
|
||||
|
||||
# Check if folder exists and remove it
|
||||
# Check if directory exists and remove it
|
||||
if [ -d "$pkg" ]; then
|
||||
rm -rf "$pkg"
|
||||
fi
|
||||
@@ -45,7 +45,7 @@ fi
|
||||
cd $pkg || { printf "%s - Failed to enter $pkg directory\n" "${ERROR}"; exit 1; }
|
||||
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install ${YELLOW}$pkg${RESET} from AUR\n" "${ERROR}"; exit 1; }
|
||||
|
||||
# moving install logs in to Install-Logs folder
|
||||
# moving install logs in to Install-Logs directory
|
||||
mv install*.log ../Install-Logs/ || true
|
||||
cd ..
|
||||
fi
|
||||
|
||||
@@ -18,14 +18,13 @@ pipewire_2=(
|
||||
)
|
||||
|
||||
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##############
|
||||
# Set some colors for output messages
|
||||
# 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
|
||||
@@ -10,14 +10,19 @@ rog=(
|
||||
)
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
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)_rog.log"
|
||||
|
||||
@@ -19,14 +19,19 @@ login=(
|
||||
)
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
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.log"
|
||||
|
||||
@@ -6,14 +6,18 @@ 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
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"
|
||||
@@ -34,7 +38,7 @@ if [ -d "$theme_name" ]; then
|
||||
fi
|
||||
|
||||
# Clone the repository
|
||||
if git clone --depth 1 "$source_theme" "$theme_name"; then
|
||||
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
|
||||
|
||||
@@ -12,15 +12,18 @@ thunar=(
|
||||
)
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
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.log"
|
||||
|
||||
@@ -4,14 +4,19 @@
|
||||
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
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"
|
||||
|
||||
@@ -9,15 +9,18 @@ xdg=(
|
||||
)
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
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)_xdph.log"
|
||||
|
||||
@@ -37,7 +37,7 @@ if [ -n "$ISAUR" ]; then
|
||||
else
|
||||
printf "\n%s - Installing ${SKY_BLUE}$pkg${RESET} from AUR\n" "${NOTE}"
|
||||
|
||||
# Check if folder exists and remove it
|
||||
# Check if directory exists and remove it
|
||||
if [ -d "$pkg" ]; then
|
||||
rm -rf "$pkg"
|
||||
fi
|
||||
@@ -45,7 +45,7 @@ fi
|
||||
cd $pkg || { printf "%s - Failed to enter $pkg directory\n" "${ERROR}"; exit 1; }
|
||||
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install ${YELLOW}$pkg${RESET} from AUR\n" "${ERROR}"; exit 1; }
|
||||
|
||||
# moving install logs in to Install-Logs folder
|
||||
# moving install logs in to Install-Logs directory
|
||||
mv install*.log ../Install-Logs/ || true
|
||||
cd ..
|
||||
fi
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# zsh and oh my zsh#
|
||||
|
||||
zsh_pkg=(
|
||||
eza
|
||||
lsd
|
||||
mercurial
|
||||
zsh
|
||||
zsh-completions
|
||||
@@ -14,14 +14,19 @@ zsh_pkg2=(
|
||||
)
|
||||
|
||||
## 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
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.log"
|
||||
@@ -75,19 +80,22 @@ if command -v zsh >/dev/null; then
|
||||
cp -r 'assets/.zprofile' ~/
|
||||
|
||||
# Check if the current shell is zsh
|
||||
if [[ "$SHELL" != *"zsh"* ]]; then
|
||||
current_shell=$(basename "$SHELL")
|
||||
if [ "$current_shell" != "zsh" ]; then
|
||||
printf "${NOTE} Changing default shell to ${MAGENTA}zsh${RESET}..."
|
||||
printf "\n%.0s" {1..2}
|
||||
|
||||
while ! chsh -s $(which zsh); do
|
||||
# Loop to ensure the chsh command succeeds
|
||||
while ! chsh -s "$(command -v zsh)"; do
|
||||
echo "${ERROR} Authentication failed. Please enter the correct password." 2>&1 | tee -a "$LOG"
|
||||
sleep 1
|
||||
done
|
||||
|
||||
printf "${INFO} Shell changed successfully to ${MAGENTA}zsh${RESET}" 2>&1 | tee -a "$LOG"
|
||||
else
|
||||
echo "${NOTE}Your shell is already set to ${MAGENTA}zsh${RESET}."
|
||||
echo "${NOTE} Your shell is already set to ${MAGENTA}zsh${RESET}."
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Installing core zsh packages
|
||||
|
||||
@@ -3,14 +3,19 @@
|
||||
# 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
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
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"
|
||||
|
||||
588
install.sh
588
install.sh
@@ -19,29 +19,24 @@ 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
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="Install-Logs/01-Hyprland-Install-Scripts-$(date +%d-%H%M%S).log"
|
||||
|
||||
# Check if running as root. If root, script will exit
|
||||
if [[ $EUID -eq 0 ]]; then
|
||||
echo "${ERROR} This script should ${WARNING}NOT${RESET} be executed as root!! Exiting......."
|
||||
echo "${ERROR} This script should ${WARNING}NOT${RESET} be executed as root!! Exiting......." | tee -a "$LOG"
|
||||
printf "\n%.0s" {1..2}
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if --preset argument is provided
|
||||
if [[ "$1" == "--preset" ]]; then
|
||||
|
||||
# nvidia
|
||||
if [[ "$2" == "--nvidia" ]]; then
|
||||
sed -i 's/^nvidia=".*"/nvidia="Y"/' preset.sh
|
||||
sed -i 's/^nouveau=".*"/nouveau="Y"/' preset.sh
|
||||
fi
|
||||
|
||||
source ./preset.sh
|
||||
fi
|
||||
|
||||
# Check if PulseAudio package is installed
|
||||
if pacman -Qq | grep -qw '^pulseaudio$'; then
|
||||
echo "$ERROR PulseAudio is detected as installed. Uninstall it first or edit install.sh on line 211 (execute_script 'pipewire.sh')."
|
||||
echo "$ERROR PulseAudio is detected as installed. Uninstall it first or edit install.sh on line 211 (execute_script 'pipewire.sh')." | tee -a "$LOG"
|
||||
printf "\n%.0s" {1..2}
|
||||
exit 1
|
||||
fi
|
||||
@@ -53,115 +48,62 @@ else
|
||||
echo "$NOTE Install base-devel.........."
|
||||
|
||||
if sudo pacman -S --noconfirm base-devel; then
|
||||
echo "$OK base-devel has been installed successfully."
|
||||
echo "👌 ${OK} base-devel has been installed successfully." | tee -a "$LOG"
|
||||
else
|
||||
echo "$ERROR base-devel not found nor cannot be installed."
|
||||
echo "$ACTION Please install base-devel manually before running this script... Exiting"
|
||||
echo "❌ $ERROR base-devel not found nor cannot be installed." | tee -a "$LOG"
|
||||
echo "$ACTION Please install base-devel manually before running this script... Exiting" | tee -a "$LOG"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# install whiptails if detected not installed. Necessary for this version
|
||||
if ! command -v whiptail >/dev/null; then
|
||||
echo "${NOTE} - whiptail is not installed. Installing..." | tee -a "$LOG"
|
||||
sudo pacman -S --noconfirm libnewt
|
||||
printf "\n%.0s" {1..1}
|
||||
fi
|
||||
|
||||
clear
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
echo -e "\e[35m
|
||||
╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐
|
||||
╠╩╗│ ││ │║ ╠═╣└┬┘├─┘├┬┘│ ├─┤│││ ││ 2025
|
||||
╩ ╩└─┘└─┘╩═╝ ╩ ╩ ┴ ┴ ┴└─┴─┘┴ ┴┘└┘─┴┘
|
||||
╩ ╩└─┘└─┘╩═╝ ╩ ╩ ┴ ┴ ┴└─┴─┘┴ ┴┘└┘─┴┘ Arch Linux
|
||||
\e[0m"
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
# Welcome message
|
||||
echo "${SKY_BLUE}Welcome to JaKooLit's Arch-Hyprland (2025) Install Script!${RESET}"
|
||||
echo
|
||||
echo "${WARNING}ATTENTION: Run a full system update and Reboot first!! (Highly Recommended) ${RESET}"
|
||||
echo
|
||||
echo "${YELLOW}NOTE: You will be required to answer some questions during the installation! ${RESET}"
|
||||
echo
|
||||
echo "${YELLOW}NOTE: If you are installing on a VM, ensure to enable 3D acceleration else Hyprland wont start! ${RESET}"
|
||||
echo
|
||||
# Welcome message using whiptail (for displaying information)
|
||||
whiptail --title "KooL Arch-Hyprland (2025) Install Script" \
|
||||
--msgbox "Welcome to KooL Arch-Hyprland (2025) Install Script!!!\n\n\
|
||||
ATTENTION: Run a full system update and Reboot first !!! (Highly Recommended)\n\n\
|
||||
NOTE: If you are installing on a VM, ensure to enable 3D acceleration else Hyprland may NOT start!" \
|
||||
15 80
|
||||
|
||||
read -p "${SKY_BLUE}Would you like to proceed? (y/n): ${RESET}" proceed
|
||||
|
||||
if [ "$proceed" != "y" ]; then
|
||||
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}
|
||||
# Ask if the user wants to proceed
|
||||
if ! whiptail --title "Proceed with Installation?" \
|
||||
--yesno "Would you like to proceed?" 7 50; then
|
||||
echo -e "\n"
|
||||
echo "❌ ${INFO} You 🫵 chose ${YELLOW}NOT${RESET} to proceed. ${YELLOW}Exiting...${RESET}" | tee -a "$LOG"
|
||||
echo -e "\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "👌 ${OK} 🇵🇭 ${MAGENTA}KooL..${RESET} ${SKY_BLUE}lets continue with the installation...${RESET}" | tee -a "$LOG"
|
||||
|
||||
sleep 1
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
# install pciutils if detected not installed. Necessary for detecting GPU
|
||||
if ! pacman -Qs pciutils > /dev/null; then
|
||||
echo "pciutils is not installed. Installing..."
|
||||
echo "${NOTE} - pciutils is not installed. Installing..." | tee -a "$LOG"
|
||||
sudo pacman -S --noconfirm pciutils
|
||||
printf "\n%.0s" {1..1}
|
||||
fi
|
||||
|
||||
# Function to colorize prompts
|
||||
colorize_prompt() {
|
||||
local color="$1"
|
||||
local message="$2"
|
||||
echo -n "${color}${message}$(tput sgr0)"
|
||||
}
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S).log"
|
||||
|
||||
|
||||
# Create Directory for Install Logs
|
||||
if [ ! -d Install-Logs ]; then
|
||||
mkdir Install-Logs
|
||||
fi
|
||||
|
||||
# Define the directory where your scripts are located
|
||||
# Path to the install-scripts directory
|
||||
script_directory=install-scripts
|
||||
|
||||
# Function to ask a yes/no question and set the response in a variable
|
||||
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
|
||||
read -p "$(colorize_prompt "$CAT" "$1 (y/n): ")" choice
|
||||
case "$choice" in
|
||||
[Yy]* ) eval "$2='Y'"; return 0;;
|
||||
[Nn]* ) eval "$2='N'"; return 1;;
|
||||
* ) echo "Please answer with y or n.";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# Function to ask a custom question with specific options and set the response in a variable
|
||||
ask_custom_option() {
|
||||
local prompt="$1"
|
||||
local valid_options="$2"
|
||||
local response_var="$3"
|
||||
|
||||
if [[ ! -z "${!3}" ]]; then
|
||||
return 0
|
||||
else
|
||||
eval "$3=''"
|
||||
fi
|
||||
|
||||
while true; do
|
||||
read -p "$(colorize_prompt "$CAT" "$prompt ($valid_options): ")" choice
|
||||
if [[ " $valid_options " == *" $choice "* ]]; then
|
||||
eval "$response_var='$choice'"
|
||||
return 0
|
||||
else
|
||||
echo "Please choose one of the provided options: $valid_options"
|
||||
fi
|
||||
done
|
||||
}
|
||||
# Function to execute a script if it exists and make it executable
|
||||
execute_script() {
|
||||
local script="$1"
|
||||
@@ -169,7 +111,7 @@ execute_script() {
|
||||
if [ -f "$script_path" ]; then
|
||||
chmod +x "$script_path"
|
||||
if [ -x "$script_path" ]; then
|
||||
env USE_PRESET=$use_preset "$script_path"
|
||||
env "$script_path"
|
||||
else
|
||||
echo "Failed to make script '$script' executable."
|
||||
fi
|
||||
@@ -178,181 +120,341 @@ execute_script() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Collect user responses to all questions
|
||||
# Check if nvidia is present
|
||||
if lspci | grep -i "nvidia" &> /dev/null; then
|
||||
printf "\n"
|
||||
printf "${INFO} ${YELLOW}NVIDIA GPU${RESET} detected in your system \n"
|
||||
printf "${NOTE} Script will install ${YELLOW}nvidia-dkms nvidia-utils and nvidia-settings${RESET} \n"
|
||||
ask_yes_no "-Do you want script to configure ${YELLOW}NVIDIA${RESET} for you?" nvidia
|
||||
|
||||
## Default values for the options (will be overwritten by preset file if available)
|
||||
gtk_themes="OFF"
|
||||
bluetooth="OFF"
|
||||
thunar="OFF"
|
||||
ags="OFF"
|
||||
sddm="OFF"
|
||||
sddm_theme="OFF"
|
||||
xdph="OFF"
|
||||
zsh="OFF"
|
||||
pokemon="OFF"
|
||||
rog="OFF"
|
||||
dots="OFF"
|
||||
input_group="OFF"
|
||||
nvidia="OFF"
|
||||
nouveau="OFF"
|
||||
|
||||
# Function to load preset file
|
||||
load_preset() {
|
||||
if [ -f "$1" ]; then
|
||||
echo "✅ Loading preset: $1"
|
||||
source "$1"
|
||||
else
|
||||
echo "⚠️ Preset file not found: $1. Using default values."
|
||||
fi
|
||||
}
|
||||
|
||||
# Check if --preset argument is passed
|
||||
if [[ "$1" == "--preset" && -n "$2" ]]; then
|
||||
load_preset "$2"
|
||||
fi
|
||||
|
||||
if [[ "$nvidia" == "Y" ]]; then
|
||||
ask_yes_no "-Would you like to ${YELLOW}blacklist nouveau?${RESET}" nouveau
|
||||
fi
|
||||
|
||||
# AUR helper
|
||||
# Check if yay or paru is installed
|
||||
echo "${INFO} - Checking if yay or paru is installed"
|
||||
if ! command -v yay &>/dev/null && ! command -v paru &>/dev/null; then
|
||||
printf "\n"
|
||||
ask_custom_option "-Which ${YELLOW}AUR helper${RESET} would you like to use? (paru or yay): " "paru or yay" aur_helper
|
||||
fi
|
||||
echo "${CAT} - Neither yay nor paru found. Asking 🗣️ USER to select..."
|
||||
while true; do
|
||||
aur_helper=$(whiptail --title "Neither Yay nor Paru is installed" --checklist "Neither Yay nor Paru is installed. Choose one AUR.\n\nNOTE: Select only 1 AUR helper!\nINFO: spacebar to select" 12 60 2 \
|
||||
"yay" "AUR Helper yay" "OFF" \
|
||||
"paru" "AUR Helper paru" "OFF" \
|
||||
3>&1 1>&2 2>&3)
|
||||
|
||||
printf "\n"
|
||||
ask_yes_no "-Install ${YELLOW}GTK themes${RESET} (required for Dark/Light function)?" gtk_themes
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "❌ ${INFO} You cancelled the selection. ${YELLOW}Goodbye!${RESET}" | tee -a "$LOG"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
printf "\n"
|
||||
ask_yes_no "-Do you want to configure ${YELLOW}Bluetooth${RESET}?" bluetooth
|
||||
if [ -z "$aur_helper" ]; then
|
||||
whiptail --title "Error" --msgbox "You must select at least one AUR helper to proceed." 10 60 2
|
||||
continue
|
||||
fi
|
||||
|
||||
printf "\n"
|
||||
ask_yes_no "-Do you want to install ${YELLOW}Thunar file manager${RESET}?" thunar
|
||||
echo "${INFO} - You selected: $aur_helper as your AUR helper" | tee -a "$LOG"
|
||||
|
||||
if [[ "$thunar" == "Y" ]]; then
|
||||
ask_yes_no "-Set ${YELLOW}Thunar${RESET} as the default file manager?" thunar_choice
|
||||
fi
|
||||
aur_helper=$(echo "$aur_helper" | tr -d '"')
|
||||
|
||||
# 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
|
||||
if [ "$sddm" == "y" ] || [ "$sddm" == "Y" ]; then
|
||||
# List of services to check
|
||||
services=("gdm.service" "gdm3.service" "lightdm.service" "lxdm.service")
|
||||
|
||||
# Loop through each service
|
||||
for svc in "${services[@]}"; do
|
||||
if systemctl is-active --quiet "$svc"; then
|
||||
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."
|
||||
printf "\n%.0s" {1..2}
|
||||
exit 1
|
||||
# Check if multiple helpers were selected
|
||||
if [[ $(echo "$aur_helper" | wc -w) -ne 1 ]]; then
|
||||
whiptail --title "Error" --msgbox "You must select exactly one AUR helper." 10 60 2
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [[ "$sddm" == "Y" ]]; then
|
||||
ask_yes_no "-Download and Install ${YELLOW}SDDM Theme?${RESET} " sddm_theme
|
||||
else
|
||||
echo "${NOTE} - AUR helper is already installed. Skipping AUR helper selection."
|
||||
fi
|
||||
|
||||
printf "\n"
|
||||
ask_yes_no "-Install ${YELLOW}XDG-DESKTOP-PORTAL-HYPRLAND?${RESET} (For proper Screen Share, e.g., OBS)" xdph
|
||||
# List of services to check for active login managers
|
||||
services=("gdm.service" "gdm3.service" "lightdm.service" "lxdm.service")
|
||||
|
||||
printf "\n"
|
||||
ask_yes_no "-Install ${YELLOW}zsh${RESET} with ${YELLOW}oh-my-zsh?${RESET}" zsh
|
||||
# Function to check if any login services are active
|
||||
check_services_running() {
|
||||
active_services=() # Array to store active services
|
||||
for svc in "${services[@]}"; do
|
||||
if systemctl is-active --quiet "$svc"; then
|
||||
active_services+=("$svc")
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "$zsh" == "Y" ]]; then
|
||||
ask_yes_no "-Add ${YELLOW}Pokemon color scripts?${RESET} in your terminal?" pokemon_choice
|
||||
if [ ${#active_services[@]} -gt 0 ]; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
if check_services_running; then
|
||||
active_list=$(printf "%s\n" "${active_services[@]}")
|
||||
|
||||
# Display the active login manager(s) in the whiptail message box
|
||||
whiptail --title "Active non-SDDM login manager(s) detected" \
|
||||
--msgbox "The following login manager(s) are active:\n\n$active_list\n\nIf you want to install SDDM and SDDM theme, stop and disable the active services above, reboot before running this script\n\nYour option to install SDDM and SDDM theme has now been removed\n\n- Ja " 23 80
|
||||
fi
|
||||
|
||||
printf "\n"
|
||||
ask_yes_no "-Installing on ${YELLOW}Asus ROG laptops?${RESET}" rog
|
||||
# Check if NVIDIA GPU is detected
|
||||
nvidia_detected=false
|
||||
if lspci | grep -i "nvidia" &> /dev/null; then
|
||||
nvidia_detected=true
|
||||
whiptail --title "NVIDIA GPU Detected" --msgbox "NVIDIA GPU detected in your system.\n\nNOTE: The script will install nvidia-dkms, nvidia-utils, and nvidia-settings if you chose to configure." 12 60
|
||||
fi
|
||||
|
||||
printf "\n"
|
||||
ask_yes_no "-Do you want to add pre-configured ${YELLOW}KooL's Hyprland dotfiles?${RESET}" dots
|
||||
# Initialize the options array for whiptail checklist
|
||||
options_command=(
|
||||
whiptail --title "Select Options" --checklist "Choose options to install or configure\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 28 85 20
|
||||
)
|
||||
|
||||
printf "\n"
|
||||
# Add NVIDIA options if detected
|
||||
if [ "$nvidia_detected" == "true" ]; then
|
||||
options_command+=(
|
||||
"nvidia" "Do you want script to configure NVIDIA GPU?" "OFF"
|
||||
"nouveau" "Do you want Nouveau to be blacklisted?" "OFF"
|
||||
)
|
||||
fi
|
||||
|
||||
# Add 'input_group' option if user is not in input group
|
||||
input_group_detected=false
|
||||
if ! groups "$(whoami)" | grep -q '\binput\b'; then
|
||||
input_group_detected=true
|
||||
whiptail --title "Input Group" --msgbox "You are not currently in the input group.\n\nAdding you to the input group might be necessary for the Waybar keyboard-state functionality." 12 60
|
||||
fi
|
||||
|
||||
# Ensuring all in the scripts folder are made executable
|
||||
chmod +x install-scripts/*
|
||||
# Add 'input_group' option if necessary
|
||||
if [ "$input_group_detected" == "true" ]; then
|
||||
options_command+=(
|
||||
"input_group" "Add your USER to input group for some waybar functionality?" "OFF"
|
||||
)
|
||||
fi
|
||||
|
||||
# Conditionally add SDDM and SDDM theme options if no active login manager is found
|
||||
if ! check_services_running; then
|
||||
options_command+=(
|
||||
"sddm" "Install & configure SDDM login manager?" "OFF"
|
||||
"sddm_theme" "Download & Install Additional SDDM theme?" "OFF"
|
||||
)
|
||||
fi
|
||||
|
||||
# Add the remaining static options
|
||||
options_command+=(
|
||||
"gtk_themes" "Install GTK themes (required for Dark/Light function)" "OFF"
|
||||
"bluetooth" "Do you want script to configure Bluetooth?" "OFF"
|
||||
"thunar" "Do you want Thunar file manager to be installed?" "OFF"
|
||||
"ags" "Install AGS v1 for Desktop-Like Overview" "OFF"
|
||||
"xdph" "Install XDG-DESKTOP-PORTAL-HYPRLAND (for screen share)?" "OFF"
|
||||
"zsh" "Install zsh shell with Oh-My-Zsh?" "OFF"
|
||||
"pokemon" "Add Pokemon color scripts to your terminal?" "OFF"
|
||||
"rog" "Are you installing on Asus ROG laptops?" "OFF"
|
||||
"dots" "Download and install pre-configured KooL Hyprland dotfiles?" "OFF"
|
||||
)
|
||||
|
||||
# Capture the selected options before the while loop starts
|
||||
while true; do
|
||||
selected_options=$("${options_command[@]}" 3>&1 1>&2 2>&3)
|
||||
|
||||
# Check if the user pressed Cancel (exit status 1)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "\n"
|
||||
echo "❌ ${INFO} You 🫵 cancelled the selection. ${YELLOW}Goodbye!${RESET}" | tee -a "$LOG"
|
||||
exit 0 # Exit the script if Cancel is pressed
|
||||
fi
|
||||
|
||||
# If no option was selected, notify and restart the selection
|
||||
if [ -z "$selected_options" ]; then
|
||||
whiptail --title "Warning" --msgbox "No options were selected. Please select at least one option." 10 60
|
||||
continue # Return to selection if no options selected
|
||||
fi
|
||||
|
||||
# Strip the quotes and trim spaces if necessary (sanitize the input)
|
||||
selected_options=$(echo "$selected_options" | tr -d '"' | tr -s ' ')
|
||||
|
||||
# Convert selected options into an array (preserving spaces in values)
|
||||
IFS=' ' read -r -a options <<< "$selected_options"
|
||||
|
||||
# Check if the "dots" option was selected
|
||||
dots_selected="OFF"
|
||||
for option in "${options[@]}"; do
|
||||
if [[ "$option" == "dots" ]]; then
|
||||
dots_selected="ON"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# If "dots" is not selected, show a note and ask the user to proceed or return to choices
|
||||
if [[ "$dots_selected" == "OFF" ]]; then
|
||||
# Show a note about not selecting the "dots" option
|
||||
if ! whiptail --title "KooL Hyprland Dot Files" --yesno \
|
||||
"You have not selected to install the pre-configured KooL Hyprland dotfiles.\n\nKindly NOTE that if you proceed without Dots, Hyprland will start with default vanilla Hyprland configuration and I won't be able to give you support.\n\nWould you like to continue install without KooL Hyprland Dots or return to choices/options?" \
|
||||
--yes-button "Continue" --no-button "Return" 15 90; then
|
||||
echo "🔙 Returning to options..." | tee -a "$LOG"
|
||||
continue
|
||||
else
|
||||
# User chose to continue
|
||||
echo "${INFO} ⚠️ Continuing WITHOUT the dotfiles installation..." | tee -a "$LOG"
|
||||
printf "\n%.0s" {1..1}
|
||||
fi
|
||||
fi
|
||||
|
||||
# Prepare the confirmation message
|
||||
confirm_message="You have selected the following options:\n\n"
|
||||
for option in "${options[@]}"; do
|
||||
confirm_message+=" - $option\n"
|
||||
done
|
||||
confirm_message+="\nAre you happy with these choices?"
|
||||
|
||||
# Confirmation prompt
|
||||
if ! whiptail --title "Confirm Your Choices" --yesno "$(printf "%s" "$confirm_message")" 25 80; then
|
||||
echo -e "\n"
|
||||
echo "❌ ${SKY_BLUE}You're not 🫵 happy${RESET}. ${YELLOW}Returning to options...${RESET}" | tee -a "$LOG"
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "👌 ${OK} You confirmed your choices. Proceeding with ${SKY_BLUE}KooL 🇵🇭 Hyprland Installation...${RESET}" | tee -a "$LOG"
|
||||
break
|
||||
done
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
sleep 1
|
||||
# Ensuring base-devel is installed
|
||||
execute_script "00-base.sh"
|
||||
sleep 1
|
||||
execute_script "pacman.sh"
|
||||
sleep 1
|
||||
# Execute AUR helper script based on user choice
|
||||
|
||||
# Execute AUR helper script after other installations if applicable
|
||||
if [ "$aur_helper" == "paru" ]; then
|
||||
execute_script "paru.sh"
|
||||
elif [ "$aur_helper" == "yay" ]; then
|
||||
execute_script "yay.sh"
|
||||
fi
|
||||
|
||||
# Install hyprland packages
|
||||
sleep 1
|
||||
|
||||
# Run the Hyprland related scripts
|
||||
echo "${INFO} Installing ${SKY_BLUE}KooL Hyprland additional packages...${RESET}" | tee -a "$LOG"
|
||||
sleep 1
|
||||
execute_script "01-hypr-pkgs.sh"
|
||||
|
||||
# Install pipewire and pipewire-audio
|
||||
echo "${INFO} Installing ${SKY_BLUE}pipewire and pipewire-audio...${RESET}" | tee -a "$LOG"
|
||||
sleep 1
|
||||
execute_script "pipewire.sh"
|
||||
|
||||
# Install necessary fonts
|
||||
echo "${INFO} Installing ${SKY_BLUE}necessary fonts...${RESET}" | tee -a "$LOG"
|
||||
sleep 1
|
||||
execute_script "fonts.sh"
|
||||
|
||||
# Install hyprland
|
||||
echo "${INFO} Installing ${SKY_BLUE}Hyprland...${RESET}"
|
||||
sleep 1
|
||||
execute_script "hyprland.sh"
|
||||
|
||||
if [ "$nvidia" == "Y" ]; then
|
||||
execute_script "nvidia.sh"
|
||||
fi
|
||||
if [ "$nouveau" == "Y" ]; then
|
||||
execute_script "nvidia_nouveau.sh"
|
||||
fi
|
||||
# Clean up the selected options (remove quotes and trim spaces)
|
||||
selected_options=$(echo "$selected_options" | tr -d '"' | tr -s ' ')
|
||||
|
||||
if [ "$gtk_themes" == "Y" ]; then
|
||||
execute_script "gtk_themes.sh"
|
||||
fi
|
||||
# Convert selected options into an array (splitting by spaces)
|
||||
IFS=' ' read -r -a options <<< "$selected_options"
|
||||
|
||||
if [ "$bluetooth" == "Y" ]; then
|
||||
execute_script "bluetooth.sh"
|
||||
fi
|
||||
|
||||
if [ "$thunar" == "Y" ]; then
|
||||
execute_script "thunar.sh"
|
||||
fi
|
||||
if [ "$thunar_choice" == "Y" ]; then
|
||||
execute_script "thunar_default.sh"
|
||||
fi
|
||||
|
||||
if [ "$ags" == "Y" ]; then
|
||||
execute_script "ags.sh"
|
||||
fi
|
||||
|
||||
if [ "$sddm" == "Y" ]; then
|
||||
execute_script "sddm.sh"
|
||||
fi
|
||||
if [ "$sddm_theme" == "Y" ]; then
|
||||
execute_script "sddm_theme.sh"
|
||||
fi
|
||||
|
||||
if [ "$xdph" == "Y" ]; then
|
||||
execute_script "xdph.sh"
|
||||
fi
|
||||
|
||||
if [ "$zsh" == "Y" ]; then
|
||||
execute_script "zsh.sh"
|
||||
fi
|
||||
if [ "$pokemon_choice" == "Y" ]; then
|
||||
execute_script "zsh_pokemon.sh"
|
||||
fi
|
||||
|
||||
if [ "$input_group" == "Y" ]; then
|
||||
execute_script "InputGroup.sh"
|
||||
fi
|
||||
|
||||
if [ "$rog" == "Y" ]; then
|
||||
execute_script "rog.sh"
|
||||
fi
|
||||
|
||||
if [ "$dots" == "Y" ]; then
|
||||
execute_script "dotfiles-main.sh"
|
||||
|
||||
fi
|
||||
|
||||
clear
|
||||
# Loop through selected options
|
||||
for option in "${options[@]}"; do
|
||||
case "$option" in
|
||||
sddm)
|
||||
if check_services_running; then
|
||||
active_list=$(printf "%s\n" "${active_services[@]}")
|
||||
whiptail --title "Error" --msgbox "One of the following login services is running:\n$active_list\n\nPlease stop & disable it or DO not choose SDDM." 12 60
|
||||
exec "$0"
|
||||
else
|
||||
echo "${INFO} Installing and configuring ${SKY_BLUE}SDDM...${RESET}" | tee -a "$LOG"
|
||||
execute_script "sddm.sh"
|
||||
fi
|
||||
;;
|
||||
nvidia)
|
||||
echo "${INFO} Configuring ${SKY_BLUE}nvidia stuff${RESET}" | tee -a "$LOG"
|
||||
execute_script "nvidia.sh"
|
||||
;;
|
||||
nouveau)
|
||||
echo "${INFO} blacklisting ${SKY_BLUE}nouveau${RESET}"
|
||||
execute_script "nvidia_nouveau.sh" | tee -a "$LOG"
|
||||
;;
|
||||
gtk_themes)
|
||||
echo "${INFO} Installing ${SKY_BLUE}GTK themes...${RESET}" | tee -a "$LOG"
|
||||
execute_script "gtk_themes.sh"
|
||||
;;
|
||||
input_group)
|
||||
echo "${INFO} Adding user into ${SKY_BLUE}input group...${RESET}" | tee -a "$LOG"
|
||||
execute_script "InputGroup.sh"
|
||||
;;
|
||||
ags)
|
||||
echo "${INFO} Installing ${SKY_BLUE}AGS v1 for Desktop Overview...${RESET}" | tee -a "$LOG"
|
||||
execute_script "ags.sh"
|
||||
;;
|
||||
xdph)
|
||||
echo "${INFO} Installing ${SKY_BLUE}xdg-desktop-portal-hyprland...${RESET}" | tee -a "$LOG"
|
||||
execute_script "xdph.sh"
|
||||
;;
|
||||
bluetooth)
|
||||
echo "${INFO} Configuring ${SKY_BLUE}Bluetooth...${RESET}" | tee -a "$LOG"
|
||||
execute_script "bluetooth.sh"
|
||||
;;
|
||||
thunar)
|
||||
echo "${INFO} Installing ${SKY_BLUE}Thunar file manager...${RESET}" | tee -a "$LOG"
|
||||
execute_script "thunar.sh"
|
||||
execute_script "thunar_default.sh"
|
||||
;;
|
||||
sddm_theme)
|
||||
echo "${INFO} Downloading & Installing ${SKY_BLUE}Additional SDDM theme...${RESET}" | tee -a "$LOG"
|
||||
execute_script "sddm_theme.sh"
|
||||
;;
|
||||
zsh)
|
||||
echo "${INFO} Installing ${SKY_BLUE}zsh with Oh-My-Zsh...${RESET}" | tee -a "$LOG"
|
||||
execute_script "zsh.sh"
|
||||
;;
|
||||
pokemon)
|
||||
echo "${INFO} Adding ${SKY_BLUE}Pokemon color scripts to terminal...${RESET}" | tee -a "$LOG"
|
||||
execute_script "zsh_pokemon.sh"
|
||||
;;
|
||||
rog)
|
||||
echo "${INFO} Installing ${SKY_BLUE}ROG laptop packages...${RESET}" | tee -a "$LOG"
|
||||
execute_script "rog.sh"
|
||||
;;
|
||||
dots)
|
||||
echo "${INFO} Installing pre-configured ${SKY_BLUE}KooL Hyprland dotfiles...${RESET}" | tee -a "$LOG"
|
||||
execute_script "dotfiles-main.sh"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $option" | tee -a "$LOG"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
sleep 1
|
||||
# copy fastfetch config if arch.png is not present
|
||||
if [ ! -f "$HOME/.config/fastfetch/arch.png" ]; then
|
||||
cp -r assets/fastfetch "$HOME/.config/"
|
||||
fi
|
||||
|
||||
clear
|
||||
|
||||
# final check essential packages if it is installed
|
||||
execute_script "02-Final-Check.sh"
|
||||
|
||||
@@ -360,36 +462,39 @@ printf "\n%.0s" {1..1}
|
||||
|
||||
# Check if hyprland or hyprland-git is installed
|
||||
if pacman -Q hyprland &> /dev/null || pacman -Q hyprland-git &> /dev/null; 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 ${YELLOW}All essential packages${RESET} are installed as per above\n"
|
||||
sleep 2
|
||||
printf "\n%.0s" {1..2}
|
||||
|
||||
printf "${SKY_BLUE}Thank you${RESET} for using ${MAGENTA}KooL's Hyprland Dots${RESET}. ${YELLOW}Enjoy and Have a good day!${RESET}"
|
||||
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"
|
||||
|
||||
read -rp "${CAT} Would you like to reboot now? (y/n): " HYP
|
||||
while true; do
|
||||
echo -n "${CAT} Would you like to reboot now? (y/n): "
|
||||
read HYP
|
||||
HYP=$(echo "$HYP" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
HYP=$(echo "$HYP" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
if [[ "$HYP" == "y" || "$HYP" == "yes" ]]; then
|
||||
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..."
|
||||
if [[ "$HYP" == "y" || "$HYP" == "yes" ]]; then
|
||||
echo "${INFO} Rebooting now..."
|
||||
systemctl reboot
|
||||
break
|
||||
elif [[ "$HYP" == "n" || "$HYP" == "no" ]]; then
|
||||
echo "👌 ${OK} You chose 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
|
||||
break
|
||||
else
|
||||
echo "${WARN} Invalid response. Please answer with 'y' or 'n'."
|
||||
fi
|
||||
else
|
||||
echo "${WARN} Invalid response. Please answer with 'y' or 'n'. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
else
|
||||
# Print error message if neither package is installed
|
||||
printf "\n${WARN} Hyprland is NOT installed. Please check 00_CHECK-time_installed.log and other files in the Install-Logs/ directory..."
|
||||
@@ -397,4 +502,5 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
39
preset.sh
39
preset.sh
@@ -1,55 +1,48 @@
|
||||
# 💫 https://github.com/JaKooLit 💫 #
|
||||
# CREDIT to: https://github.com/PostCyberPunk for this Preset function
|
||||
|
||||
## -- Make sure you use the right answer or install script will fail ###
|
||||
# The rest Change to Y for Yes and N for No.
|
||||
# Define the options you want to preselect (either ON or OFF)
|
||||
# IMPORTANT: answer should be inside ""
|
||||
|
||||
### Script will install nvidia-dkms nvidia-utils & nvidia-settings
|
||||
###-Would you like script to Configure NVIDIA for you?
|
||||
nvidia="N"
|
||||
nvidia="OFF"
|
||||
### Would you like to blacklist nouveau? (y/n)
|
||||
nouveau="N"
|
||||
|
||||
### yay or paru
|
||||
aur_helper="yay"
|
||||
nouveau="OFF"
|
||||
|
||||
###-Install GTK themes (required for Dark/Light function)?
|
||||
gtk_themes="Y"
|
||||
gtk_themes="ON"
|
||||
|
||||
###-Do you want to configure Bluetooth?
|
||||
bluetooth="Y"
|
||||
bluetooth="ON"
|
||||
|
||||
###-Do you want to install Thunar file manager?
|
||||
thunar="Y"
|
||||
### Do you want to set Thunar as the default file manager?
|
||||
thunar_choice="Y"
|
||||
|
||||
thunar="ON"
|
||||
|
||||
### Adding user to the 'input' group might be necessary for waybar keyboard-state functionality
|
||||
input_group="Y"
|
||||
input_group="ON"
|
||||
|
||||
### Desktop overview Demo Link in README
|
||||
### Desktop overview Demo Link in README
|
||||
### Install AGS (aylur's GTK shell) v1 for Desktop-Like Overview?"
|
||||
ags="Y"
|
||||
ags="ON"
|
||||
|
||||
###-Install & configure SDDM log-in Manager
|
||||
sddm="Y"
|
||||
sddm="ON"
|
||||
### install and download SDDM themes
|
||||
sddm_theme="Y"
|
||||
sddm_theme="ON"
|
||||
|
||||
###-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)
|
||||
xdph="Y"
|
||||
xdph="ON"
|
||||
|
||||
### Shell extension. Bash alternative
|
||||
###-Install zsh, oh-my-zsh
|
||||
zsh="Y"
|
||||
zsh="ON"
|
||||
### add Pokemon color scripts to terminal
|
||||
pokemon_choice="Y"
|
||||
pokemon="ON"
|
||||
|
||||
### This will install ASUSCTL & SUPERGFXCTL
|
||||
###-Installing on Asus ROG Laptops?
|
||||
rog="N"
|
||||
rog="OFF"
|
||||
|
||||
###-Download and Add pre-configured Hyprland dotfiles?
|
||||
dots="Y"
|
||||
dots="ON"
|
||||
|
||||
256
uninstall.sh
Executable file
256
uninstall.sh
Executable file
@@ -0,0 +1,256 @@
|
||||
#!/bin/bash
|
||||
# 💫 https://github.com/JaKooLit 💫 #
|
||||
# KooL Arch-Hyprland uninstall script #
|
||||
|
||||
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)"
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
echo -e "\e[35m
|
||||
╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐
|
||||
╠╩╗│ ││ │║ ╠═╣└┬┘├─┘├┬┘│ ├─┤│││ ││ UNINSTALL
|
||||
╩ ╩└─┘└─┘╩═╝ ╩ ╩ ┴ ┴ ┴└─┴─┘┴ ┴┘└┘─┴┘ Arch Linux
|
||||
\e[0m"
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
# Show welcome message using whiptail with Yes/No options
|
||||
whiptail --title "Arch-Hyprland KooL Dots Uninstall Script" --yesno \
|
||||
"Hello! This script will uninstall KooL Hyprland packages and configs.
|
||||
|
||||
You can choose packages and directories you want to remove.
|
||||
NOTE: This will remove configs from ~/.config
|
||||
|
||||
WARNING: After uninstallation, your system may become unstable.
|
||||
|
||||
Shall we Proceed?" 20 80
|
||||
|
||||
if [ $? -eq 1 ]; then
|
||||
echo "$INFO uninstall process canceled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Function to remove selected packages
|
||||
remove_packages() {
|
||||
local selected_packages_file=$1
|
||||
while read -r package; do
|
||||
if pacman -Qi "$package" &> /dev/null; then
|
||||
echo "Removing package: $package"
|
||||
if ! sudo pacman -Rs --noconfirm "$package"; then
|
||||
echo "$ERROR Failed to remove package: $package"
|
||||
else
|
||||
echo "$OK Successfully removed package: $package"
|
||||
fi
|
||||
else
|
||||
echo "$INFO Package ${YELLOW}$package${RESET} not found. Skipping."
|
||||
fi
|
||||
done < "$selected_packages_file"
|
||||
}
|
||||
|
||||
# Function to remove selected directories
|
||||
remove_directories() {
|
||||
local selected_dirs_file=$1
|
||||
while read -r dir; do
|
||||
pattern="$HOME/.config/$dir*"
|
||||
# Loop through directories matching the pattern
|
||||
for dir_to_remove in $pattern; do
|
||||
if [ -d "$dir_to_remove" ]; then
|
||||
echo "Removing directory: $dir_to_remove"
|
||||
if ! rm -rf "$dir_to_remove"; then
|
||||
echo "$ERROR Failed to remove directory: $dir_to_remove"
|
||||
else
|
||||
echo "$OK Successfully removed directory: $dir_to_remove"
|
||||
fi
|
||||
else
|
||||
echo "$INFO Directory ${YELLOW}$dir_to_remove${RESET} not found. Skipping."
|
||||
fi
|
||||
done
|
||||
done < "$selected_dirs_file"
|
||||
}
|
||||
|
||||
# Define the list of packages to choose from (with options_command tags)
|
||||
packages=(
|
||||
"btop" "resource monitor" "off"
|
||||
"brightnessctl" "brightnessctl" "off"
|
||||
"cava" "Cross-platform Audio Visualizer" "off"
|
||||
"cliphist" "clipboard manager" "off"
|
||||
"fastfetch" "fastfetch" "off"
|
||||
"ffmpegthumbnailer" "FFmpeg Thumbnailer" "off"
|
||||
"grim" "screenshot tool" "off"
|
||||
"imagemagick" "Image manipulation tool" "off"
|
||||
"kitty" "kitty-terminal" "off"
|
||||
"kvantum" "QT apps theming" "off"
|
||||
"mousepad" "simple text editor" "off"
|
||||
"mpv" "multi-media player" "off"
|
||||
"mpv-mpris" "mpv-plugin" "off"
|
||||
"network-manager-applet" "network-manager-applet" "off"
|
||||
"nvtop" "gpu resource monitor" "off"
|
||||
"nwg-displays" "display monitor configuration app" "off"
|
||||
"nwg-look" "gtk settings app" "off"
|
||||
"pamixer" "pamixer" "off"
|
||||
"pokemon-colorscripts-git" "terminal colorscripts" "off"
|
||||
"pavucontrol" "pavucontrol" "off"
|
||||
"playerctl" "playerctl" "off"
|
||||
"pyprland" "pyprland" "off"
|
||||
"qalculate-gtk" "calculater - QT" "off"
|
||||
"qt5ct" "qt5ct" "off"
|
||||
"qt6ct" "qt6ct" "off"
|
||||
"rofi-wayland" "rofi-wayland" "off"
|
||||
"slurp" "screenshot tool" "off"
|
||||
"swappy" "screenshot tool" "off"
|
||||
"swaync" "notification agent" "off"
|
||||
"swww" "wallpaper engine" "off"
|
||||
"thunar" "File Manager" "off"
|
||||
"thunar-archive-plugin" "Archive Plugin" "off"
|
||||
"thunar-volman" "Volume Management" "off"
|
||||
"tumbler" "Thumbnail Service" "off"
|
||||
"wallust" "color pallete generator" "off"
|
||||
"waybar" "wayland bar" "off"
|
||||
"wl-clipboard" "clipboard manager" "off"
|
||||
"wlogout" "logout menu" "off"
|
||||
"xdg-desktop-portal-hyprland" "hyprland file picker" "off"
|
||||
"yad" "dialog box" "off"
|
||||
"yt-dlp" "video downloader" "off"
|
||||
"xarchiver" "Archive Manager" "off"
|
||||
"hypridle" "hyprland idling agent" "off"
|
||||
"hyprlock" "lockscreen" "off"
|
||||
"hyprpolkitagent" "hyprland polkit agent" "off"
|
||||
"hyprland" "hyprland main package" "off"
|
||||
)
|
||||
|
||||
# Define the list of directories to choose from (with options_command tags)
|
||||
directories=(
|
||||
"ags" "AGS desktop overview configuration" "off"
|
||||
"btop" "btop configuration" "off"
|
||||
"cava" "cava configuration" "off"
|
||||
"fastfetch" "fastfetch configuration" "off"
|
||||
"hypr" "main hyprland configuration" "off"
|
||||
"kitty" "kitty terminal configuration" "off"
|
||||
"Kvantum" "Kvantum-manager configuration" "off"
|
||||
"qt5ct" "qt5ct configuration" "off"
|
||||
"qt6ct" "qt6ct configuration" "off"
|
||||
"rofi" "rofi configuration" "off"
|
||||
"swappy" "swappy (screenshot tool) configuration" "off"
|
||||
"swaync" "swaync (notification agent) configuration" "off"
|
||||
"Thunar" "Thunar file manager configuration" "off"
|
||||
"wallust" "wallust (color pallete) configuration" "off"
|
||||
"waybar" "waybar configuration" "off"
|
||||
"wlogout" "wlogout (logout menu) configuration" "off"
|
||||
)
|
||||
|
||||
# Loop for package selection until user selects something or cancels
|
||||
while true; do
|
||||
package_choices=$(whiptail --title "Select Packages to Uninstall" --checklist \
|
||||
"Select the packages you want to remove\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 35 90 25 \
|
||||
"${packages[@]}" 3>&1 1>&2 2>&3)
|
||||
|
||||
# Check if the user canceled the operation
|
||||
if [ $? -eq 1 ]; then
|
||||
echo "$INFO uninstall process canceled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# If no packages are selected, ask again
|
||||
if [[ -z "$package_choices" ]]; then
|
||||
echo "$NOTE No packages selected. Please select at least one package."
|
||||
else
|
||||
echo "$package_choices" | tr -d '"' | tr ' ' '\n' > /tmp/selected_packages.txt
|
||||
echo "Packages to remove: $package_choices"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# Loop for directory selection until user selects something or cancels
|
||||
while true; do
|
||||
dir_choices=$(whiptail --title "Select Directories to Remove" --checklist \
|
||||
"Select the directories you want to remove\nNOTE: This will remove configs from ~/.config\n\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 28 90 18 \
|
||||
"${directories[@]}" 3>&1 1>&2 2>&3)
|
||||
|
||||
# Check if the user canceled the operation
|
||||
if [ $? -eq 1 ]; then
|
||||
echo "$INFO uninstall process canceled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# If no directories are selected, ask again
|
||||
if [[ -z "$dir_choices" ]]; then
|
||||
echo "$NOTE No directories selected. Please select at least one directory."
|
||||
else
|
||||
# Save each selected directory to a new line in the temporary file
|
||||
echo "$dir_choices" | tr -d '"' | tr ' ' '\n' > /tmp/selected_directories.txt
|
||||
echo "Directories to remove: $dir_choices"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# First confirmation - Warning about potential instability
|
||||
if ! whiptail --title "Warning" --yesno \
|
||||
"Warning: Removing these packages and directories may cause your system to become unstable and you may not be able to recover it.\n\nAre you sure you want to proceed?" \
|
||||
10 80; then
|
||||
echo "$INFO uninstall process canceled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Second confirmation - Final confirmation to proceed
|
||||
if ! whiptail --title "Final Confirmation" --yesno \
|
||||
"Are you absolutely sure you want to remove the selected packages and directories?\n\nWARNING! This action is irreversible." \
|
||||
10 80; then
|
||||
echo "$INFO uninstall process canceled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
printf "\n%s${SKY_BLUE}Attempting to remove selected packages${RESET}\n" "${NOTE}"
|
||||
MAX_ATTEMPTS=2
|
||||
ATTEMPT=0
|
||||
while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do
|
||||
# Remove packages
|
||||
remove_packages /tmp/selected_packages.txt
|
||||
|
||||
# Check if any packages still need to be removed, retry if needed
|
||||
MISSING_PACKAGE_COUNT=0
|
||||
while read -r package; do
|
||||
if pacman -Qi "$package" &> /dev/null; then
|
||||
MISSING_PACKAGE_COUNT=$((MISSING_PACKAGE_COUNT + 1))
|
||||
fi
|
||||
done < /tmp/selected_packages.txt
|
||||
|
||||
if [ $MISSING_PACKAGE_COUNT -gt 0 ]; then
|
||||
ATTEMPT=$((ATTEMPT + 1))
|
||||
echo "Attempt #$ATTEMPT failed, retrying..."
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
printf "\n%s${SKY_BLUE}Attempting to remove locally installed packages${RESET}\n" "${NOTE}"
|
||||
for file in ags pokemon-colorscripts; do
|
||||
if [ -f "/usr/local/bin/$file" ]; then
|
||||
sudo rm "/usr/local/bin/$file"
|
||||
echo "$file removed."
|
||||
fi
|
||||
done
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
printf "\n%s${SKY_BLUE}Attempting to remove selected directories${RESET}\n" "${NOTE}"
|
||||
remove_directories /tmp/selected_directories.txt
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
echo -e "$MAGENTA Hyprland and related components have been uninstalled.$RESET"
|
||||
echo -e "$YELLOW It is recommended to reboot your system now.$RESET"
|
||||
printf "\n%.0s" {1..1}
|
||||
Reference in New Issue
Block a user