Zum Inhalt

Newsboat - Mehrere Instanzen parallel starten

Papierschiff mit roter Fahne fährt auf dem Wasser

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.
Alter Startbefehl in iTerm
XDG_CONFIG_HOME=~/.newsboat-music XDG_DATA_HOME=.newsboat-music newsboat

Neuer Startbefehl int iTerm2

Der neue Startbefehl startet Newsboat mit einer eigenen Datenbank, die in einem Verzeichnis abgelegt wird. 1

Neuer Startbefehl in iTerm
newsboat --cache-file=~/.newsboat-music/newsboat/cache.db --url-file=~/.newsboat-music/newsboat/urls

Es können auch alle Datenbanken in einem zentralen Ordner verwaltet werden. Dabei ist darauf zu achten, die Datenbanken unterschiedlich zu benennen.

Neuer Startbefehl in iTerm
newsboat --cache-file=~/.newsboat-cache/cache-music.db --url-file=~/.newsboat-music/newsboat/urls

newsboat --cache-file=~/.newsboat-cache/cache-xxxyyy.db --url-file=~/.newsboat-xxxyyy/newsboat/urls

newsboat --cache-file=~/.newsboat-cache/cache-aaabbb.db --url-file=~/.newsboat-aaabbb/newsboat/urls

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 in zshrc
alias nnm='sh $HOME/.config/scripts/iterm-newsboat-music.sh "newsboat-music"'

Apple Script

Das Apple-Skript ist sehr einfach gehalten und startet Newsboat mit einem angelegten iTerm-Profil.

Apple-Skript
#!/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.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address:

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj

Weitere Möglichkeiten mich zu unterstützen findest du 👉 hier

Source

Photo by Artak Petrosyan on Unsplash