Xmonad: Как мне сбросить количество окон в главной панели? - PullRequest
2 голосов
/ 22 октября 2011

Иногда бывает, что когда я mod-L или mod-H в Xmonad, мои окна не меняются.Я считаю это результат того, что я случайно изменил количество окон в моей главной панели.Иногда мне повезло набрать нужное количество mod-, или mod-., чтобы вернуться туда, где я могу изменить размер, но не часто.

Как я могу сбросить панель до значений по умолчанию,те, которые Xmonad дает при запуске?Мой xmonad.hs:

import XMonad
import qualified XMonad.StackSet as W
import qualified Data.Map as M
import System.Exit
import Graphics.X11.Xlib
import IO (Handle, hPutStrLn)

import XMonad.Hooks.ManageDocks
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.SetWMName

import XMonad.Layout.IM
import XMonad.Layout.Reflect
import XMonad.Layout.NoBorders
import XMonad.Layout.ResizableTile
import XMonad.Layout.PerWorkspace
import XMonad.Layout.LayoutHints
import XMonad.Layout.LayoutCombinators hiding ((|||))
import XMonad.Layout.LayoutHints
import XMonad.Layout.NoBorders
import XMonad.Layout.ComboP
import XMonad.Layout.PerWorkspace
import XMonad.Layout.ResizableTile
import XMonad.Layout.Tabbed
import XMonad.Layout.TwoPane
import XMonad.Util.Run (spawnPipe)
import qualified XMonad.StackSet as W
import XMonad.Hooks.ManageHelpers
import XMonad.Layout.NoBorders

main = do
  h <- spawnPipe "/usr/bin/xmobar"
  xmonad defaultConfig
             { workspaces = workspaces'
             , borderWidth = borderWidth'
             , logHook = logHook' h
             , terminal = terminal'
             , modMask = mod4Mask
             , layoutHook = layoutHook'
             , manageHook = manageHook'
             , startupHook = setWMName "LG3D"
             }

customPP :: PP
customPP = defaultPP { ppCurrent = xmobarColor "#AFAF87" "" . wrap "<" ">"
                     , ppTitle =  shorten 80
                     , ppSep =  "<fc=#AFAF87> | </fc>"
                     , ppHiddenNoWindows = xmobarColor "#AFAF87" ""
                     , ppUrgent = xmobarColor "#FFFFAF" "" . wrap "[" "]"
                     }

logHook' :: Handle ->  X ()
logHook' h = dynamicLogWithPP $ customPP { ppOutput = hPutStrLn h }

manageHook' :: ManageHook
manageHook' = composeAll [
  isFullscreen --> doFullFloat
  ]

layoutHook' = customLayout

borderWidth' :: Dimension
borderWidth' = 1

normalBorderColor', focusedBorderColor' :: String
normalBorderColor'  = "#333333"
focusedBorderColor' = "#AFAF87"

workspaces' :: [WorkspaceId]
workspaces' = ["1", "2", "3", "4", "5", "6"]


customLayout = avoidStruts $ layoutHints $ smartBorders (Full ||| resizableTile ||| Mirror resizableTile)
    where
    resizableTile = ResizableTall nmaster delta ratio []
    nmaster = 1
    ratio = toRational (2/(1+sqrt(5)::Double))
    delta = 3/100

terminal' :: String
terminal' = "urxvt"

Я так мало редактирую этот файл, что забываю почти все об API Xmonad, почерпнутом из кропотливого выбора страниц man-страниц и компиляций пикши между ними.Есть ли прекрасный ресурс документации для API Xmonad, который не является строгим справочным материалом?

1 Ответ

6 голосов
/ 22 октября 2011

По умолчанию mod + shift + space сбрасывает ваши макеты.Если вам не нравится поведение mod- и mod-., Вы можете удалить их из вашей конфигурации, используя removeKeysP:

import XMonad.Util.EZConfig -- add this line near the top, to the other imports

main = do
  h <- spawnPipe "/usr/bin/xmobar" -- no change here
  xmonad $ defaultConfig -- note the extra ($) here
             { workspaces = workspaces'
             -- etc.
             } `removeKeysP`
             [ "M-,", "M-." ]

. Я не знаю лучшего источника документации, чем тот, которыйдоступно на вкладке документации на xmonad.org.

...