投稿者「sasakima-nao」のアーカイブ

ui_manager

EyeOfGnome – SunagaLab

Gnome 標準の「画像ビューア」も Python でプラグイン拡張ができるんだ。
知らなかった、しかし需要が恐ろしく微妙だ…
何か作ってみようと思ったけど今は全然思いつかない。

しかし同じように get_ui_manager メソッドでわりと楽に UI の取得ができるようで。
調べてみると Totem も当然のように、いや俺はコレについて書くわけには…
よく解らないんだが GtkBuilder は関係あるのかな?

GtkBuilderとGladeについてと、PyGTK上での使用について(概要) – 試験運用中なLinux備忘録

今唐突に思いついたが gEdit のタブ右メニューに「このタブ以外を閉じる」が欲しいぞ。
タブ右メニューの name は…ソースを見るしかない臭いんだが、あまりやりたくないけど。

ところで Gnome 標準なら全部こうなのかな?と思って検索したけどそうでもないや。
まあそりゃ Tomboy なんかは mono だし当然 C# になるわな。
mono やりたい人はこんなのから始めるといいかもよ。

Tomboy/HowToCreateAddins – GNOME Live!

私は Tomboy は使っていないけど…

解説ページを作ってみた

gEdit プラグインの作り方解説ページを作ってみた。
トップページ(本サイト)からどうぞ。
しかししばらく Linux でいく宣言した途端に…

それより何故誰もこういうページを作ってくれないんだろう…
てなわけで。

Windows でよく使っていた秀丸マクロは gEdit でまかなえるようになった。
何より Python と PyGtk で書けるというのは嬉しい、勉強した甲斐があった。
秀丸のマクロはヘルプとにらめっこだったからね。

でも動作確認は一旦再起動しなきゃいけないのが面倒。
ここらを柔軟にしてくれると嬉しいけど無理だろうなぁと。
キーボードマクロの記録再生みたいなのは作れるかな?まだ解らない。

後は Shift+Enter で <br /> を打てれば完璧なんだが…

Ctrl+[ で <br />
Ctrl+] で <br /> & 改行

というスニペットを作ってみたけどやはり間違えるや。
まぁこれは慣れの話だ。
とにかく gEdit って結構おもしろい。

SyntaxHighlighter 2.0 は textarea もイケた

SyntaxHighlighter 2.0 に詳しいサイトを見つけた。

SyntaxHighlighter2.0の使い方 – ShanaBrian Official WebSite

textarea のままイケたんだ orz
pre に全書き換えしたあの苦労はいったい…

まぁおかげでいつかやろうと思っていた徹底的な整理が終わったけど。
ヘッダとフッタは require_once で読み込んでソコから又色々読み込んで
てなわけでテンプレートはこんなに小さくなった。

<?php $title = ""; require_once("../_header.php"); ?>

<h2></h2>
<div class="entry">
</div>

<!--
<h2></h2>
<div class="entry">
</div>
<pre class="brush: py"></pre>
-->

<?php require_once("../_footer.php"); ?>

もう Bluefish はいらないや、で削除と。

後 pre 変更するのに困ったのが HTML のエンティティ化。
textarea は < とかはそのまんま書けたけど pre は変換しなきゃ駄目。
コレ C++ でやると泣く、山括弧を使いまくる言語だもの。

しかたがないので一度 Windows にもっていき秀丸のマクロでやったり…
それも面倒なので HTML エスケープの gEdit のプラグインを作ってみた。

HTML エスケープ
少し改造しました、トップページ(上のリンクの本サイトのとこ)からどうぞ。

もう少し試して解説ページを作ります。

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 を渡す処理だけだ、もう少し。