The first non-jailbroken iOS (and macOS) application to adjust the screen temperature, brightness, and color!

Related tags

Image GoodNight
Overview

GoodNight

Project name thanks to @Emu4iOS.

Based off of Thomas Finch's GammaThingy.

GoodNight is an app that allows you to directly access the screen's gamma levels, and modify it using IOMobileFramebuffer. With this you can do any of the following:

  • Change the screen temperature
  • Put the brightness lower than iOS would normally allow you to
  • Adjust the RGB values of the framebuffer

This application uses dlsym, which loads in the private symbols at runtime, rather than using headers, so no additional setup is needed once you download the source.

Installing

See [here] (Help/README.md) for written instructions.
Click on [this link] (https://www.youtube.com/watch?v=Yu62IlaqPQM) to see the official install video.

Compatibility

I am certain that this app will run on any iOS device running iOS 7 or higher.

Widget

The widget's gamma toggle button just toggles between night gamma and gamma off (like the enable button in the temperature part of the app). It overrides the auto updates until the next cycle:

  • So if you enable gamma with the widget while auto is in day mode it will keep gamma enabled until auto will turn to day the next morning.
  • If you enable gamma and after that disable gamma with the widget, both during daytime, it will keep gamma deactivated until the next day sunset.
  • If you disable gamma with the widget while auto is in night mode it will keep gamma disables until auto will turn to day the next evening.
  • If you disable gamma and after that enable gamma with the widget, both during night time, it will keep gamma activated the complete next day until it reaches sunrise again.

Bedtime mode will only be activated if at that time the screen has active gamma. Else the bedtime mode will be skipped.

The darkroom button turns on darkroom mode and on deactivation of darkroom mode resumes to automatic mode immediately.

macOS Version

The macOS version of GoodNight is out! You can currently enter RGB values between 0 and 255 for red, green, and blue values, enable a darkroom mode, and adjust the color temperature of the display. It also has Touch Bar support! More features will be coming soon. You can download the always up-to-date binary distribution release from here.

Installing

It is crucial that you copy the application to the applications folder on your Mac. If you get an error while attempting to open the app, open up terminal, and type in this command:
sudo spctl --master-disable
Press return after you enter your password and try again. It should open successfully.

Comments
  • Feature request: A more compact widget

    Feature request: A more compact widget

    Hi all, This is a fantastic piece of work, and I want to thank everyone who contributed!

    I have one small feature request: it seems that currently the widget occupies way more screen real estate than it needs. The text is carried over to two lines instead of one (it may fit on one for larger-screen devices). Also, the text is possibly not needed, since the button names are completely self-explanatory. I prefer my widgets as compact as possible, and this is no exception :) I tried to modify it myself, but have so little iOS development experience that even something as simple as attempting to remove the text caused a huge visual mess.

    Thanks again everyone, Eugene

    enhancement help wanted 
    opened by eyv 26
  • App Crashing

    App Crashing

    Just installed the latest build and as always I delete the old version before installing a new one. Followed all the steps since I know this has the new widget so there's extra things to change. Everything installed fine.

    I launch the app and go to enable color changing (location) and the prompt comes up to allow location when using the app, I click allow. The color changing (location) option is still disabled so I try to turn it on again and the app crashes. I try to re-open the app and it crashes on launch. I can't open the app anymore even if I kill it from the task switcher.

    Additionally, I tried uninstalling, rebooting and reinstalling GoodNight. Still does the same as I previously said.

    Reverted to Dec 20th build before widget and App Groups was added and everything seems fine.

    invalid 
    opened by scottyd5 21
  • App crashing on iOS 9.3.2 Beta 1

    App crashing on iOS 9.3.2 Beta 1

    This app has been installed for quite some time now and has worked great on 9.3 and 9.3.1. Now I'm running 9.3.2 Beta 1 and it crashes right after opening. It still shows in the app switcher, and selecting it will cause it to crash again. Has anyone else been having this issue? Any thoughts on the cause?

    opened by JLWFuQrioea69ugsykvQcg 14
  • New Build Issue

    New Build Issue

    A few widget observations. Using "Gamma On" doesn't seem to play nicely with using the color changing time setting. If have Color Changing (Time) enable, enabling Gamma On changes it to 3400K overriding the daytime setting (5000K) I have specified. Disabling Gamma On/Off, returns the screen to 6500K instead of the original 5000K but leaves the Color Changing (Time) button enabled. The screen doesn't revert to the correct temperature until I disable/reenable the time based setting.

    Also, if I turn Gamma On in the widget, then enable Darkroom On in the widget, the screen becomes a greyscale of sorts (sometimes). If I enable Darkroom On, then enable Gamma On, gamma comes on but the darkroom toggle doesn't revert to darkroom on. If I enable Gamma On and then disable it, then enable Darkroom on, the screen also goes to greyscale. This is on an iPhone 6.

    opened by JLWFuQrioea69ugsykvQcg 14
  • Warning Alerts, Visualization of current temperature, Bugfixes for night mode and animations

    Warning Alerts, Visualization of current temperature, Bugfixes for night mode and animations

    • Warning Alerts if brightness or custom color is set too low. Manual override possible.
    • Added visualization of current color temperature with second transparent slider thumb
    • Bugfix for enabling of night mode and possible simultaneous animations
    opened by mariokorte 13
  • Compatibility check and added darkroom mode to brightness controller

    Compatibility check and added darkroom mode to brightness controller

    • Compatibility check added to give the user information about problems on some devices
    • Using the findings of @milch I added a darkroom mode to the brightness controller (Manual selection and new option when turning brightness too low)
    opened by mariokorte 8
  • 64bit code, VOIP BG mode, notifications, eye candy

    64bit code, VOIP BG mode, notifications, eye candy

    • This commit fixes building for 64bit systems.
    • Also it utilizes the VOIP background mode (keep alive timer) to regularly update the screen temperature every 10 minutes. The backgroundFetch approach is quite random in execution as iOS picks the update times as it pleases (the setMinimumBackgroundFetchInterval is just the minimum time period of execution.)
    • Additionally the local notifications have been broken for me. Update them only when needed and use the repeat interval.
    • Added a little visual eye candy (just move those sliders).
    opened by mariokorte 8
  • Temperature setting switches to default randomly

    Temperature setting switches to default randomly

    iOS 9.1, iPhone 6s. Compiled with Xcode 7.1

    iOS reverts back to a default temperature in a random manner (i.e. browsing AppStore, loading Facebook or any other third-party apps). Going back to GoodNight app fixes it for another few hours.

    Happens both in manual and automatic mode.

    bug help wanted 
    opened by insmac 7
  • iPhone 6 maintaining orange hue after disabling temperature change.

    iPhone 6 maintaining orange hue after disabling temperature change.

    I have auto change temperature activated (night mode as well) and in the morning after the app has reverted, there's still an orange-ish hue to the color of the device. If I restart it changes back to its correct color. My iPad Air 2 doesn't seem to do that.

    opened by joshuacole 6
  • When you try to enable

    When you try to enable "Automatic Color Changing", the app just closes.

    Fresh install. ios 9.2. You enable temperature and as soon as you try to enable "Automatic Color Changing" the app just closes (goes back to home).

    opened by ghost 6
  • Crashes when compiled on Xcode 7.3 Beta

    Crashes when compiled on Xcode 7.3 Beta

    As it turns out, the crashing issue is unrelated to iOS 9.3 Beta. Instead, it is an issue only when compiled with Xcode 7.3 beta. Since the original report is closed, I have started a new one.

    2016-01-17 12 34 45

    Can anyone kindly look into this issue?

    Thanks!

    opened by vista980622 5
  • Fix markdown/install links in readme and tidy up

    Fix markdown/install links in readme and tidy up

    A couple of minor formatting improvements; this makes the install links be links (extra space previously), and formats the install command as a code block.

    opened by davidjb 0
  • Update README.md

    Update README.md

    Original: “ It is crucial that you copy the application to the applications folder on your Mac. If you get an error while attempting to open the app, open up terminal, and type in this command:

    Revision: “ It is crucial that you copy the application to the application folder on your Mac. If you get an error while opening the app, open up terminal, and type in this command:

    opened by linshaodongsam 0
  • Goodnight not turning on and off (with location or time set)

    Goodnight not turning on and off (with location or time set)

    using iphone 5 on the latest ios (10.2.1) i used the correct settings (app working on the background) The app is not open but that isn't a problem i presume.

    if this is only an issue for me, how can i resolve it?

    thanks!

    opened by wouterappleid 1
  • app crashes right after running - iOS 10.2 and iPhone 5

    app crashes right after running - iOS 10.2 and iPhone 5

    running iPhone 5 and iOS 10.2 here's the log output:

    objc[38993]: Class PLBuildVersion is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x115e144c) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x11422b78). One of the two will be used. Which one is undefined. 2017-02-08 20:59:33.932 GoodNight[38993:1034330] *** Assertion failure in +[IOMobileFramebufferClient initialize], /Users/dfl/Downloads/GoodNight-master/GoodNight/IOMobileFramebufferClient.m:27 2017-02-08 20:59:33.936 GoodNight[38993:1034330] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: IOMobileFramebufferHandle' *** First throw call stack: ( 0 CoreFoundation 0x00bcbbf2 _exceptionPreprocess + 194 1 libobjc.A.dylib 0x00684e66 objc_exception_throw + 52 2 CoreFoundation 0x00bcfd12 +[NSException raise:format:arguments:] + 130 3 Foundation 0x00284af4 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 94 4 GoodNight 0x000e816e +[IOMobileFramebufferClient initialize] + 366 5 libobjc.A.dylib 0x00685bfc CALLING_SOME+initialize_METHOD + 31 6 libobjc.A.dylib 0x00685ddd _class_initialize + 473 7 libobjc.A.dylib 0x0068c225 lookUpImpOrForward + 187 8 libobjc.A.dylib 0x0068c165 _class_lookupMethodAndLoadCache3 + 30 9 libobjc.A.dylib 0x006979d4 objc_msgSend_uncached + 52 10 GoodNight 0x00108700 +[GammaController initialize] + 96 11 libobjc.A.dylib 0x00685bfc CALLING_SOME+initialize_METHOD + 31 12 libobjc.A.dylib 0x00685ddd _class_initialize + 473 13 libobjc.A.dylib 0x0068c225 lookUpImpOrForward + 187 14 libobjc.A.dylib 0x0068c165 _class_lookupMethodAndLoadCache3 + 30 15 libobjc.A.dylib 0x006979d4 _objc_msgSend_uncached + 52 16 GoodNight 0x000ff05e -[AppDelegate application:didFinishLaunchingWithOptions:] + 382 17 UIKit 0x013ea4a7 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 296 18 UIKit 0x013ec0ed -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 4780 19 UIKit 0x013f30a4 -[UIApplication _runWithMainScene:transitionContext:completion:] + 2004 20 UIKit 0x014147d5 __84-[UIApplication _handleApplicationActivationWithScene:transitionContext:completion:]_block_invoke.3129 + 53 21 UIKit 0x013efcc2 -[UIApplication workspaceDidEndTransaction:] + 172 22 FrontBoardServices 0x072921a5 __37-[FBSWorkspace clientEndTransaction:]_block_invoke_2 + 59 23 FrontBoardServices 0x07291cc5 __40-[FBSWorkspace _performDelegateCallOut:]_block_invoke + 49 24 FrontBoardServices 0x072bb66c FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK + 23 25 FrontBoardServices 0x072bb4cd -[FBSSerialQueue _performNext] + 166 26 FrontBoardServices 0x072bb8ad -[FBSSerialQueue _performNextFromRunLoopSource] + 52 27 FrontBoardServices 0x072bacc7 FBSSerialQueueRunLoopSourceHandler + 29 28 CoreFoundation 0x00b6aedf CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 15 29 CoreFoundation 0x00b4efa7 __CFRunLoopDoSources0 + 519 30 CoreFoundation 0x00b4e434 __CFRunLoopRun + 1124 31 CoreFoundation 0x00b4dd5b CFRunLoopRunSpecific + 395 32 CoreFoundation 0x00b4dbbb CFRunLoopRunInMode + 123 33 UIKit 0x013ee33b -[UIApplication _run] + 542 34 UIKit 0x013f4ff3 UIApplicationMain + 148 35 GoodNight 0x00106bec main + 140 36 libdyld.dylib 0x03bf3799 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb)

    opened by dfl 0
