Fedora」タグアーカイブ

Geany テキストエディタ

Gedit が死亡してテキストエディタ難民になっている皆さん。
筆者は Kate を騙し騙し使っていました、でもやっと本命を見つけました。
Geany というアプリです、IDE と解説されていますが普通の編集もできます。

サイドバーやツールバーを消せば普通に軽量なテキストエディタです。
ただ開発者はハンバーガーメニューが嫌いなのか古くさいメニューバーです。

geany

GTK3 アプリですが各言語の最新仕様な色分けは独自に対応しています。
スクリプト言語であれば F5 キーで独自窓にて実行結果を表示できます。
その窓は Enter キーで閉じる、Gedit のボトムパネルより便利じゃん。
JavaScript は未定義なので Gjs あたりをビルドコマンドに設定する。

gjs "%f"

Ctrl+D で行の複製が最初から可能、Gedit では自作したのに。
他の文書を閉じる機能も最初からある、Gedit では自作したのに。

コードスニペットはデフォルトで有効、設定は snippets.conf にて。
各言語で for とかタイプした後に Tab キーを叩いてみてください。
Kate では Tab キーじゃないのが地味に苦痛だったので嬉しい。

snippets.conf に追記すれば独自スニペットも可能。
Gedit ほど柔軟ではなくデフォルトも指定できないし $0 も無いのが残念。
スニペットにカーソルを移動にキー割り当てがされていないので自分で設定。
筆者は Ctrl+Tab にしてみた。

geany

snippets.conf にこんな感じで追記していきます。
コメントアウトはデフォルトなのでデフォルトを変更したい場合に外して書き換え。
[Keybindings] でショートカット指定も可能、Kate はコレもできないんだよな。
変数は使えないみたい、%selection% が欲しいんですけど。

そして筆者には絶対に必要な機能。
Gedit プラグインまで自作してしまった html タグのエスケープ。
Python は使えないけど選択範囲を stdout に送る機能はある、ならば。

編集::書式::選択範囲を送る::カスタムコマンドを設定。

python -c 'import sys, html; sys.stdout.write(html.escape(sys.stdin.read(), quote=False))'

コレでイケるじゃないの。
ちなみに登録順に Ctrl+1 から自動で割り当てされる。

# アンエスケープ
python -c 'import sys, html; sys.stdout.write(html.unescape(sys.stdin.read()))'
# 赤文字にする
python -c "import sys; sys.stdout.write(f'<span style=\"color: red\">{sys.stdin.read()}</span>')"

どんどん登録しよう、プログラミングって楽しいよね。

世の中にはプログラミングのためのエディタを探しているはずなのに。
何故かプラグインを探してばかりで自力で拡張をちっとも書かない人が沢山いる。
そういう人って実はプログラミングなんて全然していないんだろうね。

シンボルを補完をオフ、自動補完はイライラするだけなんだよ。
行の入れ替えは Alt+Up(Down) に変更、何故 SourceView から変えた?
それだけで十分使えるな、プログラミングを本当にしている人なら気に入るはず。

ただ今は ibus の調子が悪いな、これは Fedora 側の問題なのかな?
多分そのうち修正されるだろう、ということで。

Fedora 41 Upgrade

Fedora に 41 へのアップグレード通知が来たので更新。

nautilus

おいおい Nautilus のサイドバーが更に使い辛くなってもーた。
別ページだった Network や使っていない Recent や Star が一等地に。
DnD で下に移動させようとしてもできないし、勘弁してくださいよ。

Whats new in Fedora Workstation 41 – Fedora Magazine

なんか色分けで解りやすいダイアログが増えたようで。
でもどうせ GTK4 ではなく Adw のほうだろう。

Adw.AlertDialog.set_response_appearance

普通に見つかった、Adw やるやん。
Adw.AboutWindow が廃止で Adw.AboutDialog を使えになっとる。
Adw.MessageDialog も廃止かよ、Tips ページを書き換えしなきゃ。

そうそう、Python は出たばかりの 3.13 が入っているよ。
もしかしてこれに合わせて 41 をリリースしたのか、偶然か。

