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

GNOME Boxes

そろそろ次期 Fedora を入れる準備をしておかねば。
Ubuntu はもう出ているね、GStreamer が 1.0 になっているか試したい。
その前に GNOME 3.6 のリリースノートでも見るか。

GNOME 3.6 リリースノート

Nautilus までメニューバーが無くなってしまうようで。
うーん微妙だ、拡張スクリプトが使い辛くなると困るんだが。

GStreamer は 0.10 と 1.0 の共存になるという解釈でいいのかな。
でなきゃ困るが。

Boxes

これが気になる。
KVM の単なるフロントエンドみたいだが GNOME に統合されたなら突然無くなる恐れは少ない。
とはいえ Seed さえ止まっているんだよな…

GNOME Boxes – YouTube

Aero もイケるようだね、エミュレートだから劇重だろうけど…
KVM も初期の笑っちゃうほど不安定な頃のしか試していないし現状は使えるレベルになったかどうか試してみたいところだ。
Fedora 17 も「追加と削除」から入れられるし試してみるべ。

仮想環境はコレのみチェックで揃うようだ。
起動、恐るべきシンプルな外観で逆に戸惑うよ。
終了ボタンすら無い、アプリケーションメニューから
と思ったけどマウスで上部を掴んで引いたらウインドウ化できた。

とにかく早速 Ubuntu 12.04 の ISO を試しに入れてみる。

インストールは SELinux にブロックされる。
sudo setenforce 0
で Permissive に切り替えして
終わったら sudo setenforce 1 で SELinux を Enforcing に戻す。
(getenforce コマンドで確認できます)

なんかディスク容量や割り当てメモリは勝手に決められてしまったのだが。

ご存知だと思うけど Ubuntu はインストール後に CD が自動で出てくる。
ISO からのインストールでは強制終了して ISO を取り除く必要がある。

~/.libvirt/qemu/hoge.xml

を開いて <disk type=’file’ device=’cdrom’> の項目を消せばイケた。
XML なので <!– –> のコメントアウトでもいいみたい。

この hoge 部の名前は virsh list –all コマンドで調べる。
第5回 KVM仮想マシンの操作:KVMで始めるプライベート・クラウドへの第一歩|gihyo.jp … 技術評論社

$ virsh list         起動中の仮想マシンを一覧表示
$ virsh list --all      停止中の仮想マシンを含めて一覧表示
$ virsh start hoge   仮想マシンを起動
$ virsh shutdown hoge  仮想マシンをシャットダウン
$ virsh destroy hoge  仮想マシンを強制停止

sudo は必要無いみたい。

Ubuntu Precise Pangolin LTS という名前が勝手に私には付いていた。
長すぎ、変更する方法はあるのかな?

ここまでやれば後は Boxes 上から W クリックで起動できる。
Unity 2D で起動しないとフリーズするようだ。

なんじゃコリャ!
2560×1600 って何でデフォルトがこんな解像度になるんじゃい。
しかも一番多いだろう 1920×1080 指定が無い、なんてことかしら。

設定画面のディスプレイから「ゲストをリサイズ」をオフにすれば指定解像度以上にはなるけど以下にはならないようだ。
これを利用してウインドウ状態で使うしかなさそうだな。

あぁやっと使える状態になった。
ということで少し試す。

マウス統合がデフォで切り替えもスムース。
以前は暴走したりマウスカーソル位置が変だったが何ともない。
でもウインドウ一つ動かすのもガックガク。
アプリの起動が死ぬほど遅い。
文字入力の反映でさえもワンテンポ遅れる。
マウスホイールが使えないみたいなんだけど。

GUI を使うにはまだ厳しいのかな…
つーか SELinux が Permissive でないと起動できないヤン!
うー、あんまりオフにしたくないなぁ…

VirtualBox や VMWare は本当によくできているもんだ。
とりあえずもう少し試してみる。
問題なさそうなら 12.10 もコイツに入れてみたい。

続き

Shell Extension

GNOME 3 は Shell Extension というものが使える。
作り方は下記の人が日本語でまとめてくれている。
GNOME Shell Extension を調べてみた – ふとしの日記

サンプルを見たい人や「自分で作るって、どこかに無い?」な人は下記。
GNOME Shell Extensions

って、全部いらネェ…

なんか UserMenu に gnome-terminal のランチャを仕込むのとかあるし。

cmd

#!/bin/sh
gnome-terminal &

なんてスクリプトを書いて $HOME/bin に突っ込んで Alt+F2 のほうが便利だろ。
余計なメニューやアイコンも増えないし三文字でイケる。

