Perlモジュール Imagerをインストール

インストール

cpanでImagerをインストールする前にやっておく事があります。jpeggifpngなどの人気の高い画像形式をImagerで利用するために、ライブラリをインストールします。

$ apt-get install libpng-dev libgif-dev libjpeg-dev

その後、最新版のImagerをcpanからインストールします。

$ cpan -i Imager

Imagerが対応している画像形式は%Imager::formatsを確認すれば見ることができます。

use Imager;
my @keys =  sort keys %Imager::formats;
print "対応画像形式は" . join(",", @keys);

コードで確認したところ、対応画像形式はbmp,gif,ifs,jpeg,png,pnm,raw,tgaとなっています。

$ perl print_imager_formats.pl
$ 対応画像形式はbmp,gif,ifs,jpeg,png,pnm,raw,tga

FluxBoxをインストしたので、それについてのメモ書き

  1. 特徴
  2. インストール
  3. 日本語化
  4. 壁紙を変更する
  5. メニューを変更する
  6. ログイン後の起動プログラムを決める
  7. ワークスペースを使って、作業スペースを増やす

特徴

f:id:start162432:20151207203822p:plain

  • 軽い(サイズが4M)
  • カスタマイズ性が高い
  • ワークスペースの切り替えを使うことにより、作業スペースが広くなる(小さいディスプレイで困ってる人におすすめ)

インストール

Debian系のディストリビューションを使ってる方は、以下のコマンドでインストールすることができます。

apt-get install fluxbox

Redhad系のディストリビューションを使ってる人はyumで出来ると思います。

yum install fluxbox

参考 | fluxbox : centosとかfedoraとか組み込みLinuxとかの色々備忘録

インストール後は、ログイン画面に戻って、ウインドマネージャーの選択からFluxboxを選択してください。

簡単な日本語化

f:id:start162432:20151207203459p:plain
デスクトップ上で右クリックをするとメニューが表示されます。Fluxboxでアプリケーションをたちあげたり、見た目を変えるときは右クリックのメニューを使います。やってみるとどうでしょう。見事に文字化けしてますね。文字化けに何種類か対策方法があります。一番簡単な方法は違うStyleに変更してしまうことです。Style→Emergeに変更してみましょう。文字化けがなくなったと思います。

壁紙を変更する

壁紙を変更したい場合はfbsetbgコマンドを使います。画像の置いてあるPathを指定します。そうすればデスクトップの壁紙が変わります。

fbsetbg /home/username/ref_image/background/black.png

メニューを変更する

~/.fluxbox/menuから見ていきましょう。~/.fluxbox/menuはmenuを変更するためのテキストファイルです。その中に記述されている[include]の部分を変更していきます。

[begin] (fluxbox)
[include] (/etc/X11/fluxbox/fluxbox-menu)
[end]

まず、/etc/X11/fluxbox/fluxbox-menuを~/.fluxbox/cpmenuファイルとしてコピーします。

cp /etc/X11/fluxbox/fluxbox-menu ~/.fluxbox/cpmenu

そして、~/.fluxbox/menuのincludeをcpmenu書き換えます。

[begin] (fluxbox)
[include] (~/.fluxbox/cpmenu)
[end]

これで準備完了です。あとはcpmenuを編集するとメニューのアプリケーションの部分を変更することが出来ます。fluxboxはブラウザメニューがありません。そのため、ブラウザをメニューから起動出来なく不便です。なので追加してみます。

~/.fluxbox/cpmenuの中身を書き換えていきます。

   [submenu] (アプリケーション) {}
       [submenu] (アクセシビリティ) {}
          [exec] (Xmag) {xmag} <>
       [end]

一番上にブラウザを表示させるためにsubmenuとexecを追加します

   [submenu] (アプリケーション) {}
       [submenu] (ブラウザ) {}
          [exec] (GoogleChrome) {google-chrome} <>
       [end]
       [submenu] (アクセシビリティ) {}
          [exec] (Xmag) {xmag} <>
       [end]

そうするとこのようにメニュー画面が変更されます。

f:id:start162432:20151208165930p:plain
f:id:start162432:20151208165938p:plain

ログイン後の起動プログラムを決める

~/.fluxbox/startupを編集すれば、起動プログラムを設定することができます。startupファイルの構成は、xmodmap */home/user/..Xmodmapから始まりexec fluboxで終わっています。そして、起動したいプログラムをこの間に書いときます。

Xmodmap "/home/user/.Xmodmap

ここに書く

