MyScriptsを使ってエディタを自作してみる方法 DarkRoom

書くことに集中できるOSX用フルスクリーン・エディタ OmmWriter - W&R : Jazzと読書の日々
なるほど、これは絶賛されるだけのことはある。立ち上げると、全画面が壁紙になり、字を書くことだけに没頭できる。パソコンが文章を書くだけのツールに変わる。確かに、普通のエディタだとデスクトップが気になった...
OSXで使ってるフルスクリーン・エディタ。全画面が一つのアプリになると、こんなに集中しやすくなるとは思わなかった。iPadでも同じことがしてみたい。
iOSはそもそも一つのアプリしか画面にないわけですけど、ちょっと違うのです。ただ、文字だけが浮かぶ空間。そうしたフェティシズムを求めるとピタリと来るものがない。PlainTextやWriteRoomがイメージに近いけれど、ファイル名は要らないじゃないですか。タイトルバーやツールバーさえ省きたい。Bluetoothキーボードのとき、最下段までテキストが来るのも見づらいと思う。なぜ途中で止まるようにしてくれないのか。
・・・ここまでワガママ言うなら、自作するしかない。


MyScripts LE 2.1
カテゴリ:仕事効率化,ユーティリティ
価格:無料 (Unit Kay)
とはいえ、一から作れるはずもありません。時間もないし知識もない。気軽にアプリが自作できるとしたらMyScripts。アイデアだけでゴリ押しできる凄いヤツ。
MyScriptsのまとめサイトでスクリプトを借りてみる



それで作ってみたのがDarkRoom。実質20行に満たないスクリプトです。HTMLのtextareaをそのまま転用しただけなのに、集中力が引き出されます。特に外部キーボードを使うと書きやすくなると思う。なんだかこの色合いにすると、V-Textモードで使っていたDOSのエディタを思い出してしまう。
登録用リンクはこちら→ http://tinyurl.com/9mh8fka



あるのはテキスト領域のみ。左右のスワイプでカーソル移動するギミックも付けてみました。二本指でスワイプするとDraftPadにテキストを転送します(これは、下記のカスタマイズで別のアプリにもできます)。


DraftPad 1.5.6
カテゴリ:仕事効率化,ユーティリティ
価格:無料 (Manabu Ueno)
URLスキームで呼び出せます。DraftPadで下記アシストを使えば、そのままDarkRoomに反映する。つまり、二つのエディタを行ったり来たりできます。これ、推敲に使うと、自分と対話してるみたいになる。不思議な気分。

Title: DarkRoomに入室
URL: myscripts://run?title=DarkRoom&text=<@@>

DraftPad用MyClipをJQueryMobileに書き換えてみた



細かなカスタマイズもできます。文字色や背景色を指定。二本指でスワイプしたときの動作(scheme)も設定できる。テキスト領域や行間の幅にも対応してます。

// フルスクリーン・エディタ DarkRoom
// 下記項目をカスタマイズしてください

scheme    = "draftpad://insert?text=";
textcolor   = "#0c0";
backcolor = "#000";
// fonttype = "Hiragino Kaku Gothic ProN"
fonttype    = "Hiragino Mincho ProN"
fontsize    = "20px/120%";
areawidth = "86%";
areaheight= "86%";
lineheight = "1.4";

// プログラムの本体

IS_HTML=true;
"<body bgcolor="+backcolor+"><form align=center><textarea id='textedit' style='background:"+backcolor+";border-color:"+backcolor+";width:"+areawidth+";height:"+areaheight+";font:"+fontsize+" "+fonttype+";color:"+textcolor+";line-height:"+lineheight+";'>"+TEXT.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")+"</textarea></form><script>var x;document.addEventListener('touchstart',touchStart);document.addEventListener('touchend',touchEnd);document.addEventListener('gesturechange',sendText);function touchStart(e){t=e.touches[0];x=t.screenX;}function touchEnd(e){t=e.changedTouches[0];s=document.getElementById('textedit');if(t.screenX-x>8){s.setSelectionRange(s.selectionEnd+1,s.selectionEnd+1);}if(t.screenX-x<-8){s.setSelectionRange(s.selectionStart-1,s.selectionStart-1);}}function sendText(e){s=document.getElementById('textedit').value;location.href='"+scheme+"'+encodeURIComponent(s);};</script></body>"

MyShortcutsと組み合わせると、他のエディタで全文コピーした分も取り込めるし。



個人でアプリを作るとなると敷居が高い。けれど、MyScriptsは違います。ブックマークレット感覚でアプリが自作できる。JavaScriptとHTMLタグの組み合わせで、小回りの利くツール類を作り出せます。出来ないことに気づいた人だけが、それを出来るようにする力を持つ。それがプログラミングの面白さです。まず、このエディタのカスタマイズから始めるのはどうでしょう? 楽しいですよ。


(追記)

Dark Room | they.misled.us
Dark Room is a full screen, distraction free, writing environment. Unlike standard word processors t...
おおっと、Windowsフリーソフトで「Dark Room」というのがありました。プレビュー画面を見ると、うちのとそっくりです・・・。じゃないですね、どこかでこれを見て、それが記憶に残っていたらしい。でもまあ、名前は気に入ってるので(写真を現像する「暗室」という意味です)、とりあえずはこのままで行きます。DarkとRoomの間にスペースのない「DarkRoom」ということで。
それと、このスクリプトから縦書きエディタが作れると、確かに面白そう。考えてみます。
とりあえずMyScriptsで縦書きエディタに挑戦してみた DarkRoom