Dunst: Verwenden von Umgebungsvariablen in ~/.config/dunstrc

Erstellt am 8. Dez. 2018  ·  6Kommentare  ·  Quelle: dunst-project/dunst

Ich möchte Farben von Benachrichtigungen basierend auf Umgebungsvariablen festlegen. Anstatt von:

~/.config/dunst/dunstrc :

[urgency_low]
    # IMPORTANT: colors have to be defined in quotation marks.
    # Otherwise the "#" and following would be interpreted as a comment.
    background = "#222222"
    foreground = "#888888"
    timeout = 5

Ich möchte zu tun:

~/.config/dunst/dunstrc :

[urgency_low]
    # IMPORTANT: colors have to be defined in quotation marks.
    # Otherwise the "#" and following would be interpreted as a comment.
    background = "${DUNST_NORMAL_BACKGROUND}"
    foreground = "${DUNST_NORMAL_FOREGROUND}"
    timeout = 5

Legen Sie diese Umgebungsvariablen in ~/.profile oder einer anderen Datei fest, die Umgebungsvariablen festlegt, die von Dunst abgerufen werden können.

~/.profile :

DUNST_NORMAL_BACKGROUND="#888888"
DUNST_NORMAL_FOREGROUND="#FFFFFF"

Damit wenn ich dunst über `~/.config/i3/config . lade

exec --no-startup-id dunst

Dann legt Dunst die Farben der Benachrichtigungen basierend auf den Einstellungen in ~/.profile
Ich möchte die Themen (meistens Farben) über alle meine Anwendungen hinweg zentralisieren, die Konfigurationsdateien verwenden (i3, polybar, rofi, dunst, termite usw.). Mein Ziel ist es, eine einzelne Datei zu haben, um env vars zu setzen, damit ich Themen austauschen kann, indem ich eine einzelne Datei beziehe.

Ich möchte ähnliche Themen wie diese verwenden und das Thema auf mehrere Anwendungen anwenden.
https://github.com/arcticicestudio/nord

Hilfreichster Kommentar

Nun, für eine einfache Variablenersetzung können Sie einfach den Befehl envsubst :

envsubst < ~/.config/dunst/dunstrc.template > ~/.config/dunst/dunstrc

Alle 6 Kommentare

Wie Sie vielleicht erraten haben, ist dies derzeit nicht möglich und ich bin mir nicht sicher, ob es implementiert wird.

Haben Sie jedoch schon einmal in das contrib-Verzeichnis geschaut? Wir haben ein Skript , das aus Xresource-Werten ein dunstrc generiert. Sie können das entweder verwenden oder es irgendwie anpassen, um Shell-Variablen zu verwenden

@tsipinakis Dieses Skript war mir nicht bekannt. Ich habe es ausgeführt und die erstellte Datei gegen die Originaldatei ausgetauscht und die Dunst-Farben geändert, was hilfreich ist. Nach kurzem Durchlesen verstehe ich nicht, welche Werte es erwartet, von Xresources zu lesen, wenn es bestimmt, welche Einstellungen überschrieben werden sollen. Ich werde es weiterlesen, bis es Sinn macht.

Ich wünschte, dass dunst entweder unterstützte Umgebungsvariablen oder das Importieren von configs in die Hauptkonfiguration. Das Drehbuch ist aber eine gute Idee, ich werde es versuchen.

Ich versuche, eine Desktop-Umgebung zu erstellen, die aus Tools besteht, die tastaturgesteuert sind und Konfigurationsdateien für die Konfiguration verwenden, die einfach an einem Ort konfiguriert werden können. Themeing ist eines der wenigen Dinge, die ich noch lösen muss. Den Quellcode können Sie bei Interesse hier einsehen! :)

Nun, für eine einfache Variablenersetzung können Sie einfach den Befehl envsubst :

envsubst < ~/.config/dunst/dunstrc.template > ~/.config/dunst/dunstrc

@bebehei wow ich hatte keine Ahnung, dass es das gibt. Das ist erstaunlich! Vielen Dank für diesen Vorschlag!

Daher denke ich, dass die offensichtliche Lösung darin besteht, envsubst . Für andere Werte wenden Sie sich bitte an #357

@behei Super ! Vielen Dank.
Ich benutze das jetzt:

#~/.xinitrc

#Use bash instead of sh so we can use bashisms
if [[ x"$BASH" != x"/bin/bash" ]]; then
  exec /bin/bash "$HOME/.xinitrc"
fi
dunst -config <(envsubst < ~/.config/dunst/dunstrc) &
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

coxley picture coxley  ·  4Kommentare

ahjstone picture ahjstone  ·  4Kommentare

catzybluphish picture catzybluphish  ·  6Kommentare

progandy picture progandy  ·  6Kommentare

wpovell picture wpovell  ·  5Kommentare