waybar-menu(5) File Formats Manual waybar-menu(5)

waybar - ویژگی منو (menu)

برخی پودمان‌ها از ویژگی 'menu' پشتیبانی می‌کنند که امکان داشتن یک منوی پاپ‌آپ را هنگام انجام کلیک تعریف‌شده روی پودمان فراهم می‌سازد.

پودمانی که ویژگی 'menu' را پیاده‌سازی می‌کند، نیازمند ۳ ویژگی تعریف‌شده در پیکربندی خود است:

menu:
نوع: رشته (string)
رویدادی (اکشنی) که منو را باز می‌کند. اکشن‌های ممکن عبارتند از:

گزینه (Option) توضیحات (Description)
on-click هنگام کلیک چپ روی پودمان
on-click-release هنگام رها کردن دکمه چپ ماوس روی پودمان
on-double-click هنگام دو بار کلیک چپ روی پودمان
on-triple-click هنگام سه بار کلیک چپ روی پودمان
on-click-middle هنگام کلیک وسط روی پودمان با استفاده از چرخ ماوس
on-click-middle-release هنگام رها کردن دکمه چرخ ماوس روی پودمان
on-double-click-middle هنگام دو بار کلیک وسط روی پودمان
on-triple-click-middle هنگام سه بار کلیک وسط روی پودمان
on-click-right هنگام راست‌کلیک روی پودمان
on-click-right-release هنگام رها کردن دکمه راست ماوس روی پودمان
on-double-click-right هنگام دو بار راست‌کلیک روی پودمان
on-triple-click-right هنگام سه بار راست‌کلیک روی پودمان
on-click-backward هنگام کلیک روی پودمان با دکمه عقب (backward) ماوس
on-click-backward-release هنگام رها کردن دکمه عقب ماوس روی پودمان
on-double-click-backward هنگام دو بار کلیک روی پودمان با دکمه عقب ماوس
on-triple-click-backward هنگام سه بار کلیک روی پودمان با دکمه عقب ماوس
on-click-forward هنگام کلیک روی پودمان با دکمه جلو (forward) ماوس
on-click-forward-release هنگام رها کردن دکمه جلو ماوس روی پودمان
on-double-click-forward هنگام دو بار کلیک روی پودمان با دکمه جلو ماوس
on-triple-click-forward هنگام سه بار کلیک روی پودمان با دکمه جلو ماوس

menu-file:
نوع: رشته (string)
مکان فایل توصیف‌کننده منو. باید عنصری از نوع

GtkMenu با شناسه menu وجود داشته باشد.

menu-actions:
نوع: آرایه (array)
عملیات متناظر با دکمه‌های منو. شناسه‌های هر یک از این

عملیات باید به عنوان یک id در 'menu-file' وجود داشته باشند تا پیوند به درستی برقرار شود.

فایل menu-file یک فایل `.xml` است که یک GtkBuilder را نمایش می‌دهد. مستندات مربوط به آن را می‌توان در اینجا یافت: https://docs.gtk.org/gtk4/class.Builder.html

در اینجا، باید عنصری از نوع GtkMenu با شناسه "menu" وجود داشته باشد. هر یک از عملیات موجود در menu-actions از طریق شناسه (id) عناصر به عناصر موجود در فایل menu-file متصل می‌شوند.

پیکربندی پودمان (Module config):

"custom/power": {
	"format" : "⏻ ",
	"tooltip": false,
	"menu": "on-click",
	"menu-file": "~/.config/waybar/power_menu.xml",
	"menu-actions": {
		"shutdown": "shutdown",
		"reboot": "reboot",
		"suspend": "systemctl suspend",
		"hibernate": "systemctl hibernate",
	},
},

~/.config/waybar/power_menu.xml :

<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <object class="GtkMenu" id="menu">
		<child>
			<object class="GtkMenuItem" id="suspend">
				<property name="label">Suspend</property>
			</object>
		</child>
		<child>
			<object class="GtkMenuItem" id="hibernate">
				<property name="label">Hibernate</property>
			</object>
		</child>
    <child>
			<object class="GtkMenuItem" id="shutdown">
				<property name="label">Shutdown</property>
			</object>
    </child>
    <child>
      <object class="GtkSeparatorMenuItem" id="delimiter1"/>
    </child>
    <child>
			<object class="GtkMenuItem" id="reboot">
				<property name="label">Reboot</property>
			</object>
    </child>
  </object>
</interface>

•
menu استایل برای منو
•
menuitem استایل برای آیتم‌های درون منو

menu {
	border-radius: 15px;
	background: #161320;
	color: #B5E8E0;
}
menuitem {
	border-radius: 15px;
}
2026-08-31