Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/havardh/workflow

Workflow-centric workspace manager
https://github.com/havardh/workflow

Last synced: 4 days ago
JSON representation

Workflow-centric workspace manager

Awesome Lists containing this project

README

        

# Workflow

[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/workflow)

An experiment in declarative windows management with an optional [React](packages/workflow-react)
frontend and an experimental [Angular](packages/workflow-angular) frontend.

## What does it do?

Workflow turns declarative windows layouts defined in javascript files ...

```javascript
export const flow = render(





,
);
```

... into open applications populated with arguments in the specified layout on the screen.

![](github/readme-example.png)

## Usage

Workflow is a command line tool written for node.

Installing it globally with `npm` will set up the `workflow` command. On the first run, a home directory
will be set up. The default location is at `~/.workflow`. This is overridable with the ``WORKFLOW_HOME`
environment variable.
```bash
npm install --global workflow
```

Running the command will by default resolve flow files relative to `~/.workflow/flows` or by
an absolute path.
```bash
workflow Example.js # resolves to ~/.workflow/flows/Example.js
workflow /path/to/file.js # resolves the file directly
```

## Cross platform

Workflow is written in a modular way to allow for extension. There are currently experimental support
for [osx](packages/workflow-wm-osx), [windows](packages/workflow-wm-windows), and linux using
[i3](packages/workflow-wm-i3) or [wmctrl](packages/workflow-wm-wmctrl).

## Devlopment

The [`cli.js`](packages/workflow/src/cli.js) can be executed in development mode. By default
it will use the standard workflow-home directory, which is overridable by `WORKFLOW_DEV_HOME`.
Development mode is activated by setting the environment variable `WORKFLOW_DEV_MODE` to `true`.
Note, you can set up an additional for dev with the create-workflow-home package.

```bash
yarn # setup all dependencies
yarn bootstrap # bootstrap lerna
yarn build # run rollup to build all packages

node ./packages/create-workflow-home/cli.js
WORKFLOW_DEV_MODE=true WORKFLOW_DEV_HOME= node ./packages/workflow/cli.js Example.js
```

## Contributions

All contributions to `workflow` are welcome. Checkout the [Contributions](contributions.md) guide to get started.

## Code of conduct

By making a contribution to this project you agree to abide by the
[Code of Conduct](code-of-conduct.md).