swaync(5) File Formats Manual swaync(5)

swaync - پرونده پیکربندی مرکز اعلان SwayNC

هنگام ویرایش پرونده پیکربندی، استفاده از یک ویرایشگر متن دارای کارساز زبان JSON جهت شناسایی خطاهای پیکربندی پیشنهاد می‌شود

ignore-gtk-theme
type: bool
default: true
description: متغیر محیطی GTK_THEME را لغو می‌کند که بسیاری از مشکلات مربوط به تداخل تم‌های GTK با تم‌های سفارشی CSS کاربر را برطرف می‌سازد.

positionX
type: string
default: right
values: left, right, center
description: موقعیت افقی مرکز کنترل و پنجره اعلان

positionY
type: string
default: top
values: top, center, bottom
description: موقعیت عمودی مرکز کنترل و پنجره اعلان

layer
type: string
default: overlay
values: background, bottom, top, overlay
description: لایه پنجره اعلان نسبت به پنجره‌های عادی. لایه background زیر تمام پنجره‌ها و overlay بالای تمام پنجره‌ها قرار می‌گیرد.

layer-shell
type: bool
default: true
description: باز شدن یا نشدن پنجره‌ها به عنوان سطوح layer-shell. نکته: اعمال تغییرات نیازمند راه‌اندازی مجدد swaync است

cssPriority
type: string
default: application
values: application, user
description: اولویت GTK مورد استفاده هنگام بارگذاری پرونده‌های CSS پیش‌فرض و کاربر. مقدار "user" را برای جایگزینی ?BXDG_CONFIG_HOME/gtk-3.0/gtk.css?R انتخاب کنید

control-center-positionX
type: string
default: right
values: left, right, center
description: اختیاری: موقعیت افقی مرکز کنترل. در صورت عدم تنظیم روی `none`، بر positionX اولویت دارد.

control-center-positionY
type: string
default: top
values: top, center, bottom
description: اختیاری: موقعیت عمودی مرکز کنترل. در صورت عدم تنظیم روی `none`، بر positionY اولویت دارد.

control-center-margin-top
type: integer
default: 0
description: حاشیه (بر حسب پیکسل) در بالای مرکز اعلان. 0 برای غیرفعال‌سازی

control-center-margin-bottom
type: integer
default: 0
description: حاشیه (بر حسب پیکسل) در پایین مرکز اعلان. 0 برای غیرفعال‌سازی

control-center-margin-right
type: integer
default: 0
description: حاشیه (بر حسب پیکسل) در سمت راست مرکز اعلان. 0 برای غیرفعال‌سازی

control-center-margin-left
type: integer
default: 0
description: حاشیه (بر حسب پیکسل) در سمت چپ مرکز اعلان. 0 برای غیرفعال‌سازی

control-center-layer
type: string
default: top
values: background, bottom, top, overlay
description: لایه پنجره مرکز کنترل نسبت به پنجره‌های عادی. لایه background زیر تمام پنجره‌ها و overlay بالای تمام پنجره‌ها قرار دارد.

control-center-exclusive-zone
type: bool
default: true
description: پیروی یا عدم پیروی مرکز کنترل از مناطق اختصاصی (exclusive zones) کامپوزیتور. برای نمونه تنظیم آن روی ?Bfalse?R باعث پوشش دادن پنل/داک می‌شود.

notification-2fa-action
type: bool
default: true
description: نمایش یا عدم نمایش اقدام ´COPY "1234"´ روی هر اعلان

timeout
type: integer
default: 10
description: مدت زمان انقضای اعلان برای اعلان‌های با اولویت عادی

timeout-low
type: integer
default: 5
description: مدت زمان انقضای اعلان برای اعلان‌های با اولویت پایین

timeout-critical
type: integer
default: 0
description: مدت زمان انقضای اعلان برای اعلان‌های با اولویت بحرانی. 0 برای غیرفعال‌سازی

notification-window-width
type: integer
default: 500
description: عرض پنجره اعلان بر حسب پیکسل

notification-window-height
type: integer
default: -1
description: حداکثر ارتفاع اعلان بر حسب پیکسل. مقدار -1 برای استفاده از کل فضای ارائه‌شده توسط کامپوزیتور.

