-
Notifications
You must be signed in to change notification settings - Fork 0
/
workflow-osx.cabal
167 lines (133 loc) · 4.01 KB
/
workflow-osx.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
name: workflow-osx
version: 0.0.1
author: Spiros Boosalis
maintainer: samboosalis@gmail.com
stability: experimental
homepage: https://github.com/sboosali/workflow-osx#readme
bug-reports: https://github.com/sboosali/workflow-osx/issues
cabal-version: >=1.10
build-type: Simple
license: GPL-3
license-file: LICENSE
copyright: Copyright (C) 2016 Spiros M. Boosalis
tested-with: GHC ==7.10.*
category: Accessibility, Apple, Automation, Bindings, Desktop, FFI
synopsis: a "Desktop Workflow" monad with Objective-C bindings
description:
a \"Desktop Workflow\" monad with Objective-C bindings.
.
includes bindings to:
.
* press keys with modifiers
.
* get/set the clipboard
.
* launch/focus applications
.
* get the name of the current application
.
* open URLs
.
for example:
.
> -- | cut the currently highlighted region
> cut :: (MonadWorkflow m) => m String
> cut = do
> sendKeyChord [CommandModifier] XKey
> delay 250
> getClipboard
.
> -- | transform the currently highlighted region, via the clipboard
> transformClipboard :: (MonadWorkflow m) => (String -> String) -> m ()
> transformClipboard f = do
> contents <- cut
> setClipboard (f contents)
> sendKeyChord [CommandModifier] VKey
.
see @Workflow.OSX@ for several more examples
.
(if hackage won't build the docs, see them at <http://sboosali.github.io/documentation/workflow-osx/index.html>)
.
(this package is on hackage for convenience, but it's still a prerelease)
.
-- * get the name of the current window
-- * click the mouse
extra-source-files:
README.md
native/workflow.h
native/Makefile
source-repository head
type: git
location: https://github.com/sboosali/workflow-osx
library
if !os(osx)
buildable: False
hs-source-dirs: sources
exposed-modules:
Workflow.OSX
Workflow.OSX.Types
Workflow.OSX.Foreign
Workflow.OSX.Bindings
Workflow.OSX.Constants
Workflow.OSX.Marshall
Workflow.OSX.Execute
Workflow.OSX.Screenshot
-- other-modules:
Workflow.OSX.Extra
Workflow.OSX.Example
build-depends:
base >=4.7 && <5.0
, workflow-types
, workflow-extra
, mtl
, transformers
, filepath
, free
, exceptions
, deepseq
, hashable
, c-storable-deriving
, data-default-class
, turtle
, managed
, JuicyPixels
, string-conv
default-language: Haskell2010
ghc-options: -Wall
default-extensions: AutoDeriveTypeable, DeriveDataTypeable, DeriveFunctor, DeriveGeneric
include-dirs: native
includes: native/Workflow.h
install-includes: native/Workflow.h
c-sources: native/Workflow.m
cc-options: -Wno-deprecated-declarations
-- the functionality I needed was found only in some deprecated APIs
ld-options: -ObjC
frameworks: Cocoa
executable example-workflow-osx
if !os(osx)
buildable: False
-- without:
-- <command line>: cannot satisfy -package-id workflow-osx-0.0.1-inplace
--
-- with:
-- Package workflow-osx-0.0.1 can't be built on this system.
main-is: Main.hs
hs-source-dirs: .
default-language: Haskell2010
ghc-options: -Wall
build-depends:
base >=4.7 && <5.0
, workflow-osx
executable test-workflow-osx
if !os(osx)
buildable: False
main-is: Workflow/OSX/CommandLine.hs
hs-source-dirs: executables
default-language: Haskell2010
ghc-options: -Wall
build-depends:
base >=4.7 && <5.0
, workflow-osx
, workflow-types
, data-default-class
, Earley