Linux、XMonad布局

Linux、XMonad布局,linux,xmonad,Linux,Xmonad,我使用的是XMonad,我想要一个至少有三个85个字符宽的固定窗口和一个螺旋形布局的窗口的布局。(我有一个34英寸的宽屏) 我尝试使用组合来解决这个问题,但我没有成功,请提供任何示例帮助/指导 谢谢 如果你给我们展示一下你现在所做的尝试,那会很有帮助的。 无论如何,这里有一个关于如何创建多个自定义布局的示例 您需要在.xmonad/xmonad.hs中创建一个新布局。为此,您需要对haskell有一点经验 我已经创建了几个布局,可以通过按特定的组合键来使用这些布局。下面是一个示例: 导入以下内容

我使用的是XMonad,我想要一个至少有三个85个字符宽的固定窗口和一个螺旋形布局的窗口的布局。(我有一个34英寸的宽屏)

我尝试使用组合来解决这个问题,但我没有成功,请提供任何示例帮助/指导


谢谢

如果你给我们展示一下你现在所做的尝试,那会很有帮助的。 无论如何,这里有一个关于如何创建多个自定义布局的示例

您需要在.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.Grid
import XMonad.Layout.FixedColumn
import XMonad.Layout.ThreeColumns
import Data.Raio((%))
然后你可以这样做:

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) $ reflectHoriz $
                 (withIM (3%7) (ClassName "Profanity")
                 (verticalLayoutLargeScreen ||| Grid ||| Full |||
                 verticalLayout ||| horizontalLayout ||| fullscreenLayout))
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
在此之后,为键组合定义映射:

myAdditionalKeys = [
    -- Switch to next layout:
    ((mod4Mask .|. shiftMask, xK_m), sendMessage NextLayout),
]
然后别忘了将布局和键映射添加到配置中,可以如下所示:

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) $ reflectHoriz $
                 (withIM (3%7) (ClassName "Profanity")
                 (verticalLayoutLargeScreen ||| Grid ||| Full |||
                 verticalLayout ||| horizontalLayout ||| fullscreenLayout))
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
main=do
xmonad$defaultConfig
{manageHook=manageSpawn myManageHook manageDocks,
layoutHook=myLayout,
logHook=dynamicLogWithPP xmobarPP{
ppOutput=hPutStrLn xmproc,
ppLayout=(\x->“”),
ppTitle=xmobarColor“#b2ed00”
}>>updatePointer(相对0.99 0.99),
modMask=mod4Mask,
边框宽度=4,
normalBorderColor=“#777777”,
FocusedByOrderColor=“#ccff00”,
工作区=我的工作区,
focusFollowsMouse=True,
terminal=“x-terminal-emulator”
}
`removeKeys`myRemoveKeys
`additionalKeys`myAdditionalKeys

请注意,Stackoverflow仅用于编程相关问题。请查看,了解此处可以询问的主题。此问题可能适用于其他SE站点,例如。首先查看他们的帮助,看看问题是否属于那里,如果属于那里,你可以点击“标志”链接并选择“需要版主注意”请求迁移到那里。