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
53 stars 14 forks source link

Plugin is incompatible with Flatpak distribution of IntelliJ #20

Closed Agraphie closed 1 year ago

Agraphie commented 4 years ago

Hi,

I'm trying your plugin on Pop!OS and Gnome with Android Studio, but I get the following exceptions. It also doesn't work for Intellij Ultimate for me. Any ideas?

Could not load library libauto-dark-mode-linux-gnome.so.

java.lang.UnsatisfiedLinkError: /home/agraphie/.var/app/com.google.AndroidStudio/cache/nativeutils3528096291508/libauto-dark-mode-linux-gnome.so: libgiomm-2.4.so.1: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1946)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1828)
    at java.lang.Runtime.load0(Runtime.java:810)
    at java.lang.System.load(System.java:1088)
    at com.github.weisj.darklaf.platform.NativeUtil.loadLibraryFromJar(NativeUtil.java:104)
    at com.github.weisj.darklaf.platform.AbstractLibrary.loadLibrary(AbstractLibrary.java:65)
    at com.github.weisj.darklaf.platform.AbstractLibrary.updateLibrary(AbstractLibrary.java:53)
    at com.github.weisj.darkmode.platform.linux.gnome.GnomeLibrary.get(GnomeLibrary.java:43)
    at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettings.<clinit>(GnomeSettings.kt:61)
    at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
    at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
    at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
    at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.getContainer(Settings.kt)
    at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.create(Settings.kt:16)
    at com.github.weisj.darkmode.AutoDarkModeOptions.<init>(AutoDarkModeOptions.kt:28)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:44)
    at com.intellij.serviceContainer.PlatformComponentManagerImpl.instantiateClassWithConstructorInjection(PlatformComponentManagerImpl.kt:505)
    at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:52)
    at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:39)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:110)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:72)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:65)
    at com.intellij.serviceContainer.PlatformComponentManagerImpl.getService(PlatformComponentManagerImpl.kt:288)
    at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:18)
    at com.github.weisj.darkmode.AutoDarkMode.<clinit>(AutoDarkMode.kt:105)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at com.intellij.serviceContainer.BaseComponentAdapter.getImplementationClass(BaseComponentAdapter.kt:46)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:105)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:72)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:65)
    at com.intellij.serviceContainer.PlatformComponentManagerImpl.getService(PlatformComponentManagerImpl.kt:288)
    at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:18)
    at com.github.weisj.darkmode.AutoDarkModeStartupListener.appFrameCreated(AutoDarkModeStartupListener.kt:10)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:518)
    at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:138)
    at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:438)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:398)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:388)
    at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:372)
    at com.intellij.util.messages.impl.MessageBusImpl.lambda$createTopicHandler$1(MessageBusImpl.java:241)
    at com.sun.proxy.$Proxy51.appFrameCreated(Unknown Source)
    at com.intellij.idea.IdeStarter.main(ApplicationLoader.kt:497)
    at com.intellij.idea.ApplicationLoader$startApp$8$1.run(ApplicationLoader.kt:240)
    at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:193)
    at com.intellij.idea.ApplicationLoader$startApp$8.run(ApplicationLoader.kt:239)
    at java.util.concurrent.CompletableFuture.uniRun(CompletableFuture.java:719)
    at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:701)
    at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:456)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:781)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

java.lang.NoClassDefFoundError: Could not initialize class com.github.weisj.darkmode.platform.linux.gnome.GnomeSettings
    at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
    at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
    at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
    at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.getContainer(Settings.kt)
    at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.create(Settings.kt:16)
    at com.github.weisj.darkmode.AutoDarkModeOptions.<init>(AutoDarkModeOptions.kt:28)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:44)
    at com.intellij.serviceContainer.PlatformComponentManagerImpl.instantiateClassWithConstructorInjection(PlatformComponentManagerImpl.kt:505)
    at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:52)
    at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:39)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:110)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:72)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:65)
    at com.intellij.serviceContainer.PlatformComponentManagerImpl.getService(PlatformComponentManagerImpl.kt:288)
    at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:18)
    at com.github.weisj.darkmode.DarkModeConfigurable.createPanel(DarkModeConfigurable.kt:20)
    at com.intellij.openapi.options.BoundConfigurable$panel$1.compute(BoundConfigurable.kt:21)
    at com.intellij.openapi.options.BoundConfigurable$panel$1.compute(BoundConfigurable.kt:16)
    at com.intellij.openapi.util.ClearableLazyValue.getValue(ClearableLazyValue.java:47)
    at com.intellij.openapi.options.BoundConfigurable.createComponent(BoundConfigurable.kt:29)
    at com.intellij.openapi.options.ex.ConfigurableWrapper.createComponent(ConfigurableWrapper.java:158)
    at com.intellij.openapi.options.ex.ConfigurableCardPanel.lambda$createConfigurableComponent$0(ConfigurableCardPanel.java:74)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:821)
    at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:71)
    at com.intellij.openapi.options.ex.ConfigurableCardPanel.createConfigurableComponent(ConfigurableCardPanel.java:70)
    at com.intellij.openapi.options.ex.ConfigurableCardPanel.create(ConfigurableCardPanel.java:56)
    at com.intellij.openapi.options.newEditor.ConfigurableEditor$1.create(ConfigurableEditor.java:56)
    at com.intellij.openapi.options.newEditor.ConfigurableEditor$1.create(ConfigurableEditor.java:53)
    at com.intellij.ui.CardLayoutPanel.createValue(CardLayoutPanel.java:87)
    at com.intellij.ui.CardLayoutPanel.select(CardLayoutPanel.java:115)
    at com.intellij.ui.CardLayoutPanel.lambda$null$0(CardLayoutPanel.java:131)
    at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:309)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:441)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:424)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:407)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:781)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:687)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
    at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
    at java.awt.Dialog.show(Dialog.java:1077)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:708)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:433)
    at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1698)
    at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1657)
    at com.intellij.openapi.options.newEditor.SettingsDialog.lambda$show$0(SettingsDialog.java:86)
    at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:83)
    at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:149)
    at com.intellij.openapi.options.newEditor.SettingsDialog.show(SettingsDialog.java:86)
    at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:84)
    at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:54)
    at com.intellij.ide.actions.ShowSettingsAction.actionPerformed(ShowSettingsAction.java:41)
    at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:298)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:315)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:293)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:263)
    at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:77)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:282)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:110)
    at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:83)
    at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:107)
    at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:116)
    at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:121)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:110)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:517)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:36)
    at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:539)
    at java.awt.Component.processMouseEvent(Component.java:6550)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
    at java.awt.Component.processEvent(Component.java:6315)
    at java.awt.Container.processEvent(Container.java:2239)
    at java.awt.Component.dispatchEventImpl(Component.java:4899)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    at java.awt.Component.dispatchEvent(Component.java:4721)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
    at java.awt.Container.dispatchEventImpl(Container.java:2283)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4721)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    at java.awt.EventQueue$4.run(EventQueue.java:739)
    at java.awt.EventQueue$4.run(EventQueue.java:737)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
    at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:846)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:778)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
``
weisJ commented 4 years ago

Do you have libgiomm installed?

It also doesn't work for Intellij Ultimate for me

Is this a separate issue or do you just mean you are using IntelliJ Ultimate?

weisJ commented 4 years ago

@IncPlusPlus could it be that the installed libraries simply don’t match the versions we are compiling against? It might be worthwhile to figure out the minimal versions of the libraries we are needing to link against.

Agraphie commented 4 years ago

As far as I can see libgiomm is part of libglibmm which seems to be installed with libglibmm-2.4.

Concerning intellij ultimate what I meant is that I just installed the plugin in intellij ultimate and get the same exceptions.

weisJ commented 4 years ago

Just to be sure could you try to manually install them

sudo apt-get install libsigc++-2.0 libglibmm-2.4 libgtk-3
Agraphie commented 4 years ago

So I have sudo apt install libgtkmm-3.0-1v5 libsigc++-2.0-0v5 libglibmm-2.4-1v5 which are all already installed

weisJ commented 4 years ago

Could you try to reinstall them? Also do you have the 32bit or 64Bit versions installed?

Agraphie commented 4 years ago

I reinstalled them but without any difference. They are all the 64bit version.

weisJ commented 4 years ago

Do you have any duplicate versions of the libraries installed? Would you be able to try to build the project yourself? If there is anything wrong with the link path of the library there may be more helpful error messages at compile time.

IncPlusPlus commented 4 years ago

@IncPlusPlus could it be that the installed libraries simply don’t match the versions we are compiling against? It might be worthwhile to figure out the minimal versions of the libraries we are needing to link against.

I agree. @Agraphie, could you provide the version numbers of those three packages given with apt info [package name]?

IncPlusPlus commented 4 years ago

I believe I might also be running into this same error. I thought it was because I hadn't updated the plugin yet but I actually have the latest version. I'll give it a look.

Agraphie commented 4 years ago
Package: libgtkmm-3.0-1v5
Version: 3.24.2-1build1

Package: libsigc++-2.0-0v5
Version: 2.10.2-1build1

Package: libglibmm-2.4-1v5
Version: 2.64.2-1

I was able to build the plugin without any problems via ./gradlew :auto-dark-mode-plugin:buildPlugin. ./gradlew :auto-dark-mode:buildPlugin (as stated in the readme) did not work with

Project 'auto-dark-mode' is ambiguous in root project 'auto-dark-mode'. Candidates are: 'auto-dark-mode-base', 'auto-dark-mode-dependencies-bom', 'auto-dark-mode-linux', 'auto-dark-mode-linux-gnome', 'auto-dark-mode-macos', 'auto-dark-mode-plugin', 'auto-dark-mode-windows'.
IncPlusPlus commented 4 years ago

Ah. Yeah I think buildPlugin isn't necessary for you to run on your own. My bad on that one. I believe you just need to do build :auto-dark-mode-plugin:runIde.

Agraphie commented 4 years ago

Just running :auto-dark-mode-plugin:runIde I can see the plugin's settings, so I assume it works...

The way I installed the plugin is over the jetbrains repository. Maybe there is something wrong with what's uploaded there? Also when I build the plugin with buildPlugin and then try to install the .jar or .zip in Android Studio I get "Plugin 'Auto Dark Mode' is incompatible with this installation". But maybe that's expected or I'm building it wrong.

Do you have any duplicate versions of the libraries installed?

Probably not. It's a pretty new Pop!OS installation and I haven't really installed that much.

IncPlusPlus commented 4 years ago

I believe I might also be running into this same error. I thought it was because I hadn't updated the plugin yet but I actually have the latest version. I'll give it a look.

As it turns out, this actually runs fine for me. I'm running Auto Dark Mode 1.5.0-2020.2.

weisJ commented 4 years ago

For Android studio you will need to checkout the 2019.3 branch as AndroidStudio is based on the 2019.3 version of the IntelliJ Platform.

IncPlusPlus commented 4 years ago

Ah. I missed the fact that the error was from Android Studio. They're going to be a little bit behind on their IntelliJ base version unfortunately.

Agraphie commented 4 years ago

So the error "Plugin 'Auto Dark Mode' is incompatible with this installation" is from Android Studio when installing manually, yes. But the original stacktrace occurs in Android Studio AND Intellij Ultimate.

I cannot even run Intellij anymore as I get the errors (same as above)

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
Gtk-Message: 17:39:46.244: Failed to load module "appmenu-gtk-module"
Gtk-Message: 17:39:46.322: Failed to load module "canberra-gtk-module"
Gtk-Message: 17:39:46.322: Failed to load module "canberra-gtk-module"
2020-08-14 17:39:47,346 [   1206]   WARN - tellij.ide.SystemHealthMonitor - issue detected: vm.options.env.vars 
2020-08-14 17:39:47,404 [   1264]  ERROR - tform.linux.gnome.GnomeLibrary - Could not load library libauto-dark-mode-linux-gnome.so. 
java.lang.UnsatisfiedLinkError: /home/agraphie/.var/app/com.jetbrains.IntelliJ-IDEA-Community/cache/tmp/nativeutils21008583138977/libauto-dark-mode-linux-gnome.so: libgiomm-2.4.so.1: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
    at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
    at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
    at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
    at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
    at java.base/java.lang.Runtime.load0(Runtime.java:768)
    at java.base/java.lang.System.load(System.java:1834)
    at com.github.weisj.darklaf.platform.NativeUtil.loadLibraryFromJar(NativeUtil.java:104)
    at com.github.weisj.darklaf.platform.AbstractLibrary.loadLibrary(AbstractLibrary.java:65)
    at com.github.weisj.darklaf.platform.AbstractLibrary.updateLibrary(AbstractLibrary.java:53)
    at com.github.weisj.darkmode.platform.linux.gnome.GnomeLibrary.get(GnomeLibrary.java:43)
    at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettings.<clinit>(GnomeSettings.kt:61)
    at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
    at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
    at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
    at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.getContainer(Settings.kt)
    at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.create(Settings.kt:16)
    at com.github.weisj.darkmode.AutoDarkModeOptions.<init>(AutoDarkModeOptions.kt:28)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:47)
    at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:662)
    at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:49)
    at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:37)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:113)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:67)
    at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:411)
    at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:393)
    at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:20)
    at com.github.weisj.darkmode.AutoDarkMode.<clinit>(AutoDarkMode.kt:105)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:47)
    at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:662)
    at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:49)
    at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:37)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:113)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:67)
    at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:411)
    at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:393)
    at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:20)
    at com.github.weisj.darkmode.AutoDarkModeStartupListener.appFrameCreated(AutoDarkModeStartupListener.kt:10)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:636)
    at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:406)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:384)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:366)
    at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:32)
    at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:187)
    at com.sun.proxy.$Proxy29.appFrameCreated(Unknown Source)
    at com.intellij.idea.IdeStarter.main(IdeStarter.kt:105)
    at com.intellij.idea.ApplicationLoader$startApp$8.run(ApplicationLoader.kt:231)
    at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:783)
    at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
    at java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:610)
    at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1085)
    at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
    at java.base/java.lang.Thread.run(Thread.java:834)
2020-08-14 17:39:47,406 [   1266]  ERROR - tform.linux.gnome.GnomeLibrary - IntelliJ IDEA 2020.2  Build #IC-202.6397.94 
2020-08-14 17:39:47,406 [   1266]  ERROR - tform.linux.gnome.GnomeLibrary - JDK: 11.0.7; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o. 
2020-08-14 17:39:47,407 [   1267]  ERROR - tform.linux.gnome.GnomeLibrary - OS: Linux 
2020-08-14 17:39:47,407 [   1267]  ERROR - tform.linux.gnome.GnomeLibrary - Plugin to blame: Auto Dark Mode version: 1.5.0-2020.2 
2020-08-14 17:39:47,407 [   1267]  ERROR - tform.linux.gnome.GnomeLibrary - Last Action:  
2020-08-14 17:39:47,408 [   1268]  ERROR - llij.ide.plugins.PluginManager - java.lang.ExceptionInInitializerError 
java.util.concurrent.CompletionException: java.lang.ExceptionInInitializerError
    at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
    at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
    at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:787)
    at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
    at java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:610)
    at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1085)
    at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ExceptionInInitializerError
    at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
    at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
    at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
    at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.getContainer(Settings.kt)
    at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.create(Settings.kt:16)
    at com.github.weisj.darkmode.AutoDarkModeOptions.<init>(AutoDarkModeOptions.kt:28)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:47)
    at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:662)
    at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:49)
    at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:37)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:113)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:67)
    at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:411)
    at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:393)
    at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:20)
    at com.github.weisj.darkmode.AutoDarkMode.<clinit>(AutoDarkMode.kt:105)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:47)
    at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:662)
    at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:49)
    at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:37)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:113)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:67)
    at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:411)
    at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:393)
    at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:20)
    at com.github.weisj.darkmode.AutoDarkModeStartupListener.appFrameCreated(AutoDarkModeStartupListener.kt:10)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:636)
    at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:406)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:384)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:366)
    at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:32)
    at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:187)
    at com.sun.proxy.$Proxy29.appFrameCreated(Unknown Source)
    at com.intellij.idea.IdeStarter.main(IdeStarter.kt:105)
    at com.intellij.idea.ApplicationLoader$startApp$8.run(ApplicationLoader.kt:231)
    at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:783)
    ... 11 more
