mirror of
https://github.com/jarun/nnn.git
synced 2024-11-24 11:51:27 +00:00
16ec5d3351
Reasons: gnome-search-tool is much more powerful than other tools in its category. It supports numerous search parameters like size, modification date and supports text search.
134 lines
3.3 KiB
Bash
Executable file
134 lines
3.3 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# #############################################################################
|
|
# nlay: a customizable script to play files in different apps by file type
|
|
#
|
|
# usage: nlay file type
|
|
#
|
|
# MUST READ:
|
|
#
|
|
# 1. Feel free to change the default apps to your favourite ones.
|
|
# If you change the app for a group you may also need to modify the bg
|
|
# setting. If bg is set the app is detached and started in the background in
|
|
# silent mode.
|
|
#
|
|
# The bg setting depends on personal preference and type of app, e.g.,
|
|
# I would start vim (CLI) in the foreground but Sublime Text (GUI) in the
|
|
# background. I also prefer mpv running in the background without disturbing
|
|
# my ongoing activity in nnn by blocking navigation.
|
|
#
|
|
# Check (and TOGGLE as you wish) the default bg settings.
|
|
#
|
|
# 2. Detached apps are not killed when nnn exits. Use kill(1) or killall(1) to
|
|
# to stop console based background apps.
|
|
#
|
|
# 3. Assuming you don't to play multiple audio/video files simultaneously,
|
|
# nlay kills any running instances of the audio/video player in bg mode.
|
|
#
|
|
# 4. nlay is OVERWRITTEN during nnn upgrade. You can store your custom nlay in a
|
|
# location other than the default and have an alias with nnn option '-p' to
|
|
# invoke it. Remember it might break or lack new capabilities added to nlay
|
|
# in future releases. Check the file diff once in a while.
|
|
#
|
|
# Author: Arun Prakash Jana
|
|
# Email: engineerarun@gmail.com
|
|
# #############################################################################
|
|
|
|
|
|
# Enable the lines below to handle file by extension
|
|
# This is provided for using a custom player for specific files
|
|
# $ext holds the extension
|
|
<<ENABLE_FILE_TYPE_HANDLING
|
|
fname=$(basename "$1")
|
|
if [[ $fname != *"."* ]]; then
|
|
exit 1
|
|
fi
|
|
|
|
ext="${fname##*.}"
|
|
if [ -z "$ext" ]; then
|
|
exit 1
|
|
fi
|
|
|
|
# bash 4.0 way to switch to lowercase
|
|
ext="${ext,,}"
|
|
|
|
# handle this extension and exit
|
|
ENABLE_FILE_TYPE_HANDLING
|
|
|
|
|
|
#------------------ AUDIO -------------------
|
|
if [ "$2" == "audio" ]; then
|
|
app=mpv
|
|
# To start mpv in a window enable audio_opts
|
|
#audio_opts="--no-terminal --force-window"
|
|
|
|
#bg=">/dev/null 2>&1 &"
|
|
|
|
if [ -n "$bg" ]; then
|
|
killall -9 $app >/dev/null 2>&1
|
|
fi
|
|
|
|
eval $app $audio_opts "\"$1\"" $bg
|
|
exit 0
|
|
fi
|
|
|
|
#------------------ VIDEO -------------------
|
|
if [ "$2" == "video" ]; then
|
|
app=mpv
|
|
# To start mpv in a window enable video_opts
|
|
#video_opts="--no-terminal --force-window"
|
|
|
|
#bg=">/dev/null 2>&1 &"
|
|
|
|
if [ -n "$bg" ]; then
|
|
killall -9 $app >/dev/null 2>&1
|
|
fi
|
|
|
|
eval $app $video_opts "\"$1\"" $bg
|
|
exit 0
|
|
fi
|
|
|
|
#------------------ IMAGE -------------------
|
|
if [ "$2" == "image" ]; then
|
|
app=viewnior
|
|
#image_opts=
|
|
|
|
bg=">/dev/null 2>&1 &"
|
|
|
|
eval $app $image_opts "\"$1\"" $bg
|
|
exit 0
|
|
fi
|
|
|
|
#------------------- PDF --------------------
|
|
if [ "$2" == "pdf" ]; then
|
|
app=zathura
|
|
#pdf_opts=
|
|
|
|
bg=">/dev/null 2>&1 &"
|
|
|
|
eval $app $pdf_opts "\"$1\"" $bg
|
|
exit 0
|
|
fi
|
|
|
|
#---------------- PLAINTEXT -----------------
|
|
if [ "$2" == "text" ]; then
|
|
app=vim
|
|
#txt_opts=
|
|
|
|
#bg=">/dev/null 2>&1 &"
|
|
|
|
eval $app $txt_opts "\"$1\"" $bg
|
|
exit 0
|
|
fi
|
|
|
|
#----------------- SEARCH -------------------
|
|
if [ "$2" == "search" ]; then
|
|
app=gnome-search-tool
|
|
#search_opts=
|
|
|
|
bg=">/dev/null 2>&1 &"
|
|
|
|
eval $app $search_opts --path "\"$1\"" $bg
|
|
exit 0
|
|
fi
|