0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DeskflowでMacをサーバにしたらスリープ復帰でキーボード共有が止まる問題を解決!

Last updated at Posted at 2025-06-13

すぐに問題を解決したい方向け(コピペでOK)

1. sleepwatcherをインストール

brew install sleepwatcher

2. スリープ時にDeskflowを終了するスクリプトを作成

cat << 'EOF' > ~/.sleep
#!/bin/sh
osascript -e 'quit app "Deskflow"' 2>/dev/null
sleep 5
pkill -9 -x Deskflow 2>/dev/null
EOF
chmod +x ~/.sleep

3. 復帰時にDeskflowを起動するスクリプトを作成

cat << 'EOF' > ~/.wakeup
#!/bin/sh
open -a Deskflow
EOF
chmod +x ~/.wakeup

4. sleepwatcherをHomebrewサービスとして起動

brew services start sleepwatcher

各ステップの詳細解説

1. sleepwatcherとは?

sleepwatcher はmacOSのスリープと復帰のイベントを検知して、指定したスクリプトを自動で実行する常駐プログラムです。
これにより、スリープ前後にDeskflowの停止・起動処理を自動化できます。

2. スリープ時スクリプト(~/.sleep

#!/bin/sh
osascript -e 'quit app "Deskflow"' 2>/dev/null
sleep 5
pkill -9 -x Deskflow 2>/dev/null
  • osascript -e 'quit app "Deskflow"' はDeskflowに正常終了を促します。
  • sleep 5 で終了処理が完了するまで待ちます。
  • pkill -9 -x Deskflow で念のため強制終了します。

3. 復帰時スクリプト(~/.wakeup

#!/bin/sh
open -a Deskflow
  • open -a Deskflow で復帰後にDeskflowを起動し直し、キーボード共有を復活させます。

4. Homebrewサービスでの自動起動

brew services start sleepwatcher
  • sleepwatcherをmacOSのLaunchAgentとして自動起動・常駐させ、スリープや復帰イベントを監視します。
  • Macを再起動しても自動的に動くので設定は一度でOKです。

なぜこの問題が起こるのか?

Macがスリープから復帰すると、Deskflowのキーボード共有機能が停止し、クライアントPCにキーボード入力が送られなくなります。
そのためクライアント側でキーボード操作ができない状態が続きます。(マウスは正常に動作します)

Deskflowは復帰イベントを完全には処理できていないため、この問題が起きています。


まとめ

  • sleepwatcherでスリープ前後にDeskflowを停止・起動するスクリプトを実行することで問題を解決
  • AppleScriptで正常終了を促し、念のため強制終了も行う安全設計
  • Homebrewサービスで自動起動設定すると安定して運用可能

参考リンク


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?