- writerdeckは現代のインターネットの気を散らす要素を減らすための専用ライティングデバイスで、新しいハードウェアの代わりに6年前のノートPCを再活用した構成
- System76 Galago Proは十分な性能、良いキーボード、非光沢ディスプレイ、Linux対応のおかげで、長時間のタイピングや屋外での執筆に向いている
- Debian Trixieをコンソール専用でインストールし、X11、Wayland、デスクトップ環境、ブラウザを除外した執筆環境を構築
- neovim、kmscon、tmux、vimwiki、Syncthingで編集、フォントサイズ調整、ステータスバー、同期とバックアップの流れを構成
- 自動ログイン後にtmuxとVimwikiがすぐ開くようにして、ブラウザや通知なしで、より多く書くことに集中できるデバイスになった
デバイス選びと目標
- writerdeckは現代のインターネットの気を散らす要素を減らすための専用ライティングデバイスで、新しい専用ハードウェアの代わりに6年前のノートPCを再活用する
- 使用したノートPCはSystem76 Galago Proで、今でも性能は十分で、キーボードも良く、非光沢ディスプレイなので長時間のタイピングや屋外での執筆にも適している
- Galago ProはLinuxフレンドリーで、カーネルサポートも良い
- 目標は新しいプロジェクトを大きく増やすことではなく、すでに持っている機材ですぐに書き始めることにあった
デスクトップの代わりにttyベースのDebianをインストール
- 一般的なデスクトップOSをオフライン専用で使う方法もあるが、現代のMacやWindows PCでブラウザを完全に削除するのは、サポートされる形では難しいと考えている
- Linuxなら軽量なデスクトップやウィンドウマネージャにブラウザを入れないこともできるが、デスクトップOSを使う習慣そのものを断ち、文章に集中する環境を作りたかった
- Debian Trixieをコンソール専用でインストールし、X11、Wayland、デスクトップ環境をすべて除外した
- Debianのインストールではテキストベースのインストーラーモードを使い、このデバイスには公開可能な内容だけを置く予定なので、フルディスク暗号化は省略した
- Debianで
sudoを使うにはrootパスワードを追加しない必要があり、そうするとrootは無効化され、ユーザーがsudoユーザーとして設定される
- デスクトップ選択画面ではすべてのデスクトップ機能を外し、インストール後は標準のコンソールログイン画面から始まる
ネットワークと基本編集環境
- 最初のログイン後、
sudo apt updateとsudo apt upgradeでシステムを最新状態にし、ネットワーク管理のためにnetwork-managerパッケージをインストールした
- 重要なのは、ネットワーク設定ファイルを直接編集せずに、
nm-tuiというcursesベースのツールでWi-Fiに接続できること
sudo apt install network-managerでインストールした後、nm-tuiを実行すれば周囲のWi-Fiネットワークを検索して接続できる
- このデバイスは主にオフラインで使うが、必要なときにはファイルのバックアップのためにネットワークへ接続できる必要がある
nanoの代わりにneovimをsudo apt install neovimでインストールし、普段はvimユーザーだが、neovimに慣れるためにこれを選んだ
kmsconはDebian Trixieではbackports経由でインストールする必要があった
/etc/apt/sources.listに次の2行を追加してtrixie-backportsリポジトリを有効化する
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
- その後
sudo apt updateを実行し、sudo apt install -t trixie-backports kmsconでkmsconと依存関係をインストールした
kmsconは起動時に自動開始され、次回の再起動からは従来のttyのように見えつつ、ctrl-plusとctrl-minusでフォントサイズを調整できる
- ここまでで、オフラインで快適に書ける基本的なwriterdeck構成が完成する
tmuxで画面分割とステータスバーを構成
tmuxはターミナルのタイル分割とステータスバーのために導入し、Debianではsudo apt install tmuxでインストールできる
- バッテリーと画面輝度の制御のために、
acpiとlightもsudo apt install acpi lightで一緒にインストールした
- 関連する設定はホームディレクトリの
.tmux.confに追加した
-
バッテリー表示のためのACPI
acpi -bはノートPCのバッテリー情報を表示し、インストール後に検出されるバッテリーがあればすぐ確認できる
- バッテリー残量のパーセンテージだけを得るために、次のコマンドを使う
acpi -b | grep -m1 -o -P '.{0,2}%'
-m1は1行だけ読むようにして、複数バッテリーを持つノートPCでもメインのバッテリーだけを扱う
-oは一致した部分だけを出力し、残り時間のような長い情報を除外する
-PはPerl互換正規表現を使う指定で、'.{0,2}%'は%とその直前の数字最大2桁を取得する
- この方法では
100%を表示できないが、そのノートPCはもうそこまで充電されないため、許容している
tmuxのステータスバー右側にある標準の時刻表示をバッテリー残量に置き換えるため、.tmux.confに次を追加する
# give me a battery readout instead of the time
set-window-option -g status-right "#(acpi -b | grep -m1 -o -P '.{0,2}%')"
-
lightで輝度を制御
light -U 10は輝度を10%下げ、light -A 10は輝度を10%上げる
- ノートPCのF8、F9キーに輝度表示があるため、それぞれを輝度の減少・増加にバインドした
# keybinding for brightness
bind -n F8 run-shell 'light -U 10' # decrease
bind -n F9 run-shell 'light -A 10' # increase
- 次回以降の
tmux実行からF8とF9で画面輝度を調整できる
-
追加のtmux設定
neovimが画面下部にステータスラインを置くため、tmuxのステータスバーはset -g status-position topで画面上部に配置した
- ステータスバーの背景色は
set -g status-style bg=greenで緑に設定した
- 最終的な
.tmux.confは次のとおり
# bar position and color
set -g status-position top
set -g status-style bg=green
# keybinding for brightness
bind -n F8 run-shell 'light -U 10' # decrease
bind -n F9 run-shell 'light -A 10' # increase
# give me a battery readout instead of the time
set-window-option -g status-right "#(acpi -b | grep -m1 -o -P '.{0,2}%')"
- 標準的な
tmux操作では、Ctrl-Bでコマンドモードに入った後、%で縦分割、"で横分割を実行する
Ctrl-Bの後に矢印キーを押すと、ウィンドウ間でフォーカスを移動できる
neovimとvimwikiの設定
emacs、helix、micro、nanoなど他のエディタも使えるが、この構成はvimユーザー向けにneovim中心で組んでいる
neovimには標準のカラーテーマが含まれており、:colorschemeオプションで試せる
- レトロな雰囲気に合わせて
blueカラーテーマを選び、.config/nvim/init.vimにcolorscheme blueを追加した
- 執筆向けに単語が次の行へ自然に折り返されるよう、
set linebreakも追加した
vimwikiはDebian Trixieでパッケージ提供されているので、プラグイン導入ではなくsudo apt install vim-vimwikiでインストールした
Syncthingで執筆フォルダーを同期
syncthingはSyncthing docsに従って設定した
- writerdeckの
vimwikiフォルダーをサーバー上のwritingフォルダーと接続し、このサーバーフォルダーはより私的なvimwiki構成内のサブディレクトリになっている
- この構成では、デスクトップの
vimwiki内にある機密性の高いノートはwriterdeckへ同期されない
- デバイスに暗号化があれば機密内容も同期できたかもしれないが、現状では公開可能な内容だけを置いている
vimwikiの日記にアクセスするため、後でパスワードベースのLUKS暗号化を設定する可能性もある
- ブラウザのある従来型デスクトップ環境がないため、
syncthingのWeb GUIは127.0.0.1だけでなくすべてのアドレスで待ち受けるよう設定した
- この方法は好みではないが、デバイス上に非公開情報がないので受け入れている
- より良い方法としてSOCKSプロキシを設定して接続するやり方もあるが、それは別の話題にしている
自動ログインと起動後すぐ書ける状態にする
- デバイスを開いた瞬間にすばやく書き始めるため、自動ログインを設定した
-
kmsconの自動ログイン
kmsconをインストールしているので、sudo systemctl edit kmsconvt@tty1.serviceでsystemdサービスを編集した
- 次の内容を追加する
[Service]
ExecStart=
ExecStart=/usr/bin/kmscon --login -- /bin/login -f my_username_goes_here
kmsconは--loginの後にある--以降のコマンドを実行し、ここでは/bin/login -fとユーザー名によって自動ログインする
-
起動後にtmuxとvimwikiを自動起動
kmsconでログインした後、標準ttyでのみtmuxが自動起動し、そのままvimwikiに入るようにする
.bashrcに次の条件文を追加する
# Launch tmux if we aren't already running tmux and we're in the default tty
if [ -z "${TMUX}" ] && [ $(tty) == "/dev/pts/0" ]; then
exec tmux new-session -d 'vim -c VimwikiIndex' \; attach
fi
- この条件文は、すでに
tmux内にいないことを確認して再帰実行を防ぐ
- 同時に最初の仮想ttyにいるかを確認し、条件に合えば
vim -c VimwikiIndexコマンドで新しいtmuxセッションを作ってそのセッションに接続する
vim -c VimwikiIndexにより、vimがVimwikiインデックスへ入る
使ってみての変化と次のステップ
- 約1週間、このwriterdeckでブログ記事、関連動画のスクリプト、進行中のほかの将来向けスクリプトを書いた
- 今後はスペルチェッカーを追加したり、古い486を使って作業スペースに「writerdeck terminal」を作る拡張も検討している
- 重要なのは、より多く書き、書いている間の気の散りを減らすこと
- ブラウザ、アプリ通知、音楽プレーヤーの次曲通知のような便利だが気を散らす要素が執筆を妨げる
- 技術選択をより意図的にし、ひとつのことを上手にこなすデバイスを使い、終わったら片づけておける形を求めている
- 何もかもがどこへでも付いてくる環境を避けたいなら、writerdeckは役に立つかもしれない
2件のコメント
Lobste.rs の意見
この投稿は気に入った。いつサポートが打ち切られるかわからない高価な作家向けハードウェアと違って、ただの X なし Linux なので、どんな安いノートPCでも使える
私たちは先延ばしの新しい方法を見つけたし、これからも見つけ続けるだろう。すべての作家に生まれつき与えられた権利だ
私が選んだのは、見た目は小説執筆用の Neovim プラグイン をいじったり、TUI インターネットラジオ ツール を作ったりすること
Syncthing の一部機能向けTUI: https://github.com/hertelukas/synctui
まだ DOS をネイティブで起動できるなら、代わりにこういうものを使えばいい:
https://github.com/lproven/usb-dos
これにも惹かれる。私も集中力に問題があり、TUI が好きだ
問題は、私が書くものはすべて調査が必要で、その調査にはウェブブラウザが必要だということ
いくつかの会社は、ウェブ検索 API と任意のウェブサイトを Markdown として読み込むエンドポイントをセットで提供している。LLM 向けだが、人間が使ってはいけない理由はない
次の段階は、neovim のウィンドウ管理と内蔵ターミナルを使って tmux をやめることだろう
うわあ、これは 2013 年に最初の MacBook 用に買った古いアプリ ommwriter をすぐに思い出させる
最近 Tauri で似たようなものを作ってみたが、キー入力に小さなポップ音やクリック音を付けたら、とてもよかった
以前 X の導入を我慢していたころを思い出す。X を使う「唯一の」理由がウェブ閲覧だったからだ。でも、いったい誰がウェブなんて使うんだ?
コレステロール検査を受けたほうがよさそうだ
Hacker Newsの意見
以前からこういう構成を試してみたかったが、LinuxのTTYが256色しかサポートしていないという点がなかなか乗り越えにくい
色数をもっと増やしてUnicode対応まで追加できるなら、TTY専用で生きてみたい
かっこいい構成で、よくできていると思う
ただ、「執筆に集中」するためにOSを最初から設定し、基本のネットワークスタックを入れ替え、好みのエディタの新しい亜種を入れ、バッテリー表示をカスタマイズし、ログイン手順をいじったうえで、気を散らさない執筆環境を完成させようと長々と頑張ったあとにtmuxを入れて同時に複数のことができるようにするのは、かなり皮肉だ
そのあとレビューのループが始まり、これが新しい時代の執筆作業だ
新しいダイエットを始めると言ってジムに入会したり、運動器具を大量に買い込んだりする典型的なパターンだ
それでも非難したくはない。自分がやってきたヤクの毛刈りの中には、長期的にかなり良い結果につながったものもある
工房用の治具やフレンチクリートばかり作り続ける大工や、どのキーボードとフォントを使うかに過剰にこだわるプログラマーのようなものだ
すでに慣れたツールがあるはずなのに、rsyncの代わりにsyncthingを使った選択が興味深い
一般の読者や視聴者のために、なぜrsyncが言及も議論もされなかったのかも気になる
この構成でさらに気になるのは、スリープ状態やその他ハードウェア周りの厄介ごとを抑えるために追加設定が必要だという点だった。それでも、土台がしっかりサポートされているLinuxマシンなら大いに助かる
ADHDの人がAdderallを飲んで、一日じゅう見当違いのことに過集中した話のように読める。自分にもそういうことはあった
このwriterdeckが複数のプロジェクトにわたって効果を出し続けるならいいが、2つごとにwriterdeckを作り直すのなら、ドーパミン報酬や自己妨害に近く見える。それ自体が悪いわけではないが、集中力の観点では純利益には見えない
何が正しくて何が間違った集中対象かを、私たちが判断することはできない
ただ、しばらくのあいだあまり働く必要がなかった時期には、こういうものにハマるのは本当に楽しかった。ある種の娯楽ではあったが、実際に仕事をするときにも役に立った
HNでよく見るパターンがある
「この問題を解決するためにシステム全体を一から作った」→「かっこいい解決策だけど、この単純な方法よりずっと手間が多くないか?」→「その通りだが、かっこいいプロジェクトだし、常に最も効率的である必要はない」と続く
どちらも正しい。複雑な解法は単純な解法よりはるかに手間がかかるし、たとえ実用性がなくても楽しみのためにプロジェクトをやるのは構わないし、この場合は実際の効用もある程度ある
期待が二つに分かれているように見える。プロジェクトをやりたくて薄い名目を口実にしている人もいれば、本当に問題を解きたいのに完璧主義と過剰設計にはまったり、より単純な解決策を知らなかったりする人もいる
この二種類が混ざり合ってHNのスレッドが回り続ける。後者の場合は、「もっと単純な方法がある」と教えてあげるのがとても役に立つことがある。実際に存在を知らなかったのかもしれないし、過剰設計にはまって望まない場所に閉じ込められていると気づくには、少し背中を押してもらう必要があるかもしれないからだ。自分も何度もそうだった
誰かは必ずメタに上がってパターン自体を語り、別の誰かは「白黒で割り切れる話ではない」と言い、下位スレッドは結論も洞察もないままぼんやりつぶやいて消えていく
個人的には、厳密に見れば無駄だが、もう少し寛大に見れば、より重要な個人的成熟過程の副作用である若気の至りのニッチな形だと思うようになった
すべてが白黒、ゼロサム、善悪に分かれるわけではない
複雑な設定なしで試してみたいなら、LinuxシステムではたいていCtrl+Alt+F3を押せばそのままTTYコンソールに入れる
戻るにはCtrl+Alt+F1またはCtrl+Alt+F2を押せばいい。F12まで複数のコンソールがある可能性も高い
原文のような、より気が散らないデスクトップを作りたいとき、昔はこれをよく使っていた
sudo systemctl set-default multi-user.targetを実行すればよいちなみに、自分のコンピュータの中にはグラフィックモードへ戻るのがCtrl+Alt+F2のものもあれば、Ctrl+Alt+F7のものもある
(menu-bar-mode -1)と(tool-bar-mode -1)を評価し、そのうえで全画面にすればいいこの用途に完璧な電子インク端末を心待ちにしている
Obsidianに合う執筆環境もあり、Royal Kludgeのメカニカルキーボードもあるが、次世代の電子インクだけを待っている
Boox One Note Maxは本当にあと一歩だったが、ほとんどすぐに販売終了になり、長くサポートされるようにも見えない
おすすめがあれば知りたい
評価は極端に割れている。長いバッテリー寿命、新しいパッチ以降は意外と速くなった電子インクの反応性、まともなキーボード、気が散る要素のなさから最高だと見る人もいる
一方で、しょせん電子インクで、実際にできることが少ない機器のわりに高すぎるのでひどいと見る人もいる
代替案や自作オプションはここで見られる: https://www.writerdeck.org/
文章を書くときに邪魔にならない程度に制限されていながら、基本的なファイル管理やSDカード/USB転送といった基本ワークフローはこなせる。これはFreewriteのような西洋のブティック系執筆デバイスが、以前はまともに対応していなかったか、そもそも対応していなかった部分だ
折りたたみキーボード付きの変わった電子インクPomeraでたくさん書いたことがあり、その後は電子インクではないがほぼ同じように動くDM250も買った。今では米国版も出ていて、おすすめできる
ここに書いてある: https://liza.io/portable-writing-setup-with-onyx-boox-palma/
13.3インチのタブレットはたいてい「Max」という名前が付く
参考までに、Note Maxは現在も販売中に見える: <https://shop.boox.com/products/notemax>
前世代の13.3インチタブレットであるMax Lumiを使ったことがあるが、解像度は少し低く、フロントライトがある。画面は非常に良いが、Android OSは全体として欠点だと思う
Framework 12インチまたは13インチノートPC向けの電子インクディスプレイオプションがあれば本当にいいのにと思う
A5サイズのノートPCで、ファスナー付きの革製ジャーナルケースに入る大きさ。2000年代初頭のHP JornadaやSony Vaioを知っていれば、だいたいあんなフォームファクタだ
画面の背面または外側カバーにソーラーパネルがあり、画面は電子インクで、OSはLinux Mint Debian Editionだといい
コンソールモード向けの「執筆ステーション」アプリとしては、
mc(Midnight Commander)やrangerがいい。ブログやナレッジベースのように、フォルダ内のテキストを編集するためのシンプルなGUIとして使える課題として感じているのは、A5サイズでHDMI入力を受けられる電子インク画面を見つけにくいこと、一般的なAndroidスマホを活用できたら良いがRaspberry Piも選択肢であること、そして結局のところ、バッテリー駆動でDebian Stableが動く最もシンプルな携帯機器が欲しいという点だ
それからA5サイズの小型キーボードも見つけられていない。たいていの小型キーボードは安っぽいプラスチック製のBluetoothおもちゃに見える
本気で一緒にやってみたい人がいるなら、ぜひ話してみたい。このノートPCに対する自分のビジョンはいつも「午前10時のテキサス州オースティン、直射日光の下のパティオバーに座って日記を書き、コードを書き、文章を書く」ことだった
その状況を満たすコンピュータ機器を見つけられていないので、明らかなニッチ市場がある
2026年という現在の地獄絵図を、人々がどうやって耐えているのか興味深い
奇妙なことに、いつも内面化へ向かうように見える。気が散らない方法で集中さえすれば、物理メディアをもっと買えば、ダムフォンとMP3プレーヤーで音楽を聴けば、今起きている解決不能な大混乱がsomehow解決するかのように振る舞うが、そんなものは人生を良くするうえで焼け石に水ですらない
この段階で潜在的に効果があるのは集団行動だけだ
現代技術の大半、少なくともインターネットの大半は、利益を搾り取るために最大限気が散るよう設計されているのだから、本当に重要なことをやるために時々そこから切り離されるのは理にかなった選択だ
その重要なことには、公共善のための仕事や集団的努力もいくらでも含まれうる
どうせ気が散らない環境を求めていただろう
自分は確実にそっち側だ :)
目の前の一つのことだけに集中するのは、かなり瞑想的だ
そのために必ずしも集団行動が必要なわけではない
ただ、先に挙げたものも、一人で耐えようとする問題を一緒に解こうとする人たちの共同体へ入っていく経路になりうる
たとえば最近の台湾で状況を注視している人たちは、インターネットが脆弱だという感覚を持って解決策を探し始めている。多くの人がreticulumやmeshtasticにたどり着き、少しいじったあとでLora無線機のようなものを買ったりもする
ちょうど今週末g0v summitが開かれ、このテーマに関する発表やブースがたくさんある。昨日発表に参加したりブースを訪ねたりした人のかなりの数は、まったく新しく入ってきた人たちだった
しかし今や彼らは、街の木のてっぺんにソーラーLora無線機を結びつけて回ってきた人たちとつながる場面の中にいる
オフライン音楽にハマれば、良い音質の音楽を探すうちにsoulseekのコミュニティに出会い、中古のダムフォン機材を改造しようとして改造コミュニティに入っていくこともある
そこから自由・オープンソースソフトウェア、オープンハードウェア、反知的財産権のシーン、「four thieves vinegar collective」のような方向へつながることもある。道筋はいくらでもある
この文章を見て、この数か月ずっと考えていた構成を思い出した。コンピュータを二つのモードに分けるというものだ
一つはデスクトップOSですべてを使える業務モード、もう一つは時間の無駄ではないと自分が考える基本機能だけを持つコンソール専用の個人モードだ
たとえば電子書籍リーダー、天気予報、次のスポーツ予定、1日1本のテレビ番組、電卓、カレンダー、タイマーといったものだ
非常に設定自由度の高いawesomewmウィンドウマネージャを使っているので、この切り替えを実装し、曜日や勤務日の時間帯に応じてある程度ロックするのは難しくなさそうだ
付け加えると、実際には純粋なコンソール専用というより、https://github.com/giomatfois62/rofi-desktop のようなrofi-desktopベースのメニュー専用モードに近いだろう。とてもミニマルで使いやすい形だ
WindowsとLinuxを行き来して使っているので、Win10/11向けのFancyWMを見つけたが、似たようなことができそうだ。もちろんWindowsではマウスを使う必要があるが
かなり長いあいだ、本当にいろいろな機器で文章を書いてきたが、今の主力はiPadとキーボードだ
時にはAppleのSmart Keyboardのようなものを使い、最近は関節が年齢とともに敏感になってきたので変化をつけるためにBluetoothのLogiキーボードもよく使っている
昔のタイプライターが恋しくなることもある。Selectric時代よりも、バランスの良い手動タイプライターの機械的な感触のほうが懐かしい
それでも、携帯機器で全画面のvimセッションが放つ琥珀色の輝きには語るべきものがある
本当に欲しいのは、太陽光で動くwriterdeck、つまり100%オフグリッドで永遠に動き続ける機器だ。昔のタイプライターのように