シンプルで美しい Emacs モデルライン:modusregel

2026/07/03 6:50

シンプルで美しい Emacs モデルライン:modusregel

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

modusregel パッケージは、GUI とターミナル環境の両方で一貫した動作を提供する、清潔でカスタマイズ可能且つエレガントな Emacs モードラインを備えています。完全に純粋な Emacs Lisp で書かれており外部依存関係を持たず、軽量かつ高速です。ミニマリストなユニコード象徴(例:バッファの開始を示す 𝝺、保存されていない変更を示す ●、読み取り専用を示す ☡)を使用してユーザインタフェースを統一しています。主要機能には、Tree-Sitter によるスマートなメジャーモードマップリングが含まれ、これはモード名を整飾します(例:rust-ts-mode → Rust)。Eglot と Flymake のノイズの少ないインジケーターを提供し、LSP サポートを含む開発ヘルパーとの深層統合も実装されています。インストールには、パッケージが MELPA や ELPA に利用可能になるまで

elpaca
が必要です。著者の公開リポジトリには設定例およびフック(
after-change-major-mode-hook
を含む)が含まれています。また、コマンドラインにキーを追加するために
keycast
とのオプションな統合もサポートされています。プロジェクトはコードに対して GNU GPL v3(以降)とドキュメントに対して GNU FDL v1.3(以降)のライセンスを採用し、jointhefreeworld AI ポリシー(自律的な AI エージェントによる Pull Request の作成または提出なし)に従い、包含性を促進する行動規範を遵守しています。寄稿は電子メール(jjbigorra@gmail.com)または lucidplan.jointhefreeworld.org の Backlog/Kanban ボードを通じて歓迎されています。

本文

Modusregel パッケージ

Modusregel(オランダ語:モードライン)は、Emacs のステータスバー(モードライン)に、カスタマイズ性、美しさ、パフォーマンスを最優先して設計されたクリーンでシンプルかつエレガントなインターフェースを提供するパッケージです。

  • 完全互換性: Emacs グラフィカル・インターフェース(GUI)およびターミナル・ユーザ・インターフェース(TUI)の両方に対応。
  • 依存関係なし: 外部ライブラリを必要とせず、純粋な Emacs Lisp で軽量かつ高速に動作します。

🚀 メイン機能

  • Tree-Sitter スマート メジャー
    • メジャーモード名を整列させ、
      -ts-mode
      付きのバリエーション(例:
      rust-ts-mode
      )を自動検出・整形します。
  • LSP と Flymake への対応
    • Eglot および Flymake の状態を示すインジケーターを内蔵し、画面 clutter なさを維持しています。
  • TUI/GUI 対応
    • ターミナル上でもグラフィカル上でも、シャープで揃った外観を保つよう設計されています。

支援のお願い この作品がお好きの場合は、一杯のコーヒーを買っていただくことで支援が受けられます☕。ご支援により、より多くのご機嫌に合わせて開発を継続しやすくなります。


📸 スクリーンショットと記号体系

Modusregel は、ミニマルなユニコード記号を使用して、界面を清潔に保ちつつ深い情報を伝達します。

記号変数名説明
𝝺
modusregel-leading-str
ランダ: Emacs の系譜を称えるため、最左端に配置されます。
modusregel-buffer-modified-str
未保存変更: バッファが書き込まれたまま保存されていない場合にのみ表示。
modusregel-buffer-read-only-str
読み取り専用: 書き込み保護バッファの場合にのみ表示。
modusregel-remote-expr
リモート接続: TRAMP など経由の遠隔ファイル上工作时に表示。
𝌤
modusregel-eglot-expr
LSP 有効化: Eglot ランゲージサーバーがセッションを管理している場合。

注意: Modusregel は標準的なモードラインを置換する仕様です。他モデルパッケージとの併用にはカスタム設定が必要になる場合があります。


🛠 インストールと設定

MELPA や ELPA 等には現在対応していません。Elpaca を使用したインストールが推奨されます。

基本設定例

(use-package modusregel
  :ensure (:host codeberg :repo "jjba23/modusregel" :branch "trunk")
  :demand t)

mode-line-format の設定について

mode-line-format
ウィンドウ局所変数です。

  • 一時的な調整(実験用):
    setq
    を使用します。
  • グローバルな適用(変更維持用):
    setq-default
    を使用します。

ウィンドウ単体での設定

(setq mode-line-format modusregel-format)

グローバルでの設定

(setq-default mode-line-format modusregel-format)

Emacs コア内部の modeline を確保する必要がある場合は、以下のようにカスタム関数を定義します。

高度な制御によるカスタマイズ

以下の例では、

