diff --git a/README.md b/README.md
index 71e448a..53f84f7 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,7 @@
# nbrowser
+
+`nbrowser` started as browser prompter for Linux. It works by setting it as the default browser; any clicked links in non-browser apps are now sent to `nbrowser` where you are presented with a menu of all your installed browsers. You may now decide which app you’d like to continue opening the link with and more.
+
rofi with DarkBlue theme
diff --git a/nbrowser b/nbrowser
index 408dbc0..da53993 100755
--- a/nbrowser
+++ b/nbrowser
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
-# nbrowser v0.5
+# nbrowser v0.6
# author : odnar-dev
# source : https://github.com/MyOS-ArchLinux/nbrowser
# license: GPLv3
@@ -49,6 +49,10 @@ _choose(){
rofi -dmenu -i -p 'Select Item ' -theme-str 'window {width: 95%;}' -l 10 -no-click-to-exit -filter "${@:-}"
}
+_input(){
+ rofi -l 0 -width 50 -p "${@:-input}" -dmenu
+}
+
listfiles(){
for file in ${NBROWSER_CONFIG_DIR}/$1/*; do
[ -e "$file" ] || [ -L "$file" ] || continue
@@ -291,6 +295,9 @@ main(){
freetube://*)
open_video_with "${1:11}"
;;
+ mpv://*|vlc://*)
+ open_video_with "${1:6}"
+ ;;
play://*)
open_video_with "${1:7}"
;;
@@ -329,30 +336,34 @@ main(){
"?"*)
local engine="${1/?}"
shift
+ local searchquery="$*"
if [ -f "${NBROWSER_CONFIG_DIR}/engines/${engine}" ] ; then
source "${NBROWSER_CONFIG_DIR}/engines/${engine}"
has nbrowser_search || _pemx "couldn't find nbrowser_search() function in ${NBROWSER_CONFIG_DIR}/engines/${engine}"
- [ -n "$1" ] && url_handler "$(nbrowser_search $*)"
+ [ -z "$searchquery" ] && searchquery=$(_input "$engine Search")
+ [ -n "$searchquery" ] && url_handler "$(nbrowser_search $searchquery)"
elif [ -n "${ENGINES[${engine:- }]}" ]; then
- url_handler "${ENGINES[$engine]}$*"
+ [ -z "$searchquery" ] && searchquery=$(_input "$engine Search")
+ [ -n "$searchquery" ] && url_handler "${ENGINES[$engine]}$searchquery"
elif [ -f "$NBROWSER_CONFIG_DIR/engines.json" ]; then
- local url=$(jq -r ".[]|select( .t == \"$engine\" )|.u" "$NBROWSER_CONFIG_DIR/engines.json" | sed "s/{{{s}}}/$*/g")
+ local url=$(jq -r ".[]|select( .t == \"$engine\" )|.u" "$NBROWSER_CONFIG_DIR/engines.json")
if [ ! -z "$url" ] ; then
- url_handler "$url"
+ [ -z "$searchquery" ] && searchquery=$(_input "$engine Search")
+ [ -n "$searchquery" ] && url_handler "$(echo $url | sed "s/{{{s}}}/$searchquery/g")"
else
ENGINESLIST="$(listfiles engines)"
ENGINESLIST+=" ${!ENGINES[@]}"
ENGINESLIST+=" $(jq -r ".[]|.t" "$NBROWSER_CONFIG_DIR/engines.json")"
engine=$(printf "%s\n" ${ENGINESLIST} | awk '!a[$0]++' | rofi -dmenu -p 'engines' -i -mesg "engine '${engine}' not found!")
[ -z "$engine" ] && exit
- [ -n "$1" ] && main "?"$engine $*
+ main "?"$engine $searchquery
fi
else
ENGINESLIST="$(listfiles engines)"
ENGINESLIST+=" ${!ENGINES[@]}"
engine=$(printf "%s\n" ${ENGINESLIST} | awk '!a[$0]++' | rofi -dmenu -p 'engines' -i -mesg "engine '${engine}' not found!")
[ -z "$engine" ] && exit
- [ -n "$1" ] && main "?"$engine $*
+ main "?"$engine $searchquery
fi
;;