Nautilus」タグアーカイブ

Connect of Linux and Mac

実は最近 MacBook Air 13inch を買った。
US キーボードだぜ、これでスタバでドヤ顔できるze!
行かないけど、おまけに中古だけど。

GNOME べったりな筆者に何が起こったのだ?
と思われても困る、ずっと前から欲しかったんだし。

サイトを持っていると Mac Safari での表示確認をしたくなるジャン。
プログラミングネタで Mac でのコンパイル結果も書きたいジャン。
US キーボードでないと打ち間違える筆者にはありがたい豊富な US キー中古。
しかも筆者は iPhone 持ちだ、欲しいに決まっている。

いや、MacBook を買おうか本気で迷って出るのを待っていたんだが。
実物に触りペコペコキーボードに萎えて勢いで中古を選んでしまったオチ。

中古だけどとっとと Yosemite に更新。
Safari で自サイトの表示確認、うん問題無かった。
WebKit だから CSS3 は問題ないと思っていたけど安心した。

さて、筆者がまず行うのは Linux との接続ですよね。
共有設定を開きコンピュータ名を決め [ファイル共有] を有効にする。

mac_setting

Fedora を立ち上げ Nautilus から [ネットワークを表示] をクリック。

nautilus_mba

あら、それしかやっていないのにアッサリ。
W クリックして Mac のユーザー名とパスワードを入力。

mba_connect

AFC だけでなく AFP プロトコルにも対応していたのか。
iPhone mount in GNOME | PaePoi

afp

Nautilus をもう一つ立ち上げ普通にドラッグアンドドロップ。
あたりまえのようにコピーできる、もちろん双方向で。
普通にファイル編集もできる、AFP はかなり柔軟なようで。
Mac からのアクセスは知らないけど別にイイよね、SELinux あるし。

Macintosh HD と表示されて驚いたけど /usr/bin とかは表示されない。
でも普通に Application ディレクトリにはアクセスできるという。

applications_directory

Mac のアプリ実体って実行パーミッションの付いたディレクトリなのね。
だからアプリを削除しただけでアンインストール終了なのか、ふむふむ。
同じ UNIX ベースとはいっても Linux とは随分違うんだな。

ということで、Linux は Mac にも普通にアクセスできる。

しかし、もっと早くコレを買えば良かった。
たまに Windows を使うみたいなイライラがまったく無い。

タッチパッドには驚愕した、マジでマウスはいらない。
二本指タップでコンテキストメニュー、三本指でウインドウの移動。
二本指スクロールは GNOME 同様にアクティブでなくとも使える、素晴らしい。

ウインドウは全部 command+Q で閉じる一貫性も GNOME 同様。
おかげで閉じるボタンが左にあっても困らない、まったく使わない。
Control を command に置き換えればほぼ GNOME アプリと同じに使える。
F11 がフルスクリーンならもっと良かったんだが。

ps, ls, grep 等 UNIX コマンドが一通り使えるのでありがたい。
bc も使える、計算もこれで困らないな。

Mac でさえ Linux 風に使おうとする筆者であった。

Nautilus 3.16 scripts folder

Nautilus 3.16 には色々困った。

拡張スクリプトの順番が滅茶苦茶になってしまった。
最初は更新日時順だったがリネーム等をしているとワケワカに。
名前順に変更しようと手段を探しているができないみたい。

しかも更に何を今更ファイル名のアンダーバーをニーモニックにするとは。
いや、ニーモニックは便利だけど矢印キーで充分だったし。

nautilus_script_sort

しかたがないのでこうしてみた。
私的にファイル名にアンダーバーが使えないって凄く不便。
ファイル名はマイナス記号で代用できるけど順番は名前順にしてほしい。

更に詳細表示に変更したらナンジャコリャ!
月とかはしっかり日本語になっているけど昨日は Yesterday。
年月日は何故か US フォーマットで表示、勘弁してよ

listview

それと何故だかわからないけど。
設定ダイアログをマウスで移動すると本体がくっついてくる。
他のアプリではそうならない、詳細表示の表示確認ができなくて困る。
しかも設定ダイアログを出すと二回に一度は Nautilus が落ちる。

あと Nautilus を 2 つ立ち上げてファイルを DnD するときだけど。
ドラッグ時にサイドバーが一々反応するようになった、それも敏感に。
3.14 まではこんな動作しなかったはずなんだが。
これじゃ上下でしか DnD できない、おまえは Explorer か!
Windows の悪い所なんかマネしないでくれよ。

