[Xiaomi Redmi Note 5 Pro ROMs, Kernels, Recoveries,] Desmanto:
I have tried, it seems default style is not compatible to substratum's. I don't know much about it, as I rarely change my theme. I simply test it to see if the bug is there. Probably you can change the style directly from substratum itself.

Step to reproduce the bug with substratum

1. Install Substratum + PI Dark theme.

2. Enable and build the theme.

3. After it has changed to dark, go to settings > Display > Style > Accent. Change it to other.

4. It immediately crash. this is the logcat, approx 3 seconds during the crash.

--------- beginning of crash

10-26 11:59:53.756 8039 8039 E AndroidRuntime: FATAL EXCEPTION: main

10-26 11:59:53.756 8039 8039 E AndroidRuntime: Process: org.lineageos.lineageparts, PID: 8039

10-26 11:59:53.756 8039 8039 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.content.om.IOverlayManager.setEnabled(java.lang.String, boolean, int)' on a null object reference

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at android.os.Parcel.readException(Parcel.java:2011)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at android.os.Parcel.readException(Parcel.java:1951)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at lineageos.style.IStyleInterface$Stub$Proxy.setAccent(IStyleInterface.java:211)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at lineageos.style.StyleInterface.setAccent(StyleInterface.java:201)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at org.lineageos.lineageparts.style.StylePreferences.onAccentSelected(StylePreferences.java:154)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at org.lineageos.lineageparts.style.StylePreferences.lambda$-org_lineageos_lineageparts_style_StylePreferences_4932(StylePreferences.java:133)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at org.lineageos.lineageparts.style.-$Lambda$lxyhs0tIpn-38teX3F3AjZP7qNg$1.$m$0(Unknown Source:4)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at org.lineageos.lineageparts.style.-$Lambda$lxyhs0tIpn-38teX3F3AjZP7qNg$1.onClick(Unknown Source:11)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1142)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at android.widget.AdapterView.performItemClick(AdapterView.java:318)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at android.widget.AbsListView.performItemClick(AbsListView.java:1196)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at android.widget.AbsListView$PerformClick.run(AbsListView.java:3284)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at android.widget.AbsListView$4.run(AbsListView.java:4207)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at android.os.Handler.handleCallback(Handler.java:790)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at android.os.Handler.dispatchMessage(Handler.java:99)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at android.os.Looper.loop(Looper.java:164)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at android.app.ActivityThread.main(ActivityThread.java:6499)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at java.lang.reflect.Method.invoke(Native Method)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)

10-26 11:59:53.756 8039 8039 E AndroidRuntime:	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

--------- beginning of system

10-26 11:59:52.654 1630 1691 I chatty : uid=1000(system) ActivityManager expire 1 line

10-26 11:59:53.547 1630 1691 E NotificationService: Suppressing notification from package by user request.

10-26 11:59:53.763 1630 2709 W ActivityManager: Force finishing activity org.lineageos.lineageparts/.style.StylePreferences

10-26 11:59:53.769 1630 2709 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:966 com.android.server.am.AppErrors.crashApplicationInner:393 com.android.server.am.AppErrors.crashApplication:321 com.android.server.am.ActivityManagerService.handleApplicationCrashInner:14566 com.android.server.am.ActivityManagerService.handleApplicationCrash:14548

10-26 11:59:53.772 1630 1692 I ActivityManager: Showing crash dialog for package org.lineageos.lineageparts u0

10-26 11:59:53.774 6889 6889 E AppCrashReceiver: 'org.lineageos.lineageparts' is repeatedly stopping...

10-26 11:59:53.774 6889 6889 E AppCrashReceiver: Now disabling all overlays for 'org.lineageos.lineageparts'...

10-26 11:59:54.265 1630 1691 W ActivityManager: Activity pause timeout for ActivityRecord{8c1a220 u0 org.lineageos.lineageparts/.style.StylePreferences t22761 f}

10-26 11:59:54.335 7439 7841 W TileUtils: Found com.android.settings.backup.BackupSettingsActivity for intent Intent { act=com.android.settings.action.SETTINGS pkg=com.android.settings } missing metadata com.android.settings.category

10-26 11:59:54.339 7439 7841 W TileUtils: Found org.lineageos.lineageparts.input.ButtonSettings for intent Intent { act=org.lineageos.lineageparts.action.SETTINGS pkg=org.lineageos.lineageparts } missing metadata com.android.settings.category

10-26 11:59:54.342 7439 7841 W TileUtils: Found org.lineageos.lineageparts.statusbar.StatusBarSettings for intent Intent { act=org.lineageos.lineageparts.action.SETTINGS pkg=org.lineageos.lineageparts } missing metadata com.android.settings.category

10-26 11:59:54.342 7439 7841 W TileUtils: Found org.lineageos.lineageparts.trust.TrustPreferences for intent Intent { act=org.lineageos.lineageparts.action.SETTINGS pkg=org.lineageos.lineageparts } missing metadata

10-26 11:59:54.359 7439 7841 D Settings: No enabled state changed, skipping updateCategory call

10-26 11:59:54.393 7439 7439 W ResourceType: No package identifier when getting value for resource number 0x00000000

10-26 11:59:54.394 7439 7439 E Icon : Unable to load resource 0x00000000 from pkg=org.lineageos.lineageparts

10-26 11:59:54.394 7439 7439 E Icon : android.content.res.Resources$NotFoundException: Resource ID #0x0

10-26 11:59:54.394 7439 7439 E Icon :	at android.content.res.ResourcesImpl.getValueForDensity(ResourcesImpl.java:224)

10-26 11:59:54.394 7439 7439 E Icon :	at android.content.res.Resources.getDrawableForDensity(Resources.java:876)

10-26 11:59:54.394 7439 7439 E Icon :	at android.content.res.Resources.getDrawable(Resources.java:819)

10-26 11:59:54.394 7439 7439 E Icon :	at android.graphics.drawable.Icon.loadDrawableInner(Icon.java:324)

10-26 11:59:54.394 7439 7439 E Icon :	at android.graphics.drawable.Icon.loadDrawable(Icon.java:277)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settings.dashboard.DashboardFeatureProviderImpl.bindPreferenceToTile(DashboardFeatureProviderImpl.java:134)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settings.dashboard.DashboardFragment.refreshDashboardTiles(DashboardFragment.java:353)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settings.dashboard.DashboardFragment.onCategoriesChanged(DashboardFragment.java:113)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settingslib.drawer.SettingsDrawerActivity.onCategoriesChanged(SettingsDrawerActivity.java:164)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settingslib.drawer.SettingsDrawerActivity.-wrap0(Unknown Source:0)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settingslib.drawer.SettingsDrawerActivity$CategoriesUpdateTask.onPostExecute(SettingsDrawerActivity.java:226)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settingslib.drawer.SettingsDrawerActivity$CategoriesUpdateTask.onPostExecute(SettingsDrawerActivity.java:223)

10-26 11:59:54.394 7439 7439 E Icon :	at android.os.AsyncTask.finish(AsyncTask.java:695)

10-26 11:59:54.394 7439 7439 E Icon :	at android.os.AsyncTask.-wrap1(Unknown Source:0)

10-26 11:59:54.394 7439 7439 E Icon :	at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)

10-26 11:59:54.394 7439 7439 E Icon :	at android.os.Handler.dispatchMessage(Handler.java:106)

10-26 11:59:54.394 7439 7439 E Icon :	at android.os.Looper.loop(Looper.java:164)

10-26 11:59:54.394 7439 7439 E Icon :	at android.app.ActivityThread.main(ActivityThread.java:6499)

10-26 11:59:54.394 7439 7439 E Icon :	at java.lang.reflect.Method.invoke(Native Method)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

10-26 11:59:54.394 7439 7439 W ResourceType: No package identifier when getting value for resource number 0x00000000

10-26 11:59:54.394 7439 7439 E Icon : Unable to load resource 0x00000000 from pkg=org.lineageos.lineageparts

10-26 11:59:54.394 7439 7439 E Icon : android.content.res.Resources$NotFoundException: Resource ID #0x0

10-26 11:59:54.394 7439 7439 E Icon :	at android.content.res.ResourcesImpl.getValueForDensity(ResourcesImpl.java:224)

10-26 11:59:54.394 7439 7439 E Icon :	at android.content.res.Resources.getDrawableForDensity(Resources.java:876)

10-26 11:59:54.394 7439 7439 E Icon :	at android.content.res.Resources.getDrawable(Resources.java:819)

10-26 11:59:54.394 7439 7439 E Icon :	at android.graphics.drawable.Icon.loadDrawableInner(Icon.java:324)

