Programming」カテゴリーアーカイブ

GNOME3 and PyGtk3

Fedora 15 beta を試している、もちろん HDD インストールで。
しかし何故かアプリのインストールがうまくいかないのでデフォルト状態のみ。

AMD 880G 内蔵グラフィックで GNOME3 の 3D デスクトップはイケる。
ダイアログの表示がカッチョイイ、まんまコレだった。
GNOME 3 – Made of Easy

日本語フォントは今までどおり VL ゴシック。
アプリも 14 とあまり変わらない、GNOME アプリは全部 GTK3 化されている。
GUI では gnote が無くなったくらいかな、使い込んでいないから細かい違いは解らない。
mono はやはり無かった、Fedora は本当に mono が嫌いであるようです。

Windows でいうタスクバーがなくなったのでチト迷う。
アクティビティをクリックして選択、使い勝手は微妙。

Nautilus の左ペインはツリー表示にできなくなってしまったの?
というかデスクトップに物が置けない、XDG_DESKTOP_DIR 指定が無意味。
ゴミ箱とかのウィジェットがタスクバーに表示できなくなった?
細かい設定ファイル類が微妙に今までと位置が違う。

仮想デスクトップは今までと違い何かウインドウを置くと一つ追加になる方式っぽい。
アクティビティをクリックして右端にマウスを持っていくと選択できる。
すべてのウインドウを閉じた仮想デスクトップは自動で消える、なるほどという感じ。

通知スペースはマウスを右下に持っていくと表示される。
私の作った clipolix もココに配置された。

なんというか、とにかく何をやるにもマウスをいっぱい動かす必要がある。
アイコンも大きいしタブレットだと凄く便利そうなんだけど慣れるまで迷いそう。

Firefox は GTK2 だと思うけどスクロールバー等のウィジェット形状が以前のまま。
GTK3 のアプリかどうかはウィジェット形状で見分けがつくってことみたいね。

~/.local/share/gedit/plugins
に gedit プラグインを置けばいいみたいだけどまるっきり仕様が変わっている。
拡張子も違うし import も継承元も callback 名も全部変更されている。
まいった、移行するなら全部作り直しか。
Gedit/PythonPluginHowTo – GNOME Live!

上記の Plugin URL を見て気がついたけど PyGtk で GTK3 が使えるんだね。
gi.repository.Gtk という名前空間(モジュール)でイケるようだ。

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

from gi.repository import Gtk

class Test(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self)
        self.connect("delete-event", Gtk.main_quit)
        cb = Gtk.CheckButton("Check Button だよ")
        cb.set_active(True)
        self.add(cb)
        self.show_all()

if __name__ == '__main__':
    w = Test()
    Gtk.main()

おぉ、GTK3 のウィジェットだ。
こうすればいいのか、あまり GTK2 の時と変わっていないみたいだね。
コレさえできれば私は素直に GNOME3 に移れる。

でも Gedit で External Tool に追記しても動かないんだが…
まだベータだし、とりあえず正式版が楽しみだ。

Python and .NET Methods

.NET と Python メソッド対応表 – L’Isola di Niente

自分で利用したかったので作ってみた。
ついでに覚書ページのも少しまとめた、整理進んでねぇ…

表を作るので何年かぶりに table タグを使おうと思ったけど面倒くさい。
せっかく PHP なんだからコードで作ってしまえ!
ということでこんなのを作ってみた、PHP に関しては私はサルです。

