【问题标题】:Java GUI Xmonad not workingJava GUI Xmonad 不工作
【发布时间】:2026-02-14 19:25:03
【问题描述】:

Java GUI 应用程序只给我一个空白窗口,我试过了:

main = do
    xmonad $ defaultConfig
    { modMask = mod4Mask
    , startupHook = setWMName "LG3D"
    -- other customizations
    }

并设置:

_JAVA_AWT_WM_NONREPARENTING=1 

还有这个:

AWT_TOOLKIT=MToolkit

我尝试使用“wmname”无趣的工具。 这些方法都不适合我。两个问题:

  1. 还有其他可能吗?
  2. 我做错了什么?

我使用 java 8 及以下是我目前最小的 xmonad 配置。

import XMonad 
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.SetWMName
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.FadeInactive
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import XMonad.Actions.UpdatePointer
import XMonad.Hooks.EwmhDesktops
import System.IO


term = "termite"
myWorkspaces = ["1","2","3","4","5"]

myLogHook :: X ()
myLogHook = fadeInactiveLogHook fadeAmount
    where fadeAmount = 0.7

main = do
    xmonad $ defaultConfig { 
        startupHook = setWMName "LG3D",
        manageHook = manageDocks <+> manageHook defaultConfig,
        layoutHook = avoidStruts $ layoutHook defaultConfig,
        logHook = dynamicLog
             >> updatePointer (0.5,0.5) (1,1)
             >> myLogHook,
        terminal = term,
        borderWidth = 0,
        focusFollowsMouse = False,
        workspaces = myWorkspaces
        }`additionalKeys`[
            ((mod1Mask .|. shiftMask, xK_l), spawn "scrot 'lock.png' -q 1 -e 'mv $f /tmp/lock.png' && i3lock -I 1 -i /tmp/lock.png"),
            ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s"),
            ((0, xK_Print), spawn "scrot"),
            ((mod1Mask, xK_d), spawn "rofi -config /home/chrootzius/.config/rofi/config -show run")
        ]

【问题讨论】:

    标签: java swing user-interface haskell xmonad


    【解决方案1】:

    所以最后我发现它是:

    borderWidth = 0,
    

    禁用此设置或将其设置为任何正值后,一切都像魅力一样工作。

    --this works
    borderWidth = [any positive value],
    --for example
    borderWidth = 1,
    

    很抱歉打扰你们了。我希望这些信息可以帮助任何人。

    【讨论】:

    • 解决了自己的问题并回来分享解决方案的人是英雄。
    • 那个,请将此答案标记为已接受,以免其他人认为他们仍然需要回答:)
    • 我讨厌解决方案看起来如此直接,但对我不起作用:(
    • 看来startupHook = setWMName "LG3D"在这里也很重要(thinkingeek.com/2012/01/24/fix-java-gui-applications-xmonad)