aboutsummaryrefslogtreecommitdiffstats
path: root/TODO
blob: 830892773c25e67489312c81156c4103752db01a (plain)
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
TODO
====

2018.09.24:
v Add `MapGroup` to `State` (2018.09.25)
	v FFI function to load `MapGroup` into `State` (2018.09.25)
v Dealloc `_state`
v Key simulation for special keys
	v F1 etc.
	v Modifier keys
	v Escaping
		:help <>
		1.  Any printable characters are typed directly, except backslash and '<'
		2.  A backslash is represented with "\\", double backslash, or "<Bslash>".
		3.  A real '<' is represented with "\<" or "<lt>".  When there is no
			confusion possible, a '<' can be used directly.
	v Figure out special function keys like volume, media, etc.
	v <nop>
	v Default keys
v Fix: when in mode, non-mode mappings should not be enabled
v Command handling
v DKMap Parser
	v Fail if no newline at the end of the file
	v Fix error with comments and whitespace
v Cleanup
	v Remove result from `run_key_action_for_mode()`
	v Remove Objective-C key press simulation
	v C header file
	v cocoa_bridge
		v Rename to `ffi` module
		v Get rid of unused structs
		v Get rid of debug print statements
	v Get rid of `unwrap`s and `expect`s
/ Documentation
	v README
	- Code docs
	v man page(s)
v Command-line argument handling
	x Custom config file
	x DKMap file
	v Register license
	v Daemon
	v Reload DKMap file (XPC services, communicate with running daemon to reload
	  its mappings)
		v IPC
		v Reload mappings
		v Show error output in client process
	x Write LaunchAgent plist file
v Config file
	v Read from a config file (XDG etc.)
	v Timeout
	x Log file? (Thinking always stdout)
v LaunchAgent
v Load mappings from file
v Logging
	S Always output consistent timestamp
	v Log errors
	v Remove `unwrap`s
	v Check error messages of parser
		v Errors on lines >1
		v Errors in actions
		v Errors in the middle of definitions after the first line
- Other headphones
	v Test with single-button headphones (<prev>/<next>)
		> Only triggers a middle button, no prev or next
	v Test with Bluetooth headphones (--doesn't work)
	- Make it work with Bluetooth headphones
		See:
			. https://stackoverflow.com/questions/32499676/capture-osx-media-control-buttons-in-swift
			. https://github.com/nevyn/SPMediaKeyTap
			. https://weblog.rogueamoeba.com/2007/09/29/
v Licensing
	v Add Aquatic Prime or some such
	v 30-day trial
	v Check that you can still register after trial expires
v Audio
	v Mode activated
	v Mode deactivated
	v Play audio on mode change
/ DKMap editor plugins
	v Vim
	- Emacs
v Homebrew formula
	v Add an example config to brew caveats
v Website
v Demo video