【问题标题】:How to generate this kind of xmonad tiling如何生成这种 xmonad 平铺
【发布时间】:2016-05-10 21:14:16
【问题描述】:

如何使用 xmonad 生成这种平铺?

http://xmonad.org/images/screen-ejt-spiral-dzen.png

我知道您可以使用 mod-comma 增加/减少主窗格中的窗口数量,并使用 mod-space mod-hmod-l 来改变布局。但似乎只有这些命令集无法重现上述链接中的那种平铺。

特别是,上面的链接有两件事我不知道该怎么做:

  1. 右侧较大的图块不是在中间水平分割,而是实际上更长。我只能使用 mod-hmod-l 增加/减少主窗格
  2. 右侧较小的图块被分成两个子图块。我不知道你会如何使用 xmonad 来解决这个问题

【问题讨论】:

    标签: xmonad


    【解决方案1】:

    您需要在 .xmonad/xmonad.hs 中创建一个新布局 为此,您需要对 haskell 有一点经验。

    我已经创建了一个全屏布局,可以通过按下特定的组合键来使用这里是一个示例:

    导入以下内容:

    import XMonad.Layout.Spacing
    import XMonad.Layout.LayoutCombinators hiding ( (|||) )
    import XMonad.Layout.Fullscreen
    import XMonad.Layout.NoBorders
    import XMonad.Layout.Reflect
    import XMonad.Layout.Combo
    import XMonad.Layout.TwoPane
    import XMonad.Layout.Tabbed 
    import XMonad.Layout.PerWorkspace
    import XMonad.Layout.IM
    import XMonad.Layout.ThreeColumns
    

    然后你可以这样做:

    sPx = 1
    
    verticalLayout = spacing sPx $ avoidStruts $ reflectHoriz $ Tall 1 0.03 0.5
    verticalLayoutLargeScreen = spacing sPx $ avoidStruts $ ThreeCol 1 0.03 0.5
    horizontalLayout = spacing sPx $ avoidStruts $ Mirror $ Tall 1 0.03 0.5
    webdevLayout = spacing sPx $ avoidStruts $ Tall 1 0.03 0.63
    fullscreenLayout = noBorders $ fullscreenFull $ Full
    
    myLayout =
        onWorkspace "2:web" (webdevLayout ||| fullscreenLayout) $
                        (verticalLayout ||| horizontalLayout ||| fullscreenLayout)
    

    在此之后为您的组合键定义一个映射:

    myAdditionalKeys = [
      -- Switch to next layout:
      ((mod4Mask .|. shiftMask, xK_m), sendMessage NextLayout),
    ]
    

    然后不要忘记将布局和键映射添加到配置中,可能如下所示:

    main = do
      xmonad $ defaultConfig
                 { manageHook = manageSpawn <+> myManageHook <+> manageDocks,
                   layoutHook = myLayout,
                   logHook = dynamicLogWithPP xmobarPP {
                           ppOutput = hPutStrLn xmproc,
                           ppLayout = (\ x -> ""),
                           ppTitle = xmobarColor "#b2ed00" ""
                         } >> updatePointer (Relative 0.99 0.99),
                   modMask = mod4Mask,
                   borderWidth = 4,
                   normalBorderColor = "#777777",
                   focusedBorderColor = "#ccff00",
                   workspaces = myWorkspaces,
                   focusFollowsMouse = True,
                   terminal = "x-terminal-emulator"
                 }
                 `removeKeys` myRemoveKeys
                 `additionalKeys` myAdditionalKeys
    

    【讨论】:

    • 谢谢,是的,我想文档没有说得足够清楚,那个特定的布局不能用键完成,但需要自定义布局。
    猜你喜欢
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 2012-03-08
    相关资源
    最近更新 更多