Owner
Anthony Agatiello
iOS, Mac, watchOS, & tvOS developer. I also hack/reverse engineer stuff.
Anthony Agatiello
SwiftColorArt is a demo application that includes Swift files with all classes and extension necessary to create a font color schema matching to an image

SwiftColorArt SwiftColorArt is a demo application that includes Swift files with all classes and extension necessary to create a font color schema mat

Jan Gregor Triebel 264 Jan 4, 2023
Globally change the appearance of the application. Light/Dark mode and color.

About I tried to create a project where you can globally change the appearance of the application. Perhaps someone was looking for such a solution. ⭐️

Aleksandr Buiakov 5 Aug 30, 2022
new home for the non-Metal framework shims!

Moraea non-Metal Frameworks The core of the non-Metal patches: wrappers for downgraded frameworks, consisting of a mixture of autogenerated stubs and

Moraea 9 Jan 1, 2023
Screen translator for macOS with Apple Vision API and IBM Watson, Google Cloud Translator

Swifty-OCR-Translator Screen translator for macOS with Apple Vision API and IBM Watson, Google Cloud Translator Usage Select Translator Fill in the AP

Kwangmin Bae 21 Sep 13, 2022
Random image and background color with swift

Random-image-and-background-color Hello, this is my first project. Frankly, I got this idea from the "IOS Academy" page, but: color scale for the back

