workflow-osx: a "Desktop Workflow" monad with Objective-C bindings

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Warnings:

a "Desktop Workflow" monad with Objective-C bindings

e.g. press some keys, click the mouse, get/set the clipboard

see Workflow.OSX for several examples

(if the build fails, see the README)

(this package is on hackage for convenience, but it's still a prerelease)


[Skip to Readme]

Properties

Versions 0.0.0, 0.0.0, 0.0.1
Change log None available
Dependencies base (>=4.8 && <4.9), bv (>=0.3 && <0.4), bytestring (>=0.10 && <0.11), exceptions (>=0.8 && <0.9), filepath (>=1.4 && <1.5), free (>=4.12 && <4.13), http-types (>=0.8 && <0.9), mtl (>=2.2 && <2.3), transformers (>=0.4.2 && <0.4.3), workflow-osx (==0.0.0) [details]
License GPL-3.0-only
Copyright Copyright (C) 2015 Spiros M. Boosalis
Author Spiros Boosalis
Maintainer samboosalis@gmail.com
Category Accessibility, Apple, Automation, Bindings, Desktop, FFI
Home page https://github.com/sboosali/workflow-osx#readme
Bug tracker https://github.com/sboosali/workflow-osx/issues
Source repo head: git clone https://github.com/sboosali/workflow-osx
Uploaded by sboo at 2015-10-02T00:46:53Z

Modules

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for workflow-osx-0.0.0

[back to package description]

workflow-osx

a (free) monad, with Objective-C bindings, for "Workflow" actions.

e.g. press some keys, click the mouse, get and set the clipboard. GHC's C FFI takes only microseconds.

for examples, see the documentation on hackage https://hackage.haskell.org/package/workflow-osx

Issues

the build

foreign dependencies always complicate the build process. it's known to work with the following:

TODO

platform agnosticism

exploit the free monad's flexibility to define platform-agnostic workflows

problem: windows (Linux/Windows) versus processes (OS X)

problem: keyboards. Apple keyboards don't have the Windows key, Windows keyboards don't have the Apple key. some keyboards have a dozen random extra unbound keys.

automatic delay insertion

problem: currently, delays must be inserted manually. keyboard shortcuts in Emacs succeed with no delay. keyboard shortcuts in Chrome, like closing a tab with M-w, may drop without a long delay (like 250ms). furthermore, different actions need different delays between them (e.g. inserting text into Chrome can be done without delay).

parameterize Workflow on a keyboard type