Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/kutsan/reopen-cli

Improvement over `open` utility for macOS and Chrome; open URLs in the browser but instead of creating new tabs every time, use existing ones by mutating them.
https://github.com/kutsan/reopen-cli

google-chrome macos open osascript

Last synced: about 19 hours ago
JSON representation

Improvement over `open` utility for macOS and Chrome; open URLs in the browser but instead of creating new tabs every time, use existing ones by mutating them.

Awesome Lists containing this project

README

        

Logo

# reopen-cli

[![npm](https://img.shields.io/npm/v/reopen-cli)](https://www.npmjs.com/package/reopen-cli)

| | Comparison with macOS's `open` |
|--------|--------------------------------------|
| open | ![](https://i.imgur.com/frcd25E.gif) |
| reopen | ![](https://i.imgur.com/PgMxiUH.gif) |

## Requirements

- `osascript` which is pre-installed macOS utility
- Google Chrome

## Features

- Should open Google Chrome if it's not already open.
- Should open a new window, if there is no window but Google Chrome is open.
- If there is only one window, one tab and it's new empty tab, it should use that tab.
- Should focus Google Chrome after opening the URL.
- Should focus first tab, if there is one or multiple.
- Should create a new tab, if there is none.
- Should preserve history.

## Installation

```sh
npm install --global reopen-cli
```

## Usage

### Synopsis

```sh
reopen ''
```

### Example

```sh
reopen 'https://devdocs.io/#q=html'
reopen 'https://devdocs.io/#q=react'
```

### Using with vim

Although you can use with any URL, one particular example would be opening
[devdocs.io](https://devdocs.io) upon pressing `'keywordprg'` mapping which is `K` by default.

Create a command.

```vim
command! -nargs=* Docs call system(printf('reopen "https://devdocs.io/?q=%s"', ))
```

Set `'keywordprg'` to that command.

```vim
set keywordprg=:Docs
```

Now, pressing `K` under any keyword (or e.g. `:Docs child_process`) will bring
DevDocs docs and repeating that would replace current open tab.

## License

GPL-3.0