Merge pull request #170 from JaKooLit/main

main to development
This commit is contained in:
Ja.KooLit 2025-01-07 21:47:31 +09:00 committed by GitHub
commit cd4539edeb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
32 changed files with 796 additions and 307 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,49 +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.]
### 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,31 @@
## Changelogs
## 01 Jan 2025
- Switched to download dots from KooL's Hyprland dots specific branch
## 26 Dec 2024
- Removal of Bibata Ice cursor on assets since its integrated in the GTK Themes and Icons extract from a separate repo
## 10 Dec 2024
- updated swww.sh to download from version v0.9.5
## 24 Nov 2024
- switched to download rofi-wayland from releases instead from upstream
## 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
- updated xdph installation since it is now in Debian Repo
- Added fastfetch on tty. However, will be disabled if user decided to install pokemon colorscripts
## 14 Sep 2024
- Added Essential Packages final check in lieu of errors from Install log files in Install-Logs directory
- nwg-look is now in Debian Repo
## 10 Sep 2024
- added background check of known login managers if they are active if user chose to install sddm
## 08 Sep 2024
- Added final error checks on install-logs

View File

@ -1,6 +1,16 @@
## NOTE: Ubuntu-Hyprland install script has its own repo now
- [`Ubuntu-Hyprland LINK`](https://github.com/JaKooLit/Ubuntu-Hyprland)
<div align="center">
# 💌 KooL's Debian-Hyprland Install Script 💌
#### For Debian 13 Trixie (Testing) and SID (unstable)
<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/Debian-Hyprland?style=for-the-badge&color=cba6f7) ![GitHub last commit](https://img.shields.io/github/last-commit/JaKooLit/Debian-Hyprland?style=for-the-badge&color=b4befe) ![GitHub repo size](https://img.shields.io/github/repo-size/JaKooLit/Debian-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>
<br/>
</div>
<div align="center">
<br>
@ -8,15 +18,7 @@
<a href="#-to-use-this-script"><kbd><br>Installation<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 Debian-Hyprland Install Script 💌
#### For Debian 13 Trixie (Testing) and SID (unstable)
![GitHub Repo stars](https://img.shields.io/github/stars/JaKooLit/Debian-Hyprland?style=for-the-badge&color=cba6f7) ![GitHub last commit](https://img.shields.io/github/last-commit/JaKooLit/Debian-Hyprland?style=for-the-badge&color=b4befe) ![GitHub repo size](https://img.shields.io/github/repo-size/JaKooLit/Debian-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>
<br/>
</div>
<div align="center">
👇 KOOL's Hyprland-Dots related Links 👇
@ -44,6 +46,8 @@ https://github.com/JaKooLit/Hyprland-Dots/assets/85185940/50d53755-0f11-45d6-991
</div>
### NOTE: Ubuntu-Hyprland install script has its own repo now
- [`Ubuntu-Hyprland LINK`](https://github.com/JaKooLit/Ubuntu-Hyprland)
> [!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
@ -51,7 +55,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
#### ⚠️ Pre-requisites and VERY Important! ###
@ -134,11 +138,8 @@ sudo nano /etc/apt/sources.list
- If you have nvidia, and wanted to use proprietary drivers, uninstall nouveau first (if installed). This script will be installing proprietary nvidia drivers and will not deal with removal of nouveau.
- NVIDIA users / owners, after installation, check [`THIS`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Notes_to_remember#--for-nvidia-gpu-users)
#### ⚠️ WARNING! nwg-look takes long time to install.
- nwg-look is a utility to costumize your GTK theme. It's a LXAppearance like. Its a good tool though but this package is entirely optional
#### ✨ Costumize the packages to be installed
- inside the install-scripts directory, you can edit 00-hypr-pkgs.sh. Do not edit 00-dependencies.sh unless you know what you are doing. Care though as the Hyprland Dots may not work properly!
- inside the install-scripts directory, you can edit 01-hypr-pkgs.sh. Do not edit 00-dependencies.sh unless you know what you are doing. Care though as the Hyprland Dots may not work properly!
#### 💫 SDDM and GTK Themes offered
- If you opted to install SDDM theme, here's the [`LINK`](https://github.com/JaKooLit/simple-sddm)
@ -184,15 +185,12 @@ source ~/.zshrc
- if you installed in your laptop and Brightness and Keyboard brightness does not work you can execute this command `sudo chmod +s $(which brightnessctl)`
#### ✨ Packages that are manually downloaded and build. These packages will not be updated by apt and have to be manually updated
- nwg-look [`LINK`](https://github.com/nwg-piotr/nwg-look)
- Asus ROG asusctl [`LINK`](https://gitlab.com/asus-linux/asusctl) and superfxctl [`LINK`](https://gitlab.com/asus-linux/supergfxctl)
- swww [`LINK`](https://github.com/Horus645/swww)
- hyprlock [`LINK`](https://github.com/hyprwm/hyprlock) #22 Aug 2024 - still not on repo
- hypridle [`LINK`](https://github.com/hyprwm/hypridle) #22 Aug 2024 - still not on repo
- xdg-desktop-portal-hyprland [`LINK`](https://github.com/hyprwm/xdg-desktop-portal-hyprland)
- rofi-wayland [`LINK`](https://github.com/lbonn/rofi)
- wallust [`LINK`](https://codeberg.org/explosion-mental/wallust)
- Imagemagick [`LINK`](https://github.com/ImageMagick/ImageMagick) - as of 23 AUG 2024, version 7 still not on official repo, hence needed to build from source
> [!TIP]
> To update to latest packages, re-running this script will auto update all. Script is configured to pull latest packages build for you.
@ -201,13 +199,22 @@ source ~/.zshrc
#### Most common question I got is, Hey Ja, Why the heck it is taking long time to install? Other distro like Arch its only a minute or two. Why here takes like forever?!?!?!
- Well, most of the core packages are downloaded and Build and compiled from SOURCE. Unlike Other distros, they already have prepacked binary that can just download and install.
> [!NOTE]
> This script does not setup audio. Kindly set up. If you have not, I recommend pipewire. `sudo apt install -y pipewire`
### 🛎 *** DEBIAN and UBUNTU Hyprland Dots UPDATING NOTES ***
> [!IMPORTANT]
> This is very Important for Debian and Ubuntu Dots
- Some parts of KooL's Hyprland Dots [`LINK`](https://github.com/JaKooLit/Hyprland-Dots) are not compatible on Debian and Ubuntu especially the hyprland settings.
- That is the reason the DOTS for those distro's are "fixed" and they are being pulled on the releases. This releases are NOT in any of the branches of the KooL's Hyprland Dots.
- for Debian and Ubuntu if you want to update from newest KooL's dots versions (main branch), after running copy.sh, you will have 100% error which will appear on top. However, Hyprland is very good in pin pointing those errors.
- You can simply just remove those lines or add # on those lines. Then, it should be ok.
#### ❗ some known issues on this Installer
- some users reported that they have to install some packages. It is in the install-scripts/force-install.sh
- At this time the packages force to install are the following `imagemagick`
> [!NOTE]
> This script does not setup audio. Kindly set up. If you have not, I recommend pipewire. `sudo apt install -y pipewire`
#### 🫥 Improving performance for Older Nvidia Cards using driver 470
- [`SEE HERE`](https://github.com/JaKooLit/Hyprland-Dots/discussions/123#discussion-6035205)

View File

@ -18,6 +18,8 @@ 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 using eza
alias ls='eza -a --icons'

Binary file not shown.

View File

@ -0,0 +1,75 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"source": "~/.config/fastfetch/debian.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",
]
}

BIN
assets/fastfetch/debian.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

View File

@ -20,6 +20,7 @@ hypr_package=(
imagemagick
kitty
nano
nwg-look
pavucontrol
playerctl
polkit-kde-agent-1
@ -62,6 +63,13 @@ hypr_package_2=(
uninstall=(
dunst
mako
rofi
cargo
)
# List packages to force reinstall
force=(
yad
)
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
@ -88,8 +96,7 @@ for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${Extra[@]}"; do
fi
done
printf "\n%s - Checking if mako or dunst are installed and removing for swaync to work properly \n" "${NOTE}"
printf "\n%s - Uninstalling some packages inorder for dots to work properly \n" "${NOTE}"
for PKG in "${uninstall[@]}"; do
uninstall_package "$PKG" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
@ -98,6 +105,19 @@ for PKG in "${uninstall[@]}"; do
fi
done
for PKG2 in "${force[@]}"; do
re_install_package "$PKG2" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - Force reinstall of $PKG2 failed"
exit 1
fi
done
# Install up-to-date Rust
echo "Installing most up to date Rust compiler..."
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 2>&1 | tee -a "$LOG"
source "$HOME/.cargo/env"
## making brightnessctl work
sudo chmod +s $(which brightnessctl) 2>&1 | tee -a "$LOG" || true

View File

@ -0,0 +1,106 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Final checking if packages are installed
# NOTE: These package checks are only the essentials
packages=(
imagemagick
sway-notification-center
waybar
wl-clipboard
cliphist
wlogout
kitty
hyprland
)
# Local packages that should be in /usr/local/bin/
local_pkgs_installed=(
ags
rofi
hypridle
hyprlock
wallust
)
local_pkgs_installed_2=(
swww
)
## 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/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=()
local_missing_2=()
# Function to check if a package is installed using dpkg
is_installed_dpkg() {
dpkg -l | grep -q "^ii $1 "
}
# Loop through each package
for pkg in "${packages[@]}"; do
# Check if the package is installed via dpkg
if ! is_installed_dpkg "$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
# Check for local packages in /usr/bin
for pkg2 in "${local_pkgs_installed_2[@]}"; do
if ! [ -f "/usr/bin/$pkg2" ]; then
local_missing_2+=("$pkg2")
fi
done
# Log missing packages
if [ ${#missing[@]} -eq 0 ] && [ ${#local_missing[@]} -eq 0 ] && [ ${#local_missing_2[@]} -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
if [ ${#local_missing_2[@]} -ne 0 ]; then
echo "${WARN} The following local packages are missing from /usr/bin/ and will be logged:"
for pkg2 in "${local_missing_2[@]}"; do
echo "$pkg2 is not installed. can't find it in /usr/bin/"
echo "$pkg2" >> "$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

@ -13,7 +13,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() {
sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"
# Making sure the package is installed
if sudo dpkg -l | grep -q -w "$1" ; 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 the 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 :("
@ -48,7 +48,7 @@ re_install_package() {
if sudo apt-get install --reinstall -y "$1" 2>&1 | tee -a "$LOG"; then
# Check if the package was installed successfully
if dpkg -l | grep -q -w "$1"; then
echo -e "${OK} $1 was installed successfully."
echo -e "\e[1A\e[K${OK} Package ${YELLOW}$1${RESET} has been successfully installed!"
else
# Package was not found, installation failed
echo -e "${ERROR} $1 failed to install. Please check the install.log. You may need to install it manually. Sorry, I have tried :("

View File

@ -19,6 +19,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..2}
read -p "${YELLOW}Do you want to proceed? (y/n): ${RESET}" choice
if [[ $choice == "y" || $choice == "Y" ]]; then

View File

@ -10,6 +10,7 @@ ags=(
gjs
libgtk-layer-shell-dev
libgtk-3-dev
libpam0g-dev
libpulse-dev
libdbusmenu-gtk3-dev
libsoup-3.0-dev

View File

@ -0,0 +1,32 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Hyprland-Dots to download from main #
#specific branch or release
dots_tag="Deb-Untu-old-v-Hyprland"
## 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 for Debian....\n"
if [ -d Hyprland-Dots-Debian ]; then
cd Hyprland-Dots-Debian
git stash
git pull
git stash apply
chmod +x copy.sh
./copy.sh
else
if git clone --depth 1 -b $dots_tag https://github.com/JaKooLit/Hyprland-Dots Hyprland-Dots-Debian; then
cd Hyprland-Dots-Debian || exit 1
chmod +x copy.sh
./copy.sh
else
echo -e "$ERROR Can't download Hyprland-Dots-Debian"
fi
fi
clear

View File

@ -37,7 +37,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
@ -47,7 +47,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

@ -2,6 +2,8 @@
# 💫 https://github.com/JaKooLit 💫 #
# nwg-look ) #
# nwg-look is now in trixie repo 14-Sep-2024
nwg_look=(
golang
libgtk-3-dev

View File

@ -23,6 +23,7 @@ rofi=(
libxkbcommon-dev
libxkbcommon-x11-dev
imagemagick
wget
)
@ -66,20 +67,21 @@ printf "\n\n"
printf "${NOTE} Installing rofi-wayland...\n"
# Check if rofi folder exists
if [ -d "rofi" ]; then
printf "${NOTE} rofi folder exists. Removing existing directory...\n"
rm -rf rofi
if [ -d "rofi-1.7.5+wayland3" ]; then
rm -rf "rofi-1.7.5+wayland3"
fi
# cloning rofi-wayland
printf "${NOTE} Cloning rofi-wayland repository...\n"
if git clone https://github.com/lbonn/rofi.git; then
cd rofi || exit 1
else
echo -e "${ERROR} Download failed for rofi-wayland." 2>&1 | tee -a "$LOG"
exit 1
printf "${NOTE} Downloading rofi-wayland v1.7.5+wayland3 from releases...\n"
wget https://github.com/lbonn/rofi/releases/download/1.7.5%2Bwayland3/rofi-1.7.5+wayland3.tar.gz
if [ -f "rofi-1.7.5+wayland3.tar.gz" ]; then
printf "rofi-wayland downloaded successfully.\n" 2>&1 | tee -a "$LOG"
tar xf rofi-1.7.5+wayland3.tar.gz
fi
cd rofi-1.7.5+wayland3 || exit 1
# Proceed with the installation steps
if meson setup build && ninja -C build ; then
if sudo ninja -C build install 2>&1 | tee -a "$MLOG"; then
@ -95,5 +97,7 @@ fi
mv "$MLOG" ../Install-Logs/ || true
cd .. || exit 1
clear
# clean up
rm -rf rofi-1.7.5+wayland3.tar.gz
clear

View File

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

View File

@ -34,13 +34,7 @@ for PKG1 in "${swww[@]}"; do
fi
done
printf "${NOTE} Force installing packages...\n"
for FORCE in "${swww[@]}"; do
sudo apt-get --reinstall install -y "$FORCE" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $FORCE Package installation failed, Please check the installation logs"; exit 1; }
done
printf "\n\n"
printf "\n%.0s" {1..2}
printf "${NOTE} Installing swww\n"
@ -51,7 +45,7 @@ if [ -d "swww" ]; then
git pull origin main 2>&1 | tee -a "$MLOG"
else
printf "${NOTE} Cloning swww repository...\n"
if git clone --recursive https://github.com/Horus645/swww.git; then
if git clone --recursive -b $swww_tag https://github.com/LGFae/swww.git; then
cd swww || exit 1
else
echo -e "${ERROR} Download failed for swww" 2>&1 | tee -a "$LOG"

View File

@ -4,7 +4,6 @@
thunar=(
ffmpegthumbnailer
file-roller
thunar
thunar-volman
tumbler
@ -31,6 +30,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

@ -3,64 +3,31 @@
# XDG-Desktop-Portals for hyprland #
xdg=(
libpipewire-0.3-dev
libspa-0.2-dev
xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland
)
#specific branch or release
xdph_tag="v1.3.3"
## 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)_xdph.log"
MLOG="install-$(date +%d-%H%M%S)_xdph2.log"
##
printf "${NOTE} Installing xdg-desktop-portal-gtk...\n"
# Check if the file exists and remove it
[[ -f "/usr/lib/xdg-desktop-portal-hyprland" ]] && sudo rm "/usr/lib/xdg-desktop-portal-hyprland"
printf "${NOTE} Installing xdg-desktop-portals...\n"
for portal in "${xdg[@]}"; do
install_package "$portal" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $portal Package installation failed, Please check the installation logs"; exit 1; }
done
# Check if xdg-desktop-portal-hyprland folder exists and remove it
if [ -d "xdg-desktop-portal-hyprland" ]; then
printf "${NOTE} Removing existing xdg-desktop-portal-hyprland folder...\n"
rm -rf "xdg-desktop-portal-hyprland"
fi
# Clone and build xdg-desktop-portal-hyprland
printf "${NOTE} Installing xdg-desktop-portal-hyprland...\n"
if git clone --recursive -b $xdph_tag https://github.com/hyprwm/xdg-desktop-portal-hyprland; then
cd xdg-desktop-portal-hyprland || exit 1
cmake -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -B build
cmake --build build
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} xdg-desktop-portal-hyprland installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for xdg-desktop-portal-hyprland." 2>&1 | tee -a "$MLOG"
fi
#moving the addional logs to Install-Logs directory
mv $MLOG ../Install-Logs/ || true
cd ..
else
echo -e "${ERROR} Download failed for xdg-desktop-portal-hyprland." 2>&1 | tee -a "$LOG"
fi
printf "\n\n"
printf "${NOTE} Checking for other XDG-Desktop-Portal-Implementations....\n"
printf "\n\n${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
read -rp "${CAT} Would you like to try to remove other XDG-Desktop-Portal-Implementations? (y/n) " XDPH1
echo
@ -68,25 +35,19 @@ while true; do
case $XDPH1 in
[Yy])
# Clean out other portals
printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n"
# Check if packages are installed and uninstall if present
if sudo apt-get list installed xdg-desktop-portal-wlr &>> /dev/null; then
echo "Removing xdg-desktop-portal-wlr..."
sudo apt-get remove -y xdg-desktop-portal-wlr 2>&1 | tee -a "$LOG"
fi
if sudo apt-get list installed xdg-desktop-portal-lxqt &>> /dev/null; then
echo "Removing xdg-desktop-portal-lxqt..."
sudo apt-get remove -y xdg-desktop-portal-lxqt 2>&1 | tee -a "$LOG"
for portal in xdg-desktop-portal-wlr xdg-desktop-portal-lxqt; do
if dpkg -l | grep -q "$portal"; then
echo "Removing $portal..."
sudo apt-get remove -y "$portal" 2>&1 | tee -a "$LOG"
fi
done
break
;;
[Nn])
echo "no other XDG-implementations will be removed." 2>&1 | tee -a "$LOG"
echo "No other XDG-implementations will be removed." 2>&1 | tee -a "$LOG"
break
;;
*)
echo "Invalid input. Please enter 'y' for yes or 'n' for no."
;;
@ -94,4 +55,3 @@ while true; do
done
clear

View File

@ -37,7 +37,7 @@ for ZSHP in "${zsh[@]}"; do
fi
done
printf "\n"
printf "\n%.0s" {1..2}
## Optional Pokemon color scripts
while true; do
@ -51,6 +51,10 @@ while true; do
cd pokemon-colorscripts && sudo ./install.sh && cd ..
fi
sed -i '/#pokemon-colorscripts --no-title -s -r/s/^#//' assets/.zshrc >> "$LOG" 2>&1
# commenting out fastfetch since pokemon was chosen to install
sed -i '/^fastfetch -c $HOME\/.config\/fastfetch\/config-compact.jsonc/s/^/#/' assets/.zshrc >> "$LOG" 2>&1
echo "${NOTE} Pokemon Installation process completed" 2>&1 | tee -a "$LOG"
break
;;

View File

@ -21,7 +21,7 @@ is_ubuntu() {
# Check if the system is Ubuntu
if is_ubuntu; then
echo "This script is NOT intended for Ubuntu / Ubuntu Based. Please read the README for the correct link."
echo "This script is NOT intended for Ubuntu / Ubuntu Based. Refer to README for the correct link for Ubuntu-Hyprland project."
exit 1
fi
@ -68,7 +68,7 @@ fi
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)
@ -162,8 +162,11 @@ ask_yes_no "-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OB
printf "\n"
ask_yes_no "-Install zsh & oh-my-zsh plus (OPTIONAL) pokemon-colorscripts for tty?" zsh
printf "\n"
ask_yes_no "-Install nwg-look? (a GTK Theming app - lxappearance-like) WARN! This Package Takes long time to build!" nwg
printf "\n"
# 14 Sep 2024, now in Debian repo
#ask_yes_no "-Install nwg-look? (a GTK Theming app - lxappearance-like) WARN! This Package Takes long time to build!" nwg
#printf "\n"
ask_yes_no "-Installing on Asus ROG Laptops?" rog
printf "\n"
ask_yes_no "-Do you want to download and install pre-configured Hyprland-dotfiles?" dots
@ -172,14 +175,34 @@ printf "\n"
# Ensuring all in the scripts folder are made executable
chmod +x install-scripts/*
printf "\n%.0s" {1..3}
# check if any known login managers are active when users choose to install sddm
if [ "$sddm" == "Y" ]; then
# List of services to check
services=("gdm.service" "gdm3.service" "lightdm.service" "xdm.service" "lxdm.service")
# Loop through each service
for svc in "${services[@]}"; do
if systemctl is-active --quiet "$svc"; then
echo "${ERROR} $svc is active. Please stop or disable it first or do not choose SDDM to install."
echo "${NOTE} If you have GDM, no need to install SDDM. GDM will work fine as Login Manager for Hyprland."
printf "\n%.0s" {1..3}
exit 1
fi
done
fi
sleep 1
sudo apt update
# execute pre clean up
execute_script "01-pre-cleanup.sh"
execute_script "02-pre-cleanup.sh"
# Install hyprland packages
execute_script "00-dependencies.sh"
execute_script "00-hypr-pkgs.sh"
execute_script "01-hypr-pkgs.sh"
execute_script "fonts.sh"
execute_script "wallust.sh"
@ -187,6 +210,8 @@ execute_script "wallust.sh"
execute_script "swww.sh"
execute_script "rofi-wayland.sh"
sleep 1
execute_script "ags.sh"
execute_script "hyprland.sh"
execute_script "hyprlock.sh"
@ -222,9 +247,9 @@ if [ "$zsh" == "Y" ]; then
execute_script "zsh.sh"
fi
if [ "$nwg" == "Y" ]; then
execute_script "nwg-look.sh"
fi
#if [ "$nwg" == "Y" ]; then
# execute_script "nwg-look.sh"
#fi
if [ "$rog" == "Y" ]; then
execute_script "rog.sh"
@ -233,7 +258,7 @@ fi
execute_script "InputGroup.sh"
if [ "$dots" == "Y" ]; then
execute_script "dotfiles.sh"
execute_script "dotfiles-branch.sh"
fi
# Clean up
@ -246,64 +271,38 @@ 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"
# copy fastfetch config if debian is not present
if [ ! -f "$HOME/.config/fastfetch/debian.png" ]; then
cp -r assets/fastfetch "$HOME/.config/"
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."
fi
printf "\n%.0s" {1..2}
# final check essential packages if it is installed
execute_script "03-Final-Check.sh"
printf "\n%.0s" {1..1}
# Check if either hyprland or hyprland-git is installed
if dpkg -l | grep -qw hyprland || dpkg -l | grep -qw hyprland-git; 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"
if dpkg -l | grep -qw hyprland; then
printf "\n${OK} Hyprland is installed. However, some essential packages may not be installed Please see above!"
printf "\n${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} 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${NOTE} Hyprland failed to install. Please check Install-Logs...\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