2010.03.19

[NetWalker]NetWalkerでradiko.jpを聴く

免責

無保証です。

これは何か

NetWalkerでradiko.jpの放送を聞くためのスクリプトです。

radiko.jpはラジオ放送のIPサイマルキャスト放送ですが、Adobe Flashを必要とします。
SHARPから提供されているAdobe Flash Liteでは聴くことができないようです。
それをどうにかしてNetWalkerで聞くためのスクリプトです。

ダウンロード

「netwalker_radiko_kit.zip」をダウンロード

インストール

TwitpicUploaderと同様の手順にて、エントリを参照の上、拙リポジトリを登録。「rtmpdump」、そして「ffmpeg」をインストール。

使い方

netwalker_radiko_kit.zipを解凍。「netwalker_radiko_kit/tokyo」の内容物である「FMJ FMT INT LFR NSB QRR TBS」、ないしは「netwalker_radiko_kit/osaka」の内容物である「802 ABC CCL FMO MBS OBC」をダブルクリック、表示されたダイアログのうち「実行する(R)」を選択。しばらくの空白の時間の後、バックグラウンドで再生が始まるはずです。

ファイル名と放送局との対応は以下の通りです。

※※※※ ファイル名を変えると動作しなくなります ※※※※
※※※※ ファイル名を引数として使っているからです ※※※※
※※※※ 変えたい場合は、Symbolic Linkなどで対応するか ※※※※
※※※※ 即値としてスクリプトを書き換えてください ※※※※

東京

J-WAVE FMJ
TBSラジオ TBS
文化放送 QRR
ニッポン放送 LFR
ラジオNIKKEI NSB
INTERFM INT
TOKYO FM FMT

大阪

ABC ABC
MBS MBS
ラジオ大阪 OBC
FMこころ CCL
FM802 802
FM大阪 FMO

様子がおかしいようであれば、ダブルクリックした後に表示されるダイアログから「端末内で実行する(T)」を選んで実行してみてください。終了はCtrl+Cです。

radiko.jpはIPによるアクセスコントロールをしています。聴けないことがあるならば、radiko.jpが示すサポートされた環境で聴取が可能か確認してください。

止め方

「netwalker_radiko_kit/radiko_stop」をダブルクリック、表示されたダイアログのうち「実行する(R)」を選択。
実行から少し後に再生が止まるはずです。

|

2009.11.10

[NetWalker]窓使いの憂鬱をNetWalkerで動かす

前口上

NetWalkerのキーボードが議論を呼んでますね。
こんなキーボードでも使っていれば慣れますが、Linux ZaurusよろしくいろんなところでNetWalkerを使おうとすると、微妙に不満が出てきます。

親指タイプがしにくいことへの不満が一つ。
物理的な問題よりは、親指タイプには不可欠のmodifier keyのsticky key設定への不満の方が勝ります。

Ubuntu標準のアクセシビリティ機能(AccessX)として「スティッキー・キー」があり、これを有効にすれば一応役目を果たすのですが、二度押しするとロックがかかってしまい、大抵において意図しないところでロックが暴発してイライラすることになります。

「スティッキー・キー」はアクセシビリティの機能ですのでこれでいいわけですが、親指タイプ向きではないといえます。

非標準の、親指タイプ向きの挙動のsticky key化の手法はほかに無いものかと調べて、kiwanamiさんの「[Ubuntu]Sticky Shift / SandS」を試してみましたが、デフォルトではkbd_drv.soは使われておらず、最初から入っているkbd_drv.soを使うようにするだけでゴミが入力されまくる症状が出たので諦めました。

結果として理想に近いsticky keyを実現できたのが「私家版 窓使いの憂鬱 Linux & Mac (Darwin) 対応版」です。 「本家・窓使いの憂鬱」は元々Windows向けのキーボードドライバですが、Linux向けに移植されたものがあるのです。
arm linux向けのバイナリはありませんが、コンパイルしたらNetWalkerでも動きました。

「窓使いの憂鬱」の動作にはuinput.koというカーネルモジュールが必要ですが、これは安藤神の「NetWalkerのカーネルとローダブルモジュールのビルド」を見てビルドしました。

NetWalkerに「窓使いの憂鬱」を導入すると、ロックがかからないsticky keyのみならず、操作性改善の余地が大きくなります。

この辺のものをまとめたものをdebにしたので使ってみてください。

窓使いの憂鬱インストール

すいませんが無保証人柱向けということでお願いします。

3Gモデム対応ツールのインストール

