# To jest przykładowy plik konfiguracyjny. Powinieneś go skopiować do # swojego katalogu domowego jako .elmorc. Oczywiście najpierw # trzeba pozmieniać dane :) # # Puste wiersze oraz te zaczynające się od znaku '#' są ignorowane. # # 1. Ustawianie zmiennych # Zmienne ustawiamy przy pomocy słowa kluczowego set. Jednej zmiennej # można przypisać wiele wartości. Jeśli elmo będzie potrzebować # jednej, to spyta, którą wybrać. # UWAGA: Spacje muszą być ujęte w cudzysłowy. W przeciwnym przypadku # wygenerowany zostanie błąd składniowy. # # 2. Ustawianie klawiszy # Klawisze definiujemy prawie tak samo jak w mutt'cie. Literki, # cyferki i inne znaki, które można wpisać z klawiatury podajemy # normalnie. Wyjątkiem są znaki specjalne, które trzeba poprzedzić # backslashem (<, >, spacja, tabulacja, \, {, }, :, ', "). Znaki, # które wprowadzamy z controlem wpisujemy jako np. \Ca. Klawisze # specjalne wpisujemy: , , , , , , # , , , , , , # , , , , , ... Ostatnią możliwością # wprowadzania klawiszy jest podanie wartości ósemkowej jako trzech # cyfr poprzedzonych backslashem. # # 3. Hooki # Hooki pozwalają na wykonanie pewnej akcji za każdym razem, gdy inna # zostanie uruchomiona. Hooki są uruchamiane w tej samej kolejności, # więc: # hook fetch_get_mail fetch_del_mail # hook fetch_get_mail fetch_next # sprawi, że po ściągnięciu listu zostanie on najpierw usunięty, a # potem podświetlenie przesunie się do następnej pozycji. ###################################################################### # ZMIENNE ###################################################################### # Plik z książką adresową jest nadpisywany przy wyjściu z programu, # jeśli cokolwiek było mieszane z adresami. # # set addressbook ~/.addressbook # Zmienna charset określa używany przez nas zestaw znaków i jej # wartość jest używana do ustawienia Content-Type. W przypadku braku # ustawienia domyślnie przyjmowana jest wartość us-ascii. # # set charset iso-8859-2 # Jako sygnaturkę można podać nazwę pliku, w którym się znajduje, lub # nazwę programu, który wypisze sygnaturkę na standardowe wyjście. W # drugim przypadku należy poprzedzić nazwę programu znakiem |. # # set sigfile ~/.signature # set sigfile "|/usr/games/fortune" # Dodanie opcji sig_dashes sprawi, że sygnaturka zostanie dodatkowo # poprzedzona wierszem zawierającym dwa myślniki oraz spację: "-- ". # # set sig_dashes on # Edytor, w którym zamierzamy pisać listy. Ciąg musi zawierać # sekwencję %f, który zostanie podmieniony nazwą pliku do otworzenia. # Może również zawierać sekwencję %d, która zamieniona zostanie na # numer wiersza, do którego należy przejść. # # set editor 'emacsclient +%d %f' # set editro 'vim %f' # Mailbox to katalog, w którym znajdują się skrzynki w formacie # maildir lub mbox. Przy starcie elmo próbuje otworzyć inbox z # podanego katalogu (chyba, że zostanie podane pole start). # Domyślne wartości dla skrzynek to odpowiednio: inbox, sent, drafts, # inbox. Jeśli trash nie jest zdefiniowane, kasowane wiadomości # będą usuwane. W przeciwnym przypadku będą przenoszone do wskazanej # skrzynki. Uwaga! Skrzynka taka musi już być poprawnym maildirem # (to znaczy zawierać podkatalogi cur i new), żeby można było tam # przenosić listy. # Skrzynka powinna wyglądać mniej więcej tak: # ~/mail # +--> inbox # +--> cur # +--> new # +--> tmp # +--> sent # ... # # name -- nazwa skrzynki # root -- ścieżka # start -- którą skrzynkę otworzyć przy starcie (domyślnie: inbox) # inbox -- gdzie mają być ściągane listy # sent -- gdzie zachowywać wysłane listy (domyślnie: sent) # drafts -- gdzie zachowywać niewysłane listy (domyślnie: drafts) # outbox -- gdzie zachowywać listy do wysłania # trash -- dokąd przenosić kasowane listy (domyślnie: usuwać) # spam -- dokąd przenosić listy kasowane jako spam (domyślnie: # usuwać) # protect -- czy chronić skrzynkę przed spamem (domyślnie: nie) # # set mailbox { # name: 'moja skrzynka' # root: ~/mail # start: odebrane # sent: wyslane # drafts: szablony # outbox: nadawcza # trash: kosz # spam: spam # protect: yes # } # Aby filtr antyspamowy działał potrzebna jest jeszcze nazwa pliku, w # którym będzie można przechowywać bazę danych. # # set bayes_file ~/mail/.bayes_file # Zmienna relative_names określa, czy elmo ma wyświetlać nazwy # skrzynek obcięte o wartość zmiennej mail/root. Czyli np. inbox # zamiast /home/rzyj/mail/inbox. # # set relative_names on # Ta zmienna służy do definiowania konta smtp. Kont można definiować # wiele. Przed wysłaniem użytkownik ma możliwość zmienienia # domyślnego konta na jedno z pozostałych. Domyślnie używane jest to, # które zostało zdefiniowane jako ostatnie. # # name -- nazwa konta # server -- adres serwera # port -- opcjonalny numer portu (domyślnie 25) # my_name -- imię pojawiające się we From przed adresem email # email -- adres # username -- nazwa użytkownika, jeśli serwer wymaga uwierzytelnienia # password -- hasło do uwierzytelnienia # ssl -- ustaw na "yes", jeśli połączenie ma być szyfrowane # # set smtp_acc { # name: poczta.fm # server: poczta.fm # my_name: 'Jasio Morderca' # email: jasio@poczta.fm # } # Ta zmienna służy do definiowania konta pop3. # # name -- nazwa konta # server -- adres serwera # port -- opcjonalny numer portu (domyślnie 110) # username -- identyfikator użytkownika (login) # password -- hasło # limit -- maksymalny rozmiar skrzynki w bajtach (albo kilo-, # mega-, jeśli doda się K, M); tuż przed rozłączeniem # Elmo usuwa pobrane już listy (od najstarszego) aż do # momentu kiedy całkowity rozmiar skrzynki nie przekracza # limitu # count_max -- działa podobnie jak limit, ale określa maksymalną ilość # listów na serwerze # use_apop -- wymusza korzystanie z metody autoryzacji APOP. # Niestety niektóre serwery (np. poczta.fm) pomimo # oferowania tej możliwości autoryzacji (dużo # bezpieczniejszej od standardowej) wcale jej nie # obsługują odpowiadając komunikatem "authorization # failed". Dlatego też domyślną wartością jest no. # ssl -- ustaw na "yes", jeśli połączenie ma być szyfrowane # # set pop_acc { # name: onet # server: pop3.poczta.onet.pl # username: jasio@op.pl # password: malgosia # limit: 1MB # count_max: 10 # } # # set pop_acc { # name: poczta.fm # server: poczta.fm # username: jasio # password: malgosia # limit: 300K # count_max: 0 # } # Zmienna pop_dir powinna zawierać nazwę katalogu, w którym # przechowywane będą informacje na temat ściągniętej już poczty. # Katalog ten musi już istnieć. # # set pop_info_dir ~/mail/.pop # Istnieje kilka zmiennych definiujących format wyświetlania danych # (tzw format string). Jest to łańcuch znaków zawierający pewne # sekwencje kontrolne. Sekwencja składa się ze znaku %, modyfikatorów # i litery określających daną, którą ma zostać zastąpiona. # Modyfikator to liczba określająca maksymalną długość podstawianego # tekstu. Jeśli poprzedzona jest zerem, to łańcuch zostanie # uzupełniony spacjami do żądanej długości. Poprzedzający zero dywiz # sprawi, że tekst będzie wyrównany do prawej strony. # # Oto sekwencje kontrolne w formatach związanych z listami: # # %% -- znak % # %f -- imię i nazwisko / pseudo autora listu (np. "Jasio Kowalski") # %F -- to samo co powyżej, ale z adresem email # (np. "Jasio Kowalski ") # %i -- inicjały autora listu (np. JK) # %t -- imię i nazwisko / pseudo adresata (np. "Małgosia Leszcz") # %T -- to samo co powyżej, ale z adresem email # (np. "Małgosia Leszcz ") # %d -- data listu # %D -- data w skróconej formie (np. maj 7) # %s -- temat listu # %S -- rozmiar (np. 3.5K) # %$ -- flagi listu # %? -- wskaźnik, czy list ma załączniki # %# -- wskaźnik spamu # # A oto związane z listami zmienne określające format wraz z # domyślnymi wartościami. # line_format i sent_format określają sposób prezentacji wiadomości w # głównym oknie programu. sent_format jest wykorzystywany w # skrzynkach zawierających wiadomości napisane przez użytkownika # (t.j. sent i drafts). fetch_format określa sposób prezentacji listy # wiadomości znajdujących się na serwerze pop3 # # set line_format "%?%$%# %D %016f (%-06S) " # set sent_format "%?%$ %D %016t (%-06S) " # set win_fetch { # fetch_fmt "%?%$ %D %016f (%-06S) %s" # } # Zmienne postaci *_wrote służą do określenia tekstu pojawiającego się # przed cytowaną wiadomością. # # set male_wrote "On %d, %f wrote:" # set female_wrote "On %d, %f wrote:" # set o_male_wrote "On %d, %f wrote:" # set o_female_wrote "On %d, %f wrote:" # Zmienna indent_string definiuje ciąg znaków, którym zostanie # poprzedzony każdy wiersz cytowanego listu. # # set indent_string "> " # A oto sekwencje kontrolne w formacie książki adresowej: # # %% -- znak % # %n -- imię i nazwisko / pseudo (np. "Jaś (Kiler) Kowalski") # %e -- adres email (np. "jasio.killer@poczta.onet.pl") # %o -- 'o' jeśli adres jest oficjalny, ' ' w p.p. # %f -- 'f' jeśli adres jest obcy, ' ' w p.p. # %s -- 'M' dla płci męskiej, 'F' dla żeńskiej i '?' dla innych # # set abook_format "%s %020n %e" # A oto sekwencje kontrolne w formacie okna pomocy: # # %% -- znak % # %k -- klawisz # %f -- nazwa funkcji # %d -- opis funkcji # # set win_help { # help_fmt "%012k %030f %d" # } # Sekwencje kontrolne w formacie okna wyboru skrzynki: # # %% -- znak % # %n -- nazwa skrzynki # %t -- ogólna liczba wiadomości w skrzynce # %u -- liczba wiadomości jeszcze nie przeczytanych # # set win_boxes { # box_fmt: " %010n (%u/%t)" # } # Sekwencje używane w oknach, w których wyświetlane sa załączniki: # # %% -- znak % # %f -- nazwa pliku # %t -- typ załącznika # %s -- rozmiar załącznika # %c -- zestaw znaków (lub puste) # %C -- to samo co ", %c" jeśli %c jest niepuste # %e -- kodowanie załącznika # %E -- to samo co ", %e" jeśli %e jest niepuste # # set win_attach { # attach_fmt: "%020f (%-06s) [%t%C%E]" # } # set win_sender { # sender_fmt: "%020f (%-06s) [%t%C%E]" # } ###################################################################### # INTERFEJS ###################################################################### # W elmo można zmienić niemalże każdy aspekt wyglądu programu. # Zachęcamy użytkowników, aby nie umieszczali tego typu zmian w swoim # pliku konfiguracyjnym. Lepiej jest wszystkie polecenia zmieniające # wygląd umieścić w osobnym pliku i włączyć go przy pomocy # odpowiedniej dyrektywy: # # include ~/mail/.plik-z-tematem # # Plik taki można nam przysłać, a my umieścimy go w repozytorium i # będziemy go dodawać do kolejnych dystrybucji elmo. # OGÓLNE ZASADY # ------------- # # Okna dzielą się na te, których rozmiaru i pozycji nie można zmieniać # (wiersz poleceń, pasek statusu oraz górna belka) oraz na pozostałe. # Rozmiar i pozycję okna definiuje się przypisując do pól width, # height, top i left odpowiednie wartości. # W przypadku szerokości i wysokości - do niedodatnich wartości # dodawana jest całkowita szerokość / wysokość ekranu (w ten sposób # można uzyskać okno o szerokości ekranu, albo ciut mniejsze, bez # względu na ilość kolum / wierszy terminala). W przypadku pozycji # (top, left) odpowiednia wartość jest dodawana do ujemnych wartości # tych pól. Lewy górny róg ekranu ma współrzędne (left = 0, top = 0). # # Okna mają również konfigurowalne kolory. Aby zmienić kolor jakiegoś # elementu okna (np. foo) należy przypisać wartości kolorów do pól # foo_fg i foo_bg, czyli odpowiednio: kolor obrazu i tła. Dostępnych # jest 15 kolorów, z czego tylko 8 może być użytych jako kolor tła. # Oto te kolory (gwiazdką zaznaczyłem te 8 szczęśliwych): # grey, black(*), rose, red(*), lime, green(*), yellow, orange(*), # blue(*), violet, magenta(*), lightblue, cyan(*), white, # lightgrey(*) # Żeby więc np. mieć czarne komunikaty błędów na czerwonym tle należy # to dodać do swojego pliku .elmorc: # set win_echo { # error_fg: black # error_bg: red # } # RAMKI # ----- # # Ramki są rysowane na oknie, które jest na samiuteńkim spodzie. # Wszystkie pozostałe okna są rysowane na oknie z ramkami. Jeśli # gdzieś popełnimy błąd w rozmiarze jakiegoś okna, to ramki mogą się # nie pojawić ponieważ zostaną przez to okno zakryte. # # Można ustawiać kolor ramek i wypełnień oraz definiować obszary # wypełnienia i obszary wypełnione określonym elementem ramki. # Obszary te określone są czterema współrzędnymi, które obowiązują te # same zasady co przy definiowaniu rozmiarów okien. # # Jeśli ekran nie obsługuje znaków ramek i pojawiają się krzaki, # należy ustawić pole no_frames na yes - spowoduje to narysowanie # ramek przy pomocy znaków ascii. # # Poniżej domyślne wartości: # set win_frames { # frame_fg: blue # frame_bg: black # fill_fg : blue # fill_bg : black # no_frames: no # fill: "(25 0 25 0)" # f_horiz: "(0 21 24 21) (0 -8 24 -8)" # f_vert: "(25 1 25 -1)" # f_left: "(25 21 25 21) (25 -8 25 -8)" # f_right: "" # f_up: "" # f_down: "" # f_cross: "" # } # WIERSZ POLECEŃ # -------------- # # W wierszu poleceń można jedynie zmienić kolory tekstu i komuniaktów # o błędach. # set win_echo { # text_fg : lightgrey # text_bg : black # error_fg: red # error_bg: black # } # PASEK STATUSU # ------------- # # W pasku statusu można tylko zmienić kolor paska i kolor nawiasów # okalających nazwę aktualnego okna. # set win_status { # text_fg : lightgrey # text_bg : blue # paren_fg: lightblue # paren_bg: blue # } # GÓRNA BELKA # ----------- # # Można tylko zmienić kolor okna. # set win_topbar { # text_fg: lime # text_bg: blue # } # ZEGAREK # ------- # # Oprócz rozmiaru i pozycji można również zmienić kolor okna i format # zegarka (patrz man strftime). # set win_clock { # height: 7 # width: 25 # top: -9 # left: 0 # text_fg: blue # text_bg: black # clock_fmt: " %H:%M %a, %e %b " # } # FOLDER # ------ # # W głównym oknie programu można zmienić rozmiar, pozycję, kolory i # czy chcemy miec nagłówek. # set win_folder { # height: -4 # width: -26 # top: 2 # left: 26 # label: yes # text_fg: ligthgrey # text_bg: black # tree_fg: red # tree_bg: black # tree_bar_fg: red # tree_bar_bg: cyan # } # WYBÓR SKRZYNKI # -------------- # # set win_boxes { # height: 20 # width: 25 # top: 2 # left: 0 # label: yes # text_fg: lightgrey # text_bg: black # root_fg: white # root_bg: black # tree_fg: red # tree_bg: black # tree_bar_fg: red # tree_bar_bg: cyan # box_fmt: " %010n (%u/%t)" # } # LIST # ---- # # set win_mail { # height: -3 # width: 0 # top: 1 # left: 0 # label: no # text_fg: lightgrey # text_bg: black # signature_fg: cyan # signature_bg: black # quote_fg: green # quote_bg: black # to_fg: cyan # to_bg: black # from_fg: cyan # from_bg: black # subject_fg: cyan # subject_bg: black # cc_fg: cyan # cc_bg: black # mua_fg: cyan # mua_bg: black # date_fg: cyan # date_bg: black # replyto_fg: cyan # replyto_bg: black # sigok_fg: cyan # sigok_bg: black # sigwarn_fg: cyan # sigwarn_bg: black # sigfail_fg: cyan # sigfail_bg: black # } # ŚCIAGANIE POCZTY # ---------------- # # set win_fetch { # height: -4 # width: -26 # top: 2 # left: 26 # label: yes # text_fg: lightgrey # text_bg: black # fetch_fmt: "%?%$ %D %016f (%-06S) %s" # } # ZAŁĄCZNIKI # ---------- # # set win_attach { # height: 8 # width: 0 # top: -10 # left: 0 # label: yes # text_fg: lightgrey # text_bg: black # attach_fmt: "%020f (%-06s) [%t%C%E]" # } # POMOC # ----- # # set win_help { # height: -4 # width: 0 # top: 2 # left: 0 # label: yes # text_fg: lightgrey # text_bg: black # help_fmt: "%012k %030f %d" # } # WYSYŁANIE # --------- # # set win_sender { # height: -12 # width: 0 # top: 10 # left: 0 # label: yes # text_fg: lightgrey # text_bg: black # info_fg: lightgrey # info_bg: black # sender_fmt: "%020f (%-06s) [%t%C%E]" # } # NAGŁÓWKI # -------- # # Jedna zmienna win_label określa wygląd wszystkich nagłówków okien. # set win_label { # focus_fg: white # focus_bg: blue # nofocus_fg: lightgrey # nofocus_bg: blue # } # PASEK WYBORU # ------------ # # set win_bar { # text_fg: lightgrey # text_bg: cyan # } ###################################################################### # TYPY MIME ###################################################################### # Te ustawienia wykorzystywane są w 2 celach. Po pierwsze po to, aby # elmo mogło zdecydować jaki typ ma wysyłany plik, a po drugie po to, # aby elmo wiedziało jaki program należy uruchomić, aby dany załącznik # otworzyć. Spójrzmy na przykład: # # mime image/gif "\.gif$" # # Powyższa deklaracja spowoduje, że wszystkie pliki pasujące do # wyrażenia regularnego "\.gif$" (czyli mające rozszerzenie .gif) będą # wysyłane jako image/gif. # # handler image/* "fbi %f" # # Powyższym informujemy elmo, że chcemy użyć programu fbi do # otwierania obrazków. # # Inne przykłady: # # mime application/pdf "\.pdf$" # handler text/html "links -no-connect -force-html file://%f" ###################################################################### # REGUŁKI ###################################################################### # Regułki służą do rozdzielania listów do skrzynek na podstawie # wartości różnych nagłówków listu. Przykład: # # rule elmo-users { # Jesli SUBJECT zawiera '[elmo-users]' to umiesc list w elmo. # } # # To nie żart. Regułki można pisać w języku polskim. Ale najpierw # zasady: regułka musi zawierać nazwę dopasowywanego nagłówka # kapitalikami, następnie ujęty w pojedyncze lub podwójne cudzysłowy # napis, a na końcu nazwę skrzynki zakończoną kropką (lub średnikiem). # Wszystkie te elementy mogą być rozdzielone dowolną ilością innych # słów. Jeśli napis będzie ujęty w pojedyncze cudzysłowy - będzie # poszukiwany explicite w nagłówku. Jeśli zostanie ujęty w cudzysłowy # podwójne - będzie potraktowany jako wyrażenie regularne, do którego # powinien się nagłówek dopasować. # # Pozostaje już tylko wyjaśnić jak uzyskać operatory logiczne: lub # oraz i. Koniunkcję wyrażamy pisząc kilka kolejnych ograniczeń, np # tak: # # rule elmo-users { # Jesli SUBJECT zawiera '[elmo-users]' # a TO pasuje do "rzyj(ontko)?" to przenies do elmo. # } # # Alternatywę wyrażamy pisząc kilka reguł dla tej samej skrzynki, np # # rule elmo-users { # Jesli SUBJECT zawiera '[elmo-users]' to przenies do elmo; # podobnie jesli FROM zawiera 'sourceforge.net' to dawaj do elmo. # } # # Wiadomości są dopasowywane kolejno do wszystkich regułek. Jeśli nie # znajdą żadnej pasującej - umieszczane są w inbox. # # Nagłówki, z których można korzystać w regułkach to: # SUBJECT - temat listu # FROM - nadawca # TO - odbiorca # CC - odbiorca kopii # TOCC - odbiorca lub odiorca kopii ###################################################################### # KLAWISZE ###################################################################### # Pomocne. # # key mail r sender_open_reply # key mail R sender_open_reply_all # key mail f sender_open_fwd ###################################################################### # HOOKI ###################################################################### # Tych używam. # # hook folder_toggle_flag folder_bar_next # # hook fetch_del_mail fetch_next # hook fetch_get_mail fetch_next # # hook mybox_create_box box_selection_re_read # # hook sender_go mailreader_close