What are the best window managers for Linux?
https://www.slant.co/topics/390/~best-w … -for-linux
Compared to other WMs that I have been looking at, they don't have much to offer to make them special. All do more or less the same. For example, many are adding Conky but it is just a system monitor, which doesn't help improve how to manage the windows to make it easier to work. Fvwm is 100% configurable. If anything is missing, just make it. Or, there is always someone who can do it.
]]>Fvwm Extensions Wiki:
https://rasatpc.net/fvwm-ext/index.php/Main_Page
Fvwm Extensions (configs archive):
https://rasatpc.net/fvwm-ext/index.php/Main_Page
Two new extensions have been included: "Wifi & Sound Tray" and ceeslan's yad "Exit Menu" that was posted on MX forum.
https://forum.mxlinux.org/viewtopic.php?t=73992
If you have Fvwm3 myExt installed, run the Ext Installer and upgrade to version 3.2.5 (left-click, System, Ext-Install) or check at Git Hub:
https://github.com/rasatpc/FVWM3-myEXT
To install Fvwm3 and myEXT extensions:
https://github.com/rasatpc/FVWM3-myEXT/ … INSTALL.md
18. Virtual Window Switch - this switch changes the desk into a size of six pages (screens). 3 pages wide and 2 pages high (3x2). Allows full window view (100% to 200%) by using the pager or scroll screen edge with the mouse cursor (EdgeScroll 100 100). Here is Scribus in action, window view zoom 170%.
]]>15. ExtensionSwitch - this 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
5. Reset
For this to work, some of the configs were re-written which makes the whole system stable and easier to add new extensions.
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
16. Time, Day, and Calendar - is an addon to FvwmScript-DateTime with one calendar button.
## 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
17. RestartShutdown - restart and shutdown panel (not included in the default FVWM).
SetEnv logo-image $[HOME]/.fvwm/images
Module FvwmButtons RestShutButtons
DestroyModuleConfig RestShutButtons: *
*RestShutButtons: Fore #2b4e5e
*RestShutButtons: Back #88b2b1
*RestShutButtons: Geometry 480x100-750+550
*RestShutButtons: Frame 0
*RestShutButtons: Rows 2
*RestShutButtons: BoxSize smart
*RestShutButtons: Font "xft:Sans:size=14:antialias=True"
*RestShutButtons: Padding 2 2
*RestShutButtons: (Icon "$[logo-image]/fvwm-logo-small.png", Back #f5f6f7, Fore #000000)
*RestShutButtons: (3x1, Title "Power Off", Back #f5f6f7, Fore #707070, Font "xft:Sans:size=18:antialias=True")
*RestShutButtons: (4x1,Container(Rows 1,Frame 1))
*RestShutButtons: (Title Cancel, Action(Mouse 1) KillModule FvwmButtons RestShutButtons)
*RestShutButtons: (Title Resart, Action(Mouse 1) Exec sudo /sbin/reboot)
*RestShutButtons: (Title "Power Off", Action(Mouse 1) Exec sudo /sbin/poweroff)
# Style Setting
Style RestShutButtons !Borders, !Title, WindowListSkip, Sticky
####
Download version 0.9.7 (15 Feb 2021)
http://rasatpc.net/download/fvwm/ext/FV … v0.9.7.zip
13. WinListSwitch - a two-button switch to view windows on the current page and all pages. Similar to a taskbar but easier to manage.
14. New menu update - includes lowering a window (brings hidden windows to appear). And to close windows one after another without clicking on them. Fast way of closing numbers of open windows.
## Titlebar right-click
DestroyMenu MenuWindowOps
AddToMenu MenuWindowOps
+ "Send to " Popup MenuSendTo
+ "Min" Thumbnail
+ "Shade" WindowShade ## NEW UPDATE
+ "Low" Lower ## NEW UPDATE
+ "Close" Close
+ "-" Nop
+ "Quit" Destroy
## Desktop right-click
DestroyMenu MenuWindowOpsLong
AddToMenu MenuWindowOpsLong
+ " " Nop
+ "Min%$[mimg]/icons/win/iconify.png%" Thumbnail
+ "Move%$[mimg]/icons/win/move.png%" Move
+ "Resize%$[mimg]/icons/win/resize.png%" Resize
+ "Low%$[mimg]/icons/win/bottom.png%" Lower ## NEW UPDATE
+ "Max%$[mimg]/icons/win/max.png%" Maximize
+ "---" Nop
+ "Done%$[mimg]/icons/win/done.png%" Next (Focused) Close ## NEW UPDATE
+ "---" Nop
+ "Quit%$[mimg]/icons/quit.png%" Module FvwmScript FvwmScript-ConfirmQuit
EXTENSIONS
11. TaskPanelCurve - is similar to the classic windows taskbar (based on David Lanham’s Somatic theme). Choice of round or curve panel end.
DestroyMenu MenuStart
AddToMenu MenuStart
+ "Menu" Popup XDGMenu
Test (x featherpad) + "Help" Exec exec featherpad $[FVWM_USERDIR]/howTo.txt
+ "-" Nop
+ "Restart" Restart
+ "Quit" Module FvwmScript FvwmScript-ConfirmQuit
# Generate XDGMenu
PipeRead "fvwm-menu-desktop -e"
SetEnv tpc-image $[HOME]/.fvwm/images/TaskPanel
Module FvwmButtons TPanelButtons
DestroyModuleConfig TPanelButtons: *
*TPanelButtons: Geometry 912x30+0+0
*TPanelButtons: Colorset 10
*TPanelButtons: Frame 0
#*TPanelButtons: Font -*-helvetica-medium-r-*-*-12-*
*TPanelButtons: Columns 912
*TPanelButtons: Padding 0 0
*TPanelButtons: (100x25, Icon $[tpc-image]/fvwm.png, ActionOnPress, Action(Mouse 1) `Menu MenuStart Rectangle +$left+23 0 0m`)
*TPanelButtons: (631x23, Swallow FvwmIconMan 'Module FvwmIconMan')
Test (x stalonetray) *TPanelButtons: (120x30, Swallow(NoClose,UseOld) \
stalonetray 'Exec exec stalonetray --config \
"$[FVWM_DATADIR]/default-config/.stalonetrayrc"', Frame 0, Colorset 10)
*TPanelButtons: (30x30, Colorset 10)
*TPanelButtons: (31x30, Icon $[tpc-image]/curve1-wood.png, Colorset 18)
## Style setting
Style TPanelButtons !Borders, !Title, WindowListSkip, Sticky
12. VPager6pg - a vertical pager with six pages. This is inspired by the Gnome's "Workspace To Dock" extension. Later there will be one app icon launcher on the right side.
# Virtual Desktop
DesktopSize "1x6"
Module FvwmPager VPager
DestroyModuleConfig VPager: *
*VPager: Geometry 113x600-0+150
*VPager: Back #d9d9d9
#*VPager: Colorset * 13
*VPager: HilightColorset * 6 #selected page background (original 13)
*VPager: BalloonColorset * 10 # font color
*VPager: WindowColorsets 10 11 # original 10 11 (inactive apps)
*VPager: Font none
*VPager: SolidSeparators
*VPager: WindowBorderWidth 1
*VPager: Balloons All
*VPager: BalloonFont "xft:Sans:Bold:size=10:antialias=True"
*VPager: BallonYOffset +2
*VPager: Window3dBorders
*VPager: MiniIcons
Style "VPager" NoTitle, !Handles, Borders, BorderWidth 5, BorderColorset 6, Sticky, WindowListSkip, FixedSize, !Iconifiable ## BorderColorset 19 (border line)
Module VPager
###############
SCREENSHOT OF NEW EXTENSIONS (action).
]]>Download:
Full version ver. 0.9.2 (4 Feb 2021)
http://rasatpc.net/download/fvwm/ext/FV … v0.9.2.zip
Snapshot ver. 0.7 (old)
http://rasatpc.net/download/fvwm/ext/FV … apshot.zip
]]>
The desk looks clean without a fancy title bar and the minimized windows are easily retrieved thumbnails. Cerebro finds applications and websites.
EXTENSIONS
7. ControlPanelBP - Manages the window move, resize, minimize, maximize, and close. And a pager to manage the window page location.
8. myDecor - Buttonlless title bar (the image shows also the right-click menu).
9. myMenu (added configs) - Manages the window move, resize, minimize, maximize, close. and moves windows to a selected page.
## Titlebar right-click
DestroyMenu MenuWindowOps
AddToMenu MenuWindowOps
+ "Send to " Popup MenuSendTo
+ "Min" Thumbnail
+ "Shade" WindowShade
+ "Close" Close
+ "-" Nop
+ "Quit" Destroy
## Desktop right-click
DestroyMenu MenuWindowOpsLong
AddToMenu MenuWindowOpsLong
+ " " Nop
+ "Min%$[mimg]/icons/win/iconify.png%" Thumbnail
+ "Move%$[mimg]/icons/win/move.png%" Move
+ "Resize%$[mimg]/icons/win/resize.png%" Resize
+ "Max%$[mimg]/icons/win/max.png%" Maximize
+ "Close%$[mimg]/icons/win/close.png%" Close
+ "---" Nop
+ "Quit%$[mimg]/icons/quit.png%" Module FvwmScript FvwmScript-ConfirmQuit
## Titlebar Right Click >> Send To
DestroyMenu MenuSendTo
AddToMenu MenuSendTo
+ " Page 1" MoveToPage 0 0
+ " Page 2" MoveToPage 1 0
+ " Page 3" MoveToPage 0 1
+ " Page 4" MoveToPage 1 1
10. Ulauncher - a local search engine for Linux distros
SCREENSHOT OF NEW EXTENSIONS
]]>1. SimpleButton - using FvwmButtons as a panel that contains icons to launch applications.
2. Auto Hiding Windows - allows withdrawing a window to a location where it does not use precious desktop space.
## 7Modules: AutoHideList.sys
# # AutoHidingWindows
#
DestroyFunc autohide
AddToFunc autohide
+ I ThisWindow ($0) Deschedule $[w.id]
+ I ThisWindow ($0) ThisWindow (Shaded) WindowShade off
+ I TestRc (!Match) All ($0, !Shaded) autohide\_hide $1 $2
DestroyFunc autohide_hide
AddToFunc autohide_hide
+ I Schedule $0 $[w.id] WindowShade $1
+ I Schedule $0 $[w.id] Deschedule $[w.id]
# Start FvwmAuto
AddToFunc StartFunction I Module FvwmAuto FvwmAutohide -menter enter_handler
# Add windows you want to autohide
DestroyFunc enter_handler
AddToFunc enter_handler
+ I autohide RightPanel 50 E
+ I autohide SimpleButtons 50 N
3. DiaryDecor and Thumbnails - a borderless-right-side window frame with minimized window thumbnail (based on addy-fe's Diary theme).
4. AutoMoveWindows - moves applications to specific workspaces (pages) when they create windows.
## 4Menus: AutoMoveWin.sys
#
Style Firefox StartsOnPage 0 0 0 #page 0
Style Thunar StartsOnPage 0 1 0 #page 1
Style "Mozilla Thunderbird" StartsOnPage 0 0 1 #page 2
Style Evolution StartsOnPage 0 1 1 #page 3
5. RightPanel - part of FVWM default config
6. myMenu - see below screenshool.
Screenshot with visible extensions:
DOWNLOAD version 0.9.7 (15 Feb 2021)
http://rasatpc.net/download/fvwm/ext/FV … v0.9.7.zip
##########################
MY FVWM3 SETUP:
]]>Earlier was missing was style and beauty. The config extensions provide the missing parts and make the workflow simpler and more efficient. With myExt, it is easy to work and manage by using the default FVWM3 config as a base, directly in ~/.fvwm. The config is split into folders and runs in the same sequence as the original. The additional extension configs 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 system helps to maintain and create new functions, decors, and modules. Here is the config that runs startup, extensions, and does changes in preloaded settings.
## .fvwm/config
## STARTUP ##
## Load default 1.Functions
Read $[FVWM_USERDIR]/1Functions/MyInitMgr.sys
Read $[FVWM_USERDIR]/1Functions/FVWM-StartFunction.sys
## Load 2-3.Styles
Read $[FVWM_USERDIR]/2-3Styles/FVWM-Page.sys
Read $[FVWM_USERDIR]/2-3Styles/FVWM-Colorsets.sys
Read $[FVWM_USERDIR]/2-3Styles/my-Colorsets.sys
Read $[FVWM_USERDIR]/2-3Styles/Fvwm-Thumbnails.sys
Read $[FVWM_USERDIR]/2-3Styles/my-BorderStyle.sys
## Load 4.Menus
Read $[FVWM_USERDIR]/4Menus/myMenu.conf
# Read $[FVWM_USERDIR]/4Menus/AutoMoveWin.sys
## Load 5.Bindings (min, max, close button, and win focus)
Read $[FVWM_USERDIR]/5Bindings/my-MouseBindings.sys
## Load 6.Decorations
Read $[FVWM_USERDIR]/6Decor/myDecor.sys
## Load 7.Modules
Read $[FVWM_USERDIR]/7Modules/FvwmScript.sys
Read $[FVWM_USERDIR]/7Modules/myRightPanel.sys
# Read $[FVWM_USERDIR]/7Modules/AutoHideList.sys
Read $[FVWM_USERDIR]/7Modules/FvwmPager.sys
Read $[FVWM_USERDIR]/7Modules/FvwmIconMan.sys
Read $[FVWM_USERDIR]/7Modules/DiaryThumbPlace.sys
Read $[FVWM_USERDIR]/7Modules/SimpleButton.sys
Read $[FVWM_USERDIR]/7Modules/ControlPanelBP.sys
######
## Change preloaded settings
######
----
### Colorsets in 2-3Styles/
## Module Default bg #2b4e5e (background pager, buttons, etc.)
Colorset 10 fg #ffffff, bg #2b4e5e, hi #aaaaaa, sh #999999, Plain, NoShape
----
## TouchPad Off
# + I Test (Init) Exec synclient TouchpadOff=1
----
# Style setting
Style Ulauncher* NoTitle
Style QuickEdit* NoTitle #config editor dialog box
----
### Settings and styles in 3Styles/FVWM-Page.sys
## Default Font
DefaultFont "xft:Noto Sans:size=12"
## EdgeScroll will move the view port between the Pages when the mouse
## moves to the edge of the screen.
EdgeScroll 0 0
EdgeResistance 450
EdgeThickness 1
Style * EdgeMoveDelay 500, EdgeMoveResistance 100
# EwmhBaseStruts [left] [right] [top] [bottom]
# Reserves space along the edge(s) of the Screen that will not
# be covered when maximizing or placing windows.
EwmhBaseStruts 40 120 70 0
## Mouse click behaviour
Style * ClickToFocus
## Window Placement
Style * TileCascadePlacement
## Quit location and style
Style ConfirmQuit !Title, PositionPlacement Center, WindowListSkip, Layer 6
Style FvwmIdent WindowListSkip
#########
]]>