beepop - popups com o texto digitado
Script inicialmente feito pelo z3bra, com algumas modificações minhas.
Ele deve ser executado preferencialmente com .xinitrc, no seu servidor Xorg.
Ele fica em background lendo texto que é enviado ao seu FIFO, se criar um symlink para o beepop com o nome de popup, você pode usar assim:
$ popup teste 1 2 3
Se não quiser pode só dar echo no FIFO.
$ echo teste 1 2 3 > "$XDG_RUNTIME_DIR"/beepop.fifo
Note que XDG_RUNTIME_DIR/beepop.fifo é o caminho padrão, edite o script para mudar.
Ele deve ser executado preferencialmente com .xinitrc, no seu servidor Xorg.
Ele fica em background lendo texto que é enviado ao seu FIFO, se criar um symlink para o beepop com o nome de popup, você pode usar assim:
$ popup teste 1 2 3
Se não quiser pode só dar echo no FIFO.
$ echo teste 1 2 3 > "$XDG_RUNTIME_DIR"/beepop.fifo
Note que XDG_RUNTIME_DIR/beepop.fifo é o caminho padrão, edite o script para mudar.
Descrição
Script inicialmente feito pelo z3bra, com algumas modificações minhas.
Ele deve ser executado preferencialmente com .xinitrc, no seu servidor Xorg.
Ele fica em background lendo texto que é enviado ao seu FIFO, se criar um symlink para o beepop com o nome de popup, você pode usar assim:
$ popup teste 1 2 3
Se não quiser pode só dar echo no FIFO.
$ echo teste 1 2 3 > "$XDG_RUNTIME_DIR"/beepop.fifo
Note que XDG_RUNTIME_DIR/beepop.fifo é o caminho padrão, edite o script para mudar.
Ele deve ser executado preferencialmente com .xinitrc, no seu servidor Xorg.
Ele fica em background lendo texto que é enviado ao seu FIFO, se criar um symlink para o beepop com o nome de popup, você pode usar assim:
$ popup teste 1 2 3
Se não quiser pode só dar echo no FIFO.
$ echo teste 1 2 3 > "$XDG_RUNTIME_DIR"/beepop.fifo
Note que XDG_RUNTIME_DIR/beepop.fifo é o caminho padrão, edite o script para mudar.
#!/bin/sh
#
# depends: lemonbar, wattr, txtw, printf, awk and common sense
FIFO=$XDG_RUNTIME_DIR/beepop.fifo
SLEEP=1
CHAR="$(/usr/bin/printf '\uE054')"
FONT="Misc Termsynu:size=9"
BG="#ff000000"
FG="#ffffffff"
case "$(basename "$0")" in
beepop)
test -p "$FIFO" || mkfifo "$FIFO"
tail -f "$FIFO" | while read -r LINE; do
# These are calculations to create dynamic popups
# really crude
# TODO: make it better
base=50
x=$(wattr w "$(lsw -r)")
echo $(( $(txtw -s 11 -f 'termsynu' "$LINE") + base )) > "$XDG_RUNTIME_DIR"/.popup
barw=$(awk '{for (i=1;i<=NF;++i) total += $i; print total}' < "$XDG_RUNTIME_DIR"/.popup)
bw=$(( barw + base ))
offx=$(( x - bw - 24 ))
(echo "%{c}$LINE %{F${HL}}$CHAR"; sleep "$SLEEP") | lemonbar -d -g "${bw}x24+${offx}+24" -f "$FONT" -B"$BG" -F"$FG" &
done
;;
popup)
echo "$*" > "$FIFO"
;;
esac