Karabiner Elementsの設定ファイルをクラウドに定時バックアップする
万が一に備えて、Karabiner Elementsの設定ファイルをクラウドに定時バックアップする方法を解説します。
公開日: 2024.11.22
編集ノート: keyboardistaでは、パートナーリンクからコミッションを得ています。コミッションが記事の意見や、サービスの評価に影響を与えることはありません。
やりたいこと
キーボードのキー割り当てを変えたり、独自ショートカットを作ったり、簡易マクロっぽいこともできるmacOS用アプリKarabiner Elements。
設定をたくさん書いていくと、設定内容が膨れ上がってしまいます。設定内容が増えるほど、再度設定するのが手間になります。
macOSを初期化したり、新しいMacを買った時にでも、すぐに設定ファイルを置き換えるだけで同じ環境を構築するためは、バックアップをとっておくと便利です。
全体の流れ
全体の流れは以下の通りです。
- macOS標準のAutomatorアプリでバックアップスクリプトを作成
- カレンダー.appで定時実行
Automatorで実行するスクリプトでは、ローカル上の展開しているBox.comアプリのディレクトリに定時で放り込む流れにします。ここは好きなクラウドサービスを選べば良いのですが、ディレクトリのパスが異なるのでその点だけ注意してください。
あとはそのファイルをカレンダー.appで定時実行するだけです。
Automatorアプリでバックアップスクリプト
Automatorアプリを開いて、
- 新規(アプリケーション)
- ユーティリティ -> シェルスクリプトを実行を選択
- 入力フォームに以下をコピペ
#!/bin/bash
# Karabinerの設定ファイルディレクトリ
SOURCE_DIR="$HOME/.config/karabiner"
# Box.comのバックアップ先
BOX_BACKUP_DIR="$HOME/Library/CloudStorage/Box-Box/Backup/karabiner-elements"
# バックアップ先ディレクトリを作成(存在しない場合)
mkdir -p "$BOX_BACKUP_DIR"
# 古いファイルを削除
find "$BOX_BACKUP_DIR" -name "karabiner_backup_*.tar.gz" -type f -mtime +30 -exec rm {} \;
# 日付付きバックアップファイル名
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
BACKUP_FILE="$BOX_BACKUP_DIR/karabiner_backup_$TIMESTAMP.tar.gz"
# 設定ファイルを圧縮してバックアップ
tar -czf "$BACKUP_FILE" -C "$SOURCE_DIR" .
保存します。
保存先はどこでも良いですが、規定のiCloudストレージが良いかと思います。
カレンダー.appで定時実行
macOSのカレンダー.appはファイルの実行もできるため、簡易cronとして使えます。
- カレンダー.appで新規イベント作成
- 任意のイベント名を書いて、繰り返しを設定
- 「通知」の設定で「カスタム」を選ぶ
- プルダウンから「ファイルを開く」で先ほどのAutomatorファイルを選択
これで定時実行されます。
カレンダーファイルが汚れてしまうのが難点ですが、定時アクションが増えたら「定時実行」など短いイベント名にすれば気になりません。