notification-window-preferred-output
type: string
default: ""
description: خروجی ترجیحی برای باز کردن پنجره اعلان (اعلان‌های بازشو). می‌تواند نام درگاه نمایشگر (مانند "DP-1") یا نام کامل، سازنده، مدل و شماره سریال (مانند "Acer Technologies XV272U V 503023B314202") باشد. در صورت پیدا نشدن خروجی، خروجی فوکوس‌شده فعلی انتخاب می‌شود.

keyboard-shortcuts
type: bool
default: true
description: استفاده یا عدم استفاده مرکز کنترل از میانبرهای صفحه‌کلید

notification-grouping
type: bool
default: true
description: گروه‌بندی یا عدم گروه‌بندی اعلان‌ها بر اساس نام برنامه

image-visibility
type: string
default: always
values: always, when-available, never
description: نمایانی تصویر: همیشه (always)، در صورت در دسترس بودن (when-available)، یا هرگز (never).

transition-time
type: integer
default: 200
description: مدت زمان پویانمایی اعلان. 0 برای غیرفعال‌سازی

hide-on-clear
type: bool
default: false
description: پنهان‌سازی مرکز کنترل پس از فشردن دکمه "Clear All"

hide-on-action
type: bool
default: true
description: پنهان‌سازی مرکز کنترل هنگام کلیک روی یکی از اقدام‌های اعلان

text-empty
type: string
default: "No Notifications"
description: متنی که هنگام نبود اعلان برای نمایش ظاهر می‌شود

fit-to-screen
type: bool
default: true
description: گسترش یا عدم گسترش عمودی مرکز کنترل برای پر کردن تمام صفحه

relative-timestamps
type: bool
default: true
description: نمایش برچسب‌های زمانی اعلان‌ها به صورت نسبی نسبت به اکنون، مانند "26 minutes ago". در صورت false بودن، برچسب زمانی مطلق محلی در قالب iso8601 نمایش داده می‌شود.

control-center-height
type: integer
default: 500
description: ارتفاع مرکز کنترل بر حسب پیکسل.
مقدار -1 به معنای هماهنگ شدن با اندازه محتوا است.
در صورت تنظیم 'fit-to-screen' روی 'true' نادیده گرفته می‌شود.
همچنین به ارتفاع نمایشگر محدود است، مگر اینکه

control-center-width
type: integer
default: 500
description: عرض مرکز کنترل بر حسب پیکسل

control-center-preferred-output
type: string
default: ""
description: خروجی ترجیحی برای باز کردن مرکز کنترل. می‌تواند نام درگاه نمایشگر (مانند "DP-1") یا نام کامل، سازنده، مدل و شماره سریال (مانند "Acer Technologies XV272U V 503023B314202") باشد. در صورت پیدا نشدن خروجی، خروجی فوکوس‌شده فعلی انتخاب می‌شود.

notification-action-filter
type: object
visibility object properties:
use-regex
type: bool
optional: true
default: false
description: مشخص می‌کند که آیا تمام فیلدهای زیر باید از رجکس استفاده کنند یا خیر.
app-name
type: string
optional: true
description: نام برنامه.
desktop-entry
type: string
optional: true
description: مدخل دسکتاپ.
id-matcher
type: string
optional: true (نیازمند حداقل یک ?Bmatcher?R)
description: با شناسه اقدام تطبیق می‌یابد. با بررسی خروجی swaync هنگام اجرا با متغیر محیطی ?BG_MESSAGES_DEBUG=all?R قابل یافتن است.
text-matcher
type: string
optional: true (نیازمند حداقل یک ?Bmatcher?R)
description: با متن اقدام قابل مشاهده در اعلان تطبیق می‌یابد.
description: پنهان کردن اقدام(های) منطبق از اعلان‌های دارای تطابق. اگر اعلان شامل یکی از ویژگی‌ها نباشد، آن ویژگی نادیده گرفته خواهد شد. در صورت تطابق تمام ویژگی‌ها با اعلان مربوطه، اقدام‌های منطبق پنهان خواهند شد.
example:

{
	"notification-action-filter": {
		"hide-chromium-settings": {
			"desktop-entry": "chromium-browser",
			"use-regex": false,
			"id-matcher": "settings",
			"text-matcher": "Settings"
		}
	},
}