Gedit も少し変。
終了時に保存していないダイアログを [はい] にしても終了はしない。
保存したタブ分が残るのは仕様変更なのだろうか?

致命的なバグは無いけど正直使い辛くなった。
でもこういうのは多分次バージョンまでこのままだと思う。

次回からプログラミングネタに戻る予定。
GtkBuilder なんてのがあるらしいし。

iPhone mount in GNOME

iPhone に XPERIA から乗り換えました。
筆者がまず行うことは当然 Linux との接続ですよね。
普通に付属 USB ケーブルで接続してみた。

connect1

connect2

Shotwell で普通に画像を取り込める。
Rhythmbox も多分使えると思う、ごめん音楽を最近まったく聴かないので。
Nautilus で開くことも普通に可能です。

iphone_afc

AFC (Apple File Connection) プロトコルで接続しているようです。
AFC – The iPhone Wiki

やはり別途ドライバ等は不要、接続アイコンまで専用が用意されている。
最近の Linux って超マニアックな周辺機器や業務機器でもなければデフォルト状態でもあたりまえのように認識し接続してしまうよね。
何故ユーザーがあまり増えないのか不思議でしかたがない。

でも [iPhone 上のドキュメント] 部には何もコピーできなかった。
[iPhone] は Media 部をマウントしてるようだけどココは何だろう?

picture

画像は DCIM/100APPLE 内にあった。
ホームボタン + 電源ボタンのスクリーンショットは PNG なんだね。
こちらは Nautilus から普通にコピーできた、私的にはコレさえできれば十分。
Bluetooth 必要ないや。

まあつまり、Linux ユーザーは Mac を用意せずとも iPhone は問題ないよと。

File manager for Xubuntu and Lubuntu 13.04

Nautilus は USB メモリ、デジカメ、スマートフォンを自動マウントできる。
携帯音楽プレイヤーの接続なら Rhythmbox、又は選択肢になるはず。

別途ドライバは一切不要、何も考えず USB ケーブルを差し込むだけで自動認識。
Windows のようにウザいだけのユーティリティアプリを導入する必要が無いのが嬉しい。

nautilus

余談だがファイルマネージャは GUI だけでなく実際のファイル管理も行っている。
つまり Nautilus 採用のディストリビューションであればマウントは保証できる。
筆者は Fedora で GNOME3 を愛用しているが当然 Ubuntu も同様である。

はて?
Xubuntu や Lubuntu では自動マウントはどうなるのかな?

五年以上 GNOME しか常用していない、というかメインは Fedora だし。
常用するデスクトップなら最低デジカメくらい自動マウントしてほしいし。

ということで。
せっかく Ubuntu の動作確認マシンを買ったのだから試してみることにする。
KDE 及びその他デスクトップ環境については他の人にまかせる。
メニューが超カオスになるので後から KDE 化するのだけは勘弁して。

sudo apt-get install lubuntu-desktop
sudo apt-get install xubuntu-desktop

起動して切り替えて USB メモリ、デジカメ、スマホを接続してみる。

Lubuntu @ PCManFM

pcmanfm

Xubuntu @ Thunar

thunar

あれ、コレらどのデスクトップでもマウント可能だったのか。
Ubuntu からコマンドで導入したので単体インストールの場合は保証できないけど。
PCManFM は何故か2つづつ表示されるけど。
Thunar は USB メモリ以外はアンマウントボタンが出ないけど。

とにかく素の Ubuntu からの変更であればスマホもデジカメも自動マウントできます。
常用可能なデスクトップ環境の選択肢が増えた、やったね。

ユーティリティアプリが必要ない人ならパソコンは Linux にしたほうがいいよ。
特にデジカメ画像で拡張子のみ小文字に変更したい場合に Linux は普通にできるし。
うっかり画像の拡張子を消してしまっても普通に画像と認識してくれるし。

********************

ついでに Alt+F1, Alt+F2 動作のチェック。

Lubuntu, Xubuntu 共 GNOME2 とまったく同じ。
具体的には Alt+F1 でメニュー、Alt+F2 で一行コマンドランチャ。

alt_f2

コマンドランチャは自動保管があり選択肢が残り一つになると全部コマンドが流し込まれる。
そのまま Enter で実行、そういえば GNOME2 はそうだったと思い出す。

ちなみに GNOME3 の Alt+F2 は端末と同様に Tab キーを叩くと保管に変わっています。
Alt+F1 は選択状態になった時点で Enter するだけで実行できる。

