[[Vorlage(Archiviert)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Programme starten: Ein Programm starten] [:Editor: Einen Editor öffnen] [:Shell: Sich im Terminal zurecht finden] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/rss.png, 48, left)]] [http://www.codezen.org/canto-ng/ Canto] {en} ist ein leichtgewichtiger [:Feedreader:] für die Kommandozeile bzw. [:Terminal#Virtuelle-Konsole:Konsole]. Das Programm ist der Nachfolger von [:Archiv/NRSS:NRSS] und wurde wie dieses von [http://codezen.org/ Jack Miller] {en} geschrieben. Canto wurde mit [:Python:] erstellt und nutzt die freie Programmbibliothek [wikipedia:ncurses:]. Es steht unter der [http://www.gnu.org/licenses/gpl-2.0.html GPLv2]-Lizenz {en}. [[Bild(./canto1.png, 300, align=right)]] Canto verfügt über einen Funktionsumfang, der dem vieler grafischer Feedreader nicht nachsteht und ihn teilweise sogar übertrifft: Canto verwendet [github:kurtmckee/feedparser:feedparser] und unterstützt so u.a. [wikipedia:RSS_(Web-Feed):RSS] und [wikipedia:Atom_(Format):Atom]. Es ist [wikipedia:Utf8:UTF8]-fähig und erlaubt den Im- und Export aus und in [wikipedia:Outline_Processor_Markup_Language:OPML]-Dateien. Zudem ist Canto sehr umfangreich konfigurierbar. Da Canto wenig Ressourcen benötigt und ohne [:XServer:] auskommt, ist es sehr gut für ältere Computer geeignet. Das Motto von Canto, in Anlehnung an [:NeoMutt:], lautet: ''„An RSS/Atom newsreader that sucks less.“'' Neben großer Flexibilität ist das Hauptziel von Canto, die Feeds möglichst effizient darzustellen. Dazu zeigt Canto die Überschriften aller Artikel der Feeds an – es ist also nicht notwendig, erst einen Feed zu öffnen, um die entsprechenden Artikelüberschriften zu sehen. = Installation = Canto war nur bis einschließlich [:Trusty:Ubuntu 14.04] in den offiziellen Paketquellen enthalten. == Fremdquelle == Die aktuelle Version kann über eine Fremdquelle installiert werden. Diese unterstützt auch neuere Ubuntu-Versionen, aber nur 64-bit-Systeme. [[Vorlage(Fremdquelle, http://codezen.org/debian, xenial, main)]] [[Vorlage(Fremdquelle-auth, http://codezen.org/static/canto-pub.gpg)]] Nach dem Aktualisieren der Paketquellen kann folgendes Paket installiert werden: {{{#!vorlage Paketinstallation python3-canto-curses, Fremdquelle }}} = Bedienung = [[Bild(./canto2.png, 300, align=right)]] Canto besteht aus zwei Programmteilen: einem Programm zum Herunterladen der Feeds und dem eigentlichen RSS-Reader. Neuere Versionen (aus der o.g. Fremdquelle) werden mit dem folgenden Befehl gestartet [2]: {{{#!vorlage Befehl canto-curses }}} Bei der Installation aus den offiziellen Paketquellen wird das Programm zum Herunterladen der Feeds im Terminal (oder als [:Cron:Cronjob]) mit folgendem Befehl gestartet: {{{#!vorlage Befehl canto-fetch }}} Sind die Feeds heruntergeladen, kann der Reader mit folgendem Befehl gestartet werden: {{{#!vorlage Befehl canto }}} Soll Canto erst Feeds herunterladen und dann automatisch starten, kann die Option „`-u`“ genutzt werden. {{{#!vorlage Tabelle <-2 tablestyle="width: 95%;" rowclass="titel"> Start-Optionen +++ Option Beschreibung +++ `-u` Feed-Update und Start des Readers +++ `-o` Exportiere die Feedliste als OPML-Datei nach [:Shell/Umleitungen#stdin-stdout-stderr-Kanaele-der-Bash:stdout] +++ `-i [PFAD]` Importiere die Feeds einer OPML-Datei im angegebenen Pfad +++ `-r [URL]` Füge den Feed mit der angegebenen URL hinzu +++ `-l` Zeige eine Liste aller konfigurierten Feeds an }}} Weitere Optionen sind der [:man:Manpage] zu entnehmen. Beim ersten Start von Canto legt das Programm automatisch die erforderlichen Konfigurationsdateien an. Allerdings muss nach dem ersten Start noch die Datei '''~/.canto/conf.py.example''' im [:Homeverzeichnis:] in '''~/.canto/conf.py''' umbenannt werden. In diese Datei '''~/.canto/conf.py''' werden nutzerspezifische Konfigurationen und Feed-Einstellungen eingetragen, die Feeds selbst werden in der Datei '''~/.canto/feeds''' gespeichert. Die Konfiguration erfolgt durch Python-Befehle. Mehr zum Thema findet man im [http://codezen.org/canto-ng/manual/ Benutzerhandbuch] {en}. == Hinzufügen von Feeds == Zum Hinzufügen von Feeds gibt es zwei Möglichkeiten: Automatisch durch den Import einer OPML-Datei oder manuell durch das Ergänzen der Konfigurationsdatei. === Import aus OPML-Datei === Um eine Feedliste aus einer OPML-Datei zu importieren, wird der folgende Befehl benutzt: {{{#!vorlage Befehl canto -i /PFAD/ZUR/OPML-DATEI }}} Beispiel: {{{#!vorlage Befehl canto -i ~/Downloads/Feedliste.opml }}} === Manuelles Hinzufügen === Um einen Feed manuell hinzuzufügen, öffnet man mit einem Editor [4] die Datei '''~/.canto/conf.py''' und ergänzt die Feed-Adresse. Die Syntax sieht dabei wie folgt aus: {{{ add("URL zu Feed 1", tags=["Name von Feed 1/Tags von Feed 1"]) add("URL zu Feed 2", tags=["Name von Feed 2/Tags von Feed 2"]) }}} Beispiel: {{{ add("http://codezen.org/canto/feeds/latest", tags=["Canto: latest"]) add("http://www.gambaru.de/blog/?feed=rss2", tags=["gambaru.de"]) add("http://linuxundich.de/de/feed/", tags=["Linux und Ich"]) add("http://planet.ubuntuusers.de/feeds/full/25/", tags=["Ubuntuusers: Planet"]) }}} == Steuerung == Canto wird standardmäßig vollständig über die Tastatur gesteuert. Die Navigation orientiert sich an den Konventionen von [:VIM:], man kann also bspw. einfach mit [[Vorlage(Tasten, j)]] nach unten und mit [[Vorlage(Tasten, k)]] nach oben navigieren. (Wobei auch die Tasten [[Vorlage(Tasten, runter)]] und [[Vorlage(Tasten, hoch)]] funktionieren.) Wichtige Tastenkürzel sind: {{{#!vorlage Tabelle <-2 tablestyle="width: 95%;" rowclass="titel">Canto-Tastenbelegung +++ Taste(n) Funktion +++ <-2 rowclass="highlight"> Tastenbelegung in allen Modi: +++ [[Vorlage(Tasten, CTRL+r)]] Lies Feeds neu ein („Force update“) +++ [[Vorlage(Tasten, h)]] Hilfe (Verlassen der Hilfsseite mit [[Vorlage(Tasten, q)]]) +++ [[Vorlage(Tasten, q)]] Beende Canto +++ <-2 rowclass="highlight"> Tastenbelegung im Überschriften-Modus: +++ [[Vorlage(Tasten, Space)]] Sieh ausgewählten Artikel im Lesemodus an +++ [[Vorlage(Tasten, j)]] oder [[Vorlage(Tasten, runter)]] Gehe zum nächsten Artikel der Ansicht +++ [[Vorlage(Tasten, k)]] oder [[Vorlage(Tasten, hoch)]] Gehe zum vorigen Artikel der Ansicht +++ [[Vorlage(Tasten, g)]] Lies ausgewählten Artikel im externen Browser +++ [[Vorlage(Tasten, l)]] Gehe zum nächsten Feed +++ [[Vorlage(Tasten, o)]] Gehe zum vorigen Feed +++ [[Vorlage(Tasten, .)]] Gehe zum nächsten ungelesenen Artikel +++ [[Vorlage(Tasten, ",")]] Gehe zum vorigen ungelesenen Artikel +++ [[Vorlage(Tasten, f)]] Suche: Markiere alle Artikel, die dem Suchbegriff entsprechen +++ [[Vorlage(Tasten, m)]] Markiere den Artikel +++ [[Vorlage(Tasten, n)]] Gehe zum nächsten markierten Artikel +++ [[Vorlage(Tasten, p)]] Gehe zum vorigen markierten Artikel +++ [[Vorlage(Tasten, rechts)]] Markiere ausgewählten Artikel als gelesen +++ [[Vorlage(Tasten, links)]] Markiere ausgewählten Artikel als ungelesen +++ [[Vorlage(Tasten, shift+r)]] Markiere alle Artikel als gelesen +++ [[Vorlage(Tasten, shift+u)]] Markiere alle Artikel als ungelesen +++ <-2 rowclass="highlight"> Tastenbelegung im Artikel-Lesemodus: +++ [[Vorlage(Tasten, Space)]] Verlasse den Lesemodus +++ [[Vorlage(Tasten, g)]] Rufe den (durch eine Zahl bezeichneten) Link im externen Browser auf (die Zahlen stehen jeweils neben den aufzurufenden Links). Es können auch mehrere Links gleichzeitig aufgerufen werden. Beispiel: [[Vorlage(Tasten, g)]] 1-3, 6 [[Vorlage(Tasten, return)]] ruft die Links 1,2,3 und 6 in einem externen Browser auf. +++ [[Vorlage(Tasten, n)]] Gehe zum nächsten Artikel +++ [[Vorlage(Tasten, p)]] Gehe zum vorigen Artikel +++ [[Vorlage(Tasten, l)]] Zeige/verberge Links }}} Weitere Befehle sind der [:man:Manpage] zu entnehmen. Die Befehle können beliebig den eigenen Wünschen angepasst werden. == Filter == Canto unterstützt komplexe Filtermöglichkeiten. Die Filter können global gültig sein oder sich auf ausgewählte Feeds bzw. bestimmte Tags beziehen. Ein einfaches Beispiel für einen globalen Filter ist die Möglichkeit, in der Datei '''~/.canto/conf.py''' festzulegen, dass Canto nur ungelesene Artikel angezeigt: {{{ filters=[show_unread] }}} Filter lassen sich auch bestimmten Tasten bzw. Tastenkombinationen zuweisen. Der folgende Eintrag in die Datei '''~/.canto/conf.py''' belegt bspw. die Tasten [[Vorlage(Tasten, 1)]], [[Vorlage(Tasten, 2)]] und [[Vorlage(Tasten, 3)]] mit den Filtern ''„Zeige nur die ungelesenen Artikel“'', ''„Zeige nur die markierten Artikel“'' und ''„Entferne alle Filter“''. {{{ keys['1'] = set_filter(show_unread) keys['2'] = set_filter(show_marked) keys['3'] = set_filter(None) }}} Mehr zum Thema „Filter“ und zu den verschiedenen Filterarten, die Canto anbietet, findet man unter [http://codezen.org/canto/config/#filters Canto Configuration] {en}. == Einstellungen == === Externe Programme === In der Konfigurationsdatei kann auch festgelegt werden, von welchen Programmen Canto Nutzerbefehle ausführen lässt. Mit dem folgenden Befehl werden, wenn ein [:XServer:] läuft, bspw. Links in [:Opera:], MP3- und MP4-Dateien mit [:MPlayer:] sowie PDF-Dateien mit [:Okular:] geöffnet. Alternativ, d.h. ohne laufenden XServer, werden die Links an [:ELinks:] weitergeleitet. {{{ if os.getenv("TERM") == "linux": link_handler("elinks \"%u\"", text=True) image_handler("feh \"%u\"", text=True, fetch=True) else: link_handler("opera \"%u\"") image_handler("feh \"%u\"", fetch=True) link_handler("mplayer \"%u\"", ext="mp3") link_handler("mplayer \"%u\"", ext="mp4") link_handler("okular \"%u\"", fetch=True, ext="pdf") }}} Alle genannten Programme müssen natürlich installiert sein. === Tastenkürzel konfigurieren === Tastenkürzel können in Canto beliebig konfiguriert werden. Beispiel: Die Einstellung {{{ reader_keys['w'] = wget_link("/PFAD/ZUM/DOWNLOADVERZEICHNIS") }}} erlaubt es, durch Drücken von [[Vorlage(Tasten, w)]] den Inhalt eines (anzugebenden) Links mittels [:wget:] in den Download-Ordner zu speichern. === Optik === Die Gestaltung von Canto sowie das Scroll-Verhalten lassen sich recht frei konfigurieren. Mehr zu diesem Thema findet man wieder im [http://codezen.org/canto-ng/manual/ Benutzerhandbuch] {en}. === Beispielkonfiguration === Eine einfache Konfigurationsdatei '''~/.canto/conf.py''' könnte wie folgt aussehen („#“ leitet einen Kommentar bzw. einen auskommentierten Befehl ein): {{{ from canto.extra import * import os # Feedliste: add("http://codezen.org/canto/feeds/latest", tags=["Canto: latest"]) add("http://www.gambaru.de/blog/?feed=rss2", tags=["gambaru.de"]) add("http://linuxundich.de/de/feed/", tags=["Linux und Ich"]) add("http://planet.ubuntuusers.de/feeds/full/25/", tags=["Ubuntuusers: Planet"]) # Lösche ungelesene Artikel nie: never_discard("unread") # Zahl der angezeigten Zeilen im Lesemodus: # reader_lines = 25 # Programmverknüpfungen: if os.getenv("TERM") == "linux": link_handler("elinks \"%u\"", text=True) image_handler("feh \"%u\"", text=True, fetch=True) else: link_handler("opera \"%u\"") image_handler("feh \"%u\"", fetch=True) link_handler("mplayer \"%u\"", ext="mp3") link_handler("mplayer \"%u\"", ext="mp4") link_handler("okular \"%u\"", fetch=True, ext="pdf") # Terminaltitel wird angezeigt: select_hook = set_xterm_title end_hook = clear_xterm_title # Spaltenbreite: def my_resize_hook(cfg): cfg.columns = cfg.width / 70 resize_hook = my_resize_hook # Zeige (im Überschriften-Modus) nur ungelesene Artikel an: filters=[show_unread] # Bei unkommentierter nächster Zeile werden die Links in den Artikel standardmäßig angezeigt: # keys[' '] = ["reader","toggle_show_links"] # Seitenweises Scrollen: cursor_type = "edge" cursor_scroll = "page" cursor_edge = 0 # Belegung der Taste w mit einer Funktion zum Herunterladen der verlinkten Inhalte (durch wget): reader_keys['w'] = wget_link("/home/BENUTZERNAME/Downloads") }}} = Problembehebung = Will man Canto schnell und in einer bestimmten Größe starten, empfiehlt es sich, einen speziellen Startbefehl zu erstellen und diesen auf ein Tastenkürzel zu legen. Ein solcher Startbefehl könnte wie folgt aussehen (hier für den Start im Terminal-Emulator [sourceforge2:roxterm:ROXTerm] {en}): * Canto 0.8 oder neuer: {{{#!vorlage Befehl roxterm --geometry=96x40+90+31 --title=Newsfeeds -e canto-curses }}} * Canto 0.7: {{{#!vorlage Befehl roxterm --geometry=96x40+90+31 --title=Newsfeeds -e canto -u }}} = Links = * [http://codezen.org/canto-ng/ Projektseite] {en} * [http://codezen.org/canto-ng/manual/ Manual] {en} - Benutzerhandbuch * [github:themoken/Canto:Quelltext] {en} * [wikipedia_en:Canto_(news_aggregator):Canto] – Wikipedia * [http://www.gambaru.de/blog/2011/03/04/canto-ein-feedreader-fur-die-konsole/ Canto, ein Feedreader für die Konsole] {de} – Blogbeitrag, 03/2011 * [:Feedreader:] {Übersicht} Übersichtsartikel #tag: Internet, Shell