私の Writerdeck を語る時が来ました。

2026/05/24 3:45

私の Writerdeck を語る時が来ました。

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

要約

日本語翻訳:

著者は、6年経った System76 Galago Pro ラップトップを「writerdeck」と名づけたオフライン書写ステーションに変換し、X11、Wayland、およびデスクトップ環境を排する tty ベースの構成で Debian Trixie を実行することでミニマリズムを優先しています。コンテンツが公開共有を目的としているためフルディスク暗号化は省略され、管理には

sudo
ユーザーモデルに切り替えて root ログインが無効化されました。本質的なツールとして、Neovim がテキスト編集に使用され(従来のエディタに代わり)、Debian バックポートからの
kmscon
でスケーラブルなターミナルウィンドウを可能にし、セッション多重化には
tmux
を使用し、インストール済みの Network Manager 経由の
nm-tui
が Wi-Fi/WAN の管理に用いられます。電力モニタリングおよび画面明るさ制御は
acpi
light
コマンドで行われ、自動ログインと
.bashrc
内の起動スクリプトにより Neovim が
tmux
セッション内で動作し、ブート時に Vimwiki が起動するようにしています。Syncthing は Vimwiki フォルダをリモートサーバーに同期させ、ブラウザ GUI を必要とせずオフラインファーストなワークスペースを維持するために全てのネットワークアドレスを活用しています。この構成はデジタルの雑多さを削減し、悪い書写習慣を打破助けるとともに、クリエイティブ専門家にとってセキュリティと生産性を向上させます。

本文

ライターデッキ(WriterDeck)の自作:注意散漫を排除したオフライン執筆環境構築指南

私は注意散漫な体質を持っています。数週間前、古いラップトップを「ライタデッキ」と呼び、現代のインターネットからの雑多な誘惑から解放された専ら執筆に用いる専用デバイスへと転換することを決意しました。

現在では精密なオフライン機器を自作する方々もいますが、まずは手元にあるもので書き込みを開始するのが最優先でした。使用頻度が低下した 6 年半前のラップトップを再起動し、その能力を最大限に発揮させるプロジェクトです。

hardware と OS の選定基準

ハードウェアのポイント

  • 優れたキーボード: マット仕上げの画面も長時間タイピングで快適。屋外の日差しの下でも十分に活用可能(犬を連れて執筆する場合に適しています)。
  • Linux 相性: System76 製の Galago Pro を採用(本記事のスポンサーとは関係ありませんが、Linux カーネルとのサポートが優れています)。

なぜ TTY ベースなのか?

単にデスクトップ OS をインストールしてオフライン運用する手もありますが、ブラウザを完全に排除するのは困難です。私が目指したのは:

  • デスクトップ OS に依存する「筋肉記憶」を断ち切る。
  • 自分の言葉に意図を持って向き合うことを強いること。
  • GUI が邪魔をするのを防ぐ純粋なコンソール環境への到達。

そのため、Debian(Trixie 版) を採用し、X11 や Wayland は導入せず、TTY ベースの設定を行いました。


デビアンによる初期設定

インストールのポイント

  • テキストベースのインストーラモードを使用。
  • 公開対象となるため、フルディスク暗号化はスキップしました。

⚠️ 重要:Sudo と Root の設定について

Debian を使う際によくある躓き(特に Mint や Ubuntu から移行する場合)に注意が必要です。

  • ルート(root)用のパスワード設定をスキップしてください。これにより root 権限が無効化され、代わりに
    sudo
    ユーザーとして運用されます。
  • sudo
    を使用するには、ルートパスワードは空欄のままにしておくのが正解です(この挙動「クイールド」を知っていないとトラブルになります)。

デスクトップ環境の排除

ログイン画面では最小限のデバイスを目指します。以下の選択肢を除外して全てを削除するオプションを選びます。

  • ❌ Debian デスクトップ環境
  • ❌ GNOME

