aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-06-16HomebrewFormula: Fix `:lion`/"10.7" `depends_on`HEADmasterTeddy Wing
Turns out we didn't solve the problem with the previous commit, as "10.7" still needs to be in Homebrew's `MacOS::Version::SYMBOLS` hash in order to be recognised. To work around this, depend on Lion if Homebrew provides it, otherwise display a message in the Caveats section about the minimum OS version.
2019-06-11HomebrewFormula: Change `:lion` to `"10.7"`Teddy Wing
I got this error recently: $ brew tap teddywing/formulae Updating Homebrew... ... ==> Tapping teddywing/formulae Cloning into '/usr/local/Homebrew/Library/Taps/teddywing/homebrew-formulae'... ... Error: Invalid formula: /usr/local/Homebrew/Library/Taps/teddywing/homebrew-formulae/HomebrewFormula/dome-key.rb dome-key: unknown version :lion Error: Cannot tap teddywing/formulae: invalid syntax in tap! Turns out `:lion` was removed as a Mac OS X version symbol from Homebrew: https://github.com/homebrew/brew/commit/1aa8ad09e212cd9cd2f3ae55f899ed4ef03ae4d0 Use a version string instead.
2018-11-23Update TODOv1.0Teddy Wing
2018-11-22HomebrewFormula: Add `--reload-mappings` mention in CaveatsTeddy Wing
Instruct users to reload mappings if `dome-key` is running. This could happen if the install commands were copy-pasted from the website: $ brew install teddywing/DomeKey/dome-key $ brew services start teddywing/DomeKey/dome-key At this point, `dome-key` would already have been started, and the new mappings wouldn't be loaded into the running process. Also indent the shell commands to differentiate them from the text.
2018-11-22HomebrewFormula/dome-key.rb: Repackage with latest changesTeddy Wing
Only significant change is the addition of the license to the man page.
2018-11-22Add READMETeddy Wing
2018-11-22sound_data.h: Add license headerTeddy Wing
2018-11-22Makefile: Add targets for HTML manual pagesTeddy Wing
2018-11-22doc/dome-key.1.txt: Add full license textTeddy Wing
2018-11-22Add licenseTeddy Wing
2018-11-22lib/dome-key-map: Update to latest, v0.1.0Teddy Wing
2018-11-22.gitmodules: Switch to the dome-key-map public repoTeddy Wing
2018-11-22.gitmodules: Switch back to upstream DDHidLibTeddy Wing
My change to fix the import warning was merged into master.
2018-11-21Switch to a fork of DDHidLibTeddy Wing
Corrects this warning: DDHidLib/lib/DDHidQueue.m:27:9: warning: non-portable path to file '"DDHidEvent.h"'; specified path differs in case from file name on disk [-Wnonportable-include-path] #import "DDHIdEvent.h" ^~~~~~~~~~~~~~ "DDHidEvent.h" 1 warning generated. I had made the change locally a long time ago, but it's now committed and published publicly.
2018-11-15Update TODOTeddy Wing
2018-11-15Add HomebrewFormula/dome-key.rbTeddy Wing
Generated with `make pkg`.
2018-11-15pkg/dome-key.in.rb: Add description, homepage, and archive URLTeddy Wing
2018-11-15pkg/dome-key.in.rb: Install rule for `dome-key-mappings.7` man pageTeddy Wing
2018-11-15Makefile: Add target to build Homebrew formulaTeddy Wing
2018-11-15pkg/generate_homebrew_formula.py: Calculate SHA256 digest of archiveTeddy Wing
2018-11-15Makefile: Add target to archive binary & man pagesTeddy Wing
Builds a tar archive of the executable and man pages with the current software version in the name. The version is extracted from the `main.m` file.
2018-11-15Makefile: Add man pages to `dist/` directoryTeddy Wing
2018-11-15generate_homebrew_formula.py: Get versionTeddy Wing
Get the version from `main.m`.
2018-11-15Add doc/dome-key-mappings.7.txt man pageoTeddy Wing
This describes the syntax of the `mappings.dkmap` file.
2018-11-15doc/dome-key.1.txt: Add "Files" sectionTeddy Wing
Learned that files should be described in the man page.
2018-11-14Add generated doc/dome-key.1 man pageTeddy Wing
2018-11-14Makefile(doc): Don't remove intermediate fileTeddy Wing
Prevent the man page from always building even without changes to the input file.
2018-11-14doc/dome-key.1.txt: Add copyrightTeddy Wing
Include the Aquatic Prime copyright notice as stipulated by its license.
2018-11-14doc/dome-key.1.txt: Add "Launchd" sectionTeddy Wing
Include the program's launchd plist in the man page.
2018-11-14doc/dome-key.1.txt: Add "Mappings" sectionTeddy Wing
2018-11-14doc/dome-key.1.txt: Add "Configuration" sectionTeddy Wing
Describe the `timeout` configuration option.
2018-11-14doc/dome-key.1.txt: Add real descriptions of command line optionsTeddy Wing
2018-11-14doc/dome-key.1.txt: Fix closing quoteTeddy Wing
Used the wrong terminator, '`' instead of '''.
2018-11-11Update TODOTeddy Wing
2018-11-11pkg/dome-key.in.rb: Add the command to run if you don't use launchdTeddy Wing
Now that I think about it, a daemon would execute in the background, not take over the shell. But whatever, not going to change that now when I'm about to release the program.
2018-11-11pkg/dome-key.in.rb: Add sample config setup to Brew CaveatsTeddy Wing
Make it faster to try out the program by providing copy-pastable commands to get a sample config. `HOME` needs two `$` to escape it from the Python templater.
2018-11-11Update TODOTeddy Wing
2018-11-10Add doc/extract_special_key_names.shTeddy Wing
Script to extract the names of special keys like `<VolumeUp>` from `parser.rs`. Need these for the mappings syntax manual.
2018-11-06Makefile(dist/dome-key): Copy binary from xcarchiveTeddy Wing
The release build is 1.5 Mb, while the archive is 1.1 Mb. Not sure what additional optimisations Xcode applies when it archives, but clearly that's the build we should be distributing.
2018-11-06Add file size optimisations to Release buildTeddy Wing
* Remove `dome-key-map/target/debug` from Release library search paths. This was causing the Release build to link against the debug version of dome-key-map, resulting in a 25 Mb binary. * Strip debug symbols * Turn on link-time optimisation This takes the Release binary down to 1.5 Mb. Added an `archive` target to the Makefile. This does additional optimisations (maybe stripping symbols?), and gives us a final binary size of 1.1 Mb. Much better.
2018-11-05Remove lib/char_to_key_code.*Teddy Wing
We don't need these functions any more now that key simulation is handled by the Rust library. The files can be safely removed.
2018-11-05lib/dome-key-map: Update to latestTeddy Wing
Fixes parse error when the mappings file starts with blank lines or comment lines.
2018-11-05Makefile: Organise targetsTeddy Wing
Split the targets into more logical sections.
2018-11-05Makefile: Add dist targetsTeddy Wing
We'll stick the binary and man pages in this directory for packaging.
2018-11-05Makefile: Use project-local build directoryTeddy Wing
Set 'DerivedData' path in `xcodebuild` to give us a local build directory. Doing this because when the 'Debug', or 'Release' directories in 'Build/Products/' don't exist, Make doesn't build our recipes. Make seems to prefer local files, and I don't imagine the wildcard in the path does us any favours. When I changed the DerivedData path, I ended up with this error: In file included from DomeKey/DomeKey/HeadphoneKey.m:9: DomeKey/DomeKey/HeadphoneKey.h:10:9: fatal error: 'DDHidLib/DDHidAppleMikey.h' file not found #import <DDHidLib/DDHidAppleMikey.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ Couldn't figure out what the problem was, and what changed there when I changed the DerivedData directory. So I just fixed it in the only way I could think of: adding the DDHidLib 'lib' directory to `HEADER_SEARCH_PATHS` and updating the `#import` to point to the new location. We also create a release target in this commit, which gives us a release build of the program.
2018-11-05lib/dome-key-map: Update to latestTeddy Wing
2018-11-04Update TODOTeddy Wing
2018-11-04main(): Remove "Hello, World" `NSLog`Teddy Wing
Don't need this any more.
2018-11-04reload_mappings(): Print a log message when mappings are reloadedTeddy Wing
In the daemon, we should print a log message when the mappings file gets reloaded. This allows you to follow along in the log file.
2018-11-04Replace `NSLog`ged error messages with `teprintf`Teddy Wing
Use our own custom error formatter. I think `NSLog` messages get sent to syslog in a release build. This allows us to format the error messages the way we want and ensure they get printed to stderr.