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!