Fedora 25 Install (SSD) p2

GNOME 3.22 の Nautilus って結構変更されているね。

コンテキストメニューの圧縮や展開が英語のまま、なのはどうでもよくて。
有無を言わせずその場に展開だったのが位置指定必須になっているし。
ダブルクリックだと file-roller でなくその場に展開、うーん…
以前のほうがどう考えても直感的だと思うんだが。

create_archive

圧縮時のダイアログが唖然とするほど不自由になっているし。
自動で親ディレクトリ名になって拡張子を選ぶだけだったのが便利だったのに。
しかも CBR/CBZ を拡張子変更無しで作成可能というオマケまであったのにさ。

それよりアーカイブ形式を三つからしか選べないってどうよ?
しかもその一つが 7z って何故こんな普及率の低い形式?
tar.gz にしてくれよ…

/org/gnome/nautilus/compression/default-compression-format
を見つけたけどやはり3つからしか選べない、困るのは筆者だけ?

以前の手段はスクリプトで簡単に作れるし休日にでも作ることにする。

一括ファイルリネーム機能もついた。
こういうのをコマンドでスパッと行えるのが UNIX 系の醍醐味なのに…

gnome-softwere の検索は相変わらず使えない。
Sylpheed も KeepassX も検索で出てこないまんまだ。
だって Mac の AppStore と違って dnf コマンドでは普通に入れられるのに。

何故いつもこの2つなんだ?と思う人がいるかも。
筆者は自作と開発用とド定番の gimp 等以外だとこの2つしか使わないからです。
使う予定すらないフリーソフトを沢山インストールするなんて初心者丸出し。

firewall-config が前回からデフォルトでは入らなくなったのは何故?
まあ単体で使う人なら不要といえばそうだけど、自分で導入。

リポジトリに United RPMS を懲りずに登録。
まあ入れるのは GStreamer codec と unrar だけだが。

codec

前回コンフリクトしたのは rpm-fusion と同居したせいかも。
今回はコッチだけにして様子見。

google-chrome も必須、自分のサイトを持っている人なら当然。
redhat-lsb や Python2 が依存関係で入るけどしかたがない。

自作関連は次回。

Fedora 25 Install (SSD)

さて Fedora 25 のクリーンインストール。
あれ、こんなオプションってあったかな?

keyboard_layout_option

筆者は Fedora, Mac 共に US 配列キーボード愛用。
Mac と同じ位置で切り替えできるように ibus-kkc の直接入力切り替えを Alt+Enter に変更していた。

試しにココで Alt+Enter 設定してみる。
後で解るけどヤメといたほうがいい。

インストール自体は以前と何も変わらない。
ただしデフォルトは X ではなく Wayland になるようだ。
もし不安定な環境ならログイン時に X に切り替えすればいい。

VL PGothic フォントと dconf-editor は真っ先に入れておこう。
gnome-softwere で普通に見付かる。

さて上記の設定はこうなるようだ。

kbd_opt

つまりインストール時には特に何もしなくても Super+Space は使える。
代替え登録ってことみたいだけどチト違っていた。
Super+Space では Mac の command+space 同様に前使っていた入力ソースになる。
代替えでは順番に切り替わってしまう、3つ以上登録しているとパニくる。

xkb-option

/org/gnome/desktop/input-sources/xkb-option
がソレっぽいのでコイツをデフォルトに戻せば無効になる。
日本語キーボードは万が一のために登録しているけど実は使ったこと無い。

で、今までどおり ibus-kkc の直接切り替え設定を変更できないんだが何故?
Alt+Space を登録すると勝手に Meta が入ってしまう、Wayland のせいだろうか?
キーボード設定で Alt+Space に変更でも同じようになる。

meta

Super+Space での切り替えは以前はレスポンスが悪過ぎで使っていなかった。
現行は即時に切り替わるね、当面は Super+Space で Mac のように使ってみる。
多分すぐ慣れる。

検索すると ibus-kkc から変更している人多いけど本当に Fedora を使っているの?
こんなに安定かつ軽く余計なことしない入力メソッドなんてそうそう無いよ。

スクリーンショットで解るけど dconf-editor からついにツリービューが消えた。
これで完全消滅、他にキーボード設定なんかもスマートフォン用っぽくなった。

keyboard_setting

でもコレをいかせる OS が自由なタッチデバイスが少なすぎという現状。
そもそも Linux をタッチパネル向けにする意味がとか疑問も多いけど。
少なくとも今後の若い人達はスマートフォンっぽいほうが馴染みやすい。

なのに、まさかの gnome-terminal にメニューバーが残った!
物凄い違和感なんですけど、何か理由があるのだろうか?

他色々触ってみたけど以前との違いを感じない。
Wayland にすると WordPress で画像アップロードできなかったのも可能に。
このまま Wayland で問題なさそう、入力メソッド切り替えだけ注意。

fedora25

Fedora 25 がリリースされました。
今回から gnome-softwere でアップグレードができる。
はずなんだけど…

