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

☆コマンドラインで保存ファイル名が指定できるスクリーンショト取得ツール 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

☆EoGやgThumbではなくMirageを使う理由

今回はUbuntuで使う画像ビューアについて。
私が使っているのは Mirage http://mirageiv.berlios.de/ です。

Mirageの日本語訳は蜃気楼ですが、私はなぜかフランスの戦闘機でそんな名前のものがあったことを思い出しました。

Mirageのスクリーンショット


こちらは Eye of Gnome(EoG) http://projects.gnome.org/eog/


そして gThumb http://live.gnome.org/gthumb


Mirageを使用するようになったキッカケはMoblinですが、 EoGやgThumbより以下の点で優れていると思います。

●サムネイルがサイドに出る。(これが私にとって最大のポイント)

画面は4:3にしろ16:9にしろ横長であることに変わりがありません。
サムネイルが横に出ていた方が画像を大きく表示することが出来ます。

gThumbはサムネイル表示をする"browser window"と大きく表示する"viewer window"が完全に別です。

●画像をスペースキーやツールバーの矢印で進めて行っても先頭へWrapしない

EoGは画像を進めていくと先頭にもどってしまいます。これを制御する設定は無いようです。
(特に下部にサムネイルを表示していない状態で同じようなファイルがたくさんあるディレクトリを閲覧していると迷子になってしまいます。)

gThumbは最後の画像で止まります。これを制御する設定は無いようです。

Mirageは設定に"Wrap around imagelist"という項目があって、"No","Yes","Prompt"が選べます。

●[ファイルを開く]と[ディレクトリを開く]がはっきり分かれている

EoGは単一ファイルを選択して開いても同一ディレクトリに存在する画像ファイルがすべてサムネイル部分に表示されます。(なぜか2つ以上のファイルを指定した場合は、素のファイルだけがサムネイル部分に表示される。コマンドライン指定でも同様。)

gThumbはGUIの場合、[ディレクトリを開く] しかできないようです。コマンドラインではEoGと同じような動作をします。ただし --viewer と 単一ファイルを指定すると一つのファイルを開けます。

MirageはGUIではメニューに [ファイルを開く]と[ディレクトリを開く]が別々にありますし、コマンドラインでも単一ファイルを指定、複数ファイル指定、ディレクトリ指定ともに指定したとおりの動作をします。

その他Mirageには下記のような機能があります。
○スクリーンショットの取得
○画像編集(回転、反転、クロップ、リサイズなど)
○カスタムアクションの設定(Gimpで編集など)

改良を望みたい箇所が2点ほどあります。
○ヤシの木見たいなアイコンはちょっといただけないです。画像関連のソフトだと分かるようなアイコンに変えて欲しい。
○ターミナルから起動した場合、結構Warningが端末に出力される。どうもGTKまわりで古いAPIを使っているようです。
/usr/lib/python2.6/dist-packages/mirage.py:1934: DeprecationWarning: Use the new widget gtk.Tooltip
  gtk.Tooltips().set_tip(addbutton, _("Add action"))
/usr/lib/python2.6/dist-packages/mirage.py:1938: DeprecationWarning: Use the new widget gtk.Tooltip
  gtk.Tooltips().set_tip(editbutton, _("Edit selected action."))

ターミナルから起動する頻度が結構高いので、.bashrcに
function miragef() {
    mirage $*  2>&1 |grep -v 'DeprecationWarning:'
}
と言う記述を追加して miragef で起動してます。

☆moblin2.1でもsylpheed

moblin2.1をインストールしているPCはほかに普通のubuntuやubuntu NBRを導入しています。
ubuntuでメーラーをsylpheedにしているのですが、moblin2.1のリポジトリにはsylpheedがありません。
(yum search sylpheed で検索すると claws-mail というsylpeedの亜種が出てきますが、これがなぜか起動できませんでした。)

こういう場合は自前make。例によってtar.gzを下記のところへ置きました。
https://sites.google.com/site/midspeclowload/files/moblin21_sylpheed.2.7.1.tar.gz?attredirects=0&d=1

初期状態では入っていないcompfaceが必要なので

sudo yum install compface
してから上記ファイルを / 直下で展開すれば起動できます。

メール中のURLをクリックした際にブラウザを起動して閲覧できるように
するためにはパスの通ったところに sensible-browser が必要なようです。
私は下記のようにしました。

suod ln -s /usr/bin/firefox /usr/bin/sensible-browser

☆geditの代わりにgeany

