scrotを実行するためにキーボードショートカットを使用する必要がないようにするにはどうすればよいですか?

scrotを実行するためにキーボードショートカットを使用する必要がないようにするにはどうすればよいですか?

スクリーンショットを撮るためにキーボードショートカットを使いたいですscrot --select。以下を追加してみました。私のrc.luaPrintScrこの目的のためにキーを使用してください。

awful.key({}, "Print", function () awful.spawn("scrot --select") end,
    {description = "take screenshot of selection", group = "client"}),

残念ながら、これはxsession systemdログに次のエラーメッセージを表示します。

giblibエラー:キーボードをキャッチできません。リソースは一時的に使用できません。

キーの組み合わせをscrot押しながらキーボードをつかむ必要があるようです。Fn+PrintScrこの問題を解決する1つの方法関数をかなり複雑にします。

awful.spawn.with_shell("sleep 0.5 && scrot --select")

and bitは、実行する前にキーを離す.with_shell時間を与えるハッキングです。もちろん、キーが長すぎると、上記のエラーが原因でコマンドが失敗し続けることを意味します。sleepscrot

よりエレガントなソリューションジョブは信頼できません。 xdotoolをインストールし、スクリーンショットコマンドで設定し、に追加しましたが、xdotool key XF86Ungrab && scrot --selectまだ上記のエラーが発生します。grab:break_actionsservices.xserver.xkbOptionsほとんどの場合。繰り返し押すと結局Fn+PrintScrはうまくいきますが、明らかな理由はありません。

答え1

問題に対する解決策ではありませんが、代わりに使用する場合は、maim画像をクリップボードに自動的にコピーする機能もscrot使用しましたが、これは非常に便利です。xclip

awful.key({}, "#107",
  function ()
    awful.util.spawn_with_shell("FILE=" .. os.getenv("HOME") .. "/Media/Screenshots/snapshot-$(date +%Y-%m-%dT%H-%M-%S).png && maim -s --hidecursor $FILE && xclip -selection clipboard $FILE -t image/png")
  end),

関連情報