Upgrading Fedora 24 to Fedora 25 – Fedora Magazine

no_unitedrpms

unitedrpms リポジトリを追加しているのが悪いのかな?
Linux は Mac, Windows のようにはいかないもんだなぁ。
無償 OS に文句を言ってもしゃーない、なんとかしよう。
リポジトリの削除、unitrpms から入った codec を一旦全部削除して。

$ rpm -qa | grep unitedrpms
unitedrpms-24-2.noarch
$ sudo rpm -e unitedrpms-24-2.noarch

rpmfusion のほうも一応同じように削除。
gnome-softwere を再起動して更新ボタンを押して少し待つ。
リンク先の画面が出たので早速ダウンロードボタンを押す。

conflict

なんかコンフリクトしているらしい。
てかリポジトリは削除したはずなんだが何故?

もう面倒臭くなった、今回もクリーンインストールじゃ!
更新ごときに手間を掛けるより再構築のほうが簡単だ!

今回は普通に Fedora から iso が落とせた。

昼間はやる気が出ないのでインストールは夜か明日。
ではポケモンを探してきます。

PyGObject Evince

遅ればせながら gir で evince を使う方法がやっと解った。
以下のファイル形式がこの手段で開けるようです。
ようするに Evince で開けるファイルということですけど。

PDF, CBR/CBZ, PostScript, TIFF, XPS, Djvu

#!/usr/bin/env python3

import gi
gi.require_version("EvinceDocument", "3.0")
gi.require_version("EvinceView", "3.0")
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, EvinceDocument, EvinceView

URI = "file:///home/sasakima-nao/doc/pdfs/gero-map.pdf"
#URI = "file:///home/sasakima-nao/doc/pdfs/postscript.ps"
#URI = "file:///home/sasakima-nao/doc/pdfs/kokomin.tiff"
#URI = "file:///home/sasakima-nao/doc/pdfs/erohon.cbz"

EvinceDocument.init()

doc = EvinceDocument.Document.factory_get_document(URI)
model = EvinceView.DocumentModel.new_with_document(doc)
view = EvinceView.View()
view.set_model(model)

scroll = Gtk.ScrolledWindow()
scroll.add(view)

win = Gtk.Window()
win.add(scroll)
win.connect("delete-event", Gtk.main_quit)
win.resize(600, 600)
win.show_all()

Gtk.main()

URI は各自の手持ちに書き換えてね。

init は必須、呼ばないとエラーになる。
EvinceDocument はファイル形式につては自動判別してくれるようです。
EvinceView は GtkScrolledWindow 以外には乗せることができないので注意。
マルチページ分はスクロールすると表示される。

Djvu なんて知らなかったし今後も普及するとは思えないけど。
CBR はもちろん unrar 必須です、HONDA のバイクじゃ(以下略

TIFF はマルチページを作る手段を知らないのでそれは試していない。
アーカイブして拡張子を変えるだけの CBR/CBZ のほうが使い勝手がいいしね。

ま、実際のところ PDF 以外での利用はほぼ無いと思う。

exit_status

さて前回やった cbr ファイルの展開を我がアプリに実装するのだが。
アレは完全なる unrar コマンド依存である。
つまり、使う側のマシンに unrar が入っているかどうかを調べなければいけない。

ライブラリやコマンドが入っていないマシンなら華麗に受け流すようにするべき。
かなり重要なコトなのにそういう Tips を書く人が少ないんだよなぁ。
まあソレは置いておいて。

16.16. ctypes ? Pythonのための外部関数ライブラリ ? Python 3.5.2 ドキュメント

ctypes.util.find_library(name)

でライブラリの有無を調べられるってことなんだけどコレって意味あるのか?
そもそも Python では使う機会が少ないしどうでもいいか。

いや、今回のはライブラリじゃなくてコマンドの有無。

Bashでコマンドの存在チェックはwhichよりhashの方が良いかも→いやtypeが最強 – Qiita

そうか type コマンドを使うのか。
ってソレよく考えたら自分で書いていた。
シェルスクリプトの覚書色々/コマンドの存在を確認してから実行

標準出力ではなく終了ステータスがゼロ(正常終了)かどうかを調べる。

g_spawn_command_line_sync なら第四引数がゼロになるかを調べればいい。
PyGObject だと戻り値タプルの四番目になるので

#!/usr/bin/env python3

from gi.repository import GLib

is_unrar = GLib.spawn_command_line_sync("type unrar")[3] == 0

if is_unrar:
    print("unrar is in your machine")
else:
    print("unrar not found...")

# test
print(GLib.spawn_command_line_sync("type unko")[3] == 0)

標準出力の値は勝手に捨ててくれる。

これで振り分けは大丈夫そうだ。
みなさん、ko というアーカイブは絶対に作ってはいけません。

ところで小牧駅周辺がカイロスの巣っぽくなっているのは何故だ?
用事ついでに歩いたらやたらイッパイ出たんだけーが。