Fedora」タグアーカイブ

Python typing

そういえば 10 月になった。
GNOME 43 はどうなったのかな?

GNOME Release Notes

シャットダウンが又してもアイコンのみに、コロコロ変わりすぎ。
ログアウト選択ダイアログの 2 アクションに戻るんだろうか?
macOS はずっと 1 アクションだし何年もメニューは変わっていないというのに。

gnome-terminal は新規ターミナルに置き換えみたい。
本サイトの Tips を書き換えしなきゃいけなくなりそうだ。

GTK4 化アプリは全部 Libadwaita デザインにするっぽいな。
GNOME に謎の魔改造をする某ディストロはどうすんのやら、しらんけど。

GNOME 43 for Developers

GtkInscription は解説を見てもよく解らないな。
Fedora 37 が出たら色々試してみよう。

役立たずだった GtkPicture に色々手を入れたみたい。
いや用途適にスマホの縦写真を回転してくれないと使い物にならんままですけど。

g_idle_add_once と g_timeout_add_once か、名前のとおりな関数。
FALSE を戻すだけでいいのにわざわざ別関数を作った意味は何だ?

Drag and Drop – GNOME Developer Documentation

もう筆者は知っているけど解説を作ったらしいので。
Python のコードを見るとアレッ、Python って型指定ができるの?

typing — 型ヒントのサポート ? Python 3.10.6 ドキュメント

-> は知っていたけどこういう指定も可能だったのか。
というか型指定は Python の型だけでなく Class ならなんでもいいのね。
Gio.File は PyGObject では Class 扱いです。

def on_drop(self, drop_target, value: Gdk.FileList, x, y, user_data=None):
    files: List[Gio.File] = value.get_files()

    # Loop through the files and print their names.
    for file in files:
        print(file.get_path())

たださ。
PyGObject は型指定しなくても動くし None 引数を省略できるんだが。

    drop_target = Gtk.DropTarget.new(Gdk.FileList, Gdk.DragAction.COPY)
    drop_target.connect('drop', self.on_file_drop)
    drop_target.connect('accept', self.on_drop_accept)
    self.add_controller(drop_target)

def on_drop_accept(self, target, drop):
    return True

def on_file_drop(self, target, value, x, y):
    self.set_uri(value.get_files()[0].get_uri())

筆者が書いたやつ。
型指定バリバリな解説は混乱を招くと思うんだけーが。

しかしこんなことで Python の知らなかった機能を知るとは。
Fedora 37 が出るまで Python Tips を書き足しでもするか。

mpv

Fedora 36 で mpv の調子が先々週あたりから悪い。
シークをすると OS を巻き込んでフリーズする。
Celluloid の調子が悪いから乗り換えたのに困った。

# Default: framedrop=vo
framedrop=decoder

を三日前に mpv.conf に追記してからは安定している。
短いけど以上です。

どうでもいいけど、筆者の MPV をスクリプトで拡張ページ。
グローバル変数を local 指定にしていないのがいくつかあるな。
それだけで書き換えするのもアレだし何か新作でも考えよう。

espeak-ng

Fedora 36 で espeak を使おうと思ったんだけど。
espeak-ng というものに置き換わっていた。

GitHub – espeak-ng/espeak-ng: eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents.

どうやら日本語等の多言語出力できるようになっているみたい。
だけど日本語で検索しても誰も手段を書いていない、おいおい。。。。。
海外を探して見つけた、-v オプションでイケるようだ。

espeak-ng -v it "Tiro finale"
# Voice Change
espeak-ng -v it+f1 "Tiro finale"

これが本場イタリアの「ティロ・フィナーレ」か!
ネタ古!
いや、そんなことより日本語だ。

espeak-ng

ひらがなやカタカナは問題無し。
スペースがあってもダブルクォートで括ればイケる、区切ってはくれない。
しかし句点は普通に区切ってくれるようです。
アルファベットは半角ならば一文字ずつ読み上げる。
数値は全角半角ともに無視される、長音も同じ。
漢字はやっぱり駄目だった。

拗音や促音もしっかり対応している、と思ったけど。

