web-dev-qa-db-ja.com

i3wm:キーにバインドするとスクリーンショットスクリプトが失敗する

imagemagickのimport Shellコマンドは、デスクトップのスナップショットを取得します。実行中

import /tmp/foo.png

カーソルを十字線に変換し、キャプチャする画面領域を選択できるようになります。ただし、そのコマンドをi3wm-hotkeyにバインドしようとすると、機能しません。

私のi3wm設定ファイルの次のキーバインド

# ...
bindsym $mod+m exec "import /tmp/foo.png"
# ...

次のエラーが発生します(ターミナルにパイプアウトできます)。

import-im6.q16:マウス `'を取得できません:そのようなファイルまたはディレクトリはありません@ error/xwindow.c/XSelectWindow/9187。

それはなぜですか、どうすればそれを機能させることができますか?

2
Jersey

問題は、押すとすぐにキーバインドが起動することです Ctrl+m。追加 --releaseキーを離したときに起動するbindsym呼び出しを実行すると、次のように機能します。

bindsym --release $mod+m exec "import /tmp/foo.png"

これも 文書化

一部のツール(importやxdotoolなど)は、キーボード/ポインターがまだ取得されているため、KeyPressイベントで実行できない場合があります。このような状況では、-releaseフラグを使用できます。これにより、キーが解放された後にコマンドが実行されます。

2
dirdi