40 lines
894 B
Bash
Executable File
40 lines
894 B
Bash
Executable File
#!/bin/sh
|
|
# Description: dmenu/rofi wrapper around sxbm
|
|
# Dependency: sxbm, dmenu/rofi, xclip (optional)
|
|
#
|
|
# Author: NRK
|
|
## Copyright 2021 NRK
|
|
## Licensed under GPL v3. See LICENSE for more details.
|
|
|
|
# Change "dmenu" to "rofi -dmenu" if you wish to use rofi
|
|
# NOTE: i do not use rofi, and haven't tested if it works or not
|
|
prompt="dmenu -i -l 24"
|
|
# Change this if you have renamed sxbm to something else
|
|
sxbm="sxbm"
|
|
|
|
bm_open() {
|
|
link_num="$("$sxbm" ls -c "$@" | $prompt | cut -d ")" -f 1)"
|
|
[ -n "$link_num" ] && "$sxbm" open "$link_num"
|
|
}
|
|
|
|
bm_yank() {
|
|
link="$("$sxbm" ls -c "$@" | $prompt | cut -d " " -f 2)"
|
|
[ -n "$link" ] && echo "$link" | xclip -in -selection clipboard
|
|
}
|
|
|
|
bm_add() {
|
|
"$sxbm" add "$@" 2>&1 | xargs -I{} $prompt -p {}
|
|
}
|
|
|
|
case "$1" in
|
|
"-a"|"--add")
|
|
shift && bm_add "$@"
|
|
;;
|
|
"-y"|"--yank")
|
|
shift && bm_yank "$@"
|
|
;;
|
|
*)
|
|
bm_open "$@"
|
|
;;
|
|
esac
|