imhalid 2 Apr 12, 2022
🎨 Mondrian is lightweight Swift package that provides a universal basis for your design system's color palette.

??‍?? Mondrian Mondrian provides a universal basis on which to build your design system's color palette right from your codebase. With support for all

Klaas Schoenmaker 1 Nov 24, 2021
Cordova plugin to display a native color-picker dialog

Color Picker Plugin for Cordova (cordova-plugin-color-picker) Description This plugin allows you to display a color-picker native dialog in iOS and An

Antonio Vargas 1 May 10, 2022
Small color quantizer for bitmaps without any dependencies or use of frameworks

MicroColorQuantizer This package currently offers a very simple color quantizer

Robert Bruinier 0 Dec 29, 2021
XcodeColorSense - An Xcode plugin that makes working with color easier.

XcodeColorSense An Xcode plugin that makes working with color easier. Inspired by ColorSense-for-Xcode with extra care for Hex color Features Show col

Khoa 77 Jul 1, 2022
In-app screen recording using ReplayKit in iOS. Written in Swift 5 on Xcode 12.3

In-App-ScreenRecording-iOS In-app screen recording using ReplayKit in iOS. Written in Swift 5 on Xcode 12.3 Features: Recording application screen onl

Ahmed Abdelkarim 4 Dec 23, 2022
Changes screen gamma on iOS, no jailbreak required

GammaThingy Changes screen gamma on iOS, no jailbreak required RIP official sideload f.lux (https://justgetflux.com/sideload/) ?? With the new Night S

Thomas Finch 771 Nov 3, 2022
AYImageKit is a Swift Library for Async Image Downloading, Show Name's Initials and Can View image in Separate Screen.

AYImageKit AYImageKit is a Swift Library for Async Image Downloading. Features Async Image Downloading. Can Show Text Initials. Can have Custom Styles

Adnan Yousaf 11 Jan 10, 2022
Swift image slideshow with circular scrolling, timer and full screen viewer

?? ImageSlideshow Customizable Swift image slideshow with circular scrolling, timer and full screen viewer ?? Example To run the example project, clon

Petr Zvoníček 1.7k Dec 21, 2022
A simple Image full screen pop up

CLImageViewPopup Description A simple UIImageView for easy fullscreen image pop up. No matter where your UIImageView may be. Image pops up from where

Vineeth Vijayan 36 Apr 29, 2021
Roll marbles into set positions on screen

Marble-Tilt Roll Marbles into set positions on screen Paul Hudson Hacking with Swift - project 26 - Took most of the code and created my own spin on i

Scott Mayhew 0 Dec 11, 2021
Metazoom - A virtual camera plugin to pixellatedly share your screen

MetaZoom A virtual camera plugin to pixellatedly share your screen. See LICENSE.

Sahil Lavingia 22 Jan 4, 2023
A simple Image full screen pop up

CLImageViewPopup Description A simple UIImageView for easy fullscreen image pop up. No matter where your UIImageView may be. Image pops up from where

Vineeth Vijayan 36 Apr 29, 2021
Easily display images, animations, badges and alerts to your macOS application's dock icon

DSFDockTile Easily display images, animations, badges and alerts to your macOS application's dock icon. Why? I was inspired by Neil Sardesai after he

Darren Ford 45 Dec 2, 2022
Simple camera application for iOS that uploads pictures to WebDAV server or Dropbox quickly. Available on the AppStore.

Upupu Simple camera application for iOS that uploads pictures to WebDAV server or Dropbox quickly. Also available on the AppStore. Features Easy and f

Xcoo 65 Nov 15, 2022