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

Fedora 24 app

Fedora 24 は問題なく使えそうなのでアプリをボチボチ。

Google Chrome を入れたら依存関係で Python2 が入った。
使っていたのかよオマエ!

いや、構成部品に PLY とかがあるせいだろうけど。
もはや現代人必須アイテムなんだからもう少し部品点数を少く…

ならば MComix も入れちゃえ、これで PyGtk も入ってしまう。
あーあ元通り、cbz が見られるビューアが少ないからしかたがない。

Python2 恐るべし、気が付かない所でまだ使われている。
Linux で完全な非依存はまだ難しい。

***

H.264 デコーダーはよくワカランので結局 RPM Fusion のを入れた。
んで、こいつがよく解らないんだが。

codec

まさか Blu-ray が再生できるのか?
一応入れてみた、ディスクをドライブに入れると「オーディオディスク」に。
まあ無理だよな、再生できたところで画質は絶対にボロボロだろうし。

***

さて自作のアプリやプラグインはどうだ?
Gedit プラグインは動くけどキーボードアクセラレータが動作しない。
何故だろう、不具合が出るほうが嬉しいんですけど。

エラー内容を見ると action_name が Valid だとか。
アクション名からアンダーバーを消して全置換。
なんだこれだけか、私は何故ガッカリしているんだろう?

eog プラグインのほうは元々アンダーバーが無かったのでそのまんま動く。
つーことで Gedit Plugin だけ更新。

Gedit 及び Eye of Gnome プラグイン – L’Isola di Niente

アプリのほうの検証は休日にでも。

Fedora 24 Install (SSD)

起きたので ISO を焼いてインストール開始。
マシン構成は以下で作った Skylake の自作パソコン。
SKYLAKE on Fedora | PaePoi

今回はいきなり日本語になった、マジどうやって見分けたの?
インストール中に fedoraproject 関連の広告が、今迄あったかな?
ウブなんとかほどはウザくはない、まぁアッチは商売なわけで。

それ以外は今迄と何も変わらずインストール完了。
Fedora 23 Install (SSD) | PaePoi

さて起動、何が変わっているかな。
デフォルトフォントが変わって少し小さくなっている。
有線 LAN のアイコンがありがちなものに変わっている。

とっとと dconf-editor を入れて色々と確認。
デフォルトフォントは Cantarell のまま、あれ?
全部今迄どおりみたいだけど、気のせいなのかな。
つーか dconf-editor 変わり過ぎだろ、ShortcutWindow もあるし。

dconf_editor

フォントについては再起動したら何故か今迄と同じになった。
単なる初回起動の不具合だったみたい。

GtkShortcutWindow 追加での変更はどうだ。
Nautilus でコンテキストメニューを出すとショートカットキーが出る。
Gedit は完全に消したようだ、アプリによってバラバラみたい。

なんかデフォルトで入っている GUI アプリがえらく減ったような?
DevAssistant がとうとう消えた、イラネーし。
メモリは 8G になったし Boxes は使おうかな。

gnome-softwere でシェル拡張機能が入れられるようになった。
又三列になって見やすく、ちょっと嬉しい。
openh264 というデコーダーがあるけどライセンス問題をクリアしたのか。
H264 だけみたいですが、やはり RPM Fusion 追加は必須かも。

h264

んで、Sylpheed も KeePassX も検索で出てこないまんまと。
mono のゴミアプリをフィルターで隠す機能が付いたら嬉しいのに。

そんなことより、衝撃!

なんと Python2 が入っていない!
/usr/bin/dnf も Python3 に書き換えられている。
Fedora はとうとう Python2 への依存から脱却できたということか。

del_python2

逆に gcc は入っていた、GTK+ や Clutter のヘッダは無いけど。
perl, lua, gjs, jjs は今迄どおり使える。

以上、今のところ気が付いたこと。
遅番出勤いってきまーす。

Fedora 24 ISO Download

Fedora 24 正式公開したようです @ JPN 6.22.2016 1:00。
今回も初日には Get Fedora からは iso を落とせません。

日本はユーザー数の関係からマジで後回しにされているのか。
いや、今回は DistroWatch.com からのリンクも無いんですけど。

Torrent Server for the Fedora Project
BitTorrent でなんとかなった。

transmission

Transmission を初めて使ったけど。
自身のダウンロードが完了したら「ピーン」って音が鳴り通知領域に通知が来るのね。
マジで何事かと、初めて使ったアプリなのに未来を感じた。

