Du bist nicht angemeldet.

#1 17.02.2017 16:07:57

Xelora
Mitglied

[erledigt] Xmobar wird verdeckt, wie ändern?

Hallo ihr Lieben, ich brauche mal eure Hilfe bezüglich Xmonad und Xmobar. Ich habe mir zu Übungszwegen eine xmonad.hs-Datei und eine .xmobarrc-Datei erstellt, basierend auf dem Tutorial von John Goerzen, nur, dass ich kein Tray-Programm benutze. Das Panel erscheint auch mit allen Infos, allerdings wird es von anderen Fenstern überdeckt, wenn ich ein Terminal oder eine andere Anwendung öffne. Wie kann man dieses Verhalten unterbinden, sodass das Panel immer sichtbar ist, auch wenn Anwendungen geöffnet sind?

Hier meine beiden Config-Files:

xmonad.hs

import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import System.IO

main = do
    xmproc <- spawnPipe "xmobar"

    xmonad $ defaultConfig
        { manageHook = manageDocks <+> manageHook defaultConfig
        , layoutHook = avoidStruts  $  layoutHook defaultConfig
        , logHook = dynamicLogWithPP xmobarPP
                        { ppOutput = hPutStrLn xmproc
                        , ppTitle = xmobarColor "green" "" . shorten 50
                        }
        , modMask = mod4Mask     -- Rebind Mod to the Windows key
        } `additionalKeys`
        [ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock; xset dpms force off")
        , ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s")
        , ((0, xK_Print), spawn "scrot")
        ]

.xmobarrc

Config { font = "-*-Fixed-Bold-R-Normal-*-13-*-*-*-*-*-*-*"
        , borderColor = "black"
        , border = TopB
        , bgColor = "black"
        , fgColor = "grey"
        , position = TopW L 100
        , commands = [ Run Weather "CYVR" ["-t","<tempC>C","-L","18","-H","25","--normal","green","--high","red","--low","lightblue"] 36000
                        , Run Network "eth0" ["-L","0","-H","32","--normal","green","--high","red"] 10
                        , Run Network "eth1" ["-L","0","-H","32","--normal","green","--high","red"] 10
                        , Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10
                        , Run Memory ["-t","Mem: <usedratio>%"] 10
                        , Run Swap [] 10
                        , Run Com "uname" ["-s","-r"] "" 36000
                        , Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
                        , Run StdinReader
                        ]
        , sepChar = "%"
        , alignSep = "}{"
        , template = "%StdinReader% | %cpu% | %memory% * %swap% | %eth0% - %eth1% }{<fc=#ee9a00>%date%</fc> | %uname% | %CYVR% "
        }

Kann mir jemand sagen, woran es liegt und was ich editieren muss, damit es so läuft, wie ich es haben will? Vielen Dank schon mal.

Liebe Grüße

Edit: Ich habs jetzt doch allein geschafft, aber ich schreib trotzdem mal dazu, wie ich es hinbekommen habe, falls jemand das gleiche Problem hat.

import XMonad
import XMonad.Config.Desktop

main = do
    xmproc <- spawnPipe "xmobar"

    xmonad $ desktopConfig

zusätzlich zu den anderen Import-Befehlen muss man import XMonad.Config.Desktop hinzufügen. Anschließend ersetzt man xmonad $ defaultConfig durch xmonad $ desktopConfig in der xmonad.hs-Datei.
Leider fehlt dieser Hinweis auf der Haskell Website, aber egal, man lernt ja nie aus.

Grüße

Beitrag geändert von Xelora (17.02.2017 20:07:27)

Offline

#2 18.02.2017 11:35:07

T.M.
Mitglied

Re: [erledigt] Xmobar wird verdeckt, wie ändern?

Meine main sieht so aus:

main = do
         handle <- spawnPipe "xmobar ~/.xmonad/xmobarrc"
         xmonad defaultConfig
          {
          -- simple stuff
            terminal           = myTerminal,
            focusFollowsMouse  = myFocusFollowsMouse,
            borderWidth        = myBorderWidth,
            modMask            = myModMask,
--            numlockMask        = myNumlockMask,
            workspaces         = myWorkspaces,
            normalBorderColor  = myNormalBorderColor,
            focusedBorderColor = myFocusedBorderColor,

          -- key bindings
            keys               = myKeys,
            mouseBindings      = myMouseBindings,

          -- hooks, layouts
            startupHook        = setWMName "LG3D",
            layoutHook         = myLayout,
            manageHook         = myManageHook,
            logHook            = dynamicLogWithPP $ defaultPP
                                  {
                                     ppSep = " "
                                   , ppOutput = hPutStrLn handle
                                  }
          }

Der handle von xmobar bekommt unten einen hook, damit Informationen vom aktiven Fenster dargestellt werden können. Ansonsten kümmert sich hier niemand weiter um xmobar. Deinen Xmonad.Config.Desktop-Import hab ich nicht.

Ich will noch auf die Taste Mod-b hinweisen, damit kannste die Zeile, die von xmobar eingenommen wird, interaktiv aus- und einblenden. Möglicherweise war (oder ist) die Ausgeblendetheit bei Dir der default, dann wird der Platz von regulären Fenstern verwendet.

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums