أرغب في تعيين ألوان الإشعارات بناءً على متغيرات البيئة. بدلا من:
~/.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
ربما تكون قد خمنت أن هذا غير ممكن حاليًا ولست متأكدًا من تنفيذه.
ومع ذلك ، هل بحثت في دليل المساهمات؟ لدينا برنامج نصي يولد 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) &
التعليق الأكثر فائدة
حسنًا ، لاستبدال المتغير البسيط ، يمكنك ببساطة استخدام الأمر
envsubst
: