ScreenSwitch 是一个本地 Chrome 扩展,用来把正在看的 B站或 YouTube 视频窗口快速切到另一块屏幕,并尽量触发播放器自己的全屏功能。
推荐安装:V3。本仓库只发布 V3 稳定版。
V3 的默认行为适合普通双屏用户:不移动网页标签页,而是交换或移动整个 Chrome 窗口;自动尝试播放器全屏;不申请 Chrome 调试器权限;自动全屏失败时只显示通知提醒。
- 你有两块或更多显示器。
- 你经常在 B站或 YouTube 看视频。
- 你想把当前视频窗口一键放到另一块屏幕。
- 你不想每次手动拖窗口、调大小、点全屏。
如果你只有一块屏幕,这个扩展的主要功能用不上。
首次安装 V3 后,不需要配置也可以直接用:
| 设置项 | 默认值 | 含义 |
|---|---|---|
| 触发网址 | bilibili.com、youtube.com |
只有网址里包含这些关键词才会触发 |
| 切屏方式 | 交换或移动当前 Chrome 窗口 | 不会默认把当前标签页拆到别的窗口 |
| 窗口大小 | 铺满目标屏幕工作区 | 不是系统全屏,只是调整窗口位置和大小 |
| 播放器全屏 | 开启 | 切屏后尝试点击 B站/YouTube 自己的全屏按钮或发送播放器快捷键 |
| 调试器增强点击 | 不使用 | 不申请 debugger 权限,不模拟系统级双击 |
| 屏幕选择 | 自动 | 默认找另一块屏幕,不绑定你的本地屏幕编号 |
| 设置页语言 | 中文,可切换英文 | 扩展设置页右上角可切换中英文 |
推荐使用 Release 包:
- 打开 GitHub 页面右侧的 “Releases”。
- 下载
ScreenSwitch-v3.0.0.zip。 - 解压这个 zip 文件。
- 打开 Chrome。
- 在地址栏输入
chrome://extensions并回车。 - 打开右上角的“开发者模式”。
- 点击“加载已解压的扩展程序”。
- 选择刚刚解压出来的文件夹。
- Chrome 工具栏出现 ScreenSwitch 图标后,安装完成。
也可以从源码安装:
- 打开 Chrome。
- 在地址栏输入
chrome://extensions并回车。 - 打开右上角的“开发者模式”。
- 点击“加载已解压的扩展程序”。
- 选择这个项目里的
V3文件夹。 - Chrome 工具栏出现 ScreenSwitch 图标后,安装完成。
安装后建议把扩展图标固定在工具栏,这样点击更方便。
打开 B站或 YouTube 视频页面后,有两种触发方式:
- 点击 Chrome 工具栏里的 ScreenSwitch 图标。
- 使用快捷键:
- macOS:
Command+Shift+U - Windows/Linux:
Ctrl+Shift+U
- macOS:
如果快捷键和别的软件冲突,可以在 chrome://extensions/shortcuts 里修改。
把视频从主屏移到副屏
你在主屏打开 B站视频,副屏空着。点击 ScreenSwitch 后,当前 Chrome 视频窗口会移动到副屏,并铺满副屏工作区。扩展随后会尝试让播放器进入全屏。
两块屏幕各有一个 Chrome 窗口
主屏是工作资料,副屏是视频窗口。当前窗口在主屏时点击 ScreenSwitch,两个 Chrome 窗口会交换位置。这样视频去副屏,原来的副屏窗口回到主屏。
三屏或更多屏幕
默认模式会自动选择另一块屏幕。如果你只想在固定两块屏幕之间切换,可以打开扩展详情页里的“扩展程序选项”,在“屏幕选择”里指定两块屏幕。
自动全屏失败
有些网页会限制脚本触发全屏。V3 不会调用 Chrome 调试器做增强点击,而是弹出通知,提醒你手动按 F 或点击播放器全屏按钮。
进入设置:
- 打开
chrome://extensions。 - 找到 ScreenSwitch。
- 点击“详情”。
- 点击“扩展程序选项”。
可以调整这些内容:
- 触发网址:每行一个关键词。默认是 B站和 YouTube。
- 切屏方式:推荐使用“交换或移动当前 Chrome 窗口”。
- 窗口铺满屏幕:打开后,窗口会铺满目标屏幕工作区。
- 屏幕选择:默认自动。三屏以上用户可以指定两块屏幕。
- 播放器全屏:打开后,切屏后会尝试自动全屏播放器。
- 页面语言:设置页右上角可在中文和英文之间切换。
- 恢复默认:一键回到 V3 的干净默认设置。
| 权限 | 用途 |
|---|---|
tabs |
获取当前标签页、移动标签页、激活标签页 |
scripting |
在 B站/YouTube 页面里尝试触发播放器全屏 |
system.display |
读取显示器信息,用来判断窗口在哪块屏幕 |
storage |
保存你在设置页里选择的选项 |
notifications |
自动全屏失败或无法触发时显示提醒 |
V3 不包含 debugger 权限,也不使用 <all_urls>。
ScreenSwitch 是本地扩展:
- 不上传数据。
- 不连接任何服务器。
- 不包含统计、遥测或广告代码。
- 不写死个人本地路径。
- 不保存浏览记录。
- 只在 Chrome 本地保存扩展设置。
默认触发网址只有 B站和 YouTube。V3/manifest.json 里的页面脚本权限也限制在 B站和 YouTube 域名下。
点击图标没有反应
先检查当前网页是不是 B站或 YouTube 视频页。默认只有网址包含 bilibili.com 或 youtube.com 时才会触发。再检查是否至少连接了两块屏幕。
窗口没有交换,只是移动了当前窗口
这是正常的。目标屏幕上已经有另一个普通 Chrome 窗口时,V3 会交换两个窗口;目标屏幕上没有 Chrome 窗口时,V3 会移动当前窗口。
为什么不是移动当前标签页
V3 的默认目标是保持当前窗口结构稳定,所以默认移动或交换整个 Chrome 窗口。如果你更喜欢旧行为,可以在设置里把切屏方式改成“移动当前标签页到另一屏 Chrome 窗口”。
播放器没有自动全屏
网页可能拒绝脚本触发全屏。V3 会弹出通知提醒你手动操作。通常按 F,或者点击播放器右下角的全屏按钮即可。
能不能控制 Finder、微信、IDE 或其他软件窗口
不能。Chrome 扩展只能稳定控制 Chrome 自己的窗口和标签页。跨应用窗口交换需要额外的本地辅助程序和系统辅助功能权限,当前稳定版不包含这个能力。
快捷键没生效
打开 chrome://extensions/shortcuts,确认 ScreenSwitch 的快捷键已经设置,并且没有被其他扩展或系统快捷键占用。
ScreenSwitch is a local Chrome extension for moving the Bilibili or YouTube video window you are watching to another display, then trying to trigger the player’s own fullscreen mode.
Recommended install: V3. This repository publishes only the V3 stable release.
V3 is designed for regular dual-display use: it swaps or moves the whole Chrome window by default instead of moving the page tab, tries player fullscreen automatically, does not request Chrome debugger permission, and shows a notification if automatic fullscreen is blocked.
- You use two or more displays.
- You often watch videos on Bilibili or YouTube.
- You want to send the current video window to another display with one click.
- You do not want to drag, resize, and fullscreen the window manually every time.
If you only use one display, the core feature is not useful.
V3 works without setup after installation:
| Setting | Default | Meaning |
|---|---|---|
| Trigger URLs | bilibili.com, youtube.com |
The extension only runs when the current URL contains these keywords |
| Switching mode | Swap or move the current Chrome window | The current tab is not detached by default |
| Window size | Fill target display work area | This resizes the window; it is not OS-level fullscreen |
| Player fullscreen | Enabled | After switching, it tries the Bilibili/YouTube fullscreen button or shortcut |
| Debugger-assisted click | Disabled | No debugger permission and no simulated system-level double click |
| Display selection | Automatic | It does not bind itself to local display IDs by default |
| Settings language | Chinese, switchable to English | Use the language switch in the options page |
Recommended: install from the Release package.
- Open “Releases” on the GitHub repository page.
- Download
ScreenSwitch-v3.0.0.zip. - Unzip the file.
- Open Chrome.
- Enter
chrome://extensionsin the address bar. - Turn on “Developer mode”.
- Click “Load unpacked”.
- Select the folder you just unzipped.
- When the ScreenSwitch icon appears in Chrome, installation is complete.
You can also install from source:
- Open Chrome.
- Enter
chrome://extensionsin the address bar. - Turn on “Developer mode”.
- Click “Load unpacked”.
- Select the
V3folder in this project. - When the ScreenSwitch icon appears in Chrome, installation is complete.
Pin the extension icon to the toolbar for easier access.
Open a Bilibili or YouTube video page, then trigger ScreenSwitch in either way:
- Click the ScreenSwitch icon in the Chrome toolbar.
- Use the shortcut:
- macOS:
Command+Shift+U - Windows/Linux:
Ctrl+Shift+U
- macOS:
If the shortcut conflicts with another app, change it at chrome://extensions/shortcuts.
Move a video from the main display to a secondary display
Open a Bilibili video on the main display while the secondary display is empty. Click ScreenSwitch, and the current Chrome video window moves to the secondary display and fills its work area. The extension then tries to enter player fullscreen.
One Chrome window on each display
If the main display contains work pages and the secondary display contains another Chrome window, clicking ScreenSwitch swaps the two Chrome windows.
Three or more displays
Automatic mode chooses another display. If you want to switch only between two specific displays, open the extension options and choose them under display selection.
Automatic fullscreen fails
Some sites block script-triggered fullscreen. V3 does not use debugger-assisted clicks. It shows a notification and asks you to press F or click the player fullscreen button manually.
Open settings:
- Go to
chrome://extensions. - Find ScreenSwitch.
- Click “Details”.
- Click “Extension options”.
You can change:
- Trigger URLs: one keyword per line. Bilibili and YouTube are the defaults.
- Switching mode: “swap or move the current Chrome window” is recommended.
- Fill target display: fills the target display work area after switching.
- Display selection: automatic by default; choose two displays if you use three or more.
- Player fullscreen: tries player fullscreen after switching.
- Page language: switch the options page between Chinese and English.
- Restore defaults: returns V3 to its clean default settings.
| Permission | Use |
|---|---|
tabs |
Read the current tab, move tabs, and activate tabs |
scripting |
Try to trigger player fullscreen on Bilibili/YouTube pages |
system.display |
Read display information to locate windows |
storage |
Save extension settings locally |
notifications |
Show reminders when automatic fullscreen fails or cannot run |
V3 does not include debugger permission and does not use <all_urls>.
ScreenSwitch is local:
- It does not upload data.
- It does not connect to any server.
- It has no analytics, telemetry, or ads.
- It does not hardcode personal local paths.
- It does not store browsing history.
- It only stores extension settings locally in Chrome.
The default trigger URLs are Bilibili and YouTube only. Script permissions in V3/manifest.json are also limited to Bilibili and YouTube domains.
Clicking the icon does nothing
Check whether the current page is a Bilibili or YouTube video page. By default, the URL must contain bilibili.com or youtube.com. Also check that at least two displays are connected.
The window moved instead of swapping
This is expected. If another normal Chrome window exists on the target display, V3 swaps the two windows. If not, it moves the current window.
Why does it not move only the current tab by default?
V3 keeps the window structure stable by default, so it swaps or moves the whole Chrome window. If you prefer the old behavior, change the mode to “move the current tab to another Chrome window”.
The player did not fullscreen automatically
The website may have blocked script-triggered fullscreen. Press F or click the player fullscreen button manually.
Can it control Finder, WeChat, IDEs, or other app windows?
No. Chrome extensions can reliably control Chrome windows and tabs only. Cross-app window control requires a separate native helper and operating-system accessibility permissions.
The shortcut does not work
Open chrome://extensions/shortcuts, confirm ScreenSwitch has a shortcut, and make sure it is not already used by another extension or system shortcut.
MIT License. See LICENSE.