Merge pull request #185 from JaKooLit/main

main to development
This commit is contained in:
Ja.KooLit
2025-01-07 21:45:46 +09:00
committed by GitHub
33 changed files with 830 additions and 276 deletions

83
.github/ISSUE_TEMPLATE/bug.yml vendored Normal file
View File

@@ -0,0 +1,83 @@
name: Bug Report
description: Something is not working right
title: "[Bug]: "
labels: ["bug"]
assignees:
- JaKooLit
body:
- type: checkboxes
attributes:
label: Already reported ? *
description: Before opening a new bug report, please take a moment to search through the current open and closed issues to check if it already exists.
options:
- label: I have searched the existing open and closed issues.
required: true
- type: dropdown
id: type
attributes:
label: Regression?
description: |
Regression means that something used to work but no longer does.
options:
- "Yes"
- "No"
- "Not sure"
validations:
required: true
- type: textarea
id: ver
attributes:
label: System Info and Version
description: |
Paste the output of `inxi --full` here.
install inxi if command not found.
value: "<details>
<summary>System/Version info</summary>
```
<Paste the output of the command here, without removing any formatting around this>
```
</details>"
validations:
required: true
- type: textarea
id: dots
attributes:
label: KooL's Dots version
description: |
Paste the output of `find ~/.config/hypr/ -type f -name 'v*' -exec basename {} \;`
This is just KooL's Hyprland Dots version.
validations:
required: true
- type: textarea
id: desc
attributes:
label: Description
description: "What went wrong? What exactly happened?"
validations:
required: true
- type: textarea
id: repro
attributes:
label: How to reproduce
description: "How can someone else reproduce the issue?"
validations:
required: true
- type: textarea
id: logs
attributes:
label: install logs, images or videos
description: |
Anything that can help. Please always ATTACH and not paste them.

View File

@@ -1,53 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: "[Bug]: Short description of the issue"
labels: "Something isn't working"
---
## Bug Report
### Before submitting report
[Kindly review the log files in Install-Logs directory. Some apps may have not installed properly.]
### Description
[Provide a clear and concise description of the bug.]
[If you have issue with installation, kindly attach the Install-Logs which was created by the install script]
### Steps to Reproduce
1. [First Step]
2. [Second Step]
3. [and so on...]
### Expected Behavior
[What did you expect to happen?]
### Actual Behavior
[What actually happened?]
### Screenshots
[If applicable, add screenshots to help explain your problem.]
### Environment
[Please add any other relevant information about the bug and remove the unnecessary lines.]
### show output of `inxi -CGIsSMnr` install package `inxi` if not exist
show output here
```
```
### Additional Information
[Add any other information about the problem here. For example, you might include the error message, any recent changes that you made to the project, or any other relevant details.]

View File

@@ -1,49 +0,0 @@
---
name: Custom template
about: Use this template to submit a custom issue
title: "[Custom]: Short description of the issue"
labels: "custom"
---
## Custom Template
### Before submitting report
[Kindly review the log files in Install-Logs directory. Some apps may have not installed properly.]
### Description
[Provide a clear and concise description of the issue or request.]
### Steps to Reproduce (if applicable)
1. [First Step]
2. [Second Step]
3. [and so on...]
### Expected Behavior
[What did you expect to happen?]
### Actual Behavior
[What actually happened?]
### Screenshots (if applicable)
[If applicable, add screenshots to help explain your problem.]
### Proposed Solution (if applicable)
[If you have a specific solution in mind, describe it here. If not, you can skip this section.]
### Additional Information
[Add any other information about the issue or request here. For example, you might include links to similar features in other projects, or screenshots or diagrams to help explain your idea.]
### show output of `inxi -CGIsSMnr` install package `inxi` if not exist
show output here
```
```

View File

@@ -0,0 +1,30 @@
name: Documentation update
description: Propose a change to the project documentation wiki
title: "[Documentation update]: "
labels: ["documentation_update"]
assignees:
- JaKooLit
body:
- type: textarea
id: desc
attributes:
label: Description
description: "Provide a clear and concise description of the documentation update"
validations:
required: true
- type: textarea
id: repro
attributes:
label: Proposed Solution
description: "Provide a clear and concise description of the updated documentation that you'd like to see added"
validations:
required: true
- type: textarea
id: logs
attributes:
label: install links, images or videos
description: |
Add any other information about the documentation update here. For example, you might include links to similar documentation in other projects, or screenshots or diagrams to help explain your idea

View File

