2016-11-08 3 views
-2

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

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

Спасибо!

+1

Пожалуйста, обратите внимание, что Stackoverflow это только для программирования вопросов, связанных. Пожалуйста, просмотрите [help/on-topic], какие темы можно задать здесь. Этот вопрос * может быть уместен на других сайтах SE, таких как [unix.se]. Сначала проверьте их справку, чтобы узнать, есть ли там вопрос, и если вы можете нажать ссылку «флаг» и выбрать «необходимость внимания модератора», чтобы запросить миграцию там. – kaylum

ответ

0

Было бы полезно, если бы вы показали нам, что вы пробовали к настоящему времени. В любом случае, вот пример того, как создать несколько пользовательских макетов.

Вам нужно создать новый макет в вашем .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 

 Смежные вопросы

  • Нет связанных вопросов^_^