私は余計なものが無い GNOME 3 が気に入ったので Fedora を使っているのだし…
とはいえそのうち何か斬新なモノが現れるかもしれないから覚書っと。

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

インストールしたい Extention をクリックして左上のスイッチを On にする。
するとダイアログが出てインストールするかどうかを質問される。

[インストール] を選択すると即座にインストールされ有効になる。

具体的には
$HOME/.local/share/gnome-shell/extensions/
以下に extension.js 等が展開され、更に gsettings の
org.gnome.shell enabled-extensions
に登録された状態になる。

削除は同じページの [Installed extensions] をクリック。
バッテンマークのアイコンをクリックするとファイルが削除される。
gsettings は再ログインで消えるけど残った場合は手動で消す。

gnome-shell-extension-prefs コマンドで設定もできるみたい。
簡単ですね。

面白いのはコレを絶賛するブログ主は GNOME 2 の再現ばかりやっている。
タスクバー代わりは Alt+F1 もしくは Windows キーを押せばいいし、ダイナミックワークスペースは Ctrl+Alt+上下矢印キーで切り替えできて超便利だし、メニューに至っては Alt+F2 と Tab キーを使わないの?だし。
古くさい UI に戻すためにこんな拡張方法を用意したわけじゃないだろうに。
更に gnome-tweak なんとかを必ず使っているとかetc…

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

は、どうでもよくて。

つまり Web から $HOME のファイルにアクセスできている、驚いた。
それどころか gsettings まで弄くれてしまうってことじゃないの。

これってセキュリティ的にはどうなんだろう。
「ユーザーが明示的にボタンを押す」等の制限はあるのか?
root は保護されているだろうけど悪用は可能だよね。

よし悪用のため、ではなく…
seemex の Web 版を HTML5 で作ろうとして断念したが「方法はある」ということかも。
いや、見ての通り現在は Chrome メインなんだけど Opera はメーラーとして活躍中w
とにかく Ctrl+u でソースを調べる、Opera と同じキーなので乗り換えしやすい。

require.js を使っている、調べれば解るけどややこしい…
data-main 属性なんて無いけど main.js は見つかったので表示して…
なんとか extensions.js なるアヤシイものを見つける。

https://extensions.gnome.org/static/js/extensions.js

正直、今の私ではほとんど理解できないというオチが。
とにかく dbus を使えばこんなことが可能になるみたい。
勘違いかもしれないけど。

Web から local の設定変更とかが可能になれば色々と思いつくよね。
ということで Shell Extension とは全然関係ないお話でした。

but_active 3.0.1

意表を突いて Gedit Plugin を更新しました。

Gedit が 3.4 になって but_active が使えなくなったのは知っていた。
我ながら不便だけど多分バグでそのうち Gedit 側が対応すると思い放置。
しかしいつまでたっても…

もう仕様変更だとしか思えない、3.4 のソースをダウンロード。
gedit

3.4 には NotebookPopup 定義が無いジャン!
ソース側に移動したのかと思い grep コマンド。
関数名は見つかるけどメニュー用の定義はやっぱり無い。

gedit-notebook-popup-menu.c を見ると都度作成になっている。
マジで仕様変更だった、あーあ作り直ししなきゃ。
てゆーかもっと早く気がつけよ俺!

ドキュメントメニューに入れるように変更、他はそのまんま。
で普通に動くようになった、入らないなら例外を吐いてくれよ…

けどメニューがこの位置では使いにくいお。
ええい、キーボードショートカットを使えにしてしまえ。
Shift+Ctrl+Alt+W しか選べないな、まあいいや。
ダウンロードとスクリーンショットは以下に。

Gedit 及び Eye of Gnome プラグイン

今度から動かなくなったら早めに調べよう。
そういえば Eye of GNOME 3 のプラグインは使えるようになったかな?
使えるようならそろそろ GNOME3 対応版を作りたいな、今度調べる。

WebM binary

意表を突いて Y901x を更新しました。
PyGtk のままだよ、当然 GTK2 だよ、もう古いよ過去の異物だよ。
とはいえ Google Chrome なんかも GTK2 だったりするのだが。

とりあえず再生速度変更の方法を何故か見つけたのでやってみようと。
Basic tutorial 13: Playback speed – GStreamer SDK documentation – GStreamer SDK documentation

一番目引数に 1.0 をデフォルト値に上下した float 値を入れた seek_event を作る、それを playbin2 に投げただけでアッサリ。
ただ再生停止したりファイルを切り替えするとリセットされて困った。
GST_MESSAGE_STATE_CHANGED で都度投げる方法でなんとかした。
こんなんで大丈夫かな…

