[SOLVED] change FVWM title bar buttons order & disable "iconify" to desktop widget

After year of improving… :slight_smile: Here is my config.
It has many nice features, like hiding window border when maximize,
and many others, try, you’ll like it! I use FVWM with lxpanel and it works very nice.

i.imgur.com/h7VDOGf.png

i.imgur.com/zXgB5IV.png

Here it is — s000.tinyupload.com/index.php?fi … 2447229835
Just extract it to your home dir ([color=green]~/.fvwm/), archive contain configuration file and few icons for buttons,
but here is full [color=green]~/.fvwm/config:

# FVWM2 config by ILUXA
ImagePath $HOME/.fvwm/pixmaps/:$HOME/.icons/:$HOME/.fvwm/icons/

AddToFunc StartFunction
 + I Module FvwmCommandS
 + I Module FvwmAnimate
 + I Module FvwmEvent FE-StartOps
AddToFunc InitFunction
 + I Exec [ -f $HOME/.fvwm/autostart ] && sh $HOME/.fvwm/autostart
AddToFunc RestartFunction
# + I Exec …
#AddToFunc ExitFunction
# + I Exec …

IgnoreModifiers L25
DesktopSize 1x1
Emulate Mwm
HideGeometryWindow Never
OpaqueMoveSize unlimited
MoveThreshold 8
# Working area : left right top bottom (33)
#EwmhBaseStruts 0 0 0 60
BugOpts RaiseOverUnmanaged on
DefaultFont "xft:Sans:pixelsize=12"
DefaultColors #FFFFFF #292B2B

Style * NoIcon
Style * ClickToFocus
#Style * ClickToFocusRaisesOff
Style * ResizeOpaque
Style * MwmFunctions
Style * MwmDecor
Style * OLDecor
Style * !StippledTitle
#Style * IndexedWindowName
#Style * TitleFormat %n (%t)
Style * DecorateTransient
Style * StackTransientParent
Style * EWMHUseStackingOrderHints
Style * BorderWidth 2, HandleWidth 2
Style * SnapAttraction 13 SameType Screen
Style * Font "xft:Sans:pixelsize=13:Bold"
Style * ForeColor darkgray, BackColor #292B2B
Style * HilightFore white, HilightBack #292B2B

CursorStyle ROOT left_ptr
CursorStyle TITLE left_ptr
CursorStyle DEFAULT left_ptr
CursorStyle SYS left_ptr
CursorStyle MENU left_ptr
CursorStyle WAIT left_ptr
BusyCursor DynamicMenu True, Read True

MenuStyle * Fvwm
MenuStyle * Hilight3DOff
MenuStyle * SeparatorsLong
MenuStyle * BorderWidth 1
MenuStyle * VerticalMargins 10 10
MenuStyle * Font "xft:Sans:pixelsize=15"
MenuStyle * Foreground white, Background #292B2B
MenuStyle * ActiveFore white, HilightBack #215D9C
MenuStyle * VerticalItemSpacing 4 6, VerticalTitleSpacing 0 4

TitleStyle ActiveUp solid #292B2B -- Flat
TitleStyle ActiveDown solid #292B2B -- Flat
TitleStyle Inactive solid #292B2B -- Flat
TitleStyle Centered Height 20

BorderStyle Inactive -- HiddenHandles NoInset
BorderStyle Active -- HiddenHandles NoInset

ButtonStyle 1 Pixmap close.png -- Flat
ButtonStyle 3 Pixmap min.png -- Flat
ButtonStyle 5 Pixmap max.png -- Flat

ButtonStyle 1 Inactive Pixmap unfocused.png -- Flat
ButtonStyle 3 Inactive Pixmap unfocused.png -- Flat
ButtonStyle 5 Inactive Pixmap unfocused.png -- Flat

ButtonStyle 1 ActiveDown Pixmap close-press.png -- Flat
ButtonStyle 3 ActiveDown Pixmap min-press.png -- Flat
ButtonStyle 5 ActiveDown Pixmap max-press.png -- Flat
##########Titlebar buttons
# Close/minimize/maximize on button click
DestroyFunc CloseButton
AddToFunc CloseButton
 + C Close
DestroyFunc IconifyButton
AddToFunc IconifyButton
 + C Iconify