<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<title>PHP table</title>
<?php
function put_table($items, $count, $separator) {
    echo "<table border=1 cellspacing=0 cellpadding=3>\n";
    $header = true;
    $array1 = explode("\n", $items);
    foreach ($array1 as $s1) {
        $array = explode($separator, $s1);
        echo "<tr>\n";
        for ($i=0; $i<$count; $i++) {
            if ($header) {
                echo "<th bgcolor=\"#eeeeee\">$array[$i]</th>";
            } else {
                echo "<td>$array[$i]</td>";
            }
        }
        echo "</tr>\n";
        $header = false;
    }
    echo "</table>\n";
}
?>
</head>
<body>
<?php
$items = <<<ITEMS
名前|デスクトップ|リリース予定
Ubuntu 11.04|Unity|2011-04-28
Fedora 15|Gnome 3|2011-05-24(2011-04-19 Beta)
Mandriva 2011|KDE 4|2011-06-13
ITEMS;
put_table($items, 3, "|");
?>

</body>
</html>

みたくヒア・ドキュメントにしてセル数とセパレータ指定にしてみた。
ヒア・ドキュメントなら後で書きたしや書き換えをやりたくなっても簡単だ。

PHP は HTML 中にそのまんま書き込めるから楽でいいよね。
まぁ言語仕様はどうかとは思うけど…

しかし次の Linux はドレでいくかなぁ?
GTK+ 3.0 がやりたいので Fedora にしたいけど初版は不安定かもしれないし…

GNOME 3.0 depends on Mono

4 月、新しい Linux がワンサカ出る季節になった。
ついに GNOME3 が Fedora に正式採用されるようです。

Linux Daily Topics:2011年4月5日 Fedora 15のGNOME 3は慣れるまでに時間がかかるかも─Fedoraアンバサダー|gihyo.jp … 技術評論社

って GTK+ も GTK3 になるのか、そりゃそうだ!
おいらの PyGtk アプリはどうなる、GTK2 のアプリは動くの?
Python も可能ならいいかげん 3 にならないか、2 に依存しすぎて無理かも。

fedora はコレを落としてみたけど完全に作りかけだよ…
独学Linux:Fedora15(Lovelock)の開発版

Ubuntu 11.04 はベータが出ている。
とにかく VirtualBox で動かして解る範囲でチェック。

Ubuntu は基本 GTK2 のままか、正式版で何がどうなるか解らないけど。

Python から PyGtk を使うと Fedora も GTK2 になる。
pygtk.require(‘3.0’)
とやりたくても現状 site-packages に gtk-2.0 ディレクトリしか無い。

そういうわけで Y901x も起動できる。
今までの GTK2 アプリも PyGtk も問題無しということでいいのかな。。

Ubuntu は GtkMenuBar が Mac 風になる、変則配置の Y901x はどうなる?

あれ、メニューがあるはずの部分が少しズレているけど問題無いみたい。
動画の縦ピクセル数も合っている、これなら得に変更する必要は無いかな。
GtkMenuBar.allocation.height がゼロを戻しているのだろうきっと。

とりあえず Ubuntu がこのままなら我がアプリは 11.04 でもイケるようだ。
今まで Ubuntu の更新毎にどこかがおかしくなっていたけど…
何も問題がないってのも逆に面白くないな…

ついでだから 11.04 のデフォルトアプリを見てみる。
OOo が LiberOffice に変わっている。
なんと Tomboy が残っている、今渡こそ Gnote になると思っていた。
Rhythmbox が Banshee に、だから何故 mono 製を選ぶかな…

GNOME3Myths – GNOME Live!

GNOME は mono 依存に戻ったのか。
Fedora にも mono が復活するのだろうか?アルファ版には無いんだが。
つか GTK3 が Gtk# から使えるということなのかな、Python はどうなる?

とにかく Fedora のベータ待ちだ、ディストリ側がどうするか解らないと。
場合によっては Fedora 移行に再挑戦するつもり。

clipolix 1.0.0

clipolix 1.0.0 公開しました。
何も難しくはなかったけどメニューのリロードで迷った。
一度 gtk.Menu.remove() で全削除して作り替えたら消えるし…

なんてことはない、show() させていなかっただけだった。
GTK+ のウィジェットはデフォルトが非表示なのよね、逆に面倒くさいよ。

他シグナルのハンドラを on_* にしたり細々。
ま、こまかいことは GPL なのでということで。