3Gモデム対応ツール」をインストール。
無関係のように思えますが、これは実質カーネルの入れ換えで、窓使いの憂鬱で必要なuinput.koを使う上で、この手順が必要となります。ご自分でビルドしたカーネルに入れ替えている方は、そのカーネルで使えるuinput.koをお使いになればよいかと思います。

必要なパッケージのインストール

ターミナルで、以下のように入力して必要なパッケージをインストール。

sudo aptitude install libboost-regex1.34.1
wget http://bit.ly/1OHpUQ
sudo dpkg -i mayu-0.11-araneo_2.6.28.15_armel.deb

/etc/init.d/mayuの編集

/etc/init.d/mayu を編集し、「USER=」の後を自分のユーザ名に変更。

sudo gedit /etc/init.d/mayu

~/.mayuの用意

/usr/local/share/mayu/dot.mayu を~/.mayu としてコピー。

cp /usr/local/share/mayu/dot.mayu ~/.mayu

/etc/init.d/mayu実行時パスワード不要化

visudoコマンドで/etc/init.d/mayuの起動でパスワード入力を不要にする。

sudo visudo

末尾に以下を追記。

ユーザ名 ALL=(ALL) NOPASSWD: /etc/init.d/mayu

mayu自動実行に関する設定

/etc/gdm/PreSession/Defaultにmayuの自動起動を記述。

sudo gedit /etc/gdm/PreSession/Default

下記を/etc/gdm/PreSession/Defaultの末尾fiとexit 0の間に追記する。

sudo /etc/init.d/mayu start

動作テスト

~/.mayu末尾に以下のように追記します。

# Sticky Shift
mod !!shift
key *IC-S-LShift = &EditNextModifier(S-)
key *IC-S-RShift = &EditNextModifier(S-)

# Sticky Ctrl
mod control -= LCtrl
mod control -= RCtrl
mod !!control
key LCtrl = &EditNextModifier(C-)
key RCtrl = &EditNextModifier(C-)

# Sticky Alt
mod alt -= LAlt
mod alt -= RAlt
mod !!alt
key LAlt = &EditNextModifier(A-)
key RAlt = &EditNextModifier(A-)

以下のようにして窓使いの憂鬱をフォアグラウンドで起動。

sudo /etc/init.d/mayu loadtest

特に、不審なエラーメッセージが出ていなければ、別なターミナルなどで「Shift」、「A」と順次押し(同時押しではなく)してみる。大文字の「A」が入力されれば、一応動作OK。

ここで起動したmayuの終了はCtrl-Cでできます。

再起動してみて、当初から窓使いの憂鬱が起動して効能を発揮していればインストールは終了。

窓使いの憂鬱起動スクリプト(/etc/init.d/mayu)の使い方

スタート

sudo /etc/init.d/mayu start

ストップ

sudo /etc/init.d/mayu stop

再起動

sudo /etc/init.d/mayu restart

テスト

sudo /etc/init.d/mayu loadtest

start/stop/restartだと、設定でエラーが出てても分からないので、固まるまではさきほどの通り「sudo /etc/init.d/mayu loadtest」でテストしてCtrl-Cで停止、を繰り返すといいと思います。

カスタマイズ

後で記号入力等について追記予定。

設定は、本家のものが流用できます。非常に多機能。ただし、関数は使えないです。

窓使いの憂鬱 - README

SandS (Space and Shift)

Space単体では空白入力、Space+何か、ではSpaceがShiftであるかのように振る舞います。

mod shift += !!SPACE

AでCtrlも兼ねる

mod control += !!A

A押しながら何か、でCtrl+何か、になります。
A単体だと「A」のままです。欠点はCtrl+Aが入力できないこと。 Qに設定すれば、他との競合はあまり気にしないでいいかな。 もう一つの欠点はSticky Shift等との共存ができないらしいこと(情報募集)。

キーシーケンス

複数手順をまとめて入力できます。

keyseq $TEST = h e l l o Space w o r l d Left Left
key H = $TEST

上記の例ではHを押すと「hello world」と入力され、カーソルはrとlの位置に行くと思います。

参考サイト

以下の記事を参考にさせていただきました。 起動スクリプトはそのままパクりました。 ありがとうございます。

NetWalkerのカーネルとローダブルモジュールのビルド - Android Zaurusの日記

Ubuntu で窓使いの憂鬱使う方法 - 地獄の猫日記

Linux/Ubuntu/窓使いの憂鬱をインストール -俺の基地

パッケージの内容物について

後で追記。

