tyrrrz / lightbulb Goto Github PK
View Code? Open in Web Editor NEWReduces eye strain by adjusting gamma based on the current time
License: MIT License
Reduces eye strain by adjusting gamma based on the current time
License: MIT License
Hi there,
Ok let me tell you this is the best of is kind, works like a boss, the one problem i have find is for some reason doesn't work in fullscreen, especial in games. the only way to work is to put the day-time color all the way down. please fix this :(
Current behavior
Program is installed and saves settings to AppData\Roaming\Configuration.dat
Requested behavior
A ZIP or self-extracting archive that will run in place and save settings locally.
Use cases
Possible issues
Notably this can make updating the client more complicated as you have to know to update some files and not others, so it is recommended as an optional setting or a separate version.
Hello! I'm on windows 10 with the latest updates, and the latest release of LightBulb. I have a minor issue where if I'm opening any sort of menu in Wizard101 -- the screen flickers back to non-yellow for 1-2 seconds and then back.
Whenever I come home my desktop (not off, sleeping or hibernating. The monitors just turn off), I wake my monitors and lightbulb is not applied. It doesn't say it's disabled, but I have to click around in the settings for it to apply again.
Any way to bring down the overall RAM in use by the program? On my Win7-64 machine it's using almost 66 megs. I realize this isn't a big deal for most users but my work machine (where I really need this program) is a fairly low-end system.
I don't know how possible this is in a C# framework but thought I'd ask.
I turned on the internet sync option, but the sunset time is stack on the sunset time when I first set Lightbulb.
Any idea way?
Do you have plans to make versions for linux?
I have LightBulb running for some time already, but it's still reporting the location as "". I expected it to be wrongly detected (corporate network egress node is in London), but I don't have even that. GeoInfo
in a configuration file is null
. What may be blocking it?
LightBulb version: 1.6.3.4 (portable)
Operating system: Windows 7 Ultimate 64-bit
Make it pause LightBulb only on the monitor which hosts the fullscreen application
Reproduce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ICM
;Advanced
tab, will show up an error.Cause
The LightBulb uninstaller seems to delete a whole registry key of ICM which will make colorcpl.exe
throw an error in Advanced tab.
The code I checked in Deploy/Installer/Installer.iss
, and found:
[Registry]
; Change valid gamma range
Root: HKLM; Subkey: "Software\Microsoft\Windows NT\CurrentVersion\ICM"; ValueType: dword; ValueName: "GdiICMGammaRange"; ValueData: "256"; Flags: uninsdeletekey
Still me as always 🙃
When the computer enters sleep mode or hibernation while LightBulb has dimmed the colour temperature, it remains dimmed after waking up the computer at daytime. Toggling LightBulb off and on again helps.
Next time I encounter this issue I will check whether or not shortening the transition duration helps in seeing the right colour temperature sooner.
edit: this was with version 1.2, I think. Is there any way of checking the current LightBulb version?
Hey, this is almost going to look like a post, on whats wrong and could be improved.
So I have been using LightBulb for a few days and noticed that 'Pause if fullcsreen' checks current window only.
So for example, if I play LoL on Borderless, it will work great, as soon as I tab out (lets say to a chat for a few secs) it starts transitioning back to night mode. Tab back into game, and it transitions back.
Slightly annoying.
Another king I have with this is that it affects the whole desktop. (I am not sure if this would be possible to fix but...)
It would be great if it only affected the monitor that has the fullscreen app running.
So for example, one monitor runs a game, and is in day mode, secondary monitor is in night mode.
Otherwise great app, loving it : )
Thank you,
xTheEc0
Currently internet sync uses IP to determine location, which may not work very well for users that don't connect to internet directly.
As a workaround, it's possible to set sunrise and sunset times manually, but it eliminates the comfort of having them update automatically throughout the year.
Hi,
Thanks for this wonderful software. Would it be possible to add internationalization support to allow translation?
Regards,
Yvan
After screen turns off after the usual 2-3 minutes, when I move mouse and it lights up.. LB turns is off (until I toggle enabled/disable).
If I duplicate the displays (instead of "extend") it all works correctly.
A ICC profile stores gamma values for use by a display calibration software. Both the built in Color Management in Windows and F.lux support this format.
I am using QuickGamma to fine tune the gamma values (and it gives you easily reproducible values), though there are dedicated sites to share ICC profiles.
I tested LightBulb's portable version and it resets the gamma values to 2.2 ( Windows default). I hope LightBulb can add support for these profiles.
Well either way, nice app!
I know it work as intended (full brightness on fullscreen window). But please make an exception for the start screen. Need to close my eyes or look some where else on every transition back from start screen to the desktop. Really annoying.
Really neat. Settings do not save on my computer. I'm not running the program as admin, using Windows 10 64-bits.
I changed the settings by editing the .dat and everything seems to be fine now. So I figure it's a saving issue rather than a reset issue. I just re-tried it settings are now saved via the UI. Could it be the fact that I did not exit LightBulb before shutting down my computer? Cannot test at the moment.
F.lux can go as down as 1200k.
2500 feels so daytime basically.
Maximum in flux is just 6500K, and similarly seems default in AMD driver (which stores the setting in HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000\DAL2_DATA__2_0\DisplayPath_#¶\EDID_####_###\Adjustment
btw).
I'm not sure if that's supposed to be default T for windows in general, or not.. But perhaps what about changing the last notch to a simple "disabled"?
Thanks for the great program, Fl.ux's hotkey disable only works for 1 hour at time.
I like to use Lightbulb when am programming at all times of the day. But I can switch to design very quickly. I have it set all the way down. As such the transition takes a whole 6 seconds when I toggle :)
Just being nit picky, but I would happy with more imitate transition.
Clicking on the desktop makes LightBulb reset the current temperature to daytime (6600K) as if an application switched to fullscreen.
Clicking back and giving focus to any other program makes the temperature go back to normal.
This happens with proper fading.
I can replicate this by also switching between two windows: let's say I have Discord and Chrome, with Chrome being in the foreground and Discord being the 2nd application in the "Windows focus order". Clicking the Chrome icon in the taskbar or using the top-left button will minimize its window and will switch the focus back to Discord. This will make the temperature go back to 6600K and, once the fading animation has terminated, it will switch back to whatever the temperature was without fading.
This does not happen if I click on Discord manually or using Alt+Tab.
I can replicate the 2nd case with basically any window - tried to use two basic explorer windows as well.
Killing the explorer.exe process does not change anything (worth a try).
I also tried to close as many background apps as possible without success. I do not use Rainmeter nor any related or similar programs.
I'm on Windows 10 (1607 version).
So.. While I was checking the other computer for #29, I right clicked on LB icon... And nothing happened.
I tried again, again, again and nothing.
So I opened task manager and I noticed that LB was like 300MB of memory.... Whatever I thought?
Then I clicked again and.. boy, it skyrocketed to 1.2GB
Then it suddenly went down to 100, last but not least like 200 and it crashed.
All without never ever showing the settings menu.
Application: LightBulb.exe
Frramework version: v4.0.30319
Description: the process was terminated due to an unhandled exception.
Exception Info: System.OutOfMemoryException
in System.Windows.Media.Composition.DUCE+Channel.SyncFlush()
in System.Windows.Interop.HwndTarget.UpdateWindowSettings(Boolean, System.Nullable`1<ChannelSet>)
in System.Windows.Interop.HwndTarget.UpdateWindowPos(IntPtr)
in System.Windows.Interop.HwndTarget.HandleMessage(MS.Internal.Interop.WindowMessage, IntPtr, IntPtr)
in System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
in MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
in MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
in System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
in System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
in System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
in MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
in MS.Win32.UnsafeNativeMethods.SetWindowPos(System.Runtime.InteropServices.HandleRef, System.Runtime.InteropServices.HandleRef, Int32, Int32, Int32, Int32, Int32)
in System.Windows.Interop.HwndSource.Resize(System.Windows.Size)
in System.Windows.Interop.HwndSource.OnLayoutUpdated(System.Object, System.EventArgs)
in System.Windows.ContextLayoutManager.fireLayoutUpdateEvent()
in System.Windows.ContextLayoutManager.UpdateLayout()
in System.Windows.UIElement.UpdateLayout()
in System.Windows.Interop.HwndSource.SetLayoutSize()
in System.Windows.Interop.HwndSource.set_RootVisualInternal(System.Windows.Media.Visual)
in System.Windows.Interop.HwndSource.set_RootVisual(System.Windows.Media.Visual)
in System.Windows.Controls.Primitives.Popup.SetRootVisualToPopupRoot()
in System.Windows.Controls.Primitives.Popup.CreateWindow(Boolean)
in System.Windows.Controls.Primitives.Popup.OnIsOpenChanged(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs)
in System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)
in System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)
in System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs)
in System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex, System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef, Boolean, Boolean, System.Windows.OperationType)
in System.Windows.DependencyObject.InvalidateProperty(System.Windows.DependencyProperty, Boolean)
in System.Windows.Data.BindingExpressionBase.Invalidate(Boolean)
in System.Windows.Data.BindingExpression.TransferValue(System.Object, Boolean)
in System.Windows.Data.BindingExpression.ScheduleTransfer(Boolean)
in MS.Internal.Data.ClrBindingWorker.NewValueAvailable(Boolean, Boolean, Boolean)
in MS.Internal.Data.PropertyPathWorker.UpdateSourceValueState(Int32, System.ComponentModel.ICollectionView, System.Object, Boolean)
in MS.Internal.Data.PropertyPathWorker.OnDependencyPropertyChanged(System.Windows.DependencyObject, System.Windows.DependencyProperty, Boolean)
in MS.Internal.Data.ClrBindingWorker.OnSourceInvalidation(System.Windows.DependencyObject, System.Windows.DependencyProperty, Boolean)
in System.Windows.Data.BindingExpression.HandlePropertyInvalidation(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs)
in System.Windows.Data.BindingExpressionBase.OnPropertyInvalidation(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs)
in System.Windows.Data.BindingExpression.OnPropertyInvalidation(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs)
in System.Windows.DependentList.InvalidateDependents(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs)
in System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs)
in System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex, System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef, Boolean, Boolean, System.Windows.OperationType)
in System.Windows.DependencyObject.SetValueCommon(System.Windows.DependencyProperty, System.Object, System.Windows.PropertyMetadata, Boolean, Boolean, System.Windows.OperationType, Boolean)
in System.Windows.DependencyObject.SetValue(System.Windows.DependencyProperty, System.Object)
in Hardcodet.Wpf.TaskbarNotification.TaskbarIcon.OnToolTipChange(Boolean)
in Hardcodet.Wpf.TaskbarNotification.Interop.WindowMessageSink.ProcessWindowMessage(UInt32, IntPtr, IntPtr)
in Hardcodet.Wpf.TaskbarNotification.Interop.WindowMessageSink.OnWindowMessageReceived(IntPtr, UInt32, IntPtr, IntPtr)
in MS.Win32.UnsafeNativeMethods.IntGetMessageW(System.Windows.Interop.MSG ByRef, System.Runtime.InteropServices.HandleRef, Int32, Int32)
in MS.Win32.UnsafeNativeMethods.GetMessageW(System.Windows.Interop.MSG ByRef, System.Runtime.InteropServices.HandleRef, Int32, Int32)
in System.Windows.Threading.Dispatcher.GetMessage(System.Windows.Interop.MSG ByRef, IntPtr, Int32, Int32)
in System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
in System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
in System.Windows.Application.RunDispatcher(System.Object)
in System.Windows.Application.RunInternal(System.Windows.Window)
in System.Windows.Application.Run(System.Windows.Window)
in LightBulb.App.Main()
I'm seeing "Geographical location is undetermined" on both installs of Lightbulb, Laptop and Desktop.
Are they going to be added again?
How to powerboot?
In f.lux we can force a smooth toogle to the current temperature change.
This would be nice for this tool too.
Hey,
I set a hotkey for disabling Gamma Polling with (CTRL + ALT + 1), but whenever I try to change it, it seems to crash.
Let me know if I should provide logs of sorts.
EDIT: Tried it with the other options as well and it crashes. Fixed the problem for now by editing the .dat file.
Started noticing that Shell becomes laggy after using LightBulb for around 6 hours.
Symptoms: menus, tooltips, win32 software controls, etc take longer to render and appear more jittery. Everything else seems unaffected. Closing LightBulb fixes the issue.
May be related to running another GPU accelerated software along with it. Still trying to pinpoint the issue.
If anyone experienced the same - please comment, specifying your GPU brand.
Like.. This morning I resumed from standby, it was stuck to night temp.
Tonight then, I just realized it didn't already triggered.
Only manually disabling/enabling unstucked the thing, but I wouldn't know if tomorrow it mightn't happen again.
Is there anyway I can take a memory dump or something to add more detail (I still haven't restarted the program)?
From this comment discussion.
Screenshot of the relevant part:
Is there plans to add support for modes, like in f.lux? I only use movie one, but there is darkroom and safe one,
A license should be added to this project's repository, see Choose a License for more information.
Last step of installer suggests that you restart the computer.
edit: did it just try to restart when i selected NO..?
Desktop gets like inverted blue or something for some seconds.. Then switch back to normal.
Just started using this program, it seems like a great alternative to f.lux. I have a feature request:
I have Philips Hue smart lights in my room which I used to have synced to f.lux's colour temperature, up until a change to the Hue API broke its ability to authenticate with the bridge which I only noticed after a clean Windows install (they said that there would be an update to fix this but there still hasn't been).
I realise that probably not many people have Hue lights, but this is the only feature that I'm missing that f.lux had and it would be great to have it built into Lightbulb.
Hi,
I tested the manual proxy settings. It does not work currently.
The test here is never true (even with args.PropertyName
containing "Proxy"). Therefore UpdateConfiguration
is never called and the proxy is not set. There may be a bug or a misuse of the extension method IsEither
.
By the way you should modify the host example you provided in the Proxy wiki page. The host should not have the http://
prefix: http:// proxy.server.com
(https://msdn.microsoft.com/fr-fr/library/xfsh37cx(v=vs.110).aspx#Notes)
you already have users editing their own config, so simple feature request: can a 'hidden' value be added so than no icon is displayed in the taskbar - obviously this would be an advanced feature (no way to quit) so I would think that it not being accessible in the GUI is fine.
Only other thing - can the program look for a configuration file in its own folder by itself rather than having to specify portable (ie it looks and uses if found, if not then assumes no portable), or even some dummy file ('portable.blank' or something) which if found will run as portable. seems simpler than using the batch file to launch, means that in every case you just run the exe (after registry file).
I recently switched from f.lux after discovering that it has started collecting usage data and it was made opt-out and am glad to have found LightBulb.
One feature that I always used on f.lux is a custom geolocation - I work nights so standard sunrise/sunset times don't work well for my body clock. I used to set the geolocation as somewhere across the other side of the world. I'd be grateful if this could be added as a feature, thanks!
I wouldn't know the exact Windows function, though lightbulb shows up in msi afterburner active 3D processes list.
Now, should there be any problem, I'm sure I could easily blacklist the executable.. But I was wondering if this thing was an actual hard requirement (perhaps part of the functional differences that makes this better than flux) or something of a perhaps slip.
<-- this was taken in 7
I just now noticed the thing, since in Vista (when you are in the "customize notification area" panel) only the later is shown.
Guess like that should say Lightbulb too?
Possibly
https://msdn.microsoft.com/en-us/library/windows/desktop/hh298404(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/062478za(v=vs.110).aspx
I find myself constantly switching the brightness during day and evening.
Could you add an option to automatically change brightness along with screen temperature?
Also, it would be neat if auto-brightness change could come at separate time with yellow-tint. I'd prefer to have my screen dimmed around 6p.m., when the sun goes down, but the orange filter is needed only at 23p.m. - one hour before bedtime.
I don't know if it's worth the hassle, but I'd really enjoy that kind of setup.
LightBulb disables/restarts itself when launching a game on MAME 0.189 or closing the emulator, even though I haven't checked the option to disable it on fullscreen.
LightBulb 1.6.3.4
MAME 0.189 64-bit
Windows 10 64-bit
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.