Было бы полезно, если бы вы показали нам, что вы пробовали к настоящему времени. В любом случае, вот пример того, как создать несколько пользовательских макетов.
Вам нужно создать новый макет в вашем .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))
После этого определим отображение для ключа комбо:
myAdditionalKeys = [
-- Switch to next layout:
((mod4Mask .|. shiftMask, xK_m), sendMessage NextLayout),
]
, а затем не забудьте добавить свой макет и ваш ключ Mapping в конфигурации, может выглядеть следующим образом:
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
Пожалуйста, обратите внимание, что Stackoverflow это только для программирования вопросов, связанных. Пожалуйста, просмотрите [help/on-topic], какие темы можно задать здесь. Этот вопрос * может быть уместен на других сайтах SE, таких как [unix.se]. Сначала проверьте их справку, чтобы узнать, есть ли там вопрос, и если вы можете нажать ссылку «флаг» и выбрать «необходимость внимания модератора», чтобы запросить миграцию там. – kaylum