ラベル scrot の投稿を表示しています。 すべての投稿を表示
ラベル scrot の投稿を表示しています。 すべての投稿を表示

☆モザイク加工のためにGimpは重すぎるので

今まではGimpでスクリーンショットにモザイク加工をしていたのですが、重くてどうもなじめません。
代替のソフトを探してみたのですが適当なものが見当たりませんでした。
そこでJTrimというWindows用のソフトをwine経由で使うことにしました。
(このためだけにwineを導入しているわけではなく、私はテキストエディタとメーラー(スパム削除用)、あまり使いませんがTwitterクライントをwine経由で入れてます。)
環境はUbuntu 0910 Karmic Koala、wine1.2です。

●導入

上記のJTrimのリンクからセットアップ版、jt153c.exe をダウンロードします。
wineをダウンロードしたファイルを引数にして立ち上げます。

wine ~/Downloads/jt153c.exe 
インストーラー画面は文字化けしていますが、かまわずにデフォルトで進めていきます。
(ショートカットの作成場所を選択するチェックボックスはオフにしました。)
インストールが終了すると[メニュー]/[その他]の下にJTrimが表示されるようになります。
起動すれば使えます。インストーラーと違って文字化けはありません。
ログインしてから初めてwineアプリを起動するときは若干重いのですが、それ以降は軽快に起動します。

●設定

JTrim本体はとくに設定をしていません。デフォルトで使っています。
ここではMirageと連携させるためにMirage側の設定をします。
ついでにショートカットキーでスクリーンショットを取る際にファイル名を気にせずにバシバシ [Alt]+Printを叩けるようにxfceの設定をいじります。

■xfceのショートカットキー設定

まずはxfceのショートカットキー設定。xfce4-keyboard-settings を起動して[アプリケーションショートカットキー(C)]タブを開きます。
ショートカットキーがPrintとなっている行の左側をダブルクリックして

scrot 'scrot-%F-%H%M%S.png'
と入力します。同じように<Alt>Printの左側を
scrot -b -u 'scrot-%F-%H%M%S.png'
と入力します。"%F-%H%M%S" の意味はdateコマンドに指定できるものと同じです。manpageを参照してください。
これで一秒以上間をあければ重複しないファイル名でスクリーンショットが取れます。間隔一秒未満で取得したい場合は%Nをつければいけそうです。
パスを指定していないので ホームディレクトリにファイルができます。パスを指定する際は 環境変数や~が使えないので注意してください。

ちなみにGnomeデスクトップでは"<Alt>Print"をどうしても置換えできませんでした。
設定画面で"<Alt>Print"を押しても"<Alt>Excute"になってしまうからです。
設定ファイルを開いて修正しても、もともとのショートカットが無効にならず手詰まりになりました。もともとのショートカットは設定画面でショートカットの列をクリックしてから[Backspace]で無効に出来ます、その後gconf-editorで設定を変更したのですが、それでもダメでした。
(xfce4-keyboard-settingsでも"<Alt>Print"を押すと"<Alt>Excute"なるのですが、上記のようにデフォルト設定のコマンド側だけを変えればよいので問題ありません。)

■Mirageの設定

Mirageのカスタムアクションを設定して、見ている画像をJTrimに引き渡して起動できるようにします。
Jtrimの起動コマンドラインは長いのでシェルを作っておきます。
~/.local/share/applications/wine/Programs/JTrim/JTrim.desktop の Excec=で始まる行に "$@" を追加したものを用意します。

~/bin/jtrim
#!/bin/bash
env WINEPREFIX="/home/masaya/.wine" wine "C:\\Program Files\\JTrim\\JTrim.exe"  "$@"

Mirageを立ち上げてメニューから[Edit]-[Custom Actions]-[Configure]を選択します。
右横の[+]ボタンを押してCustom Actionを追加します。
入力内容は下図参照。ショートカットは "<Control>r" を割り当てました。
メイン画面で "<Control>r" を押すと表示している画像をJTrimで開けるようになります。

Custom Actionの入力画面 Custom Actionの設定画面

●JTrimの操作(モザイク処理)

モザイクをかけたい場所をあらかじめドラッグして矩形選択しておきます。(選択範囲がないと画像全部に適用されます。)
メニューの[加工]-[ガウスぼかし]を選択すればOKです。意味なくキーボードの図の部分をぼかしてみました。

☆scrotで連続スクリーンショット

前回の投稿はscrotで約一秒毎のスクリーンショットを取りました。
ターミナルで適当なディレクトリを作って移動し、以下のコマンドラインを実行。
停止はCtrl+Cです。(忘れると大変なことになりますが....)

while true; do sleep 1;scrot -b -u 'usplash-%j-%T.png'; done

出来上がるファイル名は後で選別する際にわかりにくいので、まとめてリネームします。
いきなりはリネームは怖いので、まずは表示して確認、そのごシェルに渡して実行です。
以下のようなperlスクリプト"ren_scrot.pl "を作り、実行権限をつます。

