You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Platypus.app创建状态栏菜单应用的问题咨询

解决Platypus.app状态栏菜单的两个问题

1. 自定义菜单项名称并关联目标文件夹

要将菜单项改为「打开桌面」这类友好名称,同时保证点击后打开正确路径,需要在脚本中建立名称与路径的映射关系,替代原来直接用路径当显示文本的逻辑:

  • 定义哈希表存储自定义名称到目标路径的对应规则
  • 输出菜单时使用自定义名称作为菜单项显示文本
  • 用户点击菜单项后,通过映射表找到对应的实际路径再执行打开操作

2. 给子菜单项添加图标

Platypus支持为子菜单项添加图标,只需在SUBMENU的参数列表中,为每个子菜单项使用MENUITEMICON|图标路径|菜单项文本的格式,代替原来的纯文本项。

修改后的完整代码

#!/usr/bin/perl

# 定义自定义菜单项名称与目标文件夹的映射
my %menu_map = (
    '打开桌面'        => '~/Desktop',
    '打开3DProjects'  => '~/Desktop/3DProjects',
    '打开2DProjects'  => '~/Desktop/2DProjects',
    '子菜单项目1'     => '~/路径/到/项目1',
    '子菜单项目2'     => '~/路径/到/项目2',
    '子菜单项目3'     => '~/路径/到/项目3'
);

# 无参数时输出菜单结构
if (!scalar(@ARGV)) {
    # 主菜单项(带图标+自定义名称)
    print "MENUITEMICON|AppIcon.icns|打开桌面\n";
    print "MENUITEMICON|/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/AlertStopIcon.icns|打开3DProjects\n";
    print "MENUITEMICON|/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ImageIcon.icns|打开2DProjects\n";
    
    # 带图标的子菜单:每个子项用MENUITEMICON指定图标和名称
    print "SUBMENU|我的子菜单|"
        . "MENUITEMICON|/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/FolderIcon.icns|子菜单项目1|"
        . "MENUITEMICON|/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/AlertNoteIcon.icns|子菜单项目2|"
        . "MENUITEMICON|AppIcon.icns|子菜单项目3\n";
    
} else {
    # 获取用户点击的菜单项名称,通过映射表找到对应路径
    my $selected_item = $ARGV[0];
    if (exists $menu_map{$selected_item}) {
        my $target_path = $menu_map{$selected_item};
        # 替换路径中的~为当前用户主目录
        $target_path =~ s/^~/$ENV{HOME}/;
        system("open '$target_path'");
    }
}

关键改动说明

  1. 映射表%menu_map:集中管理所有菜单项名称与目标路径的对应关系,方便后续修改维护。
  2. 主菜单项输出:将原来的路径文本替换为自定义名称,图标保留原设置(替换了外链图标为系统内置图标)。
  3. 子菜单结构:将每个子菜单项改为MENUITEMICON|图标路径|名称的格式,实现子项带图标效果。
  4. 路径解析:增加~到用户主目录的替换逻辑,确保相对路径能正确识别。

内容的提问来源于stack exchange,提问作者Kuzey 3D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 01:47:40