要为一个应用程序创建一个Launch图标(启动器), 其实很简单. 这里以Spyder为例.
传统的Spyder需要通过Anaconda来启动, 也可以通过命令行输入命令spyder
来启动. Spyder是一个图形界面的程序, 怎么可以在Launch里面创建出来图标方便调用呢?
- 步骤1: 创建
.app
包- 需要在
/Applications
创建出相应程序的.app
文件夹 - 需要在该文件夹内含有
Contents/MacOS
的子文件夹, MacOS文件夹内是执行程序 mkdir -p /Applications/Spyder.app/Contents/MacOS
- 需要在
- 步骤2: 创建应用包信息
plist
文件- 在
Contents
目录下创建Info.plist
文件. - 写入以下内容. 其中,
CFBundleExecutable
是对应包内MacOS内即将运行的程序. 对应版本号这里是Spyder版本号3.3.3. 其实可以随意.
- 在
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>spyder</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>3.3.3</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>3.3.3</string>
</dict>
</plist>
- 步骤3: 创建执行文件
- 在MacOS内创建对应执行文件. 一般地, 使用
ln -s 应用路径 快捷方式
创建软链接即可解决问题. - 但是用软链接方式创建的
spyder
会打开一个sn_0_1234567
类似的Project. 并在HOME
文件夹内创建对应文件夹. 十分麻烦. 类似如果用shell
脚本创建的假应用如果读取命令行(如使用$@
变量). 也会有类似问题. - 解决办法:
echo -e '#!/bin/bash'"\n /usr/local/bin/spyder3" > /Applications/Spyder.app/Contents/MacOS/spyder
,chmod +x /Applications/Spyder.app/Contents/MacOS/spyder
- 在MacOS内创建对应执行文件. 一般地, 使用
- 步骤4: 指定图标.
- 打开spyder的图标文件夹, 例如我的在
~/local/miniconda3/lib/python3.6/site-packages/spyder/images
, 里面对应的tour-spyder-logo.png
就是对应图标 (比spyder.png
更清一些). 双击打开,cmd +C
复制. - 在Finder左侧跳到
应用程序
或Applications
, 找到对应的Spyder应用,cmd+I
或者右键显示简介
. 在左上侧的图标处(就是修改时间左边), 点击 (然后图标变蓝边),cmd + V
粘贴过来即可.
- 打开spyder的图标文件夹, 例如我的在
网友评论