Add quick-paste-sniplets
Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
parent
12409a1616
commit
f8f3d97c44
2 changed files with 57 additions and 0 deletions
1
.config/sniplet/meme/compiles_works
Normal file
1
.config/sniplet/meme/compiles_works
Normal file
|
@ -0,0 +1 @@
|
||||||
|
![](https://memegenerator.net/img/instances/84336359/if-it-compiles-it-must-work.jpg)
|
56
bin/sniplet
Executable file
56
bin/sniplet
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
sniplet_dir="${HOME}/.config/sniplet"
|
||||||
|
tmpdir=$(mktemp -d)
|
||||||
|
|
||||||
|
function cleanup() {
|
||||||
|
rm -rf ${tmpdir}
|
||||||
|
}
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
# In case the directory does not exist create it
|
||||||
|
[ -d "${sniplet_dir}" ] || {
|
||||||
|
mkdir "${sniplet_dir}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Find sniplet files
|
||||||
|
names=$(find "${sniplet_dir}" -type f | sed "s|${sniplet_dir}||" | sort)
|
||||||
|
|
||||||
|
# Let the user select one of them
|
||||||
|
name=$(
|
||||||
|
zenity \
|
||||||
|
--list \
|
||||||
|
--title="Sniplet" \
|
||||||
|
--width=275 \
|
||||||
|
--height=400 \
|
||||||
|
--column=Sniplet \
|
||||||
|
${names}
|
||||||
|
)
|
||||||
|
sniplet="${sniplet_dir}/${name}"
|
||||||
|
|
||||||
|
# Check presence of the sniplet
|
||||||
|
[ -f "${sniplet}" ] || {
|
||||||
|
zenity --error --text="Sniplet has gone away"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Store clipboard away
|
||||||
|
xsel -b -o >"${tmpdir}/b"
|
||||||
|
xsel -p -o >"${tmpdir}/p"
|
||||||
|
|
||||||
|
# Render the sniplet using korvike for templating
|
||||||
|
korvike -i "${sniplet}" -o "${tmpdir}/s"
|
||||||
|
|
||||||
|
# Set clipboard with sniplet
|
||||||
|
xsel -b -i <"${tmpdir}/s"
|
||||||
|
xsel -p -i <"${tmpdir}/s"
|
||||||
|
|
||||||
|
# Do the paste magic
|
||||||
|
sleep 0.3
|
||||||
|
xdotool key shift+Insert
|
||||||
|
sleep 0.5
|
||||||
|
|
||||||
|
# Restore clipboard
|
||||||
|
xsel -b -i <"${tmpdir}/b"
|
||||||
|
xsel -p -i <"${tmpdir}/p"
|
Loading…
Reference in a new issue