notification-visibility
type: object
visibility object properties:
state
type: string
optional: false
default: enabled
values: ignored, muted, transient, enabled
description: وضعیت نمایانی اعلان.
override-urgency
type: string
optional: true
default: unset
values: unset, low, normal, critical
description: میزان اضطرار و اولویت جدید اعلان در صورت تنظیم.
app-name
type: string
optional: true
description: نام برنامه. از رجکس استفاده می‌کند.
desktop-entry
type: string
optional: true
description: مدخل دسکتاپ. از رجکس استفاده می‌کند.
summary
type: string
optional: true
description: خلاصه اعلان. از رجکس استفاده می‌کند.
body
type: string
optional: true
description: بدنه اعلان. از رجکس استفاده می‌کند.
urgency
type: string
optional: true
default: Normal
values: Low, Normal, Critical
description: میزان اضطرار و اولویت اعلان.
category
type: string
optional: true
description: دسته‌ای که اعلان به آن تعلق دارد. از رجکس استفاده می‌کند.
description: تنظیم نمایانی یا جایگزینی اولویت برای هر اعلان ورودی. اگر اعلان شامل یکی از ویژگی‌ها نباشد، آن ویژگی نادیده گرفته می‌شود. تمام ویژگی‌ها (به جز state) از رجکس استفاده می‌کنند. در صورت تطابق تمام ویژگی‌ها با اعلان مربوطه، اعلان از وضعیت ارائه‌شده پیروی خواهد کرد. تنها اولین شیء منطبق استفاده خواهد شد.
example:

{
	"notification-visibility": {
		"example-name": {
			"state": "The notification state",
			"app-name": "Notification app-name Regex",
			"summary": "Notification summary Regex",
			"body": "Notification body Regex",
			"urgency": "Low or Normal or Critical",
			"category": "Notification category Regex"
		}
	}
}

widgets
type: array
Default values: ["title", "dnd", "notifications"]
مقادیر معتبر آرایه (برای اطلاعات بیشتر به ?Bwidget-config?R مراجعه کنید):
notifications
الزامی: true
اختیاری: false
title
optional: true
dnd
optional: true
label
optional: true
mpris
optional: true
menubar
optional: true
buttons-grid
optional: true
slider
optional: true
volume
optional: true
backlight
optional: true
inhibitors
optional: true
description:
ترتیب و اینکه کدام ابزارک‌ها نمایش داده شوند. اگر ابزارک "notifications" مشخص نشود، در پایین قرار خواهد گرفت. چندین نمونه از یک ابزارک یکسان: افزودن یک # به همراه هر مقداری به انتهای نام ابزارک. مثال: "title#TheMainTitle". برای هدف‌گیری اختصاصی این ابزارک در پرونده css از کلاس css به صورت .TheMainTitle استفاده کنید
example:

{
	"widgets": [
		"inhibitors",
		"title",
		"dnd",
		"notifications"
	]
}

