From 595359a884f349542c92cbedc168956033f1369c Mon Sep 17 00:00:00 2001 From: = <=> Date: Sat, 9 Jan 2021 19:45:09 -0500 Subject: [PATCH] Add info display feature --- README.md | 19 +++++++++++-------- pages | 17 +++++++++++++++++ prompt | 12 ++++++++++++ 3 files changed, 40 insertions(+), 8 deletions(-) create mode 100755 pages diff --git a/README.md b/README.md index b8f44ca..fd3efc3 100644 --- a/README.md +++ b/README.md @@ -4,27 +4,30 @@ This is a collection of scripts I use to make managing files and processes easie Use it to automagically select and run terminal applications, send signals to daemons, execute arbitrary commands, search the web, grab passwords from a password manager, and more. ## Installing dependencies -`sudo apt install enscript ghostscript ps2pdf zathura suckless-tools` +`sudo apt install pass enscript dunst xclip scrot mpc mpd ghostscript zathura suckless-tools` -## Prompt - mpc dmenu scrot xclip tmux vim lbry pass dunst -They're all optional but missing commands may have unexpeted side effects. The scripts also assumes you have the common commands in GNU core utilities like sed, awk, etc. +All of them are optional except suckless-tools. Many of the features aren't interdependent and are made up of 1 or 2 functions. + +## prompt +It's the central script that gives the rest of the features interactivity. Read the source code for more details. +### Usage + prompt [ launch | action | cmd | ddg | pass | manual ] + pages [ open ] + +## pages +pages is a command for viewing /tmp/pages-{number} files with less or zathura. The files are the result of prompt commands like `prompt action` -> Go page or can be created from your own tools. I use it for viewing documentation. - [ dmenu ](http://tools.suckless.org/dmenu/) for the prompts. It can be changed to rofi or some other solution - scrot and xclip for screenshots - all scripts assume your prefered terminal is [ st ](http://st.suckless.org) - mpc is for media controls -- the script assumes your passwords are in ~/Passwords/ - commands that display information from man pages, godoc, logs, etc do it using `enscript -p - | ps2pdf - | zathura -`. I'm considering more minimal combinations like enscript and surf or st and less but they create their own set of problems. This solution makes future changes easy without becoming too complicated -### Usage - prompt [launch | action | cmd | ddg | pass | manual] - edit-ini ... Use it to automagically select and run terminal applications, send signals to daemons, execute arbitrary commands, search the web, grab passwords from the password manager, and more. #### TODO diff --git a/pages b/pages new file mode 100755 index 0000000..edab1a3 --- /dev/null +++ b/pages @@ -0,0 +1,17 @@ +#!/bin/sh + +pager() { + # st -e tail -F -n +1 "/tmp/pages-$1" + st -e less "/tmp/pages-$1" +} + +pdf() { + st -e zathura "/tmp/pages-$1" +} + + + +case $1 in + pager) pager "$2";; + pdf) pdf "$2";; +esac diff --git a/prompt b/prompt index 7ae0e26..0be12da 100755 --- a/prompt +++ b/prompt @@ -36,17 +36,20 @@ action() { action=$(printf "Play Music Pause Music Toggle Music + Go page Command Command to clipboard Search github Search ddg Search godoc + Open page Select VPN Disable VPN Enable VPN VPN Status Rebind Keys Disable Bar + Man Enable Bar" | tr -d '\t' | dmenu -i -p "Actions") @@ -60,8 +63,11 @@ case $action in 'Search github') github;; 'Search godoc') godoc;; 'Search ddg') ddg;; + 'Open page') pages pager "$(printf "1\n2\n3\n" | dmenu -p 'page')";; 'Command') cmd;; 'Command to clipboard') cmd_clip;; + 'Man') st -e man "$(printf "" | dmenu -p 'man')";; + 'Go page') num=$(go_page); pages pager $num;; esac } @@ -164,6 +170,12 @@ goinfo() { result=$(go doc "$search"); notify-send -u low -t 0 "Go documentation" "$result"; } +go_page() { + name=$(printf "1\n2\n3\n4" | dmenu -p "page name") + go doc "$(printf "" | dmenu -p 'go doc search')" > /tmp/pages-$name + printf "$name" +} + infowindow() { printf "$1" | enscript -p - | ps2pdf - | zathura - }