これにより、文字のみが存在する簡素なコンソール表示が迎えてくれます。退屈かもしれませんが、至極ちょうどよい状態です。

ネットワークスタックの軽量化

初回ログイン後、システムの最新化を行います:

sudo apt update
sudo apt upgrade

通常のネットワークスタックを

network-manager
パッケージに置換しました。

TUI による管理の魅力

nm-tui
(curses ベースのツール)を利用することで、設定ファイルを直接編集するよりもはるかに容易にデバイスを構成できます。

  • 自宅以外: ほぼオフライン動作しますが、必要な時だけデータバックアップ用の接続機能を持つことが有用です。
  • 自宅内:
    nm-tui
    を使って Wi-Fi 検索や接続が可能(ハードウェア次第で WAN も可)。

インストール方法

sudo apt install network-manager
# その後 nm-tui で利用可能なネットワークを検索・接続

エディタとターミナル環境の構築

Neovim の導入

まずは

neovim
をインストール。個人的には純粋な Vim ユーザーですが、今回は新しさも試しました。

依存パッケージの追加(Trixie バックポート)

Debian Trixie では標準にないため、ソースリストを編集してバックポートを追加します。

  1. /etc/apt/sources.list
    に以下の 2 行を追加:
    deb http://deb.debian.org/debian/ trixie-backports main contrib non-free non-free-firmware
    deb-src http://deb.debian.org/debian/ trixie-backports main contrib non-free non-free-firmware
    
  2. パッケージをインストール:
    sudo apt update
    sudo apt install -t trixie-backports kmscon
    

これにより、ブート時に自動起動するようになります。

Ctrl+Plus
/
Ctrl+Minus
でスケーリングが可能になり、現代的な操作性が得られます。

tmux によるマルチプレキシングとカスタマイズ

ターミナルタイル化および美しいステータスバーを設定しました。

インストール

sudo apt install tmux acpi light

バッテリー情報の表示(ACPI)

acpi
パッケージを使用し、バッテリー残量を表示します。
acpi -b | grep ...
でパーセンテージのみを抽出する設定にしています。

.tmux.conf
への追加設定:

# 時間を示す代わりにバッテリー読出しを表示
set-window-option -g status-right "#(acpi -b | grep -m1 -o -P '.{0,2}%')"
  • -m1
    : 1 ライン目で停止(メインバッテリー情報のみ抽出)。
  • -o
    : 一致部分のみ出力(不要な情報カット)。
  • -P
    : Perl 互換正規表現による抽出。

スクリーン明るさ制御(Light)

ラップトップの F8/F9 キーを割り当て、明かり度を制御します。

.tmux.conf
へのキーバインド追加:

bind -n F8 run-shell 'light -U 10' # 減らす
bind -n F9 run-shell 'light -A 10' # 増やす

その他のカスタマイズ

  • ステータスバー位置:
    set -g status-position top
  • 色指定:
    set -g status-style bg=green
    (将来的に変更可能)

最終的な

.tmux.conf
ファイル例:

# バーの位置と色
set -g status-position top
set -g status-style bg=green

# 明るさ制御のためのキーバインド
bind -n F8 run-shell 'light -U 10' # 減らす
bind -n F9 run-shell 'light -A 10' # 増やす

# バッテリー情報表示
set-window-option -g status-right "#(acpi -b | grep -m1 -o -P '.{0,2}%')"

:

Ctrl+B
でコマンドモードへ入り、「%」で縦分割、
"
で横分割が可能です。


Neovim と Vimwiki の連携

色スキームと改行設定

Neovim は多彩な色スキームを提供します。レトロ感のある青色系を選びました。

.config/nvim/init.vim
に以下を追加:

colorscheme blue
set linebreak

※改行による単語分割は執筆時の主要な目的のため有効化しています。

Vimwiki の設置

