# x-default-browser

> Detect default web browser of the current user, cross-platform (Win/Lin/Mac)

Latest version **0.5.2** (published 2022-11-13) · MIT license · 0 weekly downloads

## Install

```sh
npm install x-default-browser
pnpm add x-default-browser
yarn add x-default-browser
bun add x-default-browser
```

Provides the command `x-default-browser`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.5.2 |
| Published | 2022-11-13 |
| First published | 2014-12-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 26.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 23 |
| Author | jakub-g |
| Maintainers | jakub-g |
| Keywords | windows, ubuntu, linux, default, browser |

## Links

- npm: https://www.npmjs.com/package/x-default-browser
- Repository: https://github.com/jakub-g/x-default-browser
- Issues: https://github.com/jakub-g/x-default-browser/issues
- npm.io page: https://npm.io/package/x-default-browser

## Dependencies (1)

- [default-browser-id](https://npm.io/package/default-browser-id.md) ^2.0.0

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 0.5.2 (latest) — 2022-11-13
- 0.5.1 — 2022-11-13
- 0.5.0 — 2022-11-13
- 0.4.0 — 2017-04-24
- 0.3.1 — 2015-11-19
- 0.3.0 — 2015-01-16
- 0.2.0 — 2014-12-09

## README

# x-default-browser

[![Build Status](https://secure.travis-ci.org/jakub-g/x-default-browser.png)](http://travis-ci.org/jakub-g/x-default-browser)

[![Get it on npm](https://nodei.co/npm/x-default-browser.png?compact=true)](https://www.npmjs.org/package/x-default-browser)

This _cross-platform_ module finds out the default browser for the current user.

Recent versions (~0.5.x) were tested locally on Windows 10 64-bit, Mac OS 12.6.

Older versions (~0.4.x) were tested locally on Windows 10 64-bit, Mac OS 10, Windows 7 64-bit, Windows XP 32-bit, Ubuntu 14.04 64-bit (en-US locale),

It requires nodejs and npm. If you don't have node, grab it at [nodejs.org](https://nodejs.org).
Node installer bundles npm (node package manager)

## How it works

- Windows:
  - checks registry value `HKCU\Software\Clients\StartMenuInternet`
- Linuxes:
  - reads the output of `xdg-mime query default x-scheme-handler/http`
- OS X:
  - delegated to [default-browser-id from Sindre Sorhus](https://github.com/sindresorhus/default-browser-id)

## Usage as a nodejs module

```sh
$ npm install x-default-browser
```

```js
var defaultBrowser = require("x-default-browser");

defaultBrowser(function (err, res) {
  // in case of error, `err` will be a string with error message; otherwise it's `null`.

  console.dir(res);
  // => {
  //  isIE: false,
  //  isFirefox: true,
  //  isChrome: false,
  //  isChromium: false,
  //  isOpera: false,
  //  isWebkit: false,
  //  identity: 'firefox.exe',
  //  commonName: 'firefox'
  // }
});
```

- `commonName` is portable, it will be `ie`, `safari`, `firefox`, `chrome`, `chromium`, `opera` or `unknown`
- `isBlink` is true for Chrome, Chromium, Opera
- `isWebkit` is true for Chrome, Chromium, Opera, Safari
- `identity` key is platform-specific.
  - On Windows, it's the prefix you can use for querying `HKLM\Software\Clients\StartMenuInternet\<prefix>`
    keys to find out details of the browser. It'll be one of `iexplore.exe`, `firefox.exe`, `google chrome`,
    `chromium.<somerandomkeyhere>`, `operastable`.
  - On Ubuntu, it will be `firefox.desktop`, `google-chrome.desktop`, `chromium-browser.desktop` or `opera.desktop`
  - On Mac OS X, it will be the bundle ID: `com.apple.Safari`, `com.google.chrome`, `com.operasoftware.Opera`, `org.mozilla.firefox` etc

## Usage from command line

```sh
$ npm install -g x-default-browser
$ x-default-browser
firefox
```

Command line version outputs the `commonName` key, i.e. `ie`, `safari`, `firefox`, `chrome`, `chromium`, `opera` or `unknown`.

## Linux support

This module was only tested on Ubuntu. Compatibility reports and fixes for other distros are more than welcome!
Use GitHub issues or email: (jakub.g.opensource) (gmail)

## License

MIT © [jakub-g](http://jakub-g.github.io)

## Related projects

- [default-browser-id](https://github.com/sindresorhus/default-browser-id) (OS X)
- [win-detect-browsers](https://github.com/vweevers/win-detect-browsers) (Windows)
- [browser-launcher2](https://github.com/benderjs/browser-launcher2) (cross-platform)
- [opener](https://github.com/domenic/opener) (cross-platform)
- [node-open](https://github.com/pwnall/node-open) (cross-platform)

---
_Source: https://npm.io/package/x-default-browser · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
