dotfiles/.config/hypr/scripts/RofiSearch.sh
2026-05-13 21:22:17 +02:00

52 lines
1.6 KiB
Bash
Executable file

#!/usr/bin/env bash
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# For Searching via web browsers
# Define the path to the config file
config_file=$HOME/.config/hypr/UserConfigs/01-UserDefaults.conf
if ! command -v jq >/dev/null 2>&1; then
notify-send -u low "Rofi Search" "jq is required for URL encoding. Please install jq."
exit 1
fi
# Check if the config file exists
if [[ ! -f "$config_file" ]]; then
echo "Error: Configuration file not found!"
exit 1
fi
# Process the config file in memory, removing the $ and fixing spaces
config_content=$(sed 's/\$//g' "$config_file" | sed 's/ = /=/')
# Source the modified content directly from the variable
eval "$config_content"
# Check if $term is set correctly
if [[ -z "$Search_Engine" ]]; then
echo "Error: \$Search_Engine is not set in the configuration file!"
exit 1
fi
# Rofi theme and message
rofi_theme="$HOME/.config/rofi/config-search.rasi"
msg='‼️ **note** ‼️ search via default web browser'
# Kill Rofi if already running before execution
if pgrep -x "rofi" >/dev/null; then
pkill rofi
fi
# Open Rofi and pass the selected query to xdg-open for the configured search engine
query=$(printf '' | rofi -dmenu -config "$rofi_theme" -mesg "$msg")
if [[ -z "$query" ]]; then
exit 0
fi
encoded_query=$(printf '%s' "$query" | jq -sRr @uri)
xdg-open "${Search_Engine}${encoded_query}" >/dev/null 2>&1 &