{"id":50728266,"url":"https://github.com/dmitrysharabin/unbar","last_synced_at":"2026-06-10T06:02:38.479Z","repository":{"id":363377751,"uuid":"1262996080","full_name":"DmitrySharabin/unbar","owner":"DmitrySharabin","description":"Pop the current tab into a clean window — no address bar, no tabs.","archived":false,"fork":false,"pushed_at":"2026-06-08T17:39:05.000Z","size":143,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T18:04:50.547Z","etag":null,"topics":["chrome","extension"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DmitrySharabin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-08T14:18:11.000Z","updated_at":"2026-06-08T17:39:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/DmitrySharabin/unbar","commit_stats":null,"previous_names":["dmitrysharabin/unbar"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/DmitrySharabin/unbar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DmitrySharabin%2Funbar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DmitrySharabin%2Funbar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DmitrySharabin%2Funbar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DmitrySharabin%2Funbar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DmitrySharabin","download_url":"https://codeload.github.com/DmitrySharabin/unbar/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DmitrySharabin%2Funbar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34139185,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chrome","extension"],"created_at":"2026-06-10T06:02:34.318Z","updated_at":"2026-06-10T06:02:38.474Z","avatar_url":"https://github.com/DmitrySharabin.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unbar\n\n**Pop the current tab into a clean window — no address bar, no tabs.**\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"store/screenshot-readme.png\" alt=\"Before and after: browser UI removed\" width=\"640\"\u003e\u003c/p\u003e\n\nUnbar moves your active Chrome tab into a minimal popup window with no address bar, tab strip, or bookmarks bar. The page doesn't reload, so scroll position, form input, and JavaScript state are all preserved — it's the same tab, just in a cleaner frame.\n\nBuilt originally to give [Inspire.js](https://inspirejs.org) presentations a distraction-free presenter/projector window, but it works on any page.\n\n| Pick a size | Hover a preset | Edit a preset |\n|:-----------:|:-------------:|:-------------:|\n| \u003cimg src=\"store/screenshot-popup.png\" width=\"280\" alt=\"Preset list\"\u003e | \u003cimg src=\"store/screenshot-hover.png\" width=\"280\" alt=\"Hover state\"\u003e | \u003cimg src=\"store/screenshot-editor.png\" width=\"280\" alt=\"Preset editor\"\u003e |\n\n## Why\n\nChrome removed the ability to hide the address bar years ago (the old `Compact Navigation` flag is gone), and extensions can't touch native browser chrome. The one exception is `chrome.windows.create({ type: \"popup\" })`, which opens a window without an address bar. Unbar uses that to relocate your current tab into a clean window on demand.\n\n## Features\n\n- **One-click unbar** — click the toolbar icon, pick a size, done.\n- **Fit screen** — key `0` detects the current monitor's available area and opens the window at exactly that size. Always listed first in the popup.\n- **Size presets** — keys `1`–`9` select a resolution, arrow keys navigate between rows. Four sensible defaults out of the box (1280×800, 1920×1080, 1024×768, 1440×900).\n- **Fully editable** — every preset slot can be edited in place: dimensions and label. Up to nine. Press Escape to cancel. The default (★) is whichever preset you used last (including Fit screen).\n- **Aspect-ratio lock** — a chain toggle links width and height so changing one updates the other. Recognizes common ratios (16:9, 16:10, 4:3, 21:9, 3:2, 5:4, 1:1, 32:9).\n- **Keyboard shortcut** — `Ctrl+Shift+U` (Windows/Linux) or `Cmd+Shift+U` (macOS) instantly unbars at the last-used size, no popup. Remap at `chrome://extensions/shortcuts`.\n- **Persistent** — your presets are saved across sessions via `chrome.storage.local`.\n\n## Privacy\n\nUnbar collects no data. No analytics, no tracking, no network requests. It uses two permissions: `activeTab` (scoped to the tab you explicitly act on) and `storage` (to persist your presets locally). See [PRIVACY.md](PRIVACY.md).\n\n## Install\n\n### From the Chrome Web Store\n\n_(Link to be added once published.)_\n\n### From source (development)\n\n1. Clone this repo:\n   ```bash\n   git clone https://github.com/DmitrySharabin/unbar.git\n   ```\n2. Open `chrome://extensions` in Chrome.\n3. Enable **Developer mode** (top-right toggle).\n4. Click **Load unpacked** and select the `src/` folder.\n\nRequires Chrome 120+.\n\n## Usage\n\n1. Navigate to any page.\n2. Click the Unbar icon (or press `Ctrl+Shift+U` / `Cmd+Shift+U`).\n3. Choose a size — the active tab moves into a clean window.\n\nTo edit a preset, hover a row and click the pencil. To remove one, open it and click the trash icon; remaining presets shift up.\n\n## Build\n\nTo produce the `.zip` for Chrome Web Store submission:\n\n```bash\n./build.sh\n```\n\nThis zips the contents of `src/` into `unbar.zip` at the repo root.\n\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmitrysharabin%2Funbar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmitrysharabin%2Funbar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmitrysharabin%2Funbar/lists"}