From f1833f092c7d1c838df09af926f3d8944a1c6c85 Mon Sep 17 00:00:00 2001 From: Steven Saus Date: Thu, 13 Aug 2020 19:45:33 -0400 Subject: [PATCH] Added swap ncmpppppppp script, a little messing aroudn with booksearch --- books_search.sh | 74 +++++++++++++++++++++++++++++++++++++++++++++ swap_ncmpcpp | 79 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 153 insertions(+) create mode 100644 books_search.sh create mode 100755 swap_ncmpcpp diff --git a/books_search.sh b/books_search.sh new file mode 100644 index 0000000..4700753 --- /dev/null +++ b/books_search.sh @@ -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 diff --git a/swap_ncmpcpp b/swap_ncmpcpp new file mode 100755 index 0000000..14ae1b3 --- /dev/null +++ b/swap_ncmpcpp @@ -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 + + +