Newsboat: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
KKeine Bearbeitungszusammenfassung
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{inuse|[[Benutzer:Dirk|Dirk]] ([[Benutzer Diskussion:Dirk|Diskussion]])}}
{{inuse|[[Benutzer:Dirk|Dirk]] ([[Benutzer Diskussion:Dirk|Diskussion]])}}
{{unvollständig}}
{{unvollständig}}
[[Datei:Newsboat_standard_arch_news_de.png|thumbnail|350px|Newsboat 2.38 in der Standardkonfiguration zeigt den Nachrichten-Feed von archlinux.de an, einige Artikel wurden bereits gelesen, andere sind noch neu.]]
Newsboat ist ein sehr umfangreich konfigurierbarer und einfach durch Scripts und Macros erweiterbarer Feedclient für Atom- und RSS-Feeds für die Verwendung in der Konsole.
Newsboat ist ein sehr umfangreich konfigurierbarer und einfach durch Scripts und Macros erweiterbarer Feedclient für Atom- und RSS-Feeds für die Verwendung in der Konsole.


Zeile 13: Zeile 14:


=== Feedkonfiguration ===
=== Feedkonfiguration ===
Zu ladende Feeds werden Zeilenweise in der Datei {{ic|urls}} im beschriebenen Konfigurationsverzeichnis abgelegt. Neben dem eigentlichen URL können noch verschiedene weitere Attribute angegeben werden. Dies richtet drei Feeds ein.
{{hc|1=urls|2=
<nowiki>https://www.archlinux.de/news/feed</nowiki> news linux arch          "~Nachrichten auf archlinux.de"
<nowiki>https://archlinux.org/feeds/news/</nowiki>  news linux arch          "~Englische Nachrichten über Arch"
<nowiki>https://lkml.org/rss.php</nowiki>          mailinglist linux kernel "~Mails in der LKML"
}}
Die Darstellung wurde tabellarisch formatiert, um das Beispiel einfacher erklären zu können. In der ersten Spalte befindet sich jeweils der URL zum Feed. Die zweite Spalte enthält verschiedene Tags. Sollen Tags mit Leerzeichen benutzt werden, müssen diese in Doppelte Anführungszeichen gesetzt werden. Die dritte Spalte definiert den Titel für die Feeds. Technisch gesehen ist dies auch ein Tag, mit der vorangestellten Tilde bekommt es aber eine besondere Bedeutung.
In Newsboat kann man mittels {{taste|T}} die Tagliste öffnen, und mittels der Pfeiltasten das gewünschte Tag auswählen, es werden dann nur Feeds angezeigt, dieses Tag haben.
==== Query-Feeds ====
[[Datei:Newsboat standard arch news combined.png|thumbnail|300px|Die Kombinierte Ansicht wie im Beispiel beschrieben. Newsboat zeigt zu den Artikeln in dieser Ansicht auch immer den Originalfeed an.]]
Wenn man sehr viele Feeds hat, kann es sein, dass man den Überblick verliert und eventuell Feeds zusammenführen und ansonsten aber aus der Feedsliste verbergen möchte. Hierzu kann man Query-Feeds benutzen. Diese erlauben den Zugriff auf alle Feed- und Artikel-Informationen (Tags, Titel, Datum, Status, etc.) und können anhand dieser Informationen Artikel aus mehreren Feeds in einem Feed zusammenführen.
{{hc|1=urls|2=
"query:Alle News zu Arch:(tags # \"arch\") and (tags # \"news\")" combined arch news
<nowiki>https://www.archlinux.de/news/feed</nowiki> ! news linux arch "~archlinux.de"
<nowiki>https://archlinux.org/feeds/news/</nowiki>  ! news linux arch "~archlinux.org"}}
Im Beispiel werden durch das Ausrufezeichen-Tag die Feeds in der Feedliste versteckt. Es wird zudem ein Query-Feed „Alle News zu Arch“ eingerichtet, dieser listet alle Artikel aus Feeds, in deren jeweiligen Taglisten sowohl {{ic|arch}} als auch  {{ic|news}} zu finden sind. Der Query-Feed selbst hat die Tags „combined“, „arch“ und „news“ (Query-Feeds matchen sich nicht selbst, daher können die Tags „arch“ und „news“ problemlos so vergeben werden).
Eine weitere Option für einen Query-Feed ist ein Sammelfeed für alle noch nicht gelesenen Artikel.
"query:Ungelesen:unread = \"yes\"" combined unread
Dadurch werden alle Artikel aller Feeds, die noch das Unread-Flag haben, in einem Feed zusammengefasst, der Query-Feed selbst erhält die Tags „combined“ und „unread“, sowie den Titel „Ungelesen“.


=== Programmkonfiguration ===
=== Programmkonfiguration ===
Zeile 28: Zeile 57:


==== Themes ====
==== Themes ====
[[Datei:Newsboat standard theme commander.png|thumb|300px|Newsboat mit den Beispiel-Feeds im mitgelieferten Theme „Commander“]]
Themes sind Dateien, denen Zeilenweise Farboptionen für verschiedene Bereiche innerhalb von Newsboat gesetzt werden. Dabei werden keine konkreten Farben gesetzt, sondern lediglich definiert, welche der Terminalfarben benutzt werden soll. Themes lassen sich daher einerseits per Theme-Datei setzen, aber auch indem man die Farbkonfiguration desd verwendeten [[:Kategorie:Terminalemulator|Terminalemulators]] anpasst.
Es werden standardmäßig einige Themes mitinstalliert, die mittels {{ic|include}}-Keyword innerhalb der Konfiguration geladen werden können. Die Standard-Themes befinden sich im Verzeichnis {{ic|/usr/share/doc/newsboat/contrib/colorschemes}}. Die mitgelieferten Themedateien beinhalten Informationen darüber, für welche Terminalfarben sie entworfen wurden.
{{hc|1=config|2=
include /usr/share/doc/newsboat/contrib/colorschemes/commander
}}
In der Dokumentation zu Newsboat finden sich alle anpassbaren Optionen, um Themes auch selbst erstellen zu können, so kann man sich selbst ein individuelles Theme basierend auf den eigenen Terminalfarben einrichten.
[[Datei:Newsboat_standard_light_theme.png|thumb|300px|Anzeige des Query-Feeds der Arch-News im beispielhaften hellen Theme]]
Ein helles Theme könnte man zum Beispiel wie folgt einrichten.
{{hc|1=light|2=
color title              color15 color12
color background        color0  color15
color listnormal        color0  color15
color listnormal_unread  color0  color15 bold
color listfocus          color0  color7
color listfocus_unread  color0  color7  bold
color article            color0  color15
color info              color7  color8
color hint-key          color3  color8  bold
color end-of-text-marker color15 color15
search-highlight-colors  color0 color11
highlight article "^[a-zA-Z]+: .*$" color8 color15
highlight article "https?://[^ ]+"  color4 color15 underline}}
==== Feedliste anpassen ====


== Scripts ==
== Scripts ==
Zeile 66: Zeile 126:


Dann mittels {{ic|systemctl --user --now enable newsboat-reload.timer}} den Timer im Userkontext aktivieren und ausführen. Es wird nun im angegebenen Intervall automatisch nach neuen Artikeln gesucht.
Dann mittels {{ic|systemctl --user --now enable newsboat-reload.timer}} den Timer im Userkontext aktivieren und ausführen. Es wird nun im angegebenen Intervall automatisch nach neuen Artikeln gesucht.
=== Unterschiedliche Instanzen parallel nutzen ===


=== Desktopbenachrichtigung bei neuen Artikeln ===
=== Desktopbenachrichtigung bei neuen Artikeln ===

Aktuelle Version vom 22. Januar 2025, 22:02 Uhr

„Newsboat“ wurde von Dirk (Diskussion) als in Bearbeitung markiert. Um Bearbeitungskonflikte zu vermeiden, kontaktiere Dirk (Diskussion) bitte, bevor du den Artikel bearbeitest.


Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!


Newsboat 2.38 in der Standardkonfiguration zeigt den Nachrichten-Feed von archlinux.de an, einige Artikel wurden bereits gelesen, andere sind noch neu.

Newsboat ist ein sehr umfangreich konfigurierbarer und einfach durch Scripts und Macros erweiterbarer Feedclient für Atom- und RSS-Feeds für die Verwendung in der Konsole.

Installation

Das Programm ist als newsboat in extra verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S newsboat

Nach der Installation muss zuerst mindestens ein Feed eingerichtet werden, da Newsboat ansonsten nicht startet.

Konfiguration

Newsboat lädt die Feeds und Konfiguration wahlweise aus dem Verzeichnis ~/.newsboat/ oder dem Verzeichnis ~/.config/newsboat/. Die Feeds werden zeilenweise (optional mit entsprechender feedbezogener Konfiguration wie Tags und Titel, etc.) in der Datei urls abgelegt, die Konfiguration erfolgt in der Datei config.

In der Konfigurationsdatei lassen sich mittels include DATEINAME andere Konfigurationsdateien einbinden. Angaben in Backticks (`...`) werden vor Anwendung der Konfiguration als Shellbefehle ausgeführt und deren Ergebnis als Teil der Konfiguration interpretiert. Kommentare werden mittels # eingeleitet. Konfigurationsparameter mit Leerzeichen müssen in Doppelte Anführungszeichen gesetzt werden ("...").

Feedkonfiguration

Zu ladende Feeds werden Zeilenweise in der Datei urls im beschriebenen Konfigurationsverzeichnis abgelegt. Neben dem eigentlichen URL können noch verschiedene weitere Attribute angegeben werden. Dies richtet drei Feeds ein.

urls
https://www.archlinux.de/news/feed news linux arch          "~Nachrichten auf archlinux.de"
https://archlinux.org/feeds/news/  news linux arch          "~Englische Nachrichten über Arch"
https://lkml.org/rss.php           mailinglist linux kernel "~Mails in der LKML"

Die Darstellung wurde tabellarisch formatiert, um das Beispiel einfacher erklären zu können. In der ersten Spalte befindet sich jeweils der URL zum Feed. Die zweite Spalte enthält verschiedene Tags. Sollen Tags mit Leerzeichen benutzt werden, müssen diese in Doppelte Anführungszeichen gesetzt werden. Die dritte Spalte definiert den Titel für die Feeds. Technisch gesehen ist dies auch ein Tag, mit der vorangestellten Tilde bekommt es aber eine besondere Bedeutung.

In Newsboat kann man mittels T die Tagliste öffnen, und mittels der Pfeiltasten das gewünschte Tag auswählen, es werden dann nur Feeds angezeigt, dieses Tag haben.

Query-Feeds

Die Kombinierte Ansicht wie im Beispiel beschrieben. Newsboat zeigt zu den Artikeln in dieser Ansicht auch immer den Originalfeed an.

Wenn man sehr viele Feeds hat, kann es sein, dass man den Überblick verliert und eventuell Feeds zusammenführen und ansonsten aber aus der Feedsliste verbergen möchte. Hierzu kann man Query-Feeds benutzen. Diese erlauben den Zugriff auf alle Feed- und Artikel-Informationen (Tags, Titel, Datum, Status, etc.) und können anhand dieser Informationen Artikel aus mehreren Feeds in einem Feed zusammenführen.

urls
"query:Alle News zu Arch:(tags # \"arch\") and (tags # \"news\")" combined arch news
https://www.archlinux.de/news/feed ! news linux arch "~archlinux.de"
https://archlinux.org/feeds/news/  ! news linux arch "~archlinux.org"

Im Beispiel werden durch das Ausrufezeichen-Tag die Feeds in der Feedliste versteckt. Es wird zudem ein Query-Feed „Alle News zu Arch“ eingerichtet, dieser listet alle Artikel aus Feeds, in deren jeweiligen Taglisten sowohl arch als auch news zu finden sind. Der Query-Feed selbst hat die Tags „combined“, „arch“ und „news“ (Query-Feeds matchen sich nicht selbst, daher können die Tags „arch“ und „news“ problemlos so vergeben werden).

Eine weitere Option für einen Query-Feed ist ein Sammelfeed für alle noch nicht gelesenen Artikel.

"query:Ungelesen:unread = \"yes\"" combined unread

Dadurch werden alle Artikel aller Feeds, die noch das Unread-Flag haben, in einem Feed zusammengefasst, der Query-Feed selbst erhält die Tags „combined“ und „unread“, sowie den Titel „Ungelesen“.

Programmkonfiguration

Automatisches Feedupdate

Will man alle Feeds beim Programmstart automatisch aktualisieren, kann man dies entsprechend in der Konfigurationsdatei hinterlegen. Standardmäßig benutzt Newsboat nur einen Thread, bzw. eine Verbindung zum aktualisieren. Man kann dies ebenfalls beschleunigen. Im Beispiel werden 10 Verbindungen parallel aufgebaut, wodurch 10 verschiedene Feeds gleichzeitig aktualisiert werden können. Zudem wird konfiguriert, dass bei laufendem Programm die Feeds alle 5 Minuten aktualisiert werden.

~/.config/newsboat/config
auto-reload    yes
reload-threads 10
reload-time    5

Zusätzlich kann man mittels newsboat -x reload ein Update aller Feeds durchführen, ohne Newsboat dafür interaktiv starten zu müssen.

Themes

Newsboat mit den Beispiel-Feeds im mitgelieferten Theme „Commander“

Themes sind Dateien, denen Zeilenweise Farboptionen für verschiedene Bereiche innerhalb von Newsboat gesetzt werden. Dabei werden keine konkreten Farben gesetzt, sondern lediglich definiert, welche der Terminalfarben benutzt werden soll. Themes lassen sich daher einerseits per Theme-Datei setzen, aber auch indem man die Farbkonfiguration desd verwendeten Terminalemulators anpasst.

Es werden standardmäßig einige Themes mitinstalliert, die mittels include-Keyword innerhalb der Konfiguration geladen werden können. Die Standard-Themes befinden sich im Verzeichnis /usr/share/doc/newsboat/contrib/colorschemes. Die mitgelieferten Themedateien beinhalten Informationen darüber, für welche Terminalfarben sie entworfen wurden.

config
include /usr/share/doc/newsboat/contrib/colorschemes/commander

In der Dokumentation zu Newsboat finden sich alle anpassbaren Optionen, um Themes auch selbst erstellen zu können, so kann man sich selbst ein individuelles Theme basierend auf den eigenen Terminalfarben einrichten.

Anzeige des Query-Feeds der Arch-News im beispielhaften hellen Theme

Ein helles Theme könnte man zum Beispiel wie folgt einrichten.

light
color title              color15 color12
color background         color0  color15
color listnormal         color0  color15
color listnormal_unread  color0  color15 bold
color listfocus          color0  color7
color listfocus_unread   color0  color7  bold
color article            color0  color15
color info               color7  color8
color hint-key           color3  color8  bold
color end-of-text-marker color15 color15
search-highlight-colors  color0 color11

highlight article "^[a-zA-Z]+: .*$" color8 color15
highlight article "https?://[^ ]+"  color4 color15 underline

Feedliste anpassen

Scripts

Feedscripts

Macros

Tipps und Tricks

Update per systemd-Timer

Zum Beispiel mittels eines userbezogenen systemd-Timers kann man das reload auch verwenden, um automatisiert alle Feeds zu aktualisieren. In diesem Fall kann man sich dann auto-reload yes in der Konfiguration sparen, was den Start etwas beschleunigt, da man nicht erst auf die Feedupdates warten muss.

Zuerst erstellt man die Timer-Datei, hier wird festgelegt, wie oft (hier durch OnCalendar = hourly stündlich, sowie durch OnBootSec = 1min, einmalig eine Minute nach Systemstart) der Timer laufen soll.

~/.config/systemd/user/newsboat-reload.timer
[Unit]
Description=Run newsboat-reload once an hour

[Timer]
OnBootSec = 1min
OnCalendar = hourly

[Install]
WantedBy=timers.target

Dann erstellt man noch mit gleichem Dateinamen eine Service-Datei, durch die beim Aktivieren newsboat -x reload ausgeführt wird

~/.config/systemd/user/newsboat-reload.service
[Unit]
Description = Reload (Update) Newsboat feeds
After = network.target

[Service]
Type = oneshot
ExecStart = newsboat -x reload

[Install]
WantedBy = multi-user.target

Dann mittels systemctl --user --now enable newsboat-reload.timer den Timer im Userkontext aktivieren und ausführen. Es wird nun im angegebenen Intervall automatisch nach neuen Artikeln gesucht.

Unterschiedliche Instanzen parallel nutzen

Desktopbenachrichtigung bei neuen Artikeln

YouTube-Abonnements als Feeds

Siehe auch

Weblinks