my-set-custom-modeline
関数を作成し、必要に応じて各要素をリストに追加しています。

(defun my-set-custom-modeline ()
  "modusregel を使用してモードライン形式をカスタマイズします。"
  (setq mode-line-format (list
                          modusregel-leading-str
                          modusregel-remote-expr
                          modusregel-buffer-name-expr
                          modusregel-buffer-modified-str
                          modusregel-buffer-read-only-str

                          ;; スペース
                          modusregel-spacer-str

                          ;; 上記で nyan-mode が有効な場合、コメントを外す
                          ;; modusregel-nyan-expr

                          modusregel-spacer-str
                          modusregel-line-number-str
                          modusregel-column-number-str
                          modusregel-spacer-str
                          modusregel-buffer-position-str
                          modusregel-spacer-str
                          modusregel-vc-expr
                          modusregel-major-mode-expr
                          modusregel-eglot-expr
                          modusregel-spacer-str
                          modusregel-flymake-expr
                          (ignore-errors keycast-mode-line))))

(add-hook 'after-change-major-mode-hook #'my-set-custom-modeline)

重要: 上記のようなカスタムリストを作成する際、最後に

modusregel-format
ではなく、作成したリスト関数を
setq-default
に渡すことを忘れないでください。


⚖️ ライセンス


🤖 AI ポリシーと行動規範

本プロジェクトは jointhefreeworld のポリシーおよび行動規範に準拠しています。

核心的な原理

AI は人間の創造性と問題解決を支援するものであり、決して人間のプロセスを置き換えるものではありません。

  • 適度な使用: LLM やチャットボットはレビューやリファクタリングの助成には有用ですが、過信は禁物です。
  • 人間の介入必須: 全ての貢献において人間による確認が必要です。
  • 禁止事項: このプロジェクトへの自動生成コードやプルリクエストの提出に対する自律的な AI エージェントの使用は厳しく禁止されています。

コミュニティへのメッセージ

私たちは包摂的で尊重し合う協力的な環境を育むことを目指します。自由、平等、コミュニティを指針として、互いに尊重し合うことで優れたフリーソフトウェアを作成することを信念としています。


💬 貢献と連絡先

フリーソフトウェアへの貢献は「寛大さ、協力、エンパワーメント」の体現であり、美しい行為です。

  • 参加方法: 改善提案、ブレインストーミング、モジュール化の工夫などを歓迎します。
  • 連絡先: チャット、議論、フィードバックについては
    jjbigorra@gmail.com
    までご連絡ください。
  • タスク管理: Backlog と Kanban ボード を参照してください。

🔗 Keycast との連携例

Keycast モードライン機能と併用する設定例です。

(use-package keycast
  :ensure t
  :hook (after-init . keycast-mode)
  :config
  (define-minor-mode keycast-mode
    "モードラインに現在のコマンドとそのキーバインディングを表示します。"
    :global t
    (if keycast-mode
        (add-hook 'pre-command-hook 'keycast--update t)
      (remove-hook 'pre-command-hook 'keycast--update))))

(use-package modusregel
  :ensure (:host codeberg :repo "jjba23/modusregel" :branch "trunk")
  :after (keycast)
  :config
  ;; Keycast の表示をモードラインに追加
  (add-to-list 'modusregel-format '("" keycast-mode-line))
  (setq-default mode-line-format modusregel-format))

さらに Nyan Cat やその他の機能を活用した設定例については、以下のリポジトリをご覧ください。 https://codeberg.org/jjba23/heks-emacs/src/branch/trunk/src/modules/emacs-core.el

同じ日のほかのニュース

一覧に戻る →

2026/07/03 6:03

バージニア州、地理的位置データ販売を禁止

## Japanese Translation: 提供されたテキストは、一貫した記事ではなく二進データ、符号化文字、および読み取れない内容のみから構成されているため、要約することができません。事実や日付、製品名を含む標準的な記事とは異なり、この源資料には有意義な分析に必要な理解可能性を欠いています。その解読不可能な性質から、特定の文脈、出来事、または背景情報は導き出すことができません。テキストを処理できないというこの状況のため、有益な洞察や関連する事実を引き出すことは不可能です。源入力を人間が読み取れる言語に変換されるまで、有効な要約を作成することは不可能です。その間もなお、中央テーマ、主要な論点、または具体的な物語を特定しようとするのは無駄であり、データには識別可能なストーリーが存在しないためです。最も重要な点は、この入力が混乱した非構造化形式のため、標準的な読解タスクに根本的に使用できないということです。

2026/07/03 3:41

エキスパンクス(2018)

