parent
23689f5b1d
commit
f1833f092c
@ -0,0 +1,74 @@ |
|||||||
|
#!/usr/bin/env bash |
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------- |
||||||
|
# Info: |
||||||
|
# author: Miroslav Vidovic |
||||||
|
# file: books-search.sh |
||||||
|
# created: 13.08.2017.-08:06:54 |
||||||
|
# revision: --- |
||||||
|
# version: 1.0 |
||||||
|
# https://github.com/miroslavvidovic/rofi-scripts |
||||||
|
# ----------------------------------------------------------------------------- |
||||||
|
# Requirements: |
||||||
|
# rofi |
||||||
|
# Description: |
||||||
|
# Use rofi to search my books. |
||||||
|
# Usage: |
||||||
|
# books-search.sh |
||||||
|
# ----------------------------------------------------------------------------- |
||||||
|
# Script: |
||||||
|
|
||||||
|
# Books directory |
||||||
|
BOOKS_DIR=~/Books |
||||||
|
mkdir -p ~/Books |
||||||
|
|
||||||
|
# Save find result to F_ARRAY |
||||||
|
readarray -t F_ARRAY <<< "$(find "$BOOKS_DIR" -type f -name '*.pdf')" |
||||||
|
|
||||||
|
# Associative array for storing books |
||||||
|
# key => book name |
||||||
|
# value => absolute path to the file |
||||||
|
# BOOKS['filename']='path' |
||||||
|
declare -A BOOKS |
||||||
|
|
||||||
|
# Add elements to BOOKS array |
||||||
|
get_books() { |
||||||
|
|
||||||
|
# if [ ${#F_ARRAY[@]} != 0 ]; then |
||||||
|
if [[ ! -z ${F_ARRAY[@]} ]]; then |
||||||
|
for i in "${!F_ARRAY[@]}" |
||||||
|
do |
||||||
|
path=${F_ARRAY[$i]} |
||||||
|
file=$(basename "${F_ARRAY[$i]}") |
||||||
|
BOOKS+=(["$file"]="$path") |
||||||
|
done |
||||||
|
else |
||||||
|
echo "$BOOKS_DIR is empty!" |
||||||
|
echo "Please put some books in it." |
||||||
|
echo "Only .pdf files are accepted." |
||||||
|
exit |
||||||
|
fi |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
# List for rofi |
||||||
|
gen_list(){ |
||||||
|
for i in "${!BOOKS[@]}" |
||||||
|
do |
||||||
|
echo "$i" |
||||||
|
done |
||||||
|
} |
||||||
|
|
||||||
|
main() { |
||||||
|
get_books |
||||||
|
book=$( (gen_list) | rofi -dmenu -i -matching fuzzy -no-custom -location 0 -p "Book > " ) |
||||||
|
|
||||||
|
if [ -n "$book" ]; then |
||||||
|
xdg-open "${BOOKS[$book]}" |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
main |
||||||
|
|
||||||
|
exit 0 |
@ -0,0 +1,79 @@ |
|||||||
|
#! /bin/bash |
||||||
|
|
||||||
|
#this is to switch ncmpcpp |
||||||
|
|
||||||
|
#Declarations |
||||||
|
hoststring0="PASS@HOST #2 (or just HOST if no password set)" |
||||||
|
hoststring1="PASS@HOST #2 (or just HOST if no password set)" |
||||||
|
current="" |
||||||
|
pid="" |
||||||
|
|
||||||
|
function getInfo() { |
||||||
|
#mpdinfo=$(mpc --host "$hoststring" ) |
||||||
|
playingstring=$(echo "$mpdinfo" | head -1 | awk -F '[' '{print $1}' | fold -sw 58 | head -1 ) |
||||||
|
percent=$(echo "$mpdinfo" | tail -2 | head -1 | awk '{print $4}') |
||||||
|
printf "%s: %s" "$playingstring" "$percent" |
||||||
|
} |
||||||
|
|
||||||
|
function isplaying() { |
||||||
|
mpdinfo=$(mpc --host "$hoststring" | sed -e 's/[/()&]//g') |
||||||
|
progress=$(echo "$mpdinfo" | tail -2 | head -1 | awk '{print $1" "$3 $4}') |
||||||
|
check=$(echo "$progress" | grep -c '\[') |
||||||
|
} |
||||||
|
|
||||||
|
function main() { |
||||||
|
|
||||||
|
#note to self you could check for the entire name of the process too and |
||||||
|
# whether or not it has the specified host |
||||||
|
while true; do |
||||||
|
|
||||||
|
hoststring=${hoststring1} #check remote |
||||||
|
isplaying |
||||||
|
echo "ah" |
||||||
|
if [ $check != 0 ];then #remote is playing |
||||||
|
if [ "$current" != "$hoststring" ];then # only do if we aren't currently on that host |
||||||
|
current=${hoststring} |
||||||
|
if [ ! -z $pid ];then |
||||||
|
kill -9 "$pid" &> /dev/null |
||||||
|
fi |
||||||
|
eval ncmpcpp --host "$hoststring" |
||||||
|
pid=$(echo $!) |
||||||
|
current=${hoststring} |
||||||
|
continue |
||||||
|
fi |
||||||
|
fi |
||||||
|
hoststring=${hoststring0} #check local |
||||||
|
if [[ -z "$NotFirst" ]];then |
||||||
|
NotFirst="We've run once" |
||||||
|
check=1 |
||||||
|
echo "FA" |
||||||
|
current="First Time!" |
||||||
|
echo "$check $hoststring" |
||||||
|
|
||||||
|
fi |
||||||
|
if [ $check != 0 ];then #local is playing |
||||||
|
if [ "$current" != "$hoststring" ];then # only do if we aren't currently on that host |
||||||
|
current=${hoststring} |
||||||
|
if [ ! -z $pid ];then |
||||||
|
kill -9 "$pid" &> /dev/null |
||||||
|
fi |
||||||
|
eval ncmpcpp --host "$hoststring" |
||||||
|
pid=$(echo $!) |
||||||
|
continue |
||||||
|
fi |
||||||
|
fi |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
echo "If you are seeing this, neither MPD instance is running. Ctrl-C to exit or start one to resume!" |
||||||
|
mpc --host "$hoststring" idle &> /dev/null |
||||||
|
done |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
current=${hoststring0} #starting it locally so the idle loop has a place to go |
||||||
|
main |
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in new issue