外付けキーボードで使っているとき、ホーム画面をどう呼び出せばいいかな、となったので考えてみました。
Room
ファイル履歴をカード風に表示します。 カードをタップするとそのファイルが開く仕組み。 これをホーム画面に使っています。
Dataviewプラグインで動きます。
>[!note]- Room >```dataview >task where !completed group by file.link >``` ```dataviewjs const s = "background:ivory;width:119px;height:112px;border:1px solid #eee;border-top:10px solid gold;text-decoration:none;padding:3px;border-radius:5px;margin:3px;overflow:hidden;float:left;" const ss = "border-top:10px solid orange;" const p = dv.el("input") p.placeholder = "..." p.style = "background:whitesmoke;font-size:large;width:50%;border-radius:5px;border:1px silver solid;" const btn = dv.el("button","+") btn.style = "background:none;font-size:small;margin:5px;width:20px;" const b = dv.el("div", "") b.style = "font-size:small;height:4000px;" disp() p.onkeyup = () => disp() btn.onclick = () => open("obsidian://new") function disp(){ r = new RegExp(`${p.value}`, "i") const c = dv.pages('').file .filter(x => x.starred) .filter(x => r.test(x.name)) .sort(x => x.mtime, "desc") .map(x => `<a class=internal-link style='${s}${ss}' href='${x.path}'>${x.name}</a>`) const d = dv.array(Object.entries(dv.app.metadataCache.fileCache)) .filter(([x,y]) => r.test(x)) .sort(([x,y]) => y.mtime, "desc") .limit(200) .map(([x,y]) => `<a class=internal-link style='${s}' href='${x}'>${x.split("/").pop().replace(".md","")}</a>`) b.innerHTML = c.join("") + d.join("") } ```
変更点
タスクリストをCallOutとして別設計にしました。 不要であればこの部分は削ってください。 ただのバナーに替えてもらっても結構です。
キーワード作成は外しました。 あまり使わなかったからです。 キーワードは意識して作った方がいい。
勝手にキーワードページが作られることで、後で整理が必要になり、整理を考えると面倒なので使用を控えてしまった。 これでは本末転倒です。 あまり自動的に作成するものではないと思いました。
タブの切り替え
禅々モードで使っているとタブが消えます。 するとRoomを開きにくい。 何かコマンドを作ろうかと考えましたが、いや、不要でした。
タブの切り替えは[Cmd]+[1]ですね。 数字で切り替える。 Roomを最初のページにピン留めしておけば[Cmd]+[1]で開くことができます。
タイプライターモードだとRoomの表示も下方に偏ります。 リーディングビューにすると通常の表示に戻ります。 こちらでお使いください。
まとめ
リーディングビューだと[TAB]キーで検索欄にカーソルが移動します。 画面をタップしなくていい。 まるであつらえてあるかのような仕様。
おまけ
ただで読めるカレー沢先生のエッセイ。 太っ腹だ。
しかしハーフプライサー同好会はこの問題とどう向き合えばいいのか。 死活問題である。 AIもまた余計なことをしてくれる。