
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 ベースのツール)を利用することで、設定ファイルを直接編集するよりもはるかに容易にデバイスを構成できます。
- 自宅以外: ほぼオフライン動作しますが、必要な時だけデータバックアップ用の接続機能を持つことが有用です。
- 自宅内:
を使って Wi-Fi 検索や接続が可能(ハードウェア次第で WAN も可)。nm-tui
インストール方法
sudo apt install network-manager # その後 nm-tui で利用可能なネットワークを検索・接続
エディタとターミナル環境の構築
Neovim の導入
まずは
neovim をインストール。個人的には純粋な Vim ユーザーですが、今回は新しさも試しました。
依存パッケージの追加(Trixie バックポート)
Debian Trixie では標準にないため、ソースリストを編集してバックポートを追加します。
に以下の 2 行を追加:/etc/apt/sources.listdeb 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- パッケージをインストール:
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}%')"
: 1 ライン目で停止(メインバッテリー情報のみ抽出)。-m1
: 一致部分のみ出力(不要な情報カット)。-o
: Perl 互換正規表現による抽出。-P
スクリーン明るさ制御(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
- チェック内容:
変数の非存在と TTY がTMUX
のこと。/dev/pts/0 - 動作: 新しいセッションを開始し、Vim で
を開いた状態でアタッチします。VimwikiIndex
まとめ:WriterDeck の魅力
このシステムを 1 週間ほど運用している間に、ブログ記事や台本の執筆などで大いに活用できました。今後はスペルチェック機能の追加や、さらに古い PC との連携も検討しています。
**「より多く文章を書くこと」と、「distraction(雑多な誘惑)にさらされないこと」**こそが最重要です。
- ブラウザによる執拗な注意喚起。
- アプリからの通知や音楽プレーヤーによる曲替え予告。 これらはいずれも便利ですが、同時に集中力を削ぐ要因となります。
一つのことに特化して本当に得意とすることができ、完了後に別のことを始めるようなデバイスが欲しいと思います。あらゆるものが動き回るのを避け、**「意図的で集中した体験」**を追求できるのは、この自作ライタデッキの大きな成果でしょう。
もしそのような考えをお持ちであれば、ライタデッキを導入してみることで恩恵を受けられるかもしれません。私の場合では非常に優れたものでした :)