|

2009.09.25

[NetWalker]バッテリー残量をほんのりマシに表示する battwalker.rb

NetWalkerの標準バッテリー残量インジケーターに不満を持っている人は多いのではないでしょうか。

使って10分もするとすぐに表示が黄色くなってしまい、折角バッテリーの持ちがいいのに無用な不安にとらわれてしまいます。
「/proc/battery」をのぞくと各レベルの閾値が設定されていることが読み取れますが、それと表示との間にもずれがあるように思います。

$ cat /proc/battery
7973mV (952) 947:90 892:50 873:20 771:8 770:2 0:2 caution(873:20 - 0) shutdown(770:2) poll:1800sec

ということで、代替となるようなバッテリー残量インジケーターをRuby/Gtkで書いてみました。

Screenshot

更新情報

2009.9.27 Ver.0.4: インジケーター上に残量のパーセンテージを文字で表示するようにしました。

Screenshot

2009.9.26 Ver.0.3: 名前を「battmonwalker.rb」から「battwalker.rb」に変更しました。

@kuromaboさんが自分と同時に同じものを作ろうとされていたということで、その@kuromaboさんが命名していた名前を拝借しました。

@kuromaboさんには後見人として(?)、いろいろ手伝ってもらっています。

Ver.0.3では、残量算出方法を見直して、Ver.0.2よりマシになっていると思います。

インストール

無保証です。

インストールは自分の野良リポジトリからできます。
リポジトリの登録手順、リポジトリからのインストール手順については以下のページを参照してください。

[NetWalker]Twitpicに画像とコメントをアップロードするTwitpicUploader.rb

パッケージ名は「battwalker.rb」です。

Battwalker01

インストールすると「/usr/local/bin/battwalker.rb」として入るので、これを「システム>設定>自動起動するアプリ」に登録します。

Battmonwalker02
▲「システム>設定>自動起動するアプリ」を起動。

Battmonwalker03
▲「追加」ボタンを押します。

Battmonwalker04
▲ダイアログの「名前」には適当な名前を、「コマンド」には「/usr/local/bin/battwalker.rb」と。「説明」も適当に。(画像は名前がbattmonwaker.rbだったときのものです)

Battmonwalker05
▲登録完了。(画像は名前がbattmonwaker.rbだったときのものです)

一度ログアウトして再度ログインすると、通知領域にバッテリー残量インジケーターが表示されると思います。
ruby, libgtk2-rubyに依存しているので、インストールするとそれらも入ります。
(これをdebの中で処理する方法を知っている方教えてください。カレントユーザーディレクトリを知る方法が分かりません)

システム標準のもの、そして battwalker.rb のものとバッテリー残量インジケーターが二つ表示されることになります。
僕は、システム標準のインジケータを消して使ってみてます。

「システム>設定>電源の管理>全般タブ」にある「バッテリー残量がほとんどない時だけアイコンを表示する」を選択すると普段は消えてくれます。

解説

battwalker.rbは「/proc/battery」を読み取って、通知領域のインジケーターとtooltipに反映させるというシンプルなアプリです。
表示の更新は1分に1回実行しています。

インジケーター上にマウスカーソルを持っていくと、tooltipで現在の残量等を表示します。

Gtk::Pixbufにdraw text的な感じのことをして、それをGtk::StatusIconにセットすればいいみたい、というとこまで分かりました。
Ruby/GtkはNetWalkerを入手した日にいじり始めたもんで、よく分かっていません。
やり方が分かったら、そのような感じにする予定です。

「/home/YOUR_NAME/batterylog.txt」として残量のログを記録していきます。
今のところ、ログを切ることはできません。

残量算出の精度とログ、アイコン切り替えテーブルについて

/proc/batteryに現れる電池の残量は、コストダウンのためか電圧を見て検出しているようで、精度がよろしくありません。
何しろ、一度減った残量が増えたりしますから。

システムの負荷が低いと電圧が上がり、負荷が高くなると電圧が下がり、ということが起きているように思います。

またしばらく減らなかったりするようです。
「本来なら電流計によって容量計算をするのだが、電流計を積んでないのではないか」そんな考察が2ちゃんねるでされていました。

tooltipのパーセント表示は、シャットダウンする残量770を下限、僕の環境でフル充電し、ACアダプタを外した直後の残量980を上限として、それを100等分したときに、現在の残量がどこに位置するかで求めています。

電圧が一時的に高くなるACアダプタ接続中は、この関係で残量表示が100%を超えます。
ACアダプタの接続/切断を判定して、パーセント表示を出さないようにしています。

