An open API service indexing awesome lists of open source software.

https://github.com/maz01001/chrome_detab

chrome extension to turn the current tab into a minimal pop-up window
https://github.com/maz01001/chrome_detab

chrome-extension popup-window

Last synced: about 1 month ago
JSON representation

chrome extension to turn the current tab into a minimal pop-up window

Awesome Lists containing this project

README

          

# Chrome detab

extension icon

Chrome extension to turn any tab into a minimal pop-up window (and vice versa)

> [!NOTE]
>
> Moves the tab itself so the page is not reloaded and stays the way it is,
> as oposed to something like `window.open(location.href,"detab","toolbar=0");`
>
> Thus, also doesn't need permissions to read URLS, inject scripts, etc

## Install

1. Clone this repo or download the `7z` file from releases ()
2. Unpack `zip`/`7z` (_get 7-Zip from _)
3. Turn on dev-mode in (top right)
4. Click _Load unpacked extension_ (top left)
5. Locate unpacked folder
6. Click it and then hit _Select folder_
7. ...
8. Profit

> [!IMPORTANT]
>
> This extension is (currently) NOT hosted in _Chrome Web Store_ and since loading extension from other sources does not work (since chrome M33 ~ 2014) for security reasons,
> the only way you could/should install this extension is by following the steps above

## Controls

> [!NOTE]
>
> Change extension hotkeys on
>
> Select multiple tabs by clicking on them while holding ctrl and/or shift
>
> Move a tab inside a window with ctrl+shift+PgUp/ctrl+shift+PgDn ([Chrome keyboard shortcuts](https://support.google.com/chrome/answer/157179#zippy=%2Ctab-and-window-shortcuts:~:text=Move%20tabs%20right%20or%20left "Google Chrome Help: Chrome keyboard shortcuts"))


Hotkeys


alt+0


Toggle popup of last focused or selected tabs
  • last focused tab gets moved to a popup window

  • last focused popup gets moved to the last focused normal window (left of active tab in that window)

  • all selected tabs are each moved to a popup window (in order) and the popup that was the active tab is focused


  • alt+shift+0


    Create new window with last focused or selected tabs
  • last focused tab gets moved to a new window

  • last focused popup gets moved to a new (non-popup) window

  • all selected tabs are moved to a new window (same order) and are re-selected with the same active tab



  • Clicking extension icon


    Create popup of current and selected tabs (does nothing if somehow triggered from popup window)
  • last focused tab gets moved to a popup window

  • all selected tabs are each moved to a popup window (in order) and the popup that was the active tab is focused


  • Context menu



    Popup toggle current tab (on page)


  • current tab gets moved to a popup window

  • current popup gets moved to the last focused normal window (left of active tab in that window)



  • Move to new normal window (on page)


  • current tab gets moved to a new window

  • current popup gets moved to a new (non-popup) window



  • Popup link / Popup incognito link (on link elements)


    (does nothing if link URL is not available)
  • create popup from link URL

  • create inconito popup from link URL



  • Popup media (source URL) / Popup incognito media (source URL) (on image/video/audio elements)


    (does nothing if media source URL is not available)
  • create popup from media source URL

  • create inconito popup from media source URL



  • ## Finding the last focused window

    [`chrome.windows.getLastFocused()`](https://developer.chrome.com/docs/extensions/reference/api/windows#method-getLastFocused "Chrome API docs")
    gets the last focused window, but [`chrome.windows.QueryOptions`](https://developer.chrome.com/docs/extensions/reference/api/windows#type-QueryOptions "Chrome API docs")
    (parameter) can only distinguish between window types like `normal` and `popup`, and has no way of getting incognito/non-incognito windows separately

    So, manual tracking of all focused windows is necessary

    See `LastWindow` (static class) at the start of `background.js`