Firefox is getting a split window feature, it's already possible to turn it on by adding this to your user.js (or setting the named option in about:config:
user_pref("browser.tabs.splitView.enabled", true);
Glide also has this enabled by default and exposes it through its glide.unstable.split_views API. So I wanted to easily split my views:
// Split windows
const split_window = glide.excmds.create({
name: 'split_window',
description: 'Ask for a tab and show it in a split with this window',
}, async () => {
const activeTab = await glide.tabs.active();
const tabs = await glide.tabs.query({});
glide.commandline.show({
title: "Show other",
options: tabs.map(t => ({
label: t.title,
async execute() {
glide.unstable.split_views.create([activeTab.id, t.id]);
}
})),
});
});
const unsplit_window = glide.excmds.create({
name: 'unsplit_window',
description: 'Remove the current split of windows',
}, ({ tab_id }) => {
glide.unstable.split_views.separate(tab_id);
});
const other_window = glide.excmds.create({
name: 'other_window',
description: 'Focus other window',
}, async ({ tab_id }) => {
const split_tabs = await glide.unstable.split_views.get(tab_id);
const other_tab = split_tabs.tabs.filter(t => t.id !== tab_id)[0];
await browser.tabs.update(other_tab.id, { active: true });
});
glide.keymaps.set('normal', '<C-x>4b', 'split_window');
glide.keymaps.set('normal', '<C-x>1', 'unsplit_window');
glide.keymaps.set('normal', '<A-o>', 'other_window');
This allows me to use C-x 4 b to create a split with another tab of my choosing. Then C-x 1 to remove the split. And M-o to switch between the two panes.
Really enjoying this browser so far :)


