keyguard-app icon indicating copy to clipboard operation
keyguard-app copied to clipboard

[Feature Request] Add Wayland support

Open tuxpizza opened this issue 1 year ago • 2 comments

Not sure how simple this would be (Could be a Kotlin multiplatform app limitation), I've never used a Kotlin multi-platform application on Linux, but by default it appears that trying to launch with Wayland does not work after removing permissions for X11:

Exception in thread "main" java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it. at java.desktop/sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(Unknown Source) at androidx.compose.ui.window.LayoutConfiguration_desktopKt.getGlobalDensity(LayoutConfiguration.desktop.kt:41) at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1.invoke(Application.desktop.kt:226) at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1.invoke(Application.desktop.kt:221) at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:107) at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33) at androidx.compose.runtime.ActualJvm_jvmKt.invokeComposable(ActualJvm.jvm.kt:33) at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3595) at androidx.compose.runtime.ComposerImpl.composeContent$runtime(Composer.kt:3522) at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:743) at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:1114) at androidx.compose.runtime.CompositionImpl.composeInitial(Composition.kt:649) at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:635) at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2.invokeSuspend(Application.desktop.kt:221) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Unknown Source) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)

I tried to look for flags or environment variables that could be set to allow this application to work via Wayland (Like Electron apps usually require) but couldn't find anything.

I believe Wayland support is important for an application like this that requires upmost security, as it isolates running programs in the GUI space, whereas X11 is very insecure and is keyloggable and viewable by other apps running on the X server.

However if its not even supported by the Kotlin platform, I guess there is nothing to be done.

tuxpizza avatar Aug 06 '24 05:08 tuxpizza

This some sort of a duplicate of https://github.com/AChep/keyguard-app/issues/399

AChep avatar Aug 11 '24 05:08 AChep

I guess I'll reopen it as the previous issue is more about the scaling then just having the Wayland support.

AChep avatar Aug 11 '24 05:08 AChep