【问题标题】:How to do spacing per window on focus with xmonad?如何使用xmonad在焦点上设置每个窗口的间距?
【发布时间】:2020-06-05 18:36:08
【问题描述】:

我正在尝试在焦点上而不是边框​​上围绕窗口进行间距。它更容易看到,聚焦于哪个窗口。

XMonad.Actions.Spacing 模块不包含基于窗口 id 进行间距的方法,我可以这样做:

myHook ConfigureEvent{ev_event_type = focusIn, ev_window = id} = do
 setSpacing id opacity

有什么办法吗,我需要什么?

【问题讨论】:

  • 嗨。我看到你接受了答案。就像好奇一样。它像它一样工作吗?你修改了很多代码吗?。

标签: haskell xmonad


【解决方案1】:

免责声明:下面的代码没有经过测试,很可能无法编译,即使它编译了,xmonad 或 @ 也可能有充分的理由987654322@ 不导出此功能,因为它似乎破坏了平铺设置...此答案不适合评论,但应将其视为建议而不是解决方案。

您可以复制粘贴一些操作代码并根据您的意愿进行修改。例如,从 XMonad.Actions.NoBorders 中模仿 toggleBorder,您可以获得宽度和高度属性,并将它们设置为原始的 95%。

-- Maybe more inputs are necesary, check for compiler errors
import XMonad

resizeOnFocus :: Window -> X ()
resizeOnFocus w = do
    withDisplay $ \d -> io $ do
        windowW <- wa_width <$> getWindowAttributes d w
        windowH <- wa_height <$> getWindowAttributes d w
        let newW = floor $ fromIntegral windowW * 0.95
            newH = floor $ fromIntegral windowH * 0.95
        resizeWindow d w newW newH 

将它与withFocused 一起用作标准操作((modMask x, xK_g ), withFocused resizeOnFocus )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 2012-07-08
    • 1970-01-01
    相关资源
    最近更新 更多