980という数値はスクリプトの中に固定値として書き込んでいますが、本来は環境によって調整すべきでしょうね。

|

2009.09.23

[NetWalker]Twitpicに画像とコメントをアップロードするTwitpicUploader.rb

NetWalkerで使うために、Twitpicに画像とコメントをアップロードし、そしてTwitterにpostするアプリケーションをRuby/Gtkで書いてみました。

標準のファイルブラウザ、Nautilusや、画像ビュワーgThumbからクイックにTwitpicにアップロードができるようになって便利です。

インストール

無保証です。

野良リポジトリを作ったので、以下を「システム管理>ソフトウェア・ソース」で追加してください。

deb http://homepage3.nifty.com/moyashi/netwalker/ ./

Twitpicuploader01

Synapticにてtwitpicuploaderで出てくると思います。「クイック検索」では出てこないので、その横の「検索」ボタンで検索してください。

Twitpicuploader02

gpgを置いていないのでインストール時に「認証されていません」と出ますが、そのままインスコしてください。

このパッケージをインストールすることで、依存しているruby, libgtk2-ruby, rubygems、そしてpostinst内にてRubyGems経由でhttpclientが入ります。
rubygemsからのhttpclientインストールに結構時間がかかると思います。

$HOMEにファイルをコピーする方法が分からなかったので追加作業を要します。
(どなたかカレントユーザのディレクトリにファイルをpostinstの中からコピーする方法を教えてください)

ln -s /usr/local/bin/TwitpicUploader.rb ~/.gnome2/nautilus-scripts/
cp /usr/local/share/twitpicuploader/TwitpicUpLoader.yaml ~/

そして、~/TwitpicUploader.yamlを編集します。

username: Twitterのアカウントを入力
password: Twitterのパスワードを入力

Nautilusで何か画像を選択し、右クリックでポップアップメニューを開きます。
「スクリプト(S)」という項目が出来ているので、その下にあるTwitpicUploader.rbを選択します。
メニューの「ファイル(F)>スクリプト(S)」でも同じです。

Twitpicuploader03

すると、TwitpicUploaderが起動するので、コメントを入力してPost。

Twitpicuploader04

オプションを選択していれば、クリップボードにアップロード先のURLがコピーされていると思います。ブラウザで見ると、こんな感じ。

Twitpicuploader05

チェックボックス項目説明

「URL copy to the clipboard」
チェックボックスがONになっていると、投稿されたTwitpicのURLをクリップボードにコピーします。
「Alt+U」でON/OFFできます。

「URL post to your Twitter account」
チェックボックスがONになっていると、コメントと画像URLがTwitterにpostされます。
「Alt+T」でON/OFFできます。

「Append hashtag #netwalker」
チェックボックスがONになっていると、コメントに「#netwalker」というハッシュタグを追加します。
「Alt+A」でON/OFFできます。

画像ビュワーgThumbとの連携

gThumbは、デジカメとの連携に優れた人気のある画像ビュワーです。
gThumbとTwitpicUploader.rbとの連携も可能です。

「gThumb」と「libnotify-bin」をSynapticからインストールします。
libnotify-binにはnotify-sendという面白いコマンドが収録されています。後で使います。

gThumbは「ホット・キー」経由で外部コマンドとの連携が可能な作りになっていますが、残念ながらホットキーはテンキーの0から9に割り当ててあるため、NetWalkerではそのままではこの機能が利用できません。

「~/.Xmodmap」を編集します。

中身は以下のようにします。

keycode 19 = KP_0 KP_0

そして一度ログアウトします。
再度ログインする際に、「modmap ファイルの読み込み」というダイアログが開き、「.Xmodmap」を起動時に読み込むか確認されるので、読み込むように指定します。

Twitpicuploader06

ただし、「次回からこのメッセージを表示しない」のチェックボックスはOFFにします。
変な.Xmodmapを読み込ませると大変なことになるからです。

gThumbを起動し、「編集(E)>設定(P)」を起動。「ホット・キー」のタブの「0:」の項目を以下のように書き換えます。

notify-send "send to TwitpicUploader.rb.."; /usr/local/bin/TwitpicUploader.rb %f &

設定が完了したら、適当な画像を選択するか、画像を表示しているときに「0」を押します。選択した画像がTwitpicUploader.rbに渡ると思います。

Twitpicuploader07


コマンドラインからの利用

コマンドラインからも使えます。

$ TwitpicUploader.rb SOME.jpg

|