0. 背景
私はこれまでmacOS
のlauncherとしてAlfred 3を使っていました。
スニペット機能は有料オプションでしたが、課金して使っていました。
最近、Raycastというlauncherを見つけました。
Raycast
のスニペット機能は無料で、しかもオープンソースで、自分でカスタマイズできます。
なので、Alfred
をRaycast
に移行することにしました。
しかし、Alfred
のスニペットファイルのフォーマットはRaycast
のスニペットファイルのフォーマットと異なるため、Alfred
のスニペットファイルをRaycast
のスニペットファイルに変換する必要があります。
1. Migrate Alfred Snippets to Raycast
1.1 Get Alfred Snippets Files
Alfred 3 の collections は一括でエクスポートすることができないので、以下のように一つずつエクスポートする必要があります。🐶
1.2 Convert Alfred Snippets to Raycast Snippets
エクスポートしたAlfred
のスニペットファイルを新しいフォルダに入れます。
以下の内容でconvert-alfred-snippets-to-raycast-snippets.sh
ファイルを作成します。
convert-alfred-snippets-to-raycast-snippets.sh
#!/bin/sh -e
# Script for converting Alfred snippets to Raycast snippets
# Usage: chmod +x convert-alfred-snippets-to-raycast-snippets.sh; ./convert-alfred-snippets-to-raycast-snippets.sh
# NOTE: Install jq before running this script
# List up all *.alfredsnippets files and rename them to *.zip
for file in *.alfredsnippets; do
mv "$file" "${file%.alfredsnippets}.zip"
done
# Unzip all *.zip files and get the folders name
for file in *.zip; do
unzip -o "$file" # -o: overwrite existing files without prompting
done
# Merge all *.json files to one file for Raycast snippets
jq -s 'map(.alfredsnippet | {name, keyword, text: .snippet})' *.json > ./output.json
# Clean up all files except output.json
for file in *.json; do
if [ "$file" = "output.json" ]; then
continue
fi
rm "$file"
done
for file in *.zip; do
rm "$file"
done
for file in *.plist; do
rm "$file"
done
# You can now import the output.json file to Raycast
echo "Done! 🎉 You can now import the output.json file to Raycast -> Import Snippets"
Github gistからもDL可能です。
このスクリプトを実行するには、コマンドラインのJSON処理ツールであるjq
をインストールする必要があります。
Macの場合、Homebrewを使ってjq
をインストールすることができます。コマンドはbrew install jq
です。
詳しくは公式サイトを参照してください。
以下のコマンドを実行します。
chmod +x convert-alfred-snippets-to-raycast-snippets.sh
./convert-alfred-snippets-to-raycast-snippets.sh
実行すると、現在のディレクトリにoutput.json
ファイルが生成されます。
1.3 Import Raycast Snippets
Raycast
を開き、Import Snippets
をクリックします。
先ほど生成したoutput.json
ファイルを選択して、Raycast
にスニペットをインポートします。