scrotおよびgnome-screenshotインタラクティブモードのカスタムショートカットを作成する方法

scrotおよびgnome-screenshotインタラクティブモードのカスタムショートカットを作成する方法

命令を追加したいscrot-sカスタムショートカットでGNOMEコントロールセンターキーボード。アクセラレータキーはSuper + Sです。

ここに画像の説明を入力してください。

しかし、うまくいきません。

削除したら-Sまたは、次のような他の対話型コマンドを試してください。殺す、彼らは非常にうまく動作します。

返品、scrot -e 'mv $f ~/フィギュア/scrot/'また、素晴らしい動作します。

だから私の質問は、なぜですか?scrot-s動作しません。どうすれば解決できますか?

私のディストリビューションはfedora 21で、gnomeバージョンは3.14.2、scrotバージョンは0.8です。

【書き直す】 GNOMEスクリーンショット-aまた失敗しました。

[アップデート2]デフォルトのショートカットである「写真に領域のスクリーンショットを保存する」はうまく機能しますが、カスタムショートカットに設定すると、なぜ機能しないのかはまだ不思議です。 ここに画像の説明を入力してください。

[アップデート3] 以下は、カスタムショートカットコマンドのエラーログの結果ですstrace -v -s 1000000 -o /tmp/gnomescr.log gnome-screenshot -a

$ grep -ni CRITICAL /tmp/gnomescr.log 
2660:write(2, "\n(gnome-screenshot:8700): Gdk-CRITICAL **: gdk_pixbuf_get_from_surface: assertion 'width > 0 && height > 0' failed\n", 115) = 115
2686:write(2, "\n(gnome-screenshot:8700): Gtk-CRITICAL **: gtk_window_resize: assertion 'width > 0' failed\n", 91) = 91
2748:write(2, "\n** (gnome-screenshot:8700): CRITICAL **: Unable to capture a screenshot of any window\n", 87) = 87
$ 

ベストアンサー1

まず、systemd、Xorg.binなどの親プロセスに対してstraceを試みましたが、straceに初めて接するステップであることを把握できませんでした。

それから、権限問題(su -、sudo、...etc)と関連があると思いました。だからrootにショートカットキーを押してみましょう。だから私はsudo xdotool key Super+sそれをテストするために使用できることをすぐに実現しました。すると驚くほど効果がありました!

だからsudoなしで試してみましたが、xdotool key Super+sまだうまくいきました。だから私はうまくいくと結論付けましたが、xdotool key Super+sstraceログではxdotoolと押されたキーの違いはまだわかりません。

それからxdotool key Super+sカスタムショートカットで作っておけばどうかという考えがありました。だから、新しいカスタムショートカットを作成しました。スーパー+Jそしてcommandにバインドされますxdotool key Super+s。ここでスーパー+すでにコマンドにバインドされていますscrot -s。押すと機能します。スーパー+J

私は両方をテストしましたが、gnome-screenshot -aうまくscrot -s動作します。

【書き直す】私はこれを見つけました協会問題476:Xmonadは生成前にキーバインディングを解放する必要があります。:

報告者[Eメール保護]、2011年9月18日

ここで、Scrotはスクリーンショットを撮るために使用されます。 Scrotはキーボードをつかみ、中断信号でキーを押すことを聞きます。キーボードが利用できない場合、エラーが表示されます。

giblib error: couldn't grab keyboard:Resource temporarily unavailable

テストするには:

xmonad.hsのキーストロークに"scrot -s> /tmp/logfile"をバインドします。

キーを有効にすると何も起こりません。

ログファイルを確認して上記のエラーを見つけました。

ここでは、「sleep 0.2; scrot -s」へのバインディングが機能するため、これは競合状態だと思います。実際の問題は、生成されたアプリケーションがxmonadを待っている間にxmonadがキーボードに不必要にぶら下がっていることです。

どのバージョンの製品を使用していますか?どのオペレーティングシステムで? 0.9.2/スラックウェアLinux

彼はsleep同様の問題を解決するためにそれを使用します。私はそれをテストし、動作します。しかし、カスタムコマンドはサポートされていないため、シェルスクリプトに入れる必要があります。&&または;複数のコマンドを接続するために使用されます。しかし、睡眠時間0.2は時々私には適していません。安全な方法はもちろん、睡眠時間を0.5~1秒増やすことだ。

おすすめ記事