如何删除 Xmonad 窗口的底部边缘和侧面,保留上面的窗口?

如何删除 Xmonad 窗口的底部边缘和侧面,保留上面的窗口?

我是 Xmonad 的新手,我想自定义窗口的布局,我没有找到任何可以作为如何编辑窗口的示例,到目前为止我可以更改边框的颜色和宽度。

关注我的 xmonad.hs

module Main (main) where

--------------------------------------------------------------------------------
import System.Exit
import XMonad
import XMonad.Config.Desktop
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageHelpers
import XMonad.Layout.BinarySpacePartition (emptyBSP)
import XMonad.Layout.NoBorders (noBorders)
import XMonad.Layout.ResizableTile (ResizableTall(..))
import XMonad.Layout.ToggleLayouts (ToggleLayout(..), toggleLayouts)
import XMonad.Prompt
import XMonad.Prompt.ConfirmPrompt
import XMonad.Prompt.Shell
import XMonad.Util.EZConfig

-------------------------------------------------------------------------    -------
main = do
  spawn "xmobar" -- Start a task bar such as xmobar.
  spawn "wmname LG3D"

  -- Start xmonad using the main desktop configuration with a few
  -- simple overrides:

  xmonad $ desktopConfig
    { modMask    = mod4Mask -- Use the "Win" key for the mod key
    , manageHook = myManageHook <+> manageHook desktopConfig
    , layoutHook = desktopLayoutModifiers myLayouts
    , logHook    = dynamicLogString def >>= xmonadPropLog
    , focusedBorderColor = "cyan"
    , borderWidth = 1
    }

    `additionalKeysP` -- Add some extra key bindings:
      [ ("M-S-q",   confirmPrompt myXPConfig "exit" (io exitSuccess))
      , ("M-p",     shellPrompt myXPConfig)
      , ("M-<Esc>", sendMessage (Toggle "Full"))
      , ("<XF86AudioMute>", spawn "amixer -q sset 'Master' mute") --Muta o som
      , ("<XF86AudioLowerVolume>", spawn "amixer -q sset 'Master' 1%-") -    -Diminui o volume em 1%
      , ("<XF86AudioRaiseVolume>", spawn "amixer -q sset 'Master' 1%+     unmute") --Aumenta o volume em 1%
      , ("<XF86MonBrightnessDown>", spawn "sh     ~/OneDrive/Documentos/xmonad/brightness.sh -s -1") --Diminui o brilho da tela     em 1%
      , ("<XF86MonBrightnessUp>", spawn "sh     ~/OneDrive/Documentos/xmonad/brightness.sh -s +1") --Aumenta o Brilho da tela     em 1%
      , ("C-<Return>", spawn "chromium") --Abre o google chrome   
      , ("M-g", spawn "gedit") --Abre o gedit
      , ("M-r", spawn "nautilus") --Abre o nautilus
      , ("M-c", spawn "code") --Abre o MS Code
      ]
-------------------------------------------------------------------------    -------
-- | Customize layouts.
--
-- This layout configuration uses two primary layouts, 'ResizableTall'
-- and 'BinarySpacePartition'.  You can also use the 'M-<Esc>' key
-- binding defined above to toggle between the current layout and a
-- full screen layout.
myLayouts = toggleLayouts (noBorders Full) others
  where
    others = ResizableTall 1 (1.5/100) (3/5) [] ||| emptyBSP

--------------------------------------------------------------------------------
-- | Customize the way 'XMonad.Prompt' looks and behaves.  It's a
-- great replacement for dzen.
myXPConfig = def
  { position          = Top
  , alwaysHighlight   = True
  , promptBorderWidth = 0
  , font              = "xft:monospace:size=9"
  }

myManageHook = composeOne
  [ className =? "Pidgin" -?> doFloat
  , className =? "XCalc"  -?> doFloat
  , className =? "mpv"    -?> doFloat
  , className =? "vlc"    -?> doFloat
  , isDialog              -?> doCenterFloat
  , isFullscreen          -?> doFullFloat
    -- Move transient windows to their parent:
  , transience
  ]

答案1

XMonad 本身无法修改客户端窗口。边框/选项卡和其他装饰可以由 xmonad 本身创建/渲染。

您可以使用XMonad.Layout.NoBordersxmonad-contrib智能边框行为包。

例如我使用:

import XMonad.Layout.NoBorders



myBorders = lessBorders (Combine Union Screen OnlyFloat)

myLayout =
  avoidStruts $
  myBorders $
  layoutHintsToCenter  $
  onWorkspace "con"
              ( tab ||| full ||| tiled ||| mtiled) $
  onWorkspaces ["web","irc"]
              full $
    full ||| tiled ||| mtiled
  where
        -- default tiling algorithm partitions the screen into two panes
        tiled = Tall nmaster delta ratio
        -- The default number of windows in the master pane
        nmaster = 1
        -- Default proportion of screen occupied by master pane
        ratio =
          toRational (2 / (1 + sqrt 5 :: Double))
        -- Percent of screen to increment by when resizing panes
        delta = 5 / 100
        -- tab is tabbed
        tab =
          tabbed shrinkText (theme smallClean)
        -- full is Full
        full =
          (fullscreenFloat . fullscreenFull) Full
        -- mtiled is mirrortiled
        mtiled = Mirror tiled

这仅在具有多个窗口的布局上提供边框。加上全屏浮动窗口中的应用程序,无边框。这也适用于 xmobar 状态栏。

答案2

要删除边框,您需要设置borderWidth = 0.

相关内容