Newsboat - Mehrere Instanzen parallel starten
Es lassen sich mit einem kleinen Kniff mehrere Newsboat-Instanzen parallel starten und gleichzeitig nutzen. Anstatt einer einzigen großen Datenbank für alle Newsboate zu verwenden, wird für jede eine eigene Datenbank angelegt.
Alter Startbefehl in iTerm2
Mit dem bisherigen Startbefehl wurde Newsboat gestartet. Dabei wurde die Standard-Datenbank im Verzeichnis ~/.newsboat/cache.db für alle Newsboat-Instanzen verwendet.
Nachteile:
- Es konnten nicht mehrere Instanzen gleichzeitig geöffnet werden
- Bereits gelesene Beiträge wurden bei einem Neustart wieder als ungelesen markiert.
XDG_CONFIG_HOME=~/.newsboat-music XDG_DATA_HOME=.newsboat-music newsboat
Newsboat starten
Der neue Startbefehl startet Newsboat mit einer eigenen Datenbank, die in einem Verzeichnis abgelegt wird. 1
newsboat \
--cache-file=$HOME/.newsboat-cache/technik-cache.db \
--config-file=$HOME/.newsboat/config \
--url-file=$HOME/.newsboat/urls \
--search-history-file=$HOME/.newsboat/history.search \
--cmdline-history-file=$HOME/.newsboat/history.cmdline \
--log-file=$HOME/.newsboat/newsboat.log
Der Cache wird im neuen Ordner $HOME/.newsboat-cache/ abgelegt.
Es können auch alle Datenbanken in einem zentralen Ordner verwaltet werden. Dabei ist darauf zu achten, die Datenbanken unterschiedlich zu benennen.
XDG_CONFIG_HOME=~/.newsboat-music newsboat \
--cache-file=$HOME/.newsboat-cache/musik-cache.db \
--config-file=$HOME/.newsboat-music/newsboat/config \
--url-file=$HOME/.newsboat-music/newsboat/urls \
--search-history-file=$HOME/.newsboat-music/newsboat/history.search \
--cmdline-history-file=$HOME/.newsboat-music/newsboat/history.cmdline \
--log-file=$HOME/.newsboat-music/newsboat/newsboat.log
XDG_CONFIG_HOME=~/.newsboat-instanz01 newsboat \
--cache-file=$HOME/.newsboat-cache/instanz01-cache.db \
--config-file=$HOME/.newsboat-instanz01/newsboat/config \
--url-file=$HOME/.newsboat-instanz01/newsboat/urls \
--search-history-file=$HOME/.newsboat-instanz01/newsboat/history.search \
--cmdline-history-file=$HOME/.newsboat-instanz01/newsboat/history.cmdline \
--log-file=$HOME/.newsboat-instanz01/newsboat/newsboat.log
XDG_CONFIG_HOME=~/.newsboat-instanz02 newsboat \
--cache-file=$HOME/.newsboat-cache/instanz02-cache.db \
--config-file=$HOME/.newsboat-instanz02/newsboat/config \
--url-file=$HOME/.newsboat-instanz02/newsboat/urls \
--search-history-file=$HOME/.newsboat-instanz02/newsboat/history.search \
--cmdline-history-file=$HOME/.newsboat-instanz02/newsboat/history.cmdline \
--log-file=$HOME/.newsboat-instanz02/newsboat/newsboat.log
Bei einer zentralen Verwaltung kann dieser Ordner z.B. bei der Verwaltung in einem Git Repository einfach über die .gitignore ausgeschlossen werden. ( 👉 Newsboat Konfigurationsdateien in macOS und Linux verwenden)
.zshrc Alias in macOS
In der .zshrc wird mit dem Alias nnm ein Apple-Skript aufgerufen.
alias nnm='XDG_CONFIG_HOME=~/.newsboat-music newsboat \
--cache-file=$HOME/.newsboat-cache/musik-cache.db \
--config-file=$HOME/.newsboat-music/newsboat/config \
--url-file=$HOME/.newsboat-music/newsboat/urls \
--search-history-file=$HOME/.newsboat-music/newsboat/history.search \
--cmdline-history-file=$HOME/.newsboat-music/newsboat/history.cmdline \
--log-file=$HOME/.newsboat-music/newsboat/newsboat.log'
Für jede Newsboat-Instanz ist ein eigener Alias anzulegen.
alias nnm='XDG_CONFIG_HOME=~/.newsboat-music newsboat \ ...alias nnn='XDG_CONFIG_HOME=~/.newsboat-instanz01 newsboat \ ...alias nno='XDG_CONFIG_HOME=~/.newsboat-instanz02 newsboat \ ...
Nach einem Neustart von zsh kann die jeweilige Instanz mit gestartet werden, z.B. nnm für die Newsboat Musik.
iTerm2 und Apple Script
Es besteht die mit iTerm2 die Möglichkeit für jede Newsboat-Instanz ein neues Fenster mit einem eigenen Profil zu starten. In einem solchen Profil kann die Schriftart-, -farbe, -größe, etc. angepasst werden.
Im jeweiligen iTerm-Profil wird der gesamte Startbefehl für Newsboat hinterlegt. Im Screenshot wird das Profil für Newsboat-Musik gezeigt. Der Startbefehl ist von oben zu kopieren und einzufügen.
Das Apple-Skript ist sehr einfach gehalten und startet Newsboat mit einem angelegten iTerm-Profil.
#!/usr/bin/env bash
PROFILE="${1-newsboat-music}"
# Öffne iTerm2 mit dem angegebenen Profil und speichere die Fenster-ID
WINDOW_ID=$(osascript -e "tell application \"iTerm\"
set newWindow to (create window with profile \"$PROFILE\")
id of newWindow
end tell")
# Wartet 10 Sekunden, bis Newsboat geladen wurde
# Bei Probleme ist der Wert zu erhöhen
sleep 10
# Warte, bis der Newsboat-Prozess endet
while pgrep -x "newsboat" > /dev/null; do
sleep 2
done
# Schließe nur das Fenster mit der gespeicherten Fenster-ID, wenn Newsboat beendet ist
osascript -e "tell application \"iTerm\"
close (every window whose id is $WINDOW_ID)
end tell"
Es können nun mehrere Newsboat-Instanzen parallel gestartet werden, da jede eine eigene Datenbank verwendet.
Gib mir gerne einen Kaffee ☕ aus 😀
Gib mir gerne einen Kaffee ☕ aus !
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj
Weitere Möglichkeiten mich zu unterstützen findest du 👉 hier
Follow Me
Source
Photo by Artak Petrosyan on Unsplash



