☆Startup-Managerに頼らないUsplashの変更

☆Karmic のusplashをカスタマイズではUsplashを切り替えるためにStartup-Managerを使用しました。
しかし、Startup-Mangerは起動しただけで update-grub が走るようでやたらディスクアクセスが発生しますし/boot/grub/grub.cfgのタイムスタンプが更新されていたりします。
そこで、"update-alternatives"でなんとかしようと思い、検索しました。
とてもわかりやすいサイトが出てきたので、これを参考にして作業してみます。

参考サイト: コマンドを便利に切り替える update-alternatives 使いこなし講座

2010/03/03 注追記:☆Karmic のusplashをカスタマイズで行った /etc/default/grub の変更を反映するためには下記の手順だけでなくupdate-grubの実行が必要です。

●現在の状態の確認

update-alternatives --display を使います。

$ update-alternatives --display usplash-artwork.so
usplash-artwork.so - auto mode
 リンクは現在 /usr/lib/usplash/usplash-theme-xubuntu.so を指しています
/usr/lib/usplash/usplash-theme-ubuntu-mono.so - 優先度 20
/usr/lib/usplash/usplash-theme-ubuntu.so - 優先度 10
/usr/lib/usplash/usplash-theme-xubuntu.so - 優先度 55
現在の `最適' バージョンは /usr/lib/usplash/usplash-theme-xubuntu.so です。


このとき設定ファイルがどうなっているか確認します。

$ cat /var/lib/dpkg/alternatives/usplash-artwork.so 
auto
/usr/lib/usplash/usplash-artwork.so

/usr/lib/usplash/usplash-theme-ubuntu-mono.so
20
/usr/lib/usplash/usplash-theme-ubuntu.so
10
/usr/lib/usplash/usplash-theme-xubuntu.so
55

●設定の変更

変更方法には--setオプションを使う方法と--configオプションを使う方法の2つがあります。

■設定の変更(--set を使う場合)

直接ファイル名を指定して変更を行います。
パッケージのpostinstの"update-initramfs -u"の前にこれを使いしておけばよかったんですね。
そうしないと"update-initramfs -u"は無駄撃ちです。

$ sudo update-alternatives --set usplash-artwork.so /usr/lib/usplash/usplash-theme-ubuntu-mono.so
update-alternatives: using /usr/lib/usplash/usplash-theme-ubuntu-mono.so to provide /usr/lib/usplash/usplash-artwork.so (usplash-artwork.so) in manual mode.


このとき設定ファイルがどうなっているか確認します。
先頭行がmanualになるだけでどれが選択されているかは記録されないようです。

$ cat /var/lib/dpkg/alternatives/usplash-artwork.so 
manual
/usr/lib/usplash/usplash-artwork.so

/usr/lib/usplash/usplash-theme-ubuntu-mono.so
20
/usr/lib/usplash/usplash-theme-ubuntu.so
10
/usr/lib/usplash/usplash-theme-xubuntu.so
55

■設定の変更(--config を使う場合)

--configと機能名を指定して、出てきたプロンプトに選択する番号を指定します。
(1 を指定して/usr/lib/usplash/usplash-theme-ubuntu-mono.soを選択)

$ sudo update-alternatives --config usplash-artwork.so
There are 3 choices for the alternative usplash-artwork.so (providing /usr/lib/usplash/usplash-artwork.so).

  Selection    Path                                           Priority   Status
------------------------------------------------------------
* 0            /usr/lib/usplash/usplash-theme-xubuntu.so       55        auto mode
  1            /usr/lib/usplash/usplash-theme-ubuntu-mono.so   20        manual mode
  2            /usr/lib/usplash/usplash-theme-ubuntu.so        10        manual mode
  3            /usr/lib/usplash/usplash-theme-xubuntu.so       55        manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/usplash/usplash-theme-ubuntu-mono.so to provide /usr/lib/usplash/usplash-artwork.so (usplash-artwork.so) in manual mode.

●initrdの更新

update-initramfsでinitrdを更新します。

$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-2.6.31-19-generic

これで再起動のときからUsplashが変更されます。

●おまけ。設定の変更(ついでに--autoで推奨設定に戻す)

このあとupdate-initramfs -u も必要です。

$ sudo update-alternatives --auto usplash-artwork.so
update-alternatives: using /usr/lib/usplash/usplash-theme-xubuntu.so to provide /usr/lib/usplash/usplash-artwork.so (usplash-artwork.so) in auto mode.

☆Wine上に手作業で導入したプログラムをメニューに表示させる

昨日Wine上に導入したMZ4はインストーラーがなかったのでメニューに表示されません。
何処かにズバリの手順がないか検索したのですが、見つけられませんでした。
そこで私が手作業した方法を記述して公開します。
参考にしたサイトは前回も引用した2サイトです。
A. http://linuxos.blog102.fc2.com/blog-entry-125.html
B. http://qubuntu.blogspot.com/2009/10/wine.html

●必要なパッケージの導入

icoutils と imagemagick を導入します。

$ sudo apt-get install icoutils imagemagick

●アイコンの準備

実行ファイルから.icoファイルを抽出し、pngに変換します。
wrestoolのオプション-t14 はリソースタイプが14(アイコン)の指定です。-xは抽出の指定。
カレントディレクトリにicoファイルがたくさん出来るので画像ビューアで確認します。
使用するものを決めたらpngに変換して ~/.local/share/icons/ に出力します。

$ cd ~/.wine/drive_c/bin/MZ4
$ wrestool -x --output=. -t14 mz4.exe
# どのファイルを使うか画像ビューアで確認 mz4.exe_14_139_1041.ico を使うことにします。
$ convert mz4.exe_14_139_1041.ico ~/.local/share/icons/MZ4.png
$ rm *.ico

●desktopファイルの作成

~/.local/share/applications/wine/Programs/ ディレクトリにMZ4.desktopを作成します。
内容は下記の通り
hogeはユーザの名称に置き換えてください。
MZ4を展開したディレクトリが違う場合は適宜置き換えてください。
Nameに指定した文字列がメニューに表示されます。
Categoriesはメニューの何処に表示されるかの指定です。[ネットワーク]に表示されるようにしました。

~/.local/share/applications/wine/Programs/MZ4.desktop
[Desktop Entry]
Name=MZ4 1.31
Exec=env WINEPREFIX="/home/hoge/.wine" wine "C:\\bin\\MZ4\\mz4.exe"
Type=Application
StartupNotify=true
Path=/home/hoge/.wine/dosdevices/c:/bin/MZ4
Icon=/home/hoge/.local/share/icons/MZ4.png
Categories=Network;

●menuファイルの作成

~/.config/menus/applications-merged/に下記の内容でファイルを作ります。

~/.config/menus/applications-merged/wine-Programs-MZ4.menu
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">
<Menu>
  <Name>Applications</Name>
  <Menu>
    <Name>wine-wine</Name>
    <Directory>wine-wine.directory</Directory>
  <Menu>
    <Name>wine-Programs</Name>
    <Directory>wine-Programs.directory</Directory>
    <Include>
      <Filename>wine-Programs-MZ4.desktop</Filename>
    </Include>
  </Menu>
  </Menu>
</Menu>

●ログアウトとログイン

上記の手続きを行うと、なぜかメニューの[その他]が表示されなくなりました。
ネットワークのところにもまだ追加したものが出てきません。
一旦ログアウトしてログインすると出てきました。
これは何かコマンドで対応できるのかもしれませんが見つけられませんでした。

●その他

~/.local/share/applications/ の直下には拡張子の関連付け情報が格納してあるようです。
これについてはまたの機会に。

☆Wine上で動かしているその他のアプリケーション

Wineで使っているその他のアプリ。

2010/02/27 訂正 Peggy PadとPeggyは日本語入力がダメでした。

●nPOPQ

フリーのPOP3メーラーです。
複数のPCでメールを見るので、通常使うメーラーは受信時にメールを削除しない設定にしています。
そこでスパム削除用にnPOPQを使ってます。
Windowsで設定をした状態でディレクトリごとWineへ持っていったものがそのまま動きます。
今のところおかしな挙動はありません。非常に軽快に動作します。オススメです。

●Peggy Pad

フリーのテキストエディタです。
Ubuntuでは主にnPOPQのメールビューアとして使っています。
インストーラで導入してフォントだけ設定してます。
特におかしな挙動はありません。URLを選択してCTRL+Bでブラウザが立ち上がります。
Perlと同じような拡張正規表現を使用した検索や置換えがつかえます。
Geanyを使うようになってあまり使っていませんが、文字コード周りはGeanyより強い気がします。

●Peggy Pro for PHP

シェアウェアのテキストエディタです。
残念ながら動作しない機能が結構あります。
とくに外部ツールをつかう機能はだめのようです。残念です。非常に残念です。
ほかには全角・半角変換などが動作しません。
これが完全に動作すればDRM付動画を見る以外はUbuntuでやっていけるのに。

☆TwitterのListに対応したMZ4をWineで使う

Twitterのリスト機能に対応したクライアントソフトを探してたのですがTweetDeckくらいしか見つけられませんでした。
そこでWindowsに探索範囲を広げるとMZ4が対応してました。以前はよく使っていたのに気づきませんでした。
最新バージョンは1.31、使っていたのは1.018でした。(1.018はリスト未対応)
残念ながらWineで使うとWebブラウザとの連携がうまくいきません.....。 一応導入方法を。
2010/02/27 追記 日本語入力がダメでした。

●導入

http://www.mz3.jp/mz3.html の下のほうから MZ4.1.3.1.lzh をダウンロードします。
ZIPなのでwineでインストールできません。適当なディレクトリを作って解凍します。
私は ~/.wine/drive_c/bin/MZ4 というディレクトリを作って解凍しました。

cd ~/.wine/drive_c/bin/MZ4
lha -x ~/Downloads/MZ4.1.3.1.lzh

メニューに出るようにしたい場合は
http://linuxos.blog102.fc2.com/blog-entry-125.html
http://qubuntu.blogspot.com/2009/10/wine.html
を参照してチャレンジしてください。

2010/02/28 この件に関するフォローを投稿しました。☆Wine上に手作業で導入したプログラムをメニューに表示させる

私はコマンドライン起動で十分なので下記のようなシェルスクリプトを~/bin/mz4として作成し、実行権限をつけます。

#!/bin/bash
env WINEPREFIX="/home/masaya/.wine" wine "C:\\bin\\MZ4\\mz4.exe" 

●設定

初回起動時に[クライアントタイプの選択]というダイアログが出ます。
TwitterとRSSは動作しますが、gmailとGoogleReaderはだめのようです。他のサービスは試していません。
mixiは使っていないのであればチェックをはずしておいたほうがいいです。(たくさんタブが作られてしまいます。)
次にログイン設定をします。ドロップダウンリストからTwitterを選択してIDとパスワードを入力します。
ログイン設定はあとでメニューの[設定]-[ログイン設定]で変更できます。
この後、絵文字ダウンロードに関するダイアログが出ますが、Twitterには関係なさそうなので2回とも[いいえ]を選びます。

1.クライアントタイプの選択 2.2番目のダイアログ 3.ログイン設定 4.4番目(絵文字) 5.5番目(絵文字)

メイン画面がすでに立ち上がっていますが、文字が出力されている部分は背景が描画されていません。
うっとうしいのでmz4を解凍したディレクトリのskin/aluminium/*.jpgを別へ移動してしまいます。
これで再起動すると背景が薄い灰色になります。
あとはメニューの[設定]-[一般]から起動するダイアログを覗いて、好みに動作をかえてください。

メイン画面
文字の背景は白
メイン画面
背景画像削除後

画面上部の[リスト一覧]をクリックすると自分で作ったリストの一覧が下部に表示されます。
下部に表示されたリストの部分をクリックするとそのリストのタイムラインが表示されます。

画面上部の[リスト一覧]をクリック
画面下部のリストをクリック

タイムラインを右クリックするとコンテキストメニューが出てきます。
冒頭に書いたように残念ながらブラウザでリンクを開けません。
ターミナルから起動している場合、下記のようなエラーメッセージがでます。

err:winebrowser:get_url_from_dde Unable to retrieve URL from string L"\""
err:winebrowser:wmain Usage: winebrowser URL
検索してみると既知の問題で特にMZ4のせいではないようです。
http://bugs.winehq.org/show_bug.cgi?id=13891

☆UbuntuにSylpheed 3.0を導入

今日、Sylpheedを立ち上げたら更新通知のダイアログ。初めて見ました。
ホームページを見るとマルチスレッドに対応してユーザの操作が不能になる場面が少なくなりましたと書いてあります。
それほど操作不能が気になったことはないのですが、入れてしまいます。
(メインはWinXP環境なのでメールさえ消してくれなければOKなのです。)

バージョンアップだから update-manager では更新できません。PPAを探します。
googleでppa sylpeedで検索。ヒットあり。
AWASHIRO Ikuyaさんのは3.0のベータでHajime Mizunoさんのは2.7.1。
Klaus Vormwegさんのが2010/02/24になっていて3.0正式版のようです。

sudo add-apt-repository ppa:klaus-vormweg/ppa
gksudo update-manager
とすると、お、geanyもちょっとだけ上がったのが出てますね。
使うアプリの趣味が合いますね。Klaus Vormwegさん。
sylpheed、sylpheed-i18n、geanyをアップデートしました。
立ち上げてみてもあまり変わりません。
設定ファイルのディレクトリの名前も.sylpheed-2.0ままです。
しばらく様子を見てから別のPCを更新するかどうか決めます。

☆モザイク加工のために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です。意味なくキーボードの図の部分をぼかしてみました。

★210円ちょっとで書見台自作(非PC)

普段使っている書見台はページを抑えている部分の間隔が広く、文庫や新書に不向きでした。
少し小さめの書見台を別途購入しようとあちこちWebを探していました。
安ければ800円くらいからあるようですが、ちょっとお金が勿体無い。

そんな今日この頃、封筒を買いに100円ショップに買いに行ったと際にブックエンドを見て自作することを思いつきました。
主な材料はブックエンドとホビークランプ。

ホビークランプをクッションのある強力両面テープでブックエンドに固定。
ブックエンドの水平に伸びている部分をちょっと曲げて角度を調整しました。
これだけだと中央の隙間に本が逃げてしまうのでちょっとストッパーをつけました。
結構グッドデザインと思ってます。

材料 出来上がり
中公新書を開いて乗せたところ 普段使っている書見台との比較

☆BloGTK補完計画

先日の☆Ubuntu で使えるブログエディタ BloGTKの投稿で「できないこと」に挙げた"画像のアップロード"と"ラベルの設定"を何とかしない限りどうしてもWeb Browserでの作業が発生してしまいます。
BloggerのWeb Browserで行うラベルの設定は比較的操作しやすく、こちらはそれほど面倒ではないのですが、画像のアップロードは改善したいと感じます。

そこで、BloggerのAPIを見て画像アップの方法を探してみました。探しかたが足りないのかもしれませんが見つかりません。
Bloggerでアップした画像はPicasa ウェブ アルバムに保存されていることを思い出して、 Picasa Web Albums Data APIの方を調べてみました。
コマンドラインで画像をアップして、そのURLを取得するのは比較的簡単でしたので、以下に手順を示します。

●必要なもの

  • python-gdataパッケージ(BloGTK2.0を入れていればもう導入済みのはずです)
  • Googleアカウント(とりあえず一つはPicasaのアルバムがある状態を前提とします。)

●前準備

Pythonのスクリプトを2つ準備します。(テスト用の画像も必要です。)
get_albumid.py は画像をアップするアルバムのIDを見るため、
post_new_phots.py は画像の投稿に使用します。
2つとも実行権限をつけてPATHの通ったところにおきます。(たとえば ~/bin )

get_albumid.py
#!/usr/bin/python
import sys
import gdata.photos.service

args = sys.argv
args.pop(0)
email = args.pop(0)
password = args.pop(0)
username='default'

gd_client = gdata.photos.service.PhotosService()
gd_client.email = email
gd_client.password = password
gd_client.source = 'exampleCo-exampleApp-1'
gd_client.ProgrammaticLogin()

albums = gd_client.GetUserFeed(user=username)
for album in albums.entry:
  print 'id:[%s] title:[%s] number of photos: %s' % (album.gphoto_id.text, album.title.text, album.numphotos.text)
post_new_phots.py
#!/usr/bin/python
import sys
import gdata.photos.service
import gdata.media
#
args = sys.argv
args.pop(0)
email = args.pop(0)
password = args.pop(0)
album_id = args.pop(0)
username='default'
#
gd_client = gdata.photos.service.PhotosService()
gd_client.email = email
gd_client.password = password
gd_client.source = 'exampleCo-exampleApp-1'
gd_client.ProgrammaticLogin()
#
album_url = '/data/feed/api/user/%s/albumid/%s' % (username, album_id)
# print 'album_url:', album_url
for arg in args:
  #photo = gd_client.InsertPhoto(album_url, 'New Photo', arg, content_type='image/png')
  photo_name = arg.split('/')[-1]
  ext = arg.split('.')[-1]
  content_type = 'image/' + ext
  photo = gd_client.InsertPhotoSimple(album_url, photo_name, photo_name, arg, content_type=content_type)
  print '-' * 80
  print arg, photo.gphoto_id.text, photo.content.src
  for thumb in photo.media.thumbnail:
    print "\t%s %s %s" % (thumb.width, thumb.height, thumb.url)
  for thumb in photo.media.thumbnail:
    print '<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="%s"><img style="cursor:pointer; cursor:hand;width: %spx; height: %spx;" src="%s" border="0" alt="" id="BLOGGER_PHOTO_ID_%s" /></a>' % (photo.content.src, thumb.width, thumb.height, thumb.url, photo.gphoto_id.text)

●アルバムIDの取得

get_albumid.pyにGmailのメールアドレスとパスワードを指定して起動します。
下記のような要領です。
出力から画像をアップロード先のアルバムを選びます。

$ get_albumid.py hoge@gmail.com hogepassword
id:[9999999999999999991] title:[Blogger の画像] number of photos: 4
id:[9999999999999999992] title:[Windows Live Writer] number of photos: 4
id:[9999999999999999993] title:[ミドルスペックを低負荷で] number of photos: 44

●画像のアップロード

画像を実際にアップロードします。
post_new_phots.pyにGmailのメールアドレスとパスワード、アルバムID、ローカルに存在する画像ファイルのパス(複数可)を指定して起動します。
出力はやや冗長です。アップロード1ファイルごとに7行出力されると思います。自動で作成されるサムネイルの個数で変動するかもしれません。
ファイルへリダイレクトしておいて、[サムネイルを表示画像としたアップロード後のURLへのリンク]をCopy/Pasteして使うことを想定しています。
割と段純なので、少し知識があればお好みにカスタマイズするのは簡単だと思います。
1行目:[ローカルファイルのパス] [画像のID] [アップロード後のURL]
2行目~4行目[タブ][サムネイルの幅] [サムネイルの高さ] [サムネイルのURL]
5行目~7行目[サムネイルを表示画像としたアップロード後のURLへのリンク]
試してみたのはjpgとpngだけです。

実行例
$ ./post_new_phots.py hoge@gmail.com hogepassword 9999999999999999993 ../scrot_01.png  ../scrot_02.jpeg
--------------------------------------------------------------------------------
../scrot_01.png 5441426425664051714 https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMqutk7GAju_WbosDBisglRrV2gZmVxyTeTdUoJSFJ856xZpowWQHPXzQ3Ko_blVBTUNesGV-gQfrMZgi56P3FCSNOU-aL6TxhUvpuPG0VrVBgNPfS9IvIjZjh_joue57sPpSvgxlbKooN/
 72 60 https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMqutk7GAju_WbosDBisglRrV2gZmVxyTeTdUoJSFJ856xZpowWQHPXzQ3Ko_blVBTUNesGV-gQfrMZgi56P3FCSNOU-aL6TxhUvpuPG0VrVBgNPfS9IvIjZjh_joue57sPpSvgxlbKooN/s72/scrot_01.png
 144 119 https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMqutk7GAju_WbosDBisglRrV2gZmVxyTeTdUoJSFJ856xZpowWQHPXzQ3Ko_blVBTUNesGV-gQfrMZgi56P3FCSNOU-aL6TxhUvpuPG0VrVBgNPfS9IvIjZjh_joue57sPpSvgxlbKooN/s144/scrot_01.png
 288 238 https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMqutk7GAju_WbosDBisglRrV2gZmVxyTeTdUoJSFJ856xZpowWQHPXzQ3Ko_blVBTUNesGV-gQfrMZgi56P3FCSNOU-aL6TxhUvpuPG0VrVBgNPfS9IvIjZjh_joue57sPpSvgxlbKooN/s288/scrot_01.png
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMqutk7GAju_WbosDBisglRrV2gZmVxyTeTdUoJSFJ856xZpowWQHPXzQ3Ko_blVBTUNesGV-gQfrMZgi56P3FCSNOU-aL6TxhUvpuPG0VrVBgNPfS9IvIjZjh_joue57sPpSvgxlbKooN/"><img style="cursor:pointer; cursor:hand;width: 72px; height: 60px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMqutk7GAju_WbosDBisglRrV2gZmVxyTeTdUoJSFJ856xZpowWQHPXzQ3Ko_blVBTUNesGV-gQfrMZgi56P3FCSNOU-aL6TxhUvpuPG0VrVBgNPfS9IvIjZjh_joue57sPpSvgxlbKooN/s72/scrot_01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5441426425664051714" /></a>
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMqutk7GAju_WbosDBisglRrV2gZmVxyTeTdUoJSFJ856xZpowWQHPXzQ3Ko_blVBTUNesGV-gQfrMZgi56P3FCSNOU-aL6TxhUvpuPG0VrVBgNPfS9IvIjZjh_joue57sPpSvgxlbKooN/"><img style="cursor:pointer; cursor:hand;width: 144px; height: 119px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMqutk7GAju_WbosDBisglRrV2gZmVxyTeTdUoJSFJ856xZpowWQHPXzQ3Ko_blVBTUNesGV-gQfrMZgi56P3FCSNOU-aL6TxhUvpuPG0VrVBgNPfS9IvIjZjh_joue57sPpSvgxlbKooN/s144/scrot_01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5441426425664051714" /></a>
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMqutk7GAju_WbosDBisglRrV2gZmVxyTeTdUoJSFJ856xZpowWQHPXzQ3Ko_blVBTUNesGV-gQfrMZgi56P3FCSNOU-aL6TxhUvpuPG0VrVBgNPfS9IvIjZjh_joue57sPpSvgxlbKooN/"><img style="cursor:pointer; cursor:hand;width: 288px; height: 238px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMqutk7GAju_WbosDBisglRrV2gZmVxyTeTdUoJSFJ856xZpowWQHPXzQ3Ko_blVBTUNesGV-gQfrMZgi56P3FCSNOU-aL6TxhUvpuPG0VrVBgNPfS9IvIjZjh_joue57sPpSvgxlbKooN/s288/scrot_01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5441426425664051714" /></a>
--------------------------------------------------------------------------------
../scrot_02.jpeg 5441426435389373794 https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXXsjjP_Jeb0QZqVzPSXA23nreT5yxxu83yE5jqr_Rm0LpBbZzZxy4nOuFC7Lv5eqqQ-hNabQMI7s4XvFhub-WW8OnrDDXCppxksNlfG-zdSfFKh20QD5WT0yKeSVYS2KJUZUuFtwC2NZO/
 72 60 https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXXsjjP_Jeb0QZqVzPSXA23nreT5yxxu83yE5jqr_Rm0LpBbZzZxy4nOuFC7Lv5eqqQ-hNabQMI7s4XvFhub-WW8OnrDDXCppxksNlfG-zdSfFKh20QD5WT0yKeSVYS2KJUZUuFtwC2NZO/s72/scrot_02.jpeg
 144 119 https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXXsjjP_Jeb0QZqVzPSXA23nreT5yxxu83yE5jqr_Rm0LpBbZzZxy4nOuFC7Lv5eqqQ-hNabQMI7s4XvFhub-WW8OnrDDXCppxksNlfG-zdSfFKh20QD5WT0yKeSVYS2KJUZUuFtwC2NZO/s144/scrot_02.jpeg
 288 238 https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXXsjjP_Jeb0QZqVzPSXA23nreT5yxxu83yE5jqr_Rm0LpBbZzZxy4nOuFC7Lv5eqqQ-hNabQMI7s4XvFhub-WW8OnrDDXCppxksNlfG-zdSfFKh20QD5WT0yKeSVYS2KJUZUuFtwC2NZO/s288/scrot_02.jpeg
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXXsjjP_Jeb0QZqVzPSXA23nreT5yxxu83yE5jqr_Rm0LpBbZzZxy4nOuFC7Lv5eqqQ-hNabQMI7s4XvFhub-WW8OnrDDXCppxksNlfG-zdSfFKh20QD5WT0yKeSVYS2KJUZUuFtwC2NZO/"><img style="cursor:pointer; cursor:hand;width: 72px; height: 60px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXXsjjP_Jeb0QZqVzPSXA23nreT5yxxu83yE5jqr_Rm0LpBbZzZxy4nOuFC7Lv5eqqQ-hNabQMI7s4XvFhub-WW8OnrDDXCppxksNlfG-zdSfFKh20QD5WT0yKeSVYS2KJUZUuFtwC2NZO/s72/scrot_02.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5441426435389373794" /></a>
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXXsjjP_Jeb0QZqVzPSXA23nreT5yxxu83yE5jqr_Rm0LpBbZzZxy4nOuFC7Lv5eqqQ-hNabQMI7s4XvFhub-WW8OnrDDXCppxksNlfG-zdSfFKh20QD5WT0yKeSVYS2KJUZUuFtwC2NZO/"><img style="cursor:pointer; cursor:hand;width: 144px; height: 119px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXXsjjP_Jeb0QZqVzPSXA23nreT5yxxu83yE5jqr_Rm0LpBbZzZxy4nOuFC7Lv5eqqQ-hNabQMI7s4XvFhub-WW8OnrDDXCppxksNlfG-zdSfFKh20QD5WT0yKeSVYS2KJUZUuFtwC2NZO/s144/scrot_02.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5441426435389373794" /></a>
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXXsjjP_Jeb0QZqVzPSXA23nreT5yxxu83yE5jqr_Rm0LpBbZzZxy4nOuFC7Lv5eqqQ-hNabQMI7s4XvFhub-WW8OnrDDXCppxksNlfG-zdSfFKh20QD5WT0yKeSVYS2KJUZUuFtwC2NZO/"><img style="cursor:pointer; cursor:hand;width: 288px; height: 238px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXXsjjP_Jeb0QZqVzPSXA23nreT5yxxu83yE5jqr_Rm0LpBbZzZxy4nOuFC7Lv5eqqQ-hNabQMI7s4XvFhub-WW8OnrDDXCppxksNlfG-zdSfFKh20QD5WT0yKeSVYS2KJUZUuFtwC2NZO/s288/scrot_02.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5441426435389373794" /></a>
実行例の出力を貼り付けてみたもの

●その他

Blogger以外のユーザでも、上記の画像アップロードは有効な手段だとおもいます。(どうしてもGoogleのアカウントを作りたくないという人もいるかもしれませんが。)
GTKの知識やPyGTKの知識があればBloGTK本体に組み込みたいのですが、あいにくありませんし、自分的にはこれで十分かなと思ってます。
英語が達者なら Jay Reding - jay@jayreding.com に相談してみる手もありますが....自信がないので....
そもそも下記の内容もサンプルを少し変えただけであまりわかってませんし....
ログアウトとか探してみたのですが、見つかりません。終了時にやってくれていると良いのですが....

☆Ubuntuで使えるブログエディタ BloGTK

ちょっと前にUbuntuで使えるブログエディタ(KDEベース除く)を探していた際に行き着いたblogtkを紹介します。
環境はUbuntu 910 Karmic Koala、対象ブログサイトはBloggerです。
これがあればWeb Browserがいらないという訳にはいきませんが、ユーザが増えて開発が進むことを期待しています。

●特徴

機能は最小限といったところでしょうか。

■できること
  • ブログへの新規投稿(当然ですね)
  • ブログからの投稿の取得と再投稿(当然ですね)
  • ツールバーやメニューによるタグ挿入ベースの入力補助
  • 投稿時刻の変更
■できないこと
  • 画像のアップロード
  • ラベルの設定
  • WYSWYG編集
  • 表の編集
■バグ?
  • LANG=ja_JP.UTF-8で投稿のエディタが立ち上がらない
  • ステータスバーに表示されるメッセージ
    An Error occurred: enchant error for language: ja_JP.UTF-8
    
    端末から起動した場合に出てくるメッセージ
    Exception in thread Thread-1:
    Traceback (most recent call last):
      File "/usr/lib/python2.6/threading.py", line 525, in __bootstrap_inner
        self.run()
      File "/usr/lib/python2.6/threading.py", line 477, in run
        self.__target(*self.__args, **self.__kwargs)
      File "/usr/bin/../share/blogtk2/lib/blogtk2/main.py", line 560, in sendPostToEditor
        newEditor.destroy(None)
    UnboundLocalError: local variable 'newEditor' referenced before assignment
    
    Traceback (most recent call last):
      File "/usr/bin/../share/blogtk2/lib/blogtk2/main.py", line 357, in update_progress_bar
        gobject.source_remove(self.timeout_handler_id)
    AttributeError: BloGTK instance has no attribute 'timeout_handler_id'
    
  • 多分上記の影響と思われますが、投稿を取得して再投稿すると投稿時刻が9時間進む
(ロケールとタイムゾーンは別もので、9時間進むのとロケールは関係ないです。)
(これで初めて知ったのですが、投稿を公開しても投稿日時が未来の日時になっていると"予定"扱いになるんですね。)

●導入

Karmicのリポジトリにあるバージョン(1.1-2ubuntu3)はBloggerに接続できませんでした。
仕方がないのでPPAから取得します。

sudo add-apt-repository ppa:jayreding/ppa  
sudo apt-get update
sudo apt-get install blogtk

●起動

コマンドは "blogtk2" です。ja_JP.UTF-8 のままだとメインと設定画面は立ち上がるのですが、編集画面が立ち上がりません
そこで /usr/share/applications/blogtk.desktop を開いて Exec= の行を編集します。

編集前
Exec=blogtk2
編集後
Exec=env LANG=C blogtk2

メニュー/ネットワーク/BloGTK 2.0 をクリックして起動します。

●設定

初回起動時はメイン画面と同時に設定画面が立ち上がります。
[Acount Name]と[Blog Address]を入力して[Autodetect Settings]ボタンを押すと
[Username]、[Password]以外は自動設定してくれるようです。
[Preferences]タブはフォントの設定しかありません。

起動直後 [Autodetect Settings]ボタン押下後 [Preferences]タブ

●投稿

設定が正しいか確認するため、とりあえず[Refresh]ボタンを押して既存の投稿が取得できるか調べます。
(スクリーンショットはLANG=ja_JP.UTF-8の状態で撮ったので[更新]になっています。)
取得できれば設定は問題ないと思います。
右下の"Welcome to BloGTK 2" と表示されている部分は投稿を選択するとプレビューが出ます。

あとは投稿を選択して[Edit Post]ボタンを押すか、[New Post]ボタンを押して"BloGTK Editor"を立ち上げます。
投稿時刻の設定ダイアログは[Edit]メニューの[Date and Time..]で起動できます。
ツールバー下段右端はリンク挿入用のボタンです。
Webへ反映する際は[Publish]を押下すればOKです。このとき右下の[Save As Draft?]にチェックを入れておけば下書きとして保存されます。

設定終了後 [Refresh]ボタン押下後
BloGTK Editorの[Main]タブ 投稿時刻設定用のダイアログ リンク挿入用のダイアログ
BloGTK Editorの[Extended]タブ
何も表示されません?
BloGTK Editorの[Preview]タブ
レイアウトはイマイチです

☆懐かしのインテルブランドオーディオプレイヤー

インテルブランドマウスと同じときに出てきたものです。まだ鳴ります。
ネタがないので画像をアップしてみました。
買った当初からノイズが気になっていたのですが、そこそこ持ち歩いたので傷だらけです。
専用ソフトがないとオーディオファイルを転送できないという、今では考えられないシロモノです。

☆bookmark.htm(bookmarks.html)をWebkit用に変換

IEのお気に入りを[ファイル]メニューからエクスポートするとbookmark.htmができます。
このファイル、"<!DOCTYPE NETSCAPE-Bookmark-file-1>"と宣言されてますが、なんだか良くわからない規格です。
"<html>"も"<head>"も"<body>"もない、"<p>"や"<DT>"は閉じていませんし、
タグは大文字だったり小文字だったりします。

それでも文字コードさえ指定しなおせばWebkitベースのブラウザでも一応表示できます。べったり左寄せになりますが。
(短い間ですがMidoriをメインで使っていました。起動時間が改善された気がするので最近はFirefox3.6メインです。)
Operaも同じような状態です。

そこで下記のようなperlのスクリプトを使って変換をしてやります。(conv_bm.pl)
CSSを使ってレイアウトを整えるのが主目的です。<DL>や<DT>は使ったほうが良いのかもしれませんが、よく理解していないので取り除きました。
<A> タグは小文字にすべきかもしれませんが、やってません。
Firefoxから出力したBookmarkも扱えるように文字コード変換はnkfに任せてしまいます。
nkfが入っていない場合は sudo apt-get install nkf で導入します。
(Firefox 3.6はWindows版もbookmarks.htmlをUTF-8でエクスポートするようです。)

WindowsのIEから出力したbookmark.htmの場合は
nkf -w8 bookmark.htm | ./conv_bm.pl > bookmarks-normal.html

Firefoxから出力したbookmark.htmの場合は
./conv_bm.pl bookmarks.html | bookmarks-normal.html

のようにして使用します。

conv_bm.pl
#!/usr/bin/perl

while(<>){
    last if m#<TITLE>.*</TITLE>#i;
}

print <<EOF;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
div {
    margin-top:0.5em;
    margin-bottom:1.0em;
    margin-left:2.0em;
}
h3 {
    margin:0.0em;
    margin-top:1.0em;
}
</style>
<title>Bookmarks</title>
</head>
<body>
EOF

while(<>){
    s#<DL><p>#<div>#ig;
    s#</DL><p>#</div>#ig;
    s#<DT>##g;
    s#</A>#</A><br />#ig;
    print;
}

print <<EOF;
</body>
</html>
EOF

☆懐かしのインテルブランドマウス

探し物をしていたら、懐かしいマウスが出てきました。
もう光学式マウスがそこそこ出回っていた時期に発売された思いますが、ボール式です。
今はドスパラ アキバ店が入っているビルにあった、ぷらっとホームか若松通商で買ったような気がします。
箱はなくしてしまったのですが確か透明ブルーの部分が発光しているようなイメージだったにもかかわらず、
実物が発光しなくてがっかりしたことを覚えています。

コネクタが変わっていて、本体はPS/2でUSBへの変換コネクタが付属してます。
つないでみたらまだ動きました。
ボール式だったことと本体上面のアールが結構きつくてボタンが押しにくいため、
あまり使用せずにお蔵入りにしてしまいました。

☆Xubuntu用にSLiMのログインスクリプトを変更

Ubuntu用に作成したSLiMのログインスクリプトは、ログイン時に'default'が選択された場合は
前回のセッションと同じウィンドウマネージャーを使用する仕様にしていました。

しかし、Xubuntuの場合/usr/share/xsessions/default.desktopが存在しているので
ログイン時に'default'が選択された場合、default.desktopのシンボリックリンク先が選択されたのと
同様の動作をするのが妥当だと思います。

というわけでetc_slim_d.tar.gzのXubutu版をアップしました。
https://sites.google.com/site/midspeclowload/files/etc_slim_d_xubuntu.tar.gz?attredirects=0&d=1

変更箇所は下記のとおりです。etc/slim/Xsessionは変更なしです。

diff -u -r org/etc/slim/SLiMXsessionrc.pl new/etc/slim/SLiMXsessionrc.pl
--- org/etc/slim/SLiMXsessionrc.pl 2010-01-23 21:32:53.000000000 +0900
+++ new/etc/slim/SLiMXsessionrc.pl 2010-02-14 22:00:35.000000000 +0900
@@ -107,13 +107,15 @@
 my($wm_arg) = shift;
 DBG_OUT "\$wm_arg='$wm_arg'\n";
 
-$wm_arg = '' if $wm_arg eq 'default';
+# $wm_arg = '' if $wm_arg eq 'default';
 my($wm_dmrc, $DMRC_recs_ref) = readDMRC($DMRC_FILE);
 DBG_OUT "\$wm_dmrc='$wm_dmrc'\n";
 
 my($wm_determined) = $wm_arg eq '' ? $wm_dmrc : $wm_arg;
+$wm_determined = 'default' if $wm_determined eq '';
 DBG_OUT "\$wm_determined='$wm_determined'\n";
 
+
 my($cmd);
 my($desktop) = "${X_SESSION_DIR}/${wm_determined}.desktop";
 DBG_OUT "\$desktop='$desktop'\n";

ちなみに一度もF1を押さなければ、~/.dmrcに"Session="の行は存在しないままになります。
これはGDMを使用していて、一度もセッションの選択を行わなかった場合と同様です。
またこの修正により、初回のログインでF1を押さなかった場合に出ていた警告メッセージも出なくなります。

☆ちょっとクセのあるM/B ASUS P5Q-EM DO

1ヶ月ちょっと前に購入した ASUS P5Q-EM DO のレビューみたいなものです。

購入の動機はMoblin2.1がインテルのグラフィックス内蔵チップセットしかサポートしないこと、
ChromiumOS ZERO も同様みたいです。(Radeon 3450で動かすとぎこちないです。)
最近どちらもいじってませんが.....

このマザーボード、もっとも注意が必要なのはバックパネルにあるIntel MEのスイッチです。
これがオフになっていると起動時に必ずCPUファンエラーが発生すること。
またBIOSのHardware Monitorに入るとフリーズしたかのような状態になります。(ESCを押してしばらく待つと抜けられます。)
このスイッチはBIOSのアップデート時だけOFFにするものだと思われます。
ONになっているとメインメモリを取られるようです。(2GB積んでいると32MB、4GBで64MBとマニュアルに記載されています。)

ほかにもIntel vPro TechnologyとIntel Quiet System Technologyにもメモリが占有されるようです。この辺は良くわかりません。
1GBのモジュール2枚を積んだ状態でブート時のBIOS画面で1980MBという表示になっています。
(BIOS設定でMEとvProはDisableにしています)

もう一点、Linuxで使う場合に難点があります。
Grub-PCのOS選択画面がきちんと描画されません。
描画対象が横や縦に伸びていて一部分しかディスプレイに表示されないのです。
稀に正しく描画されることもありますが、ひどいときはまったく文字が見えません。
(ひょっとしたらモニタとの相性かもしれませんが、SAMSUNG Syncmaster 910Tと172Tの2台で同様の症状でした。)

上記2点以外は特に問題ないと思います。
安定して動いてますし、なんといっても最近珍しいIntelのLAN controller 搭載です。
これでAudioもカニ以外ならもっと良かったのですが...
最近ほとんどのマザーがカニ、カニ、カニ、カニで食傷気味なんですよね。

じゃんぱらのここで箱なしですが、6,980円で売られています。まだ送料無料みたいですね。
(私もここで買いました。まだ在庫があるってことは何処かのメーカーから箱なしのアウトレットが出たのでしょうか?)
この値段ならお買い得だと思います。MoblinやChromiumOS ZEROを使ってみたい方、いかがでしょうか。

☆UbuntuとXubuntuのちょっとした違い

このところLXDEではなく、xfceを使い始めたのでVirtualBoxにお試し環境を作るときには
XubuntuのISOイメージを使うようになりました。

違うところがあるのは当然ですが、ちょっとした違いを1点見つけました。
それは Xubuntuの場合 "/usr/share/xsessions/default.desktop" が存在すること。
/usr/share/xsessions/xfce.desktopへのシンボリックリンクで、
xubuntu-default-settingsパッケージで導入されてます。

$ ls -l /usr/share/xsessions/default.desktop
lrwxrwxrwx 1 root root 12 2009-11-30 11:17 /usr/share/xsessions/default.desktop -> xfce.desktop
$ dpkg -S /usr/share/xsessions/default.desktop 
xubuntu-default-settings: /usr/share/xsessions/default.desktop

default.desktopが2つあるせいでGDMのセッション選択に2つ[Xfce セッション]が表示されるようです。

☆BloggerとPicasa ウェブ アルバム

Bloggerを使い始めたころに、Bloggerでアップした画像ファイルは容量制限が1Gで
Picasa ウェブ アルバムと共用という記述を読んだ記憶があります。

どうゆう仕組みなんだろうと、Picasa ウェブ アルバムにいってみました。
BloggerのWebインターフェースで画像をアップロードすると、
Picasa ウェブ アルバムに保存されるんですね。

向かって右端のブログのタイトルと同じ「ミドルスペックを低負荷で」アルバムの中に投稿画像が入ってました。
左端の「Blogger の画像」はレイアウトを弄っていたプロフィールの写真を設定したときに出来たようです。
真ん中の「Windows Live Writer」はBloggerにWindows Live Writerで投稿すると作成されるようです。
(Windows Live Writerのことはその内書いてみようと思ってます。)

☆WinXPのFirefox3.6でフォントがガクガク?

Ubuntu Weekly Recipe 第108回 HYBRID W-ZERO3を使いこなす(1)をWindows XP上のFirefox3.6で閲覧して、ふとなんだかフォントがガクガクしていると思ったので画面のキャプチャを取ってみました。
向かって左がIE8、右がFirefox3.6です。(画像をクリックして大きく表示すると結構違います。)

ちなみにフォントの設定は下図のとおりです。(設定はデフォルトのままです。)
Twitterなどほかのサイトはそんなことないので、gihyo.jpさんのCSS設定のせいでしょうか?

☆SLiMの削除

WindowsXPでVirtualBox3.12のGuest Additionsを導入するとSLiMの起動時にエラーが発生するようです。

当然、この場合SLiMのパッケージを削除するのですが、 dpkgやapt-get removeでSLiMのパッケージを削除すると再起動してもGDMは立ち上がらず、 コンソールへのログインになってしまいます。

これは /etc/default-display-manager の内容が /usr/bin/slim のままになっているせいです。
viで /usr/sbin/gdm に書き換えればGDMが立ち上がるようになります。

☆さよならLunascape6、そしてこんにちはLunascape4 LiteとFirefox3.6

今日Lunascape6をアンインストールしました。

Lunascapeを使い始めたのはLunascape5から。トリプルエンジン、Gekkoを使用した場合に本家Firefoxより高速というような文句に引かれたこと。
そして何よりも、新規タブを現在のタブの横に開ける、タブを閉じたとき直前に見ていたタブをアクティブにする設定が可能なところに惹かれました。
(確か当時試してみてSleipnirはできなかったと記憶しています。)
IEで多数のタブを開いて作業をしていると際にタブ閉を閉じると、直前どのタブを見ていたかわからなくなることが多かったからです。

しかしLunascape6はこのタブ周りの挙動がおかしいのです。
大抵のブラウザはリンクをCtrl+左クリックですると新しいタブで対象を開きますが、Trident使用時はフォルト状態ではこれが機能しません。
そこでCtrl+左クリックの設定をリンクを新しいタブで開くように設定すると、Geckoエンジン使用時にタブが2つ開いてしまいます。
(これは不具合掲示板 http://ja.bbs.luna.tv/viewtopic.php?f=70&t=2614 に報告されていますがまだ直らないようです。)
ためしにWebkitを入れて試してみると、設定はまったくむしされて現在のタブで開かれます。
これではトリプルエンジンも意味がありません。

それではVer5に戻そうと思ったのですが、既にダウンロードができません。古いインストーラは手元にあるのですが、アップデートを行うとVer6に更新されてしまいます。すでにVer5はセキュリティパッチの提供がされないということでしょう。さすがに使い続けるには不安が残ります。
フリーソフトとはいえ、新バージョンがリリースされると旧バージョンのアップデートが一切なくなるというのは考え直して頂きたいものです。

そこでまだインストーラーが提供されているLunascape4 Liteを入れてみました。(アップデートが提供されるのか不明ですが、4LiteはIEエンジンだけなのでWindowsアップデートしていれば大丈夫と判断しました。) 一応、新規タブを現在のタブの横に開ける、タブを閉じたとき直前に見ていたタブをアクティブにする設定が可能です。 (設定画面の表現が紛らわしいのです。[新しいブラウザでリンクを開く]という設定で新しいタブでリンクを開くようになります。)

BloggerやGoogle SiteがTridentでうまく動かないところがあるので、Firefox3.6を入れました。
http://www.lunascape.jp/Products/tabid/163/Default.aspxでは

また、多くのGeckoアドオンを利用するユーザーのために、ウェブブラウザの起動速度も改善しました。複数のGeckoアドオンインストール時の起動速度は同数のGeckoアドオンをインストールしたFirefox3.5.5よりも高速になっています。
と記述がありますが、とりあえずプラグインが2つだけのFirefox3.6のほうがLunascape6より断然高速に起動していると感じます。

さらにディスクの使用量は半分程度になったと思います。
Program Files以下の要領は、Lunascape6が68.3 MBです(Webkitなし)。
Lunascape4 Liteは7.35 MB、Firefox3.6が27.2 MBです。(ともにディスク上のサイズ)

☆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 は別の用途でも使えますし。(完全に自分に対する言い訳ですねこれは。)

☆Karmicのusplashをカスタマイズ

Karmicでは高速化のためにusplashのプログレスバーが無効になっています。
(ソースに "/* disable progress bar in Ubuntu 9.10 due to faster boot */" と書いてあります。)
このために起動の進捗具合が分かりにくくなっています。起動にかかる時間を短縮することも重要ですが、プログレスバーが表示された方が良いと思っている方も多いのではないでしょうか。

プログレスバーを出すだけならばusplash-theme-ubuntu-colorパッケージを導入すればjauntyと同じ状態になります。
しかし、私はKarmicのモノトーンが好きなのでusplash-theme-ubuntu-colorでは満足出来ません。そこでusplash-theme-ubuntuのソースパッケージを取得してプログレスバーを有効にします。
ついでにgrubの設定を少しいじってusplashの下側に実行しているプロセスを表示するようにします。

百聞は一件に如かず。まずはスクリーンショット

usplash表示前
変更前はこのとき画面が真っ黒
usplash表示初期
インジケーターが行ったり来たり
usplash表示後期
プログレスバーが伸びて行く

ちなみにGDMを使っている場合はこのあとxsplashが少しのあいだ表示され、GDMのログイン画面が表示されます。
SLiMならxsplashなしですぐにログイン画面です。速さを求めるならSLiMよいですよ。

●grubの設定

まずは簡単な方から。/etc/defalt/grubを編集します。 変更対象のエントリは"GRUB_CMDLINE_LINUX_DEFAULT"。"quiet"を取り除きます。 変更前

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
変更後
GRUB_CMDLINE_LINUX_DEFAULT="splash"

その後、/boot/grub/grub.cfgを作り直します。

sudo update-grub

●usplashのソース改変

例によって、作ったパッケージをUpしました。
作業過程に興味のない方や開発用のパッケージを入れたくない方はこちらをどうぞ。
https://sites.google.com/site/midspeclowload/files/usplash-theme-ubuntu-mono_0.27_i386.deb?attredirects=0&d=1

一通り自分で作業される場合は、Ubuntu Weekly Recipe 第16回を参照して必要なパッケージを導入します。
作業用のディレクトリでusplash-theme-ubuntu のソースを取得。

sudo apt-get source usplash-theme-ubuntu
usplash-theme-ubuntu-0.27の下にあるusplash-theme-ubuntu.cをusplash-theme-ubuntu-mono.c にリネームします。
Makefile, debian/rules, debian/changelog, debian/control, debian/postinstに含まれている文字列”usplash-theme-ubuntu”をすべて”usplash-theme-ubuntu-mono”に置き換えます。

usplash-theme-ubuntu-mono.cをエディタで開いて"#if 0"を検索します。ここから"#endif"までがプログレスバーの処理をする関数のようです。そのさらに下に中身がからっぽの関数が定義してあります。
空っぽの方を"#if 0"、"#endif"で挟んで無効化し、ちゃんと中身のある方を有効にします。

このままではロゴとプログレスバーが重なってしまうので、ロゴのY座標を調整します。usplash-theme-ubuntu-colorのソースを取得して、Y座標だけusplash-theme-ubuntu-color.cと同じにします。

改変したソースは
https://sites.google.com/site/midspeclowload/files/usplash-theme-ubuntu-mono_0.27_i386.deb?attredirects=0&d=1
にあるのでオリジナルと比べて見てください。

パッケージをビルドします。

debuild -r fakeroot
一つ上のディレクトリにパッケージが作成されます。

●usplashの導入、設定

作成したパッケージを導入します。

sudo dpkg -i usplash-theme-ubuntu-mono_0.27_i386.deb

これでupdate-initramfsが走っているのですが、なぜかこれだけでは新しいusplashに変わってくれません。
update-alternativesに指定している優先度の問題かもしれませんが、ここはツールに頼ります。startupmanagerを導入します。

2010/02/28 この件に関するフォローを投稿しました。☆Startup- Managerに頼らないUsplashの変更

sudo apt-get install startupmanager
gksudo startupmanager &
設定画面の[外観]タブのリストボックスから導入したusplashを選択します。[閉じる]を押すとupdate-initramfsが起動されます。

ちなみにstartupmanagerの[起動オプション]タブにある[その他]以下の2項目は"GRUB_CMDLINE_LINUX_DEFAULT"ではなく"GRUB_CMDLINE_LINUX"を変更するようです。
"GRUB_CMDLINE_LINUX"はrecovery modeのオプションを設定する項目みたいです。
こちらをいじっても通常の起動には影響しません。