月別アーカイブ: 2009年3月

IE 糞すぎる!

覚書ページの textarea → pre 化完了!
あーつかれた。

とりあえず SyntaxHighlighter v2 はなかなか良い。
それに pre なので wordpress で使うのも問題が無くなる。
textarea だと編集時に最初の閉じタグ以下が消滅していたもの。

しかし…

C# のコードをまるまる書いたページが IE で見れなくなった!
キチンと XAML も C# コードも pre で囲っているのに何故…
仮想マシンだけかな?もーやだ。

追記

原因判明、単なるオイラのミスだった。
IE って charset 指定をヘッダの一番上に書かないといけないのね…
そうしないとそれ以降の文字コードが解らずに読み込めないってことです。

でも何故か読み込めたページもあるんだよなぁ???
仕様が意味不明だ、やっぱり IE は糞すぎる!

起動している自ウインドウを見つける

多重起動防止でまだ詰まっております。
C 言語での方法はボチボチ見つかるけど Python に書き換えると上手くいかない。

色々調べると wnck なんていうモジュールがあることが解った。

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import wnck

# デスクトップ取得
w = wnck.screen_get_default()

# ディスプレイサイズ

print "ディスプレイ幅",w.get_width()

print "ディスプレイ高さ",w.get_height()

なんてコトができるというのが解った。
が PyGtk のヘルプにも Python のヘルプにも wnck の項目が見つからない…

GNOME Library – 開発者

Gnome のヘルプ内で Libwnck というのがやっと見つかった。
Opera のページ内検索は便利だね、ドットを押すだけだし。
いや、肝心の検索バーが Linux 版はたまに入力不能になるので…まあこれはいい。
後は man と dir(wnck) と USA Google を使って地味に調べてみた。

PyGTK FAQ Entry

ほーこんなことができるんだ。
ということは

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import gtk
import wnck

screen = wnck.screen_get_default()

while gtk.events_pending():
    gtk.main_iteration()

for window in screen.get_windows():
    name = window.get_name()
    if name.endswith("Y901x"):
        print "起動しています"
        break

なんてコードで現在 Y901x が起動しているかどうかは確認できるわけだ。
同じ名前が存在していたら困るけどまず無いだろう。
とはいえいつのまにか全然違うコードになるかもしれないんだけど…

とにかく後はウインドウに URI を渡す処理だけだ、もう少し。

デスクトッププロパティ

多重起動防止をどうするか調べていている。
どうやら atom を使う方法があるようだ、ということで

gtk.gdk.atom_intern

とかでググりまくっていたらこんなのを見つけた。

Extended Window Manager Hints

んーということならデスクトップのプロパティは

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import gtk

# デスクトップ取得
w = gtk.gdk.get_default_root_window()
# 得られるプロパティのリスト取得
p = gtk.gdk.atom_intern("_NET_SUPPORTED")
a = w.property_get(p)[2]
# ループで丸ごと表示
for r in a:
    p = gtk.gdk.atom_intern(r)
    print r
    print w.property_get(p)

とすればどのキーワードでどのプロパティが取れるか全部表示できて解りやすい。
とりあえず出力されるタプルの3番目がリストか文字列になっている。
None でないのを展開、又は文字列ならそのまま表示させれば情報が手に入る。
freedesktop.org だから KDE でも問題無いと思う、試していないけど。

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import gtk

# デスクトップ取得
w = gtk.gdk.get_default_root_window()

# ディスプレイサイズ
p = gtk.gdk.atom_intern("_NET_DESKTOP_GEOMETRY")
print "ディスプレイ幅",w.property_get(p)[2][0]
print "ディスプレイ高さ",w.property_get(p)[2][1]

# ワークエリア
p = gtk.gdk.atom_intern("_NET_WORKAREA")
area = w.property_get(p)
print "ワークエリア:Left",w.property_get(p)[2][0]
print "ワークエリア:Top",w.property_get(p)[2][1]
print "ワークエリア:Width",w.property_get(p)[2][2]
print "ワークエリア:Height",w.property_get(p)[2][3]

# 仮想デスクトップの数
p = gtk.gdk.atom_intern("_NET_NUMBER_OF_DESKTOPS")
print "仮想デスクトップの数",w.property_get(p)[2][0]

# 現在の仮想デスクトップ位置
p = gtk.gdk.atom_intern("_NET_CURRENT_DESKTOP")
print "現在の仮想デスクトップ位置",w.property_get(p)[2][0]

# 現在の仮想デスクトップ名
p = gtk.gdk.atom_intern("_NET_DESKTOP_NAMES")
print "現在の仮想デスクトップ名",w.property_get(p)[2],"\n"

_NET_CLIENT_LIST で表示されているウインドウ ID
_NET_ACTIVE_WINDOW でアクティブウインドウ ID

が得られるんだがコレを上手く使えないかな?いまココ

realplay

RealPlayer for Linux – the best audio and video player – Real.com

いつのまにやら(前から?) deb があった。

realdeb

deb なら削除も簡単だし、せっかくだから入れてみよう。
「日本語セットアップヘルパ」から v10 を削除して開始。

途中で止まったと思ったらメールサーバーがどうとか…

初回起動で Windows 版同様に色々…

「日本語セットアップヘルパ」の奴は何もなかったのに。
気を取り直してと…やはり「送信する」関連がデフォルトなので消す。
さて起動はメニューにある、一応端末からは realplay ね。

realplay

普通に日本語になるんだね。
しかしシークバーが間延びしていて少しカッチョワルイんですけど。
ホイールクリックで追従するから GtkHScale っぽいんだが、ソースは見ていない。

プラグインを見ると一番上に wmvrender.so がある。
どうやら WMV はサポートしたようだ、H.264 と FLV が見当たらないんだが…
試してみたらそのまんま、けど GStreamer で例外になる WMA は何故か再生できた。
…んだけーが 16:9 の奴が 4:3 になってしまったり。

そうそう、YouTube でも例のツールバーは出ないです。
そうそう、最後まで再生しても「もう一度見る」は出ません。
そうそう、左下のボタンでプレイリストが出る、けど横にくっついていない。

微妙だ…なんか Windows 版と違いが激しすぎ。

それよりv11 は Ubuntu 8.10 でもボリュームが調節できる!
てゆーか v10 ではできなかっただけなんだが。

あんまり参考にならないや。
まあアスペクト比調節機能はやはり必要だということだけは理解した。