Как настроить stderr для отправки уведомления? - PullRequest
0 голосов
/ 06 мая 2020

Я запускаю программы, используя сочетания клавиш, которые сами могут вызывать dmenu и делать что-то в фоновом режиме. Я хотел бы передать stderr на notify-send и получить уведомление, если что-то не удалось.

Эти программы не вызываются из эмулятора терминала, в основном sxhkd в сочетании с xdg-open альтернатива jaro.

Возьмите этот пример, например:

$ ls /root
"/root": Permission denied (os error 13)
$ ls /root 2> /dev/null
$

Если бы у меня была запись sxhkd

super + Return
  ls /root

Как мне сделать так, чтобы он выводил stderr в уведомление?

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Создайте сценарий notify-pipe:

#!/usr/bin/env sh

read notification
notify-send "Command Failed" "$notification" "$@"

И соедините stderr с stdout:

$ ls /root  2>&1| notify-pipe

Возможное улучшение: bash получить команду, которая использовался перед символом вертикальной черты , чтобы получить команду в сводке уведомлений.

Спасибо за помощь, Рон.

0 голосов
/ 06 мая 2020

notify-send не будет работать с piping

Однако вы можете попробовать: sudo pip install notify-pipe

Который принимает piping

См. Здесь : https://github.com/ron7/notify-pipe

И вы можете перенаправить stderr на stdout и отправить его в notify-pipe

command 2>&1|notify-pipe
...