あとは、筆者の使用範囲では 40 と違いが解らないなぁ。
関係ないけど mpv の osd タイトル設定が反映されなくなっている。

# タイトルはファイル名 -- タイトル名
#title=${filename} -- ${media-title}
windowcontrols_title=${filename} -- ${media-title}

osc.conf をこう書き換えたら摘要されるようになった。
mpv は以前のまま、また ffmpeg 側の仕様変更に巻き添えくらったか。

あとはまた何か見つけたら。

Gedit to Kate

以前書いたように Gedit が 2024 年以降もう期待できない。
ただでさえ GTK3 のままなのに、多分また開発者がいないのだろう。
言語の新しいキーワードに対応できないし追加機能もない。

他への乗り換えをしようと色々試してはいるんですが。
Sublime Text や Pulsar は日本語が入力できない。
GTK3 製やイライラする vscode は論外だし他は機能がチト。
Qt があまり好みではないけど無難な Kate にしようかと。

kate

Kate ってメニューバーを消すと自動でハンバーガーメニューになるんだ。
これなら GNOME で使っても見た目の違和感が少ないかもね。
PHP8 のヒアドキュメントインデントにもしっかり対応しているし。
ツールバーの「開く」を「Open」に書き換えできるのは笑った。

kate

拡張子が無いファイルも見分けしてくれた。
vi や Eaacs のモードラインは認識しないけどシバンを読んでいるようだ。
Kate 独自のモードラインには色分けつきでデフォルト対応。

Kate Modelines – Kate

ツールメニューに「Run Current Document」なんてのがある。
F4 で内蔵ターミナルを出した状態で実行するとシバンでスクリプトを実行する。
残念ながら F5 に指定できないみたいなので Ctrl+F5 に割付してみた。
フォーカスはエディタ側にある状態で実行してくださいね。

kate

Ctrl+Shift+Up(Down) で行の入れ替えも普通にできる。
アクティブなタブ以外を全部閉じる機能も最初からある。
Gedit では自分でプラグインを作ったのに、いや今は珍しくもない機能だが。
後は html エンティティー変換さえあれば自作 Gedit プラグインは再現できる。
スニペットから JavaScript を使えばあっさり作れそうだけど。

Kate Snippets

そのスニペットなんだけど、 Gedit 同様に選択文字列取得もできるけど。
Ctrl+Space から選択するしか流し込みする手段が無いんかいなぁ。
Gedit みたくキーワードから Tab キーの一発で流し込みをしたいんだが。
模索しているけど今のところネックはこれだけ。

てか Kate ってドエリャア多機能だ、知らなかったよ。
何故人気がイマイチなのか、まあ KDE の人気がね。

Fedora 40 インストール

世間は三連休です、筆者は今日だけですけど。
ちなみに小牧山ではキビタキが囀っていたよ、えぇ声は聞こえました。
ということで送ればせながら Fedora 40 へアップグレードです。

今回はクリーンインストールしたいので休日まで遅らせました。
インストール方法はいつもどおりなので省略。

Fedora Elecom | Paepoi Blog

上記で買った無線 LAN は調子が悪くて有線に戻しています。
ルーターの再起動しまくり現象は止まったし、基地局側が理由だったみたい。
40 に最初からファームがあったら又使おうかと考えたけど未対応のままだった。

ps1

端末は gnome-terminal のままじゃん、プロンプトに色が付いているけど。
PS1 変数がなんじゃこりゃになっているけどまあこのままでいいや。
あ、hostnamectl にて既にホスト名を変更した後です。

画像ビューアは本当に Loupe に変わっているのね。
今気がついたけど矢印キーでの画像切り替えは Nautilus と順番が違うヤン。
拡大でやはりアンチエイリアスが掛からないし、ダメだ EoG を入れよう。

chrome

google-chrome のインストールが失敗するんですけど。
Flathub 版ならイケたのでこっちをしばらく使う。
ログインすれば元通りなのは普通インストールと同じだった。

Fedora Tips | MPV をスクリプトで拡張 – Paepoi

