Biont/sway-launcher-desktop

Using brotab as a provider

tijptjik opened this issue · 3 comments

In an attempt to use brotab as a provider, I've added the following to providers.conf

[brotab]
list_cmd=/usr/local/bin/bt list | awk -v FS="\t" -v OFS="\034" '{print $1,"brotab",$2,$3}'
preview_cmd=echo -e '{2}'
launch_cmd=/usr/local/bin/bt activate '{1}'
purge_cmd=test -f '{1}' || exit 43

however, it results it the following error message upon launching sway-launcher-desktop

image

while directly running the list_cmd in the shell seems to produce desirable results

c.1153042208.1153042209brotabNew Issue · Biont/sway-launcher-desktophttps://github.com/Biont/sway-launcher-desktop/issues/new
c.1153042208.1153042211brotabbalta2ar/brotab: Control your browser's tabs from the command linehttps://github.com/balta2ar/brotab

What could be wrong with the list input, or would you have further suggestions on how to troubleshoot this issue?

Biont commented

I'm willing to bet it's tripping over the double quotes in your list_cmd. The string handling isn't that sophisticated in these areas, sorry.

One idea would be to place the actual code in a separate shell script and reference that in your provider.

Thank you! That did the trick. For reference, providers.conf

[brotab]
list_cmd=/home/io/.config/sway-launcher-desktop/brotab.sh
preview_cmd=/usr/local/bin/bt list | grep '{1}' | awk -F'\t' '{print $NF}'
launch_cmd=/usr/local/bin/bt activate '{1}'
purge_cmd=/usr/local/bin/bt list | grep '{1}' || exit 43

and brotab.sh

#!/usr/bin/env bash
/usr/local/bin/bt list | awk -v FS='\t' -v OFS='\34' '{print $1,"brotab","🦊 " $2,$3}'

Though the launched items end up in the cache / history file, so to keep the tab listing current the history either needs to be disabled, or ./sway-launcher-desktop.sh purge needs to be called before each invocation.