exec fluxbox

実際に書いてみる

Xmodmap "/home/user/.Xmodmap

nm-applet &
gnome-terminal &
google-chrome &

exec fluxbox

nm-appletはネットワークマネージャーで無線lanなどを使っている人は必要だと思います。

ワークスペースを使って、作業スペースを増やす

f:id:start162432:20151207224931p:plain

ワークスペースとはデスクトップのことです。ワークスペースは4つ用意されています。つまり4つのデスクトップが用意されています。例えば、ワークスペース2に移動したければ、Ctrl+F2押します。ワークスペース4に移動したければ、Ctrl+F4に移動します。このように複数のデスクトップを利用することにより、作業スペースを増やすことができます。

例えば、ワークスペース1で動画を再生しながら、ワークスペース2でプログラミングをするということも可能です。自分の好きなタイミングで動画を見て、飽きたらプログラミングするという使い方もできます。使い方は自由です。

ワークスペースのショートカット

ショートカット 説明
Ctrl+F1-F4 ワークスペースを移動
Windowsボタン+F1-F4 アクティブのウインドウを指定したワークスペースに移動する

bashのコマンドでPerlモジュールを見つける

とあるPerlのモジュールがインストールされているか知りたかったので、モジュールの見つけかたを調べてみました。

モジュールを見つける簡単な例

find `perl -e 'print "@INC"'` -name '*.pm' | grep モジュール名

findで探しgrepに渡し、自分の探したいモジュール名を入力します。正直なところ、いまいちわかりづらい部分があります。そのため、少し解説を加えてみます。

perl -e 'print "@INC"'

@INC配列はモジュールのパスが入っています。その配列の中身をprintで表示させています。以下は実際に@INC配列を表示させてみました。

perl -e 'print "@INC"'

/etc/perl
/usr/local/lib/x86_64-linux-gnu/perl/5.20.2
/usr/local/share/perl/5.20.2
/usr/lib/x86_64-linux-gnu/perl5/5.20
/usr/share/perl5
/usr/lib/x86_64-linux-gnu/perl/5.20
/usr/share/perl/5.20
/usr/local/lib/site_perl

findコマンド

findコマンドは

find ディレクトリ 検索条件

で構成されています。ディレクトリは先ほどPerlで表示させたモジュールパスの一覧が複数並んでいる状態になります。つまり

find /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.20.2...

となっています。最後に検索条件の-nameがついています。ここでは検索パターンを並べてます。*.pmとなっているので.pmがついたファイル全てを表示してくれます。実際にfindで調べた結果の一部を見てみます。

/usr/local/share/perl/5.20.2/LWP/Protocol/file.pm
/usr/local/share/perl/5.20.2/LWP/Protocol/cpan.pm
/usr/local/share/perl/5.20.2/LWP/Protocol/loopback.pm
/usr/local/share/perl/5.20.2/LWP/Protocol/nogo.pm
/usr/local/share/perl/5.20.2/LWP/Protocol/nntp.pm
/usr/local/share/perl/5.20.2/LWP/Protocol/ftp.pm
/usr/local/share/perl/5.20.2/LWP/Protocol/mailto.pm
/usr/local/share/perl/5.20.2/LWP/Protocol/GHTTP.pm
/usr/local/share/perl/5.20.2/LWP/Protocol/https.pm
/usr/local/share/perl/5.20.2/LWP/Protocol/gopher.pm

grepコマンド

一通り.pmのついたファイルを表示させてから、grepにデータを渡してます。grepは表示した結果から欲しい情報だけ表示することができます。例えばDBIxがついたディレクトリを調べたい場合。

 find `perl -e 'print "@INC"'` -name '*.pm' | grep DBIx

/usr/local/share/perl/5.20.2/DBIx/Class/InflateColumn/File.pm
/usr/local/share/perl/5.20.2/DBIx/Class/InflateColumn/DateTime.pm
/usr/local/share/perl/5.20.2/DBIx/Class/Serialize/Storable.pm
/usr/local/share/perl/5.20.2/DBIx/Class/ResultSourceHandle.pm
/usr/local/share/perl/5.20.2/DBIx/Class/Carp.pm
/usr/local/share/perl/5.20.2/DBIx/Class/ResultSet.pm

と、なります。

雑魚いプログラムでもいいから書き終わると頭がスッキリする

凄いプログラムは書けることなんてほとんどないけど、雑魚いプログラムならいくらでもかけるので、雑魚いプログラミングして頭をリフレッシュさせよう。