私はgeditの代わりにgeany http://www.geany.org/ というエディタを使ってます。
使い出したきっかけはWinXPで作成したファイルをnkfでutfに変換したものがgeditで開けず、
往生したことです。
 スクリーンショットはこちら http://www.geany.org/Documentation/Screenshots
スクリーンショットは英語ですが、メニューはきちんと日本語が出ます。

公式ホームページでの説明は

Geany is a text editor using the GTK2 toolkit with basic features of an integrated development environment. It was developed to provide a small and fast IDE, which has only a few dependencies from other packages. It supports many filetypes and has some nice features.
GeanyはGTK2 toolkitを使ったテキストエディタで統合開発環境として基礎的な機能を持っています。小さくて速いIDEを提供するために開発され、ごく少数の他のパッケージに依存しています。多くのファイルタイプをサポートし、いくつかのすばらしい機能を持っています。

起動はとても高速でgeditと変わりません。
下部のメッセージウィンドウとサイドバーのシンポルリストを非表示にすれば
通常のエディタとして違和感なく使えると思います。

ubuntu karmicではリポジトリ(Section: universe/devel)に入っています。
moblin2.1はリポジトリになかったのでmakeしたファイルを
https://sites.google.com/site/midspeclowload/files/moblin21_geany.0.18.tar.gz?attredirects=0&d=1
におきました。(rpmの作り方がわからないのでただのtar.gzです。)

geditの代わりにgeanyを使うメリットは

  • ・不正なコードポイントが存在してもファイルが開ける
  • ・検索、置換に正規表現が使える。かっこ"()"で囲ったパターンににマッチした文字列を\1,\2で置換に使える。(個人的にこれ重要です)
といったとことでしょうか。

ちょっと変わったところでは

  • ・メッセージウィンドウの"走り書き"(Scribble)。テキストが入力できます。終了しても次回起動時に入力した内容が残ってます。
  • ・メッセージウィンドウの"端末"(Terminal) http://www.geany.org/uploads/Gallery/geany_vte.png xtermみたいなものでコマンドが打てます。通常のターミナルと同じcopy/pasteをサポートしてます。
  • ・プラグインにファイルブラウザがあります。(geditにもありますが)

☆これはお勧め gmrun

gmrunは http://directory.fsf.org/project/gmrun/ の冒頭で

'Gmrun' is a run-program utility that provides bash-like TAB completion and history, the ability to run commands in a terminal using CTRL-Enter. CTRL-R/CTRL-S may be used for history searches, similar to 'bash'.
'Gmrun'はプログラムを実行するユーティリティで、bashのようなTAB補完と履歴を提供し、CTRL-Enterを使ってターミナルでコマンドを実行できます。CTRL-R/CTRL-Sは'bash'と同じで履歴の検索に使えます。

と紹介されています。(日本語訳が間違っていたらごめんなさい)

上記には記述されてませんが、矢印キーのUp/Downで履歴を行き来することも出ます。
'http:'や'mailto:'で始まる文字列を処理するアプリケーションを指定することも可能です。
(詳しくはgmrunrcの設定で記述します。)
拡張子による処理アプリケーションの指定も可能です。

gnome,xfce,LXDEいずれもAlt+F2でコマンドラインのラウンチャーが起動しますが、
補完と履歴の両方を備えているのはgnomeのものだけ。

補完と履歴のを備えたコマンドラインベースのラウンチャーを探している方にお勧めです。
gnomeのコマンドラインのラウンチャーのような補完動作もできるのでgnomeユーザも
試してみてはいかがでしょうか。

以下、ubuntu 9.10 karmic koala を前提にして導入方法、使い方を紹介します。
(ちなみに依存するライブラリは少なく、Version: 0.9.1-2.4のバイナリをコピーしただけでmoblin2.1でも動作しました。しかし、別の投稿で記述する0.9.1-4はmoblin2.1で動作しませんでした。)

●導入

リポジトリに入っているので(Section: universe/x11)、apt-getで導入できます。
これを書いている時点では Version: 0.9.1-2.4 です。

sudo apt-get install gmrun

●設定

gmrunの設定ファイルは $HOME/.gmrunrcと /etc/gmrunrc です。$HOMEの方が優先されます。

これはちょっと長くなるので先に xfceとLXDEでデフォルトのラウンチャーと置き換える方法を先に記述します。

■xfceでデフォルトのラウンチャを置き換える場合

$HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
の内容を書き換えます。(設定用のGUIもあります。)
ここではF2はそのままにして、Windows+Rにgmrunを割り当てます。
書き換え前

