如何生成这种 xmonad 平铺
How to generate this kind of xmonad tiling
如何使用 xmonad 生成这种平铺?
http://xmonad.org/images/screen-ejt-spiral-dzen.png
我知道你可以 increase/decrease 主窗格中 windows 的数量 mod-comma,并使用 mod-spacemod-h和mod-l 改变布局。但似乎仅仅这些命令集无法重现上面 link.
中的那种平铺
特别是,上面的 link 有两件事我不知道该怎么做:
- 右侧较大的瓷砖并没有在中间水平分割,但实际上更长。我只能 increase/decrease 使用 mod-h 和 mod-l[ 那样的主窗格=34=]
- 右侧较小的图块被分成两个子图块。我不知道你会如何使用 xmonad
来解决这个问题
您需要在 .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
如何使用 xmonad 生成这种平铺?
http://xmonad.org/images/screen-ejt-spiral-dzen.png
我知道你可以 increase/decrease 主窗格中 windows 的数量 mod-comma,并使用 mod-spacemod-h和mod-l 改变布局。但似乎仅仅这些命令集无法重现上面 link.
中的那种平铺特别是,上面的 link 有两件事我不知道该怎么做:
- 右侧较大的瓷砖并没有在中间水平分割,但实际上更长。我只能 increase/decrease 使用 mod-h 和 mod-l[ 那样的主窗格=34=]
- 右侧较小的图块被分成两个子图块。我不知道你会如何使用 xmonad 来解决这个问题
您需要在 .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