76 lines
1.6 KiB
Python
76 lines
1.6 KiB
Python
"""
|
|
Menu contents definitions for the macOS-style menu bar.
|
|
This file contains all the menu items and their organization.
|
|
"""
|
|
|
|
|
|
def get_default_menu_contents():
|
|
return {
|
|
"Hyprland": [
|
|
],
|
|
"File": [
|
|
],
|
|
"Edit": [
|
|
],
|
|
"View": [
|
|
"Full Screen",
|
|
"---",
|
|
"Zoom In",
|
|
"Zoom Out",
|
|
"Actual Size"
|
|
],
|
|
"Go": [
|
|
"Back",
|
|
"Forward",
|
|
],
|
|
"Window": [
|
|
"Move Window to Left",
|
|
"Move Window to Right",
|
|
"Cycle Through Windows",
|
|
"---",
|
|
"Float",
|
|
"Pseudo",
|
|
"Center",
|
|
"Group",
|
|
"Pin",
|
|
"Quit"
|
|
],
|
|
"Help": [
|
|
"---",
|
|
"Hyprland Help",
|
|
"Arch Wiki",
|
|
"Keyboard Shortcuts",
|
|
"---",
|
|
"Report a Bug..."
|
|
]
|
|
}
|
|
|
|
|
|
def get_app_menu_template():
|
|
return [
|
|
"About {app_name}",
|
|
"---",
|
|
"Hide {app_name}",
|
|
"---",
|
|
"Quit {app_name}"
|
|
]
|
|
|
|
|
|
def create_app_menu(app_name):
|
|
template = get_app_menu_template()
|
|
return [item.format(app_name=app_name) if "{app_name}" in item else item for item in template]
|
|
|
|
|
|
def get_menu_contents_for_app(app_name):
|
|
contents = get_default_menu_contents().copy()
|
|
|
|
if app_name and app_name != "Hyprland":
|
|
# Replace the Hyprland menu with app-specific menu
|
|
contents["Hyprland"] = create_app_menu(app_name)
|
|
|
|
return contents
|
|
|
|
|
|
def get_app_specific_menu_contents(app_name):
|
|
return get_menu_contents_for_app(app_name)
|