aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/lib_apps.sh172
-rw-r--r--scripts/lib_copy.sh25
-rw-r--r--scripts/lib_prompts.sh34
3 files changed, 196 insertions, 35 deletions
diff --git a/scripts/lib_apps.sh b/scripts/lib_apps.sh
index 562e5c5b..f19fd75a 100644
--- a/scripts/lib_apps.sh
+++ b/scripts/lib_apps.sh
@@ -3,8 +3,9 @@
enable_asusctl() {
local log="$1"
+ local base="${DOTFILES_DIR:-.}"
if command -v asusctl >/dev/null 2>&1; then
- local OVERLAY_SA="config/hypr/configs/Startup_Apps.conf"
+ local OVERLAY_SA="$base/config/hypr/configs/Startup_Apps.conf"
mkdir -p "$(dirname "$OVERLAY_SA")"
touch "$OVERLAY_SA"
grep -qx 'exec-once = rog-control-center' "$OVERLAY_SA" || echo 'exec-once = rog-control-center' >>"$OVERLAY_SA"
@@ -13,8 +14,9 @@ enable_asusctl() {
enable_blueman() {
local log="$1"
+ local base="${DOTFILES_DIR:-.}"
if command -v blueman-applet >/dev/null 2>&1; then
- local OVERLAY_SA="config/hypr/configs/Startup_Apps.conf"
+ local OVERLAY_SA="$base/config/hypr/configs/Startup_Apps.conf"
mkdir -p "$(dirname "$OVERLAY_SA")"
touch "$OVERLAY_SA"
grep -qx 'exec-once = blueman-applet' "$OVERLAY_SA" || echo 'exec-once = blueman-applet' >>"$OVERLAY_SA"
@@ -23,33 +25,36 @@ enable_blueman() {
enable_ags() {
local log="$1"
+ local base="${DOTFILES_DIR:-.}"
if command -v ags >/dev/null 2>&1; then
echo "${INFO:-[INFO]} AGS detected - enabling in startup and refresh scripts" 2>&1 | tee -a "$log"
- local OVERLAY_SA="config/hypr/configs/Startup_Apps.conf"
+ local OVERLAY_SA="$base/config/hypr/configs/Startup_Apps.conf"
mkdir -p "$(dirname "$OVERLAY_SA")"
touch "$OVERLAY_SA"
grep -qx 'exec-once = ags' "$OVERLAY_SA" || echo 'exec-once = ags' >>"$OVERLAY_SA"
- sed -i '/#ags -q && ags &/s/^#//' config/hypr/scripts/RefreshNoWaybar.sh
- sed -i '/#ags -q && ags &/s/^#//' config/hypr/scripts/Refresh.sh
+ sed -i '/#ags -q && ags &/s/^#//' "$base/config/hypr/scripts/RefreshNoWaybar.sh"
+ sed -i '/#ags -q && ags &/s/^#//' "$base/config/hypr/scripts/Refresh.sh"
fi
}
enable_quickshell() {
local log="$1"
+ local base="${DOTFILES_DIR:-.}"
if command -v qs >/dev/null 2>&1; then
echo "${INFO:-[INFO]} Quickshell detected - enabling in startup and refresh scripts" 2>&1 | tee -a "$log"
- local OVERLAY_SA="config/hypr/configs/Startup_Apps.conf"
+ local OVERLAY_SA="$base/config/hypr/configs/Startup_Apps.conf"
mkdir -p "$(dirname "$OVERLAY_SA")"
touch "$OVERLAY_SA"
grep -qx 'exec-once = qs' "$OVERLAY_SA" || echo 'exec-once = qs' >>"$OVERLAY_SA"
- sed -i '/#pkill qs && qs &/s/^#//' config/hypr/scripts/RefreshNoWaybar.sh
- sed -i '/#pkill qs && qs &/s/^#//' config/hypr/scripts/Refresh.sh
+ sed -i '/#pkill qs && qs &/s/^#//' "$base/config/hypr/scripts/RefreshNoWaybar.sh"
+ sed -i '/#pkill qs && qs &/s/^#//' "$base/config/hypr/scripts/Refresh.sh"
fi
}
ensure_keybinds_init() {
local log="$1"
- local OVERLAY_SA="config/hypr/configs/Startup_Apps.conf"
+ local base="${DOTFILES_DIR:-.}"
+ local OVERLAY_SA="$base/config/hypr/configs/Startup_Apps.conf"
mkdir -p "$(dirname "$OVERLAY_SA")"
if ! grep -qx 'exec-once = \$scriptsDir/KeybindsLayoutInit.sh' "$OVERLAY_SA"; then
echo 'exec-once = $scriptsDir/KeybindsLayoutInit.sh' >>"$OVERLAY_SA"
@@ -59,9 +64,10 @@ ensure_keybinds_init() {
install_terminal_configs() {
local log="$1"
+ local base="${DOTFILES_DIR:-.}"
# Ghostty
- local GHOSTTY_SRC="config/ghostty/ghostty.config"
+ local GHOSTTY_SRC="$base/config/ghostty/ghostty.config"
local GHOSTTY_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/ghostty"
local GHOSTTY_DEST="$GHOSTTY_DIR/config"
if [ -f "$GHOSTTY_SRC" ]; then
@@ -75,7 +81,7 @@ install_terminal_configs() {
fi
# WezTerm
- local WEZTERM_SRC="config/wezterm/wezterm.lua"
+ local WEZTERM_SRC="$base/config/wezterm/wezterm.lua"
local WEZTERM_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/wezterm"
local WEZTERM_DEST="$WEZTERM_DIR/wezterm.lua"
if [ -f "$WEZTERM_SRC" ]; then
@@ -88,10 +94,11 @@ install_terminal_configs() {
choose_default_editor() {
local log="$1"
+ local base="${DOTFILES_DIR:-.}"
local editor_set=0
update_editor() {
local editor=$1
- sed -i "s/#env = EDITOR,.*/env = EDITOR,$editor #default editor/" config/hypr/UserConfigs/01-UserDefaults.conf
+ sed -i "s/#env = EDITOR,.*/env = EDITOR,$editor #default editor/" "$base/config/hypr/UserConfigs/01-UserDefaults.conf"
echo "${OK:-[OK]} Default editor set to ${MAGENTA:-}$editor${RESET:-}." 2>&1 | tee -a "$log"
}
if command -v nvim &>/dev/null; then
@@ -114,3 +121,144 @@ choose_default_editor() {
fi
fi
}
+
+# Install waybar-weather on non-NixOS: prefer Arch AUR, otherwise copy prebuilt asset to /usr/bin
+install_waybar_weather_binary() {
+ local log="$1"
+ local APP_NAME="waybar-weather"
+ local INSTALL_PATH="/usr/bin/${APP_NAME}"
+ local ASSET="${SCRIPT_DIR:-.}/assets/${APP_NAME}.gz"
+
+ # Helper: log wrappers may not be defined here; reuse INFO/WARN/ERROR if available
+ _log() { echo "[${APP_NAME}] $*" 2>&1 | tee -a "$log"; }
+ _warn() { echo "[${APP_NAME}] WARN: $*" 1>&2 | tee -a "$log"; }
+ _err() { echo "[${APP_NAME}] ERROR: $*" 1>&2 | tee -a "$log"; }
+
+ # NixOS handled by a separate helper
+ if grep -qi '^ID=nixos' /etc/os-release 2>/dev/null; then
+ _warn "NixOS detected. Use install_waybar_weather_nixos instead."
+ return 0
+ fi
+
+ if grep -qi '^ID=arch' /etc/os-release 2>/dev/null; then
+ if command -v pacman >/dev/null 2>&1 && pacman -Qi weather-waybar >/dev/null 2>&1; then
+ _log "weather-waybar already installed via pacman."
+ return 0
+ fi
+ if command -v yay >/dev/null 2>&1; then
+ _log "Attempting to install AUR package 'weather-waybar' via yay"
+ if yay -S --noconfirm weather-waybar; then
+ _log "AUR install succeeded."
+ return 0
+ else
+ _warn "AUR install failed; will fall back to bundled asset."
+ fi
+ else
+ _warn "yay not found on Arch; falling back to bundled asset."
+ fi
+ fi
+
+ # Asset path validation
+ if [[ ! -f "$ASSET" ]]; then
+ _err "Asset not found: $ASSET"
+ return 1
+ fi
+ if ! command -v gzip >/dev/null 2>&1; then
+ _err "Missing required command: gzip"
+ return 1
+ fi
+
+ # Sudo handling for /usr/bin
+ local SUDO=""
+ if [[ $EUID -ne 0 ]]; then
+ if command -v sudo >/dev/null 2>&1; then
+ SUDO="sudo"
+ else
+ _err "sudo not available; cannot write to ${INSTALL_PATH} as non-root"
+ return 1
+ fi
+ fi
+
+ _log "Installing prebuilt binary to ${INSTALL_PATH} from ${ASSET}"
+ if ${SUDO} sh -c "tmp=\$(mktemp '${INSTALL_PATH}.XXXXXX') && gzip -dc '$ASSET' > \"\$tmp\" && chmod 0755 \"\$tmp\" && mv -f \"\$tmp\" '${INSTALL_PATH}'"; then
+ if "${INSTALL_PATH}" -h >/dev/null 2>&1; then
+ _log "Installed ${APP_NAME} successfully."
+ else
+ _warn "${APP_NAME} installed, but a basic self-check did not run."
+ fi
+ else
+ _err "Failed to install ${APP_NAME} to ${INSTALL_PATH}"
+ return 1
+ fi
+}
+
+# Install waybar-weather on NixOS using Go from the system (no version checks)
+install_waybar_weather_nixos() {
+ local log="$1"
+ local APP_NAME="waybar-weather"
+ local DEST="$HOME/.local/bin/${APP_NAME}"
+
+ _log() { echo "[${APP_NAME}] $*" 2>&1 | tee -a "$log"; }
+ _warn() { echo "[${APP_NAME}] WARN: $*" 1>&2 | tee -a "$log"; }
+ _err() { echo "[${APP_NAME}] ERROR: $*" 1>&2 | tee -a "$log"; }
+
+ if ! grep -qi '^ID=nixos' /etc/os-release 2>/dev/null; then
+ _warn "Not NixOS; skipping NixOS-specific build."
+ return 0
+ fi
+
+ if ! command -v go >/dev/null 2>&1; then
+ _err "Go toolchain not found in PATH. Ensure NixOS-Hyprland provides go, then re-run."
+ return 1
+ fi
+ if ! command -v git >/dev/null 2>&1; then
+ _err "git not found; install git and retry."
+ return 1
+ fi
+
+ local tmp
+ tmp=$(mktemp -d)
+ trap 'rm -rf "${tmp}"' RETURN
+
+ _log "Cloning waybar-weather source"
+ if ! git clone --depth 1 https://github.com/wneessen/waybar-weather.git "${tmp}/src" >/dev/null 2>&1; then
+ _err "git clone failed"
+ return 1
+ fi
+
+ if ! (
+ cd "${tmp}/src" || { _err "cd failed"; exit 1; }
+ _log "Fetching modules"
+ go mod download >/dev/null 2>&1 || _warn "go mod download returned non-zero; continuing"
+ _log "Building ${APP_NAME}"
+ CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o "${APP_NAME}" ./cmd/${APP_NAME}
+ ); then
+ _err "go build failed"
+ return 1
+ fi
+
+ mkdir -p "$HOME/.local/bin"
+ install -m 0755 "${APP_NAME}" "${DEST}" || { _err "install to ${DEST} failed"; return 1; }
+
+ if printf '%s' "$PATH" | grep -q "$HOME/.local/bin"; then
+ :
+ else
+ _warn "~/.local/bin is not in PATH; add it so Waybar can find ${APP_NAME}."
+ fi
+
+ if "${DEST}" -h >/dev/null 2>&1; then
+ _log "Installed ${APP_NAME} to ${DEST}"
+ else
+ _warn "${APP_NAME} installed, but a basic self-check did not run."
+ fi
+}
+
+# Wrapper: choose NixOS builder or non-NixOS installer automatically
+install_waybar_weather() {
+ local log="$1"
+ if grep -qi '^ID=nixos' /etc/os-release 2>/dev/null; then
+ install_waybar_weather_nixos "$log"
+ else
+ install_waybar_weather_binary "$log"
+ fi
+}
diff --git a/scripts/lib_copy.sh b/scripts/lib_copy.sh
index 331c6906..58fbe066 100644
--- a/scripts/lib_copy.sh
+++ b/scripts/lib_copy.sh
@@ -3,6 +3,7 @@
copy_phase1() {
local log="$1"
+ local base="${DOTFILES_DIR:-.}"
local dirs="fastfetch kitty rofi swaync"
for DIR2 in $dirs; do
local DIRPATH="$HOME/.config/$DIR2"
@@ -16,7 +17,7 @@ copy_phase1() {
BACKUP_DIR=$(get_backup_dirname)
mv "$DIRPATH" "$DIRPATH-backup-$BACKUP_DIR" 2>&1 | tee -a "$log"
echo -e "${NOTE:-[NOTE]} - Backed up $DIR2 to $DIRPATH-backup-$BACKUP_DIR." 2>&1 | tee -a "$log"
- cp -r "config/$DIR2" "$HOME/.config/$DIR2" 2>&1 | tee -a "$log"
+ cp -r "$base/config/$DIR2" "$HOME/.config/$DIR2" 2>&1 | tee -a "$log"
echo -e "${OK:-[OK]} - Replaced $DIR2 with new configuration." 2>&1 | tee -a "$log"
if [ "$DIR2" = "rofi" ]; then
if [ -d "$DIRPATH-backup-$BACKUP_DIR/themes" ]; then
@@ -39,7 +40,7 @@ copy_phase1() {
esac
done
else
- cp -r "config/$DIR2" "$HOME/.config/$DIR2" 2>&1 | tee -a "$log"
+ cp -r "$base/config/$DIR2" "$HOME/.config/$DIR2" 2>&1 | tee -a "$log"
echo -e "${OK:-[OK]} - Copy completed for ${YELLOW:-}$DIR2${RESET:-}" 2>&1 | tee -a "$log"
fi
done
@@ -47,6 +48,7 @@ copy_phase1() {
copy_waybar() {
local log="$1"
+ local base="${DOTFILES_DIR:-.}"
local DIRW="waybar"
local DIRPATHw="$HOME/.config/$DIRW"
if [ -d "$DIRPATHw" ]; then
@@ -58,7 +60,7 @@ copy_waybar() {
BACKUP_DIR=$(get_backup_dirname)
cp -r "$DIRPATHw" "$DIRPATHw-backup-$BACKUP_DIR" 2>&1 | tee -a "$log"
echo -e "${NOTE:-[NOTE]} - Backed up $DIRW to $DIRPATHw-backup-$BACKUP_DIR." 2>&1 | tee -a "$log"
- rm -rf "$DIRPATHw" && cp -r "config/$DIRW" "$DIRPATHw" 2>&1 | tee -a "$log"
+ rm -rf "$DIRPATHw" && cp -r "$base/config/$DIRW" "$DIRPATHw" 2>&1 | tee -a "$log"
for file in "config" "style.css"; do
symlink="$DIRPATHw-backup-$BACKUP_DIR/$file"
target_file="$DIRPATHw/$file"
@@ -103,13 +105,14 @@ copy_waybar() {
esac
done
else
- cp -r "config/$DIRW" "$DIRPATHw" 2>&1 | tee -a "$log"
+ cp -r "$base/config/$DIRW" "$DIRPATHw" 2>&1 | tee -a "$log"
echo -e "${OK:-[OK]} - Copy completed for ${YELLOW:-}$DIRW${RESET:-}" 2>&1 | tee -a "$log"
fi
}
copy_phase2() {
local log="$1"
+ local base="${DOTFILES_DIR:-.}"
local DIR="btop cava hypr Kvantum qt5ct qt6ct swappy wallust wlogout"
for DIR_NAME in $DIR; do
local DIRPATH="$HOME/.config/$DIR_NAME"
@@ -118,8 +121,8 @@ copy_phase2() {
BACKUP_DIR=$(get_backup_dirname)
mv "$DIRPATH" "$DIRPATH-backup-$BACKUP_DIR" 2>&1 | tee -a "$log"
fi
- if [ -d "config/$DIR_NAME" ]; then
- cp -r "config/$DIR_NAME/" "$HOME/.config/$DIR_NAME" 2>&1 | tee -a "$log"
+ if [ -d "$base/config/$DIR_NAME" ]; then
+ cp -r "$base/config/$DIR_NAME/" "$HOME/.config/$DIR_NAME" 2>&1 | tee -a "$log"
echo "${OK:-[OK]} - Copy of config for ${YELLOW:-}$DIR_NAME${RESET:-} completed!" 2>&1 | tee -a "$log"
else
echo "${ERROR:-[ERROR]} - Directory config/$DIR_NAME does not exist to copy." 2>&1 | tee -a "$log"
@@ -146,7 +149,15 @@ restore_hypr_assets() {
echo -e "\n${NOTE:-[NOTE]} Restoring ${SKY_BLUE:-}Animations & Monitor Profiles${RESET:-} into ${YELLOW:-}$HYPR_DIR${RESET:-}..."
- local DIR_B=("Monitor_Profiles" "animations" "wallpaper_effects")
+ # Fresh installs should apply repo defaults; do not restore a previous wallpaper.
+ # RUN_MODE is set by copy.sh (install|upgrade|express) and is visible here.
+ local DIR_B=("Monitor_Profiles" "animations")
+ if [ "${RUN_MODE:-}" != "install" ]; then
+ DIR_B+=("wallpaper_effects")
+ else
+ echo "${NOTE:-[NOTE]} Fresh install: skipping restore of wallpaper_effects so default wallpaper applies." 2>&1 | tee -a "$log"
+ fi
+
for DIR_RESTORE in "${DIR_B[@]}"; do
local BACKUP_SUBDIR="$BACKUP_HYPR_PATH/$DIR_RESTORE"
if [ -d "$BACKUP_SUBDIR" ]; then
diff --git a/scripts/lib_prompts.sh b/scripts/lib_prompts.sh
index bf6fafd7..6475e54d 100644
--- a/scripts/lib_prompts.sh
+++ b/scripts/lib_prompts.sh
@@ -21,6 +21,7 @@ prompt_detect_layout() {
prompt_keyboard_layout() {
local layout="$1"
local log="$2"
+ local base="${DOTFILES_DIR:-.}"
if [ "$layout" = "(unset)" ]; then
while true; do
@@ -65,8 +66,8 @@ ${MAGENTA} NOTE:${RESET}
read keyboard_layout
case $keyboard_layout in
[yY])
- awk -v layout="$layout" '/kb_layout/ {$0 = " kb_layout = " layout} 1' config/hypr/configs/SystemSettings.conf >temp.conf
- mv temp.conf config/hypr/configs/SystemSettings.conf
+ awk -v layout="$layout" '/kb_layout/ {$0 = " kb_layout = " layout} 1' "$base/config/hypr/configs/SystemSettings.conf" >temp.conf
+ mv temp.conf "$base/config/hypr/configs/SystemSettings.conf"
echo "${NOTE} kb_layout ${MAGENTA}$layout${RESET} configured in settings." 2>&1 | tee -a "$log"
break
;;
@@ -95,8 +96,8 @@ ${MAGENTA} NOTE:${RESET}
printf "\n%.0s" {1..1}
echo -n "${CAT} - Please enter the correct keyboard layout: "
read new_layout
- awk -v new_layout="$new_layout" '/kb_layout/ {$0 = " kb_layout = " new_layout} 1' config/hypr/configs/SystemSettings.conf >temp.conf
- mv temp.conf config/hypr/configs/SystemSettings.conf
+ awk -v new_layout="$new_layout" '/kb_layout/ {$0 = " kb_layout = " new_layout} 1' "$base/config/hypr/configs/SystemSettings.conf" >temp.conf
+ mv temp.conf "$base/config/hypr/configs/SystemSettings.conf"
echo "${OK} kb_layout $new_layout configured in settings." 2>&1 | tee -a "$log"
break
;;
@@ -131,6 +132,7 @@ prompt_resolution_choice() {
# Prompt for 12H clock; sets waybar/hyprlock/SDDM changes when accepted.
prompt_clock_12h() {
local log="$1"
+ local base="${DOTFILES_DIR:-.}"
while true; do
echo -e "${NOTE} ${SKY_BLUE} By default, KooL's Dots are configured in 24H clock format."
echo -n "$CAT Do you want to change to 12H (AM/PM) clock format? (y/n): "
@@ -138,20 +140,20 @@ prompt_clock_12h() {
answer=$(echo "$answer" | tr '[:upper:]' '[:lower:]')
if [[ "$answer" == "y" ]]; then
# waybar clocks
- sed -i 's#^\(\s*\)//\("format": " {:%I:%M %p}",\) #\1\2 #g' config/waybar/Modules 2>&1 | tee -a "$log"
- sed -i 's#^\(\s*\)\("format": " {:%H:%M:%S}",\) #\1//\2#g' config/waybar/Modules 2>&1 | tee -a "$log"
- sed -i 's#^\(\s*\)\("format": " {:%H:%M}",\) #\1//\2#g' config/waybar/Modules 2>&1 | tee -a "$log"
- sed -i 's#^\(\s*\)//\("format": "{:%I:%M %p - %d/%b}",\) #\1\2#g' config/waybar/Modules 2>&1 | tee -a "$log"
- sed -i 's#^\(\s*\)\("format": "{:%H:%M - %d/%b}",\) #\1//\2#g' config/waybar/Modules 2>&1 | tee -a "$log"
- sed -i 's#^\(\s*\)//\("format": "{:%B | %a %d, %Y | %I:%M %p}",\) #\1\2#g' config/waybar/Modules 2>&1 | tee -a "$log"
- sed -i 's#^\(\s*\)\("format": "{:%B | %a %d, %Y | %H:%M}",\) #\1//\2#g' config/waybar/Modules 2>&1 | tee -a "$log"
- sed -i 's#^\(\s*\)//\("format": "{:%A, %I:%M %P}",\) #\1\2#g' config/waybar/Modules 2>&1 | tee -a "$log"
- sed -i 's#^\(\s*\)\("format": "{:%a %d | %H:%M}",\) #\1//\2#g' config/waybar/Modules 2>&1 | tee -a "$log"
+ sed -i 's#^\(\s*\)//\("format": " {:%I:%M %p}",\) #\1\2 #g' "$base/config/waybar/Modules" 2>&1 | tee -a "$log"
+ sed -i 's#^\(\s*\)\("format": " {:%H:%M:%S}",\) #\1//\2#g' "$base/config/waybar/Modules" 2>&1 | tee -a "$log"
+ sed -i 's#^\(\s*\)\("format": " {:%H:%M}",\) #\1//\2#g' "$base/config/waybar/Modules" 2>&1 | tee -a "$log"
+ sed -i 's#^\(\s*\)//\("format": "{:%I:%M %p - %d/%b}",\) #\1\2#g' "$base/config/waybar/Modules" 2>&1 | tee -a "$log"
+ sed -i 's#^\(\s*\)\("format": "{:%H:%M - %d/%b}",\) #\1//\2#g' "$base/config/waybar/Modules" 2>&1 | tee -a "$log"
+ sed -i 's#^\(\s*\)//\("format": "{:%B | %a %d, %Y | %I:%M %p}",\) #\1\2#g' "$base/config/waybar/Modules" 2>&1 | tee -a "$log"
+ sed -i 's#^\(\s*\)\("format": "{:%B | %a %d, %Y | %H:%M}",\) #\1//\2#g' "$base/config/waybar/Modules" 2>&1 | tee -a "$log"
+ sed -i 's#^\(\s*\)//\("format": "{:%A, %I:%M %P}",\) #\1\2#g' "$base/config/waybar/Modules" 2>&1 | tee -a "$log"
+ sed -i 's#^\(\s*\)\("format": "{:%a %d | %H:%M}",\) #\1//\2#g' "$base/config/waybar/Modules" 2>&1 | tee -a "$log"
# hyprlock
- local HYPRLOCK_FILE="config/hypr/hyprlock.conf"
- if [ ! -f "$HYPRLOCK_FILE" ] && [ -f "config/hypr/hyprlock-1080p.conf" ]; then
- HYPRLOCK_FILE="config/hypr/hyprlock-1080p.conf"
+ local HYPRLOCK_FILE="$base/config/hypr/hyprlock.conf"
+ if [ ! -f "$HYPRLOCK_FILE" ] && [ -f "$base/config/hypr/hyprlock-1080p.conf" ]; then
+ HYPRLOCK_FILE="$base/config/hypr/hyprlock-1080p.conf"
fi
if [ -f "$HYPRLOCK_FILE" ]; then
sed -i 's/^\s*text = cmd\[update:1000\] echo \"\$(date +\"%H\")\"/# &/' "$HYPRLOCK_FILE" 2>&1 | tee -a "$log"
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage