weisJ / auto-dark-mode

IDEA plugin to automatically apply system theme settings on macOS and Windows.
https://plugins.jetbrains.com/plugin/14076-auto-dark-mode
MIT License
52 stars 13 forks source link

Linux Mint Cinnamon support #40

Closed iamawebgeek closed 10 months ago

iamawebgeek commented 2 years ago

There is no effect when theme is switched on Linux Mint 20.2 Cinnamon (I think it uses GNOME 3). The plugin version is latest. The IDE version is latest from JB website.

weisJ commented 2 years ago

Do you see a "Gnome Theme" section in the plugin settings?

iamawebgeek commented 2 years ago

No, there is no "Gnome theme" section. I was reading up about cinnamon and looks like, it is derived from Gnome, but doesn't rely on it under the hood. Are there any plans to support Mint Cinnamon?

weisJ commented 2 years ago

I don’t plan on providing the support myself in the future, It’s rather tedious having to set up a new distribution for developing the plugin. But I am very open to contributions if someone wants to provide support for a specific distro. Most implementations will probably be very similar to the gnome version.

weisJ commented 2 years ago

Cinnamon is probably straight forward to implement as it can reuse the native implementation from gnome due to the fact that it relies on glibmm backed by dconf for its settings.

weisJ commented 2 years ago

Please check whether the new version works for you :)

AndreiMiculita commented 1 year ago

Just installed. I get the following exception after closing the plugin window:

View text

``` java.lang.Throwable: java.lang.IllegalStateException: Monitoring is not supported. at com.intellij.openapi.diagnostic.Logger.error(Logger.java:184) at com.intellij.openapi.diagnostic.Logger.error(Logger.java:188) at com.intellij.idea.IdeaLogger.error(IdeaLogger.java:120) at com.github.weisj.darkmode.platform.PluginLogger.error(PluginLogger.kt:44) at com.github.weisj.darkmode.AutoDarkMode.createMonitor(AutoDarkMode.kt:52) at com.github.weisj.darkmode.AutoDarkMode.access$createMonitor(AutoDarkMode.kt:44) at com.github.weisj.darkmode.AutoDarkMode$monitor$1.invoke(AutoDarkMode.kt:46) at com.github.weisj.darkmode.AutoDarkMode$monitor$1.invoke(AutoDarkMode.kt:46) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at com.github.weisj.darkmode.platform.settings.UtilKt.letValue(Util.kt:49) at com.github.weisj.darkmode.AutoDarkMode.start(AutoDarkMode.kt:57) at com.github.weisj.darkmode.AutoDarkMode.pluginLoaded(AutoDarkMode.kt:120) at com.github.weisj.darkmode.AutoDarkModePluginListener.pluginLoaded(AutoDarkModePluginListener.kt:34) at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:649) at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:625) at com.intellij.util.messages.impl.MessageBusImplKt.executeOrAddToQueue(MessageBusImpl.kt:470) at com.intellij.util.messages.impl.ToDirectChildrenMessagePublisher.publish$intellij_platform_core(CompositeMessageBus.kt:259) at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:425) at jdk.proxy2/jdk.proxy2.$Proxy203.pluginLoaded(Unknown Source) at com.intellij.ide.plugins.DynamicPlugins$loadPlugin$1.run(DynamicPlugins.kt:856) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1023) at com.intellij.ide.plugins.DynamicPlugins.loadPlugin(DynamicPlugins.kt:833) at com.intellij.ide.plugins.DynamicPlugins.loadPlugin(DynamicPlugins.kt:807) at com.intellij.ide.plugins.PluginInstaller.installAndLoadDynamicPlugin(PluginInstaller.java:413) at com.intellij.ide.plugins.newui.MyPluginModel.lambda$apply$0(MyPluginModel.java:167) at com.intellij.ide.plugins.InstalledPluginsState.trackPluginInstallation(InstalledPluginsState.java:190) at com.intellij.ide.plugins.newui.MyPluginModel.apply(MyPluginModel.java:166) at com.intellij.ide.plugins.PluginManagerConfigurable.apply(PluginManagerConfigurable.java:1774) at com.intellij.openapi.options.ex.ConfigurableWrapper.apply(ConfigurableWrapper.java:179) at com.intellij.openapi.options.newEditor.ConfigurableEditor.apply(ConfigurableEditor.java:324) at com.intellij.openapi.options.newEditor.SettingsEditor$5.apply(SettingsEditor.java:205) at com.intellij.openapi.options.newEditor.SettingsEditor.apply(SettingsEditor.java:434) at com.intellij.openapi.options.newEditor.SettingsDialog.applyAndClose(SettingsDialog.java:202) at com.intellij.openapi.options.newEditor.SettingsDialog.doOKAction(SettingsDialog.java:194) at com.intellij.openapi.ui.DialogWrapper$OkAction.doAction(DialogWrapper.java:1857) at com.intellij.openapi.ui.DialogWrapper$DialogWrapperAction.actionPerformed(DialogWrapper.java:1811) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6648) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3392) at java.desktop/java.awt.Component.processEvent(Component.java:6413) at java.desktop/java.awt.Container.processEvent(Container.java:2266) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5022) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2802) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:754) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:752) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:751) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:918) at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:840) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:763) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:450) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:791) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:449) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105) at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:624) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:447) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:493) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121) at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191) at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236) at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234) at java.base/java.security.AccessController.doPrivileged(AccessController.java:318) at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234) at java.desktop/java.awt.Dialog.show(Dialog.java:1080) at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:712) at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:453) at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1672) at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1630) at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:134) at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:107) at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:99) at com.intellij.ide.actions.ShowPluginManagerAction.actionPerformed(ShowPluginManagerAction.java:34) at com.intellij.openapi.actionSystem.ex.ActionUtil.doPerformActionOrShowPopup(ActionUtil.java:315) at com.intellij.ide.actions.GotoActionAction.lambda$performActionImpl$4(GotoActionAction.java:100) at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:337) at com.intellij.ide.actions.GotoActionAction.performActionImpl(GotoActionAction.java:99) at com.intellij.ide.actions.GotoActionAction.lambda$performAction$2(GotoActionAction.java:79) at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209) at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21) at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881) at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:513) at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:75) at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:118) at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:42) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:749) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:918) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:766) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:450) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:791) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:449) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105) at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:624) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:447) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:493) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92) ```

And after restarting the IDE, I get:

View text

``` java.lang.Throwable: java.lang.IllegalStateException: Monitoring is not supported. at com.intellij.openapi.diagnostic.Logger.error(Logger.java:184) at com.intellij.openapi.diagnostic.Logger.error(Logger.java:188) at com.intellij.idea.IdeaLogger.error(IdeaLogger.java:120) at com.github.weisj.darkmode.platform.PluginLogger.error(PluginLogger.kt:44) at com.github.weisj.darkmode.AutoDarkMode.createMonitor(AutoDarkMode.kt:52) at com.github.weisj.darkmode.AutoDarkMode.access$createMonitor(AutoDarkMode.kt:44) at com.github.weisj.darkmode.AutoDarkMode$monitor$1.invoke(AutoDarkMode.kt:46) at com.github.weisj.darkmode.AutoDarkMode$monitor$1.invoke(AutoDarkMode.kt:46) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at com.github.weisj.darkmode.platform.settings.UtilKt.letValue(Util.kt:49) at com.github.weisj.darkmode.AutoDarkMode.start(AutoDarkMode.kt:57) at com.github.weisj.darkmode.AutoDarkModeStartupListener.appFrameCreated(AutoDarkModeStartupListener.kt:33) at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:649) at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:629) at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:399) at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:378) at com.intellij.ujava.lang.Throwable: java.lang.IllegalStateException: Monitoring is not supported. at com.intellij.openapi.diagnostic.Logger.error(Logger.java:184) at com.intellij.openapi.diagnostic.Logger.error(Logger.java:188) at com.intellij.idea.IdeaLogger.error(IdeaLogger.java:120) at com.github.weisj.darkmode.platform.PluginLogger.error(PluginLogger.kt:44) at com.github.weisj.darkmode.AutoDarkMode.createMonitor(AutoDarkMode.kt:52) at com.github.weisj.darkmode.AutoDarkMode.access$createMonitor(AutoDarkMode.kt:44) at com.github.weisj.darkmode.AutoDarkMode$monitor$1.invoke(AutoDarkMode.kt:46) at com.github.weisj.darkmode.AutoDarkMode$monitor$1.invoke(AutoDarkMode.kt:46) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at com.github.weisj.darkmode.platform.settings.UtilKt.letValue(Util.kt:49) at com.github.weisj.darkmode.AutoDarkMode.start(AutoDarkMode.kt:57) at com.github.weisj.darkmode.AutoDarkModeStartupListener.appFrameCreated(AutoDarkModeStartupListener.kt:33) at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:649) at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:629) at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:399) at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:378) at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1) at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:437) at jdk.proxy2/jdk.proxy2.$Proxy37.appFrameCreated(Unknown Source) at com.intellij.idea.IdeStarter.openProjectIfNeeded(IdeStarter.kt:100) at com.intellij.idea.IdeStarter.main(IdeStarter.kt:80) at com.intellij.idea.ApplicationLoader$initApplication$4.accept(ApplicationLoader.kt:185) at com.intellij.idea.ApplicationLoader$initApplication$4.accept(ApplicationLoader.kt) at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1810) at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) at java.base/java.util.concurrent.ForkJoinPool.externalHelpQuiescePool(ForkJoinPool.java:2104) at java.base/java.util.concurrent.ForkJoinPool.awaitQuiescence(ForkJoinPool.java:3321) at com.intellij.idea.StartupUtil.start(StartupUtil.java:272) at com.intellij.idea.Main.bootstrap(Main.java:119) at com.intellij.idea.Main.main(Main.java:81) idea.ApplicationLoader$initApplication$4.accept(ApplicationLoader.kt:185) at com.intellij.idea.ApplicationLoader$initApplication$4.accept(ApplicationLoader.kt) at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1810) at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) at java.base/java.util.concurrent.ForkJoinPool.externalHelpQuiescePool(ForkJoinPool.java:2104) at java.base/java.util.concurrent.ForkJoinPool.awaitQuiescence(ForkJoinPool.java:3321) at com.intellij.idea.StartupUtil.start(StartupUtil.java:272) at com.intellij.idea.Main.bootstrap(Main.java:119) at com.intellij.idea.Main.main(Main.java:81) ```

The theme never changes.

Plugin version: 1.7.1-2022.2 PyCharm Version: 2022.2.2 OS: Linux Mint 20.3 DE: Cinnamon 5.2.7

weisJ commented 1 year ago

See #61

weisJ commented 1 year ago

I have prepared a new version, which might fix this: https://github.com/weisJ/auto-dark-mode/issues/50#issuecomment-1489269592

weisJ commented 10 months ago

I will close this issue as I have reasons to assume that the Xdg implementation should cover it.