Skip to content

Instantly share code, notes, and snippets.

@ChiChou
Created October 12, 2018 06:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ChiChou/c3a57f09ab2764ccc92e2315d0b8f3cb to your computer and use it in GitHub Desktop.
Save ChiChou/c3a57f09ab2764ccc92e2315d0b8f3cb to your computer and use it in GitHub Desktop.
If you don't want invert color
// clang -shared -undefined dynamic_lookup -o /Applications/Dash.app/Contents/MacOS/libDash.dylib Dash.m
// optool install -c load -p @executable_path/libDash.dylib -t /Applications/Dash.app/Contents/MacOS/Dash
#import <Foundation/Foundation.h>
#import <objc/runtime.h>
static void pleasedontinvertwebview(/* we don't care about the args */) {
NSLog(@"oops");
}
static void pleasedontinvertimages(id self, id sel, NSURL *url) {
NSError *err = nil;
NSString *content = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&err];
if (err) return;
NSArray *lines = [content componentsSeparatedByString:@"\n"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] 'invert()'"];
NSArray *filtered = [lines filteredArrayUsingPredicate:predicate];
NSString *style = [filtered componentsJoinedByString:@"\n"];
[style writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
__attribute__((constructor)) static void webview() {
return;
Method m = class_getInstanceMethod(NSClassFromString(@"DHWebView"),
NSSelectorFromString(@"setContentFilters:"));
if (m) method_setImplementation(m, (IMP)pleasedontinvertwebview);
m = class_getInstanceMethod(NSClassFromString(@"WebPreferences"),
NSSelectorFromString(@"setUserStyleSheetLocation:"));
if (m) method_setImplementation(m, (IMP)pleasedontinvertimages);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment