
命令を追加したい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+s
straceログでは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秒増やすことだ。