Emacs などの他ツールではなく、Vim ユーザーとして Vimwiki を採用しました。

  • Trixie ではパッケージ化されているため:
    sudo apt install vim-vimwiki
    
    (以前とは違い、プラグインとしてインストールしなくて済みます)

データ同期とセキュリティ(Syncthing)

Syncthing の設定

公式ドキュメントに従って設置し、ライタデッキの Vimwiki フォルダを自宅サーバー上の執筆用フォルダに同期しています。

同期戦略の理由

  • デスクトップ版 Vimwiki に機密メモが含まれていても、ライタデッキへ同期させないようにする
  • もし暗号化(LUKS)が施されているなら、アクセス用パスワードを付与しても良かったかもしれませんが、現状では Syncthing で十分です。

ブラウザなし環境への対応

ブラウザを持たないデスクトップ環境のため、Syncthing の Web GUI を「127.0.0.1」だけでなく**「すべてのアドレス(all addresses)」**で受け付けるように設定しました。

  • 機密情報が含まれていないため問題ありません。
  • より安全な方法(SOCKS プロキシ経由など)は今後のテーマとします。

自動ログインと起動フローの自動化

ライタデッキを個人的なものにするための最終ステップとして、起動即執筆環境への到達を目指します。

KMScon を用いた自動ログイン

kmscon
をインストールしているため、systemd サービスファイルを編集して設定できます。

/etc/systemd/system/kmsconvt@tty1.service.d/override.conf
などの作成:

[Service]
ExecStart=
ExecStart=/usr/bin/kmscon --login -- /bin/login -f my_username_goes_here
  • --login
    の後の
    --
    で区切られたコマンドが kmscon に渡されます。
  • /bin/login -f
    でパスワード入力なしの自動ログインを実現します(ユーザー名を適宜変更)。

バート時の tmux 起動

KMScon によるログイン後、自動的に tmux を起動させます。

.bashrc に以下の if/then ステートメントを追加:

# 既に tmux を走らせないかつ、デフォルトの TTY 上であれば tmux を起動
if [ -z "${TMUX}" ] && [ $(tty) == "/dev/pts/0" ]; then
        exec tmux new-session -d 'vim -c VimwikiIndex' \; attach
fi
  • チェック内容:
    TMUX
    変数の非存在と TTY が
    /dev/pts/0
    のこと。
  • 動作: 新しいセッションを開始し、Vim で
    VimwikiIndex
    を開いた状態でアタッチします。

まとめ:WriterDeck の魅力

このシステムを 1 週間ほど運用している間に、ブログ記事や台本の執筆などで大いに活用できました。今後はスペルチェック機能の追加や、さらに古い PC との連携も検討しています。

**「より多く文章を書くこと」と、「distraction(雑多な誘惑)にさらされないこと」**こそが最重要です。

  • ブラウザによる執拗な注意喚起。
  • アプリからの通知や音楽プレーヤーによる曲替え予告。 これらはいずれも便利ですが、同時に集中力を削ぐ要因となります。

一つのことに特化して本当に得意とすることができ、完了後に別のことを始めるようなデバイスが欲しいと思います。あらゆるものが動き回るのを避け、**「意図的で集中した体験」**を追求できるのは、この自作ライタデッキの大きな成果でしょう。

もしそのような考えをお持ちであれば、ライタデッキを導入してみることで恩恵を受けられるかもしれません。私の場合では非常に優れたものでした :)

同じ日のほかのニュース

一覧に戻る →

2026/05/24 7:25

自分でロールを作るな

