swaync(5) File Formats Manual swaync(5) نام (NAME) swaync - پرونده پیکربندی مرکز اعلان SwayNC پیکربندی (CONFIGURATION) هنگام ویرایش پرونده پیکربندی، استفاده از یک ویرایشگر متن دارای کارساز زبان 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#: 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#: 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" }, ... ] } } } اسکریپت‌ها (SCRIPTS) 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 swaync(5)