10-26 11:59:54.394 7439 7439 E Icon :	at android.graphics.drawable.Icon.loadDrawable(Icon.java:277)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settings.dashboard.DashboardFeatureProviderImpl.bindPreferenceToTile(DashboardFeatureProviderImpl.java:134)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settings.dashboard.DashboardFragment.refreshDashboardTiles(DashboardFragment.java:353)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settings.dashboard.DashboardFragment.onCategoriesChanged(DashboardFragment.java:113)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settingslib.drawer.SettingsDrawerActivity.onCategoriesChanged(SettingsDrawerActivity.java:164)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settingslib.drawer.SettingsDrawerActivity.-wrap0(Unknown Source:0)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settingslib.drawer.SettingsDrawerActivity$CategoriesUpdateTask.onPostExecute(SettingsDrawerActivity.java:226)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.settingslib.drawer.SettingsDrawerActivity$CategoriesUpdateTask.onPostExecute(SettingsDrawerActivity.java:223)

10-26 11:59:54.394 7439 7439 E Icon :	at android.os.AsyncTask.finish(AsyncTask.java:695)

10-26 11:59:54.394 7439 7439 E Icon :	at android.os.AsyncTask.-wrap1(Unknown Source:0)

10-26 11:59:54.394 7439 7439 E Icon :	at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)

10-26 11:59:54.394 7439 7439 E Icon :	at android.os.Handler.dispatchMessage(Handler.java:106)

10-26 11:59:54.394 7439 7439 E Icon :	at android.os.Looper.loop(Looper.java:164)

10-26 11:59:54.394 7439 7439 E Icon :	at android.app.ActivityThread.main(ActivityThread.java:6499)

10-26 11:59:54.394 7439 7439 E Icon :	at java.lang.reflect.Method.invoke(Native Method)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)

10-26 11:59:54.394 7439 7439 E Icon :	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

10-26 11:59:55.391 1630 2709 W ActivityManager: Force finishing activity org.lineageos.lineageparts/.style.StylePreferences

10-26 11:59:55.420 1630 2709 I ActivityManager: Killing 8039:org.lineageos.lineageparts/1000 (adj 900): crash

10-26 11:59:55.426 1630 1693 W zygote64: kill(-8039, 9) failed: No such process

10-26 11:59:55.429 1630 1692 W InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.

10-26 11:59:55.442 6319 6319 I SmartKeyboardPro: Trying to load dictionary: EN

10-26 11:59:55.472 1630 1790 W ActivityManager: setHasOverlayUi called on unknown pid: 8039

10-26 11:59:55.474 1630 1693 W zygote64: kill(-8039, 9) failed: No such process

10-26 11:59:55.474 1630 1693 I zygote64: Successfully killed process cgroup uid 1000 pid 8039 in 48ms

Install VoEnabler module in magisk or edit the build.prop

For me, definitely it is Automagic. You can see my full comparison here. And that is from last year. I have added so much in my separate word document that I planned to create a newer thread for it (haven't finish the screenshot). I have accomplished much more things in 3 months with Automagic, than 3 years in tasker. Now It has been more than a year, and the gap is so big that I never in any single moment consider to use tasker back. In short, using Automagic, is just like using tasker + all its auto apps plugin (which you need to buy again). You can design in flowchart style, much more intuitive than row style in tasker. Feel free to visit my index at my signature, which I have grouped many useful threads and examples. (beware, you will be overwhelmed at first!).

There is no best ROM for everyone, simply the one suit you the best. I choose RR, because Automagic works fine in RR (and actually other AOSP ROM fine too) and some extra function are based on LOS. Example new v1.36.0 introduce freeform mode launch bound. In MIUI 9.5.17.0, this is not working. But it works fine in RR. Action Set LineageOS System setting also work, since RR is LOS based. I don't use LOS since i need the customization from RR. You can always search the ROM review in youtube and watch the 5-15 minutes review before decide to try the ROM (which what I do before choosing RR).

You can use Automagic in Pie too, should be working. There are some new features only available in Pie. But probably there are some action not working too, because of android limitation. Pie is still new, so expect users are going to report bugs/limitation in Pie.

You can try both tasker and automagic (both have evalution/trial) to see which one suit you. If you opted for Automagic, we can continue the discussion here in the xda thread (it is inactive thread). Since it will be OOT to discuss here. Or you can just visit the official automagic forum. I currently have 50+ active flow, total 150+ flows with almost 200 triggers. I don't know which ones you like/need, you can just ask and I can tell you whether it can be created using Automagic. Here is some screenshot from my wifi geofencing flow, where it will do something (activate remote server) when I am home and do another thing when I am outside.