Mandriva KDE メニューのカスタマイズ

なんか Mandriva って KDE のデフォルトのメニューが変な感じ。

menu01

rpm が .desktop ファイルで指定しているはずの位置に表示されないとか。
Gedit が「その他」って何よ、カテゴリ分けが独特すぎて探すのに苦労するだけだ。

おかげで昨日のスクリーンショット用に起動したものも全部 bash から行ったぞと。
以前リンクしたレビューはこの配置を褒めていたが他を何もインストールしなかったの?

/usr/share/applications

を覗いてみる、やはりココに実態がある。
KDE 標準メニューに変更しなきゃ他 Linux との違和感があるだけだ。
というかコレって freedesktop.org の統一規格を思いっきり無視していないか?

コンピュータを設定→システム→メニュースタイル

で「オリジナルメニュー」を選択して再ログイン。
「表示されないアプリがあります」なんて怖いことが書いてあるけど無視。

menu02

でこうなる。

あれ VirtualBox が「Lost & Found」にあるぞ?
.desktop の中身を見ると Categories が Emulator とワケワカなものだけ。
管理者権限で手書き変更でもいいけど Ubuntu の alacarte みたいなのは無いのかな?

メニューにそれっぽいのが見当たらないんだが。
でもどうせ kmenu? という名前だろうと bash で kmenu と打って Tab キーを
当たっていた…UNIX の世界に慣れてきたものだ。

kmenuedit

VirtualBox OSE をマウスで掴んで「ユーティリティ」部にドラッグアンドドロップ。
これだけで見事メニューの位置を変更できました。

~/.local/share/applications

を覗くとやはりコピーが鎮座、freedesktop.org の規格どおりてか GNOME と同じか。

しかし Dolphin はドットファイル表示を記憶するのをヤメてくれないか…
Nautilus のように再起動毎に非表示にしてくれるほうが楽、それと動画のプレビュー。

設定はあるのだろうか? Nautilus を入れるというのは最終手段に残したい。
でなきゃ GNOME にすればいいじゃんで終わってしまうもの。

やはり KDE と GNOME は違う

KDE な Mandriva で GnomeVFS が使えるならコレはどうなるのだ?
と調子こいて

ぱぇぽぃ2 ? Blog Archive ? g_file_trash ってのがあった

をやってみた、ようするに GNOME でゴミ箱にファイルを捨てる方法。

trash

GtkWindow は普通に表示してくれたけど何のトラックバックも返さず華麗に無視してくれた。
やはり KDE なのにコレをエミュレートは無理か。

戻り値で成功か失敗を判断せよか、例外未サポートの C 言語が元のバインディングだし。
どんな小さなことでも例外を返してくれる .NET Framework との時代の差を少し感じた。
自力判断とフレームワーク判断とでは開発効率がケタ違いなんだよね。

つか Mandoriva ではドロップ状態だと認識するのが異様に遅すぎるんだが…
これは VirtualBox で動かしているせいなのかな?
これが KDE では普通なのだったら使えるシロモノじゃないんだが。
検証は当分続きそうだ。

Ubuntu→Mandriva 移行準備

初心者ユーザの成長に対応できるMandriva 2009 – SourceForge.JP Magazine

使ってみると良さげなのに日本では無名な Mandriva を上手くレビューしていると思う。
Ubuntu からのステップアップというより他 Linux はどういう感じなのか試したい人向き。
というか Gnome を選んでも見た目はほとんど同じなんだね。

しかしどういうわけか設定しているはずなのに日本語 106 キー配列にならない。
中括弧を打てばすぐ解る、しかも全角・半角キーで SCIM が立ち上がってくれない。
有用な情報をまとめている人を見つけた。

mandrivalinux_01

$ setxkbmap -model jp106

で 106 キー問題はアッサリ解決、.bashrc に書き込めば再ログインで摘要と。
だけどどういうわけか Opera では全角・半角キーがまったく効かない。
せっかく検索バーが使えるようになったと思えばコレだ。

ということで Ubuntu から Mandriva へ乗り換えできそうか地味に検証してみる。

実際は Gnome から KDE へなんだが。
とにかく今までの環境から最小限必要なものの導入方法だけは知っておかないと。
KDE 標準をなるべく尊重しつつ自分の都合が良いように。

デフォルトで sudo は入っていない。
でも普通に su が使えるのでこれは別にどっちでもいいからそのまま。