widget-config
type: object
description: پیکربندی ویژگی‌های خاص هر ابزارک. چندین نمونه از یک ابزارک یکسان: افزودن یک # به همراه هر مقداری به انتهای نام ابزارک. مثال: "title#TheMainTitle". برای هدف‌گیری اختصاصی این ابزارک در پرونده css از کلاس css به صورت .TheMainTitle استفاده کنید
ابزارک‌های قابل شخصی‌سازی:
notifications
type: object
css class: widget-notifications
properties:
vexpand:
type: bool
optional: true
default: true
description: گسترش یا عدم گسترش عمودی ابزارک اعلان‌ها
description: ابزارک اعلان‌ها.
title
type: object
css class: widget-title
properties:
text:
type: string
optional: true
default: "Notifications"
description: عنوان ابزارک
clear-all-button:
type: bool
optional: true
default: true
description: نمایش یا عدم نمایش دکمه "Clear All"
button-text:
type: string
optional: true
default: "Clear All"
description: متن دکمه "Clear All"
description: وضعیت نمایانی اعلان.
dnd
type: object
css class: widget-dnd
properties:
text:
type: string
optional: true
default: "Do Not Disturb"
description: عنوان ابزارک
description: ابزارک حالت مزاحم نشوید (Do Not Disturb) مرکز کنترل.
label
type: object
css class: widget-label
properties:
text:
type: string
optional: true
default: "Label Text"
description: متن محتوای ابزارک
clear-all-button:
type: integer
optional: true
default: 5
description: حداکثر تعداد خطوط
description: ابزارکی عمومی که به کاربر امکان افزودن متن سفارشی را می‌دهد.
mpris
type: object
css classes:
widget-mpris
widget-mpris-player
widget-mpris-title
widget-mpris-subtitle
properties:
blacklist:
type: array
optional: true
default: []
description: منابع صوتی که ابزارک mpris باید نادیده بگیرد.
مقادیر معتبر آرایه:
type: string
description: نام منبع صوتی/برنامه. رجکس مجاز است. راهنمایی: برای یافتن نام منابع از `$ qdbus | grep mpris` استفاده کنید.
autohide:
type: bool
optional: true
default: false
description: پنهان کردن ابزارک هنگامی که پخش‌کننده فاقد متاداده است.
show-album-art:
type: string
optional: true
default: "always"
description: آیا تصویر جلد آلبوم پنهان باشد، همیشه نمایش داده شود، یا تنها در صورت ارائه یک تصویر معتبر نمایان گردد.
enum: ["right", "left"]
loop-carousel:
type: bool
optional: true
default: false
description: چرخش حلقه‌ای در چرخ‌فلک پخش‌کننده‌های mpris.
description: ابزارکی که چندین پخش‌کننده موسیقی را نمایش می‌دهد.
menubar
type: object
css classes:
widget-menubar
نام عنصر مشخص‌شده پس از menu یا buttons با علامت #
patternProperties:
menu#<name>:
type: object
properties:
label:
type: string
optional: true
default: "Menu"
description: برچسب دکمه جهت نمایش/پنهان‌سازی منوی کشویی
position:
type: string
optional: true
default: "right"
description: موقعیت افقی دکمه در نوار
enum: ["right", "left"]
animation-type:
type: string
optional: true
default: "slide_down"
description: نوع پویانمایی برای منو
enum: ["slide_down", "slide_up", "none"]
animation-duration:
type: integer
optional: true
default: 250
description: مدت زمان پویانمایی بر حسب میلی‌ثانیه
actions:
type: array
Default values: []
مقادیر معتبر آرایه:
type: object
properties:
label:
type: string
default: "label"
description: متنی که روی دکمه نمایش داده می‌شود
command:
type: string
default: ""
description: "دستوری که هنگام کلیک اجرا می‌شود"
type:
type: string
default: "normal"
description: نوع دکمه.
دکمه‌های تاگل کلاس css به صورت '.active' دریافت می‌کنند
enum: ["normal", "toggle"]
update-command:
type: string
default: ""
description: "دستوری که هنگام تغییر نمایانی مرکز کنترل جهت به‌روزرسانی وضعیت فعال دکمه تاگل اجرا می‌شود (باید true یا false خروجی دهد)"
active:
type: bool
default: false
description: فعال بودن یا نبودن دکمه تاگل به طور پیش‌فرض
description: فهرستی از اقدام‌ها شامل یک برچسب و یک دستور
description: دکمه‌ای برای آشکارسازی یک منوی کشویی دارای دکمه‌های اقدام
buttons#<name>:
type: object
properties:
position:
type: string
optional: true
default: "right"
description: موقعیت افقی دکمه‌ها در نوار
enum: ["right", "left"]
actions:
type: array
Default values: []
مقادیر معتبر آرایه:
type: object
properties:
label:
type: string
default: "label"
description: متنی که روی دکمه نمایش داده می‌شود
command:
type: string
default: ""
description: "دستوری که هنگام کلیک اجرا می‌شود"
type:
type: string
default: "normal"
description: نوع دکمه
دکمه‌های تاگل کلاس css به صورت '.active' دریافت کرده و متغیر محیطی "SWAYNC_TOGGLE_STATE" تنظیم می‌شود. نمونه استفاده را در config.json پیش‌فرض ببینید
enum: ["normal", "toggle"]
update-command:
type: string
default: ""
description: "دستوری که هنگام تغییر نمایانی مرکز کنترل جهت به‌روزرسانی وضعیت فعال دکمه تاگل اجرا می‌شود (باید true یا false خروجی دهد)"
active:
type: bool
default: false
description: فعال بودن یا نبودن دکمه تاگل به طور پیش‌فرض
description: فهرستی از اقدام‌ها شامل یک برچسب و یک دستور
description: فهرستی از دکمه‌ها برای نمایش در نوار دکمه‌های منو
buttons-grid
type: object
css class: widget-buttons (دسترسی به دکمه‌ها با >flowbox>flowboxchild>button)
properties:
buttons-per-row:
type: number
actions:
type: array
Default values: []
مقادیر معتبر آرایه:
type: object
properties:
label:
type: string
default: "label"
description: متنی که روی دکمه نمایش داده می‌شود
command:
type: string
default: ""
description: "دستوری که هنگام کلیک اجرا می‌شود"
type:
type: string
default: "normal"
description: نوع دکمه
دکمه‌های تاگل کلاس css به صورت '.active' دریافت کرده و متغیر محیطی "SWAYNC_TOGGLE_STATE" تنظیم می‌شود. نمونه استفاده را در config.json پیش‌فرض ببینید
enum: ["normal", "toggle"]
active:
type: bool
default: false
description: فعال بودن یا نبودن دکمه تاگل به طور پیش‌فرض
description: فهرستی از اقدام‌ها شامل یک برچسب و یک دستور
description: شبکه‌ای از دکمه‌ها که دستورات شل را اجرا می‌کنند
slider
type: object
css class: widget-slider
properties:
label:
type: string
optional: true
default: "slider"
description: متن نمایش‌یافته در جلوی اسلایدر
cmd_setter:
type: string
optional: true
default: ""
description: دستور برای تنظیم مقدار. از $value برای دریافت مقدار فعلی استفاده کنید.
cmd_getter:
type: string
optional: true
default: ""
description: دستور برای دریافت مقدار واقعی. از $value برای دریافت مقدار فعلی استفاده کنید.
min:
type: integer
optional: true
default: 0
description: حداقل مقدار محدوده اسلایدر
max:
type: integer
optional: true
default: 100
description: حداکثر مقدار محدوده اسلایدر
min_limit:
type: integer
optional: true
default: 0
description: محدودسازی حداقل مقدار اسلایدر
max_limit:
type: integer
optional: true
default: 100
description: محدودسازی حداکثر مقدار اسلایدر
value_scale:
type: integer
optional: true
default: 0
description: مقیاس مقادیر کوچک، ارقام گرد کردن اسلایدر
description: کنترل‌کننده عمومی اسلایدر
volume
type: object
css class:
widget-volume
per-app-volume
properties:
label:
type: string
optional: true
default: "Volume"
description: متن نمایش‌یافته در جلوی اسلایدر صدا
show-per-app:
type: bool
optional: true
default: false
description: نمایش کنترل صدای جداگانه به ازای هر برنامه
show-per-app-icon:
type: bool
optional: true
default: false
description: نمایش نماد برنامه در کنترل صدای برنامه
show-per-app-label:
type: bool
optional: true
default: false
description: نمایش نام برنامه در کنترل صدای برنامه
expand-per-app:
type: bool
optional: true
default: false
description: گسترش‌یافته بودن بخش برنامه‌ها در شروع کار
empty-list-label:
type: string
optional: true
default: "No active sink input"
description: متن نمایشی هنگام نبود ورودی‌های سینک فعال
expand-button-label:
type: string
optional: true
default: "⇧"
description: برچسب نمایش‌یافته روی دکمه جهت نمایش کنترل صدای برنامه‌ها
collapse-button-label:
type: string
optional: true
default: "⇩"
description: برچسب نمایش‌یافته روی دکمه جهت پنهان‌سازی کنترل صدای برنامه‌ها
animation-type:
type: string
optional: true
default: "slide_down"
description: نوع پویانمایی برای کنترل صدای به ازای برنامه
enum: ["slide_down", "slide_up", "none"]
animation-duration:
type: integer
optional: true
default: 250
description: مدت زمان پویانمایی بر حسب میلی‌ثانیه
description: اسلایدر جهت کنترل صدای پالس (PulseAudio)
backlight
type: object
css class: widget-backlight
properties:
label:
type: string
optional: true
default: "Brightness"
description: متن نمایش‌یافته در جلوی اسلایدر روشنایی
device:
type: string
optional: true
default: "intel_backlight"
description: دستگاه در `/sys/class/backlight` یا `/sys/class/leds`
subsystem:
type: string
optional: true
default: "backlight"
description: زیرسیستم هسته جهت کنترل روشنایی
enum: ["backlight", "leds"]
min:
type: integer
optional: true
default: 0
description: کمترین مقدار ممکن برای روشنایی
description: اسلایدر جهت کنترل روشنایی صفحه
inhibitors
type: object
css class: widget-inhibitors
properties:
text:
type: string
optional: true
default: "Inhibitors"
description: عنوان ابزارک
clear-all-button:
type: bool
optional: true
default: true
description: نمایش یا عدم نمایش دکمه "Clear All"
button-text:
type: string
optional: true
default: "Clear All"
description: متن دکمه "Clear All"
description: در صورت بازداری و مهار اعلان‌ها نمایش داده می‌شود.