Caused by: java.lang.IllegalStateException: Gnome library not loaded.
    at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettings.<clinit>(GnomeSettings.kt:62)
    ... 59 more
Agraphie commented 4 years ago

It seems to be an issue with the flatpak installation. I downloaded Intellij Ultimate from the jetbrains website and installed the plugin. That worked. I'm not sure what causes the issue. So I guess this can be kinda closed?

IncPlusPlus commented 4 years ago

I'm not familiar with how flatpak bundling works but if I had to guess, it could be that the flatpak for IntelliJ that you used doesn't contain some necessary runtime library. If that's the case, I'm curious what this might be. This would mean that this plugin actually has a runtime dependency which we should list in the README.

weisJ commented 4 years ago

There might be a difference in what library search paths are registered for the individual JREs. If this is the case we could add the paths manually ourself.


Sandboxing of flatpak might be an issue too.

Edit: Form doing some research the sand boxing of flatpak definitely is an issue. The IntelliJ package is hosted here: https://github.com/flathub/com.jetbrains.IntelliJ-IDEA-Ultimate/issues Every flatpak application declares a runtime, which it will be able to access. IntelliJ only declares org.freedesktop.Sdk, which doesn’t include the Gnome specific libraries (There is a separate Gnome Runtime).

weisJ commented 4 years ago

I have spiked an issue to offer provide specialised distributions with the Gnome runtime. This would probably solve this issue.

Agraphie commented 4 years ago

Awesome, thanks. I subscribed to the issue and will test again if there's a new flatpack distribution or so.

rkraneis commented 1 year ago

Unfortunately, this still is an issue (IntelliJ 2022.2.4).

flatpak run com.jetbrains.IntelliJ-IDEA-Community CompileCommand: exclude com/intellij/openapi/vfs/impl/FilePartNodeRoot.trieDescend bool exclude = true

(process:2): Gtk-WARNING **: 11:01:18.514: Locale not supported by C library. Using the fallback 'C' locale. Gtk-Message: 11:01:18.536: Failed to load module "canberra-gtk-module" Gtk-Message: 11:01:18.536: Failed to load module "pk-gtk-module" Gtk-Message: 11:01:18.536: Failed to load module "canberra-gtk-module" Gtk-Message: 11:01:18.536: Failed to load module "pk-gtk-module" 2022-11-29 11:01:19,346 [ 897] SEVERE - #c.g.w.d.p.l.g.GtkLibrary - Could not load library auto-dark-mode-linux-gtk. java.lang.UnsatisfiedLinkError: /tmp/com-weisj-darklaf-nativeutils-auto-dark-mode-linux-gtk394052994416636709540601652684458/libauto-dark-mode-linux-gtk-x86-64.so: libgtkmm-3.0.so.1: cannot open shared object file: No such file or directory at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)

Edit: to remove the plugin for now, just delete it: rm -r ~/.var/app/com.jetbrains.IntelliJ-IDEA-Community/data/JetBrains/IdeaIC2022.2/auto-dark-mode-plugin (replace com.jetbrains.IntelliJ-IDEA-Community and IdeaIC2022.2 with the App-ID and ID of the bundled product in question).

Edit2: as a workaround, I currently use the quick theme switcher.

weisJ commented 1 year ago

This isn't something I am able to fix. The flatpak distribution isn't an official one and there doesn't seem to be much interest in fixing it on the distribution side of things. See https://github.com/flathub/com.jetbrains.IntelliJ-IDEA-Ultimate/issues/58