Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jakub-g/x-default-browser
:computer: Detect default browser, cross-platform
https://github.com/jakub-g/x-default-browser
browser-detection
Last synced: 5 days ago
JSON representation
:computer: Detect default browser, cross-platform
- Host: GitHub
- URL: https://github.com/jakub-g/x-default-browser
- Owner: jakub-g
- License: mit
- Created: 2014-12-04T23:15:52.000Z (almost 10 years ago)
- Default Branch: main
- Last Pushed: 2022-11-13T20:57:33.000Z (about 2 years ago)
- Last Synced: 2024-10-31T08:04:14.554Z (14 days ago)
- Topics: browser-detection
- Language: JavaScript
- Homepage:
- Size: 116 KB
- Stars: 22
- Watchers: 3
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
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\`
keys to find out details of the browser. It'll be one of `iexplore.exe`, `firefox.exe`, `google chrome`,
`chromium.`, `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)