Add files via upload
|
|
@ -0,0 +1,18 @@
|
|||
## Changelogs
|
||||
|
||||
## 30-Sep-2023
|
||||
- replaced missioncenter with gnome-system-monitor
|
||||
- added some wallpaper
|
||||
|
||||
## 27-Sep-2023
|
||||
- remove auto start of portal-hyprland-hyprland
|
||||
- removal of Virtual-1 monitor in Monitors.conf
|
||||
|
||||
## 25-Sep-2023
|
||||
- added grub function to add nvidia_drm.modeset=1 for nvidia-grub users
|
||||
|
||||
## 14-Sep-2023
|
||||
- Bump to v4
|
||||
- Renamed repo to Hyprland-v4
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <https://unlicense.org>
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
<div align="center">
|
||||
|
||||
# 💌 ** JaKooLit's Arch Hyprland Install Script ** 💌
|
||||
|
||||
  
|
||||
|
||||
|
||||
<br/>
|
||||
</div>
|
||||
|
||||
### A re-structured install script of my Hyprland-v3 [`Link`](https://github.com/JaKooLit/Hyprland-v3)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 📷 you can find more screenshots in the screenshots directory
|
||||
|
||||
### 📽️ youtube video showcase: [`Youtube Link`](https://youtu.be/otda1nXJ5Dg?si=Wbb8eg-u3Y-tDnDQ)
|
||||
|
||||
|
||||
|
||||
### ✨ A video walk through my dotfiles[`Link`](https://youtu.be/fO-RBHvVEcc?si=ijqxxnq_DLiyO8xb)
|
||||
|
||||
|
||||
### 🆕 What's new compared to my V3
|
||||
- restructured Install script
|
||||
- Can modify the packages easily. (install-scripts/00-hypr-pkgs.sh) edit as desired
|
||||
- Added Tokyo-night-theme and TokyoNight-SE icons
|
||||
- using dunst instead of mako
|
||||
- Added Tokyo-Night SDDM Theme
|
||||
- Use a wofi-power menu instead of wlogout
|
||||
- Added the following:
|
||||
- a. gnome-system-monitor - right click on cpu waybar module
|
||||
- b. nvtop - right click on temperature waybar module
|
||||
|
||||
|
||||
### 👀 NVidia GPU Owners.
|
||||
- By default, nvidia-dkms will be installed. and only supports GTX 900 and newer. If required to install older driver, edit the nvidia.sh in scripts-folder
|
||||
|
||||
|
||||
### ✨ to run
|
||||
> clone this repo by using git. Change directory, make executable and run the script
|
||||
```bash
|
||||
git clone https://github.com/JaKooLit/Hyprland-v4.git
|
||||
cd Hyprland-v4
|
||||
chmod +x install-v4.sh
|
||||
./install-v4.sh
|
||||
```
|
||||
### ✨ for ZSH and OH-MY-ZSH installation
|
||||
> do this once installed and script completed; do the following to change the default shell zsh
|
||||
```bash
|
||||
chsh -s $(which zsh)
|
||||
zsh
|
||||
source ~/.zshrc
|
||||
```
|
||||
- reboot or logout
|
||||
- by default gnzh theme is installed. You can find more themes from this [`OH-MY-ZSH-THEMES`](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes)
|
||||
- to change the theme, edit ~/.zshrc ZSH_THEME="desired theme"
|
||||
|
||||
### 📒 Notes
|
||||
- super h for launching a small help file
|
||||
- super e to view / edit settings, monitor, keybinds, Environment Variables, etc
|
||||
- go through the keybinds. There are alot of hidden features like dual panel, change waybar styles, change wallpaper, etc... its too long to put all in the readme!!!
|
||||
|
||||
### 🛣️ Roadmap:
|
||||
- [ ] Install zsh and oh-my-zsh without necessary steps above
|
||||
- [ ] possibly adding gruvbox themes, cursors, icons
|
||||
- [ ] adding vertical waybar
|
||||
- [X] ~~Use kitty in favor of foot~~ - Dropped the idea of kitty. Kitty is using twice memory compared to foot.
|
||||
|
||||
### ⚠️ some known issues
|
||||
- reports from members of my discord, states that some users of nvidia are getting stuck on sddm login. credit to @Kenni Fix stated was
|
||||
```
|
||||
while in sddm press ctrl+alt+F2 or F3
|
||||
log into your account
|
||||
`lspci -nn`, find the id of your nvidia card
|
||||
`ls /dev/dri/by-path` find the matching id
|
||||
`ls -l /dev/dri/by-path` to check where the symlink points to
|
||||
)
|
||||
7. add "env = WLR_DRM_DEVICES,/dev/dri/cardX" to the ENVvariables config (.config/hypr/configs/ENVariables.conf) ; X being where the symlink of the gpu points to
|
||||
```
|
||||
- more info from the hyprland wiki [`Hyprland Wiki Link`](https://wiki.hyprland.org/FAQ/#my-external-monitor-is-blank--doesnt-render--receives-no-signal-laptop)
|
||||
|
||||
|
||||
### 👍👍👍 Thanks and Credits!
|
||||
- shout out to CooSee from Gentoo forums for the nice rainbow borders
|
||||
|
||||
|
||||
## 💖 Support
|
||||
- a Star on my Github repos would be nice 🌟
|
||||
|
||||
- Subscribe to my Youtube Channel [YouTube](https://www.youtube.com/@Ja.KooLit)
|
||||
|
||||
- You can also buy me Coffee Through ko-fi.com 🤩
|
||||
|
||||
<a href='https://ko-fi.com/jakoolit' target='_blank'><img height='35' style='border:0px;height:46px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com' />
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[Desktop Entry]
|
||||
Name=Hyprland
|
||||
Comment=An intelligent dynamic tiling Wayland compositor
|
||||
Exec=Hyprland
|
||||
Type=Application
|
||||
|
|
@ -0,0 +1,122 @@
|
|||
#!/bin/bash
|
||||
|
||||
# https://github.com/JaKooLit
|
||||
|
||||
# edit your packages desired here.
|
||||
# WARNING! If you remove packages here, dotfiles may not work properly.
|
||||
# and also, ensure that packages are present in AUR and official Arch Repo
|
||||
|
||||
# add packages wanted here
|
||||
Extra=(
|
||||
|
||||
)
|
||||
|
||||
hypr_package=(
|
||||
cliphist
|
||||
dunst
|
||||
foot
|
||||
grim
|
||||
gvfs
|
||||
gvfs-mtp
|
||||
jq
|
||||
network-manager-applet
|
||||
pamixer
|
||||
pavucontrol
|
||||
pipewire-alsa
|
||||
playerctl
|
||||
polkit-kde-agent
|
||||
python-requests
|
||||
qt5ct
|
||||
slurp
|
||||
swappy
|
||||
swayidle
|
||||
swaylock-effects
|
||||
swww
|
||||
waybar
|
||||
wget
|
||||
wl-clipboard
|
||||
wofi
|
||||
xdg-user-dirs
|
||||
)
|
||||
|
||||
# the following packages can be deleted. however, dotfiles may not work properly
|
||||
hypr_package_2=(
|
||||
brightnessctl
|
||||
btop
|
||||
cava
|
||||
ffmpegthumbs
|
||||
gnome-system-monitor
|
||||
mousepad
|
||||
mpv
|
||||
nvtop
|
||||
nwg-look-bin
|
||||
swaybg
|
||||
viewnior
|
||||
vim
|
||||
wlsunset
|
||||
)
|
||||
|
||||
fonts=(
|
||||
adobe-source-code-pro-fonts
|
||||
noto-fonts-emoji
|
||||
otf-font-awesome
|
||||
otf-font-awesome-4
|
||||
ttf-droid
|
||||
ttf-fira-code
|
||||
ttf-jetbrains-mono
|
||||
ttf-jetbrains-mono-nerd
|
||||
)
|
||||
|
||||
|
||||
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_hypr-pkgs.log"
|
||||
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
# Set the script to exit on error
|
||||
set -e
|
||||
|
||||
# Function for installing packages
|
||||
install_package() {
|
||||
# Checking if package is already installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "${OK} $1 is already installed. Skipping..."
|
||||
else
|
||||
# Package not installed
|
||||
echo -e "${NOTE} Installing $1 ..."
|
||||
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
|
||||
# Making sure package is installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "\e[1A\e[K${OK} $1 was installed."
|
||||
else
|
||||
# Something is missing, exiting to review log
|
||||
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Installation of main components
|
||||
printf "\n%s - Installing hyprland packages.... \n" "${NOTE}"
|
||||
|
||||
for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${fonts[@]}" "${Extra[@]}"; do
|
||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
clear
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
#!/bin/bash
|
||||
|
||||
blue=(
|
||||
bluez
|
||||
bluez-utils
|
||||
blueman
|
||||
)
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_bluetooth.log"
|
||||
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
# Set the script to exit on error
|
||||
set -e
|
||||
|
||||
# Function for installing packages
|
||||
install_package() {
|
||||
# Checking if package is already installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "${OK} $1 is already installed. Skipping..."
|
||||
else
|
||||
# Package not installed
|
||||
echo -e "${NOTE} Installing $1 ..."
|
||||
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
|
||||
# Making sure package is installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "\e[1A\e[K${OK} $1 was installed."
|
||||
else
|
||||
# Something is missing, exiting to review log
|
||||
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Bluetooth
|
||||
|
||||
printf "${NOTE} Installing Bluetooth Packages...\n"
|
||||
for BLUE in "${blue[@]}"; do
|
||||
install_package "$BLUE" 2>&1 | tee -a "$LOG"
|
||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $BLUE install had failed, please check the install.log"; exit 1; }
|
||||
done
|
||||
|
||||
printf " Activating Bluetooth Services...\n"
|
||||
sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG"
|
||||
|
||||
clear
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +'%d-%H%M%S')_dots.log"
|
||||
|
||||
printf "${NOTE} Downloading Hyprland dots...\n"
|
||||
|
||||
if git clone https://github.com/JaKooLit/Hyprland-Dots.git; then
|
||||
cd Hyprland-Dots || exit 1
|
||||
chmod +x copy.sh
|
||||
./copy.sh 2>&1 | tee -a "$LOG"
|
||||
else
|
||||
echo -e "${ERROR} Cant download Hyprland-Dots" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || exit 1
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_themes.log"
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_themes.log"
|
||||
|
||||
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
# Set the script to exit on error
|
||||
set -e
|
||||
|
||||
# Function for installing packages
|
||||
install_package() {
|
||||
# Checking if package is already installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "${OK} $1 is already installed. Skipping..."
|
||||
else
|
||||
# Package not installed
|
||||
echo -e "${NOTE} Installing $1 ..."
|
||||
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
|
||||
# Making sure package is installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "\e[1A\e[K${OK} $1 was installed."
|
||||
else
|
||||
# Something is missing, exiting to review log
|
||||
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Themes and cursors
|
||||
printf "\n${NOTE} INSTALLING GTK THEMES \n"
|
||||
while true; do
|
||||
read -rp "${CAT} Which GTK Theme and Cursors to install? Catppuccin or Tokyo Theme? Enter 'c' or 't': " choice
|
||||
case "$choice" in
|
||||
c|C)
|
||||
printf "${NOTE} Installing Catpuccin Theme packages...\n"
|
||||
for THEME1 in catppuccin-gtk-theme-mocha catppuccin-gtk-theme-latte catppuccin-cursors-mocha; do
|
||||
install_package "$THEME1" 2>&1 | tee -a "$LOG"
|
||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THEME1 install had failed, please check the install.log"; exit 1; }
|
||||
done
|
||||
# Shiny-Dark-Icons-themes
|
||||
mkdir -p ~/.icons
|
||||
cd assets
|
||||
tar -xf Shiny-Dark-Icons.tar.gz -C ~/.icons
|
||||
tar -xf Shiny-Light-Icons.tar.gz -C ~/.icons
|
||||
cd ..
|
||||
sed -i '9,12s/#//' config/hypr/scripts/DarkLight.sh
|
||||
sed -i '9,12s/#//' config/hypr/scripts/DarkLight-swaybg.sh
|
||||
sed -i '31s/#//' config/hypr/configs/Settings.conf
|
||||
cp -f 'config/hypr/waybar/style/dark-styles/style-dark-cat.css' 'config/hypr/waybar/style/style-dark.css'
|
||||
break
|
||||
;;
|
||||
t|T)
|
||||
printf "${NOTE} Installing Tokyo Theme packages...\n"
|
||||
wget https://github.com/ljmill/tokyo-night-icons/releases/download/v0.2.0/TokyoNight-SE.tar.bz2
|
||||
mkdir -p ~/.icons
|
||||
tar -xvjf TokyoNight-SE.tar.bz2 -C ~/.icons
|
||||
mkdir -p ~/.themes
|
||||
cp -r -f assets/tokyo-themes/* ~/.themes/
|
||||
sed -i '15,18s/#//' config/hypr/scripts/DarkLight.sh
|
||||
sed -i '15,18s/#//' config/hypr/scripts/DarkLight-swaybg.sh
|
||||
sed -i '32s/#//' config/hypr/configs/Settings.conf
|
||||
cp -f 'config/hypr/waybar/style/dark-styles/style-dark-tokyo.css' 'config/hypr/waybar/style/style-dark.css'
|
||||
break
|
||||
;;
|
||||
*)
|
||||
printf "%s - Invalid choice. Please enter 'c' or 't'\n" "${ERROR}"
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
clear
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
#!/bin/bash
|
||||
|
||||
hypr=(
|
||||
hyprland
|
||||
)
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_hyprland.log"
|
||||
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
# Set the script to exit on error
|
||||
set -e
|
||||
|
||||
# Function for installing packages
|
||||
install_package() {
|
||||
# Checking if package is already installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "${OK} $1 is already installed. Skipping..."
|
||||
else
|
||||
# Package not installed
|
||||
echo -e "${NOTE} Installing $1 ..."
|
||||
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
|
||||
# Making sure package is installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "\e[1A\e[K${OK} $1 was installed."
|
||||
else
|
||||
# Something is missing, exiting to review log
|
||||
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Hyprland
|
||||
|
||||
printf "${NOTE} Installing Hyprland Packages...\n"
|
||||
for HYPR in "${hypr[@]}"; do
|
||||
install_package "$HYPR" 2>&1 | tee -a "$LOG"
|
||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $HYPR install had failed, please check the install.log"; exit 1; }
|
||||
done
|
||||
|
||||
clear
|
||||
|
|
@ -0,0 +1,141 @@
|
|||
#!/bin/bash
|
||||
|
||||
nvidia_pkg=(
|
||||
nvidia-dkms
|
||||
nvidia-settings
|
||||
nvidia-utils
|
||||
libva
|
||||
libva-nvidia-driver-git
|
||||
)
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_nvidia.log"
|
||||
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
# Set the script to exit on error
|
||||
set -e
|
||||
|
||||
# Function for installing packages
|
||||
install_package() {
|
||||
# Checking if package is already installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null; then
|
||||
echo -e "${OK} $1 is already installed. Skipping..."
|
||||
else
|
||||
# Package not installed
|
||||
echo -e "${NOTE} Installing $1 ..."
|
||||
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
|
||||
# Making sure package is installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null; then
|
||||
echo -e "\e[1A\e[K${OK} $1 was installed."
|
||||
else
|
||||
# Something is missing, exiting to review log
|
||||
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :("
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# nvidia stuff
|
||||
printf "${YELLOW}Installing Nvidia Hyprland...${RESET}\n"
|
||||
if pacman -Qs hyprland > /dev/null; then
|
||||
read -n1 -rp "${CAT} Hyprland detected. Would you like to remove and install hyprland-nvidia instead? (y/n) " nvidia_hypr
|
||||
echo
|
||||
if [[ $nvidia_hypr =~ ^[Yy]$ ]]; then
|
||||
for hyprnvi in hyprland hyprland-nvidia hyprland-nvidia-hidpi-git; do
|
||||
sudo pacman -R --noconfirm "$hyprnvi" 2>/dev/null | tee -a "$LOG" || true
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# install hyprland-nvidia-git
|
||||
install_package "hyprland-nvidia-git" 2>&1 | tee -a "$LOG"
|
||||
|
||||
# Install additional Nvidia packages
|
||||
printf "${YELLOW} Installing Nvidia packages...\n"
|
||||
for krnl in $(cat /usr/lib/modules/*/pkgbase); do
|
||||
for NVIDIA in "${krnl}-headers" "${nvidia_pkg[@]}"; do
|
||||
install_package "$NVIDIA" 2>&1 | tee -a "$LOG"
|
||||
done
|
||||
done
|
||||
|
||||
# Check if the Nvidia modules are already added in mkinitcpio.conf and add if not
|
||||
if grep -qE '^MODULES=.*nvidia. *nvidia_modeset.*nvidia_uvm.*nvidia_drm' /etc/mkinitcpio.conf; then
|
||||
echo "Nvidia modules already included in /etc/mkinitcpio.conf" 2>&1 | tee -a "$LOG"
|
||||
else
|
||||
sudo sed -Ei 's/^(MODULES=\([^\)]*)\)/\1 nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf 2>&1 | tee -a "$LOG"
|
||||
echo "Nvidia modules added in /etc/mkinitcpio.conf"
|
||||
fi
|
||||
|
||||
sudo mkinitcpio -P 2>&1 | tee -a "$LOG"
|
||||
printf "\n"
|
||||
printf "\n"
|
||||
printf "\n"
|
||||
|
||||
# Preparing exec.conf to enable env = WLR_NO_HARDWARE_CURSORS,1 so it will be ready once config files copied
|
||||
sed -i '21s/#//' config/hypr/configs/ENVariables.conf
|
||||
|
||||
# Additional Nvidia steps
|
||||
NVEA="/etc/modprobe.d/nvidia.conf"
|
||||
if [ -f "$NVEA" ]; then
|
||||
printf "${OK} Seems like nvidia-drm modeset=1 is already added in your system..moving on.\n"
|
||||
printf "\n"
|
||||
else
|
||||
printf "\n"
|
||||
printf "${YELLOW} Adding options to $NVEA..."
|
||||
sudo echo -e "options nvidia-drm modeset=1" | sudo tee -a /etc/modprobe.d/nvidia.conf 2>&1 | tee -a "$LOG"
|
||||
printf "\n"
|
||||
fi
|
||||
|
||||
# additional for GRUB users
|
||||
# Check if /etc/default/grub exists
|
||||
if [ -f /etc/default/grub ]; then
|
||||
# Check if nvidia_drm.modeset=1 is already present
|
||||
if ! sudo grep -q "nvidia-drm.modeset=1" /etc/default/grub; then
|
||||
# Add nvidia_drm.modeset=1 to GRUB_CMDLINE_LINUX_DEFAULT
|
||||
sudo sed -i 's/\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)"/\1 nvidia-drm.modeset=1"/' /etc/default/grub
|
||||
# Regenerate GRUB configuration
|
||||
sudo grub-mkconfig -o /boot/grub/grub.cfg
|
||||
echo "nvidia-drm.modeset=1 added to /etc/default/grub"
|
||||
else
|
||||
echo "nvidia-drm.modeset=1 is already present in /etc/default/grub"
|
||||
fi
|
||||
else
|
||||
echo "/etc/default/grub does not exist"
|
||||
fi
|
||||
|
||||
# Blacklist nouveau
|
||||
read -n1 -rep "${CAT} Would you like to blacklist nouveau? (y/n)" response
|
||||
echo
|
||||
if [[ $response =~ ^[Yy]$ ]]; then
|
||||
NOUVEAU="/etc/modprobe.d/nouveau.conf"
|
||||
if [ -f "$NOUVEAU" ]; then
|
||||
printf "${OK} Seems like nouveau is already blacklisted..moving on.\n"
|
||||
else
|
||||
printf "\n"
|
||||
echo "blacklist nouveau" | sudo tee -a "$NOUVEAU" 2>&1 | tee -a "$LOG"
|
||||
printf "${NOTE} has been added to $NOUVEAU.\n"
|
||||
printf "\n"
|
||||
|
||||
# To completely blacklist nouveau (See wiki.archlinux.org/title/Kernel_module#Blacklisting 6.1)
|
||||
if [ -f "/etc/modprobe.d/blacklist.conf" ]; then
|
||||
echo "install nouveau /bin/true" | sudo tee -a "/etc/modprobe.d/blacklist.conf" 2>&1 | tee -a "$LOG"
|
||||
else
|
||||
echo "install nouveau /bin/true" | sudo tee "/etc/modprobe.d/blacklist.conf" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
printf "${NOTE} Skipping nouveau blacklisting.\n"
|
||||
fi
|
||||
|
||||
clear
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_paru.log"
|
||||
|
||||
# Check for AUR helper and install if not found
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
if [ -n "$ISAUR" ]; then
|
||||
printf "\n%s - AUR helper was located, moving on.\n" "${OK}"
|
||||
else
|
||||
printf "\n%s - AUR helper was NOT located\n" "$WARN"
|
||||
printf "\n%s - Installing paru from AUR\n" "${NOTE}"
|
||||
git clone https://aur.archlinux.org/paru-bin.git || { printf "%s - Failed to clone paru from AUR\n" "${ERROR}"; exit 1; }
|
||||
cd paru-bin || { printf "%s - Failed to enter paru-bin directory\n" "${ERROR}"; exit 1; }
|
||||
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install paru from AUR\n" "${ERROR}"; exit 1; }
|
||||
fi
|
||||
|
||||
# Update system before proceeding
|
||||
printf "\n%s - Performing a full system update to avoid issues.... \n" "${NOTE}"
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
$ISAUR -Syu --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to update system\n" "${ERROR}"; exit 1; }
|
||||
|
||||
clear
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || exit 1
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_rog.log"
|
||||
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
# Set the script to exit on error
|
||||
set -e
|
||||
|
||||
# Function for installing packages
|
||||
install_package() {
|
||||
# Checking if package is already installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "${OK} $1 is already installed. Skipping..."
|
||||
else
|
||||
# Package not installed
|
||||
echo -e "${NOTE} Installing $1 ..."
|
||||
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
|
||||
# Making sure package is installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "\e[1A\e[K${OK} $1 was installed."
|
||||
else
|
||||
# Something is missing, exiting to review log
|
||||
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
### Install software for Asus ROG laptops ###
|
||||
|
||||
printf " Installing ASUS ROG packages...\n"
|
||||
for ASUS in asusctl supergfxctl rog-control-center; do
|
||||
install_package "$ASUS" 2>&1 | tee -a "$LOG"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "\e[1A\e[K${ERROR} - $ASUS install had failed, please check the install.log"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
printf " Activating ROG services...\n"
|
||||
sudo systemctl enable --now supergfxd 2>&1 | tee -a "$LOG"
|
||||
sed -i '20s/#//' config/hypr/configs/Execs.conf
|
||||
|
||||
clear
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || exit 1
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_sddm.log"
|
||||
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
# Set the script to exit on error
|
||||
set -e
|
||||
|
||||
# Function for installing packages
|
||||
install_package() {
|
||||
# Checking if package is already installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "${OK} $1 is already installed. Skipping..."
|
||||
else
|
||||
# Package not installed
|
||||
echo -e "${NOTE} Installing $1 ..."
|
||||
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
|
||||
# Making sure package is installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "\e[1A\e[K${OK} $1 was installed."
|
||||
else
|
||||
# Something is missing, exiting to review log
|
||||
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# SDDM
|
||||
|
||||
# Check if SDDM is already installed
|
||||
if pacman -Qs sddm > /dev/null; then
|
||||
# Prompt user to manually install sddm-git to remove SDDM
|
||||
read -n1 -rep "SDDM is already installed. Would you like to manually install sddm-git to remove it? This requires manual intervention. (y/n)" manual_install_sddm
|
||||
echo
|
||||
if [[ $manual_install_sddm =~ ^[Yy]$ ]]; then
|
||||
$ISAUR -S sddm-git 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install SDDM and Catppuccin theme
|
||||
printf "${NOTE} Installing SDDM-git........\n"
|
||||
for package in sddm-git; do
|
||||
install_package "$package" 2>&1 | tee -a "$LOG"
|
||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $package install has failed, please check the install.log"; exit 1; }
|
||||
done
|
||||
|
||||
# Check if other login managers installed and disabling its service before enabling sddm
|
||||
for login_manager in lightdm gdm lxdm lxdm-gtk3; do
|
||||
if pacman -Qs "$login_manager" > /dev/null; then
|
||||
echo "disabling $login_manager..."
|
||||
sudo systemctl disable "$login_manager.service" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
done
|
||||
|
||||
printf " Activating sddm service........\n"
|
||||
sudo systemctl enable sddm
|
||||
|
||||
# Set up SDDM
|
||||
echo -e "${NOTE} Setting up the login screen."
|
||||
sddm_conf_dir=/etc/sddm.conf.d
|
||||
[ ! -d "$sddm_conf_dir" ] && { printf "$CAT - $sddm_conf_dir not found, creating...\n"; sudo mkdir "$sddm_conf_dir" 2>&1 | tee -a "$LOG"; }
|
||||
|
||||
wayland_sessions_dir=/usr/share/wayland-sessions
|
||||
[ ! -d "$wayland_sessions_dir" ] && { printf "$CAT - $wayland_sessions_dir not found, creating...\n"; sudo mkdir "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"; }
|
||||
sudo cp assets/hyprland.desktop "$wayland_sessions_dir/" 2>&1 | tee -a "$LOG"
|
||||
|
||||
# SDDM-themes
|
||||
read -n1 -rep "${CAT} OPTIONAL - Would you like to install SDDM themes? (y/n)" install_sddm_theme
|
||||
if [[ $install_sddm_theme =~ ^[Yy]$ ]]; then
|
||||
while true; do
|
||||
read -rp "${CAT} Which SDDM Theme you want to install? Catpuccin or Tokyo Night 'c' or 't': " choice
|
||||
case "$choice" in
|
||||
c|C)
|
||||
printf "\n%s - Installing Catpuccin SDDM Theme\n" "${NOTE}"
|
||||
for sddm_theme in sddm-catppuccin-git; do
|
||||
install_package "$sddm_theme" 2>&1 | tee -a "$LOG"
|
||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $sddm_theme install has failed, please check the install.log"; }
|
||||
done
|
||||
echo -e "[Theme]\nCurrent=catppuccin" | sudo tee -a "$sddm_conf_dir/10-theme.conf" 2>&1 | tee -a "$LOG"
|
||||
break
|
||||
;;
|
||||
t|T)
|
||||
printf "\n%s - Installing Tokyo SDDM Theme\n" "${NOTE}"
|
||||
for sddm_theme in sddm-theme-tokyo-night; do
|
||||
install_package "$sddm_theme" 2>&1 | tee -a "$LOG"
|
||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $sddm_theme install has failed, please check the install.log"; }
|
||||
done
|
||||
echo -e "[Theme]\nCurrent=tokyo-night-sddm" | sudo tee -a "$sddm_conf_dir/10-theme.conf" 2>&1 | tee -a "$LOG"
|
||||
break
|
||||
;;
|
||||
*)
|
||||
printf "%s - Invalid choice. Please enter 'c' or 't'\n" "${ERROR}"
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
clear
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
#!/bin/bash
|
||||
|
||||
thunar=(
|
||||
thunar
|
||||
thunar-volman
|
||||
tumbler
|
||||
thunar-archive-plugin
|
||||
)
|
||||
|
||||
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || exit 1
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_thunar.log"
|
||||
|
||||
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
# Set the script to exit on error
|
||||
set -e
|
||||
|
||||
# Function for installing packages
|
||||
install_package() {
|
||||
# Checking if package is already installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "${OK} $1 is already installed. Skipping..."
|
||||
else
|
||||
# Package not installed
|
||||
echo -e "${NOTE} Installing $1 ..."
|
||||
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
|
||||
# Making sure package is installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "\e[1A\e[K${OK} $1 was installed."
|
||||
else
|
||||
# Something is missing, exiting to review log
|
||||
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Bluetooth
|
||||
|
||||
printf "${NOTE} Installing Thunar Packages...\n"
|
||||
for THUNAR in "${thunar[@]}"; do
|
||||
install_package "$THUNAR" 2>&1 | tee -a "$LOG"
|
||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THUNAR install had failed, please check the install.log"; exit 1; }
|
||||
done
|
||||
|
||||
# Check for existing config folders and backup
|
||||
for DIR1 in Thunar xfce4; do
|
||||
DIRPATH=~/.config/$DIR1
|
||||
if [ -d "$DIRPATH" ]; then
|
||||
echo -e "${NOTE} Config for $DIR1 found, backing up."
|
||||
mv $DIRPATH $DIRPATH-back-up 2>&1 | tee -a "$LOG"
|
||||
echo -e "${NOTE} Backed up $DIR1 to $DIRPATH-back-up."
|
||||
fi
|
||||
done
|
||||
cp -r config/xfce4 ~/.config/ && { echo "Copy xfce4 completed!"; } || { echo "Error: Failed to copy xfce4 config files."; exit 1; } 2>&1 | tee -a "$LOG"
|
||||
cp -r config/Thunar ~/.config/ && { echo "Copy Thunar completed!"; } || { echo "Error: Failed to copy Thunar config files."; exit 1; } 2>&1 | tee -a "$LOG"
|
||||
|
||||
clear
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_xdph.log"
|
||||
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
# Set the script to exit on error
|
||||
set -e
|
||||
|
||||
# Function for installing packages
|
||||
install_package() {
|
||||
# Checking if package is already installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "${OK} $1 is already installed. Skipping..."
|
||||
else
|
||||
# Package not installed
|
||||
echo -e "${NOTE} Installing $1 ..."
|
||||
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
|
||||
# Making sure package is installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "\e[1A\e[K${OK} $1 was installed."
|
||||
else
|
||||
# Something is missing, exiting to review log
|
||||
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# XDG-DESKTOP-PORTAL-HYPRLAND
|
||||
|
||||
for xdph in xdg-desktop-portal-hyprland; do
|
||||
install_package "$xdph" 2>&1 | tee -a "$LOG"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "\e[1A\e[K${ERROR} - $xdph install had failed, please check the install.log"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
printf "${NOTE} Checking for other XDG-Desktop-Portal-Implementations....\n"
|
||||
sleep 1
|
||||
printf "\n"
|
||||
printf "${NOTE} XDG-desktop-portal-KDE (if installed) should be manually disabled or removed! I can't remove it... sorry...\n"
|
||||
read -n1 -rep "${CAT} Would you like me to try to remove other XDG-Desktop-Portal-Implementations? (y/n)" XDPH1
|
||||
sleep 1
|
||||
if [[ $XDPH1 =~ ^[Yy]$ ]]; then
|
||||
# Clean out other portals
|
||||
printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n"
|
||||
# Check if packages are installed and uninstall if present
|
||||
if pacman -Qs xdg-desktop-portal-gnome > /dev/null ; then
|
||||
echo "Removing xdg-desktop-portal-gnome..."
|
||||
sudo pacman -R --noconfirm xdg-desktop-portal-gnome 2>&1 | tee -a $LOG
|
||||
fi
|
||||
if pacman -Qs xdg-desktop-portal-gtk > /dev/null ; then
|
||||
echo "Removing xdg-desktop-portal-gtk..."
|
||||
sudo pacman -R --noconfirm xdg-desktop-portal-gtk 2>&1 | tee -a $LOG
|
||||
fi
|
||||
if pacman -Qs xdg-desktop-portal-wlr > /dev/null ; then
|
||||
echo "Removing xdg-desktop-portal-wlr..."
|
||||
sudo pacman -R --noconfirm xdg-desktop-portal-wlr 2>&1 | tee -a $LOG
|
||||
fi
|
||||
if pacman -Qs xdg-desktop-portal-lxqt > /dev/null ; then
|
||||
echo "Removing xdg-desktop-portal-lxqt..."
|
||||
sudo pacman -R --noconfirm xdg-desktop-portal-lxqt 2>&1 | tee -a $LOG
|
||||
fi
|
||||
fi
|
||||
|
||||
clear
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_yay.log"
|
||||
|
||||
# Check for AUR helper and install if not found
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
if [ -n "$ISAUR" ]; then
|
||||
printf "\n%s - AUR helper yay was located, moving on.\n" "${OK}"
|
||||
else
|
||||
printf "\n%s - AUR helper was NOT located\n" "$WARN"
|
||||
printf "\n%s - Installing yay from AUR\n" "${NOTE}"
|
||||
git clone https://aur.archlinux.org/yay-bin.git || { printf "%s - Failed to clone yay from AUR\n" "${ERROR}"; exit 1; }
|
||||
cd yay-bin || { printf "%s - Failed to enter yay-bin directory\n" "${ERROR}"; exit 1; }
|
||||
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install yay from AUR\n" "${ERROR}"; exit 1; }
|
||||
fi
|
||||
|
||||
# Update system before proceeding
|
||||
printf "\n%s - Performing a full system update to avoid issues.... \n" "${NOTE}"
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
$ISAUR -Syu --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to update system\n" "${ERROR}"; exit 1; }
|
||||
|
||||
clear
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_zsh.log"
|
||||
|
||||
ISAUR=$(command -v yay || command -v paru)
|
||||
|
||||
# Set the script to exit on error
|
||||
set -e
|
||||
|
||||
# Function for installing packages
|
||||
install_package() {
|
||||
# Checking if package is already installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "${OK} $1 is already installed. Skipping..."
|
||||
else
|
||||
# Package not installed
|
||||
echo -e "${NOTE} Installing $1 ..."
|
||||
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
|
||||
# Making sure package is installed
|
||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||
echo -e "\e[1A\e[K${OK} $1 was installed."
|
||||
else
|
||||
# Something is missing, exiting to review log
|
||||
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
# zsh and oh-my-zsh
|
||||
printf "${WARN} #### IF YOU HAVE ALREADY ZSH AND OH MY ZSH, YOU SHOULD CHOOSE NO HERE #########\n"
|
||||
printf "${WARN} ### --------------------------------------------------------------------########\n"
|
||||
printf "${NOTE} ## CHECK OUT README FOR ADDITIONAL STEPS REQUIRED ONCE ZSH AND OH-MY-ZSH INSTALLED ##\n"
|
||||
printf "\n"
|
||||
printf "\n"
|
||||
read -n1 -rep "${CAT} OPTIONAL - Would you like to install zsh and oh-my-zsh and use as default shell? (y/n)" zsh
|
||||
echo
|
||||
|
||||
if [[ $zsh =~ ^[Yy]$ ]]; then
|
||||
for ZSH in zsh zsh-completions; do
|
||||
install_package "$ZSH" 2>&1 | tee -a "$LOG"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "\e[1A\e[K${ERROR} - $ZSH install had failed, please check the install.log"
|
||||
fi
|
||||
done
|
||||
|
||||
# Oh-my-zsh plus zsh-autosuggestions and zsh-syntax-highlighting
|
||||
printf "${NOTE} Installing oh-my-zsh and plugins.\n"
|
||||
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended && \
|
||||
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && \
|
||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && \
|
||||
cp -r 'assets/.zshrc' ~/
|
||||
print_success "ZSH and oh-my-zsh installed."
|
||||
else
|
||||
printf "${NOTE} ZSH wont be installed.\n"
|
||||
fi
|
||||
|
||||
clear
|
||||
|
|
@ -0,0 +1,204 @@
|
|||
#!/bin/bash
|
||||
|
||||
clear
|
||||
|
||||
# Welcome message
|
||||
echo "$(tput setaf 6)Welcome to JaKooLit's Arch-Hyprland Install Script!$(tput sgr0)"
|
||||
echo
|
||||
echo "$(tput setaf 3)NOTE: You will be required to answer some questions during the installation! $(tput sgr0)"
|
||||
echo
|
||||
|
||||
read -p "$(tput setaf 6)Would you like to proceed? (y/n): $(tput sgr0)" proceed
|
||||
|
||||
if [ "$proceed" != "y" ]; then
|
||||
echo "Installation aborted."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if running as root. If root, script will exit
|
||||
if [[ $EUID -eq 0 ]]; then
|
||||
echo "This script should not be executed as root! Exiting......."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Set some colors for output messages
|
||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||
ORANGE=$(tput setaf 166)
|
||||
YELLOW=$(tput setaf 3)
|
||||
RESET=$(tput sgr0)
|
||||
|
||||
# Function to colorize prompts
|
||||
colorize_prompt() {
|
||||
local color="$1"
|
||||
local message="$2"
|
||||
echo -n "${color}${message}$(tput sgr0)"
|
||||
}
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S).log"
|
||||
|
||||
# Initialize variables to store user responses
|
||||
aur_helper=""
|
||||
bluetooth=""
|
||||
dots=""
|
||||
gtk_themes=""
|
||||
nvidia=""
|
||||
rog=""
|
||||
sddm=""
|
||||
thunar=""
|
||||
xdph=""
|
||||
zsh=""
|
||||
|
||||
# Define the directory where your scripts are located
|
||||
script_directory=install-scripts
|
||||
|
||||
# Function to ask a yes/no question and set the response in a variable
|
||||
ask_yes_no() {
|
||||
while true; do
|
||||
read -p "$(colorize_prompt "$CAT" "$1 (y/n): ")" choice
|
||||
case "$choice" in
|
||||
[Yy]* ) eval "$2='Y'"; return 0;;
|
||||
[Nn]* ) eval "$2='N'"; return 1;;
|
||||
* ) echo "Please answer with y or n.";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# Function to ask a custom question with specific options and set the response in a variable
|
||||
ask_custom_option() {
|
||||
local prompt="$1"
|
||||
local valid_options="$2"
|
||||
local response_var="$3"
|
||||
|
||||
while true; do
|
||||
read -p "$(colorize_prompt "$CAT" "$prompt ($valid_options): ")" choice
|
||||
if [[ " $valid_options " == *" $choice "* ]]; then
|
||||
eval "$response_var='$choice'"
|
||||
return 0
|
||||
else
|
||||
echo "Please choose one of the provided options: $valid_options"
|
||||
fi
|
||||
done
|
||||
}
|
||||
# Function to execute a script if it exists and make it executable
|
||||
execute_script() {
|
||||
local script="$1"
|
||||
local script_path="$script_directory/$script"
|
||||
if [ -f "$script_path" ]; then
|
||||
chmod +x "$script_path"
|
||||
if [ -x "$script_path" ]; then
|
||||
"$script_path"
|
||||
else
|
||||
echo "Failed to make script '$script' executable."
|
||||
fi
|
||||
else
|
||||
echo "Script '$script' not found in '$script_directory'."
|
||||
fi
|
||||
}
|
||||
|
||||
# Collect user responses to all questions
|
||||
printf "\n"
|
||||
ask_custom_option "Select AUR helper" "paru or yay" aur_helper
|
||||
printf "\n"
|
||||
ask_yes_no "Do you have nvidia gpu?" nvidia
|
||||
printf "\n"
|
||||
ask_yes_no "Do you want to install GTK themes?" gtk_themes
|
||||
printf "\n"
|
||||
ask_yes_no "Do you want to configure Bluetooth?" bluetooth
|
||||
printf "\n"
|
||||
ask_yes_no "Do you want to install Thunar file manager?" thunar
|
||||
printf "\n"
|
||||
ask_yes_no "Installing in Asus ROG Laptops?" rog
|
||||
printf "\n"
|
||||
ask_yes_no "Do you want to install and configure SDDM?" sddm
|
||||
printf "\n"
|
||||
ask_yes_no "Do you want to install XDG-DESKTOP-PORTAL-HYPRLAND?" xdph
|
||||
printf "\n"
|
||||
ask_yes_no "Do you want to install zsh and oh-my-zsh?" zsh
|
||||
printf "\n"
|
||||
ask_yes_no "Do you want to copy dotfiles?" dots
|
||||
printf "\n"
|
||||
# Ensuring all in the scripts folder are made executable
|
||||
chmod +x install-scripts/*
|
||||
|
||||
# Execute AUR helper script based on user choice
|
||||
if [ "$aur_helper" == "paru" ]; then
|
||||
execute_script "paru.sh"
|
||||
elif [ "$aur_helper" == "yay" ]; then
|
||||
execute_script "yay.sh"
|
||||
fi
|
||||
|
||||
# Install hyprland packages
|
||||
execute_script "00-hypr-pkgs.sh"
|
||||
|
||||
if [ "$nvidia" == "Y" ]; then
|
||||
execute_script "nvidia.sh"
|
||||
fi
|
||||
|
||||
if [ "$nvidia" == "N" ]; then
|
||||
execute_script "hyprland.sh"
|
||||
fi
|
||||
|
||||
if [ "$gtk_themes" == "Y" ]; then
|
||||
execute_script "gtk_themes.sh"
|
||||
fi
|
||||
|
||||
if [ "$bluetooth" == "Y" ]; then
|
||||
execute_script "bluetooth.sh"
|
||||
fi
|
||||
|
||||
if [ "$thunar" == "Y" ]; then
|
||||
execute_script "thunar.sh"
|
||||
fi
|
||||
|
||||
if [ "$rog" == "Y" ]; then
|
||||
execute_script "rog.sh"
|
||||
fi
|
||||
|
||||
if [ "$sddm" == "Y" ]; then
|
||||
execute_script "sddm.sh"
|
||||
fi
|
||||
|
||||
if [ "$xdph" == "Y" ]; then
|
||||
execute_script "xdph.sh"
|
||||
fi
|
||||
|
||||
if [ "$zsh" == "Y" ]; then
|
||||
execute_script "zsh.sh"
|
||||
fi
|
||||
|
||||
if [ "$dots" == "Y" ]; then
|
||||
execute_script "dotfiles.sh" "$(pwd)"
|
||||
|
||||
fi
|
||||
|
||||
clear
|
||||
|
||||
printf "\n${OK} Yey! Installation Completed.\n"
|
||||
printf "\n"
|
||||
printf "\n${NOTE} NOTICE TO NVIDIA OWNERS! System will reboot your system!\n"
|
||||
sleep 2
|
||||
printf "\n${NOTE} You can start Hyprland by typing Hyprland (IF SDDM is not installed) (note the capital H!).\n"
|
||||
printf "\n"
|
||||
printf "\n"
|
||||
read -n1 -rep "${CAT} Would you like to start Hyprland now? (y,n)" HYP
|
||||
|
||||
if [[ $HYP =~ ^[Yy]$ ]]; then
|
||||
if [[ "$nvidia" == "Y" ]]; then
|
||||
echo "${NOTE} NVIDIA GPU detected. Rebooting the system..."
|
||||
systemctl reboot
|
||||
elif command -v sddm >/dev/null; then
|
||||
sudo systemctl start sddm 2>&1 | tee -a "$LOG"
|
||||
else
|
||||
if command -v Hyprland >/dev/null; then
|
||||
exec Hyprland
|
||||
else
|
||||
echo "${ERROR} Hyprland not found. Please make sure Hyprland is installed by checking install logs"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
After Width: | Height: | Size: 289 KiB |
|
After Width: | Height: | Size: 1.6 MiB |
|
After Width: | Height: | Size: 618 KiB |
|
After Width: | Height: | Size: 2.7 MiB |
|
After Width: | Height: | Size: 1.6 MiB |
|
After Width: | Height: | Size: 2.1 MiB |
|
After Width: | Height: | Size: 285 KiB |
|
After Width: | Height: | Size: 442 KiB |
|
After Width: | Height: | Size: 69 KiB |