User Tools

Site Tools


wm:fvwm:config

Table of Contents

My Main configuration file - please review before switching to it!

This is the main config file, common to all my configuration.

Config File

###############
# Default config file for defcon1
###
#
 
###[ Software used ]#
# - imlibsetroot for the bakground
# - urxvt for terminale (Xterm in case)
# - trayer
# - xscreensaver
# - imagemagick
# - emelfm2
# - htop
# - screen
# - gmrun
 
###[ Help and info ]#
# man fvwm !!
# right-clik on desktop / RTFM
# (FAQ) http://fvwmwiki.xteddy.org/IRC/HashFvwm/
# (Wiki) http://fvwmwiki.xteddy.org/
# (Forums) fvwmforums.org
# (IRC) #fvwm@freenode.net
# Google !
 
###############
# Variables
###
#
####[ Folders ]#
# Wallpaper folder
Setenv fvwm_wallpapers $[FVWM_USERDIR]/settings/wallpapers
# Themes images
Setenv fvwm_images $[FVWM_USERDIR]/settings/images
# Temporary files
SetEnv fvwm_temp $[FVWM_USERDIR]/temp
# Scripts location
SetEnv fvwm_scripts $[FVWM_USERDIR]/scripts
# Icons location
SetEnv fvwm_icons $[FVWM_USERDIR]/settings/icons
# Screenshot storage
SetEnv fvwm_screenshots $[FVWM_USERDIR]/screenshots
# Default application icons
ImagePath $[fvwm_icons]:/usr/share/icons:+
# Windows placement files
SetEnv fvwm_place $[FVWM_USERDIR]/settings/placement
 
###############
# Environnement setup
###
#
####[ Desktop configuration ]#
# On Fvwm you can have several desktops each of them can have pages!
# The visible part is called viewport and can overlap from 2 to 4
# pages depending on the configuration you set
# On this configuration I set 1 desktop composed of 9 pages in 3x3 like
#   +-----+-----+-----+
#   |  1  |  2  |  3  |
#   +-----+-----+-----+
#   |  4  |  5  |  6  |
#   +-----+-----+-----+
#   |  7  |  8  |  9  |
#   +-----+-----+-----+
# WARNING: the number are those used for the bindings since 0 is not that convenient... after 9
# So Page 0 will be binded to key Ctrl+1, Page 1 to Ctrl+2 ... See Binding section
 
# Syntaxe to set it is: DeskTopSize HorizontalxVertical
DeskTopSize 3x3
# Mwm Emulation set for resizing and moving windows
Emulate Mwm
 
# Lets ignore those modifiers: CapsLock(L) Numlock(2) Scrolllock(5)
IgnoreModifiers L25
 
# Millisecond time before fvwm consider a click to be hold
ClickTime 250
 
# Default margin around the viewport
# it is used for normal maximisation of window
# Syntax: EwmhBaseStruts left right top bottom  (size in pixels)
EwmhBaseStruts 10 10 10 10
 
# Size in pixel(s) where EdgeResistance and EdgeScroll 
# are activated
EdgeThickness 1
 
# Avoid moving while puting the mouse on the edge
EdgeScroll 0 0
 
# If you want more desktop, you can name them 
# Desktop Names (I only have one desktop so itś kinda useless - given here as example)
DesktopName 0 Work
# Examples:
#DesktopName 1 Communications
#DesktopName 2 Office
#DesktopName 3 Remote Control
#DesktopName 4 Media
#DesktopName 5 System
 
# For the apps to know the number of desktops
EwmhNumberOfDesktops 1
 
###############
# Colorsets
###
#
####[ Default color ]#
Colorset 0 fg white, bg #262626, hi #262626, sh #262626
 
####[ Windows]#
# Active windows
Colorset 1 fg darkgrey, bg #262626, hi #262626, sh #262626
# Inactive windows
Colorset 2 fg white, bg #293F7B, hi #293F7B, sh #293F7B
 
####[ Menus ]#
# Default
Colorset 3 fg white, bg black, Translucent black 60, sh #4B63B2, hi #4B63B2
# Highlighted
Colorset 4 fg blue, bg grey
# Titles
Colorset 5 fg white, bg #4B63B2
 
####[ Pager ]#
# Colorset viewport
Colorset 6 Transparent, Tint #ffffff 30
## Pager windows 
# normal
Colorset 7 Transparent, hi #ffffff, sh #ffffff, Tint #042883 30
# hilight
Colorset 8 Transparent, hi #ff0000, sh #ff0000, Tint #607ABD 60
## Balloons
Colorset 9 fg white, bg #042883
 
### [ Default ]
# In case of doubt, default colorset
DefaultColorset 0
 
###############
# Decorations
###
#
 
# Default window decoration
# I made it simple I just hate those buttons everywhere ... ;-)
# Centered title, 18 pixels height, no 3D/shadow decoration
# button 1 handles the mini icon of the application and is flat
DestroyDecor DefaultDecor
AddToDecor DefaultDecor
+ TitleStyle Centered Height 18 -- Flat
+ ButtonStyle 1 MiniIcon -- UseTitleStyle HiddenHandles Flat
 
 
###############
# Fonts
###
#
####[ Default ]#
DefaultFont "xft:Bitstream Vera Sans:size=10:antialias=true:style=bold"
 
###############
# Style
###
#
####[ ALL windows ( see the * )]# 
 
