52 lines
1.6 KiB
Bash
Executable file
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 &
|