Dunst: استخدام متغيرات البيئة في ~ / .config / dunstrc

تم إنشاؤها على ٨ ديسمبر ٢٠١٨  ·  6تعليقات  ·  مصدر: dunst-project/dunst

أرغب في تعيين ألوان الإشعارات بناءً على متغيرات البيئة. بدلا من:

~/.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

أود أن أفعل:

~/.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

عيّن متغيرات البيئة هذه في ~/.profile ، أو أي ملف تم الحصول عليه والذي يحدد متغيرات البيئة التي يمكن التقاطها بواسطة dunst.

~/.profile :

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

لذلك عندما أقوم بتحميل dunst عبر `~ / .config / i3 / config

exec --no-startup-id dunst

ثم سيقوم dunst بتعيين ألوان الإشعارات بناءً على ما تم تعيينه في ~/.profile
أرغب في تركيز السمات (الألوان في الغالب) عبر جميع تطبيقاتي التي تستخدم ملفات التكوين (i3 ، polybar ، rofi ، dunst ، النمل الأبيض ، إلخ). هدفي هو الحصول على ملف واحد لضبط متغيرات البيئة بحيث يمكنني تبديل السمات عن طريق تحديد مصدر ملف واحد.

أريد أن آخذ موضوعات مشابهة لهذا وأطبق موضوعًا عبر العديد من التطبيقات.
https://github.com/arcticicestudio/nord

التعليق الأكثر فائدة

حسنًا ، لاستبدال المتغير البسيط ، يمكنك ببساطة استخدام الأمر envsubst :

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

ال 6 كومينتر

ربما تكون قد خمنت أن هذا غير ممكن حاليًا ولست متأكدًا من تنفيذه.

ومع ذلك ، هل بحثت في دليل المساهمات؟ لدينا برنامج نصي يولد dunstrc من قيم Xresource ، يمكنك إما استخدامه أو تكييفه بطريقة ما لاستخدام متغيرات shell

tsipinakis لم أكن على علم بهذا السيناريو. قمت بتشغيله وقمت بتبديل الملف الذي أنشأته للملف الأصلي وقام بتغيير ألوان dunsts ، وهو أمر مفيد. بعد قراءة سريعة من خلاله ، لا أفهم القيم التي يتوقع أن تقرأها من Xresources عند تحديد الإعدادات التي يجب استبدالها. سأستمر في قراءته حتى يصبح منطقيًا.

أتمنى أن تفشل إما متغيرات البيئة المدعومة أو استيراد التكوينات في التكوين الرئيسي. النص فكرة جيدة رغم ذلك ، سأعطيه فرصة.

أحاول إنشاء بيئة سطح مكتب تتألف من أدوات تعمل بواسطة لوحة المفاتيح وتستخدم ملفات التكوين للتكوين ، والتي يسهل تكوينها في مكان واحد. يعد التصميم أحد الأشياء القليلة المتبقية في قائمتي لحلها. يمكنك رؤية شفرة المصدر هنا إذا كنت مهتمًا! :)

حسنًا ، لاستبدال المتغير البسيط ، يمكنك ببساطة استخدام الأمر envsubst :

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

bebehei نجاح باهر لم يكن لدي أي فكرة عن وجودها. هذا مذهل! شكرا لك على هذا الاقتراح!

لذا ، أعتقد أن الحل الواضح هو استخدام envsubst . لأية قيم أخرى ، يرجى الرجوع إلى # 357

تضمين التغريدة شكرا.
أنا أستخدم هذا الآن:

#~/.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) &
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات