| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
Run the program on login.
|
|
|
|
Probably better type checking with this than the `#define`.
|
|
|
|
|
|
Give us a way to remove all build files.
|
|
|
|
|
|
Ensure the build directories are available when building.
Read up on techniques for creating directories in prerequisites here:
https://www.cmcrossroads.com/article/making-directories-gnu-make
|
|
Use my public fork that fixes errors and warnings found on Mac OS X
10.15 Catalina.
|
|
The linker complained about `_UCKeyTranslate` being undefined. It's used
by DDHotKey, and is defined in `CoreServices.framework`, so we need to
link CoreServices.
Here's the error I was getting:
clang -x objective-c \
-mmacosx-version-min=10.7 \
-framework Carbon \
-framework Cocoa \
-framework CoreGraphics \
-framework Foundation \
-fno-objc-arc \
-I./build/include \
-L./build \
-lddhotkey \
-o invert-catalina-invert \
Invert.h Invert.m main.m
Undefined symbols for architecture x86_64:
"_UCKeyTranslate", referenced from:
_DDStringFromKeyCode in libddhotkey.a(DDHotKeyUtilities.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
|
|
Build for as early a Mac OS X version as we can. Can't build for 10.5
because only 10.6+ supports ARC. Can't build for 10.6 because DDHotKey
requires weak references, and these are only supported starting in 10.7:
https://en.wikipedia.org/w/index.php?title=Weak_reference&oldid=1000364515#Objective-C_2.0
|
|
Previously, the rule was copying all header files for every header file:
cp lib/DDHotKey/Compatibility.h lib/DDHotKey/DDHotKeyAppDelegate.h lib/DDHotKey/DDHotKeyCenter.h lib/DDHotKey/DDHotKeyTextField.h lib/DDHotKey/DDHotKeyUtilities.h build/include/
cp lib/DDHotKey/Compatibility.h lib/DDHotKey/DDHotKeyAppDelegate.h lib/DDHotKey/DDHotKeyCenter.h lib/DDHotKey/DDHotKeyTextField.h lib/DDHotKey/DDHotKeyUtilities.h build/include/
cp lib/DDHotKey/Compatibility.h lib/DDHotKey/DDHotKeyAppDelegate.h lib/DDHotKey/DDHotKeyCenter.h lib/DDHotKey/DDHotKeyTextField.h lib/DDHotKey/DDHotKeyUtilities.h build/include/
cp lib/DDHotKey/Compatibility.h lib/DDHotKey/DDHotKeyAppDelegate.h lib/DDHotKey/DDHotKeyCenter.h lib/DDHotKey/DDHotKeyTextField.h lib/DDHotKey/DDHotKeyUtilities.h build/include/
cp lib/DDHotKey/Compatibility.h lib/DDHotKey/DDHotKeyAppDelegate.h lib/DDHotKey/DDHotKeyCenter.h lib/DDHotKey/DDHotKeyTextField.h lib/DDHotKey/DDHotKeyUtilities.h build/include/
Change it to only copy once per header:
cp lib/DDHotKey/Compatibility.h build/include/
cp lib/DDHotKey/DDHotKeyAppDelegate.h build/include/
cp lib/DDHotKey/DDHotKeyCenter.h build/include/
cp lib/DDHotKey/DDHotKeyTextField.h build/include/
cp lib/DDHotKey/DDHotKeyUtilities.h build/include/
|
|
Fixed the warnings in a fork.
|
|
I was getting warnings that these arguments are unused because we're not
linking anything in this command:
$ clang -x objective-c \
-framework Carbon \
-framework Cocoa \
-framework Foundation \
-fobjc-arc \
-c \
lib/DDHotKey/DDHotKeyCenter.m
clang: warning: -framework Carbon: 'linker' input unused [-Wunused-command-line-argument]
clang: warning: -framework Cocoa: 'linker' input unused [-Wunused-command-line-argument]
clang: warning: -framework Foundation: 'linker' input unused [-Wunused-command-line-argument]
|
|
Need to input each file individually to get object files for each one.
|
|
These lines are old and unused.
|
|
|
|
Added this for testing, but it no longer makes sense.
|
|
Fail to start if we can't register hotkeys.
|
|
|
|
Since this is a literal, it can be declared statically.
|
|
Split this into a more descriptive function. Still need to set up proper
error handling.
|
|
Allow toggling with both <C-M-D-8> and <F8>.
|
|
Ensure the object is released.
|
|
Replaced by `[NSApp run]`.
|
|
When the registered global hotkey is pressed, toggle screen colour
inversion.
Move the colour inversion code to the `Invert` class.
|
|
Build DDHotKey as a static library so we can compile it with ARC turned
on and our project with ARC turned off. Since DDHotKey is written with
ARC, if I include its headers directly, I'd need to enable ARC on my
project in order to compile it.
Initialise an `NSApplication` to give us an environment in which to
register the global hotkey.
A new class `Invert` will respond to the hotkey and respond accordingly.
|
|
|
|
Trying this out for registering a global hotkey.
|
|
Found an easy function to remove the colour inversion. Now I need to
enable toggling between the two with a keyboard shortcut.
|
|
Previously, I was only inverting the main display. Get a list of active
displays and invert all of them.
Decided to set the maximum display count to eight because that seemed
like a sufficiently high number for most people.
|
|
More descriptive this way.
|
|
|
|
|
|
Rather than sleeping, keep the program active until it's exited
manually.
|
|
Invert the screen colours for as long as the program is active. Only
works on the main display currently.
Inspired by Nikolai Ruhe's
(https://stackoverflow.com/users/104790/nikolai-ruhe) answer on Stack
Overflow about screen colour inversion:
https://stackoverflow.com/questions/14163788/how-does-on-screen-color-inversion-work-in-os-x/14165523#14165523
and this question:
https://stackoverflow.com/questions/32823023/permanently-modifying-rgb-gamma-table
|