diff options
author | Andrew Cady <d@jerkface.net> | 2021-09-14 12:46:17 -0400 |
---|---|---|
committer | Andrew Cady <d@jerkface.net> | 2021-09-14 12:46:17 -0400 |
commit | 88417264e401a75ab5566d6ae317ac424bf4a5cf (patch) | |
tree | 6afe90e66f5204841a8d15d442118115bcb0eadf /dot/local/bin/cutbuffer | |
parent | 6d505fc790ee719cbf7bac03121b006eb74dcb05 (diff) |
cutbuffer: add menu; key bound to shift-PrtSc
Diffstat (limited to 'dot/local/bin/cutbuffer')
-rwxr-xr-x[-rw-r--r--] | dot/local/bin/cutbuffer | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/dot/local/bin/cutbuffer b/dot/local/bin/cutbuffer index 423d974..6921b02 100644..100755 --- a/dot/local/bin/cutbuffer +++ b/dot/local/bin/cutbuffer | |||
@@ -1,9 +1,11 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/bash |
2 | dest_basename=cutbuffer_grab | 2 | dest_basename=cutbuffer_grab |
3 | dest_extension=txt | 3 | dest_extension=txt |
4 | date_format=+%F_%H%M%S | 4 | date_format=+%F_%H%M%S |
5 | 5 | ||
6 | destdir=$HOME/$dest_basename | 6 | destdir=$HOME/$dest_basename |
7 | nameglob=$dest_basename.*.$dest_extension | ||
8 | cutbuffer_count=8 | ||
7 | 9 | ||
8 | cutbuffer_push() | 10 | cutbuffer_push() |
9 | { | 11 | { |
@@ -14,7 +16,6 @@ cutbuffer_push() | |||
14 | 16 | ||
15 | cutbuffer_pop() | 17 | cutbuffer_pop() |
16 | { | 18 | { |
17 | nameglob=$dest_basename.*.$dest_extension | ||
18 | f=$(find . -maxdepth 1 -type f -name "$nameglob" -print0 | sort -z -V -r | head -z -n 1 | xargs -0) | 19 | f=$(find . -maxdepth 1 -type f -name "$nameglob" -print0 | sort -z -V -r | head -z -n 1 | xargs -0) |
19 | 20 | ||
20 | xcb -s 0 < "$f" | 21 | xcb -s 0 < "$f" |
@@ -24,11 +25,32 @@ cutbuffer_pop() | |||
24 | mv "$f" -t .popped | 25 | mv "$f" -t .popped |
25 | } | 26 | } |
26 | 27 | ||
28 | cutbuffer_menu() | ||
29 | { | ||
30 | find_any | xargs -0 -x bash -c 'populate "$@"' | ||
31 | xcb -l v | ||
32 | } | ||
33 | |||
34 | find_any() | ||
35 | { | ||
36 | find . .popped -maxdepth 1 -type f -name "$nameglob" -printf "%f\t%h/%f\0" | sort -k1 -z -V -r | head -z -n "$cutbuffer_count" | perl -0pe 's/.*?\t//' | ||
37 | } | ||
38 | |||
39 | populate() | ||
40 | { | ||
41 | i=0 | ||
42 | for f | ||
43 | do | ||
44 | xcb -s $i < "$f" | ||
45 | let ++i | ||
46 | done | ||
47 | } | ||
48 | export -f populate | ||
49 | |||
27 | set -e | 50 | set -e |
28 | mkdir -p "$destdir" | 51 | mkdir -p "$destdir" |
29 | cd "$destdir" | 52 | cd "$destdir" |
30 | case "$*" in | 53 | case "$*" in |
31 | pop) cutbuffer_pop ;; | 54 | push|pop|menu) cutbuffer_$1 ;; |
32 | push) cutbuffer_push ;; | ||
33 | esac | 55 | esac |
34 | 56 | ||