Linux,XMonad Layout

Я использую XMonad, и мне нужен макет, который имеет как минимум три фиксированных окна шириной 85 символов и еще одно окно со спиральным макетом. (У меня большой широкоформатный 34-дюймовый экран)

Я попытался сделать это с помощью комбинаций, но мне не удалось, любая помощь / направление к примерам будет оценено.

Спасибо!

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.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
Другие вопросы по тегам