<property name="<Alt>F2" type="string" value="xfrun4"/>

書き換え後(上記の下に一行追加)
<property name="<Alt>F2" type="string" value="xfrun4"/>
<property name="<Super>r" type="string" value="gmrun"/>

■LXDEでデフォルトのラウンチャを置き換える場合

$HOME/.config/openbox/lxde-rc.xml
   の内容を書き換えます。(設定用のGUIは見つけられませんでした。)

書き換え前

<keybind key="W-r">
      <action name="Execute">
        <command>lxpanelctl run</command>
        <command>gmrun</command>
      </action>
  </keybind>

書き換え後
<keybind key="W-r">
      <action name="Execute">
        <command>gmrun</command>
      </action>
  </keybind>

■$HOME/.gmrunrcと /etc/gmrunrcの設定

なぜかVersion: 0.9.1-2.4のパッケージにはgmrunrcのサンプルが入っていません。
manpageは内容が古いようです。READMEは設定ファイルについての記述がほとんどありません。
(ほかにも0.9.1-2.4はapt-get source、debuildでコンパイルエラーがでるなど不備が多そうです。)
仕方がないので Version: 0.9.1-4の/etc/gmrunrcを参考にします。


# Set terminal
Terminal = gnome-terminal --start-factory-server --use-factory
TermExec = ${Terminal} -e
AlwaysInTerm = ssh telnet ftp lynx mc vi vim pine centericq perldoc man

Terminalはgmrunに何も入力されていない状態でCTRL-Enterを押した場合に起動する
ターミナルのコマンドラインを指定します。
TermExecはコマンドを入力してCTRL-Enterした場合に入力した場合の指定です。
(これはあまりいじる必要ななさそうです。)
AlwaysInTermは説明が見当たらなかったのですが、名前から推測するとENTERだけを
押下しても CTRL-Enterを押したように動作するコマンドの指定をしているようです。


# Set window geometry (except height)
Width = 400
Top = 100
Left = 200

ウィンドウの表示位置を設定します。画面のピクセル単位です。


# History size
History = 256

コマンド履歴のサイズ


# Shows last history line selected when invoked
ShowLast = 1

起動されたときに最後のヒストリを表示するかどうかを設定するようですが、
うまく動作しないようです。


# Show files starting with '.'
# Default is 0 (off), set it to 1 if you want "hidden" files to show up
# in the completion window
ShowDotFiles = 0

先頭がドットで始まるファイルを補完ウィンドウに表示する/しないを設定します。
これは1にしておいたほうがいいと思います。
(ドットで始まるコマンドはありませんが、引数に与えるファイル名としてはあるので)


# Timeout (in milliseconds) after which gmrun will simulate a TAB press
# Set this to NULL if don't like this feature.
TabTimeout = 0

何かキー入力した後に TabTimeout ミリ秒たつとタブが押下されたように補完を行います。
"0"にしておくとタブを押さない限り補完が葉たらなくなります。
"10"くらいにしておくとgnomeのラウンチャのように入力された文字列に前方一致するコマンドが
補完されて表示されます。


# URL handlers
# If the entered text is "http://www.google.com" then:
#   - %u gets replaced with the whole URL ("http://www.google.com")
#   - %s gets replaced with "//www.google.com".  This is useful for URL-s
#     like "man:printf" --> %s will get replaced with "printf"
URL_http = mozilla -remote "openURL(%u, new-window)"
URL_mailto = mozilla -remote "mailto(%s)"
URL_man = ${TermExec} 'man %s'
URL_info = ${TermExec} 'info %s'
URL_pd = ${TermExec} 'perldoc %s'
URL_file = nautilus %s
URL_readme = ${TermExec} 'less /usr/doc/%s/README'
URL_info = ${TermExec} 'info %s'
URL_sh = sh -c '%s'

URLハンドラの指定です。入力テキストが"http://www.google.com"のばあい
%uは "http://www.google.com" に置き換えられます。
%sは "//www.google.com"に置き換えられます。

私の環境では
URL_http =/usr/bin/firefox %u
URL_mailto = /usr/bin/sylpheed --compose %s
のようにしています。


# extension handlers
EXT:doc,rtf = AbiWord %s
EXT:txt,cc,cpp,h,java,html,htm,epl,tex,latex,js,css,xml,xsl,am = emacs %s
EXT:ps = gv %s
EXT:pdf = xpdf %s

拡張子による処理アプリケーションの指定です。

☆そんなにお勧めできませんが、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パスワードを知らなくてもシャットダウン、再起動ができます。)