#!/usr/bin/perl
my($prefix) = shift;
my($i) = 0;
while(<>){
    chomp;
    next if /^$/;
    $i++;
    $file = sprintf "${prefix}-%03d.png", $i ;
    print "mv $_ $file\n";
}

使い方は

ls *.png | ren_scrot.pl hoge
(hogeはプレフィクス) 出力を確認して問題なければ
ls *.png | ren_scrot.pl hoge | bash -s
でリネームを実施します。

一旦投稿してから

i=0; while true; do sleep 1;i=$(($i + 1)); scrot -b -u `printf 'hoge-%03d.png' $i`; done
でもOKだと思いました。つどprintfコマンドを起動するところが若干重いような気もしますが。
ren_scrot.pl は別の用途でも使えますし。(完全に自分に対する言い訳ですねこれは。)

☆コマンドラインで保存ファイル名が指定できるスクリーンショト取得ツール scrot

スクリーンショットを取得する場合は大抵、"hoge-01.png" のように "何か意味のある名前" + "ユニークにするための連番" + ".拡張子" つけることが多く、都度ファイル名を入力するのが面倒です。
Ubuntu標準のgnome-screenshotやxfceのxfce4-screenshooterはコマンドラインでファイル名を入力することができませんし、連番をつけてくれるような機能もありません。

例によってまずは、apt-cache search 'screenshot' で候補を探します。KDEやqtベースのものを除外していくと shutter くらいしか残りませんでした。
shutterのWebサイトを見て http://shutter-project.org/faq-help/man-page/ みると残念ながらコマンドラインでファイル名の指定はなさそうです。
とりあえず試そうと apt-get install shutter すると30個ほどパッケージが導入されるので中止しました。

ここで、そういえばSLiMを導入したときにscrotを入れていたことを思い出しました。
少なくともコマンドラインで保存ファイル名が指定できることは判っています。
ということは少なくとも簡単なスクリプトを書けば連番でスクリーンショット取れることは確実です。しかも超軽量。

もっと便利な方法があるかもしれないので、man scrot。
調べてみると日時をファイル名に含ませるような指摘が可能なので連番の代わりにこちらを使うことにしました。
日時はdateコマンドの書式指定と同じでstrftimeで解釈されると書いてあります。
選択した範囲やウィンドウのキャプチャもできるようです。
取得した画像を確認したいので Eye Of Gnome を組み合わせて使うことにします。
(mirageを使いたかったのですが、EoGのようにディレクトリ内にファイルが増えたことを認識しないのであきらめました。)

●取得作業の例

まずは取得したスクリーンショットを保存するディレクトリを用意しておきます。
ここではとりあえず "~/png/" とします。
eogは画像の入っていないディレクトリを指定して起動すると、後から画像ファイルができても見てくれません。(gthumはOKだったりしますが)
そこで一回目のキャプチャを行ったときにscrotから起動します。( -e オプションを使用)
初回キャプチャ時のコマンドラインは以下のようにします。(保存ディレクトリに移動してから)
3秒後に[選択範囲またはアクティブウィンドウ]をキャプチャする指定です。
ついに "-t 25" で25%の大きさのサムネイルを作っています。
"Taking shot in"の後ろは一秒ごとに3,2,1とカウントダウンされていきます。(-d オプション)
-s をつけていると起動した端末がフォーカスを失ってからカウントダウンを始めるようです。

$ scrot -b -c -d 3 -s -t 25 '%j-%T.png' -e 'eog $f'
Taking shot in 3.. 2.. 1.. 0.
2度目からは" -e 'eog $f'" を省いて起動します。
$ scrot -b -c -d 3 -s -t 25 '%j-%T.png'
Taking shot in 3.. 2.. 1.. 0.
これでスクリーンショットを取るたびにEoGのサムネイルの箇所に表示されるファイルが増えていきます。

取得したキャプチャのサンプル
(この表示ではわかりませんが、ちゃんとサムネイルは25%サイズになってます。)
Eye Of Gnome の状態

参考までに出来上がったファイル(サムネイルは取得時指定したファイル名の ".png" を "-thumb.png" に置き換えた名称になってます。)

~/png$ file *
037-23:23:52-thumb.png: PNG image, 239 x 222, 8-bit/color RGB, non-interlaced
037-23:23:52.png:       PNG image, 957 x 890, 8-bit/color RGB, non-interlaced
037-23:24:50-thumb.png: PNG image, 239 x 222, 8-bit/color RGB, non-interlaced
037-23:24:50.png:       PNG image, 957 x 890, 8-bit/color RGB, non-interlaced
037-23:25:06-thumb.png: PNG image, 242 x 248, 8-bit/color RGB, non-interlaced
037-23:25:06.png:       PNG image, 968 x 994, 8-bit/color RGB, non-interlaced

☆そんなにお勧めできませんが、SLiM試してみませんか

SLiM とは "Simple Login Manager" の略のようです。
タイトルどおりでそんなにお勧めできませんが、GDMやKDMじゃないものを使いたい方は試してみませんか。

