Abilitare le notifiche desktop OSD

Le notifiche OSD.

Sono felicemente un utente BSPWM, un window manager tiled, leggero e duttile. Ovviamente molto scarno e quindi privo by design di molti fronzoli ma che rimettiamo alla prima occasione. Qui potremmo riflettere sulla scelta di un WM scarno e privo di fronzoli per poi “perdere” molto tempo a rimetterli… immagino sia soprattutto per divertimento ma anche volersi ritagliare il proprio setup. Si beh insomma… divertimento da nerd! Veniamo a noi, tra i tanti “fronzoli” mancanti manca anche un bus per le notifiche; ad esempio quando vi arriva una email, quando il vostro player audio cambia brano, un messaggio chat… La soluzione che ho adottato è stato installare il pacchetto notify-osd:

    sudo pacman -S notify-osd

Bspwm non prevede una vero sistema di autostart come ad esempio Gnome (~/.config/autostart) dove vengono creati tutti file service che fanno partire i programmi a inizio sessione. Con questo WM semplicemente andrete a modificare il vostro bspwmrc che nel mio caso sta qui:

    cd ~/.config/bspwm
    ls bspwmrc

Nel mio file rc ho predisposto una sezione iniziale dove invocare ciò che voglio a inizio sessione quindi anche il notify-osd oltre al resto.

    # -------------- AUTOSTART --------------------------
    sxhkd -c ~/.config/sxhkd/sxhkdrc &
    /usr/lib/notify-osd/notify-osd &
    setxkbmap it &
    sudo brightnessctl --device='smc::kbd_backlight' set 25
    /usr/bin/xrandr --output LVDS-2 --primary --mode 1440x900 --rotate normal --output DP-2 --mode 1920x1080 --rotate normal --left-of LVDS-2 --rate 60 &
    /usr/bin/nitrogen --set-zoom-fill --force-setter=xinerama --random $HOME/MEGAsync\ Downloads/walls &
    ~/bin/polybar.sh &
    ~/bin/compiz.sh 
    ~/bin/rmount.sh
    /usr/bin/megasync &
    /usr/bin/xscreensaver -no-splash &
    /usr/bin/telegram-desktop -autostart &
    /usr/bin/skypeforlinux &
    # ------------- END AUTOSTART -----------------------

Come vedete in riga 2 trovare notify-osd. Una volta avviato potete testarlo con questo comando come esempio:

    notify-send 'Ci sei. Notifica inviata.'

Per tutte le info ovviamente il man è sempre presente. Questa la notifica che ho utilizzato all’interno di neomutt cioè nel neomuttrc:

    set new_mail_command  = "notify-send 'Nuova Email' '%n new message, %u unread.' --icon='/usr/share/notify-osd/icons/hicolor/scalable/status/notification-message-email.svg' &"

PS. OSD sta per On Screen Display.