| waybar(5) | File Formats Manual | waybar(5) |
نام (NAME)
waybar - فایل پیکربندی
توضیحات (DESCRIPTION)
این پیکربندی از قالب فایل JSONC استفاده میکند و نام آن config یا config.jsonc است.
مکانهای معتبر برای این فایل عبارتند از:
- $XDG_CONFIG_HOME/waybar/
- ~/.config/waybar/
- ~/waybar/
- /etc/xdg/waybar/
- /etc/xdg/waybar/
یک نقطه شروع مناسب، پیکربندی پیشفرضی است که در https://github.com/Alexays/Waybar/blob/master/resources/config.jsonc یافت میشود. همچنین، یک نمونه پیکربندی حداقلی را میتوان در انتهای این صفحه راهنما پیدا کرد.
عناصر نمایش بصری waybar از یک شیوهنامه CSS استفاده میکنند؛ برای جزئیات بیشتر waybar-styles(5) را ببینید.
پیکربندی نوار (BAR CONFIGURATION)
expand-center
typeof: bool
default: false
به modules-center امکان
میدهد تا
تمام فضای
باقیمانده
را بهطور
پویا مصرف
کند.
expand-left
typeof: bool
default: false
به modules-left امکان
میدهد تا
تمام فضای
باقیمانده
را بهطور
پویا مصرف
کند.
expand-right
typeof: bool
default: false
به modules-left امکان
میدهد تا
تمام فضای
باقیمانده
را بهطور
پویا مصرف
کند.
layer
typeof: string
default: bottom
مشخص
میکند که
نوار در
جلوی
پنجرهها
(top) یا در پشت
(bottom)
output
typeof: string|array
مشخص
میکند که
این نوار
روی کدام
صفحه نمایش
داده خواهد
شد. علامت
تعجب (!)
میتواند
برای
مستثنی
کردن خروجی
مشخصی
استفاده
شود.
position
typeof: string
default: top
موقعیت
نوار،
میتواند
top، bottom، left، right
باشد.
height
typeof: integer
ارتفاعی که
در صورت
امکان توسط
نوار
استفاده
میشود.
برای مقدار
پویا خالی
بگذارید.
width
typeof: integer
عرضی که در
صورت امکان
توسط نوار
استفاده
میشود.
برای مقدار
پویا خالی
بگذارید.
modules-left
typeof: array
ماژولهایی
که در سمت چپ
نمایش داده
خواهند شد.
modules-center
typeof: array
ماژولهایی
که در مرکز
نمایش داده
خواهند شد.
modules-right
typeof: array
margin
typeof: string
مقدار
حاشیهها
با استفاده
از قالب CSS و
بدون واحد.
margin-<top|left|bottom|right>
typeof: integer
مقدار
حاشیهها
بدون واحد.
no-center
typeof: bool
default: false
گزینهای
برای
غیرفعال
کردن کامل
ماژولهای
مرکزی که
همراه با expand-*
بسیار مفید
است.
spacing
typeof: integer
اندازه
فاصلهها
در بین
ماژولهای
مختلف.
name
typeof: string
نام
اختیاری که
به عنوان یک
کلاس CSS
اضافه
میشود،
برای
استایلدهی
به چندین waybar.
mode
typeof: string
یکی از
حالتهای
نمایش از
پیش
پیکربندیشده
را انتخاب
میکند. این
معادل
دستور mode در
sway-bar(5) است و از
همان
مقادیر
پشتیبانی
میکند: dock،
hide، invisible، overlay.
نکته:
حالتهای hide
و invisible ممکن
است بدون Sway IPC
چندان
کاربردی
نباشند.
start_hidden
typeof: bool
default: false
گزینهای
برای
راهاندازی
نوار به
صورت
پنهان.
modifier-reset
typeof: string
default: press
exclusive
typeof: bool
default: true
گزینهای
برای
درخواست یک
منطقهٔ
اختصاصی (exclusive zone)
از
کامپوزیتور.
این گزینه
را غیرفعال
کنید تا
اجازه دهید
پنجرههای
برنامهها
در زیر یا
بالای نوار
رسم شوند.
fixed-center
typeof: bool
default: true
passthrough
typeof: bool
default: false
گزینهای
برای
انتقال
هرگونه
رویداد
اشارهگر
به پنجرهٔ
زیر نوار.
ipc
typeof: bool
default: false
گزینهای
برای
اشتراک در
رویدادهای
پیکربندی و
قابلیت دید
نوار در Sway IPC و
کنترل waybar با
دستورات swaymsg bar.
نیازمند آن
است که
مقدار bar_id از
پیکربندی sway
با آرگومان
خط فرمان -b
منتقل شود
یا با
گزینهٔ id
مشخص گردد.
id
typeof: string
شناسه bar_id
برای Sway IPC. اگر
نیاز دارید
مقدار
منتقلشده
با آرگومان
خط فرمان -b bar_id
را برای یک
نمونهٔ
نوار خاص
بازنویسی
کنید، از
این گزینه
استفاده
نمایید.
include
typeof: string|array
مسیرهای
فایلهای
پیکربندی
اضافی.
reload_style_on_change
typeof: bool
default: false
گزینهای
برای
فعالسازی
بارگذاری
مجدد
استایل css در
صورت تشخیص
تغییر در
فایل
شیوهنامه
یا هر فایل css
واردشده.
on-sigusr1
typeof: string
default: toggle
عملی که
هنگام
دریافت
سیگنال SIGUSR1
انجام
میشود.
مقادیر
ممکن: show، hide،
toggle، reload، noop.
مقدار
پیشفرض: toggle.
on-sigusr2
typeof: string
default: reload
عملی که
هنگام
دریافت
سیگنال SIGUSR2
انجام
میشود.
مقادیر
ممکن: show، hide،
toggle، reload، noop.
مقدار
پیشفرض: reload.
قالب ماژول (MODULE FORMAT)
میتوانید از PangoMarkupFormat استفاده کنید (به https://developer.gnome.org/pango/stable/PangoMarkupFormat.html#PangoMarkupFormat مراجعه فرمایید).
به عنوان مثال:
"format": "<span style="italic">{}</span>"
چندین نمونه از یک ماژول (MULTIPLE INSTANCES OF A MODULE)
اگر میخواهید نمونهٔ دومی از یک ماژول داشته باشید، میتوانید یک پسوند '#' و یک نام سفارشی به آن اضافه کنید. به عنوان مثال، اگر یک ماژول باتری دوم میخواهید، میتوانید "battery#bat2" را به ماژولهای خود اضافه کنید. برای پیکربندی ماژول تازه اضافهشده، سپس یک پیکربندی ماژول با همان نام نیز اضافه میکنید.
این پیکربندی میتواند شبیه به این باشد (این یک مثال ناقص است):
"modules-right": ["battery", "battery#bat2"],
"battery": {
"bat": "BAT1"
},
"battery#bat2": {
"bat": "BAT2"
}
حداقل پیکربندی (MINIMAL CONFIGURATION)
یک فایل config حداقلی میتواند به شکل زیر باشد:
{
"layer": "top",
"modules-left": ["sway/workspaces", "sway/mode"],
"modules-center": ["sway/window"],
"modules-right": ["battery", "clock"],
"sway/window": {
"max-length": 50
},
"battery": {
"format": "{capacity}% {icon}",
"format-icons": ["", "", "", "", ""]
},
"clock": {
"format-alt": "{:%a, %d. %b %H:%M}"
}
}
سیگنالها (SIGNALS)
برنامه Waybar سیگنالهای زیر را میپذیرد:
SIGUSR1
برای مثال، برای تغییر وضعیت قابلیت دید نوار بهصورت برنامهنویسیشده، میتوانید دستور `killall -SIGUSR1 waybar` را اجرا کنید.
پیکربندی سیگنال کاربر (User signal configuration)
پارامترهای پیکربندی on-sigusr1 و on-sigusr2 رویدادهای رخداده هنگام دریافت سیگنالهای SIGUSR1 و SIGUSR2 توسط نوارها را تغییر میدهند.
این بدان معناست که دستورات `killall -SIGUSR1 waybar` و `killall -SIGUSR2 waybar` میتوانند عمل پیکربندیشده توسط کاربر را انجام دهند.
همچنین به این معناست که اگر یک اسکریپت خارجی PID نوار را داشته باشد، میتواند منطق پیچیدهتری از `show`/`hide`/`reload` را برای هر نمونه از Waybar پیادهسازی کند. میتوان PID را به عنوان مثال با اجرای دستور `pgrep -a waybar` به دست آورد که سپس میتواند بر اساس نام پیکربندی یا سایر پارامترها مطابقت داده شود.
معانی پارامترهای Kill (Kill parameter meanings)
show وضعیت را به نمایان تغییر میدهد (برای هر نوار). hide وضعیت را به پنهان تغییر میدهد (برای هر نوار). toggle وضعیت را بین نمایان و پنهان تغییر میدهد (برای هر نوار). reload تمام نوارهای waybar فرایند فعلی waybar را مجدداً بارگذاری میکند (اساساً معادل راهاندازی مجدد با پیکربندی بهروزشده است که مقادیر اولیه قابلیت دید را تنظیم میکند). noop هنگام دریافت سیگنال kill هیچ کاری انجام نمیدهد.
پیکربندی چند خروجی (MULTI OUTPUT CONFIGURATION)
محدود کردن پیکربندی به برخی از خروجیها (Limit a configuration to some outputs)
{
"layer": "top",
"output": "eDP-1",
"modules-left": ["sway/workspaces", "sway/mode"],
...
}
{
"layer": "top",
"output": ["eDP-1", "VGA"],
"modules-left": ["sway/workspaces", "sway/mode"],
...
}
پیکربندی چندین خروجی (Configuration of multiple outputs)
برای ایجاد چندین نوار بر روی یک صفحه نمایش، هیچ خروجیای را مشخص نکنید.
[{
"layer": "top",
"output": "eDP-1",
"modules-left": ["sway/workspaces", "sway/mode"],
...
}, {
"layer": "top",
"output": "VGA",
"modules-right": ["clock"],
...
}]
چرخش ماژولها (Rotating modules)
هنگام قرار دادن Waybar در سمت چپ یا راست صفحه نمایش، گاهی اوقات چرخش محتوای یک ماژول به گونهای که متن به صورت عمودی قرار گیرد، مفید است. این کار را میتوان با استفاده از ویژگی "rotate" ماژول انجام داد. مثال:
{
"clock": {
"rotate": 90
}
}
گزینههای معتبر برای ویژگی "rotate" عبارتند از: 0، 90، 180 و 270.
جابجایی آیکون و برچسب (Swapping icon and label)
اگر یک ماژول هم برچسب و هم آیکون را نمایش میدهد، ممکن است جابجایی آنها مطلوب باشد (برای مثال، برای پنلهای سمت چپ یا راست صفحه، یا برای کاربرانی که از خط راستبهچپ استفاده میکنند). این امر میتواند با ویژگی "swap-icon-label" که یک مقدار بولی میگیرد، محقق شود. مثال:
{
"sway/window": {
"swap-icon-label": true
}
}
گروهبندی ماژولها (Grouping modules)
گروههای ماژول امکان روی هم قرار دادن ماژولها در هر جهتی را فراهم میکنند. بهطور پیشفرض، هنگامی که نوار در بالا یا پایین صفحه قرار دارد، ماژولهای یک گروه بهصورت عمودی چیده میشوند. به همین ترتیب، هنگامی که در سمت چپ یا راست قرار دارد، ماژولهای یک گروه بهصورت افقی چیده میشوند. این رفتار را میتوان با ویژگی "orientation" تغییر داد.
یک گروه ماژول با مشخص کردن ماژولی با نام "group/some-group-name" تعریف میشود. گروه همچنین باید با فهرستی از ماژولهای موجود پیکربندی شود. مثال:
{
"modules-right": ["group/hardware", "clock"],
"group/hardware": {
"orientation": "vertical",
"modules": [
"cpu",
"memory",
"battery"
]
},
...
}
گزینههای معتبر برای ویژگی (اختیاری) "orientation" عبارتند از: "horizontal"، "vertical"، "inherit" و "orthogonal" (پیشفرض).
کشوی گروهها (Group Drawers)
یک گروه ممکن است تمام عناصر به جز یکی را پنهان کند و آنها را فقط با نگهداشتن ماوس (hover) نمایش دهد. برای پیکربندی این مورد، میتوانید از ویژگی `drawer` استفاده کنید که مقدار آن شیئی با ویژگیهای زیر است:
transition-duration:
typeof: integer
default: 500
مدت زمان
پویانمایی
انتقال را
بر حسب
میلیثانیه
تعریف
میکند.
children-class:
typeof: string
default: "hidden"
کلاس CSS برای
اعمال روی
عناصر
پنهان را
تعریف
میکند.
click-to-reveal:
typeof: bool
default: false
تعیین
میکند که
آیا کلیک چپ
به جای
نگهداشتن
ماوس باید
محتوا را
نمایان کند
یا خیر. توجه
داشته
باشید که
ماژولهای
گروهبندیشده
همچنان
میتوانند
رویدادهای
کلیک مخصوص
به خود را
پردازش
کنند.
transition-left-to-right:
typeof: bool
default: true
جهت
پویانمایی
انتقال را
تعریف
میکند. اگر
true باشد،
عناصر
پنهان از چپ
به راست
میلغزند.
اگر false باشد،
از راست به
چپ
میلغزند.
"group/power": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"children-class": "not-power",
"transition-left-to-right": false,
},
"modules": [
"custom/power", // نخستین عنصر «سرگروه» است و هرگز پنهان نخواهد شد
"custom/quit",
"custom/lock",
"custom/reboot",
]
},
ماژولهای پشتیبانیشده (SUPPORTED MODULES)
- waybar-backlight(5)
- waybar-battery(5)
- waybar-bluetooth(5)
- waybar-cava(5)
- waybar-clock(5)
- waybar-cpu(5)
- waybar-custom(5)
- waybar-disk(5)
- waybar-dwl-tags(5)
- waybar-dwl-window(5)
- waybar-gamemode(5)
- waybar-hyprland-language(5)
- waybar-hyprland-submap(5)
- waybar-hyprland-window(5)
- waybar-hyprland-workspaces(5)
- waybar-niri-language(5)
- waybar-niri-window(5)
- waybar-niri-workspaces(5)
- waybar-idle-inhibitor(5)
- waybar-image(5)
- waybar-inhibitor(5)
- waybar-jack(5)
- waybar-keyboard-state(5)
- waybar-memory(5)
- waybar-mpd(5)
- waybar-mpris(5)
- waybar-network(5)
- waybar-pulseaudio(5)
- waybar-river-layout(5)
- waybar-river-mode(5)
- waybar-river-tags(5)
- waybar-river-window(5)
- waybar-sndio(5)
- waybar-states(5)
- waybar-sway-language(5)
- waybar-sway-mode(5)
- waybar-sway-scratchpad(5)
- waybar-sway-window(5)
- waybar-sway-workspaces(5)
- waybar-temperature(5)
- waybar-tray(5)
- waybar-upower(5)
- waybar-wireplumber(5)
- waybar-wlr-taskbar(5)
- waybar-wlr-workspaces(5)
همچنین ببینید (SEE ALSO)
| 2026-08-31 |