公式サイトhttp://slim.berlios.de/index.php 、テーマhttp://slim.berlios.de/themes01.php にあります。

ちなみに私はテーマいじってをこんなふうにしています。

●特徴

  • ・F1キーで使用するデスクトップ環境を選択できる。しかしキーボードレイアウトや言語は指定できない。
  • ・テーマに対応。テーマはごく簡単な構造。

とにかくシンプルです。

以下、Ubuntu 9.10 Karmic Koala での導入、基本的な設定方法を記述します。
ページを改めてもうちょっと便利な(.dmrcを読書きして前回の指定をデフォルトにする)変更方法を書くつもりです。
( 追加しました。SLiMのデフォルトを前回と同じにする

●パッケージの導入

なぜかKarmicのリポジトリにはslimが存在しません。jauntyやlucidにはあります。
仕方がないのでUbuntu Packages SearchのSearch package directoriesで検索します。

検索結果をたどって http://packages.ubuntu.com/lucid/slim
の下の方にダウンロード用のリンクがあるので環境にあわせてamd64かi386用のdebを入手します。

以下はi386用を前提にしてます。(amd64は使ったことがありません。)
依存しているパッケージは

libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libjpeg62, libpam0g (>= 0.99.7.1), libpng12-0 (>= 1.2.13-4), libstdc++6 (>= 4.1.1), libx11-6, libxft2 (>> 2.1.1), libxmu6, debconf (>= 1.2.9) ,debconf-2.0 
だけなので、すんなりインストールできると思います。
sudo dpkg -i slim_1.3.1-4_i386.deb
で手動インストールします。途中で使用するディスプレイマネージャを選択するようになっているのでslimの方を選択します。

ついでにログイン画面のキャプチャが取れるようにscrotを導入します。

sudo apt-get install scrot

●設定 (/etc/slim.conf の編集)

使用のために編集が必要なする項目はsessionsです。
デフォルトでは

sessions          default,startxfce4,openbox,ion3,icewm,wmaker,blackbox,awesome
となっていますが
sessions         default,gnome,startxfce4,startlxde
のように編集します。基本的に/usr/share/xsessions/*.desktop のExcec= で指定されたコマンドを記述できますが、gnome-session -f  のように引数がついているものは指定できません。
仕方がないので中に gnome-session -f  を記述したシェルスクリプトを/usr/bin/ に作成し、そのファイル名を指定します。
また、なぜか/usr/share/gdm/guest-session/Xsessionや/usr/bin/openbox-gnome-sessionは起動できませんでした。

テーマは/usr/share/slim/themes/ の下にあります。
初期状態ではdebian-moreblue,debian-moreblue-orbit,defaultの3つが存在します。
http://slim.berlios.de/themes01.php からテーマを取得したらこの下に入れます。

設定ファイル内のcurrent_themeで使用するテーマを指定します。
初期状態では current_theme debian-moreblue-orbit になっています。

ログイン画面のスクリーンショットを取得したい場合は

# Executed when pressing F11 (requires imagemagick)
screenshot_cmd screenshot_cmd scrot /tmp/slim.png

# Executed when pressing F11 (requires imagemagick) 
screenshot_cmd  scrot /tmp/slim-%F-%H%M%S.png
に変更します。コメントのimagemagickは関係なさそうです。(開発者の使用しているディストリビューションではscrotがimagemagickのパッケージに含まれているのでしょうか?)
-%F-%H%M%S を追加して一度のログインで複数枚のショットが取れるようにしています。
ファイルは所有者rootです(何せログインする前ですから)。 /tmp はスティキービットが立っているのでsudoできないユーザは消せません。これが気になる場合はディレクトリを適当に変えてください。

●操作方法

F1でデスクトップ環境の選択、F11でスクリーンショットの取得ができます。
F1を押さない場合、defaultを選択した場合は/etc/alternatives/x-session-manager のリンク先が起動されます。

もう少し詳しく説明すると、/etc/slim.confのlogin_cmdが
exec /bin/bash -login /etc/X11/Xsession %session
になっているので %session が指定されていなかったりwhichでフルパスが取得できないと/etc/X11/Xsession.d/50x11-common_determine-startupで/usr/bin/x-session-manager が起動されます。
/usr/bin/x-session-manager は /etc/alternatives/x-session-manager のシンボリックリンクです。
(ホームディレクトリに.xinitrcや.xserverrcがあるとそちらが優先されるようです。)
あとはユーザ名を入れてEnter,パスワードを入れてEnterです。認証が失敗した時のリアクションが特にないのがちょっと不親切です。

シャットダウンを行いたい場合はユーザ名をhalt、再起動の場合はrebootにしてrootのパスワードを入力するとシャットダウン、再起動ができます。
(gnomeやxfce4にログインしていれば、終了時にシャットダウンや再起動を選ぶことでrootパスワードを知らなくてもシャットダウン、再起動ができます。)