Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sindresorhus/xbar
Simplifies BitBar app plugin creation
https://github.com/sindresorhus/xbar
bitbar macos menubar nodejs npm-package
Last synced: 2 months ago
JSON representation
Simplifies BitBar app plugin creation
- Host: GitHub
- URL: https://github.com/sindresorhus/xbar
- Owner: sindresorhus
- License: mit
- Created: 2016-01-09T20:05:30.000Z (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2023-11-06T06:57:42.000Z (about 1 year ago)
- Last Synced: 2024-04-14T11:09:17.591Z (8 months ago)
- Topics: bitbar, macos, menubar, nodejs, npm-package
- Language: JavaScript
- Homepage:
- Size: 146 KB
- Stars: 349
- Watchers: 6
- Forks: 16
- Open Issues: 2
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
- awesome-starred-test - sindresorhus/xbar - Simplifies BitBar app plugin creation (JavaScript)
- stars - xbar
- stars - xbar
README
# xbar
> Simplifies [xbar](https://github.com/matryer/xbar) app plugin creation
Create your plugin using a nice API instead of having to manually construct a big string.
*Requires xbar v2 or later.*
## Install
```sh
npm install xbar
```## Usage
```js
#!/usr/bin/env node
import xbar, {separator, isDarkMode} from 'xbar';xbar([
{
text: '❤',
color: isDarkMode ? 'white' : 'red',
dropdown: false
},
separator,
{
text: 'Unicorns',
color: '#ff79d7',
submenu: [
{
text: ':tv: Video',
href: 'https://www.youtube.com/watch?v=9auOCbH5Ns4'
},
{
text: ':book: Wiki',
href: 'https://en.wikipedia.org/wiki/Unicorn'
}
]
},
separator,
'Ponies'
]);
```Create a file with the above code in the xbar plugins directory and make sure to `chmod +x filename.js` it. [Read more.](https://github.com/matryer/xbar#installing-plugins)
**Note:** You need to either have a `package.json` file with `{"type": "module"}` or use the `.mjs` extension instead of `.js`.
*Change `node` in `#!/usr/bin/env node` to the path of your Node.js binary. This is a [known issue](https://github.com/matryer/xbar/issues/36) in xbar.*
## API
### xbar(items, options?)
#### items
Type: `Array`
An item can be a string with the text or an object with the text in a `text` property and any of the `options`. The text can be multiple lines, but for the first item, only the first line will be shown in the menubar.
##### submenu
Type: `Array`
It will add a submenu to the current item. A submenu is composed of an array of items.
#### options
Type: `object`
You can use any of the [supported options](https://github.com/matryer/xbar-plugins/blob/main/CONTRIBUTING.md#plugin-api).
Applies to all items unless overridden in the item.
### separator
Add a separator.
### isDarkMode
Type: `boolean`
Check whether dark mode is enabled.
### isXbar
Type: `boolean`
Check whether the script is running from xbar.