Skip to content

Instantly share code, notes, and snippets.

@heygarrett
Last active September 6, 2019 07:02
Show Gist options
  • Save heygarrett/5564265 to your computer and use it in GitHub Desktop.
Save heygarrett/5564265 to your computer and use it in GitHub Desktop.
Solarized: Night & Day
" Set colorscheme to solarized
colorscheme solarized
" Change the Solarized background to dark or light depending upon the time of
" day (5 refers to 5AM and 17 to 5PM). Change the background only if it is not
" already set to the value we want.
function! SetSolarizedBackground()
if strftime("%H") >= 5 && strftime("%H") < 17
if &background != 'light'
set background=light
endif
else
if &background != 'dark'
set background=dark
endif
endif
endfunction
" Set background on launch
call SetSolarizedBackground()
" Every time you save a file, call the function to check the time and change
" the background (if necessary).
if has("autocmd")
autocmd bufwritepost * call SetSolarizedBackground()
endif
@heygarrett
Copy link
Author

@aaronbieber
Copy link

I revised it slightly to be more efficient by not reloading your whole .vimrc and only changing the background setting when it hasn't already been set to the desired value.

https://gist.github.com/aaronbieber/5604155

@heygarrett
Copy link
Author

@aaronbieber Thanks! The only issue, though, is that it does not have an existing background value work with and thus, launches with the Dark background by default. If it's daytime, it won't be until you save the file that it will change to Light. I've updated my gist to combine yours in a way that works, although, a bit repetitively.

@aaronbieber
Copy link

Instead of repeating the logic that is already in the function, replace your second section (starting "Launch vim with light background...") to just call SetSolarizedBackground().

Always be DRY (Don't Repeat Yourself).

@heygarrett
Copy link
Author

@aaronbieber Ah, didn't think about that. Fixed. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment