I use desktops only because FvwmPager look cool with such my preference:

  DesktopSize 3x3
  DesktopName 0 Main
  DesktopName 1 Net
  DesktopName 2 Work
  DesktopName 3 Media
  DesktopName 4 Games

  DestroyModuleConfig FvwmPager: *
  *FvwmPager: Columns 1

Also today I discover that focus persistent only on one desktop (see my post
http://permalink.gmane.org/gmane.comp.window-managers.fvwm/7487). I don't know
how this useful for end user workflow...

So what reason to use multiply desktops?

May be I miss some useful features of desktops?

You can look for my way how I start using desktops below (or skip it if want
keep your time).

================================================================

I wanted one page for one application and FvwmPager with WindowList allow
visually easy switching among them. This require *large* DesktopSize or many
desktops. But also I wanted to preserve FvwmPager always on screen (and its
size occupy many space on screen).

So with help of Thomas Adam 3.5 years ago, I make work auto-hiding for
FvwmPager.

As I say FvwmPager look cool for me if use many desktops instead of
DesktopSize (3*N_desktops)x3. But I also wanted keyboard navigation across
pages.

Simple examples from Fvwm FAQ shown how to move between pages in single
desktop and different key bindings to move across desktops. But I wanted
single key binding for both pages and desktops. So reject using multiply
desktops.

But each day I recall how FvwmPager be cool with multiply desktops so one
evening write nice code (see below). I use only build-in features of Fvwm
without any external scripting for conditional branching or arithmetics. Only
tow drawback.

First is setting 2 environment variable. But recent version of Fvwm allow use
local variables (I keep env vars for old Fvwm installations)...

Second - magic constants of desktops count and desktop size. But one day as
contest I think generalise this code with M4 preprocessor capabilities to use
arithmetics.

================================================================

  # Similar to Vi hjkl:
  #
  #              F11 - up
  # F9  - left              F12 - right
  #             F10 - down

  DestroyFunc myGotoPage
  AddToFunc myGotoPage
  + I Next (CirculateHit, FvwmPager, Shaded) WindowShade "False"
  + I GotoPage $0 $1

  Key F9 A C myGotoPage -1p -0p
  Key F12 A C myGotoPage +1p +0p

  # Move across page up, if no page more go to last page of prev desk.
  DestroyFunc myGotoPageUp
  AddToFunc myGotoPageUp
  + I Next (CirculateHit, FvwmPager, Shaded) WindowShade "False"
  + I SetEnv fvwm_page_ny $[page.ny]
  + I Test (EnvMatch fvwm_page_ny 0) Nop
  + I TestRc (Match) GotoDesk -1 0 4
  + I TestRc (Match) GotoPage +0p 2
  + I TestRc (NoMatch) GotoPage +0p -1p
  # Remove fvwm_page_ny so derived processes do not inherit it.
  + I SetEnv fvwm_page_ny

  Key F11 A C myGotoPageUp

  # Move across page down, if no page more go to first page of next desk.
  DestroyFunc myGotoPageDown
  AddToFunc myGotoPageDown
  + I Next (CirculateHit, FvwmPager, Shaded) WindowShade "False"
  + I SetEnv fvwm_page_ny $[page.ny]
  + I Test (EnvMatch fvwm_page_ny 2) Nop
  + I TestRc (Match) GotoDesk +1 0 4
  + I TestRc (Match) GotoPage +0p 0
  + I TestRc (NoMatch) GotoPage +0p +1p
  # Remove fvwm_page_ny so derived processes do not inherit it.
  + I SetEnv fvwm_page_ny

  Key F10 A C myGotoPageDown

  # No any button on pager.
  Style "FvwmPager" !Button 1, !Button 3, !Button 5, \
           StaysOnTop, Sticky, FixedPosition, FixedSize, !Iconifiable, \
           WindowListSkip, CirculateSkip

  m4_define(`m4_PagerInactiveRGB', `rgb:c0/c0/c0')m4_dnl
  m4_define(`m4_PagerActiveRGB', `rgb:ef/df/bdc')m4_dnl

  DestroyModuleConfig FvwmPager: *
  *FvwmPager: Back m4_PagerInactiveRGB
  *FvwmPager: BalloonBack m4_PagerActiveRGB
  *FvwmPager: Hilight  m4_PagerActiveRGB
  *FvwmPager: Geometry 80x500-0+0
  *FvwmPager: WindowColors m4_PagerInactiveRGB m4_PagerInactiveRGB 
m4_PagerActiveRGB m4_PagerActiveRGB
  *FvwmPager: Font "xft:Sans:Bold:pixelsize=12:minspace=True:antialias=True"
  *FvwmPager: Balloons All
  *FvwmPager: BalloonFont 
"-Misc-Fixed-Medium-R-Normal-*-13-*-*-*-*-*-ISO10646-1"
  *FvwmPager: MiniIcons
  *FvwmPager: UseSkipList
  *FvwmPager: LabelsAbove
  # As I use only columns row count calculated automatically.
  # *FvwmPager: Rows 5
  *FvwmPager: Columns 1


-- 
Best regards!


Reply via email to