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

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 の人気がね。

Gedit 46 Syntax Highlighting

Fedora 40 の Gedit でハイライト定義の変更が無視される件。
以下に定義を入れれば摘要されるはずなんですけど。

~/.local/share/gtksourceview-4

GtkSourceView4 に何か変更があったのか?
そう思って単純なテストコードを書いてみた。

#!/usr/bin/env python3

import sys, gi
gi.require_version('Gtk', '3.0')
gi.require_version('GtkSource', '4')
from gi.repository import Gtk, GtkSource
 
TEXTVIEW_CSS = b'''
#MySourceView {
    font: 10pt Monospace;
}'''

PYTHON_CODE = '''#!/usr/bin/env python3

fst = 'fstring'
print(f'Test {fstr} Syntax Highlighi')'''
 
class Win(Gtk.ApplicationWindow):
    def __init__(self, a):
        Gtk.ApplicationWindow.__init__(self, application=a, title='SourceViewTest')
        # GtkTextView
        view = GtkSource.View(show_line_numbers=True, name='MySourceView')
        # CSS
        provider = Gtk.CssProvider()
        provider.load_from_data(TEXTVIEW_CSS)
        view.get_style_context().add_provider(provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)
        # Python3 Highlighte
        lang_man = GtkSource.LanguageManager()
        lang = lang_man.guess_language(None, 'text/x-python3')
        view.props.buffer.set_language(lang)
        view.props.buffer.set_text(PYTHON_CODE)
        # GtkScrolledWindow
        sw = Gtk.ScrolledWindow(child=view)
        self.add(sw)
        self.resize(400, 100)
        self.show_all()

app = Gtk.Application()
app.connect('activate', lambda a: Win(a).present())
app.run(sys.argv)

01

普通に摘要されとるじゃん。
Gedit 派生の奴も試してみよう。

って Pluma は調べてみると Gedit2 派生かよ。
プラグイン作りに Python2 や PyGtk も必要だよな、ありえん。
Xed なら Gedit3 ベースだな、ツールバーを消せばなんとか。

02

やっぱり Gedit だけ摘要されない、マジで何でだよ。
他を試すのも面倒だし、しばらく Xed に乗り換えするかな。

と思ったけどコードスニペットと外部ツールが無いやんけ。
Atom や Sublime Text は別の手段があったけど Xed には無さそう。
単語補完というプラグインがあるけど、違うそうじゃない。
自作プラグインは Gedit 3.10 以前のを小変更で使えるかもだが。
新規タブが Ctrl+N に変更されているのはなんで?

Xed って Old Gedit のふりをした vscode になりたいの?
まあナンチャッテプログラマーにはこういうのがウケるんだろうけど。

だめだ Gedit をなんとかしなきゃ。
とにかく Gedit は他アプリとは別の場所を見ているってことだよな。
もしかしてと思って /usr/share の中を探してみる。

03

あった、こんな所に。
Gedit 46 は GTK3 ライブラリでなくフォークした奴を使っているのか。

libgedit-gtksourceview 300 Reference Manual: libgedit-gtksourceview 300 Reference Manual

それだから libgedit-46.so のサイズが 583MB もあるわけだ。
静的リンクにしたほうが Mac や Windows に移植しやすいよね。
もう面倒だ、直接このディレクトリに python3.lang をコピーしちゃえ!

04

それだとエラーで python3.lang がロードできないようです。

def.lang: Update Unicode identifier regexes (!149) ? マージリクエスト ? GNOME / gtksourceview ? GitLab

Gedit が使う GtkSourceView にはこの定義が無いってことですね。
正式な GtkSourceView-4 にはメンテで追加されているという皮肉。
原因は解ったけどコレでは対策手段が無い、お手上げです。

あと関係ないけど Nautilus のリネームで日本語が打てないね。
経験上 GNOME 45 の間はこのままかと、リネームアプリでも作るか。

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 になりました。
そんなことより今日はキビタキが撮りたかった。