example:
{
	"widget-config": {
		"title": {
			"text": "Notifications",
			"clear-all-button": true,
			"button-text": "Clear All"
		},
		"dnd": {
			"text": "Do Not Disturb"
		},
		"label": {
			"max-lines": 5,
			"text": "Label Text"
		},
		"mpris": {
			"blacklist": ["playerctld"],
			"autohide": true,
			"show-album-art": "always",
			"loop-carousel": false
		},
		"menubar": {
			"menu#power": {
				"label": "Power",
				"position": "right",
				"actions": [
					{
						"label": "Shut down",
						"command": "systemctl poweroff"
					},
					...
				]
			},
			"buttons#screenshot": {
				"position": "left",
				"actions": [
					{
						"label": "Screenshot",
						"command": "grim"
					},
					...
				]
			}
		},
		"buttons": {
			"actions": [
				{
					"label": "wifi",
					"command": "rofi-wifi-menu"
				},
				...
			]
		}
	}
}

script-fail-notify
type: bool
default: true
description: ارسال یک اعلان در صورت شکست در اجرای اسکریپت

scripts
type: object
ویژگی‌های شیء اسکریپت:
exec
type: string
optional: false
description: اسکریپت برای اجرا. همچنین می‌تواند دستورات عادی شل را اجرا کند.
app-name
type: string
optional: true
description: نام برنامه. از رجکس استفاده می‌کند.
desktop-entry
type: string
optional: true
description: مدخل دسکتاپ. از رجکس استفاده می‌کند.
summary
type: string
optional: true
description: خلاصه اعلان. از رجکس استفاده می‌کند.
body
type: string
optional: true
description: بدنه اعلان. از رجکس استفاده می‌کند.
urgency
type: string
optional: true
default: Normal
values: Low, Normal, Critical
description: میزان اضطرار و اولویت اعلان.
category
type: string
optional: true
description: دسته‌ای که اعلان به آن تعلق دارد. از رجکس استفاده می‌کند.
sound-file
type: string
optional: true
description: پرونده صوتی درخواستی اعلان. از رجکس استفاده می‌کند.
sound-name
type: string
optional: true
description: نام صدای درخواستی اعلان. از رجکس استفاده می‌کند.
run-on
type: string
optional: true
values: action, receive
default: receive
description: اجرای این اقدام هنگام دریافت اعلان، یا هنگام انجام عملی روی آن.
description: اسکریپت‌هایی که باید برای هر اعلان بررسی و در صورت لزوم اجرا شوند. اگر اعلان فاقد یکی از ویژگی‌ها باشد، آن ویژگی نادیده گرفته خواهد شد. تمام ویژگی‌ها (به جز exec) از رجکس استفاده می‌کنند. در صورت تطابق تمام ویژگی‌ها با اعلان مربوطه، اسکریپت اجرا خواهد شد. تنها اولین اسکریپت منطبق اجرا می‌شود.
example:

