commit 794954616612e4a42531f8a8cbadafd346d712de
parent 173c58bffc78e64227b0976a66d766642fea3cb0
Author: Miles Alan <m@milesalan.com>
Date: Sun, 11 Aug 2019 23:07:25 -0500
Improve externalpipe_buffer.sh script to have more consistent results
Diffstat:
2 files changed, 26 insertions(+), 18 deletions(-)
diff --git a/st.suckless.org/patches/externalpipe-signal/externalpipe_buffer.sh b/st.suckless.org/patches/externalpipe-signal/externalpipe_buffer.sh
@@ -39,21 +39,19 @@ function write_to_buffer() {
function dedupe_and_sort() {
sort | uniq | grep . | awk '{ print length, $0 }' | sort -n -s | cut -d" " -f2-
}
-function trigger_sigusr1_and_read_buffer() {
- if [ $BUFFER_FILE_FIFO == "true" ]
+function trigger_sigusr1() {
+ rm -f $BUFFER_FILE
+ if [ $BUFFER_FILE_FIFO == true ]
then
test ! -p $BUFFER_FILE && rm -f $BUFFER_FILE && mkfifo $BUFFER_FILE
- pkill -USR1 surf
- pkill -USR1 st
+ pkill -USR1 surf &
+ pkill -USR1 st &
else
test ! -f $BUFFER_FILE && rm -f $BUFFER_FILE && touch $BUFFER_FILE
pkill -USR1 surf
pkill -USR1 st
echo $BUFFER_FILE_R_DELAY | xargs -IN echo N/1000 | bc -l | xargs sleep
fi
-
- cat $BUFFER_FILE
- rm $BUFFER_FILE
}
function dm() { dmenu "$@" -l 10 -i -w $(xdotool getactivewindow); }
@@ -79,7 +77,13 @@ function surf_strings_read() {
dedupe_and_sort |
write_to_buffer
}
-function dmenu_copy() { trigger_sigusr1_and_read_buffer | dm -p 'Screen Copy' | sed 's/↵/\n/g' | xclip -i; }
-function dmenu_type() { trigger_sigusr1_and_read_buffer | dm -p 'Screen Type' | sed 's/↵/\n/g' | xargs -IC xdotool type --delay 0 "C"; }
+function dmenu_copy() {
+ trigger_sigusr1
+ cat $BUFFER_FILE | dm -p 'Screen Copy' | sed 's/↵/\n/g' | xclip -i
+}
+function dmenu_type() {
+ trigger_sigusr1
+ cat $BUFFER_FILE | dm -p 'Screen Type' | sed 's/↵/\n/g' | xargs -IC xdotool type --delay 0 "C"
+}
$1
diff --git a/surf.suckless.org/patches/externalpipe-signal/externalpipe_buffer.sh b/surf.suckless.org/patches/externalpipe-signal/externalpipe_buffer.sh
@@ -39,21 +39,19 @@ function write_to_buffer() {
function dedupe_and_sort() {
sort | uniq | grep . | awk '{ print length, $0 }' | sort -n -s | cut -d" " -f2-
}
-function trigger_sigusr1_and_read_buffer() {
- if [ $BUFFER_FILE_FIFO == "true" ]
+function trigger_sigusr1() {
+ rm -f $BUFFER_FILE
+ if [ $BUFFER_FILE_FIFO == true ]
then
test ! -p $BUFFER_FILE && rm -f $BUFFER_FILE && mkfifo $BUFFER_FILE
- pkill -USR1 surf
- pkill -USR1 st
+ pkill -USR1 surf &
+ pkill -USR1 st &
else
test ! -f $BUFFER_FILE && rm -f $BUFFER_FILE && touch $BUFFER_FILE
pkill -USR1 surf
pkill -USR1 st
echo $BUFFER_FILE_R_DELAY | xargs -IN echo N/1000 | bc -l | xargs sleep
fi
-
- cat $BUFFER_FILE
- rm $BUFFER_FILE
}
function dm() { dmenu "$@" -l 10 -i -w $(xdotool getactivewindow); }
@@ -79,7 +77,13 @@ function surf_strings_read() {
dedupe_and_sort |
write_to_buffer
}
-function dmenu_copy() { trigger_sigusr1_and_read_buffer | dm -p 'Screen Copy' | sed 's/↵/\n/g' | xclip -i; }
-function dmenu_type() { trigger_sigusr1_and_read_buffer | dm -p 'Screen Type' | sed 's/↵/\n/g' | xargs -IC xdotool type --delay 0 "C"; }
+function dmenu_copy() {
+ trigger_sigusr1
+ cat $BUFFER_FILE | dm -p 'Screen Copy' | sed 's/↵/\n/g' | xclip -i
+}
+function dmenu_type() {
+ trigger_sigusr1
+ cat $BUFFER_FILE | dm -p 'Screen Type' | sed 's/↵/\n/g' | xargs -IC xdotool type --delay 0 "C"
+}
$1