FVWM3 myExt collection

This collection is inspired by the Gnome Extensions that make Gnome multifunctional. This gave the name “FVWN myExtentions”. With the new FVWM3, it started as an experiment similar to what I did in 2005 ( ArchWD-FVWM ) which was complex and running on root system files. With myExt, it is easier to work and manage by using the default FVWM3 config as a base and directly in ~/.fvwm. The config is split into folders and runs in the same sequence as the original. The additional extensions are simply added in associated folders.

  1. 1Functions
  2. 2-3Styles
  3. 4Menus
  4. 5Bindings
  5. 6Decor
  6. 7Modules

Besides the fast and low memory usage of FVWM, the aim is to speed up the workflow on common tasks and a clean desk. Access to choices and customization. This structure helps to maintain and create new functions, decors, and modules.

Config setup and download are posted in MX Linux, please click here.

2 Likes

The new extensions improve the workflow without getting distracted by a small minimize, maximize, or close button. Or limiting the feature of resizing or moving a window. On the desk, you can do it with a right-click mouse and click anywhere on the window. Or use larger buttons on the control panel. On the pager, you can move a window from one page to another with the mid-click mouse.

The desk looks clean without a fancy title bar and the minimized windows are easily retrieved thumbnails. Cerebro finds applications and websites.
Please check the new post here.

These extensions are new choices to an existing system, such as replacing RightPanel with a separate pager and task panel. Here I am displaying how wallpaper is also part of the workflow.

Check new post on MX Linux forum

pager-taskpanel-action-th

This collection is directly related to window management as per the acronym WM. In this regard, a WM does much better than a Desktop which is more related to the applications and appearance. The core of FVWM is window management. It does well when dealing with a cluttered desk. In my case, this often happens when working with Gimp images and OpenShot video editing. And a file manager to “drag and drop” between the two.

This is the last part of the myExt to switch the configs without using an external script. Also, no restart is required.

The ExtSwitch config uses “KillModule” and “Read” to do the job. At present it has 5 buttons that can be extended to any number. Each button changes a set of module configs and one button changes the decoration. Later, the idea is to have a set for a particular work environment (office, multimedia, etc.)

  1. myRightPanel + ControlBPanel (with pager)
  2. VerticalPager + TaskPanel + ControlButtons
  3. TaskPanel and ControlButtons
    4 . DiaryDecoration
  4. Reset

For this to work, some of the configs were re-written which makes the whole system stable and easier to add new extensions.

Check the screenshot of each button.

Sample of “RPanel” config…

## 7Modules: ExtSwitch/RPanel.sys
## Close VerticalPager, TaskPanelCurve, and ControlButtons.
## Load ControlBPanel and myRightButtons.

## Close VerticalPager and TaskPanelCurve.
KillModule FvwmPager VPager
KillModule FvwmButtons ClockPanel
KillModule FvwmButtons TPanelButtons
KillModule FvwmButtons CPanelButtons

## Load ControlPanel and myRightButtons
Read $[FVWM_USERDIR]/7Modules/myRightButtons.sys
Read $[FVWM_USERDIR]/7Modules/controlPanelBPg.sys

## Change simpleButtons geometry
KillModule FvwmButtons SimpleButtons
Read $[FVWM_USERDIR]/7Modules/simpleButton.sys
*SimpleButtons: Geometry 500x50+720+0

I was searching for one small calendar to add in FvwmScript-DateTime. From different sources (this forum and others), I compiled into one nice TimeDayButton. The difficult part was to find config for the calendar’s positioning… to appear in a fixed place.

timeDayButton-v3

## Time, Date, and Calendar
Module FvwmButtons TimeDayButton

DestroyModuleConfig TimeDayButton:*
*TimeDayButton: Geometry 120x80-0-50
*TimeDayButton: Colorset 10
*TimeDayButton: Columns 120
*TimeDayButton: Font "xft:Sans:Bold:size=10:antialias=True"
*TimeDayButton: (25x20,  Frame 0)
*TimeDayButton: (25x20,  Frame 0)
*TimeDayButton: (120x30, Title Calendar, Action(Mouse 1) "Exec exec $[FVWM_USERDIR]/scripts/Calendar.sh", Font "xft:Sans:size=10:antialias=True", Frame 0)
*TimeDayButton: (120x45, Swallow DateTime 'Module FvwmScript', Frame 0)
*TimeDayButton: (120x25, Frame 0)

Style TimeDayButton !Borders, !Title, WindowListSkip, Sticky
Style yad* NoTitle ## no titel bar

## Yad position
AddToFunc StartFunction I Module FvwmEvent FvwmEvent-MoveWindow

DestroyModuleConfig FvwmEvent-MoveWindow: *
*FvwmEvent-MoveWindow: Cmd Function
*FvwmEvent-MoveWindow: add_window MoveYad

DestroyFunc MoveYad
AddToFunc   MoveYad
+ I ThisWindow ("yad") Move -2 -20

Bash script

#!/bin/bash
# /scripts/calendar.sh

CAL_GET=`yad --calendar --text "" --list --button=Close:0 --title "My Calendar"`
case $? in
	0)
		exit ;;
esac