This file tracks my progress in converting the fvwm2 functions to scheme procedures. fvwm2's functions (as of 2.0.45) seekrit undocumented functions: /* module */ {"AddModuleConfig", AddModConfig, F_ADD_MOD, FUNC_NO_WINDOW}, /* quit only a single screen */ {"QuitScreen", quit_screen_func, F_QUIT_SCREEN, FUNC_NO_WINDOW}, /* focus, deiconfiy and focus by window ID (weird!) */ {"Raise_it", raise_it_func, F_RAISE_IT, FUNC_NO_WINDOW}, /* module */ {"Send_WindowList",send_list_func, F_SEND_WINDOW_LIST, FUNC_NO_WINDOW}, /* module */ {"Send_ConfigInfo",SendDataToModule, F_CONFIG_LIST, FUNC_NO_WINDOW}, /* module */ {"set_mask", set_mask_function,F_SET_MASK, FUNC_NO_WINDOW}, documented functions NAME AddButtonStyle AddTitleStyle AddToDecor AddToMenu AddToFunc Beep BorderStyle ButtonStyle ChangeDecor ClickTime Close ColormapFocus CursorMove Delete Desk DeskTopSize Destroy DestroyFunc DestroyDecor DestroyMenu DestroyModuleConfig Echo EdgeResistance EdgeScroll Exec ExecUseShell FlipFocus Focus Function GlobalOpts GotoPage HilightColor IconFont Iconify IconPath Key KillModule Lower Maximize Menu MenuStyle Module ModulePath Mouse Move Nop Next None OpaqueMoveSize PipeRead PixmapPath Popup Prev Quit Raise RaiseLower Read Recapture Refresh RefreshWindow Resize Restart SendToModule Scroll Stick Style Title TitleStyle UpdateDecor WarpToWindow Wait WindowsDesk WindowFont WindowId WindowList WindowShade XORvalue 77 total Functions provided by guile or unnecessary with it: AddToFunc define DestroyFunc undefine Echo display Exec (define (run . args) (if (= 0 (primitive-fork)) (apply execlp args))) ExecUseShell [is there a point to this?] Function [useless] Nop [useless] PipeRead [no need, you can probably do anything you'd want this for in Scheme. May hack one up later for compatability's sake or something] Read load Title [not needed] DestroyMenu undefine DestroyDecor undefine UpdateDecor [not needed] 13 total Functions implemented by scwm : HilightColor set-highlight-colors! IconFont set-icon-font! MenuStyle set-menu-font!,set-menu-colors!, set-menu-mwm-style! [meny-style proc in scheme encapsulates these] WindowFont set-window-font! XORValue set-xor-value! Key bind-key Raise raise-window Lower lower-window Close delete-window,destroy-window, window-deletable? Delete delete-window Destroy destroy-window Focus focus Iconify iconify,deiconify,iconified? RaiseLower raised?,raise-window,lower-window Stick stick,unstick,sticky? WarpToWindow warp-to-window WindowShade shade-window, unshade-window, window-shaded? Mouse bind-mouse Move move-to,interactive-move Resize resize-to,interactive-resize Refresh refresh RefreshWindow refresh-window ClickTime set-click-time! ColormapFocus set-colormap-focus! OpaqueMoveSize set-opaque-move-size! AddToMenu make-menu Quit quit Menu popup Popup popup CursorMove move-pointer-to, pointer-position Recapture recapture Restart restart Wait wait-for-window IconPath set-icon-path! PixmapPath set-pixmap-path! WindowsDesk move-window-to-desk Desk set-current-desk!, current-desk DeskTopSize set-desk-size!, desk-size GotoPage set-viewport-position!, display-size EdgeResistance set-edge-resistance! EdgeScroll set-edge-scroll!, set-edge-wrap! Scroll set-viewport-position!, viewport-position WindowId window-id Maximize written in terms of resize-to None window-list,etc Next window-list,etc Prev window-list,etc WindowList window-list,window-title,etc Style (implemented as many procedures) GlobalOpts set-smart-placement-is-really-smart!, set-click-to-focus-passes-click!, set-click-to-focus-raises!, set-mouse-focus-click-raises! BorderStyle make-face, set-border-face! ButtonStyle make-face, set-button-face!, set-button-mwm-flag! TitleStyle make-face, set-title-face!, set-title-justify!, set-title-height! AddToDecor make-decor, set-current-decor! ChangeDecor set-window-decor! Beep beep 56 total Intentionally Omitted: KillModule Module ModulePath DestroyModuleConfig SendToModule FlipFocus 6 total 2 styles: AddButtonStyle AddTitleStyle 4 modules: DestroyModuleConfig KillModule Module SendToModule 1 paths: ModulePath 1 window ops: FlipFocus 8