Apache と PHP はサイト作りに絶対必要だ。
「ソフトウェアの管理」から apache_mod_php を選択。
それだけで依存関係のおかげで Apache から PHP が使える環境一式が揃う。
つーか MySql まで勝手に入ったぞと。

/etc/httpd/conf/httpd.conf

を開き DocumentRoot で検索、毎度のように書き換えて restart
Ubuntu では apache2 と打ち込んでいた所を httpd にする、もう慣れたものだ。
RedHat 系だからつまり Fedora と同じ、とりあえず試しに phpinfo() を。

httpd_install

よしよし、導入は Ubuntu よりも圧倒的に簡単だった。

テキストエディタは KWrite で済ませようと思ったんだが…
SDI では今となっては辛い、ヘタすれば二十個くらいファイルを開く人なので。
高機能なエディタだけどやはりタブが欲しい、素直に Gedit をインストール。

sourceview

Gtksourceview がデフォルトでは入っていなかったのか。
依存関係を勝手に調べてくれるのって便利だなぁ。

gedit

おいおい、gedit のみチェックしたのに Ubuntu と同じプラグインが入ったよ。
当然スニペットなんかも普通に使える、これなら今までとまったく同じに使えるね。
ただ gconf-editor は別にインストールする必要がある、XML 直編集でもいいけど。

他は…実は絶対に変更できないアプリケーションはそれだけだ。
それと Gnome の「場所」メニューのように…は Windows と同じだと思えばいいか。

Nautilus 同様に Dolphin からも FTP 接続できた。
ネットワークを開き「ネットワークフォルダを追加」をダブルクリック。

dolphin_ftp

やはり FTP ソフトは不要だね。
ただ Dolphin からスクリプトを呼び出す事はできないか、別の方法を漁ろう。

なんか思ったより簡単に移行できそうな感じ。
しかし移行したい最大の理由 Opera で別の不具合が出るとは…
こんなところが Opera らしい、さて解決方法を探すか。

Nautilus と Dolphin と GnomeVFS

Nautilus の D&D で送られてくる text/uri-list で何を今頃気がついた。
これって CRLF 区切りなのか、Dolphin の場合は LF 区切りの URI が送られてくる。

ぱぇぽぃ2 ? Blog Archive ? Get MIME Type and Description

上記に書いたコードのように今まで URI の最後の一文字を削除していた。
たまたまそうやったら上手くいったからずっとそうしてきただけだったりする。
CR の存在を今まで知らずにアプリを作っていたのか、反省。
ということは

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

import gtk
import gnomevfs

class MimeWin2(gtk.Window):
    """
        Showing MIME Type and Description of Dropped file
    """
    def __init__(self):
        gtk.Window.__init__(self)
        dnd_list = [("text/uri-list", 0, 0)]
        self.drag_dest_set( gtk.DEST_DEFAULT_MOTION |
                            gtk.DEST_DEFAULT_HIGHLIGHT |
                            gtk.DEST_DEFAULT_DROP,
                            dnd_list, gtk.gdk.ACTION_MOVE )
        self.connect("drag_data_received", self.on_drop)
        self.label = gtk.Label("Drop")
        self.add(self.label)
        self.connect("delete-event", gtk.main_quit)
        self.resize(320, 150)
        self.show_all()

    def on_drop(self, widget, context, x, y, selection_data, info, time):
        if "\r\n" in selection_data.data:
            drops = selection_data.data.split("\r\n")
        else:
            drops = selection_data.data.split("\n")
        for drop in drops:
            if not drop == "":
                name = drop
                mime = gnomevfs.get_mime_type(name)
                desc = gnomevfs.mime_get_description(mime)
                self.label.set_text("MIME Type = %s\nDescription = %s" % (mime, desc))

if __name__ == "__main__":
    w = MimeWin2()
    gtk.main()

gnomevfs

こうすれば Nautilus でも Dolphin でも対応できるじゃないの。
てか改行コードが違うだけで text/uri-list が送られてくるのは同じなのか。
KDE の Mandriva でも GnomeVFS から普通に MIME Type を取得できるのは驚いた。
ま、そうじゃないと Firefox や Totem が動かせないか、納得。

ところでスクリプトの扱いが Nautilus と Dolphin では随分違うなぁ。
シェルスクリプトだと実効パーミッションでもダブルクリックで実効できない。
Python スクリプトだと逆に Nautilus のように質問は無くていきなり実効してしまう。
bash からだとまったく同じ、そりゃそうか。

