私は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.NoBorders ~からxmonad-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ステータスバーにも当てはまります。