メモ2ブログ

メモtoウェブログ。旧ブログはこちら。 http://sakebook.blogspot.jp/

ブラウザのタブを整理する拡張「Idle Tab」を作った

とても久しぶりの更新です。3年半ぶり。

以前から欲しかったChrome拡張を作りました。

「Idle Tab」というものです。

chromewebstore.google.com

背景

私はChromeのタブを、開きっぱにすることが多いです。そのせいで、タブの数は100を超えます。

多くなりすぎると、別WindowでChromeを開くような使い方をしています。

どうしてこうなっているかというと、作業中のタブを残しておき、そのポジションなどで情報整理というか区別をしているからです。伝わるかわかりませんが、机の上に物が置いてあるが、「この位置にこれあったよな」とか、「これはこの位置に置いておこう」といったような整理の仕方をしているイメージです。

なので、どんどん開いているタブが増えていってしまい、faviconも見えなくなります。そうなると、もう問題です。流石に視覚情報もなくなり、わからなくなってしまいます。

それを緩和してくれたのが、Chromeのタブのグループ機能でした。

まさに、ポジションで覚えていたものを、グループ化してまとめることでよりわかりやすくなり、他のタブを開く余裕をもたらしてくれました。

しかしお気づきの通り、それも一時的なもので、すぐに上限に来てしまいます。

なので、否が応でもタブの整理をすることが必要でした。

解決したかったこと

複数のWindowと、複数のグループ、孤立したタブがある中で、閉じても良いタブを探し出して閉じることはなかなかハードでした。なので、一定時間操作していないタブをサジェストしてもらって、自分で判断して閉じるということを簡単にしてもらいました。

特徴

似たようなものは探せばあると思うのですが、Idle Tabでは3つ押さえておきたい機能がありました。

非アクティブなタブを全自動で処理しない

タブの整理だけを考えれば、全部自動でまとめてくれるのが良いのですが、それをされてしまうと私の使い方だと、「あのタブこの位置にあったはずなのにどこいった?」ということが起きてしまいます。

なので、全部自動ではまとめないが、まとめるサポートをしてもらいたいという、手動と自動の中間のような立ち位置のものです。

一定時間経過と、開いた時間が似ているものをまとめて処理できるダッシュボードを用意しました。

いちいちタブを移動したり、2つのボタンを押下して手に負担を与えたくない

閉じるタブを探しに行ったり、ctrl + shift + { or }で移動したり、ctrl+cで閉じるのを繰り返すのも、同じ作業を繰り返すと結構負荷になります。

ダッシュボードを作成し、そこに対象のタブをまとめてもらうようにしました。そこでは、ショートカットキーを設定し、タブの仕分けによく行う操作を簡単に行えるようにしました。

  • s(snooze): 仕分け対象から一時的に除外
  • c(close): 閉じる
  • i(ignore): 仕分け対象から永続的に除外
  • g(group): グループ化候補に入れる
  • v(view): 直接タブを見に行く
  • r(reload): 更新

グループ機能も活用する

Chromeのグループ機能は、大量の作業中タブに対する公式の緩和策ではあるので、活用したいと思ってました。

他の拡張でも解決するかもしれませんが、グループ化や既存のグループへの追加を行いやすくする機能もIdle Tabには入れています。

作ってみて

Chrome拡張をストアに公開するのはお金がかかるので、個人で使う分にはしなくてもよかったのですが、同じような悩みを抱えていた人が使ってくれると嬉しいなと思い、公開しました。

作成や公開にあたり、AIのサポートがあったので自分が知らない領域でも何かしらのアウトプットを出せるようになって楽しいです。

まだまだこうなるといいなと思うところはあるので、細々と更新していこうと思ってます。

chromewebstore.google.com

2022年を振り返って

毎度年を跨いでからになってます。

目標とか

英語

細々と続けています。周りでもDuolingoを始めている人が増えてきていてちょっと嬉しいです。

割とDuolingoのファンなので、イベントにも参加しました。

アウトプット

草の生え具合でお察しですが、ほぼないです。pub-devの自前ホスティングを試みたり、pubコマンドに機能追加のPRを投げたりしました(大型リリースに含まれてて結果的に取り込まれなかった)。

やったことないこと

Duolingoで韓国語も学び始めました。これもあって英語の方でテストを受ける予定が、分散してしまいました。

セルフマネジメント

Toggl Trackで時間を測ってみるのは、継続できました。

Togglの積み上げ

初めは結構細かくやってたのですが、やはりそれは難しく、今は荒いです。