# Remove borders when maximize (button)
DestroyFunc MaximizeButton
AddToFunc MaximizeButton
 + C Current (!Maximized) WindowStyle HandleWidth 0
 + C Current (!Maximized) WindowStyle BorderWidth 0
 + C Current (!Maximized) UpdateStyles
 + C Current (Maximized) WindowStyle HandleWidth 2
 + C Current (Maximized) WindowStyle BorderWidth 2
 + C Current (Maximized) UpdateStyles
 + C Current Maximize

Mouse 1 1 A CloseButton
Mouse 1 3 A IconifyButton
Mouse 1 5 A MaximizeButton
##########Titlebar actions
# Remove borders when maximize (function)
DestroyFunc MaximizeFunc
AddToFunc MaximizeFunc
 + I Current (!Maximized) WindowStyle HandleWidth 0
 + I Current (!Maximized) WindowStyle BorderWidth 0
 + I Current (!Maximized) UpdateStyles
 + I Current (Shaded) WindowShade off
 + I Current (Maximized) WindowStyle HandleWidth 2
 + I Current (Maximized) WindowStyle BorderWidth 2
 + I Current (Maximized) UpdateStyles
 + I Current Maximize
# Move or raise with titlebar single click, maximize with double click.
DestroyFunc MaximizeOrMove
AddToFunc MaximizeOrMove
 + I Raise
 + I Focus
 + D MaximizeFunc
 + M ThisWindow (Maximized) MaximizeFunc
 + M TestRc (Match) WarpToWindow 50 1
 + M Move

Mouse 1 T A MaximizeOrMove
# Window shade with Super+PgUp/PgDown
Key Prior A 4 WindowShade on
Key Next A 4 WindowShade off
# Window shade with titlebar scroll
Mouse 4 T A WindowShade on
Mouse 5 T A WindowShade off
##########Lower with super+titlebar left mouse click
DestroyFunc MoveLower
AddToFunc MoveLower
 + I Lower
 + M Move
Mouse 1 T 4 MoveLower
##########Options menu: Super+middle click window or titlebar/Super+Space
# Toggle OnTop with Lower
DestroyFunc LowerTo4
AddToFunc LowerTo4
 + I Layer 0 4
 + I Lower

DestroyMenu WindowOptions
AddToMenu WindowOptions
+ "    Lower" LowerTo4
+ "    On Top" Layer 0 6
+ "" Nop
+ "    Minimize" Iconify
+ "    Maximize" MaximizeFunc
+ "" Nop
+ "    Always on Visible Desk    " Stick
+ "" Nop
+ "    Move to Desk 1" MoveToDesk 0 0
+ "    Move to Desk 2" MoveToDesk 0 1
+ "    Move to Desk 3" MoveToDesk 0 2
+ "    Move to Desk 4" MoveToDesk 0 3
+ "" Nop
+ "    Close" Close

Mouse 2 W 4 Menu WindowOptions mouse -1p -1p
Mouse 3 T A Menu WindowOptions mouse 0p 0p
Key Space A 4 Menu WindowOptions
##########Desktop: empty left click, right click -- desktop menu
DestroyMenu Power
AddToMenu Power
+ "Cancel" Nop
+ "Reboot" Exec shutdown -r now
+ "Power Off" Exec shutdown now

DestroyMenu RootMenu
AddToMenu RootMenu "     FVWM     " Title
+ "  &Identify" Module FvwmIdent
+ "" Nop
+ "  &Console" FvwmConsole
+ "" Nop
+ "  &Config" Exec xterm -e vim $HOME/.fvwm/config
+ "" Nop
+ "  &Restart" Restart
+ "" Nop
+ "  &Power" Popup Power
+ "" Nop
+ "  &Quit" FvwmForm FvwmForm-QuitVerify

Mouse 1 R A Nop
Mouse 3 R A Menu RootMenu mouse -1p -1p
Key grave A 4 Menu RootMenu
##########Move windows with Super+left mouse click
DestroyFunc FocusWhenMove
AddToFunc FocusWhenMove
 + I Raise
 + I Focus
 + M ThisWindow (Maximized) MaximizeFunc
 + M Move

