2016-11-08 58 views
-2

我正在使用XMonad,我想要一個佈局至少有三個固定的85個字符寬的窗口和另一個帶螺旋佈局的窗口。 (我有一個34英寸大屏幕寬屏)Linux,XMonad佈局

我試圖用這種組合,但我沒有管理,任何幫助/方向的例子將不勝感激。

謝謝!

+1

請注意,是#2只編程相關的問題。請查看[幫助/在線主題],瞭解可在此處詢問哪些主題。這個問題*可能適用於其他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), 
] 

,然後不要忘了你的佈局和鍵映射添加到配置,看起來是這樣的:

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