2

In XMonad is there any way to see an overview of all the currently used workspaces including their current windows at a time?

I think it's a very practical piece of software but I have not found any extension that does something like this. Unless you do remember on which workspace you put all your windows, you end up cycling through the workspaces in order to find one particular window.

I'm thinking for instance of one extra workspace (maybe accessed by MOD-0) which gives you the overview. It could maybe even include some thumbnails of the open workspaces. But for the start a text based summary of the window titles would be ok. Does anybody know if this is existing? Or - if not - could anybody give me a rough direction where to start developing an extension/module doing this, maybe another extension that could be used as a point of departure or so.

Anton Harald
  • 5,772
  • 4
  • 27
  • 61
  • 1
    You might like [`goToSelected`](http://hackage.haskell.org/package/xmonad-contrib-0.12/docs/XMonad-Actions-GridSelect.html#v:goToSelected), which will show a grid of window titles. Navigate the grid with your arrow keys and choose a window to jump to the workspace for that window. Does that seem like a starting point? – Daniel Wagner Jan 20 '17 at 19:03

3 Answers3

1

You could use xmobar for this purpose, if right configured, it shows your current workspace(s) and all workspaces that have open windows or programs in it.

Looks like this: xmobar example

And this is the config for it:

xmonad.hs:

 main = do
   xmproc <- spawnPipe "/usr/bin/xmobar /home/svoelkl/.xmobarrc"
   status <- spawnPipe myDzenStatus
   conky  <- spawnPipe myDzenConky
   xmonad $ defaultConfig
              { manageHook = manageSpawn <+> myManageHook <+> manageDocks,
                layoutHook = myLayout,
                logHook = dynamicLogWithPP xmobarPP {
                            ppOutput = hPutStrLn xmproc,
                            ppLayout = (\ x -> ""),
                            ppTitle = xmobarColor "#b2ed00" ""
                          } >> updatePointer (Relative 0.99 0.99),
                modMask = mod4Mask,
                borderWidth = 4,
                normalBorderColor = "#777777",
                focusedBorderColor = "#ccff00",
                workspaces = myWorkspaces,
                focusFollowsMouse = True,
                terminal = "x-terminal-emulator"
              }
              `removeKeys` myRemoveKeys
              `additionalKeys` myAdditionalKeys

.xmobarrc:

 Config { position = TopSize L 90 24
        , lowerOnStart = True
        , bgColor = "black"
        , fgColor = "grey"
        , commands = [ Run Date "%a %_d %l:%M" "date" 10
                     , Run StdinReader
                     , Run BatteryP ["BAT0"]
                       ["-t", "<acstatus><watts> (<left>%)",
                        "-L", "10", "-H", "80", "-p", "3",
                        "--", "-O", "<fc=#b2ed00>On</fc> -", "-o", "",
                        "-L", "-15", "-H", "-5",
                        "-l", "red", "-m", "blue", "-h", "green"]
                        600
                     ]
        , template = "%StdinReader% }{ %battery% <fc=#ee9a00>%date%</fc>"
        }
GiftZwergrapper
  • 2,602
  • 2
  • 20
  • 40
1

XMonad is only a windows manager. You'll need something like xmobar/tint2/dzen to display the currently running applications.

An example of tint2: enter image description here

Chris Stryczynski
  • 30,145
  • 48
  • 175
  • 286
0

You can use XMonad.Actions.GridSelect from xmonad-contrib. It will provide you with simple pop-up menu, similar to alt-tab menu in more 'traditional' GUI enviroinments. Just add that keybinding

((modm, xK_g), goToSelected defaultGSConfig)

as explained in the link above.

Also check out XMonad.Actions.TreeSelect, this might be closer to what you want.