@@ -1,24 +0,0 @@
---
name: Documentation update
about: Propose a change to the project documentation
title: "[Docs]: Short description of the change"
labels: "documentation update"
---
## Documentation Update
### Description
[Provide a clear and concise description of the documentation update you'd like to see made.]
### Current Documentation
[Provide a link to the current documentation or describe where it can be found.]
### Proposed Documentation
[Provide a clear and concise description of the updated documentation that you'd like to see added.]
### Additional Information
[Add any other information about the documentation update here. For example, you might include links to similar documentation in other projects, or screenshots or diagrams to help explain your idea.]

38
.github/ISSUE_TEMPLATE/feature.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
name: Feature Request
description: I'd like to propose some changes and enhancements
title: "[Enhancement]: "
labels: ["enhancement"]
assignees:
- JaKooLit
body:
- type: checkboxes
attributes:
label: Already reported ? *
description: Before opening a new feature request, please take a moment to search through the current open and closed issues / request to check if it already exists.
options:
- label: I have searched the existing open and closed request.
required: true
- type: textarea
id: desc
attributes:
label: Description
description: "Describe your idea?"
validations:
required: true
- type: textarea
id: repro
attributes:
label: Proposed Solution
description: "describe if you have a specific solution in mind"
validations:
required: true

View File

@@ -1,28 +0,0 @@
---
name: Feature request
about: Suggest a feature for this project
title: "[Feature Request]: Short description of the feature"
labels: "enhancement, needs triage, feature request"
---
## Feature Request
### Description
[Provide a clear and concise description of the feature you'd like to see added.]
### Use Case
[Describe how this feature would be useful to you or to other users of the project.]
### Proposed Solution
[If you have a specific solution in mind, describe it here. If not, you can skip this section.]
### Alternatives
[Are there any alternative solutions or workarounds that you've considered? If so, describe them here.]
### Additional Information
[Add any other information about the feature request here. For example, you might include links to similar features in other projects, or screenshots or diagrams to help explain your idea.]

View File

@@ -1,5 +1,29 @@
## Changelogs
## 06 Jan 2025
- added copying of modified fastfetch-compact for Arch
- default theme for oh my zsh theme is now "funky"
## 26 Dec 2024
- Removal of Bibata Ice cursor on assets since its integrated in the GTK Themes and Icons extract from a separate repo
- integrated hyprcursor in Bibata Ice Cursor
## 15 Nov 2024
- revert Aylurs GTK Shell (AGS) to install older version
- added aylurs-gtk-shell to uninstall
## 20 Sep 2024
- User will be ask if they want to set Thunar as default file manager if they decided to install it
## 19 Sep 2024
- Added fastfetch on tty. However, will be disabled if user decided to install pokemon colorscripts
## 18 Sep 2024
- dotfiles will now be downloaded from main or master branch instead of from the releases version.
## 14 Sep 2024
- remove the final error checks instead, introduced a final check of essential packages to ran Hyprland
## 08 Sep 2024
- Added final error checks on install-logs

View File

@@ -1,13 +1,10 @@
<div align="center">
<br>
<a href="#-announcement-"><kbd><br>Read this First<br></kbd></a>&ensp;&ensp;
<a href="#-to-use-this-script"><kbd><br>How to use this script<br></kbd></a>&ensp;&ensp;
<a href="#gallery-and-videos"><kbd><br>Gallery<br></kbd></a>&ensp;&ensp;
</div><br>
<div align="center">
## 💌 ** JaKooLit's Arch Hyprland Install Script ** 💌
# 💌 ** KooL's Arch - Hyprland Install Script ** 💌
<p align="center">
<img src="https://raw.githubusercontent.com/JaKooLit/Hyprland-Dots/main/assets/latte.png" width="400" />
</p>
![GitHub Repo stars](https://img.shields.io/github/stars/JaKooLit/Arch-Hyprland?style=for-the-badge&color=cba6f7) ![GitHub last commit](https://img.shields.io/github/last-commit/JaKooLit/Arch-Hyprland?style=for-the-badge&color=b4befe) ![GitHub repo size](https://img.shields.io/github/repo-size/JaKooLit/Arch-Hyprland?style=for-the-badge&color=cba6f7) <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>
@@ -15,6 +12,13 @@
<br/>
</div>
<div align="center">
<br>
<a href="#-announcement-"><kbd><br>Read this First<br></kbd></a>&ensp;&ensp;
<a href="#-to-use-this-script"><kbd><br>How to use this script<br></kbd></a>&ensp;&ensp;
<a href="#gallery-and-videos"><kbd><br>Gallery<br></kbd></a>&ensp;&ensp;
</div><br>
<div align="center">
👇 KOOL's Hyprland-Dots related Links 👇
<br/>
@@ -80,7 +84,7 @@ https://github.com/JaKooLit/Hyprland-Dots/assets/85185940/50d53755-0f11-45d6-991
> [!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.
> [!WARNING]
> [!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
#### 🆕 Prerequisites
@@ -90,7 +94,7 @@ https://github.com/JaKooLit/Hyprland-Dots/assets/85185940/50d53755-0f11-45d6-991
> 🔘 Pipewire and Pipewire audio
- This script will install pipewire and will also disable or will uninstall pulseaudio. If you dont want it, edit install.sh, about line 191 and comment the line `execute_script "pipewire.sh"` or you can simply just delete pipewire.sh in install-scripts directory before installing.
#### ✨ Costumize the packages to be installed
#### ✨ 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!
#### 💫 SDDM and GTK Themes offered
@@ -129,8 +133,9 @@ zsh
source ~/.zshrc
```
- reboot or logout
- by default agnoster theme is installed. You can find more themes from this [`OH-MY-ZSH-THEMES`](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes)
- to change the theme, edit ~/.zshrc . Look for ZSH_THEME="desired theme"
- by default `funky` theme is installed. You can find more themes from this [`OH-MY-ZSH-THEMES`](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes)
- to change the theme, `SUPER SHIFT O` , choose desired theme, and close and open terminal.
- or manually edit `~/.zshrc` . Look for ZSH_THEME="desired theme"
#### ✨ TO DO once installation done and dotfiles copied
- ~~if you opted to install gtk themes, to apply the theme and icon, press the dark/light button (beside the padlock). To apply Bibata modern ice cursor, launch nwg-look (GTK Settings) through rofi.~~ Hyprland-Dots v2.1.18, initial boot file will attempt to apply GTK themes,cursor, and icons. You can tweak more using nwg-look (GTK-Settings) utility
@@ -144,6 +149,8 @@ source ~/.zshrc
#### ⌨ Keybinds
- Keybinds [`CLICK`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Keybinds)
> [!TIP]
> KooL's Dots v2.3.7 has a searchable keybind function via rofi. (SUPER SHIFT K) or right click the `HINTS` waybar button
#### 🙋 👋 Having issues or questions?
- for the install part, kindly open issue on this repo

View File

@@ -3,7 +3,7 @@
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="xiong-chiamiov-plus"
ZSH_THEME="funky"
plugins=(
git
@@ -21,6 +21,9 @@ source $ZSH/oh-my-zsh.sh
# Project page: https://gitlab.com/phoneybadger/pokemon-colorscripts#on-other-distros-and-macos
#pokemon-colorscripts --no-title -s -r
# 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'

Binary file not shown.

BIN
assets/fastfetch/arch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

View File

@@ -0,0 +1,75 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"source": "~/.config/fastfetch/arch.png",
"type": "kitty-direct",
"height": 10,
"width": 20,
"padding": {
"top": 1
}
},
"display": {
"separator": " -> "
},
"modules": [
"break",
{
"type": "title",
"keyWidth": 10,
"format": " {6}{7}{8}"
},
{
"type": "custom",
"format": " ─────────────────────────── "
},
{
"type": "kernel",
"key": " ",
"keyColor": "yellow"
},
{
"type": "wm",
"key": " ",
"keyColor": "blue"
},
{
"type": "shell",
"key": " ",
"keyColor": "yellow"
},
{
"type": "terminal",
"key": " ",
"keyColor": "blue"
},
/*
{
"type": "packages",
"key": "󰏖 ",
"keyColor": "yellow"
},
*/
{
"type": "memory",
"key": "󰍛 ",
"keyColor": "magenta",
// format: used / total
"format": "{1} / {2}"
},
{
"type": "uptime",
"key": "󰔛 ",
"keyColor": "green"
},
{
"type": "custom",
"format": " ─────────────────────────── "
},
{
"type": "custom",
"format": " \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[90m "
},
"break",
]
}

View File

@@ -0,0 +1,112 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
//"source": "~/.config/fastfetch/nixos.png",
//"type": "kitty-direct",
"height": 15,
"width": 30,
"padding": {
"top": 1
}
},
"display": {
"separator": " ➜ "
},
"modules": [
"break",
{
"type": "os",
"key": " DISTRO",
"keyColor": "31",
},
{
"type": "kernel",
"key": " ├  ",
"keyColor": "31",
},
{
"type": "packages",
"key": " ├ 󰏖 ",
"keyColor": "31",
},
{
"type": "shell",
"key": " └  ",
"keyColor": "31",
},
"break",
{
"type": "wm",
"key": " DE/WM",
"keyColor": "32",
},
{
"type": "wmtheme",
"key": " ├ 󰉼 ",
"keyColor": "32",
},
{
"type": "icons",
"key": " ├ 󰀻 ",
"keyColor": "32",
},
{
"type": "cursor",
"key": " ├  ",
"keyColor": "32",
},
{
"type": "terminal",
"key": " ├  ",
"keyColor": "32",
},
{
"type": "terminalfont",
"key": " └  ",
"keyColor": "32",
},
"break",
{
"type": "host",
"format": "{2}",
"key": "󰌢 SYSTEM",
"keyColor": "33",
},
{
"type": "cpu",
"format": "{1} ({3}) @ {7} GHz",
"key": " ├  ",
"keyColor": "33",
},
{
"type": "gpu",
"format": "{2}",
"key": " ├ 󰢮 ",
"keyColor": "33",
},
{
"type": "memory",
"key": " ├  ",
"keyColor": "33",
},
{
"type": "swap",
"key": " ├ 󰓡 ",
"keyColor": "33",
},
{
"type": "disk",
"key": " ├ 󰋊 ",
"keyColor": "33",
},
{
"type": "display",
"key": " └  ",
"compactType": "original-with-refresh-rate",
"keyColor": "33",
},
"break",
"break",
]
}

View File

@@ -0,0 +1,128 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"padding": {
"top": 1
}
},
"display": {
"separator": " 󰑃 "
},
"modules": [
"break",
{
"type": "os",
"key": " DISTRO",
"keyColor": "yellow"
},
{
"type": "kernel",
"key": "│ ├",
"keyColor": "yellow"
},
{
"type": "packages",
"key": "│ ├󰏖",
"keyColor": "yellow"
},
{
"type": "shell",
"key": "│ └",
"keyColor": "yellow"
},
{
"type": "wm",
"key": " DE/WM",
"keyColor": "blue"
},
{
"type": "wmtheme",
"key": "│ ├󰉼",
"keyColor": "blue"
},
{
"type": "icons",
"key": "│ ├󰀻",
"keyColor": "blue"
},
{
"type": "cursor",
"key": "│ ├",
"keyColor": "blue",
},
{
"type": "terminalfont",
"key": "│ ├",
"keyColor": "blue",
},
{
"type": "terminal",
"key": "│ └",
"keyColor": "blue"
},
{
"type": "host",
"key": "󰌢 SYSTEM",
"keyColor": "green"
},
{
"type": "cpu",
"key": "│ ├󰻠",
"keyColor": "green"
},
{
"type": "gpu",
"key": "│ ├󰻑",
"format": "{2}",
"keyColor": "green"
},
{
"type": "display",
"key": "│ ├󰍹",
"keyColor": "green",
"compactType": "original-with-refresh-rate"
},
{
"type": "memory",
"key": "│ ├󰾆",
"keyColor": "green"
},
{
"type": "swap",
"key": "│ ├󰓡",
"keyColor": "green"
},
{
"type": "uptime",
"key": "│ ├󰅐",
"keyColor": "green"
},
{
"type": "display",
"key": "│ └󰍹",
"keyColor": "green"
},
{
"type": "sound",
"key": " AUDIO",
"format": "{2}",
"keyColor": "magenta"
},
{
"type": "player",
"key": "│ ├󰥠",
"keyColor": "magenta"
},
{
"type": "media",
"key": "│ └󰝚",
"keyColor": "magenta"
},
{
"type": "custom",
"format": "\u001b[90m \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[38m \u001b[39m \u001b[39m  \u001b[38m \u001b[37m \u001b[36m \u001b[35m \u001b[34m \u001b[33m \u001b[32m \u001b[31m \u001b[90m "
},
"break",
]
}

View File

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

View File

@@ -12,7 +12,7 @@ Extra=(
)
hypr_package=(
aylurs-gtk-shell
#aylurs-gtk-shell
cliphist
curl
grim
@@ -64,12 +64,14 @@ hypr_package_2=(
nvtop
nwg-look
pacman-contrib
qalculate-gtk
vim
yt-dlp
)
# List of packages to uninstall as it conflicts with swaync and rofi-wayland
# List of packages to uninstall as it conflicts some packages
uninstall=(
aylurs-gtk-shell
dunst
mako
rofi
@@ -90,15 +92,23 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypr-pkgs.log"
# uninstalling conflicting packages
printf "\n%s - Removing Mako, Dunst and rofi as it conflicts with swaync and rofi-wayland \n" "${NOTE}"
# Initialize a variable to track overall errors
overall_failed=0
printf "\n%s - Removing Mako, Dunst, and rofi as they conflict with swaync and rofi-wayland \n" "${NOTE}"
for PKG in "${uninstall[@]}"; do
uninstall_package "$PKG" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $PKG uninstallation failed, please check the log"
exit 1
# Track if any uninstallation failed
overall_failed=1
fi
done
if [ $overall_failed -ne 0 ]; then
echo -e "${ERROR} Some packages failed to uninstall. Please check the log."
fi
# Installation of main components
printf "\n%s - Installing hyprland packages.... \n" "${NOTE}"

View File

@@ -0,0 +1,91 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Final checking if packages are installed
# NOTE: These package check are only the essentials
packages=(
cliphist
kvantum
rofi-wayland
imagemagick
swaync
swww
wallust
waybar
wl-clipboard
wlogout
kitty
hypridle
hyprlock
hyprland
pyprland
)
# Local packages that should be in /usr/local/bin/
local_pkgs_installed=(
ags
)
## 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" || { 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
LOG="Install-Logs/00_CHECK-$(date +%d-%H%M%S)_installed.log"
printf "\n%s - Final Check if Essential packages were installed \n" "${NOTE}"
# Initialize an empty array to hold missing packages
missing=()
local_missing=()
# Function to check if a package is installed using pacman
is_installed_pacman() {
pacman -Qi "$1" &>/dev/null
}
# Loop through each package
for pkg in "${packages[@]}"; do
# Check if the package is installed via pacman
if ! is_installed_pacman "$pkg"; then
missing+=("$pkg")
fi
done
# Check for local packages
for pkg1 in "${local_pkgs_installed[@]}"; do
if ! [ -f "/usr/local/bin/$pkg1" ]; then
local_missing+=("$pkg1")
fi
done
# Log missing packages
if [ ${#missing[@]} -eq 0 ] && [ ${#local_missing[@]} -eq 0 ]; then
echo "${OK} All essential packages are installed." | tee -a "$LOG"
else
if [ ${#missing[@]} -ne 0 ]; then
echo "${WARN} The following packages are not installed and will be logged:"
for pkg in "${missing[@]}"; do
echo "$pkg"
echo "$pkg" >> "$LOG" # Log the missing package to the file
done
fi
if [ ${#local_missing[@]} -ne 0 ]; then
echo "${WARN} The following local packages are missing from /usr/local/bin/ and will be logged:"
for pkg1 in "${local_missing[@]}"; do
echo "$pkg1 is not installed. Can't find it in /usr/local/bin/"
echo "$pkg1" >> "$LOG" # Log the missing local package to the file
done
fi
# Add a timestamp when the missing packages were logged
echo "${NOTE} Missing packages logged at $(date)" >> "$LOG"
fi

View File

@@ -8,7 +8,7 @@ set -e
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
WARN="$(tput setaf 5)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
@@ -31,7 +31,7 @@ install_package_pacman() {
sudo pacman -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if pacman -Q "$1" &>/dev/null ; then
echo -e "${OK} $1 was installed."
echo -e "\e[1A\e[K${OK} Package ${YELLOW}$1${RESET} has been successfully installed!"
else
# Something is missing, exiting to review log
echo -e "${ERROR} $1 failed to install. Please check the $LOG. You may need to install manually."
@@ -54,7 +54,7 @@ install_package() {
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
echo -e "\e[1A\e[K${OK} Package ${YELLOW}$1${RESET} has been successfully installed!"
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
@@ -65,18 +65,22 @@ install_package() {
# Function for uninstalling packages
uninstall_package() {
local pkg="$1"
# Checking if package is installed
if pacman -Qi "$1" &>> /dev/null ; then
if pacman -Qi "$pkg" &>> /dev/null ; then
# Package is installed
echo -e "${NOTE} Uninstalling $1 ..."
sudo pacman -R --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is uninstalled
if ! pacman -Qi "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was uninstalled."
echo -e "${NOTE} Uninstalling $pkg ..."
sudo pacman -R --noconfirm "$pkg" 2>&1 | tee -a "$LOG" | grep -v "error: target not found"
# Check if the package was uninstalled
if ! pacman -Qi "$pkg" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $pkg was uninstalled."
else
# Something went wrong, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to uninstall. Please check the log."
exit 1
echo -e "\e[1A\e[K${ERROR} $pkg failed to uninstall. Please check the log."
return 1
fi
else
echo -e "${NOTE} $pkg is not installed, skipping uninstallation."
fi
return 0
}

View File

@@ -23,6 +23,8 @@ while true; do
echo "${WARN} This script will add your user to the 'input' group."
echo "${NOTE} Please note that adding yourself to the 'input' group might be necessary for waybar keyboard-state functionality."
printf "\n%.0s" {1..1}
if [[ -z $input_group_choid ]]; then
read -p "${YELLOW}Do you want to proceed? (y/n): ${RESET}" input_group_choid
fi

80
install-scripts/ags.sh Executable file
View File

@@ -0,0 +1,80 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Aylur's GTK Shell v 1.8.2#
ags=(
typescript
npm
meson
glib2-devel
gjs
gtk3
gtk-layer-shell
upower networkmanager
gobject-introspection
libdbusmenu-gtk3
libsoup3
)
# specific tags to download
ags_tag="v1.8.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)_ags.log"
MLOG="install-$(date +%d-%H%M%S)_ags2.log"
printf "\n%.0s" {1..1}
# Installation of main components
printf "\n%s - Installing AGS Dependencies \n" "${NOTE}"
# Installing ags Dependencies
for PKG1 in "${ags[@]}"; 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 "\n%.0s" {1..1}
# ags
printf "${NOTE} Install and Compiling Aylurs GTK shell v1.8.2..\n"
# Check if folder exists and remove it
if [ -d "ags" ]; then
printf "${NOTE} Removing existing ags folder...\n"
rm -rf "ags"
fi
# Clone nwg-look repository with the specified tag
if git clone --recursive -b "$ags_tag" --depth 1 https://github.com/Aylur/ags.git; then
cd ags || exit 1
# Build and install ags
npm install
meson setup build
if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then
printf "${OK} ags installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for ags" 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 ags Please check your connection" 2>&1 | tee -a "$LOG"
mv "$MLOG" ../Install-Logs/ || true
exit 1
fi

View File

@@ -0,0 +1,29 @@
#!/bin/bash
# 💫 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"
# Check if Hyprland-Dots exists
printf "${NOTE} Downloading KooL's Hyprland Dots....\n"
if [ -d Hyprland-Dots ]; then
cd Hyprland-Dots
git stash
git pull
git stash apply
chmod +x copy.sh
./copy.sh
else
if git clone --depth 1 https://github.com/JaKooLit/Hyprland-Dots; then
cd Hyprland-Dots || exit 1
chmod +x copy.sh
./copy.sh
else
echo -e "$ERROR Can't download Hyprland-Dots"
fi
fi
clear

View File

@@ -38,7 +38,7 @@ if [ -d "GTK-themes-icons" ]; then
fi
echo "$NOTE Cloning GTK themes and Icons repository..." 2>&1 | tee -a "$LOG"
if git clone 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
@@ -48,7 +48,4 @@ else
echo "$ERROR Download failed for GTK themes and Icons.." 2>&1 | tee -a "$LOG"
fi
tar -xf "assets/Bibata-Modern-Ice.tar.xz" -C ~/.icons 2>&1 | tee -a "$LOG"
echo "$OK Extracted Bibata-Modern-Ice.tar.xz to ~/.icons folder." 2>&1 | tee -a "$LOG"
clear

View File

@@ -10,12 +10,13 @@ hypr=(
hyprlock
hyprland
pyprland
hyprland-qtutils
)
## 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/.."
@@ -28,7 +29,7 @@ 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
if pacman -Qs hyprland >/dev/null; then
printf "${YELLOW} Hyprland detected. uninstalling to install Hyprland-git...${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
@@ -37,9 +38,12 @@ fi
# Hyprland
printf "${NOTE} Installing Hyprland .......\n"
for HYPR in "${hypr[@]}"; do
for HYPR in "${hypr[@]}"; do
install_package "$HYPR" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $HYPR Package installation failed, Please check the installation logs"; exit 1; }
[ $? -ne 0 ] && {
echo -e "\e[1A\e[K${ERROR} - $HYPR Package installation failed, Please check the installation logs"
exit 1
}
done
clear

View File

@@ -12,7 +12,7 @@ LOG="install-$(date +%d-%H%M%S)_paru.log"
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
WARN="$(tput setaf 5)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
@@ -24,7 +24,7 @@ if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
# checking if paru-bin exist and removing if it is
# checking if paru exist and removing if it is
if [ -d paru-bin ]; then
rm -rf paru-bin 2>&1 | tee -a "$LOG"
fi
@@ -36,10 +36,10 @@ if [ -n "$ISAUR" ]; then
printf "\n%s - AUR helper already installed, moving on..\n" "${OK}"
else
printf "\n%s - AUR helper was NOT located\n" "$WARN"
printf "\n%s - Installing paru from AUR\n" "${NOTE}"
git clone https://aur.archlinux.org/paru-bin.git || { printf "%s - Failed to clone paru from AUR\n" "${ERROR}"; exit 1; }
cd paru-bin || { printf "%s - Failed to enter paru-bin directory\n" "${ERROR}"; exit 1; }
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install paru from AUR\n" "${ERROR}"; exit 1; }
printf "\n%s - Installing paru-bin from AUR\n" "${NOTE}"
git clone https://aur.archlinux.org/paru-bin.git || { printf "%s - Failed to clone paru-bin from AUR\n" "${ERROR}"; exit 1; }
cd paru-bin || { printf "%s - Failed to enter paru directory\n" "${ERROR}"; exit 1; }
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install paru-bin from AUR\n" "${ERROR}"; exit 1; }
# moving install logs in to Install-Logs folder
mv install*.log ../Install-Logs/ || true

View File

@@ -27,12 +27,6 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_pipewire.log"
ISAUR=$(command -v yay || command -v paru)
# Removal of pulseaudio
printf "${YELLOW}Removing pulseaudio stuff...${RESET}\n"
for pulseaudio in pulseaudio pulseaudio-alsa pulseaudio-bluetooth; do
sudo pacman -R --noconfirm "$pulseaudio" 2>/dev/null | tee -a "$LOG" || true
done
# Disabling pulseaudio to avoid conflicts
systemctl --user disable --now pulseaudio.socket pulseaudio.service 2>/dev/null && tee -a "$LOG"

View File

@@ -52,7 +52,8 @@ sddm_conf_dir=/etc/sddm.conf.d
wayland_sessions_dir=/usr/share/wayland-sessions
[ ! -d "$wayland_sessions_dir" ] && { printf "$CAT - $wayland_sessions_dir not found, creating...\n"; sudo mkdir "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"; }
sudo cp assets/hyprland.desktop "$wayland_sessions_dir/" 2>&1 | tee -a "$LOG"
printf "\n%.0s" {1..2}
# SDDM-themes
valid_input=false

View File

@@ -2,13 +2,17 @@
# 💫 https://github.com/JaKooLit 💫 #
# Thunar #
if [[ $USE_PRESET = [Yy] ]]; then
source ./preset.sh
fi
thunar=(
thunar
thunar-volman
tumbler
ffmpegthumbnailer
file-roller
thunar-archive-plugin
xarchiver
)
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
@@ -32,6 +36,22 @@ printf "${NOTE} Installing Thunar Packages...\n"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THUNAR Package installation failed, Please check the installation logs"; exit 1; }
done
printf "\n%.0s" {1..2}
# 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
for DIR1 in gtk-3.0 Thunar xfce4; do
DIRPATH=~/.config/$DIR1

View File

@@ -33,13 +33,12 @@ for xdgs in "${xdg[@]}"; do
fi
done
printf "\n"
printf "${NOTE} Checking for other XDG-Desktop-Portal-Implementations....\n"
sleep 1
printf "\n"
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
printf "\n%.0s" {1..2}
if [[ -z $XDPH1 ]]; then
read -rp "${CAT} Would you like to try to remove other XDG-Desktop-Portal-Implementations? (y/n) " XDPH1
fi

View File

@@ -12,7 +12,7 @@ LOG="install-$(date +%d-%H%M%S)_yay.log"
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
WARN="$(tput setaf 5)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
@@ -23,9 +23,9 @@ if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
# Check Existing yay-bin
if [ -d yay-bin ]; then
rm -rf yay-bin 2>&1 | tee -a "$LOG"
# Check Existing yay
if [ -d yay ]; then
rm -rf yay 2>&1 | tee -a "$LOG"
fi
# Check for AUR helper and install if not found
@@ -35,8 +35,8 @@ if [ -n "$ISAUR" ]; then
else
printf "\n%s - AUR helper was NOT located\n" "$WARN"
printf "\n%s - Installing yay from AUR\n" "${NOTE}"
git clone https://aur.archlinux.org/yay-bin.git || { printf "%s - Failed to clone yay from AUR\n" "${ERROR}"; exit 1; }
cd yay-bin || { printf "%s - Failed to enter yay-bin directory\n" "${ERROR}"; exit 1; }
git clone https://aur.archlinux.org/yay.git || { printf "%s - Failed to clone yay from AUR\n" "${ERROR}"; exit 1; }
cd yay || { printf "%s - Failed to enter yay directory\n" "${ERROR}"; exit 1; }
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install yay from AUR\n" "${ERROR}"; exit 1; }
# moving install logs in to Install-Logs folder

View File

@@ -34,7 +34,11 @@ while true; do
case "$pokemon_choice" in
[Yy]*)
zsh+=('pokemon-colorscripts-git')
sed -i '/#pokemon-colorscripts --no-title -s -r/s/^#//' assets/.zshrc
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
break
;;
[Nn]*)

View File

@@ -5,7 +5,7 @@
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
WARN="$(tput setaf 5)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
@@ -21,7 +21,7 @@ fi
clear
# Check if PulseAudio package is installed
if pacman -Qq | grep -qw pulseaudio; then
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')."
exit 1
fi
@@ -209,7 +209,7 @@ elif [ "$aur_helper" == "yay" ]; then
fi
# Install hyprland packages
execute_script "00-hypr-pkgs.sh"
execute_script "01-hypr-pkgs.sh"
# Install pipewire and pipewire-audio
execute_script "pipewire.sh"
@@ -220,6 +220,9 @@ execute_script "fonts.sh"
# Install hyprland
execute_script "hyprland.sh"
# Install AGS from source (older version)
execute_script "ags.sh"
if [ "$nvidia" == "Y" ]; then
execute_script "nvidia.sh"
fi
@@ -255,69 +258,43 @@ if [ "$rog" == "Y" ]; then
fi
if [ "$dots" == "Y" ]; then
execute_script "dotfiles.sh"
execute_script "dotfiles-main.sh"
fi
clear
printf "\n%.0s" {1..3}
# Error-checking section
LOG_DIR="Install-Logs"
ERROR_FILE="$LOG_DIR/00-Error.log"
# Create or clear the error file
: > "$ERROR_FILE"
# Check if the Install-Logs directory exists
if [ -d "$LOG_DIR" ]; then
# Iterate through each file in the Install-Logs directory
for log_file in "$LOG_DIR"/*; do
# Check if it's a file
if [ -f "$log_file" ]; then
# Search for lines containing the word "error" (case-insensitive) in the log file
if grep -i "error" "$log_file" > /dev/null; then
# If errors are found, add the filename to the error file
echo "${WARN} Errors found in file: $(basename "$log_file")" >> "$ERROR_FILE"
fi
fi
done
# Check if the error file has any content
if [ -s "$ERROR_FILE" ]; then
echo "${ERROR} Errors encountered during Installation. See $ERROR_FILE for details."
else
echo "${OK} No errors were found."
fi
else
echo "Directory $LOG_DIR does not exist or could not be found."
# copy fastfetch config if arch.png is not present
if [ ! -f "$HOME/.config/fastfetch/arch.png" ]; then
cp -r assets/fastfetch "$HOME/.config/"
fi
# final check essential packages if it is installed
execute_script "02-Final-Check.sh"
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, there may some errors during installation "
printf "\n${CAT} Please see the errors in Install-Logs as stated above\n"
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"
sleep 2
printf "\n${NOTE} You can start Hyprland by typing Hyprland (IF SDDM is not installed) (note the capital H!).\n"
printf "\n"
printf "\n${NOTE} However, It is highly recommended to reboot your system.\n\n"
printf "\n${NOTE} You can start Hyprland by typing 'Hyprland' (IF SDDM is not installed) (note the capital H!).\n"
printf "\n${NOTE} However, it is highly recommended to reboot your system.\n\n"
# Prompt user to reboot
read -rp "${CAT} Would you like to reboot now? (y/n): " HYP
# Check if the user answered 'y' or 'Y'
if [[ "$HYP" =~ ^[Yy]$ ]]; then
if [[ "$nvidia" == "Y" ]]; then
echo "${NOTE} NVIDIA GPU detected. Rebooting the system..."
systemctl reboot
else
systemctl reboot
fi
systemctl reboot
fi
else
# Print error message if neither package is installed
printf "\n${WARN} Hyprland failed to install. Please check Error Log and Install-Logs directory...\n\n"
printf "\n${WARN} Hyprland failed to install. Please check 00_CHECK-time_installed.log and other files Install-Logs/ directory...\n\n"
exit 1
fi

View File

@@ -32,11 +32,12 @@ dots="Y"
### These are the sub-questions of the above choices
### Would you like to blacklist nouveau? (y/n)
blacklist_nouveau="Y"
# Ask the user if they want to use Thunar as the default file manager
# Do you want to set Thunar as the default file manager? (y/n): "
thunar_default="Y"
### XDG-desktop-portal-KDE & GNOME (if installed) should be manually disabled or removed! Script cant remove nor disable it.
### Would you like to try to remove other XDG-Desktop-Portal-Implementations? (y/n)
XDPH1="Y"
### SDDM is already installed. Would you like to manually install sddm-git to remove it? This requires manual intervention. (y/n)
manual_install_sddm="N"
### OPTIONAL - Would you like to install SDDM themes? (y/n)
install_sddm_theme="Y"
### " This script will add your user to the 'input' group."