「やるぞ!」ってなるときはきちんと測れるのですが、そうじゃなく流れで色々やっちゃう時が多く、完璧にするのは現実的ではないです。具体的には、「俺は今からTwitterを見る」なんて強い意識を持って見るなんてことはそうそうないという感じです。ちなみに9月がやたら多いのはスプラトゥーンです。

実際は全てにおいてもっと時間を使ってますが、こう可視化できるのはやっぱり面白いですね。貼ったのはキャプチャですが、CSVやPDFでのアウトプットにも対応しています。

やったこと

仕事ではコードを書かなくなりました。スクラムマスターとして日々働いています。

チームの生産性を上げることが自分の関心ごとになってます。上げるためにはまずは現状を知るというところで、DORA Metricsというのを知りました。これに関して今年のうちにちょっとしたアウトプットを出したいと画策しています。

cloud.google.com

趣味とかその他

同棲

2021年末の引っ越しのタイミングから同棲しています。これによって時間の使い方が大きく変わりました。

ご飯ももちろん一緒に食べたり休日も一緒に過ごしたりなどで、自分1人で使う時間が減っています。もともと不健康な生活で体重が落ちていたところ、健康的な生活を過ごしたことによりブクブク太ってしまいました。

お腹周りでかなりの危機感を覚えたので、今年からは再びジムという強制力を効かせて身を引き締めていきたいです。

家族写真

両親が、結婚45周年でサファイア婚にあたるというのを小耳に挟みました。何かできないかと考えたところ、家族の集合写真というのをほとんど撮ったことがなかったので、写真スタジオに依頼して家族写真を撮影しました。

参加した人にとってかけがえのない思い出と、記録が残せたと実感しました。興味を持ったのなら、お勧めします。

www.instagram.com

コーヒー

以前に増してたくさん飲むようになりました。1週間に500gくらい消費してます。

浅煎りが好きで、都内外のロースタリーに足を運んで豆を買っています。

途中から記録し始めたのでまだ少ないのですが、豆のフレーバーなども記録をつけていくようにしていて、調べながら記録をしていくと共通点など思わぬ発見などがあって面白いです。

クレーンゲーム

ちょっとハマってぬいぐるみを集めてます。マイクラが好きなので、そればかりをとってます。ヒカキンのソファーくらい育てたい。

スヌーピーを被ったアレックスが可愛い

2023年

意識していきたいことなどを書き残します。

健康

右肩上りの体重と脂肪と対決します。以前オーダーメイドで作成したジーンズのボタンが最近めちゃくちゃきついので、少なくともそれを今までと同じように履けるのを目指したいです。

市場価値

コードを書かないようになって、アウトプットも減りました。今の自分がやっていることが他でも価値を生むことができるのかがわからないので、意識したインプットとアウトプットをしたいと思います。

HomebrewをM1Macに移行する

最近メインPCをM1 Macに移行しました。移行アシスタントで移行しました。

support.apple.com

その関係で、M1 Macで正しく動かせないものなどがあります。

Homebrewもその一つでした。

そのまま実行すると次のようなエラーになります。

Error: Cannot install in Homebrew on ARM processor in Intel default prefix (/usr/local)!
Please create a new installation in /opt/homebrew using one of the
"Alternative Installs" from:
  https://docs.brew.sh/Installation
You can migrate your previously installed formula list with:
  brew bundle dump

したがって次のコマンドを実行します。

$ brew bundle dump

このコマンドは現在Homebrewで管理してるパッケージがまとまったBrewfileが生成されます。

その後、Homebrewをインストールスクリプトで入れ直します。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

入れ直したら、pathを設定します。これはインストールスクリプトのアウトプットにあるのでそれをそのまま使ってください。次のような感じです。

- Run these two commands in your terminal to add Homebrew to your PATH:
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/YOUR_NAME/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"

その後、Brewfileを指定してbundle installしてください

$ brew bundle install --file YOUR_BREWFILE_PATH

これで現在はHomebrewが2つ入っていることになります。

古いHomebrewを削除します。

古い方は /usr/local

新しい方は /opt/homebrew

に設置されてますが、適宜自身の環境で読み替えてください。

アンインストールスクリプトがあるので、それを実行します。

注意する点は、そのまま実行すると先ほどインストールしたHomebrewがアンインストールされるので、path引数に古い方のHomebrewのpathを指定します。

また、curlで読み込みつつ引数を渡すために -- を間に引数として渡します。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" -- --path=/usr/local

最後に

$ brew doctor

を実行して、うまく結びついていないものなどがあれば適宜出力に基づいて修正してください。

以上です。

参考

The Missing Package Manager for macOS (or Linux) — Homebrew

homebrew - Migrate home-brew back from M1 to Intel - Ask Different

curlでbashスクリプトを実行して引数も与える - ls [internet]