Newsboat: Unterschied zwischen den Versionen
Dirk (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Dirk (Diskussion | Beiträge) |
||
(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 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.
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
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
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.
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.