Mouse 1 WS 4 FocusWhenMove
##########Resize windows with Super+right mouse click
DestroyFunc FocusWhenResize
AddToFunc FocusWhenResize
# + I Raise
 + I Focus
 + I Current (Maximized) WindowStyle HandleWidth 2
 + I Current (Maximized) WindowStyle BorderWidth 2
 + I Current (Maximized) UpdateStyles
 + I Resize Direction Automatic

Mouse 3 WST 4 FocusWhenResize
##########Focus but don't raise with super+mouse wheel
Mouse 4 W 4 Focus
Mouse 5 W 4 Focus
##########Scroll Desks with Ctrl+Super+PgUp-PgDn/mouse wheel
Key Prior A C4 Desk -1 0 0 3
Key Next A C4 Desk +1 0 0 3
Mouse 4 A C4 Desk -1 0 0 3
Mouse 5 A C4 Desk +1 0 0 3
##########Show 1-4 Desk with Super+F1-F4
Key F1 A 4 GotoDesk 0 0
Key F2 A 4 GotoDesk 0 1
Key F3 A 4 GotoDesk 0 2
Key F4 A 4 GotoDesk 0 3
##########Move window to 1-4 Desk with Super+1-4
Key 1 A 4 MoveToDesk 0 0
Key 2 A 4 MoveToDesk 0 1
Key 3 A 4 MoveToDesk 0 2
Key 4 A 4 MoveToDesk 0 3
##########Alt+Tab
DestroyFunc WindowListFunc
AddToFunc WindowListFunc
 + I Iconify off
 + I FlipFocus
 + I Raise
# + I WarpToWindow 50-50w 50-50w
Key Tab A M WindowList Root c c NoGeometry, NoCurrentDeskTitle,\
IconifiedAtEnd, CurrentAtEnd, MaxLabelWidth 80
##########Show desktop with Ctrl+Alt+D
DestroyFunc ShowDesktop
AddToFunc   ShowDesktop
 + I All (CurrentPage, !Iconic, !conky) Iconify

Key D A CM ShowDesktop
##########Tiling:
# Super + Left arrow
DestroyFunc TileLeft
AddToFunc TileLeft
 + I Current (!Shaded, !Maximized) WindowStyle HandleWidth 0
 + I Current (!Shaded, !Maximized) WindowStyle BorderWidth 0
 + I Current (!Shaded, !Maximized) UpdateStyles
 + I Current (!Shaded, Maximized) WindowStyle HandleWidth 2
 + I Current (!Shaded, Maximized) WindowStyle BorderWidth 2
 + I Current (!Shaded, Maximized) UpdateStyles
 + I Current (!Shaded) Maximize 50 100
 + I Current (Maximized, !Shaded) Move 0 0

Key Left A 4 TileLeft
# Super + Right arrow
DestroyFunc TileRight
AddToFunc TileRight
 + I Current (!Shaded, !Maximized) WindowStyle HandleWidth 0
 + I Current (!Shaded, !Maximized) WindowStyle BorderWidth 0
 + I Current (!Shaded, !Maximized) UpdateStyles
 + I Current (!Shaded, Maximized) WindowStyle HandleWidth 2
 + I Current (!Shaded, Maximized) WindowStyle BorderWidth 2
 + I Current (!Shaded, Maximized) UpdateStyles
 + I Current (!Shaded) Maximize 50 100
 + I Current (Maximized, !Shaded) Move 50 0

Key Right A 4 TileRight
##########Other key bindings
# Unmaximize or  minimize
DestroyFunc UnmaximizeIconify
AddToFunc UnmaximizeIconify
 + I ThisWindow (Maximized) MaximizeFunc
 + I TestRc (!Match) Iconify
# Unmaximize function for hotkey
DestroyFunc IconifyKey
AddToFunc IconifyKey
 + I ThisWindow Iconify
# Close function for hotkey
DestroyFunc CloseKey
AddToFunc CloseKey
 + I ThisWindow Close
# Maxmimize only (and remove borders)
DestroyFunc MaximizeTrue
AddToFunc MaximizeTrue
 + I Current (!Maximized) WindowStyle HandleWidth 0
 + I Current (!Maximized) WindowStyle BorderWidth 0
 + I Current (!Maximized) UpdateStyles
 + I Current (!Maximized) Maximize On
# Move hotkey
DestroyFunc MoveKey
AddToFunc MoveKey
 + I Move
#Keyname	Context	Modifiers	Function	Description
Key Up		A	4	MaximizeTrue		#Super+Up arrow -- maximize only
Key Down	A	4	UnmaximizeIconify	#Super+Down -- unmaximize or minimize
Key R		A	4	MoveKey			#Super+R -- move
Key R		A	S4	Resize Direction SE	#Shift+Super+R -- resize
Key W		A	4	MaximizeFunc		#Super+W -- maximize toggle
Key A		A	4	IconifyKey		#Super+A -- minimize
Key S		A	4	Lower			#Super+S -- lower
Key Q		A	4	CloseKey		#Super+Q -- close
Key R		A	C4	Restart			#Ctrl+Super+R -- restart FVWM
# Keybindings for apps
Key X		A	CM		Exec xkill
Key KP_Multiply	A	C		Exec mixer vol mute
Key KP_Subtract	A	C		Exec mixer vol -7
Key KP_Add	A	C		Exec mixer vol +7
Key T		A	C4		Exec transset -t 0.8
Key F2		A	M		Exec gmrun
Key L		A	CM		Exec xscreensaver-command -lock
Key Print	A	C4		Exec gnome-screenshot -i
Key Print	A	S		Exec gnome-screenshot -d 3 -p
Key Print	A	4		Exec gnome-screenshot -w -b -p -e shadow -d 3
Key Print	A	C		Exec gnome-screenshot -a
Key grave	A	C		Exec xterm -geometry 80x35 -fg white -bg "#292B2B" -name htop -e htop
Key W		A	C4		Exec notify-send "$(ansiweather -a false)"
Key W		A	CS4		Exec notify-send "$(ansiweather -a false -F)"
##########FVWM Modules
# FVWM banner
*FvwmBanner: NoDecor
*FvwmBanner: Pixmap Logo.png
# FVWM Identify app from desktop menu
Style FvwmIdent WindowListSkip, NeverFocus, !Title
*FvwmIdent: Font "xft:Sans:pixelsize=13"
*FvwmIdent: Fore white
*FvwmIdent: Back #292B2B
*FvwmIdent: MinimalLayer 6
# FVWM quit dialog
Style FvwmForm-QuitVerify  WindowListSkip, !Title
*FvwmFormDefault: Font "xft:Sans:pixelsize=13"
*FvwmFormDefault: ButtonFont "xft:Sans:pixelsize=13"
*FvwmFormDefault: TimeoutFont "xft:Sans:pixelsize=13"
*FvwmFormDefault: Fore white
*FvwmFormDefault: Back #292B2B
*FvwmFormDefault: ItemFore white
*FvwmFormDefault: ItemBack #292B2B
# FVWM animation (Frame, Lines, Flip, Turn, Zoom3D, Twist Random)
*FvwmAnimate: Effect Frame
*FvwmAnimate: Width 2
*FvwmAnimate: Delay 3
*FvwmAnimate: Iterations 65
##########Apps
Style panel NeverFocus, EWMHIgnoreStackingOrderHints, StaysOnTop, FixedPosition, NeverFocus, !Closable
Style Gmrun WindowListSkip, !UsePPosition, StaysOnTop, PositionPlacement Center
Style XTerm MiniIcon term.png, ResizeHintOverride, TitleFormat %n (%t)
Style URxvt MiniIcon urxvt.png, ResizeHintOverride, TitleFormat %n (%t)
Style desktop_window EWMHIgnoreStackingOrderHints, StaysOnBottom
Style Nautilus NoDecorHint, NakedTransient, TitleFormat %n (%t)
Style Gthumb UseStyle Nautilus
Style File-roller NoDecorHint, TitleFormat %c
Style Totem UseStyle File-roller
Style Evince UseStyle File-roller
Style Gnome-screenshot NoDecorHint, TitleFormat
Style Python NoDecorHint
Style <unknown> UseStyle Python
Style Gcolor2 TitleFormat %n (%t)
Style Pcmanfm TitleFormat %n (%t)
#Style Geany TitleFormat %n (%t)
Style chromium-browser NoPPosition
Style Plank EWMHIgnoreStackingOrderHints, StaysOnBottom
Style Altyo EWMHIgnoreStackingOrderHints, StaysOnTop
Style Cairo-dock UnManaged
Style Stjerm SloppyFocus
Style Midori ResizeHintOverride
#Style conky !Iconifiable, !Title, Sticky, NeverFocus, StaysOnBottom
# Wine games focus fix
Style *.exe FPLenient
##########Start options per app (set the window position, start maximized, etc)
DestroyModuleConfig FE-StartOps: *
*FE-StartOps: add_window FuncStartOps

DestroyFunc FuncStartOps
AddToFunc   FuncStartOps
# Stjerm position fix
#+ I ThisWindow ("Stjerm") AnimatedMove 0 0

Here is my gtk theme from screenshots, use it with GTK2/GTK3.20+, it wont work with GTK 3.1*, it is based on Numix theme.
s000.tinyupload.com/index.php?fi … 2369753089
Also I use compton as composote manager, here is my ~/.config/compton.conf

dbus = true;
backend = "xrender";
vsync = "opengl";
xrender-sync = true;
refresh-rate = 60;
unredir-if-possible = true;
paint-on-overlay = true;
glx-no-stencil = true;
detect-transient = true;
sw-opti = true;
detect-rounded-corners = true;
use-ewmh-active-win = true;
detect-client-opacity = true;
detect-client-leader = true;

mark-wmwin-focused = true;
mark-ovredir-focused = true;

shadow = true;
clear-shadow = true;
no-dnd-shadow = true;
no-dock-shadow = true;
shadow-ignore-shaped = true;
shadow-radius = 5;
shadow-opacity = 1;
shadow-offset-x = -8;
shadow-offset-y = -8;


shadow-exclude = [
#    "!name ~= ''",
	"class_g *?= 'Fvwm'",
	"class_g *?= 'Conky'",
	"class_g %= '*.exe'",
	"class_g = 'Mate-notification-daemon'",
	"class_g = 'Notification-daemon'",
	"class_g = 'Gnome-screenshot'",
	"class_g = 'Wine'",
	"class_g = 'Firefox' && argb",
	"class_g = 'Seamonkey' && argb",
	"class_g = 'Thunderbird' && argb",
	"class_g = 'chromium-browser' && argb",
	"class_g = 'Plank'",
	"_GTK_FRAME_EXTENTS@:c"
];

fading = true;
fade-delta = 5;
no-fading-openclose = false;
fade-in-step = 0.03;
fade-out-step = 0.03;

fade-exclude = [
#    "!name ~= ''",
	"class_g %= '*.exe'",
#	"class_g = 'Altyo'",
	"class_g = 'Wine'"
];

frame-opacity = 1;
inactive-opacity = 1;

#blur-background = false;
#blur-background-frame = true;
#blur-background-fixed = false;
#blur-background-exclude = [
#    "window_type = 'dock'",
#    "class_i = 'desktop_window'",
#    "class_g = 'Gnome-terminal'",
#    "class_g = 'XTerm'",
#    "class_g = 'Stjerm'"
#];

focus-exclude = [ ];

invert-color-include = [ ];

wintypes:
{
#	combo = { fade = true; shadow = true; };
#	notify = { fade = true; shadow = true; };
#
	tooltip = { fade = false; shadow = true; opacity = 0.9; };
#
	popup_menu = { fade = false; shadow = true; };
	dropdown_menu = { fade = false; shadow = true; };
#
#	normal = { fade = true; shadow = true; };
#	dialog = { fade = true; shadow = true; };
#
#	splash = { fade = true; shadow = true; };
#	utility = { fade = true; shadow = true; };
#	menu = { fade = true; shadow = true; };
#	toolbar = { fade = true; shadow = true; };
#	dock = { fade = true; shadow = true; opacity = 0.90; };
#	desktop = { fade = true; shadow = true; };
#	unknown = { fade = true; shadow = false; };
#	dnd = { fade = true; shadow = true; };
#	{ fade = false; shadow = true; opacity = 0.9; focus = true; };
};

Very nice setup, looks very clean :slight_smile:

thanks. better check this my config FVWM Vertex theme.
i’ll update it soon, it’ll include nice wmaker like dock, using FvwmButtons module

also menus will include icons

I noticed the form of this sites URLs have changed since this post. Might this config file still be around under a different link?

I think the site updated and it caused a bunch of links to stop working. Poor plan I assume, I mean why would you want to remove information? To make it harder to get help?