*text*)
         "${VISUAL:-$EDITOR}" "$entry" ;;
     *)
-        xdg-open "$entry" >/dev/null 2>&1 ;;
+        if uname | grep -q "Darwin"; then
+            open "$entry" >/dev/null 2>&1
+        else
+            xdg-open "$entry" >/dev/null 2>&1
+        fi
+        ;;
 esac
 
     exit 1
 fi
 
-if command -v imvr >/dev/null 2>&1; then
+if uname | grep -q "Darwin"; then
+    if [ -f "$1" ]; then
+        open "$1" >/dev/null 2>&1 &
+    fi
+elif command -v imvr >/dev/null 2>&1; then
     if [ -f "$1" ]; then
         view_dir imvr "$1" >/dev/null 2>&1 &
     elif [ -d "$1" ] || [ -h "$1" ]; then
 
 EDITOR="${EDITOR:-vi}"
 PAGER="${PAGER:-less -R}"
 ext="${FNAME##*.}"
-if ! [ -z "$ext" ]; then
+if [ -n "$ext" ]; then
     ext="$(printf "%s" "${ext}" | tr '[:upper:]' '[:lower:]')"
 fi
 
+is_mac() {
+    uname | grep -q "Darwin"
+}
+
 handle_pdf() {
-    if [ "$GUI" -ne 0 ] && which zathura >/dev/null 2>&1; then
+    if [ "$GUI" -ne 0 ] && is_mac; then
+        open "${FPATH}" >/dev/null 2>&1 &
+        exit 0
+    elif [ "$GUI" -ne 0 ] && which zathura >/dev/null 2>&1; then
         zathura "${FPATH}" >/dev/null 2>&1 &
         exit 0
     elif which pdftotext >/dev/null 2>&1; then
 }
 
 handle_video() {
-    if [ "$GUI" -ne 0 ] && which smplayer >/dev/null 2>&1; then
+    if [ "$GUI" -ne 0 ] && is_mac; then
+        open "${FPATH}" >/dev/null 2>&1 &
+        exit 0
+    elif [ "$GUI" -ne 0 ] && which smplayer >/dev/null 2>&1; then
         smplayer "${FPATH}" >/dev/null 2>&1 &
         exit 0
     elif [ "$GUI" -ne 0 ] && which mpv >/dev/null 2>&1; then
 
         ## Image
         image/*)
-            if [ "$GUI" -ne 0 ] && which imvr >/dev/null 2>&1; then
+            if [ "$GUI" -ne 0 ] && is_mac; then
+                open "${FPATH}" >/dev/null 2>&1 &
+                exit 0
+            elif [ "$GUI" -ne 0 ] && which imvr >/dev/null 2>&1; then
                 load_dir imvr "${FPATH}" >/dev/null 2>&1 &
                 exit 0
             elif [ "$GUI" -ne 0 ] && which sxiv >/dev/null 2>&1; then