ボタンを付けたかったけどスペースが無いのよね。
VLC とかみたく小さくしたくてもできないウインドウでは嫌だもの。

それと気になっていたけど放置していたところをまとめて。
Linux アプリ作りは本当にイイなぁ。
どうせ自分しか使っていないだろうから好き勝手にできるし。

VLC と違って音程は過去の遺物である Y901 同様変化する。
つか私は変化したほうが自然だと思うんだけど。
ま、これで YouTube から拾ったけど早すぎてどうやっているのかが全然解らなかったバイクのスゴテク動画をスローでじっくり検証できるようになったぞと。
倍速側なんてオマケだ、どんな場合の時に使うかワカラン。

しかーし

YouTube は最近 Flash, MPEG-4 AVC から HTML5, WebM になったのね。
これはキャッシュからコピーするスクリプトを作り替えしなければ。
というわけで今まで使っていた Nautilus スクリプトを改造した。

のだが…

YouTube の動画はいつのまにかキャッシュに残らなくなっている。
検索してゲゲッ、最近拾ってなかったので気がつかなかった…
FLASH のままな Opera キャッシュでも拾えない、お手上げだ!
あきらめて拡張を使おう、個人製作のバイク動画くらい拾わせてくれよ。

使えないけどせっかくやったので Python 覚書。

ちなみに Fedora 17 でファイルの拡張子が無い場合は
/usr/share/magic (/usr/share/misc/magic へのリンク)
の指定で見分けている、一応拡張子優先であるが。

とにかく /usr/share/magic を Gedit で開いてみる。
「エンコードが不明!」とか出るけど無視して「強制的に編集する」ボタンをば。
Ctrl+F で webm と打ち込み検索する、強制編集状態でも探せるよ。

WebM って Matroska のサブセットなんだ、今頃知った。
てか日本ではネクラでキモチワルイ奴しか今まで縁がなかったでしょコレ。
ftypwebm なんて指定で MP4 じゃダメだったのかな?

Linux の場合リポジトリからまとめてコーダーとデコーダー(あえてコーデックとは書かない)を入れられるからあんまり気にしないのよね。
MOV, RM, WebM なんかも普通に Nautilus でサムネイルできるし。
私の知る限り GStreamer で再生できないのは WMV3 だけだ。

それはどうでもよくて。

0x4282 が含まれている否かで通常 Matroska と見分けているみたい。
ま、実質先頭バイナリ4つだけ見れば動画であることは解るわな。

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

TEST_FILE = "test.webm"
WEBM = "\x1a\x45\xdf\xa3"

for a in WEBM:
    print ord(a),

print "\n-----"

o = open(TEST_FILE, "rb")
bin_array = o.read(4)
for a in bin_array:
    print ord(a),
o.close()

print "\n-----"

print bin_array == WEBM

この方法で拡張子が無くても先頭バイナリで判別が可能になる。
使い道は無かったけど、きっといつかは勉強して良かったになるはず!

実は Gio を使ったほうが簡単なんだけどね。
拡張子を取っ払ってこんなコードを試せば解るよ。

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

from gi.repository import Gio

# Create GLocalFile
# Remove File Extenshon
f = Gio.file_new_for_path("test")
# Create GFileInfo
info = f.query_info(
    Gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
    Gio.FileQueryInfoFlags.NONE,
    None )

print info.get_content_type() == "video/webm"

実は Python コードを書くのも久々だったり。
とにかく半年以上間が開いたけどアプリの更新。
年金を貰える歳まで絶対に生き残ってやる!

org.gnome.shell.overrides

GNOME Shell について今頃知った。
gsettings コマンドを使ってもいいけど dconf-editor のほうが簡単。

org.gnome.shell.overrides

を開いて

attach-modal-dialogs
を false にすると「情報」等のモーダルダイアログがタイトルバーからニョキッと出るのが普通のダイアログになる。

button-layout
:minimize,maximize,close と書けば Windows と同じボタン配列に。
コロン ‘:’ より左に書けば Ubuntu のような左寄せにもできる。

dinamic-workspaces
を false にすると動的ではない昔ながらな4つのワークスペースに。

edge-tiling
を false にするとタイトルバーを掴んで画面上部に持っていくと最大化するあのムカつく動作を行わず GNOME2 同様なスナップになる。

workspaces-only-on-primary
は多分マルチモニタでなければ関係ない。

デフォルトに戻したい場合は右下ボタンで一発。
いやいや、やはりタイトルバーを掴んでの移動はスナップのほうが使いやすい。