mine-hyprdots/rofi/search/search.sh

76 lines
2.4 KiB
Bash
Raw Normal View History

2025-02-23 00:38:43 +05:30
#!/usr/bin/env bash
# Define the directory where Rofi themes are stored
dir="$HOME/.config/rofi/search/"
theme='style'
# Prompt user for search input using Rofi dmenu mode
SEARCH_STRING=$(rofi -dmenu -p "Search" -theme "${dir}/${theme}.rasi")
# Check if search string is empty, if so, exit
if [[ -z "$SEARCH_STRING" ]]; then
exit 1
fi
# Check if the input is a command to change directories
if [[ "$SEARCH_STRING" == cd* ]]; then
# Extract the directory path
DIR_PATH=$(echo "$SEARCH_STRING" | awk '{print $2}')
# If no path is specified, default to the home directory
if [[ -z "$DIR_PATH" ]]; then
DIR_PATH="$HOME"
fi
# Open Kitty and navigate to the specified directory
kitty --directory="$DIR_PATH" &
exit
fi
# Extract the first word as ENGINE and the rest as QUERY
ENGINE=$(echo "$SEARCH_STRING" | awk '{print $1}')
QUERY=$(echo "$SEARCH_STRING" | awk '{$1=""; print $0}' | sed 's/^ *//g')
# Handle search engine cases
case "$ENGINE" in
yt)
# If the engine is 'yt' and no query, go to YouTube homepage
if [[ -z "$QUERY" ]]; then
xdg-open "https://www.youtube.com"
else
# Search YouTube for the query
ENCODED_QUERY=$(echo "$QUERY" | sed 's/ /+/g')
xdg-open "https://www.youtube.com/results?search_query=$ENCODED_QUERY"
fi
exit
;;
arch)
# Search Arch Wiki
ENCODED_QUERY=$(echo "$QUERY" | sed 's/ /+/g')
xdg-open "https://wiki.archlinux.org/index.php?search=$ENCODED_QUERY"
exit
;;
hypr)
# Search Hyprland documentation or relevant page
ENCODED_QUERY=$(echo "$QUERY" | sed 's/ /+/g')
xdg-open "https://wiki.hyprland.org/Getting-Started/$ENCODED_QUERY"
exit
;;
man)
# If the engine is 'man', open the manual page for the command in Kitty
MAN_COMMAND=$(echo "$QUERY" | sed 's/^ *//g') # Trim leading whitespace
if [[ -z "$MAN_COMMAND" ]]; then
echo "No command specified for man. Please provide a command."
exit 1
else
kitty -e man "$MAN_COMMAND" & # Open the man page in Kitty
exit
fi
;;
*)
# If no known engine, search Google for the whole input
ENCODED_QUERY=$(echo "$SEARCH_STRING" | sed 's/ /+/g')
xdg-open "https://www.google.com/search?q=$ENCODED_QUERY"
;;
esac