Alp dilinde yeni posta bildirimini nasıl özelleştirebilirim?


11

Birincil posta okuyucum olarak alp kullanıyorum. Günümün çoğunu terminalde veya Emacs'ta geçirirken, not-bin'i kullanarak yeni postalarla ilgili oldukça bildirim almak yine de iyi olur. Alpini yeni posta alındığında özel bir komut çalıştıracak şekilde yapılandırabilir miyim?

Yanıtlar:


7

Alpinde "NewMail FIFO Yolu" yapılandırma seçeneği vardır. Yardımdan alıntı:

Alpine'nin geçerli klasörde, INBOX'da veya herhangi bir açık Stayopen Klasöründe her yeni mesaj alındığında bir satırlık mesaj göndereceği bir FIFO özel dosyası (adlandırılmış yöneltme olarak da adlandırılır) oluşturmasını sağlayabilirsiniz. Her ikisi de aynı FIFO'ya yazan iki farklı Alpine karşı korumak için, Alpine sadece FIFO'yu oluşturacak ve zaten yoksa yazacaktır.

Bu nedenle, seçeneği '/tmp/alpine.fifo' olarak ayarladım ve FIFO'dan mesajları okumak ve 'notify-send'i çağırmak için basit bir yardımcı program yazdım:

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

#define FIFO_NAME "/tmp/alpine.fifo"

int main(void)
{   
    char s[512];
    char cmd[512];
    int num;
    int fd = open(FIFO_NAME, O_RDONLY);
    do {
        if ((num = read(fd, s, 300)) == -1)
            perror("read");
        else {
            s[num] = '\0';
            sprintf(cmd, "notify-send -t 0 'New mail:' '%s'", s);
            system(cmd);
        }
    } while (num > 0);

    return 0;
}

Alpine-notifier.c dosyasına kaydedin ve 'gcc alpine-notifier.c -o alpine-notifier' komutuyla derleyin. Alpin başladıktan sonra 'alpin-notifier'ı başlatın. Pop-up bildirimlerin keyfini çıkarın.


güzel çözüm :-)
echox

Muhteşem. Aslında aynı şeyi yapmak için küçük bir kabuk senaryosu yazdım.
Steven D

1
@steven: Paylaşacak kadar kibar olursanız oy veririm. :-)
Malabarba

Boşver, ben de bir tane yazdım.
Malabarba

4

Güncelleme :
Önceki cevabımdan memnun kalmadım, bu yüzden senaryoyu çok geliştirdim ve bunun için bir github repo yaptım.

Şimdi alpine başladıktan sonra komut dosyasını başlatmak zorunda değilsiniz, komut dosyası sizin için her şeyi halleder. Betiğin çekirdeği çoğunlukla aynıdır (sadece biraz ayrıştırmayı geliştirdim):

#! /bin/bash
while read L; do
    n=$(($n + 1))  
    if [[ n -gt 3 ]]; then      
        name=`echo "$L"  | sed 's/  \+/\t/g;s/^\(+ \)\?\([^\t]*\)\t\([^\t]*\)[\t ].*/\2/'`
        subject=`echo "$L"  | sed 's/  \+/\t/g;s/^\([^\t]*\)\t\(Re: \?\)\?\([^\t]*\)[\t ].*/\3/'`
        box=`echo "$L"  | sed 's/  \+/\t/g;s/^\([^\t]*\)\t\([^\t]*\)[\t ]\([^\t]*\).*/\3/'`
        notify-send -t 10000 $iconcommand "Mail from $name" "$subject\n-\nIn your $box."
    fi
done < <(cat alpine.fifo)

Geri kalanı burada yayınlamak için biraz büyük, bu yüzden ilgilenen herkes bunu repoda alabilir .


1
Bruce, senaryoyu paylaştığın için teşekkürler! Şimdi FIFO'dan gelen mesajları kabukta açık tutarken okumayı ve işlemeyi biliyorum. Kendim için bir bildirim oluştururken
anlayamadım

@Linulin Cool. =) Ne yazık ki ayarlamak için kullandığım filtreler contentve namebazı durumlarda biraz buggy. = P
Malabarba

Kabuğun çok iyi kullanıldığını görmek harika. Github'da yayınladığınız için teşekkürler. Bravo!
civcivler

1

Gnubiff, posta bildirimi veya kbiff gibi özel bir posta bildirim aracı kullanamaz mısınız?


Benzer bir şey elde etmek için posta bildirimi kullanmak istiyorum, ancak posta bildirimi yeni posta komutunu özelleştirme hakkında herhangi bir belge bulamıyorum.
Jonathan Neufeld

1

Alpin "yeni posta bildirimi" ni özelleştirmek mümkün değildir.

Yapılandırma belgelerinde belirtilen herhangi bir seçenek yoktur .

Ayrıca Eduardo Chappa'nın posta listesinden bir alıntı :

Alpin'in yeni bir posta geldiğinde ekranı yanıp sönerek gnome terminalinde görsel bir uyarı verdiğini fark ettim. Uyarıyı özelleştirmenin herhangi bir yolu var mı, örneğin bir ses çalıyor mu?

[..]

Alpine, şimdi tahmin edebileceğiniz gibi, sadece bip sesi çıkaracaktır. Web Alpine'de yeni posta bildirimi için oynatılacak bir dosyayı (tarayıcıya) göndermek mümkündür. Unix, Mac veya Windows Alpine'de böyle bir özellik yoktur.

Seçenekleriniz şimdi:

Ve favorit posta istemcimin geliştiricisine alıntı yapmak için:

Tüm posta istemcileri berbat ...

:-)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.