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