私が実効スクリプトを分けて配布しているのは完全に自分の都合。
python スクリプトをダブルクリックだけで gedit で開けるからという単純な理由です。
Mandriva で使うことを考えて実効スクリプトを Python スクリプトにすればいいかなと。

ということでソコを書き換えたら Y901x は再生できるようになった。

baseboll

後は dbus と wnck をなんとかすれば Mandriva もサポートできる。
リポジトリにはあるんですけどね。

python_dbus

Mandriva 2009.1 インストール

何故唐突に Mandriva の KDE をインストールしようと思ったかというと
標準動画プレイヤーが Totem だったから、PyGtk や PyGst 標準装備が期待できる。
なら Y901x や SeeMe がそのまんま動くんじゃね?

それと KDE ならもうちょっと Opera が安定しないかな?と思い始めた。
だからといって Kubuntu では芸が無い、Open SuSE は以前懲りた。
そんな時 Mandriva を見つけた、VirtualBox があるしとりあえず試してしまえ!

One という Live CD でそのまま HDD インストールができるようだ。
Ubuntu と同様に CD サイズというのが魅力だね、Fedora や Open SuSE では DVD だし。
こういう形式が増え簡単で嬉しい、とにかく本家サイトに行ってみる。

Mandriva

しかし本家からだと日本語版は落とせないようで。

kanzメモ: Mandriva Linux 2008 Springインストール

ということで riken の ftp を探して以下の iso と md5 をダウンロード。
Download をクリックしてポチポチやれば ftp を見つける方法はすぐに解ると思う。
ユーザー登録は行わずともよい、つかお試しにユーザー登録させようとすな!

mandriva-linux-one-2009.1-KDE4-asia-noindia-cdrom-i586.iso
mandriva-linux-one-2009.1-KDE4-asia-noindia-cdrom-i586.iso.md5

md5sum コマンドで iso が正しいのを確認、VirtualBox へマウント。
Mandriva のインストール項目が VirtualBox には無い、その他を選ぶ。
Gentoo はあるんだが、こっちのほうがいいのかな?

メモリを 256 だと Live の起動に失敗、512 に変更して開始。
この辺の解説も Linux インストール経験者なら誰でも解ると思うので省略。
Live 状態じゃ何も解らない、とっととインストール。

インストール途中で「不要パッケージの削除」という項目が出る。
チェックボックスを有効にして「次へ」を押すと削除される。
逆だろ?インストールしたいものにチェックを入れるというのが当然だと思うが。
削除項目に fglrx なんかもあった、HDD インストールなら動画アクセラレータも効きそう。

三十分も掛からずインストール終了、Visual Studio はいったい…
最初フォントがガタガタだけどアンチエイリアスを有効にするだけで綺麗になる。

xdg

デフォルトディレクトリの名前は Ubuntu よりまとも。
freedesktop.org 準拠なのでここはあまり代わり映えしないのは当然か。

驚くことに VirtualBox のマウス統合が初めから有効になっている。
テキストのコピペも Host+F も当然のように使える、親切すぎて笑った。
でもマウスホイールがまったく有効にならない…VirtualBox ドライバのせい?

デフォルトの確認、Apache はやはり無いか。
gcc も無い、Python と Perl だけだ、mono はいらないから無くて嬉しい。
Gedit は当然無いけど Totem はしっかりあった、よしよし。
PyGtk はどうだ?

pygtk_qt

問題なく使えるね。
アップデートをとりあえず済ませてとにかく Opera のダウンロードだ。

opera_linux

Mandriva があるじゃん、つか Opera はこんなに沢山サポートしていたのか。
rpm をダウンロードしてダブルクリックで普通にインストールできる。

opera_kde

まあフォントについては解っていたんだが、後で変更しよう。
それより検索バーをドロップダウンしても文字入力ができるぞ!
やはり Qt 製アプリなんだから KDE のほうが相性がいいみたい。
それより何もしていないのに Frash てか YouTube が見られる、おいおい。

SeeMe はどうだ?

non_wnck

wnck が無い…まあそりゃ KDE だし。
でも wnck の import と Opera 起動チェックを消したら普通に使える。
seeme シェルスクリプトのダブルクリックで起動できない、しかたがないから端末で。

Y901x はどうだ?
こっちは dbus-python が無い、予想はしていたけど。
dbus 関連を削除すれば起動できるけど D&D 処理が Nautilus 依存でして…
結局起動できるだけであった。

sss

うーん、やっぱり GNOME にしようかな?もう少し弄くってみる。
ちなみに私の連休は今日で終わり、なのに何やってんだか。