torrent_ok

遅番なので今から寝る、インストールとレビューは起きたら、もしくは明日。

JXA NSString

久々に Mac で JavaScript(JXA) を。
JavaScript 文字列と NSString の相互変換が今まで解らなかった。

OS?X 10.10 Release Notes

公式の解説にて $() だけで NSString に変換できるのは理解。
でも逆がドコにも書いていないんですけど。
散々探してやっと以下を見つける。

Home ? dtinth/JXA-Cookbook Wiki ? GitHub
Shell and CLI Interactions ? dtinth/JXA-Cookbook Wiki ? GitHub

んと、ObjC.unwrap で NSArray を JavaScript 形式に変換できるのか。
ならば NSString もイケるかな?と適当にやったら出来ちゃった。
ということで JXA, NSString 関連の覚書。

ObjC.import("Cocoa");

console.log("日本語も大丈夫");
$.NSLog("%@ %@", $("NSString"), $("はこうする"));

var jsStr = "変数も $() で変換できる\n";
var nsStr = $(jsStr);
$.NSLog("%@", nsStr);

nsStr = $("NS* から JavaScript 形式へは ObjC.unwrap()");
jsStr = ObjC.unwrap(nsStr);
console.log(jsStr);

var saveStr = "保存します\n";
saveStr += "戻り値が表示されるので変数に入れています\n";
var data = $(saveStr).dataUsingEncoding($.NSUTF8StringEncoding);
var res = data.writeToFileAtomically("output.txt", true);

if (res) {
    var terminal = Application("Terminal");
    var fm = $.NSFileManager.defaultManager;
    var cwd = fm.currentDirectoryPath;
    var nil = terminal.doScript("cat " + ObjC.unwrap(cwd) + "/output.txt");
}

jxa_nsstring

よし日本語もこれでバッチリ(死語)
Cookbook は他にも色々試したいコードが沢山あって素晴らしい。

しかし Cookbook も var とセミコロンを全部書いているんだね。
JXA では不要と言われても無いとキモいのは皆同じようである。

PyGObject SendMessage and PostMessage

GTK+ で PostMessage をやりたい。
ようするに関数を抜けてからシグナルの処理をしたい。
g_signal_emit では関数がそこで止まってしまう。

g_idle_add を使って似たようなことはできるんだけど。
Gedit for Windows part3 | PaePoi
やはり正攻法でやりたいジャン。

gdk_event_put という関数を見つけた。
この引数に GdkEvent を渡せばイケるかも。

Gjs で書いていたけど GdkEvent がどうやっても作れない。
手段を知らないだけか実装されていないのかは不明。
ということで久々に PyGObject でやってみる。

#!/usr/bin/env python3

import gi
gi.require_version('Gtk', '3.0') 
from gi.repository import Gtk, Gdk

class EmitTest (Gtk.Window):
    """
        SendMessage, PostMessage
    """
    def __init__(self):
        Gtk.Window.__init__(self)
        b1 = Gtk.Button(label="g_signal_emit")
        b2 = Gtk.Button(label="gdk_event_put")
        b1.connect("clicked", self.on_emit_clicked)
        b2.connect("clicked", self.on_put_clicked)
        vbox = Gtk.Box.new(Gtk.Orientation.VERTICAL, 0)
        vbox.pack_start(b1, False, False, 0)
        vbox.pack_start(b2, False, False, 0)
        self.add(vbox)
        self.show_all()

    def on_emit_clicked(self, button):
        ''' # output
            delete-event
            [g_signal_emit] Clicked
        '''
        self.emit("delete-event", None)
        print("[g_signal_emit] Clicked")

    def on_put_clicked(self, button):
        ''' # output
            [gdk_event_put] Clicked
            delete-event
        '''
        event = Gdk.Event.new(Gdk.EventType.DELETE)
        event.any.window = self.props.window
        event.put()
        print("[gdk_event_put] Clicked")

    def do_delete_event(self, event):
        print("delete-event")
        Gtk.main_quit()
        return True

EmitTest()
Gtk.main()

gdk_event_put ならハンドラを抜けた後に delete-event が発行される。
これなら PostMessage と同じように使えそうだ。
ただ本当は Gjs でやりたいんですけど。

Fedora 24 に入る Gjs なら同様に使えるのかな?
と楽しみにしていたら又一週間リリースが延びたようだ。
ま、いつものことか。