diff --git a/.gitattributes b/.gitattributes
index d4ce6e8d..0f2a5847 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -12,24 +12,25 @@ PreBuiltFrameworks/Solar.framework.zip filter=lfs diff=lfs merge=lfs -text
PreBuiltFrameworks/Sparkle.framework.zip filter=lfs diff=lfs merge=lfs -text
PreBuiltFrameworks/SwiftyBeaver.framework.zip filter=lfs diff=lfs merge=lfs -text
Releases/Lunar-latest.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-1.0.0.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-1.0.6.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-1.1.1.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-2.1.2.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-2.1.1.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-2.2.1.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-1.0.1.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-1.0.7.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-2.0.0.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-2.0.1.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-2.0.3.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-2.1.0.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-2.2.0.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-2.2.2.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-1.0.2.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-1.0.3.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-1.0.4.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-1.0.5.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-1.1.0.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-2.0.2.dmg filter=lfs diff=lfs merge=lfs -text
-Releases/Lunar-2.3.0.dmg filter=lfs diff=lfs merge=lfs -text
+Releases/Lunar-2.3.1.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-2.1.1.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-2.2.0.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-1.0.1.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-1.0.3.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-1.0.6.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-1.1.0.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-2.0.1.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-2.0.2.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-2.2.2.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-1.0.4.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-1.0.5.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-1.1.1.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-2.0.0.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-2.3.0.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-1.0.2.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-1.0.7.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-2.2.1.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-1.0.0.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-2.0.3.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-2.1.0.dmg filter=lfs diff=lfs merge=lfs -text
+LegacyReleases/Lunar-2.1.2.dmg filter=lfs diff=lfs merge=lfs -text
diff --git a/.gitsecret/paths/mapping.cfg b/.gitsecret/paths/mapping.cfg
index e9657600..2948aa2b 100644
--- a/.gitsecret/paths/mapping.cfg
+++ b/.gitsecret/paths/mapping.cfg
@@ -1,2 +1 @@
.env.sh:4fa64b9b29471e1e73dbd99721e6cdda9efd2b753a01df1f1057ecf17f22c3f7
-Lunar/Resources/dsa_priv.pem:4724e8ee0055cf3ddc55ca528691955d68879ec8abaafd3200cdfa20298ea1d9
diff --git a/Releases/Lunar-1.0.0.dmg b/LegacyReleases/Lunar-1.0.0.dmg
similarity index 100%
rename from Releases/Lunar-1.0.0.dmg
rename to LegacyReleases/Lunar-1.0.0.dmg
diff --git a/Releases/Lunar-1.0.1.dmg b/LegacyReleases/Lunar-1.0.1.dmg
similarity index 100%
rename from Releases/Lunar-1.0.1.dmg
rename to LegacyReleases/Lunar-1.0.1.dmg
diff --git a/Releases/Lunar-1.0.2.dmg b/LegacyReleases/Lunar-1.0.2.dmg
similarity index 100%
rename from Releases/Lunar-1.0.2.dmg
rename to LegacyReleases/Lunar-1.0.2.dmg
diff --git a/Releases/Lunar-1.0.3.dmg b/LegacyReleases/Lunar-1.0.3.dmg
similarity index 100%
rename from Releases/Lunar-1.0.3.dmg
rename to LegacyReleases/Lunar-1.0.3.dmg
diff --git a/Releases/Lunar-1.0.4.dmg b/LegacyReleases/Lunar-1.0.4.dmg
similarity index 100%
rename from Releases/Lunar-1.0.4.dmg
rename to LegacyReleases/Lunar-1.0.4.dmg
diff --git a/Releases/Lunar-1.0.5.dmg b/LegacyReleases/Lunar-1.0.5.dmg
similarity index 100%
rename from Releases/Lunar-1.0.5.dmg
rename to LegacyReleases/Lunar-1.0.5.dmg
diff --git a/Releases/Lunar-1.0.6.dmg b/LegacyReleases/Lunar-1.0.6.dmg
similarity index 100%
rename from Releases/Lunar-1.0.6.dmg
rename to LegacyReleases/Lunar-1.0.6.dmg
diff --git a/Releases/Lunar-1.0.7.dmg b/LegacyReleases/Lunar-1.0.7.dmg
similarity index 100%
rename from Releases/Lunar-1.0.7.dmg
rename to LegacyReleases/Lunar-1.0.7.dmg
diff --git a/Releases/Lunar-1.1.0.dmg b/LegacyReleases/Lunar-1.1.0.dmg
similarity index 100%
rename from Releases/Lunar-1.1.0.dmg
rename to LegacyReleases/Lunar-1.1.0.dmg
diff --git a/Releases/Lunar-1.1.1.dmg b/LegacyReleases/Lunar-1.1.1.dmg
similarity index 100%
rename from Releases/Lunar-1.1.1.dmg
rename to LegacyReleases/Lunar-1.1.1.dmg
diff --git a/Releases/Lunar-2.0.0.dmg b/LegacyReleases/Lunar-2.0.0.dmg
similarity index 100%
rename from Releases/Lunar-2.0.0.dmg
rename to LegacyReleases/Lunar-2.0.0.dmg
diff --git a/Releases/Lunar-2.0.1.dmg b/LegacyReleases/Lunar-2.0.1.dmg
similarity index 100%
rename from Releases/Lunar-2.0.1.dmg
rename to LegacyReleases/Lunar-2.0.1.dmg
diff --git a/Releases/Lunar-2.0.2.dmg b/LegacyReleases/Lunar-2.0.2.dmg
similarity index 100%
rename from Releases/Lunar-2.0.2.dmg
rename to LegacyReleases/Lunar-2.0.2.dmg
diff --git a/Releases/Lunar-2.0.3.dmg b/LegacyReleases/Lunar-2.0.3.dmg
similarity index 100%
rename from Releases/Lunar-2.0.3.dmg
rename to LegacyReleases/Lunar-2.0.3.dmg
diff --git a/Releases/Lunar-2.1.0.dmg b/LegacyReleases/Lunar-2.1.0.dmg
similarity index 100%
rename from Releases/Lunar-2.1.0.dmg
rename to LegacyReleases/Lunar-2.1.0.dmg
diff --git a/Releases/Lunar-2.1.1.dmg b/LegacyReleases/Lunar-2.1.1.dmg
similarity index 100%
rename from Releases/Lunar-2.1.1.dmg
rename to LegacyReleases/Lunar-2.1.1.dmg
diff --git a/Releases/Lunar-2.1.2.dmg b/LegacyReleases/Lunar-2.1.2.dmg
similarity index 100%
rename from Releases/Lunar-2.1.2.dmg
rename to LegacyReleases/Lunar-2.1.2.dmg
diff --git a/Releases/Lunar-2.2.0.dmg b/LegacyReleases/Lunar-2.2.0.dmg
similarity index 100%
rename from Releases/Lunar-2.2.0.dmg
rename to LegacyReleases/Lunar-2.2.0.dmg
diff --git a/Releases/Lunar-2.2.1.dmg b/LegacyReleases/Lunar-2.2.1.dmg
similarity index 100%
rename from Releases/Lunar-2.2.1.dmg
rename to LegacyReleases/Lunar-2.2.1.dmg
diff --git a/Releases/Lunar-2.2.2.dmg b/LegacyReleases/Lunar-2.2.2.dmg
similarity index 100%
rename from Releases/Lunar-2.2.2.dmg
rename to LegacyReleases/Lunar-2.2.2.dmg
diff --git a/Releases/Lunar-2.3.0.dmg b/LegacyReleases/Lunar-2.3.0.dmg
similarity index 100%
rename from Releases/Lunar-2.3.0.dmg
rename to LegacyReleases/Lunar-2.3.0.dmg
diff --git a/LegacyReleases/appcast.xml b/LegacyReleases/appcast.xml
new file mode 100644
index 00000000..445243de
--- /dev/null
+++ b/LegacyReleases/appcast.xml
@@ -0,0 +1,246 @@
+
+
+
+ Lunar
+ -
+ 1.0.0
+ Tue, 03 Jul 2018 18:13:23 +0300
+ 10.11
+
+
+ -
+ 1.0.1
+ Thu, 05 Jul 2018 13:24:40 +0300
+ 10.11
+
+
+
Fixes
- Fixed crash on missing time for sunrise
- Better check cases where Add App button layer isn't initialized
- Make sure brightness/contrast changes contain both old and new values
]]>
+
+
+ Fixes
- Fixed crash on missing time for sunrise
- Better check cases where Add App button layer isn't initialized
- Make sure brightness/contrast changes contain both old and new values
]]>
+
+
+ -
+ 1.0.2
+ Thu, 05 Jul 2018 15:32:05 +0300
+ 10.11
+
+
+
Improvements
- Use sunrise/sunset instead of civilSunrise/civilSunset
]]>
+
+
+ Improvements
- Use sunrise/sunset instead of civilSunrise/civilSunset
]]>
+
+
+ -
+ 1.0.3
+ Thu, 05 Jul 2018 22:26:52 +0300
+ 10.11
+
+
+
Additions
Fixes
- Try to get rid of crashes when readapting to max brightness change
]]>
+
+
+ Additions
Fixes
- Try to get rid of crashes when readapting to max brightness change
]]>
+
+
+ -
+ 1.0.4
+ Sat, 07 Jul 2018 00:34:53 +0300
+ 10.11
+
+
+
Fixes
- Fix compatibility with macOS 10.11
]]>
+
+
+ Fixes
- Fix compatibility with macOS 10.11
]]>
+
+
+ -
+ 1.0.5
+ Sat, 07 Jul 2018 01:38:16 +0300
+ 10.11
+
+
+
Fixes
- Fix a crash when monitor serials aren't unique
Dev
- Add more context to help debugging errors
]]>
+
+
+ Fixes
- Fix a crash when monitor serials aren't unique
Dev
- Add more context to help debugging errors
]]>
+
+
+ -
+ 1.0.6
+ Sat, 07 Jul 2018 12:29:29 +0300
+ 10.11
+
+
+
Fixes
- Cap interpolated values between 0 - 100
- Fallback to generated display names as it is impossible to extract the real name
Dev
]]>
+
+
+ Fixes
- Cap interpolated values between 0 - 100
- Fallback to generated display names as it is impossible to extract the real name
Dev
]]>
+
+
+ -
+ 1.0.7
+ Sat, 07 Jul 2018 18:48:03 +0300
+ 10.11
+
+
+
Dev
- Add temporary remote logging to help fix some annoying crashes
]]>
+
+
+ Dev
- Add temporary remote logging to help fix some annoying crashes
]]>
+
+
+ -
+ 1.1.0
+ Sun, 08 Jul 2018 11:49:08 +0300
+ 10.11
+
+
+
Fixes
- Fix stupid mistake that caused the app to crash for all users
]]>
+
+
+ Fixes
- Fix stupid mistake that caused the app to crash for all users
]]>
+
+
+ -
+ 1.1.1
+ Sun, 08 Jul 2018 19:24:50 +0300
+ 10.11
+
+
+
Fixes
- Make sure Adaptive activity isn't scheduled more than once so that percent hotkeys work as expected
- Fix an error that prevented the settings to persist in the database
]]>
+
+
+ Fixes
- Make sure Adaptive activity isn't scheduled more than once so that percent hotkeys work as expected
- Fix an error that prevented the settings to persist in the database
]]>
+
+
+ -
+ 2.0.0
+ Wed, 18 Jul 2018 22:22:20 +0300
+ 10.11
+
+
+
Features
- Sync mode
- The external monitor's brightness/contrast will be kept in sync with the brightness/contrast of the built-in display
- The external monitor's brightness/contrast will still be kept within the configured per-monitor limits
- There are new configurable offsets on the settings page to make the synchronization perfect
Fixes
- Disable adaptive brightness when no monitor is connected to get to zero energy impact
- Fix interpolation formula
- Disable configurable values when Manual mode is on
]]>
+
+
+ Features
- Sync mode
- The external monitor's brightness/contrast will be kept in sync with the brightness/contrast of the built-in display
- The external monitor's brightness/contrast will still be kept within the configured per-monitor limits
- There are new configurable offsets on the settings page to make the synchronization perfect
Fixes
- Disable adaptive brightness when no monitor is connected to get to zero energy impact
- Fix interpolation formula
- Disable configurable values when Manual mode is on
]]>
+
+
+ -
+ 2.0.1
+ Thu, 19 Jul 2018 14:15:20 +0300
+ 10.11
+
+
+
Fixes
- Try not to insert nils in the database
]]>
+
+
+ Fixes
- Try not to insert nils in the database
]]>
+
+
+ -
+ 2.0.2
+ Sat, 21 Jul 2018 19:40:13 +0300
+ 10.11
+
+
+
Fixes
- Fix a few crashes caused by backing layers and subviews not being available on load
]]>
+
+
+ Fixes
- Fix a few crashes caused by backing layers and subviews not being available on load
]]>
+
+
+ -
+ 2.0.3
+ Tue, 24 Jul 2018 09:31:08 +0300
+ 10.11
+
+
+
Improvements
- Set offset limits to [-100, 90]
- Adjust offsetting formula to get more symmetrical values
]]>
+
+
+ Improvements
- Set offset limits to [-100, 90]
- Adjust offsetting formula to get more symmetrical values
]]>
+
+
+ -
+ 2.1.0
+ Wed, 08 Aug 2018 00:50:54 +0300
+ 10.11
+
+
+
Features
- Add hotkeys for increasing/decreasing brightness/contrast [Thanks Hua Duong Tran! @duongelPR #2]
- Add individual Lock Buttons for brightness and contrast
Improvements
- Offsets now work in Location mode too
- Manually adjusting brightness doesn't force Manual mode anymore
Fixes
- The Adaptive toggle below each monitor now works properly
- App Exceptions were not always working, fixed those cases
]]>
+
+
+ Features
- Add hotkeys for increasing/decreasing brightness/contrast [Thanks Hua Duong Tran! @duongelPR #2]
- Add individual Lock Buttons for brightness and contrast
Improvements
- Offsets now work in Location mode too
- Manually adjusting brightness doesn't force Manual mode anymore
Fixes
- The Adaptive toggle below each monitor now works properly
- App Exceptions were not always working, fixed those cases
]]>
+
+
+ -
+ 2.1.1
+ Tue, 14 Aug 2018 19:31:29 +0300
+ 10.11
+
+
+
Fixes
- Remove SwiftyBeaver dependency from LunarService
]]>
+
+
+ Fixes
- Remove SwiftyBeaver dependency from LunarService
]]>
+
+
+ -
+ 2.1.2
+ Thu, 23 Aug 2018 14:08:26 +0300
+ 10.11
+
+
+ -
+ 2.2.0
+ Sun, 10 Mar 2019 20:57:54 +0200
+ 10.11
+
+
+
Fixes
- Make sure user can always swipe to settings page
Features
- Add page for configuring hotkeys
- Add menu item for toggling "Start at Login"
]]>
+
+
+ Fixes
- Make sure user can always swipe to settings page
Features
- Add page for configuring hotkeys
- Add menu item for toggling "Start at Login"
]]>
+
+
+ -
+ 2.2.1
+ Mon, 11 Mar 2019 17:34:47 +0200
+ 10.11
+
+
+
Fixes
- Make the display page white when swiping back from settings
- Reflect hotkey changes on the menu items
Improvements
- Add button for going to hotkeys page
]]>
+
+
+ Fixes
- Make the display page white when swiping back from settings
- Reflect hotkey changes on the menu items
Improvements
- Add button for going to hotkeys page
]]>
+
+
+ -
+ 2.2.2
+ Wed, 13 Mar 2019 19:30:24 +0200
+ 10.11
+
+
+
Fixes
- Don't cap brightness/contrast on manual mode
]]>
+
+
+ Fixes
- Don't cap brightness/contrast on manual mode
]]>
+
+
+ -
+ 2.3.0
+ Mon, 18 Mar 2019 22:02:33 +0200
+ 10.11
+
+
+
Fixes
- Use brightness/contrast offsets only in Sync mode
Features
- Smooth Transition option [Thanks to Tim Traversy! @timtraversyPR #14]
- This makes the brightness/contrast change smoothly from a value to another, instead of jumping directly to that value
- Check settings page to enable the option
- I left it off by default because some monitors have a slow response time and smooth transitions end up not being so smooth
- Configurable interpolation factor for Location mode
Improvements
- Improve charts speed and efficiency with SIMD
- Smoother chart curves
]]>
+
+
+ Fixes
- Use brightness/contrast offsets only in Sync mode
Features
- Smooth Transition option [Thanks to Tim Traversy! @timtraversyPR #14]
- This makes the brightness/contrast change smoothly from a value to another, instead of jumping directly to that value
- Check settings page to enable the option
- I left it off by default because some monitors have a slow response time and smooth transitions end up not being so smooth
- Configurable interpolation factor for Location mode
Improvements
- Improve charts speed and efficiency with SIMD
- Smoother chart curves
]]>
+
+
+
+
\ No newline at end of file
diff --git a/Lunar.xcodeproj/project.pbxproj b/Lunar.xcodeproj/project.pbxproj
index 185dccbf..019a2d6d 100644
--- a/Lunar.xcodeproj/project.pbxproj
+++ b/Lunar.xcodeproj/project.pbxproj
@@ -57,7 +57,6 @@
C794E1641FEE84DF00549462 /* ToggleButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = C794E1631FEE84DF00549462 /* ToggleButton.swift */; };
C794E1741FEFE31A00549462 /* ScrollableTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = C794E1731FEFE31A00549462 /* ScrollableTextField.swift */; };
C794E1771FF01EF500549462 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = C794E1751FF01EF500549462 /* Model.xcdatamodeld */; };
- C7A2574220EA249B003B3A84 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = C7A2574120EA249B003B3A84 /* dsa_pub.pem */; };
C7A2BDDA223FC8D100C910E3 /* Surge.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C7A2BDD9223FC8D100C910E3 /* Surge.framework */; };
C7A2BDDB223FC8D100C910E3 /* Surge.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C7A2BDD9223FC8D100C910E3 /* Surge.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
C7A2BDEC22411E9500C910E3 /* Charts.framework.dSYM in CopyFiles */ = {isa = PBXBuildFile; fileRef = C7A2BDDF22411E9300C910E3 /* Charts.framework.dSYM */; };
@@ -207,7 +206,6 @@
C794E1631FEE84DF00549462 /* ToggleButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToggleButton.swift; sourceTree = ""; };
C794E1731FEFE31A00549462 /* ScrollableTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollableTextField.swift; sourceTree = ""; };
C794E1761FF01EF500549462 /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = ""; };
- C7A2574120EA249B003B3A84 /* dsa_pub.pem */ = {isa = PBXFileReference; lastKnownFileType = text; name = dsa_pub.pem; path = Lunar/Resources/dsa_pub.pem; sourceTree = ""; };
C7A2BDD9223FC8D100C910E3 /* Surge.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Surge.framework; path = Frameworks/Surge.framework; sourceTree = ""; };
C7A2BDDF22411E9300C910E3 /* Charts.framework.dSYM */ = {isa = PBXFileReference; lastKnownFileType = wrapper.dsym; name = Charts.framework.dSYM; path = Frameworks/Charts.framework.dSYM; sourceTree = ""; };
C7A2BDE022411E9300C910E3 /* SwiftyJSON.framework.dSYM */ = {isa = PBXFileReference; lastKnownFileType = wrapper.dsym; name = SwiftyJSON.framework.dSYM; path = Frameworks/SwiftyJSON.framework.dSYM; sourceTree = ""; };
@@ -376,7 +374,6 @@
C750833C2222865E0020270E /* SwiftyBeaver.framework */,
C750833A2222865E0020270E /* SwiftyJSON.framework */,
C75083342222865D0020270E /* WAYWindow.framework */,
- C7A2574120EA249B003B3A84 /* dsa_pub.pem */,
C750835D2222BEAA0020270E /* Crashlytics.framework */,
C750835E2222BEAA0020270E /* Fabric.framework */,
C7AEC7F71FD0B4350039B562 /* Lunar */,
@@ -542,7 +539,6 @@
files = (
C7AEC7FD1FD0B4350039B562 /* Assets.xcassets in Resources */,
C7AEC8001FD0B4350039B562 /* Main.storyboard in Resources */,
- C7A2574220EA249B003B3A84 /* dsa_pub.pem in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/Lunar/Info.plist b/Lunar/Info.plist
index febc8ff3..fe73277b 100644
--- a/Lunar/Info.plist
+++ b/Lunar/Info.plist
@@ -19,9 +19,9 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 2.3.0
+ 2.3.1
CFBundleVersion
- 2.3.0
+ 2.3.1
Fabric
Kits
@@ -75,7 +75,7 @@
NSApplication
SUFeedURL
https://lunarapp.site/appcast.xml
- SUPublicDSAKeyFile
- dsa_pub.pem
+ SUPublicEDKey
+ lqnO6tg2A9evTIFo2SC9ArZ6NS84gtBshcAWdwh12xQ=
diff --git a/Lunar/Resources/dsa_priv.pem.secret b/Lunar/Resources/dsa_priv.pem.secret
deleted file mode 100644
index dd5fe1f5..00000000
Binary files a/Lunar/Resources/dsa_priv.pem.secret and /dev/null differ
diff --git a/Lunar/Resources/dsa_pub.pem b/Lunar/Resources/dsa_pub.pem
deleted file mode 100644
index 45ecf1e8..00000000
--- a/Lunar/Resources/dsa_pub.pem
+++ /dev/null
@@ -1,36 +0,0 @@
------BEGIN PUBLIC KEY-----
-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
-PjFF/W4wTaPnIkjt9gXkxF/K9FDkkSpbI1U=
------END PUBLIC KEY-----
diff --git a/ReleaseNotes/2.3.1.md b/ReleaseNotes/2.3.1.md
new file mode 100644
index 00000000..3638f96e
--- /dev/null
+++ b/ReleaseNotes/2.3.1.md
@@ -0,0 +1,7 @@
+## Fixes
+
+- Check chart entries bounds before updating
+
+## Improvements
+
+- Move to edDSA key for signing updates
\ No newline at end of file
diff --git a/Releases/Lunar-2.3.1.dmg b/Releases/Lunar-2.3.1.dmg
new file mode 100644
index 00000000..6d3be533
--- /dev/null
+++ b/Releases/Lunar-2.3.1.dmg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3fcdecec0f3cd92c507de202419b09fe3afb7b5fba10237c0b6db0a3bd05097e
+size 14406819
diff --git a/Releases/Lunar-latest.dmg b/Releases/Lunar-latest.dmg
index c9b9e297..6d3be533 100644
--- a/Releases/Lunar-latest.dmg
+++ b/Releases/Lunar-latest.dmg
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:86de6cf6485c5a0de56d5f99f8bfeba470e14a5267a5bb8535bfb01e6d4a5acd
-size 14402165
+oid sha256:3fcdecec0f3cd92c507de202419b09fe3afb7b5fba10237c0b6db0a3bd05097e
+size 14406819
diff --git a/Releases/appcast.xml b/Releases/appcast.xml
index 49343ca5..2c41dbf8 100644
--- a/Releases/appcast.xml
+++ b/Releases/appcast.xml
@@ -1,132 +1,15 @@
-
-
+
+
Lunar
-
- 1.0.0
- Tue, 03 Jul 2018 18:13:23 +0300
+ 2.3.1
+ Sat, 23 Mar 2019 14:55:46 +0200
10.11
-
+
+
+
Fixes
- Check chart entries bounds before updating
Improvements
- Move to edDSA key for signing updates
]]>
+
- -
- 1.0.1
- Thu, 05 Jul 2018 13:24:40 +0300
- 10.11
-
-
Fixes
- Fixed crash on missing time for sunrise
- Better check cases where Add App button layer isn't initialized
- Make sure brightness/contrast changes contain both old and new values
]]>Fixes
- Fixed crash on missing time for sunrise
- Better check cases where Add App button layer isn't initialized
- Make sure brightness/contrast changes contain both old and new values
]]>
- -
- 1.0.2
- Thu, 05 Jul 2018 15:32:05 +0300
- 10.11
-
-
Improvements
- Use sunrise/sunset instead of civilSunrise/civilSunset
]]>Improvements
- Use sunrise/sunset instead of civilSunrise/civilSunset
]]>
- -
- 1.0.3
- Thu, 05 Jul 2018 22:26:52 +0300
- 10.11
-
-
Additions
Fixes
- Try to get rid of crashes when readapting to max brightness change
]]>Additions
Fixes
- Try to get rid of crashes when readapting to max brightness change
]]>
- -
- 1.0.4
- Sat, 07 Jul 2018 00:34:53 +0300
- 10.11
-
-
Fixes
- Fix compatibility with macOS 10.11
]]>Fixes
- Fix compatibility with macOS 10.11
]]>
- -
- 1.0.5
- Sat, 07 Jul 2018 01:38:16 +0300
- 10.11
-
-
Fixes
- Fix a crash when monitor serials aren't unique
Dev
- Add more context to help debugging errors
]]>Fixes
- Fix a crash when monitor serials aren't unique
Dev
- Add more context to help debugging errors
]]>
- -
- 1.0.6
- Sat, 07 Jul 2018 12:29:29 +0300
- 10.11
-
-
Fixes
- Cap interpolated values between 0 - 100
- Fallback to generated display names as it is impossible to extract the real name
Dev
]]>Fixes
- Cap interpolated values between 0 - 100
- Fallback to generated display names as it is impossible to extract the real name
Dev
]]>
- -
- 1.0.7
- Sat, 07 Jul 2018 18:48:03 +0300
- 10.11
-
-
Dev
- Add temporary remote logging to help fix some annoying crashes
]]>Dev
- Add temporary remote logging to help fix some annoying crashes
]]>
- -
- 1.1.0
- Sun, 08 Jul 2018 11:49:08 +0300
- 10.11
-
-
Fixes
- Fix stupid mistake that caused the app to crash for all users
]]>Fixes
- Fix stupid mistake that caused the app to crash for all users
]]>
- -
- 1.1.1
- Sun, 08 Jul 2018 19:24:50 +0300
- 10.11
-
-
Fixes
- Make sure Adaptive activity isn't scheduled more than once so that percent hotkeys work as expected
- Fix an error that prevented the settings to persist in the database
]]>Fixes
- Make sure Adaptive activity isn't scheduled more than once so that percent hotkeys work as expected
- Fix an error that prevented the settings to persist in the database
]]>
- -
- 2.0.0
- Wed, 18 Jul 2018 22:22:20 +0300
- 10.11
-
-
Features
- Sync mode
- The external monitor's brightness/contrast will be kept in sync with the brightness/contrast of the built-in display
- The external monitor's brightness/contrast will still be kept within the configured per-monitor limits
- There are new configurable offsets on the settings page to make the synchronization perfect
Fixes
- Disable adaptive brightness when no monitor is connected to get to zero energy impact
- Fix interpolation formula
- Disable configurable values when Manual mode is on
]]>Features
- Sync mode
- The external monitor's brightness/contrast will be kept in sync with the brightness/contrast of the built-in display
- The external monitor's brightness/contrast will still be kept within the configured per-monitor limits
- There are new configurable offsets on the settings page to make the synchronization perfect
Fixes
- Disable adaptive brightness when no monitor is connected to get to zero energy impact
- Fix interpolation formula
- Disable configurable values when Manual mode is on
]]>
- -
- 2.0.1
- Thu, 19 Jul 2018 14:15:20 +0300
- 10.11
-
-
Fixes
- Try not to insert nils in the database
]]>Fixes
- Try not to insert nils in the database
]]>
- -
- 2.0.2
- Sat, 21 Jul 2018 19:40:13 +0300
- 10.11
-
-
Fixes
- Fix a few crashes caused by backing layers and subviews not being available on load
]]>Fixes
- Fix a few crashes caused by backing layers and subviews not being available on load
]]>
- -
- 2.0.3
- Tue, 24 Jul 2018 09:31:08 +0300
- 10.11
-
-
Improvements
- Set offset limits to [-100, 90]
- Adjust offsetting formula to get more symmetrical values
]]>Improvements
- Set offset limits to [-100, 90]
- Adjust offsetting formula to get more symmetrical values
]]>
- -
- 2.1.0
- Wed, 08 Aug 2018 00:50:54 +0300
- 10.11
-
-
Features
- Add hotkeys for increasing/decreasing brightness/contrast [Thanks Hua Duong Tran! @duongel PR #2]
- Add individual Lock Buttons for brightness and contrast
Improvements
- Offsets now work in Location mode too
- Manually adjusting brightness doesn't force Manual mode anymore
Fixes
- The Adaptive toggle below each monitor now works properly
- App Exceptions were not always working, fixed those cases
]]>Features
- Add hotkeys for increasing/decreasing brightness/contrast [Thanks Hua Duong Tran! @duongel PR #2]
- Add individual Lock Buttons for brightness and contrast
Improvements
- Offsets now work in Location mode too
- Manually adjusting brightness doesn't force Manual mode anymore
Fixes
- The Adaptive toggle below each monitor now works properly
- App Exceptions were not always working, fixed those cases
]]>
- -
- 2.1.1
- Tue, 14 Aug 2018 19:31:29 +0300
- 10.11
-
-
Fixes
- Remove SwiftyBeaver dependency from LunarService
]]>Fixes
- Remove SwiftyBeaver dependency from LunarService
]]>
- -
- 2.1.2
- Thu, 23 Aug 2018 14:08:26 +0300
- 10.11
-
-
- -
- 2.2.0
- Sun, 10 Mar 2019 20:57:54 +0200
- 10.11
-
-
Fixes
- Make sure user can always swipe to settings page
Features
- Add page for configuring hotkeys
- Add menu item for toggling "Start at Login"
]]>Fixes
- Make sure user can always swipe to settings page
Features
- Add page for configuring hotkeys
- Add menu item for toggling "Start at Login"
]]>
- -
- 2.2.1
- Mon, 11 Mar 2019 17:34:47 +0200
- 10.11
-
-
Fixes
- Make the display page white when swiping back from settings
- Reflect hotkey changes on the menu items
Improvements
- Add button for going to hotkeys page
]]>Fixes
- Make the display page white when swiping back from settings
- Reflect hotkey changes on the menu items
Improvements
- Add button for going to hotkeys page
]]>
- -
- 2.2.2
- Wed, 13 Mar 2019 19:30:24 +0200
- 10.11
-
-
Fixes
- Don't cap brightness/contrast on manual mode
]]>Fixes
- Don't cap brightness/contrast on manual mode
]]>
- -
- 2.3.0
- Mon, 18 Mar 2019 22:02:33 +0200
- 10.11
-
-
Fixes
- Use brightness/contrast offsets only in Sync mode
Features
- Smooth Transition option [Thanks to Tim Traversy! @timtraversy PR #14]
- This makes the brightness/contrast change smoothly from a value to another, instead of jumping directly to that value
- Check settings page to enable the option
- I left it off by default because some monitors have a slow response time and smooth transitions end up not being so smooth
- Configurable interpolation factor for Location mode
Improvements
- Improve charts speed and efficiency with SIMD
- Smoother chart curves
]]>Fixes
- Use brightness/contrast offsets only in Sync mode
Features
- Smooth Transition option [Thanks to Tim Traversy! @timtraversy PR #14]
- This makes the brightness/contrast change smoothly from a value to another, instead of jumping directly to that value
- Check settings page to enable the option
- I left it off by default because some monitors have a slow response time and smooth transitions end up not being so smooth
- Configurable interpolation factor for Location mode
Improvements
- Improve charts speed and efficiency with SIMD
- Smoother chart curves
]]>
-
+
\ No newline at end of file
diff --git a/pack b/pack
index 49cf6314..eedbda47 100755
--- a/pack
+++ b/pack
@@ -49,15 +49,13 @@ xattr -cr $appDmg
codesign -fs "Mac Developer: alin.p32@gmail.com (FVP7HX44T5)" $appDmg
echo \n(set_color yellow)"Generating AppCast"(set_color normal)
-generate_appcast $privKey $releaseDir
-
-echo \n(set_color red)"Removing delta files"(set_color normal)
-rm $releaseDir/*.delta
+generate_appcast $releaseDir
cp $appDmg $appLatestDmg
git lfs track Releases/Lunar-$appVersion.dmg
git lfs track Releases/Lunar-latest.dmg
+git lfs track Releases/*.delta
-echo \n(set_color yellow)"Signing Updates"(set_color normal)
-./sign_updates.py "$privKey"
+echo \n(set_color yellow)"Fixing appcast"(set_color normal)
+./update_appcast.py
subl $appcast
\ No newline at end of file
diff --git a/sign_updates.py b/update_appcast.py
similarity index 62%
rename from sign_updates.py
rename to update_appcast.py
index 3c42598e..6eec3b58 100755
--- a/sign_updates.py
+++ b/update_appcast.py
@@ -1,22 +1,19 @@
#!/usr/bin/env python3
-import os
+
+# pylint: disable=no-member
import re
-import subprocess
-import sys
from pathlib import Path
from lxml import etree, html
from lxml.builder import ElementMaker
from markdown2 import markdown_path
-key_path = Path(sys.argv[1])
release_notes = Path.cwd() / "ReleaseNotes"
appcast_path = Path.cwd() / "Releases" / "appcast.xml"
parser = etree.XMLParser(strip_cdata=False)
appcast = etree.parse(str(appcast_path), parser=parser)
SPARKLE = "http://www.andymatuschak.org/xml-namespaces/sparkle"
-SIGNER = "/usr/local/sbin/sign_update"
DELTA_PATTERN = re.compile(
r"Lunar([0-9]+\.[0-9]+\.[0-9]+)-([0-9]+\.[0-9]+\.[0-9]+).delta"
)
@@ -57,14 +54,6 @@ def sparkle(attr):
return f"{{{SPARKLE}}}{attr}"
-def get_signature(file):
- return (
- subprocess.check_output([SIGNER, file, str(key_path)])
- .decode()
- .replace("\n", "")
- )
-
-
for item in appcast.iter("item"):
enclosure = item.find("enclosure")
description = item.find("description")
@@ -73,9 +62,6 @@ def get_signature(file):
version = enclosure.attrib[sparkle("version")]
enclosure.set("url", f"https://lunarapp.site/download/{version}")
- dmg = appcast_path.with_name(f"Lunar-{version}.dmg")
- enclosure.set(sparkle("dsaSignature"), get_signature(dmg))
-
release_notes_file = release_notes / f"{version}.md"
if description is None and release_notes_file.exists():
@@ -94,26 +80,18 @@ def get_signature(file):
for delta in item.findall(sparkle("deltas")):
item.remove(delta)
- # delta_enclosures = []
- # for delta in appcast_path.parent.glob(f"Lunar{version}-*.delta"):
- # new_version, old_version = DELTA_PATTERN.match(delta.name).groups()
- # enclosure = E.enclosure(
- # url=f"https://lunarapp.site/{delta.name}",
- # length=str(delta.stat().st_size),
- # type="application/octet-stream",
- # **{
- # sparkle("version"): new_version,
- # sparkle("deltaFrom"): old_version,
- # sparkle("dsaSignature"): get_signature(str(delta)),
- # },
- # )
- # delta_enclosures.append(enclosure)
- # if delta_enclosures:
- # item.append(
- # ElementMaker(namespace=SPARKLE, nsmap={"sparkle": SPARKLE}).deltas(
- # *delta_enclosures
- # )
- # )
+ delta_enclosures = []
+ for delta in appcast_path.parent.glob(f"Lunar{version}-*.delta"):
+ new_version, old_version = DELTA_PATTERN.match(delta.name).groups()
+ enclosure = E.enclosure(
+ url=f"https://lunarapp.site/delta/{new_version}/{old_version}",
+ length=str(delta.stat().st_size),
+ type="application/octet-stream",
+ **{sparkle("version"): new_version, sparkle("deltaFrom"): old_version},
+ )
+ delta_enclosures.append(enclosure)
+ if delta_enclosures:
+ item.append(E.deltas(*delta_enclosures))
appcast.write(
str(appcast_path),