Linuxでの動作報告(とバグ報告)

  1. Ubuntu 26.04 LTS + Wine 10.0
    Mery 3.8.8 x64(実質的にエミュレーション)

    縦書きエディタとしてお世話になっております。
    WindowsからLinuxに移住した影響でMeryを数ヶ月は使っていなかったのですが、数日前にLinux上でも動作させることに成功したので、そのことを報告します。Linuxでも縦書きができるのは感動です。
    2025年10月のWindows 10のメインサポート終了のタイミングでLinuxに移住した民も多いと思われるので、情報共有として少々詳しめに書かせていただきます。

    (動作状況)
    基本的な機能はおおむね使えています。配色テーマの変更もフォントの変更もできます。Zenモードも問題なく動作します。クラッシュもなくエディタとして問題なく使えています。
    操作している途中でメニューの一部が動かなくなるなど不具合はあるものの、これは動作環境であるWine側の問題であり、単にMeryを再起動すればもとに戻ります。
    ただし、DirectWriteを使おうとすると画面描画が壊れてしまうので、半角英数の等幅化はできません。

    (Linux上で動作させるまでの手順)
    0. Wineのインストール
    まずはシステムのセキュリティ更新をチェックして最新にする。
    Ubuntu 26.04 LTSの場合、アプリセンター(snap)を開いてWineを検索する。フィルターはdebianパッケージ。該当項目を開けば、インストールのボタンがある。
    Zorin OS 18の場合、Windows App Supportをインストールする。

    1. Wineに日本語フォントをインストール
    文字化け(豆腐化)防止に必須。
    ホームディレクトリに.wineという隠しディレクトリがある。UbuntuやZorin OSはファイルマネージャーがNautilusなので、Ctrl + Hで隠しディレクトリを表示できる。
    .wineを開くと、drive_cというディレクトリがあるので、windows/Fontsとたどれる。そこに日本語フォントファイル(ttfやotfなど)を配置する。

    2. インストーラーを使ってインストールする
    ポータブル版も動かせるが、インストーラー版が楽。
    Ubuntuの場合は端末を開いてwine uninstallerを実行。
    Zorin OSの場合はZorinメニューからWineソフトウェアの削除を実行。
    プログラムの追加と削除のダイアログが表示されるので、Meryのインストーラのexeファイルを実行。以降の手順はWindowsの場合とほぼ同じ。
    アンインストールのときも同じダイアログを使う。

    3. 再起動後に使えるようになる
    システムを再起動すればWindowsスタートメニューと同様にアプリ一覧にアイコンが追加され、Meryが使えるようになる。ただし、開くときと保存するときのファイルパスはやや癖があるので、慣れるまでは注意が必要。

    4. 解像度の調整
    ディスプレイのDPIの都合でメニューの文字が小さいなど読みづらい場合、WineのDPIの調整を行う。
    Ubuntuの場合は端末でwinecfgを実行。
    Zorin OSの場合はZorinメニューからWine設定を開く。
    画面タブからDPIを調整できる。

    (バグ報告)
    日本語入力が有効のとき、Zenモードを切り替えるためのCtrl + K, Zがうまく機能しません。以前に修正していただいたものの、この問題は再発しているようです。

    (シンタックスハイライトについて)
    難しい問題であることを十分に承知のうえで書かせていただきます。構文ファイルの構造からしてEmEditorを参考に作られたのだと推察しますが、あれはキーワードハイライトであってシンタックスハイライトではありません。
    Ubuntuを使っていると、どうしてもシステムに最初から入っているGNOME Text Editorと見比べてしまいます。とくにTeXとXMLのハイライトを見ていて性能差が顕著だったので。
    (La)TeXの場合は\text{...}のようにバックスラッシュと単語のセットである制御綴り(コントロールシーケンス)をハイライトする必要があります。実際にコンパイラが見ているのはその形なので。これには字句解析(リテラル化、トークン化)が必要です。
    XMLの場合は要素名や属性名をDTDファイルで自由に決められるのでキーワードでは対処できず、XMLとしての構文解析が必要です。
    あるいはC++の0b0101や0x23という数値リテラルの検出にも字句解析が必要になります。
    素人ながら調べてみたところ、highlight.jsというプロジェクトがシンタックスハイライトの参考になる気がしました。構文定義ファイルを見たところ正規表現でしっかり書かれていたので。

    (お詫び)
    長々と書いてしまったものの、Meryそのものは本当に気に入っています。継続的な開発に感謝します。

     |  Yuishin  |  返信
スポンサーリンク