MyScriptsを使ってエディタを自作してみる方法 DarkRoom
書くことに集中できるOSX用フルスクリーン・エディタ OmmWriter - W&R : Jazzと読書の日々OSXで使ってるフルスクリーン・エディタ。全画面が一つのアプリになると、こんなに集中しやすくなるとは思わなかった。iPadでも同じことがしてみたい。
なるほど、これは絶賛されるだけのことはある。立ち上げると、全画面が壁紙になり、字を書くことだけに没頭できる。パソコンが文章を書くだけのツールに変わる。確かに、普通のエディタだとデスクトップが気になった...
iOSはそもそも一つのアプリしか画面にないわけですけど、ちょっと違うのです。ただ、文字だけが浮かぶ空間。そうしたフェティシズムを求めるとピタリと来るものがない。PlainTextやWriteRoomがイメージに近いけれど、ファイル名は要らないじゃないですか。タイトルバーやツールバーさえ省きたい。Bluetoothキーボードのとき、最下段までテキストが来るのも見づらいと思う。なぜ途中で止まるようにしてくれないのか。
・・・ここまでワガママ言うなら、自作するしかない。
とはいえ、一から作れるはずもありません。時間もないし知識もない。気軽にアプリが自作できるとしたらMyScripts。アイデアだけでゴリ押しできる凄いヤツ。
MyScriptsのまとめサイトでスクリプトを借りてみる
それで作ってみたのがDarkRoom。実質20行に満たないスクリプトです。HTMLのtextareaをそのまま転用しただけなのに、集中力が引き出されます。特に外部キーボードを使うと書きやすくなると思う。なんだかこの色合いにすると、V-Textモードで使っていたDOSのエディタを思い出してしまう。
登録用リンクはこちら→ http://tinyurl.com/9mh8fka
あるのはテキスト領域のみ。左右のスワイプでカーソル移動するギミックも付けてみました。二本指でスワイプするとDraftPadにテキストを転送します(これは、下記のカスタマイズで別のアプリにもできます)。
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,"&").replace(/</g,"<").replace(/>/g,">")+"</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おおっと、Windowsのフリーソフトで「Dark Room」というのがありました。プレビュー画面を見ると、うちのとそっくりです・・・。じゃないですね、どこかでこれを見て、それが記憶に残っていたらしい。でもまあ、名前は気に入ってるので(写真を現像する「暗室」という意味です)、とりあえずはこのままで行きます。DarkとRoomの間にスペースのない「DarkRoom」ということで。
Dark Room is a full screen, distraction free, writing environment. Unlike standard word processors t...
それと、このスクリプトから縦書きエディタが作れると、確かに面白そう。考えてみます。
とりあえずMyScriptsで縦書きエディタに挑戦してみた DarkRoom