仕事を便利にChrome/Edgeのスマートタブ管理拡張機能
デュアルモニターで作業効率を倍増!シンプルな活用方法とは?
デュアルモニターの魔法を体験したことはありますか?
最近、自分の作業環境をアップデートしてデュアルモニターを導入してみました。正直、最初は「そこまで変わるの?」という疑問がありましたが、一度使ってみるとその快適さに驚かされました。今更感はありますが。。
1つのモニターで作業をしていると、どうしてもウィンドウの切り替えが面倒。調べ物をしながら、別のタスクに移るたびに集中が途切れてしまいます。でも、デュアルモニターにすると、片方で資料を開きながら、もう片方でメインの作業ができて便利。
どんな人におすすめ?
クリエイティブ系の仕事をしている人: デザインや動画編集の際に、参考資料を常に見ながら作業できるのは大きな利点です。
エンジニア: コーディングしながら、別のモニターでプレビューやデバッグツールを表示することで、効率が大幅にアップします。
どんな環境で使っている?
私の場合、メインのモニターには27インチのフルHDディスプレイを使用し、サブモニターには24インチのモニターを配置。大きすぎず、デスクスペースも十分に確保できるサイズ感が気に入っています。これなら、長時間の作業でも疲れにくいです。
結論としては、デュアルモニターは生産性を格段に上げてくれる素晴らしいツールです。特に、複数のタスクを同時にこなす必要がある方には、ぜひ一度試してみる価値がありますよ。
タブを管理する新しい方法 – スマートタブ拡張機能が便利すぎる!
Chrome/Edgeユーザー必見!
「仕事中に大量のタブを開いてしまって、どれがどれだか分からなくなってしまう...」という経験とか、毎回開くタブ群、カテゴリ別のタブなどを管理できたら楽かなぁと思っていました。せっかく拡張機能を自分で作れるようになったので、スマートタブというChrome/Edgeの拡張機能を作ってみました。
この拡張機能の特徴は、開いているタブを簡単に保存して後から復元できること。たとえば、調べ物をしている時に、別の仕事が入ってきた場合、そのタブをそのまま保存して、後でまとめて復元することが可能です。電源切っていても大丈夫です。いやもうあるとは思うのですが。。
使い方は簡単!
タブを保存: 開いているタブを「プロジェクトA」や「リサーチ」など、カスタム名を付けて保存します。
タブの復元: 後でそのタブセットを開けば、すぐに作業を再開できる。
実際に使ってみて感じたこと
仕事が複数のプロジェクトにまたがると、どうしてもタブが増えてしまうんですよね。以前は、必要なタブを再度開き直す手間がストレスでしたが、スマートタブを使い始めてからはその手間が激減しました。一定時間たつと使っていないタブを落としてPCを軽くする機能も実装したのですが、あとから探すケースも多かったのでこの機能は排除しました。。
こんな人におすすめ!
リサーチが多い人: 調べ物をしているとタブがどんどん増えていくので、それを整理するのに最適。
複数のプロジェクトを同時進行している人: それぞれのプロジェクトごとにタブセットを作っておけば、簡単に切り替えができます。
各種ファイル
manifest.json
説明:
{
"manifest_version": 3,
"name": "スマート管理ツール",
"version": "1.1",
"description": "タブのスマート管理機能",
"permissions": ["tabs", "storage"],
"action": {
"default_popup": "popup.html",
"default_icon": {
"16": "icon.png",
"48": "icon.png",
"128": "icon.png"
}
},
"icons": {
"16": "icon.png",
"48": "icon.png",
"128": "icon.png"
},
"background": {
"service_worker": "background.js"
}
}
manifest.jsonは、Chrome拡張機能の設定ファイルです。
必要な権限 (tabs, storage)を定義しています。
popup.htmlをデフォルトのUIに設定し、background.jsをバックグラウンドスクリプトとして設定しています。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>スマートタブ管理ツール</title>
<style>
body { font-family: Arial, sans-serif; width: 300px; padding: 10px; }
button { padding: 10px; margin: 5px; width: 100%; }
</style>
</head>
<body>
<h3>スマートタブ管理ツール</h3>
<input type="text" id="sessionName" placeholder="セッション名を入力" />
<button id="saveSessionBtn">セッションを保存</button>
<button id="restoreSessionBtn">セッションを復元</button>
<script src="popup.js"></script>
</body>
</html>
説明:
popup.htmlは、拡張機能のポップアップUIです。
「Session Name」入力フィールドと「Save」「Restore」ボタンを提供します。
popup.jsでUIの操作を処理しています。
document.getElementById('saveSessionBtn').addEventListener('click', () => {
const sessionName = document.getElementById('sessionName').value.trim();
if (sessionName) {
console.log('セッション名「' + sessionName + '」を保存します。');
chrome.runtime.sendMessage({ action: 'saveSession', sessionName });
} else {
alert('セッション名を入力してください。');
}
});
document.getElementById('restoreSessionBtn').addEventListener('click', () => {
const sessionName = document.getElementById('sessionName').value.trim();
if (sessionName) {
console.log('セッション名「' + sessionName + '」を復元します。');
chrome.runtime.sendMessage({ action: 'restoreSession', sessionName });
} else {
alert('セッション名を入力してください。');
}
});
// セッション保存完了後のメッセージ表示
chrome.runtime.onMessage.addListener((message) => {
if (message.action === 'sessionSaved') {
alert('現在開いているタブを保存しました');
}
});
説明:
popup.jsは、ポップアップUIでユーザー操作を処理します。
「Save Session」ボタンがクリックされると、saveSessionメッセージをバックグラウンドスクリプトに送信します。
「Restore Session」ボタンがクリックされると、restoreSessionメッセージをバックグラウンドスクリプトに送信します。
// セッションを保存する関数
function saveSession(sessionName) {
chrome.tabs.query({}, (tabs) => {
const tabUrls = tabs.map(tab => tab.url); // タブのURLリストを取得
chrome.storage.local.set({ [sessionName]: tabUrls }, () => {
console.log('セッション名「' + sessionName + '」が保存されました。URLリスト:', tabUrls);
// セッション保存後にメッセージを表示
chrome.runtime.sendMessage({ action: 'sessionSaved' });
});
});
}
// セッションを復元する関数
function restoreSession(sessionName) {
chrome.storage.local.get([sessionName], (result) => {
const tabUrls = result[sessionName];
if (tabUrls && tabUrls.length > 0) {
console.log('セッションを復元しています: URLリスト', tabUrls);
tabUrls.forEach(url => {
chrome.tabs.create({ url }, (tab) => {
console.log('URL: ' + url + ' のタブが復元されました。');
});
});
} else {
console.log('「' + sessionName + '」という名前のセッションが見つかりませんでした、またはセッションが空です。');
alert('「' + sessionName + '」という名前のセッションが見つかりませんでした、またはセッションが空です。');
}
});
}
// メッセージを受け取ってセッション操作を実行
chrome.runtime.onMessage.addListener((message) => {
if (message.action === 'saveSession') {
console.log('セッション「' + message.sessionName + '」を保存するメッセージを受信しました。');
saveSession(message.sessionName);
} else if (message.action === 'restoreSession') {
console.log('セッション「' + message.sessionName + '」を復元するメッセージを受信しました。');
restoreSession(message.sessionName);
}
});