Unity だけ一切保管できない、何故クリックすることを強要する UI なのだと。
(Amazon 広告をクリックさせるため意図的なのだろうと憶測できるが)
筆者が Unity を避ける最大の理由でもあります。
コレに言及している人が少ないというより見たことが無いのが本当に不思議。

ただ私の環境だけかもしれないけど Xubuntu の Alt+F2 は異様に遅い。
もしかして保管用 GtkListStore を都度作成しているのだろうか?

しかし XFCE, LXDE 共 GNOME2 を参考にしているので操作性はほとんど変わらない。
Xubuntu は合成処理が使えるのが利点だが上記のように少し重い場面が多々ある。

というか Lubuntu が軽すぎる、軽くしたいのなら Lubuntu だけでいい。
両方入れるとメニューがカオスなことになるのでなるべく増えないようにしたいし。
それと XFCE は Ubuntu アプリとランチャが共通名な場合が多いので混乱しそう。

削除は下記でイケるようです。
Getting Back to a Pure Gnome on Ubuntu

********************

ついでに GNOME3 化もやってみる。

sudo apt-get install ubuntu-gnome-desktop ubuntu-gnome-default-settings

インストール途中で gdm の選択になる。
lightdm だと Ubuntu デフォルトのログイン画面、名前のとおりチョッピリ軽い。
gdm を選択だと Fedora と同じ GNOME デフォルトのログイン画面になるようだ。

gdm を選択して再起動、あぁ完全な GNOME3 になった。
SE Linux が無いので Fedora より軽い、ソレをどう見るかだが。

ただ Unity に色々と干渉してしまう、今の Unity は GTK3 ベースだから当然か。
なので完全に GNOME3 化してしまいたい場合以外は行わないほうが良さそう。
強制フォールバックの選択肢が無いことに笑える。

Xubuntu, Lubuntu は GTK2 ベースなので完全な別物として共存できる。
それぞれメリットとデメリットがあるので後はお好みで。

しかし Fedora なら GNOME3 一択で他を試そうとは全然思わないのだが。
筆者の場合は GTK3 と Python 使いだからというのが一番の理由だけど。
xubuntu の検索ワードでイッパイ人が来ている現実を見るとやっぱりみんな…

Empty the trash from PyGI

我が公開 Linux アプリでまだ PyGI 化していないものがあった。
trash だ、しょーもないアプリだと思って作ったが意外に本人は結構使う。

PyGI 化だけだと二分で終わるし何かないかな。
そうだ、ゴミ箱を空にするオプションを付けちゃえ!
実際にそんな機能を使うかどうかは別の話。

Nautilus のソースを参考にすれば多分手段は解るだろう。
ということでソレっぽい名前で grep しまくる。

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

"""
    Empty the trash.
"""

from gi.repository import Gio

# Get Trash URI
trash_uri = Gio.file_new_for_uri("trash:")
# Get Child
enum = trash_uri.enumerate_children(
        "{0},{1}".format(
            Gio.FILE_ATTRIBUTE_STANDARD_NAME,
            Gio.FILE_ATTRIBUTE_STANDARD_TYPE ),
        Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,
        None )
# Delete
for info in enum:
    f = trash_uri.get_child(info.get_name())
    f.delete(None)

こんな感じでやっていた。
当然元の C 言語はもっと複雑だったけど Python は楽だ。
普通に g_file_delete しているだけなんだな。

Nautilus から Ctrl+L でロケーションバーを表示させる。
んで trash: と打ち込んで Enter するとゴミ箱が開くんだね。
Explorer の sendto みたいなことができたのか、知らなかった。

んでファイルリスト作成と同様に enum を得る。
g_file_get_child でゴミ箱内の GFile を個別で得る。
既に GFile なのでそのまま g_file_delete できる。

パス名に変換して rm コマンドに渡すとか最初は考えていたけど不要だった。
Nautilus のゴミ箱アイコンは監視しているようでしっかり連動する。
何かメッセージを送らないといけないかと思ったけどコレも不要だった。

より手段は解った。
あとはコマンドラインオプションをどう実装するか。

15.4. optparse ? より強力なコマンドラインオプション解析器 ? Python 2.6ja2 documentation

こんな便利なモンが標準モジュールにあったのか!
使わないと損だ、ということで適用。

ただバージョン情報を -V, –version にしようと思ったけど手段が無い。
書くまでもなく Python と同じにしたかっただけですけど。
自前で –version を定義するとコンフリクトしていると怒られる。
素直にあきらめよう。

ということで trash-1.0.0 公開。
全アプリの PyGI 化完了、去年からの目標だったけど長かった。