{
	"scripts": {
		"example-script": {
			"exec": "Your shell command or script here...",
			"app-name": "Notification app-name Regex",
			"summary": "Notification summary Regex",
			"body": "Notification body Regex",
			"urgency": "Low or Normal or Critical",
			"category": "Notification category Regex"
		}
	}
}
همچنین می‌توانید از این متغیرهای محیطی در اسکریپت خود استفاده کنید:
$SWAYNC_BODY="محتوای بدنه اعلان"
$SWAYNC_DESKTOP_ENTRY="مدخل دسکتاپ"
$SWAYNC_URGENCY="میزان اضطرار اعلان"
$SWAYNC_TIME="زمان اعلان"
$SWAYNC_APP_NAME="نام برنامه اعلان"
$SWAYNC_CATEGORY="دسته اعلان SwayNC"
$SWAYNC_REPLACES_ID="شناسه اعلانی که باید جایگزین شود"
$SWAYNC_ID="شناسه اعلان SwayNC"
$SWAYNC_SUMMARY="خلاصه اعلان"
$SWAYNC_HINT_[NAME]="مقدار اشاره‌گر [NAME]"
$SWAYNC_SOUND_NAME="نام صدای درخواستی"
$SWAYNC_SOUND_FILE="مسیر پرونده صدای درخواستی"
2026-03-23