75 lines
2.4 KiB
Bash
75 lines
2.4 KiB
Bash
#!/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
|