From 56ae0f1bab1efeb3dc65eeef43d47a02835efc3d Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Tue, 11 Apr 2023 22:55:23 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Pass=20through=20stdin=20to=20cu?= =?UTF-8?q?stom=20typing=20tool=20(#19)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, stdin contents were consumed and then not passed through to the typing tool. With this commit, they are correctly passed to any custom tool's stdin. Fixes #19. --- CHANGELOG.md | 1 + README.md | 2 ++ bemoji | 7 +++++-- test/bemoji_cmds.bats | 5 +++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e8b0972..2786a06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Always download from newest emoji list url +- Pass selection to custom typing tools through stdin diff --git a/README.md b/README.md index f87eb72..4986da3 100644 --- a/README.md +++ b/README.md @@ -222,6 +222,8 @@ BEMOJI_CLIP_CMD="path/to/your/clipboard/tool" BEMOJI_TYPE_CMD="path/to/your/xdotool" ``` +The candidate list (in the case of picker tool) or the picked selection are passed to the tools through stdin. + This is pretty experimental and you'll have to see how well it works for you. The setting can not be changed through the commandline alone. diff --git a/bemoji b/bemoji index 1a7c35a..10ce980 100755 --- a/bemoji +++ b/bemoji @@ -165,11 +165,14 @@ _clipper() { # Set default typing uti _typer() { - totype=$(cat -) if [ -n "$BEMOJI_TYPE_CMD" ]; then # shellcheck disable=SC2068 ${BEMOJI_TYPE_CMD[@]} - elif [ -n "$WAYLAND_DISPLAY" ] && command -v wtype >/dev/null 2>&1; then + return + fi + + totype=$(cat -) + if [ -n "$WAYLAND_DISPLAY" ] && command -v wtype >/dev/null 2>&1; then wtype -s 30 "$totype" elif [ -n "$DISPLAY" ] && command -v xdotool >/dev/null 2>&1; then xdotool type --delay 30 "$totype" diff --git a/test/bemoji_cmds.bats b/test/bemoji_cmds.bats index 2b0a176..ced326c 100644 --- a/test/bemoji_cmds.bats +++ b/test/bemoji_cmds.bats @@ -54,6 +54,11 @@ setup() { typing result" } +@test "Passes selection to custom typer tool through stdin" { + BEMOJI_TYPE_CMD="cat -" run bemoji -t 3>&- + assert_output "❤️" +} + @test "Runs custom default command" { BEMOJI_DEFAULT_CMD="echo my custom command" run bemoji 3>&- assert_output "my custom command"