SwayWMバインディングで引用符を正しくエスケープする方法

SwayWMバインディングで引用符を正しくエスケープする方法

次のように、SwayWMで選択したウィンドウのスクリーンショットを撮るコマンドがあります。

grim -g "$(swaymsg -t get_tree | jq -r '.. | (.nodes? // empty)[] | select(.pid and .visible) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp -o)"

端末では完全に実行されますが、キーバインディングにコマンドを追加すると次のようになります。

bindsym Ctrl+Print exec grim -g "$(swaymsg -t get_tree | jq -r '.. | (.nodes? // empty)[] | select(.pid and .visible) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp -o)"

次のエラーで失敗します(トリガー時に)。

sh: -c: line 1: unexpected EOF while looking for matching `''
sh: -c: line 2: syntax error: unexpected end of file

私に問題が発生する引用文のようですが、動作させることはできません。引用符を正しくエスケープし、コマンドが期待どおりに機能するようにするにはどうすればよいですか?

関連情報