## Japanese Translation: EXAPUNKS プロジェクトは、プレイヤーが現実的なハッキング活動に取り組み、「EXas」と呼ばれる自律エージェントを管理し、複雑なデジタルタスクを実行できるサンドボックス環境を提供します。従来のシミュレーションとは異なり、このエコシステムではユーザーが現実世界の物体を操作したり、実際のネットワークを侵害したりし、その侵害された状態の中でゲーム世界内で安全に行動することができます。体験の中核には、秘密のヒント、コメント、チュートリアル、EXas をプログラミングしてファイルを破棄させたり、自己複製したり、他のエージェントを停止させたり、痕跡を残さずに姿を消させたりするための詳細を提供する公式 *TRASH WORLD NEWS* ズィンがあります。プレイヤーは銀行、大学、工場、テレビ局、高速道路の標識、ゲームコンソール、政府システム、さらには自身の肉体など幅広い対象を対象とし、その後「ПАСЬЯНС」(パシアンズ)、地域ロックをハッキングした後の「HACK*MATCH」、あるいは TEC Redshift 用のホームブロー開発などの代替ミニゲームにアクセスできます。物理的なデラックス版のズィンセットは、2020 年 4 月に Lulu でのオンデマンド印刷を通じて復活し、7 ドルプラス送料で提供されましたが、両方の号への注文が必要でした。開発者向けには、2018 年 7 月 16 日に詳細とともにリリースされた「Axiom VirtualNetwork+」があり、ホスト、ファイル、レジスタ、ゴール、そしてその API を通じた完全なパズル仕様機能を利用して、ホストスクリプトを記述した JavaScript ベースの「バーチャルネットワーク」を作成することでカスタムパズルの作成が可能になります。2018 年と 2020 年のこれらのリリース以降、専用のコミュニティが栄え、標準的な商業制約を超えたサイバーセキュリティの探求やイノベーションを促進し続けます。

2026/06/28 8:36

現実には驚くほど多くの詳細が存在する (2017)

## Japanese Translation: 私たちが単純なものとして扱っている多くのタスク—地下室の階段を築くことや水を沸かすことなど—is、実行前に深い調査が必要となる重要な細部を隠しています。著者の父は 18 歳でコロンビアから北米へ移住し、実地作業を通じて建築を教えてくれました(フェンスの取り替え、塹壕の掘削、床および小屋の築造など)。著者はフェンスの手すりを取り替える際、床を敷設し、地下室の階段を築く際にこの教訓を実際の経験として学びました。 二つの 2×12 に角度ブラケットを用いて作られた階段は一見単純に見えますが、複数の副次的タスクを含んでいます:切り取り角度を計算またはトラACING し、U ブラケットを取り付けること、および板材を固定することです。木材は乾燥するにつれて歪むため、2x12 を正しい角度に切り取ることは容易ではありません。視覚的な対齐も失敗するため、三角関数を使用するか、円鋸用ガイドを雇用するか、または計算だけよりも木目追跡の方法を好む必要があります。ブラケットを引かれた線上に合わせてからネジを取り付けた場合でも、最初にもうけホールを掘らないとネジが斜めに取り付けられてしまいます;ブラケットを数インチ移動して再 drilling することでより良い結果が得られます。2 インチより長いネジを使用すると、階段の踏み面から突き抜け足に刺さるリスクがあるため、短いネジが不可欠です。 同様に、沸騰は単に「100°C の水」ではありません。真の沸騰の前に小さな気泡が発生します。ガラス鍋はより高い温度を耐え、硫酸で清掃されたガラス容器では水を過加熱することができ、攪拌によって爆発的に飛び散ります。二つの液体の間にわずか一滴の水を挟むだけでも、沸騰せずに約 300°C に加熱でき、一般的な主張と矛盾します。これらのリスクは、充填ベッドとロケット軌道計画を必要とする工業プロセスにも広がっており、見えない力は正確なスロットル制御と使い回し可能なロケットのための慎重な重量管理を要求します。 歴史もこれらの教訓に反響しています:アルコール熱計は 18 世紀にジャン=アンドレ・デュリュがその非線形性を明らかにするまで標準的なものでした。重要な細部が見えないままにされる時、知的な行き詰まりが生じます—例えば、「すべてのデータは「偽造されている」と主張し気候変動を否定する代わりに、見落とした過ちを注意すること—。一度見えなかった細部が出会うと透明化し、進捗はそれを見無視する場合のみ停滞します(例:三角関数 versus トラACING を巡る家族の議論)。究極的に言えば、住宅修理、大規模なエンジニアリング、科学的探究における成功は、予期しない変数を積極的に探し求め、詳細な観察を受け入れ、表面的な仮説への依存を拒むことにかかっています。

シンプルで美しい Emacs モデルライン:modusregel | そっか~ニュース