## 日本語訳: 要約: 開発者は、暗号化やユーザーインターフェースコンポーネントといった重要な機能に対して独自の実装を即時に停止する必要があります。なぜなら、「自分自身でつくる」というソリューションは過去の実績が証明する通り危険であるためです。最も重要な教訓は、安全性と使い勝手を確保するために、自作コードの代わりに既成でピアレビューされた標準を採用しなければならないことです。独自のカスタム暗号化パッケージには、初期化の不備や予測可能なパターンなどの深刻な欠陥を内包しており、規制産業では財務規制に違反し、高額の罰則を引き起こす可能性があります。セキュリティの問題だけでなく、ネイティブブラウザ要素を置換することは性能低下をもたらし、過剰な JavaScript ロジックによりキーボードスクロールの破損やリンクの読み込み遅延といった問題を引き起こします。さらに、独自のソリューションは自動入力機能など、安全なパスワード管理などの重要なネイティブ機能を排除してしまいます。この傾向は、組み込みブラウザ機能の安定性よりも創造的なツールの構築を優先しており、ユーザー(高齢者のご家族も含まれます)が慣れ親しんだツールを常に再学習することを強いられています。これらの使い勝手に関する落とし穴を防ぎ、規制当局による罰金を避けるためには、開発者はネイティブ要素を置換するのではなく補完する方向へ転換すべきです。これにより、すべてのウェブサイトで一貫した動作を確保できます。

2026/05/21 6:21

私の二画面デスクセットアップ(2025)

## 日本語訳: 著者は、壁を向いた単調なパソコンデスクを部屋の方を向くように回転させることで(ドアを見渡させ、奥行きを追加)、そしてテック専用だった単一の面を、二つの明確なゾーニングに分かれた大規模な USM ハラーデスクに置き換えることにより、ハイブリッドなワークスペースへと成功裡に変化させています。このデザインは、ソーシャルメディアでのフィードバックを受けてから以前の壁を向いた配置が持っていた「古い」外観に対応し、また、未使用のアイテム、おもちゃ、プロジェクトをアナログ側の面に置き続けることで、ストイックなミニマリズムの限界を解決し、アイデアを刺激することを可能にしています。単純にチェアを二つの半分の間で移動させることで強化された明確な精神的境界線により、このセットアップは一つの表面上で「作業」「思考」「子供たちと過ごす時間」という 3 つの異なる機能を発揮します。9 ヶ月の使用後、著者は単一コンピューターの配置に戻る予定はないことを確認しており、むしろミニマリスト的な規律とマキシマリスト的な柔軟性を融合させたこの柔軟なシステムを維持する意欲を持っています。これにより、別々の部屋を必要とせずに、ワークフローと創造的アウトプットを向上させることができます。

2026/05/23 22:03

『オン・ザ・DL』(2021 年)

## Japanese Translation: HTML の `<dl>` 要素は、名詞と値の組からなる構造化されたリストを作成するためのセマンティックなツールであり、語彙辞典やゲームキャラクターのステータスブロックのようなデータ量の多いインターフェースに極めて効果的です。この要素は 3 つのコアコンポーネントに依存しています:リストを定義する `<dl>`、用語を表す `<dt>`、そしてそれらの用語を詳細説明する 1 つまたは複数の `<dd>` 要素(各用語に対して複数の詳細を許容)。開発者はこの要素を `<div>` など他の適切なセクション要素で包んでスタイル化することが一般的ですが、この構造のもっとも主な利点はアクセシビリティです。これにより、スクリーンリーダーが複雑なデータを論理的にナビゲートでき、項目数を数え、関連性の低いブロックをスキップできるようになります。<dl> は以前の HTML バージョンでは「定義リスト」として登場しましたが、HTML5 の仕様では、堅固な構造的前提を持たずに多様な UI パターンをサポートするようにこれらの要素が改良されました。能力値や攻撃詳細のような複雑なデータ構造を表現する versatility がある一方で、ブラウザとスクリーンリーダーのサポート状況が異なるため、採用には注意が必要です。正確な実装規則については、公式仕様または MDN を参照することをお勧めします。結局のところ、セマンティックな `<dl>` タグを使用することで生テキストをアクセシブルな体験へと変換し、単純なデータと異なるデバイス間で意味のある相互作用の間に架け橋を作るのです。