MPV は Skylake 時代な内容が古いままだったので書き換え。
Fedora 38 から ffmpeg が面倒なことになっているんだよな。
他の Tips は全部以前のままだった、書き足すことがないのも寂しい。

gnome-text-editor がちっとも進化しないので Gedit を。
なんだけど色分けは普通に進化しているのね。

gedit

GtkSouceView 4 の開発が止まったからしかたがないんだけど。
PHP8 のヒアドキュメントインデントにも Gedit は未対応なのか。

Gedit: fstring Highlighting | Paepoi Blog

PHP もコレをやればいいと思ったんだけーがさぁ。
Python3 のやつも摘要されなくなっているんですが。
なんですか、Gedit はもう使うなってことですか?

最後の手段である Sublime Text をとうとう導入か。
って Linux 版って日本語入力ができないんですね。
手段はあるけど通常のインプットメソッド切り替えじゃないのね。
メニューバーや古い UI も気になるし、macOS 版を知っているととくに。
今回は見送って Gedit を騙し騙し使うことに。

ということで。
39 の時とほとんど変わらない Fedora 40 になりました。
そんなことより今日はキビタキが撮りたかった。

Linux LAW File

昨日はインフルに感染して一日中死んでいました。
広めちゃいけないので本日は有給休暇、体はダルいけど頭は超ヒマだ。
そんなこんなで昨日やろうと思っていた Linux ネタ。

orf

Fedora 39 にして四ヶ月、何を今頃気がついたけれど。
Nautilus 45 は OLYMPUS LAW である ORF を認識しているじゃん。

OM SYSTEM となっていないのはまあ時間が解決するだろう。
NIKON の NEF は以前からあったけど LUMIX の RW2 も対応していた。
いやぁ写真趣味を初めて良かった、こんな検証ネタが見つかるとは。

もちろんサムネイル表示することも画像を表示することも何もできない。
macOS の uti と違って意味が無いような気がしなくもない。
いや macOS はリソースフォーク時代と拡張子との整合性とかあったからだけど。
そもそも UTI は開発者側以外は気にしなくていいことは置いておいて。
ちなみに Nautilus は拡張子より前に以下を検索します。

/usr/share/mime/magic

とりあえず開いて olympus で検索、ちなみに文字列ではない定義もある。
当然 Gedit ではエラーが出るけど強制的に開くことは可能。

orf

なんだ普通に定義されていた。
IIRO(0x08)(0x00)(0x00)(0x00)
がファイルの先頭に付いていたら ORF ということです。

つまり macOS の UTI が現在は拡張子依存なのと違い拡張子は関係ない。
拡張子だけで全てが決まるポンコツ OS は置いておいて。

#!/usr/bin/env python3

import sys, textwrap
from gi.repository import Gio

attr = ','.join([
    Gio.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME,
    Gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE ])

for filename in sys.argv[1:]:
    f = Gio.file_new_for_path(filename)
    info = f.query_info(attr, Gio.FileQueryInfoFlags.NONE)
    _name = info.get_display_name()
    _type = info.get_content_type()
    _desc = Gio.content_type_get_description(_type)
    print(textwrap.dedent(f'''
        ----------
        Name        : {_name}
        Content Type: {_type}
        Description : {_desc}
        ----------'''))

get_ctype.py

を使って拡張子不要と表示の確認。

orf

なるほど、Description がプロパティに表示されているようで。
しかし LAW の Content-Type に対応とは、将来的に表示対応するのだろうか?
macOS でないとまともな現像アプリが無いから正直いらないけど。
フリーの GUI アプリって今現在は消費者(エンドユーザー)用途でしかないよね。
関係ないけど GNOME 45 って avif に対応していたのね、知らなかった。
最後に。

[Python]ヒアドキュメントでもインデントを崩さずに書かなきゃダメだよ | DevelopersIO

textwrap.dedent だと簡潔かつ読みやすいコードになりますね。
fstring でなく以前の formar({0}) なら先頭に定義という技があったけど。
それを fstring でやると未定義扱いになり困っていたので嬉しい発見でした。