すごーーい
エヴァンゲリオン
ディーブイディー

なんかは駄目、日本語って難しいですね。
てか、漢字に対応していない時点で日本で運用は厳しいかと。

Comipoli 0.5.0

Comipoli GTK4 版を公開しました。
Linux アプリケーション – Paepoi

アイコンがどうしても設定できず丸一日使った。
application_id と desktop ファイルと SVG アイコンの名前。
コレらの名前は完全に同じにしないと適用されないってことらしい。
そうしないとアプリ名も application_id で表示されるという。

SVG を作るために超久々に Gimp を使った、何年ぶりだろう?
大きいほうは下記を使って手抜きした、いや小さいほうも手抜きだが。
PNG to SVG ? PNGファイルをネット上でSVGに変換する

ss

新しいスクリーンショットはアクティブオーバービューでも使えるぞ!
ほんの出来心で PrintScreen を押したらできてビックリ。

それと関係ないかもだが、Fedora 36 はデフォルト状態で rar を展開できるぞ!
unrar を入れていないのに cbr のサムネイルが表示されてビックリした。
事実ドキュメントビューアーで観覧できる、どうやっているんだ?
いや rar 圧縮はできないんですけど、でも探せば API はあるかも。

そんなことよりコレだ!

new_window

この「新しいウィンドウで開く」がどうしても実装できない。
GTK3 では desktop ファイルに書き込むんだけど同じようにしても出てこない。
事実 gnome-text-editor の desktop には Actions キーなんて無いし。
まだ調べるけど今回は「今後の課題」ということで。

このアプリケーションメニューで複数ウインドウからの選択ができるんだけど。
コレは GtkWindow.props.title を設定すれば自動でやってくれる。

appmenu

HeaderBar を使っていても title プロパティは変更しようね。

後は、Comipoli のソースを見てください。
Y901 シリーズは公開終了、今度は mpv の拡張スクリプトでもまとめるかな。

Fedora 36: ibus-anthy

PageUp/PageDown do not work to scroll candidates ? Issue #27 ? ibus/ibus-anthy ? GitHub

ibus-anthy の変換候補が PageUp/PageDown でページめくりできない件。
ずっと Wayland 対応が理由だと思っていたけどこれバグだったのか。

てかこの uneyama って人スゲェな、よくこんなの見つけたなって。
差分バッチを提供してくれているけど、当ててくれるかどうかだ。

anthy

今の anthy は Red Hat が管理しているはずなんだけどなぁ。
とはいえ anthy って Python 製なんだし。

/usr/share/ibus-anthy/engine/engine.py

を二行ほど書き換えするだけだ、自力バッジでやってもいいかも。

#!/usr/bin/env python3

'''
    コピペして sudo で実行しログインのやりなおし
    sudo python コピペしたソース.py
'''

import os

os.chdir('/usr/share/ibus-anthy/engine')

with open('engine.py') as f:
    txts = f.read().split('\n')
    s = txts[1521].strip()
    if s == 'self.do_page_up()':
        print(f'{s} を self.__page_up(0) に書き換え')
        with open('engine.py', 'w') as f:
            txts[1521] = '            self.__page_up(0)'
            txts[1528] = '            self.__page_down(0)'
            f.write('\n'.join(txts))

一旦ログアウトしてログイン。

よし PageDown が動くようになった。
Python の open ってネストできるんだ、勉強になって一石二鳥。

万が一失敗したら gnome-softwere から入れ直しで元通り。
今まで ibus-kkc に即換えしていたけど当分コレを使ってみる。
mozc は US 配列 RealForce だと不便なだけだし。

あと wmv ファイルがあるディレクトリを Nautilus で開くとが落ちる。
wmv のサムネイルを作成しようとしてクラッシュしているようです。

GStreamer: open source multimedia framework

GStreamer の対策版は出ているようだけど。
令和の現在ではそれほど問題にはならないしコレはのんびり待つか。

PHP を入れたら PHP 8.1.5 になっていた。
筆者の使用範囲では PHP7 と同様だけどコレも勉強しないとな。

今日はここまで。