# Miliseconds before moving window from page to page activates
Style * EdgeMoveDelay 0,EdgeMoveResistance 0
# All windows have a 3 pixels border
# These 3 pixels can be used to handle the window
Style * HandleWidth 3, BorderWidth 3
# All windows use the mouse focus and when clicked it raises
# them on top
Style * MouseFocus, Lenience, FPClickRaisesFocused, CirculateHit
# All windows uses default decoration
Style * UseDecor DefaultDecor
# Child windows are also decorate the same way
Style * DecorateTransient
# Default window colorset
Style * Colorset 1
# Border colorset of focused windows
Style * HilightColorset 2
# Border colorset
Style * BorderColorset 1
# Default font for window's title
Style * Font "xft:Swiss911 XCm BT:size=10:antialias=true"
# Note: this font is available in the ressource folder
 
# Prevent Iconification of all windows:
Style * !Iconifiable
 
####[ Special Styles that requires patches ]# (works without)
# Rounded corners über alles
#Style * RoundedCorners
# Border under the window's title
#Style * BorderUnderTitle
# Not a grid like Mwm but only a rectangle
#Style * ResizeOutlineThin
# Inactive window's title font
#Style * InactiveFont "xft:Swiss911 UCm BT:size=10:antialias=true"
 
####[ Menus style (all) ]#
# Default
# no 3D, sub-menu margin of 10 pixels and 100% on the right,
# displayed after 200ms and removed if we go back to parent item
MenuStyle "*" Hilight3DOff, PopupOffset 10 100, PopupDelay 200, RemoveSubmenus
# Default font
MenuStyle "*" Font "xft:Swiss911 XCm BT:size=13:antialias=true"
# Title font
MenuStyle "*" TitleFont "xft:Space Age:size=12:antialias=true:style=bold"
# Normal and Highlighted menus colorset and animation on
MenuStyle "*" MenuColorset 3, HilightBack, ActiveColorset 4, Animation
# Shape of sub menus arrows
MenuStyle "*" TrianglesSolid
# Title colorset
MenuStyle "*" TitleColorset 5
# Border size: 2 pixels, no lines under the title, long separators
MenuStyle "*" BorderWidth 2, TitleUnderlines0, SeparatorsLong
# Items format (yes it's klingon style ...)
# icon + 4px + menu zone+ 10px
# icon + 5px + first column left aligned +5px
# Second column left align +5 px
# 3rd column right align +5px
# second mini column left aligned + 5px
# 2 pixels + sub menu shape +3px
# finally 5px + end of zone
MenuStyle "*" ItemFormat "%.4s%.10|%.5i%.5l%.5l%.5r%.5i%2.3>%5|"
# Verticale space above and under title
MenuStyle "*" VerticalTitleSpacing 4 4
# Verticale space above and under menu items
MenuStyle "*" VerticalItemSpacing 4 4
 
####[ menu style requiring patch ]#
# Slight rounded corners
#MenuStyle "*" RoundedCorners, SlightlyRoundedCorners
# Flat separators
# MenuStyle "*" FlatSeparators
 
###############
# Bindings
###
#######
# Mouse and Key bindings
#
# Contexts:
#     R = Root Window                 rrrrrrrrrrrrrrrrrrrrrr
#     W = Application Window          rIrrrr<---------^rrrrr
#     F = Frame Corners               rrrrrr[13TTTT642]rrrrr
#     S = Frame Sides                 rIrrrr[wwwwwwwww]rrrrr
#     T = Title Bar                   rrrrrr[wwwwwwwww]rrrrr
#     I = Icon                        rIrrrrv_________>rrrrr
#                                     rrrrrrrrrrrrrrrrrrrrrr
#
#     Numbers are buttons: [1 3 5 7 9  TTTTT  0 8 6 4 2]
#
# Modifiers: (A)ny, (C)ontrol, (S)hift, (M)eta, (N)othing
#
# Format: Key <X>  <Context> <Modifier> <Action>
#         Mouse <X> <Context> <Modifier> <Action>
####################
# You can assign action to the mouse buttons / key bindings
# regarding where the focus is (context)
 
# List of contexts:
# A : All (everywhere)
# R : Root (desktop background)
# I : Icon
# F : Frame Corner (window corner)
# S : Frame Side (window sides)
# T : Application Title (Title bar)
# 0-9 : Title bar buttons
# W : Window (the application window)
 
## Modifiers list:
# Keyboard
# (A)ny, (C)ontrol, (S)hift, (M)eta = Alt, (N)othing
# Syntax: Key <key> context Modifier Function
 
####[ Keyboard ]#
 
# Win+tab Open Windows' list on the current Page and swith on selected window 
# after release of the Win key
Key Tab A 4 WindowList (CurrentPage) Root c c NoDeskSort, SelectOnRelease Super_L
 
# Alt+tab Open Windows' list on the current Desk and swith on selected window 
# after release of the Alt key
Key Tab A M WindowList (CurrentDesk) Root c c NoDeskSort, SelectOnRelease Meta_L
 
# Shift + Tab circuls around urxvt terms and switch on selected term after
# realease of left shift
#Key Tab A S WindowList (urxvt) Root c c NoDeskSort, SelectOnRelease Shift_L
 
# Change page on the desktop with control + right/left
# Up/Down disabled since I use horizontal desktop with 3 pages
Key Up A C GotoPage wrapx wrapy 0p -1p
Key Down A C GotoPage wrapx wrapy 0p +1p
Key Right A C GotoPage wrapx wrapy +1p 0p
Key Left A C GotoPage wrapx wrapy -1p 0p
 
# Change Desktop with  Alt or Ctrl + Up/Down (inverted to match Pager) - Given as example not used
#Key Up A M GotoDesk -1 0 0 5
#Key Down A M GotoDesk 1 0 0 5
#Key Up A C GotoDesk -1 0 0 5
#Key Down A C GotoDesk 1 0 0 5
 
# Move direclty to page (Ctrl + PageNum)
Key 1 A C GotoPage 0 0
Key 2 A C GotoPage 1 0
Key 3 A C GotoPage 2 0
Key 4 A C GotoPage 0 1
Key 5 A C GotoPage 1 1
Key 6 A C GotoPage 2 1
Key 7 A C GotoPage 0 2
Key 8 A C GotoPage 1 2
Key 9 A C GotoPage 2 2
 
# Exit Menu (Ctrl + 0)
Key 0 A C Module FvwmButtons ModQuit
 
 
# Move directly to desktop (Alt + DeskNum) - Given as example not used
#Key 1 A M GotoDesk 0 0
#Key 2 A M GotoDesk 0 1
#Key 3 A M GotoDesk 0 2
#Key 4 A M GotoDesk 0 3
#Key 5 A M GotoDesk 0 4
#Key 6 A M GotoDesk 0 5
 
# Start screensaver (Win + x)
Key X A 4 Exec exec xscreensaver-command -lock
 
# Identify window (win + i)
Key I A 4 Module FvwmIdent
 
# Maxime "fullscreen" focused window (win + m) 
Key M W 4 Pick Maximize toggle 100 100
 
# Maximize "horizontaly" focused windows (win + Left or win + right)
Key Right W 4 Current Maximize toggle growright 0
Key Left W 4 Current Maximize toggle growleft 0
 
# Maximize "verticaly" focused windows (win + Up or win + down)
Key Up W 4 Pick Maximize toggle 0 growup
Key Down W 4 Pick Maximize toggle 0 growdown
 
# Resize Windows
# Grow right Meta+Right
Key Right W M Current ResizeWindowRight
# Grow Down Meta + Down
Key Down W M Current ResizeWindowBottom
# Shrink left Meta+left
Key Left W M Current ResizeWindowLeft
# Shrink up Meta +up
Key Up W M Current ResizeWindowUp
 
AddToFunc ResizeWindowRight
+ I PipeRead "echo Resize $(($[cw.width] + 15))p keep"
 
AddToFunc ResizeWindowLeft
+ I PipeRead "echo Resize $(($[cw.width] - 15))p keep"
 
AddToFunc ResizeWindowBottom
+ I PipeRead "echo Resize keep $(($[cw.height] + 15))p"
 
AddToFunc ResizeWindowUp
+ I PipeRead "echo Resize keep $(($[cw.height] - 15))p"
 
# Restart fvwm (Ctrl + Backspace)
Key BackSpace A C Restart
 
# Toggle the file manager (win + e)
Key E A 4 ToggleFMPanel
 
# Start a Terminal (win + t)
Key T A 4 FvwmTerm
 
# Screenshot of a window (Win +s)
Key S A 4 Pick (CirculateHit) FvwmWindowScreenshot
 
# Screenshot of the complete page (Win + Shift + s)
Key S A S4 FvwmDesktopScreenshot
 
# Make window sticky (Win + P) P = Pin
Key P A 4 Stick
 
# Quake Console on Ctrl + Esc
Key escape A C ToggleConsole
 
# Window Menu (Ctrl + space)
Key space W C Menu MenuFvwmWindow
 
# Main menu (Ctrl + Home) Displayed specially on the top left border
Key Home A C Menu MenuFvwmMain Root +20p +20p
 
# Application launcher (Win + r)
Key R A 4 ToggleFvwmLauncher
 
# Toggle ControlPanel (Win + F1)
Key F1 A 4 ToggleControlPanel
 
####[ Mouse ]#
# Syntax :Mouse Button Context Modifier Fonction
# Button numbers are:
# +------------+
# | ||  ||  || |
# |            |
# +------------+
#   1   2   3
 
# Disable left clik on desktop
Mouse 1 R A -
# Right clik on desktop opens main menu
Mouse 3 R A Menu MenuFvwmMain
# Middle click on title bar close the window
Mouse 2 T A Close
# Right-Click on the title bar open the window menu
Mouse 3 T A Menu MenuFvwmWindow
# Wheel up on window's title shades the window
Mouse 4 T A FvwmWindowShade True
# Wheel down on window's title unshade the window
Mouse 5 T A FvwmWindowShade False
# Win + left click Move window
Mouse 1 W 4 Pick move
 
####[ Applications Styles ]#
 
# Style for trayer : not in windows list no border/title/handles
Style panel WindowListSkip, CirculateSkip, BorderWidth 0, HandleWidth 0, !Title
Style "acroread" StartsOnPage 0 1 2, NoTitle
#Style "rdesktop" !Title, !Borders, !Handles
Style "SSH_TERM" PositionPlacement +30p +30p, BorderWidth 2, !Handles, !Title, Sticky
 
###############
# Functions
###
#
 
# Remove the ability of crappy apps that takes the focus on their own
# http://fvwmwiki.xteddy.org/IRC/HashFvwm/#index21h2
DestroyFunc UrgencyFunc
 
# Function run at start
DestroyFunc StartFunction
AddToFunc StartFunction
# First start
+ I Test (Init) SSH_KEY_TERM
+ I Test (Init) Exec exec imlibsetroot -s w -x 1 $[fvwm_wallpapers]/internet-wallpaper-268439.jpg
# On reload
#+ I Test (Restart)
# On all start / restart
# TO BE SET IN .fvwm/settings/hostname files # + I Exec exec trayer --edge bottom --align right --widthtype pixel --width 130 --margin 0 --transparent true --alpha 255 --expand true
+ I Module FvwmEvent
+ I Module FvwmCommandS
 
DestroyFunc ExitFunction
AddToFunc ExitFunction
# On quit
#+ I Test (Quit) 
# On restart
+ I Test (ToRestart) Exec exec killall trayer
+ I Test (ToRestart) KillModule ControlPanel
# DOESN'T WORK # + I Test (ToRestart) Exec exec xkill -id `xwininfo -name QUAKE | grep 'Window id:' | cut -d " " -f 4`
# On quit and restart
#+ I KillModule MyBuggyModule
 
# FvwmWindowShade manage shading/unshading of a window
# 3 possibilities:
# True : shades
# False : unshades
# "blank" : invert status
DestroyFunc FvwmWindowShade
AddToFunc FvwmWindowShade
+ D WindowShade $0
 
# Fonctions Screenshot
# Requires imagemagick
# Part of the window menu
# To use it elsewher: 
# Call the function with 'Pick (CirculateHit) FvwmWindowScreenshot'
DestroyFunc FvwmWindowScreenshot
AddToFunc FvwmWindowScreenshot
+ I ThisWindow (!Shaded,!Iconic) Exec import -window $[w.id] -quality 100 -silent $fvwm_screenshots/screenshot-`date +%F[%T]`.$[w.id].$[w.visiblename].jpg
 
# Function that takes a screenshot of the complete desktop after $0 seconds
DestroyFunc FvwmDesktopScreenshot
AddToFunc FvwmDesktopScreenshot
+ I Exec sleep $0; import -window root -quality 100 -silent $fvwm_screenshots/screenshot-`date +%F[%R]`.jpg
 
# A function that launches a urxvt terminal and setting it's name  and number
Style Terminal* TitleAtRight, PositionPlacement UnderMouse, MiniIcon mini_konsole.png
DestroyFunc FvwmTerm
AddToFunc FvwmTerm
+ I Piperead 'echo SetEnv fvwm_term_nb $((${fvwm_term_nb} + 1))'
+ I Exec exec urxvt -b 10 -name "Terminal ~ $fvwm_term_nb" -title "Terminal ~ $fvwm_term_nb"
 
# Function that launches Firefox
Style Firefox StartsOnPage 0 0 0, !Title, !Borders, !Handles
DestroyFunc FvwmWeb
AddToFunc FvwmWeb
+ I Exec exec firefox
 
# Function that launches videolan (vlc)
Style vlc StartsOnPage 0 2 1, !Title, !Borders, !Handles
DestroyFunc FvwmVideo
AddToFunc FvwmVideo
+ I Exec exec vlc
 
# Event handle
# For Windows And Pages
DestroyModuleConfig FvwmEvent*
*FvwmEvent: add_window FvwmManageWindows
*FvwmEvent: new_page FvwmManagePages
# Add events on close_windows / quit page
 
# Manage Windows
# I use this to auto maximize full screen some apps
DestroyFunc FvwmManageWindows
AddToFunc FvwmManageWindows
+ I ThisWindow ("Firefox") Maximize ewmhiwa
+ I ThisWindow ("Thunderbird") Maximize ewmhiwa
+ I ThisWindow ("libreoffice-*") Maximize ewmhiwa
+ I ThisWindow ("acroread") Maximize ewmhiwa
+ I ThisWindow ("vlc") Maximize ewmhiwa
+ I ThisWindow ("FVWMRESULT") WarpToWindow 50 50
 
# Manage Pages
DestroyFunc FvwmManagePages
AddToFunc FvwmManagePages
+ I Exec exec echo "Desktop:" $[desk.n] "Page:" $[page.nx] $[page.ny] | osd_cat -d 1
+ I FvwmAutoStartApp
 
# Auto-start Applications when on certain desks
# Kind of swith that launch the FvwmDeskNPageXY regarding which desk/page you are
DestroyFunc FvwmAutoStartApp
AddToFunc FvwmAutoStartApp
# if on desk 0 page 0 0 
+ I PipeRead '[[ $[desk.n] -eq 0 && $[page.nx] -eq 0 && $[page.ny] -eq 0 ]] && echo "FvwmDesk0Page00"'
# if on desk 0 page 0 1 
+ I PipeRead '[[ $[desk.n] -eq 0 && $[page.nx] -eq 0 && $[page.ny] -eq 1 ]] && echo "FvwmDesk0Page01"'
# if on desk 0 page 0 2 
+ I PipeRead '[[ $[desk.n] -eq 0 && $[page.nx] -eq 0 && $[page.ny] -eq 2 ]] && echo "FvwmDesk0Page02"'
# if on desk 0 page 1 0 
+ I PipeRead '[[ $[desk.n] -eq 0 && $[page.nx] -eq 1 && $[page.ny] -eq 0 ]] && echo "FvwmDesk0Page10"'
# if on desk 0 page 1 1 
+ I PipeRead '[[ $[desk.n] -eq 0 && $[page.nx] -eq 1 && $[page.ny] -eq 1 ]] && echo "FvwmDesk0Page11"'
# if on desk 0 page 1 2 
+ I PipeRead '[[ $[desk.n] -eq 0 && $[page.nx] -eq 1 && $[page.ny] -eq 2 ]] && echo "FvwmDesk0Page12"'
# if on desk 0 page 2 0 
+ I PipeRead '[[ $[desk.n] -eq 0 && $[page.nx] -eq 2 && $[page.ny] -eq 0 ]] && echo "FvwmDesk0Page20"'
# if on desk 0 page 2 1 
+ I PipeRead '[[ $[desk.n] -eq 0 && $[page.nx] -eq 2 && $[page.ny] -eq 1 ]] && echo "FvwmDesk0Page21"'
# if on desk 0 page 2 2 
+ I PipeRead '[[ $[desk.n] -eq 0 && $[page.nx] -eq 2 && $[page.ny] -eq 2 ]] && echo "FvwmDesk0Page22"'
# to be continued if needed on other desks
 
# Man page display function
# parameter: command name
DestroyFunc FvwmViewManPage
AddToFunc FvwmViewManPage
+ I Exec exec xterm -fg White -bg DarkBlue -g 80x40 -fn 7x14 -fb 7x14bold \
-n "Manual Page - $0" -T "Manual Page - $0" -e man "$0"
 
# Nice urxvt terminal without title bar
# On the second page of the second desktop
Style "IRSSI"       MiniIcon irssi.png, Icon irssi.png , EWMHMiniIconOverride, NoTitle, StartsOnPage 0 1 1
DestroyFunc FvwmIrssi
AddToFunc FvwmIrssi
+ I Exec exec urxvt -title IRSSI -name IRSSI -geometry 143x42+33+74 +sb -bc -e screen -A -d -R IRSSI -c ~/.fvwm/settings/programs/.screenrc-irssi
 
# File Browser
DestroyFunc FvwmFm
AddToFunc FvwmFm
+ I Exec exec emelfm2
 
# Main Terminal
Style "FVWMSCREEN" NoTitle, StartsOnPage 0 0 1, PositionPlacement +15p +15p
DestroyFunc FvwmScreen
AddToFunc FvwmScreen
+ I Exec exec urxvt -title FVWMSCREEN  -geometry 148x40+10+90 +sb -bc -e screen -c ~/.fvwm/settings/programs/.screenrc-main -ARd FVWMSCREEN
#+ I PipeRead 'cat $[fvwm_place]/`eval hostname`.FVWMSCREEN'
 
# Fvwm config editor
Style "FVWM CONFIG" EWMHMiniIconOverride, NoTitle, FixedPosition, FixedSize
DestroyFunc FvwmEditor
AddToFunc FvwmEditor
+ I Exec exec urxvt -tr -tint white -sh 30 -title "FVWM CONFIG" -geometry 189x47+13+76 +sb -bc -e screen -c ~/.fvwm/settings/programs/.screenrc-fvwmedit -ARd FvwmEdit
 
# Mail App
Style "Thunderbird" StartsOnPage 0 1 0, !Title, !Borders, !Handles
DestroyFunc FvwmMail
AddToFunc FvwmMail
+ I Exec exec thunderbird
 
DestroyFunc FvwmTeamViewer
AddtoFunc FvwmTeamViewer
+ I Exec exec sudo systemctl start teamviewerd
+ I Exec exec `sleep 5 && teamviewer`
 
# Office tools
Style "libreoffice-*" StartsOnPage 0 1 2, NoTitle
DestroyFunc FvwmCalc
AddToFunc FvwmCalc
+ I Exec exec libreoffice --nologo --calc
 
DestroyFunc FvwmWriter
AddToFunc FvwmWriter
+ I Exec exec libreoffice --nologo --writer
 
DestroyFunc FvwmImpress
AddToFunc FvwmImpress
+ I Exec exec libreoffice --nologo --impress
 
## Per desk/page wallpaper / menu
DestroyFunc FvwmDesk0Page00
AddToFunc FvwmDesk0Page00
# Set wallpaper
+ I Exec exec imlibsetroot -s w -x 1 $[fvwm_wallpapers]/internet-wallpaper-268439.jpg
# Set Menu
 
DestroyFunc FvwmDesk0Page10
AddToFunc FvwmDesk0Page10
# Set wallpaper
+ I Exec exec imlibsetroot -s w -x 1 $[fvwm_wallpapers]/mail-wallpaper-762509.jpg
# Set Menu
 
DestroyFunc FvwmDesk0Page20
AddToFunc FvwmDesk0Page20
# Set wallpaper
+ I Exec exec imlibsetroot -s w -x 1 $[fvwm_wallpapers]/music-wallpaper85023.jpg
# Set Menu
 
DestroyFunc FvwmDesk0Page01
AddToFunc FvwmDesk0Page01
# Set wallpaper
+ I Exec exec imlibsetroot -s w -x 1 $[fvwm_wallpapers]/LCARS_Cconsole.jpg
# Set Menu
 
DestroyFunc FvwmDesk0Page11
AddToFunc FvwmDesk0Page11
# Set wallpaper
+ I Exec exec imlibsetroot -s w -x 1 $[fvwm_wallpapers]/IRC-wallpaper-429097.jpg
# Set Menu
 
DestroyFunc FvwmDesk0Page21
AddToFunc FvwmDesk0Page21
# Set wallpaper
+ I Exec exec imlibsetroot -s w -x 1 $[fvwm_wallpapers]/video-1443453.jpg
# Set Menu
 
DestroyFunc FvwmDesk0Page02
AddToFunc FvwmDesk0Page02
+ I Exec exec imlibsetroot -s w -x 1 $[fvwm_wallpapers]/virtual-reWalls.com_14280.jpg
# Set wallpaper
# Set Menu
 
DestroyFunc FvwmDesk0Page12
AddToFunc FvwmDesk0Page12
# Set wallpaper
+ I Exec exec imlibsetroot -s w -x 1 $[fvwm_wallpapers]/office-wallpaper-2005232.jpg
# Set Menu
 
DestroyFunc FvwmDesk0Page22
AddToFunc FvwmDesk0Page22
# Set wallpaper
+ I Exec exec imlibsetroot -s w -x 1 $[fvwm_wallpapers]/picture-crunchyroll-forum-anime-picture-war-page-24.jpg
# Set Menu
 
###############
# Menus
###
#
# Main menu
DestroyMenu MenuFvwmMain
AddToMenu MenuFvwmMain  " $[USER] " Title
+ ""                            Nop
+ "&Terminal"                   FvwmTerm
+ "&Screen"                     FvwmScreen
+ ""                            Nop
+ "&Navigateur Web"             FvwmWeb
+ "&Mail"                       FvwmMail
+ "&IRC"                        FvwmIrssi
+ ""                            Nop
+ "Teamviewer"                  FvwmTeamViewer
+ ""                            Nop
+ "&File Manager"               FvwmFm
+ ""                            Nop
+ "Tools"                       Popup MenuFvwmTools
+ ""                            Nop
+ "&System"                     Popup MenuFvwmSystem
+ ""                            Nop
+ "&Quit"                       Module FvwmButtons ModQuit
 
# System Menu (Network/Service/Config)
DestroyMenu MenuFvwmSystem
AddToMenu MenuFvwmSystem " Configure System " Title
+ ""                            Nop
+ "&Fvwm"                       Popup MenuFvwmConfig
+ ""                            Nop
+ "&Networks"                   Popup MenuFvwmNetworks
+ ""                            Nop
+ "&Services"                   Popup MenuFvwmServices
 
# Fvwm Configuration Menu
DestroyMenu MenuFvwmConfig
AddToMenu MenuFvwmConfig "Fvwm" Title
+ ""                    Nop
+ "&FvwmConsole"        Module FvwmConsole -terminal urxvt
+ "&Edit Config"        FvwmEditor
+ "&Restart"            Restart
+ "&RTFM"               Popup MenuFvwmMan
 
DestroyMenu MenuFvwmTools
AddToMenu MenuFvwmTools "Tools" Title
+ ""                    Nop
+ "&Wavemon"            Exec exec urxvt -e wavemon
+ "&Htop"               Exec exec urxvt -e htop
+ "&Xterm"              Exec exec xterm
+ "X&kill"              Exec exec xkill
+ "&Battery"            Nop
 
DestroyMenu MenuFvwmNetworks
AddtoMenu MenuFvwmNetworks "Networks" Title
+ DynamicPopupAction Function MakeNetworksMenu
 
AddToFunc MakeNetworksMenu
+ I DestroyMenu recreate MenuFvwmNetworks
+ I AddToMenu MenuFvwmNetworks Networks Title
+ I AddToMenu MenuFvwmNetworks "" Nop
+ I PipeRead  '$[fvwm_scripts]/gen-networks-menu.sh MenuFvwmNetworks'
 
DestroyMenu MenuFvwmServices
AddtoMenu MenuFvwmServices "Services" Title
+ DynamicPopupAction Function MakeServicesMenu
 
AddToFunc MakeServicesMenu
+ I DestroyMenu recreate MenuFvwmServices
+ I AddToMenu MenuFvwmServices Services Title
+ I AddToMenu MenuFvwmServices "" Nop
+ I PipeRead  '$[fvwm_scripts]/gen-services-menu.sh MenuFvwmServices'
 
 
DestroyMenu MenuFvwmMan
AddToMenu MenuFvwmMan " FVWM Man Pages " Title
+ "fvwm"                    FvwmViewManPage fvwm
+ "FvwmAnimate"             FvwmViewManPage FvwmAnimate
+ "FvwmAuto"                FvwmViewManPage FvwmAuto
+ "FvwmBacker"              FvwmViewManPage FvwmBacker
+ "FvwmBanner"              FvwmViewManPage FvwmBanner
+ "FvwmButtons"             FvwmViewManPage FvwmButtons
+ "FvwmCommand"             FvwmViewManPage FvwmCommand
+ "FvwmConsole"             FvwmViewManPage FvwmConsole
+ "FvwmConsoleC.pl"         FvwmViewManPage FvwmConsoleC.pl
+ "FvwmCpp"                 FvwmViewManPage FvwmCpp
+ "FvwmDebug"               FvwmViewManPage FvwmDebug
+ "FvwmDragWell"            FvwmViewManPage FvwmDragWell
+ "FvwmEvent"               FvwmViewManPage FvwmEvent
+ "FvwmForm"                FvwmViewManPage FvwmForm
+ "FvwmGtk"                 FvwmViewManPage FvwmGtk
+ "FvwmGtkDebug"            FvwmViewManPage FvwmGtkDebug
+ "FvwmIconBox"             FvwmViewManPage FvwmIconBox
+ "FvwmIconMan"             FvwmViewManPage FvwmIconMan
+ "FvwmIdent"               FvwmViewManPage FvwmIdent
+ "FvwmM4"                  FvwmViewManPage FvwmM4
+ "FvwmPager"               FvwmViewManPage FvwmPager
+ "FvwmPerl"                FvwmViewManPage FvwmPerl
+ "FvwmProxy"               FvwmViewManPage FvwmProxy
+ "FvwmRearrange"           FvwmViewManPage FvwmRearrange
+ "FvwmSave"                FvwmViewManPage FvwmSave
+ "FvwmSaveDesk"            FvwmViewManPage FvwmSaveDesk
+ "FvwmScript"              FvwmViewManPage FvwmScript
+ "FvwmScroll"              FvwmViewManPage FvwmScroll
+ "FvwmTaskBar"             FvwmViewManPage FvwmTaskBar
+ "FvwmTheme"               FvwmViewManPage FvwmTheme
+ "FvwmWharf"               FvwmViewManPage FvwmWharf
+ "FvwmWinList"             FvwmViewManPage FvwmWinList
+ "FvwmWindowMenu"          FvwmViewManPage FvwmWindowMenu
+ ""                        Nop
+ "fvwm-config"             FvwmViewManPage fvwm-config
+ "fvwm-perllib"            FvwmViewManPage fvwm-perllib
+ "fvwm-root"               FvwmViewManPage fvwm-root
+ "fvwm-bug"                FvwmViewManPage fvwm-bug
+ "fvwm-convert-2.2"        FvwmViewManPage fvwm-convert-2.2
+ "fvwm-convert-2.4"        FvwmViewManPage fvwm-convert-2.4
+ ""                        Nop
+ "fvwm-menu-desktop"       FvwmViewManPage fvwm-menu-desktop
+ "fvwm-menu-directory"     FvwmViewManPage fvwm-menu-directory
+ "fvwm-menu-headlines"     FvwmViewManPage fvwm-menu-headlines
+ "fvwm-menu-xlock"         FvwmViewManPage fvwm-menu-xlock
 
# Dedicated page menu
DestroyMenu MenuFvwmWindow
AddToMenu MenuFvwmWindow " Window Operations " Title
+ ""                        Nop
+ "&Move to Page"           PopUp MenuFvwmMovetoPage
+ ""                        Nop
+ "&Identification"         FvwmIdent
+ ""                        Nop
+ "&Take Capture"           FvwmWindowScreenshot
+ ""                        Nop
+ "&Maximize"               PopUp MenuFvwmMaximize
+ ""                        Nop
+ "&Close"                  Close
+ "&Kill"                   Destroy
 
# Switch to Page Menu
DestroyMenu MenuFvwmMovetoPage
AddToMenu MenuFvwmMovetoPage " Move this window to " Title
+ "Page &1 (Browser)"       MoveToPage 0 0
+ "Page &2 (Mail)"          MoveToPage 1 0
+ "Page &3 (Music)"         MoveToPage 2 0
+ "Page &4 (Terminal)"      MoveToPage 0 1
+ "Page &5 (Comms)"         MoveToPage 1 1
+ "Page &6 (Videos)"        MoveToPage 2 1
+ "Page &7 (VMs)"           MoveToPage 0 2
+ "Page &8 (Office)"        MoveToPage 1 2
+ "Page &9 (Pictures)"      MoveToPage 2 2
 
# Maximize Menu
DestroyMenu MenuFvwmMaximize
AddToMenu MenuFvwmMaximize " Maximize this window " Title
+ "&Horizontal"             Maximize 100 0
+ "&Vertical"               Maximize 0 100
+ "&Max"                    Maximize 100 100
+ "&Full screen"            Maximize ewmhiwa 100 100
 
###############
# Panels (FvwmButtons / Pager ...)
###
#
 
####[ Nice exit window centered - well as much as possible ]#
 
Style ModQuit NoTitle,StaysOnTop, Sticky, HandleWidth 0, BorderWidth 1, !Handles, PositionPlacement Center, NoPPosition, NoUSPosition
 
DestroyModuleConfig ModQuit: *
*ModQuit: Geometry 320x100@p
*ModQuit: Font "xft:Bitstream Vera Sans:size=10:antialias=true:style=bold"
*ModQuit: Colorset 11
*ModQuit: Rows 3
*ModQuit: Columns 4
*ModQuit: Frame 0
*ModQuit: Padding 5
*ModQuit: BoxSize fixed
*ModQuit: (1x2, Icon cancel.png, ActionOnPress, Action 'KillModule FvwmButtons ModQuit')
*ModQuit: (1x2, Icon konsole.png, ActionOnPress, Action Quit)
*ModQuit: (1x2, Icon reload.png, ActionOnPress, Action 'Exec exec sudo systemctl reboot')
*ModQuit: (1x2, Icon exit.png, ActionOnPress, Action 'Exec exec sudo systemctl poweroff')
*ModQuit: (1x1, Title "Oups")
*ModQuit: (1x1, Title "Exit")
*ModQuit: (1x1, Title "Reboot")
*ModQuit: (1x1, Title "Halt")
 
# Default FvwmPager configuration
DestroyModuleConfig FvwmPager: *
*FvwmPager: DeskTopScale 9
*FvwmPager: DeskHilight
*FvwmPager: MiniIcons
*FvwmPager: Balloons
*FvwmPager: Font none
*FvwmPager: UseSkipList
*FvwmPager: BalloonColorset * 1
*FvwmPager: Fore grey
*FvwmPager: Back black
*FvwmPager: Hilight darkgrey
*FvwmPager: SloppyFocus
 
# Control Panel
Style "ControlPanel" !Handles, !Title, Sticky, !Borders, WindowListSkip
DestroyModuleConfig ControlPanel: *
*ControlPanel: Geometry +0+0
*ControlPanel: Background black
*ControlPanel: Rows 1
*ControlPanel: Columns 2
*ControlPanel: Frame 0
*ControlPanel: (1x1, Swallow (UseOld,Respawn) "Conky" 'Exec exec conky -o -c ~/.fvwm/settings/programs/.conkyrc')
*ControlPanel: (1x1, Swallow (UseOld,Respawn) "FvwmPager" 'Module FvwmPager')
 
DestroyFunc StartControlPanel
AddtoFunc StartControlPanel
+ I Module FvwmButtons ControlPanel
+ I Wait ControlPanel
+ I Next (ControlPanel) Maximize ewmhiwa 100 345p
+ I Next (ControlPanel) State 1 True
 
DestroyFunc ToggleControlPanel
AddToFunc ToggleControlPanel
+ I None (ControlPanel) StartControlPanel
+ I TestRc (NoMatch) All (ControlPanel,State 1) AnimatedMove +0p 50-50w ewmhiwa
+ I TestRc (Match) All (ControlPanel) Focus
+ I TestRc (Match) All (ControlPanel) WarpToWindow 50 50
+ I TestRc (NoMatch) All (ControlPanel) AnimatedMove +0p -$[vp.height]p ewmhiwa
+ I Next (ControlPanel) State 1 toggle
 
DestroyFunc SSH_KEY_TERM
AddToFunc SSH_KEY_TERM
+ I Exec exec xterm -fg White -bg black -g 80x1 -fn 7x14bold -n "SSH_TERM" -T "SSH_TERM" -e /bin/bash -l -c "PS1=\"\";ssh localhost exit"
+ I Wait SSH_TERM
+ I TestRc (Match) All (SSH_TERM) Focus
+ I TestRc (Match) All (SSH_TERM) WarpToWindow 10 50
 
# Console quake
DestroyFunc StartConsole
AddtoFunc StartConsole
+ I Exec exec urxvt +tr -title QUAKE -name quake -bc +sb -geometry +0+0 -e screen -A -d -R QUAKE -c ~/.fvwm/settings/programs/.screenrc-quake
#+ I Exec exec urxvt -title QUAKE -name QUAKE -geometry +0+0 +sb -bc -e screen -A -d -R QUAKE -c ~/.fvwm/settings/programs/.screenrc-quake
+ I Wait quake
+ I Next (quake) Maximize ewmhiwa 100 0
+ I Next (quake) State 1 True
 
DestroyFunc ToggleConsole
AddToFunc ToggleConsole
+ I None (quake) StartConsole
+ I TestRc (NoMatch) All (quake,State 1) AnimatedMove +0p +0p ewmhiwa
+ I TestRc (Match) All (quake) Focus
+ I TestRc (Match) All (quake) WarpToWindow 50 50
+ I TestRc (NoMatch) All (quake) AnimatedMove +0p -$[vp.height]p ewmhiwa
+ I Next (quake) State 1 toggle
 
Style quake WindowListSkip, BorderWidth 2, !Handles, !Title, Sticky
 
 
# FileManager Panel
DestroyFunc StartFMPanel
AddtoFunc StartFMPanel
+ I Exec exec emelfm2
+ I Wait emelfm2
+ I Next (emelfm2) Maximize ewmhiwa 80 50
+ I Next (emelfm2) State 1 True
 
DestroyFunc ToggleFMPanel
AddToFunc ToggleFMPanel
+ I None (emelfm2) StartFMPanel
+ I TestRc (NoMatch) All (emelfm2,State 1) AnimatedMove 10 50-50w ewmhiwa Warp
+ I TestRc (Match) All (emelfm2) Focus
+ I TestRc (Match) All (emelfm2) WarpToWindow 50 50
+ I TestRc (NoMatch) All (emelfm2) AnimatedMove 10 +$[vp.height]p ewmhiwa
+ I Next (emelfm2) State 1 toggle
 
Style emelfm2  BorderWidth 0, !Handles, !Title, Sticky, MiniIcon mini_emelfm2.png, EWMHMiniIconOverride, PositionPlacement Center, FPGrabFocus
 
# Small Launcher that never dies (as default …) - works good with gtk-theme-bleufear
Style "FvwmLauncher" !Handles, !Title, Sticky, !Borders, WindowListSkip
# Output terminal
Style "FVWMRESULT" !Handles, !Title, Sticky, !Borders
DestroyModuleConfig FvwmLauncher: *
*FvwmLauncher: Geometry 605x60+10+10
*FvwmLauncher: Background black
*FvwmLauncher: Rows 1
*FvwmLauncher: Columns 1
*FvwmLauncher: Frame 0
*FvwmLauncher: (1x1, Swallow (UseOld,Respawn) "Gmrun" 'Exec exec gmrun')
 
DestroyFunc StartFvwmLauncher
AddtoFunc StartFvwmLauncher
+ I Module FvwmButtons FvwmLauncher
+ I Wait FvwmLauncher
+ I Next (FvwmLauncher) State 1 True
 
DestroyFunc ToggleFvwmLauncher
AddToFunc ToggleFvwmLauncher
+ I None (FvwmLauncher) StartFvwmLauncher
+ I TestRc (NoMatch) All (FvwmLauncher,State 1) AnimatedMove +10p +10p ewmhiwa
+ I TestRc (Match) All (FvwmLauncher) Focus
+ I TestRc (Match) All (FvwmLauncher) WarpToWindow 10 50
+ I TestRc (NoMatch) All (FvwmLauncher) AnimatedMove +10p -$[vp.height]p ewmhiwa
+ I Next (FvwmLauncher) State 1 toggle
 
# Read specific host config file for specific menus/functions/styles or overloading original ones
PipeRead 'cat ~/.fvwm/settings/$(uname -n)'
 
# vim:ft=fvwm

tweaks

Some tweaks for your system

sudoers

yourlogin ALL=(ALL) NOPASSWD: /usr/bin/poweroff, /usr/bin/reboot, /usr/bin/shutdown, /usr/bin/systemctl, /usr/bin/ip

gmrun

Please see GmRun

wm/fvwm/config.txt · Last modified: 2022/04/12 10:11 by 134.21.209.213