【问题标题】:XMonad tabbed layout hides XMobar in Arch linuxXMonad 选项卡式布局在 Arch linux 中隐藏了 XMobar
【发布时间】:2021-07-06 01:35:19
【问题描述】:

Xmonad 在选项卡式布局中隐藏 xmobar 和选项卡。配置有什么问题?

我长期使用 xmonad 和 xmobar。但是上次当我迁移回 Arch linux 时,XMonad.Layout.Tabbed 的所有布局都全屏显示窗口。屏幕上没有 xmobar 或任何选项卡。 Windows 切换和其他任何东西都可以正常工作。

这是我的三个布局中的三个屏幕截图:

网格:

螺旋:

标签:

xmonad.hs:

import XMonad
import qualified XMonad.StackSet as W
import qualified Data.Map as M
import System.Exit
import System.Directory (getHomeDirectory)
import System.FilePath.Posix (joinPath)
import Graphics.X11.Xlib
import Graphics.X11.ExtraTypes.XF86
--import IO (Handle, hPutStrLn)
import qualified System.IO
import XMonad.Actions.CycleWS (nextScreen,prevScreen)
import Data.List

-- Prompts
import XMonad.Prompt
import XMonad.Prompt.Shell

-- Actions
import XMonad.Actions.MouseGestures
import XMonad.Actions.UpdatePointer
import XMonad.Actions.GridSelect
import XMonad.Actions.CycleWS

-- Utils
import XMonad.Util.Run (spawnPipe, safeSpawn)
import XMonad.Util.Loggers
import XMonad.Util.EZConfig
import XMonad.Util.Scratchpad
import XMonad.Util.NamedWindows

import qualified XMonad.StackSet as W
-- Hooks
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.UrgencyHook
import XMonad.Hooks.Place
import XMonad.Hooks.EwmhDesktops

-- Layouts
import XMonad.Layout.NoBorders
import XMonad.Layout.Fullscreen
import XMonad.Layout.LayoutCombinators hiding ((|||))
import XMonad.Layout.Grid
import XMonad.Layout.Spiral
import XMonad.Layout.Tabbed

import Data.Ratio ((%))
import XMonad.Layout.ToggleLayouts
import XMonad.Layout.Spacing
import XMonad.Hooks.ManageHelpers
import XMonad.Layout.Gaps
import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.SetWMName


defaults = defaultConfig {
    terminal        = "xterm"
  , workspaces      = myWorkSpaces
  , modMask     = mod4Mask
  , layoutHook      = myLayoutHook
--  , manageHook            = myManageHook
  , startupHook     = myStartupHook
  , borderWidth     = 2
  , normalBorderColor   = "#303030"
  , focusedBorderColor  = "#A0A0A0"
  } `additionalKeys` myKeys

myKeys = [
    ((mod4Mask, xK_g), goToSelected defaultGSConfig)
  , ((mod4Mask, xK_s), spawnSelected defaultGSConfig ["vivaldi","idea","robo3t","thunderbird","postman","easyhg","renoise","telegram-desktop"])
  , ((mod4Mask, xK_c), spawn "ps -eo pcpu,pid,user,args | sort -r | head -5 >> ~/cpu-report")
  , ((mod4Mask, xK_grave), nextWS)
  , ((0, xF86XK_AudioRaiseVolume), spawn "amixer -D pulse sset Master 3%+ && ~/.xmonad/getvolume.sh >> /tmp/.volume-pipe")
  , ((0, xF86XK_AudioLowerVolume), spawn "amixer -D pulse sset Master 3%- && ~/.xmonad/getvolume.sh >> /tmp/.volume-pipe")
  , ((0, xF86XK_AudioMute), spawn "amixer -D pulse sset Master toggle && ~/.xmonad/getvolume.sh >> /tmp/.volume-pipe")
  , ((0, xK_Print), spawn "scrot")
  ]

myWorkSpaces :: [String]
myWorkSpaces = [
    "<action=`xdotool key Super_L+1`> |1| </action>"
  , "<action=`xdotool key Super_L+2`> |2| </action>"
  , "<action=`xdotool key Super_L+3`> |3| </action>"
  , "<action=`xdotool key Super_L+4`> |4| </action>"
  , "<action=`xdotool key Super_L+5`> |5| </action>"
  , "<action=`xdotool key Super_L+6`> |6| </action>"
  , "<action=`xdotool key Super_L+7`> |7| </action>"
  , "<action=`xdotool key Super_L+8`> |8| </action>"
  , "<action=`xdotool key Super_L+9`> |9| </action>"
  ]

-- tab theme default
myTabConfig = defaultTheme {
    activeColor         = "#666666"
  , activeBorderColor   = "#000000"
  , inactiveColor       = "#666666"
  , inactiveBorderColor = "#000000"
  , decoHeight          = 10
 }

xmobarTitleColor = "#FFB6B0"
xmobarCurrentWorkspaceColor = "#FFB6B0"
xmobarUrgentWorkspaceColor = "#45A5F5"
xmobarHiddenNoWindowsColor = "#A4A19F"

myStartupHook = do
  startupHook defaultConfig
  setWMName "LG3D"
  spawn "~/.xmonad/getvolume.sh >> /tmp/.volume-pipe"

myLayoutHook =
    avoidStruts $
    spacing 6 $
    gaps [(U,15)] $
    toggleLayouts (noBorders Full) $
    smartBorders $ Grid ||| spiral (6/7) ||| tabbedAlways shrinkText defaultTheme

myManageHook = manageDocks <+> manageHook defaultConfig

data LibNotifyUrgencyHook = LibNotifyUrgencyHook deriving (Read, Show)
instance UrgencyHook LibNotifyUrgencyHook where
    urgencyHook LibNotifyUrgencyHook w = do
        name     <- getName w
        safeSpawn "notify-send" [show name]

main = do
  xmproc <- spawnPipe "/usr/bin/xmobar ~/.xmonad/xmobar.hs"
  xmonad $ withUrgencyHook LibNotifyUrgencyHook $ fullscreenSupport $ defaults {
            logHook =  dynamicLogWithPP $ defaultPP {
                ppOutput = System.IO.hPutStrLn xmproc
              , ppTitle = xmobarColor xmobarTitleColor "" . shorten 65
              , ppCurrent = xmobarColor xmobarCurrentWorkspaceColor "" . wrap "" ""
              , ppUrgent = xmobarColor xmobarUrgentWorkspaceColor "" . wrap "" ""
              , ppHiddenNoWindows = xmobarColor xmobarHiddenNoWindowsColor {-"#7e7c7a"-} "" . wrap "" ""
              , ppSep = "   "
              , ppWsSep = ""
              , ppLayout  = (\ x -> case x of
                  "Spacing Grid"        -> "[ Grid ]"
                  "Spacing Spiral"          -> "[Spiral]"
                  _                         -> x )
            }
        }

xmobar.hs:

Config {
    font = "xft:DejaVu Sans Mono:size=9:bold:antialias=true",
    bgColor = "#000000",
    fgColor = "#fcf9f4",
    alpha = 125,
    position = Static { xpos = 0, ypos = 0, width = 1920, height = 18 },
    lowerOnStart = True,
    commands = [
         Run Memory ["-t","mem: <usedbar>", "-n", "#45a5f5", "-L", "0", "-H", "100"] 10
        ,Run Date "%d.%m.%Y %a %H:%M:%S" "date" 10
        ,Run MultiCpu [ "--template" , "cpu: <autovbar>"
            , "--Low"      , "50"         -- units: %
            , "--High"     , "85"         -- units: %
            , "--low"      , "gray"
            , "--normal"   , "darkorange"
            , "--high"     , "darkred"
            , "-c"         , ""
            , "-w"         , "1"
        ] 3
  ,Run Com "/home/laniakea/.xmonad/getinet.sh" [] "inet" 10
        ,Run UnsafeStdinReader
  ,Run PipeReader "/tmp/.volume-pipe" "vol"
  ,Run Kbd [("us", "US"),("ru", "RU")]
  ,Run Battery ["-t", "<acstatus> <left>%", "--", "-o", "<fc=#f7c2ba>Off</fc>", "-O", "<fc=#45a5f5>On</fc>", "-i", "<fc=#fcf9f4>Idle</fc>"] 10
    ],
    sepChar = "%",
    alignSep = "}{",
    template = " %UnsafeStdinReader% }{%vol% | %multicpu% | %memory% | %battery% | %inet% | %kbd% | <fc=#f7c2ba>%date%</fc>   "
}

我希望在选项卡式布局中,如果我在工作区上打开了多个窗口,我仍然可以看到带有所有信息和选项卡的 xmobar。谢谢。

【问题讨论】:

  • 你可能想试试desktopConfig hackage.haskell.org/package/xmonad-contrib-0.15/docs/… 而不是defaults
  • xmonad.hs 的开头我将desktopConfig 覆盖为defaults
  • 对不起,我的错误,但应该是desktopConfig,而你有defaultConfig? (它来自另一个包+模块)
  • 谢谢。现在我使用desktopConfig 而不是弃用的defaultConfig。但是,不幸的是,这无济于事。

标签: haskell archlinux xmonad xmobar


【解决方案1】:

我可能会迟到回答这个问题,但这也发生在我身上。对我来说,我使用Xephyr 测试了同样的东西,这给了我一个关于导致问题的线索。对我来说,问题都是关于字体的。所以我以这种方式修复它。

myLayout = tabs ||| ...
  where
    tabs = tabbed shrinkText myTabConf

myTabConf :: Theme
myTabConf = def {
  fontName = "xft:Source Code Pro:size=8:antialias=true"
}

如果您注意到使用 xephyr(user error (createFontSet)) 时产生的错误,并对其进行研究,您会发现 this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 2020-08-20
    相关资源
    最近更新 更多