TabsFS でブラウザのタブをファイルシステムのように扱う
こんにちは。
今回は、ちょっと面白いものを発見したのでそちらを紹介したいと思います。
その名も TabFS.
これ、まぁタイトルにも書いてありますがブラウザのタブをファイルシステムかのように扱うことができるようになる chrome/firefox の extension です。
いまいちピンときていないと思いますが、ファイルシステムのように扱えるということは、ディレクトリをいじるターミナルコマンドや script を同じように適用できる、ということです。
例えば、今開いてる全てのタブの名前を確認したり、
Stack Overflow とつくタブだけ全消ししたり、
まぁ、ターミナルでできるファイル処理は全て通用するので、できることは無限大でしょう。
特に便利なのは、ブラウザ extension を開発している際、 extension に変更を加える度リロードする必要があるのですが、こいつを使えば shell script で自動化可能なので、変更したら script を叩くだけ、と超効率的に開発ができるみたいですね。
しかも、開いているタブのテキストはそれぞれのファイルの中の text.txt
に全て入っているので、全タブの全テキストを摘出して別ファイルに吐き出すことだってできちゃいます。
ちなみに、インストールなどをする前にこれは実験的なものであり(ファイルシステムとブラウザのコミュニケーションを可能にする荒技)、セキュリティー面とかは保証できないらしいので、やるなら自己責任で。
インストール方法
git clone https://github.com/osnr/TabFS.git
1. 2. ブラウザに extension をインストール
- chrome の場合
developer mode をオンにして、extensions/
ディレクトリを load unpacked する。ここで ID をメモしておく
- firefox の場合
temporary extension としてインストールして、Load Temporary Add-on...
でmanifest.json
を指定する
3. C filesystem のインストール
まず、 FUSE と FUSE headers がインストールされているのを確認。 Linux の場合は sudo apt install libfuse-dev
、 macOS なら FUSE for macOS をインストールしよう。
4. C filesystem のコンパイル
$ cd TabFS/fs
$ mkdir mnt
$ make
なんか自分はこのまま make
をすると
ld: library not found for -losxfuse
というエラーが出て、 makefile の
ifeq ($(shell uname -s),Darwin)
CFLAGS = -I$(OSXFUSE_ROOT)/include/osxfuse/fuse -L$(OSXFUSE_ROOT)/lib -D_DARWIN_USE_64_BIT_INODE $(CFLAGS_EXTRA)
LIBS = -losxfuse
endif
の include/osxfuse/fuse
-losxfuse
を調べたら無くて代わりに fuse
があったので osx
を両方から消したら通りました
ルートディレクトリの ./install.sh を実行
先ほどメモった extension ID をこんな風に
./install.sh chrome jimpolemfaeckpjijgapgkmolankohgj
# or
./install.sh chromium jimpolemfaeckpjijgapgkmolankohgj
# firefox
./install.sh firefox
これで終わりです。あとは extensions 画面で TabsFS をリロードすると、あなたのブラウザのタブは fs/mnt
にファイルとして置いてあるはずです。
なんかブラウザとコンピュータの壁が壊された感あってワクワクですね!また良い使い道があれば記事にしたいと思います!
Discussion