Hello Misc,

I have read some post about getting along with the default WM, i mean
complaining about configuring it, saying that the man page its dificult and
stuff, and then saddly going to another WM.

I my OpenBSD era (from 60 to date) i was using cwm but wondering why they
say that Theo uses fvwm, so i wondered that maybe it is worth it to try.

So i attach my .fvwmrc and i hope that will help someone to start tweaking
it and get along with it and be happy with it.

I think that the config file is basic enough to start (for me it helped to
migrate from cwm) and has a good bindings that one might find useful as:
- Control + arrow navigation between pages
- Control + Meta + number to move window to page (i couldnt make it
dinamically so it could work if its more than 9 pages, sorry about that)
- Shift + Left/right to circulate focus between open windows (Like alt tab)
- Control + Meta + arrows to snap window to left, right, maximize and
iconify (that is my favorite)
- Meta + d  dmenu (pkg_add dmenu)
- Meta + i  screenshot ( pkg_add ImageMagick)
- Meta + x close window
- Control + Meta + p  power off
- Meta + t  make it transparent (pkg_add transset-df)
- Meta + m  move window
- It uses feh to set the wallpaper
- It uses conky for basic info
- It uses dmenu to fast start applications.

I am eager to share it here since it works for the fvwm in base 64, i
noticed that there are plenty config files online but they are meant for a
newer fvwm that is not in OpenBSD and i couldnt make it work, even i was
tempted to post a mail asking for Theo´s config file but i had the
impression that the answer would be as fun and educational as always.

Again, i hope that it helps.

Manuel Solis



# This is a customized file based on the bare bones sample
.fvwm2rc/system.fvwm2rc
# file for fvwm-2. It is the combination of hints for the other .fvwm2rc
files
# samples, as well as pointers from the various links on the official fvwm
web
# page (see the FAQ). For questions ask man page.

######################## Key Bindings
################################
# some simple default mouse bindings:
#   for the root window:
Mouse    1    R    A    Nop
Mouse     3    R       A       Menu RootMenu Nop
#   for the title bar buttons:
Mouse     0    1        A          Menu Window-Ops2 Close
Mouse     0    2        A         Maximize-Func
Mouse     0    4        A         Iconify
#   for other parts of the window/borders/icons:
Mouse     1    F    A    Resize-or-Raise
Mouse     1    TS    A    Move-or-Raise
Mouse     1    I    A    Move-or-Iconify
Mouse     2    I    A    Iconify
Mouse     2    FST    A    Menu Window-Ops2 Nop
Mouse     3    TSIF    A    RaiseLower

# some simple default key bindings:
# Arrow Keys
# press arrow + control anywhere, and scroll by 1 page
Key     Left    A    C    Scroll -100 0
Key     Right    A    C    Scroll +100 +0
Key     Up    A    C    Scroll +0   -100
Key     Down    A    C    Scroll +0   +100
# press arrow + Meta anywhere, and Snap Right/Left, Maximize or iconify
Key     Left    A    CM    LeftSnap
Key     Right    A    CM    RightSnap
Key    Up    A    CM    Maximize 100 97
Key    Down    A    CM    Iconify

# Shift + arrow to circulate focos between programs
# Similar to Alt + Tab
Key     Left     A    S    Prev [*] FocusAndWarp
Key     Right    A    S    Next [*] FocusAndWarp
Key    Super_R    A    A    WindowList

#  Alt - Tab function to circulate focus between programs
#Key     Tab      A       M     Next [*] FocusAndWarp

# Key bindings
# Press Meta + Keys bindings
Key     Return     A    M    Exec /usr/X11R6/bin/xterm
Key     d    A    M    Exec /usr/local/bin/dmenu_run
Key     i    A    M    Exec /usr/local/bin/import -window root
$HOME/screenshot.jpg
Key    k    A    M    Exec setxkbmap -layout us
Key    l    A    M    Exec setxkbmap -layout es
Key    m    A    M    Move #Exec /usr/X11R6/bin/xterm -e man fvwm
Key     t    A    M    Exec /usr/local/bin/transset-df -p -t 0.6
#transparent window
Key    x    W    M    Delete
Key    x    I    M    Destroy
Key    r    A    CM    Restart /usr/X11R6/bin/fvwm
# Press Meta + Ctrl + Keys bindings
Key    p    A    CM    Exec /usr/bin/doas halt -p
# Keyboard accelerators
Key     F1    A    M    Menu RootMenu
Key     F2    A    M    Menu Window-Ops
Key     F3    A    M    WindowList FvwmWinList
Key     F4    A    M    Iconify
Key     F5    A    M    Move
Key     F6    A    M    Resize
#Key     F7    A    M    CirculateUp
#Key     F8    A    M    CirculateDown

Key    1    W    CM    MuevePagina 0 0
Key    2    W    CM    MuevePagina 1 0
Key    3    W    CM    MuevePagina 2 0
Key    4    W    CM    MuevePagina 0 1
Key    5    W    CM    MuevePagina 1 1
Key    6    W    CM    MuevePagina 2 1
Key    7    W    CM    MuevePagina 0 2
Key    8    W    CM    MuevePagina 1 2
Key    9    W    CM    MuevePagina 2 2


######################## Global Settings
####################################
# be sure to customize these paths for your installation:
ModulePath /usr/X11R6/lib/X11/fvwm
PixmapPath
/usr/X11R6/include/X11/pixmaps:+:/usr/local/share/pixmaps/qutebrowser
IconPath   /usr/X11R6/include/X11/bitmaps

EdgeResistance 250 10
EdgeScroll 100 100
ClickTime 750

# make sure these fonts exist on your system:
WindowFont -adobe-times-bold-r-*-*-14-*-*-*-*-*-*-*
IconFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*

HilightColor #bebebe blue
MenuStyle #4d4d4d #efefef #e7e7e7 -adobe-times-bold-r-*-*-12-*-*-*-*-*-*-*
fvwm
#MenuStyle #dedede darkred  #e7e7e7
-adobe-times-bold-r-*-*-12-*-*-*-*-*-*-* fvwm

DeskTopSize 3x3

ColormapFocus FollowsMouse

######################## Styles
############################################
Style "*"           BorderWidth 7, HandleWidth 7
Style "*"           Icon unknown1.xpm, Color #bebebe/darkred
Style "*"           MWMFunctions, MWMDecor, HintOverride
Style "*"           DecorateTransient, NoPPosition
#Style "*"           IconBox 0 -10 -280 -1, IconFill b l
Style "*"           IconBox, IconFill b l
Style "*"           FocusFollowsMouse
Style "*"           RandomPlacement, SmartPlacement

# Styles for various Fvwm modules:
Style "Fvwm*"       NoTitle,  Sticky, WindowListSkip
Style "Fvwm*"       BorderWidth 2, CirculateSkipIcon, CirculateSkip
Style "FvwmPager"   StaysOnTop
Style "FvwmBanner"  StaysOnTop
Style "FvwmButtons" Icon toolbox.xpm, ClickToFocus
# Styles for custom programs
Style "xconsole"    CirculateSkipIcon, CirculateSkip
Style "Conky"        NoTitle, NoHandles, WindowListSkip, StaysOnTop,
Sticky, CirculateSkipIcon, CirculateSkip
Style "*Xfe*"       StartsOnPage 0 1
Style "qutebrowser" StartsOnPage 1 0
Style "Mozilla Firefox" StartsOnPage 1 1, NoTitle
Style "*Chromium"   StartsOnPage 1 2, NoTitle
Style "*LibreOf*"   StartsOnPage 2 0
Style "*GNU Ima*"   StartsOnPage 2 1

# Styles for your common terminal emulator programs:
AddToDecor terms
+ ButtonStyle 1 Pixmap mini.xterm.xpm
+ HilightColor #bebebe blue
Style "XTerm"       UseDecor terms
Style "XTerm"       Icon xterm.xpm, SloppyFocus, IconBox -70 1 -1 -140

# Styles for various common programs:
Style "*lock"       NoTitle, NoHandles, Sticky, WindowListSkip, ClickToFocus
Style "xbiff"       NoTitle, Sticky, WindowListSkip, ClickToFocus
Style "xcalc"       Icon xcalc.xpm, NoButton 2,RandomPlacement,ClickToFocus
Style "xman"        Icon xman.xpm, RandomPlacement, ClickToFocus
Style "qutebrowser" Icon qutebrowser.xpm, RandomPlacement
Style "xmag"        Icon mag_glass.xpm, RandomPlacement, ClickToFocus
Style "xconsole"    Icon rterm.xpm, WindowListSkip, Sticky

######################## Initialization Functions
############################
AddToFunc StartFunction
#+            "I" exec /usr/local/bin/feh --randomize --bg-fill
$HOME/Pictures/*

AddToFunc InitFunction       "I" Module FvwmPager 0 0
+            "I" exec /usr/local/bin/conky
+            "I" exec /usr/X11R6/bin/xcompmgr

AddToFunc RestartFunction "I" Module FvwmPager 0 0
#+              "I" exec /usr/X11R6/bin/xsetroot -solid black

######################## Functions ##########################

AddToFunc Move-or-Raise        "I" Raise
+                "M" Move
+                  "D" Lower

AddToFunc Maximize-Func        "M" Maximize     0 98
+                "C" Maximize     0 98
+                "D" Maximize     100 98

AddToFunc Move-or-Iconify    "I" Raise
+                "M" Move
+                "D" Iconify

AddToFunc Resize-or-Raise    "I" Raise
+                "M" Resize
+                "D" Lower

AddToFunc Iconify-and-Raise     "I" Iconify
+                               "I" Raise

AddToFunc FocusAndWarp "I" Focus
+                      "I" WarpToWindow 2p 2p

AddToFunc DeiconifyFocusAndWarp "I" Iconify -1
+                               "I" FocusAndWarp

AddToFunc ChangeDefaultFocus "I" Style "*" $0
+                            "I" Recapture

AddToFunc LeftSnap "I"    Maximize 50 97
+           "I"    Move    0    0
+           "I"  Focus

AddToFunc RightSnap "I" Maximize 50  97
+            "I"    Move    50    0
+            "I" Focus

AddToFunc    MuevePagina    "I"    MoveToPage $0 $1
+                "I"    GotoPage   $0 $1

######################## Menus ###################
AddToMenu RootMenu    "Root Menu"    Title
+            "XTerm%mini.xterm.xpm%"        Exec exec xterm
+            ""        Nop
#+            "Remote Logins"    Popup Remote-Logins
#+            ""        Nop
+                       "Utilities"     Popup Utilities
+            ""        Nop
+            "Fvwm Modules"              Popup Module-Popup
+                       "Fvwm Window Ops"         Popup Window-Ops
+                       "Fvwm Simple Config Ops"  Popup Misc-Ops
+            ""        Nop
+                       "Refresh Screen"   Refresh
+                       "Recapture Screen" Recapture
+            "(Re)Start"    Popup Quit-Verify
+            ""        Nop
+                       "Exit"  Module FvwmForm QuitVerify

AddToMenu Utilities     "Utilities" Title
+            "Top"        Exec exec xterm -T Top -n Top -e top
+            "Xterm"        Exec exec xterm
+            "Qutebrowser"    Exec exec /usr/local/bin/qutebrowser
+            "Gimp"        Exec exec gimp
+            "Firefox"    Exec exec firefox
+            "Calculator"    Exec exec xcalc
+            "Xman"        Exec exec xman
+            "Xmag"        Exec exec xmag
+                       "Editres"       Exec exec editres
+            ""        Nop
+                       "XLock%mini.xlock.xpm%"         Exec exec xlock
+            ""        Nop
#+                       "Reset X defaults" Exec xrdb -load $HOME/.Xdefaults

AddToMenu Misc-Ops "Misc Config Opts" Title
+                  "Sloppy Focus"        ChangeDefaultFocus SloppyFocus
+                  "Click To Focus"      ChangeDefaultFocus ClickToFocus
+                  "Focus Follows Mouse" ChangeDefaultFocus
FocusFollowsMouse
+                  "" Nop
+                  "Colormap Follows Mouse" ColormapFocus FollowsMouse
+                  "Colormap Follows Focus" ColormapFocus FollowsFocus
+                  "" Nop
+                  "Full Paging ON"         EdgeScroll 100 100
+                  "All Paging OFF"         EdgeScroll 0 0
+                  "Horizontal Paging Only" EdgeScroll 100 0
+                  "Vertical Paging Only"   EdgeScroll 0 100
+                  "Partial Paging"         EdgeScroll 50 50
+                  "Full Paging && Edge Wrap" EdgeScroll 100000 100000

AddToMenu Window-Ops    "Window Ops"    Title
+            "Move%mini.move.xpm%"        Move
+            "Resize%mini.resize.xpm%"    Resize
+            "Raise%mini.raise.xpm%"        Raise
+            "Lower%mini.lower.xpm%"        Lower
+             "(De)Iconify%mini.iconify.xpm%"    Iconify
+            "(Un)Stick%mini.stick2.xpm%"    Stick
+            "(Un)Maximize%mini.maximize.xpm%"    Maximize
+            ""        Nop
+            "Delete%mini.excl.xpm%"    Delete
+            "Close%mini.cut.xpm%"        Close
+            "Destroy%mini.destroy.xpm%"    Destroy
+            ""        Nop
+            "Refresh Window%mini.refresh.xpm%" RefreshWindow

AddToMenu Window-Ops2    "&Move%mini.move.xpm%"        Move
+            "&Resize%mini.resize.xpm%"    Resize
+            "R&aise%mini.raise.xpm%"    Raise
+            "&Lower%mini.lower.xpm%"    Lower
+            "(De)&Iconify%mini.iconify.xpm%"    Iconify
+            "(Un)&Stick%mini.stick2.xpm%"    Stick
+                       "(Un)Ma&ximize%mini.maximize.xpm%" Maximize
+            ""        Nop
+            "&Delete%mini.excl.xpm%"    Delete
+            "&Close%mini.cut.xpm%"    Close
+            "Destroy%mini.destroy.xpm%"    Destroy
+            ""        Nop
+            "ScrollBar"     Module FvwmScroll 2 2

# be sure to fill these in with your correct machine names:
#AddToMenu Remote-Logins    "dopey"     Exec ssh dopey rxvt -display
$HOSTDISPLAY &
#+            "grumpy" Exec ssh grumpy rxvt -display $HOSTDISPLAY &

AddToMenu Module-Popup    "FvwmModules"    Title
+            "Identify"    Module    FvwmIdent
+            "Talk"      Module    FvwmTalk
+            ""        Nop
+            "Button-Bar"    Module    FvwmButtons
+            "Pager"        Module  FvwmPager 0 0
+            "Pager (2 desks)" Module  FvwmPager 0 1
+            "WinList"    Module  FvwmWinList
+            ""        Nop
+            "Banner"    Module    FvwmBanner
+                       "ScrollBar"     Module  FvwmScroll 50 50
+            "Background"    Module  FvwmBacker
+                       "AutoRaise"     Module  FvwmAuto 200 Raise Nop
+                       "Stop AutoRaise" KillModule FvwmAuto
+            ""        Nop
+            "IconBox"    Module    FvwmIconBox
+                       "IconMan"       Module  FvwmIconMan
+            ""        Nop
+                       "Form - MyFvwmTalk"  Module FvwmForm MyFvwmTalk
+                       "Form - QuitVerify"  Module FvwmForm QuitVerify

AddToMenu Quit-Verify
+                  "Restart Fvwm%mini.refresh.xpm%"        Restart fvwm
+                  ""            Nop
+                        "Start cwm"         Restart cwm
+                  "Start twm"         Restart twm
+                  ""            Nop
#+                  "Start dummy%mini.xterm.xpm%"       Restart xterm
+                  ""            Nop
+                  "No, Don't Quit"    Nop

################## FvwmButtons button-bar ################################
*FvwmButtonsBack bisque3
*FvwmButtons(Frame 2 Padding 2 2 Container(Rows 2 Frame 1 Padding 10 0 \
                                           Swallow(Respawn)))
*FvwmButtons(NoSize Title Close, Icon bomb.xpm, Action Close)
*FvwmButtons(Title Resize Icon mini.resize.xpm Back bisque4 Action Resize)
#*FvwmButtons(Frame -3 Swallow(Respawn,NoHints) xclock \
       `Exec exec xclock -bg darkolivegreen -padding 0 -geometry +2000+0`)
*FvwmButtons(3x1 Back darkolivegreen Fore white Frame 2 Padding 2 2 \
                 Container(Rows 1 Frame -2 Padding 1 1 Back darkolivegreen))
*FvwmButtons(Frame 2 Title(Side,Right) Mail Fore white \
         Swallow(UseOld,NoRespawn)\
         xbiff `Exec exec xbiff -bg darkolivegreen -geometry +200+200`)
*FvwmButtons(2x1 Swallow (NoHints) "FvwmTalk" "FvwmTalk")
*FvwmButtons(End)
*FvwmButtons(End)

########################## Window-Identifier ###############################
# Just choose colors and a fonts
*FvwmIdentBack MidnightBlue
*FvwmIdentFore Yellow
*FvwmIdentFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*

########################### Pager #########################################
*FvwmPagerFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*FvwmPagerBack darkblue
*FvwmPagerFore white
*FvwmPagerHilight #2d2d2d
*FvwmPagerGeometry 80x60-5-25 #80x60-1-1
*FvwmPagerLabel 0 "OpenBSD 6.4"
*FvwmPagerLabel 1 Maker
*FvwmPagerLabel 2 Mail
*FvwmPagerLabel 3 Matlab
*FvwmPagerSmallFont 5x8

##########################FvwmWinList##################################
*FvwmWinListBack #909090
*FvwmWinListFore Black
*FvwmWinListFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*FvwmWinListAction Click1 Iconify -1,Focus
*FvwmWinListAction Click2 Iconify
*FvwmWinListAction Click3 Module "FvwmIdent" FvwmIdent
*FvwmWinListAction SelectOnRelease Meta_L
*FvwmWinListUseSkipList
*FvwmWinListGeometry +0-1


*FvwmBackerDesk 0 -solid steelblue
*FvwmBackerDesk 1 -solid midnightblue

*FvwmScrollBack grey40
*FvwmScrollFore green

############################################################
############################################################
# Note that icons are shown in the module
#    only if NoIcon commnand is applied.
#Style     "*"  NoIcon
############################################################
*FvwmIconBoxIconBack    #cfcfcf
*FvwmIconBoxIconHiFore  black
*FvwmIconBoxIconHiBack  LightSkyBlue
*FvwmIconBoxBack        #5f9ea0
#*FvwmIconBoxFore       blue
*FvwmIconBoxGeometry    5x1+0+0
*FvwmIconBoxMaxIconSize 64x38
*FvwmIconBoxFont        -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
*FvwmIconBoxSortIcons   IconName
*FvwmIconBoxPadding     4
*FvwmIconBoxLines       10
*FvwmIconBoxSBWidth     11
*FvwmIconBoxPlacement   Right Top
*FvwmIconBoxPixmap      fvwm.xpm
#*FvwmIconBoxHideSC Horizontal
*FvwmIconBoxSetWMIconSize
*FvwmIconBoxHilightFocusWin
#*FvwmIconBoxResolution          Desk
*FvwmIconBoxMouse       1       Click           RaiseLower
*FvwmIconBoxMouse       1       DoubleClick     Iconify
*FvwmIconBoxMouse       2       Click           Iconify -1, Focus
*FvwmIconBoxMouse       3       Click           Module FvwmIdent
*FvwmIconBoxKey         r       RaiseLower
*FvwmIconBoxKey         space   Iconify
*FvwmIconBoxKey         d       Close
*FvwmIconBoxKey         n       Next
*FvwmIconBoxKey         p       Prev
*FvwmIconBoxKey         h       Left
*FvwmIconBoxKey         j       Down
*FvwmIconBoxKey         k       Up
*FvwmIconBoxKey         l       Right
#
# Icon file specifications
#
# Mostly, you don't have to specify icon files, as FvwmIconBox now
# reads icon files specified in Style commands.
#
*FvwmIconBox            "Fvwm*"         -

# FvwmForm alias - query exit ala mwm
*QuitVerifyGrabServer
*QuitVerifyWarpPointer
*QuitVerifyFont          *helvetica*m*r*n*14*
#*QuitVerifyButtonFont    *helvetica*m*o*n*14*
*QuitVerifyButtonFont    7x13bold
*QuitVerifyFore          Black
*QuitVerifyBack          Light Gray
*QuitVerifyItemFore Wheat
*QuitVerifyItemBack Gray50
# begin items
*QuitVerifyLine          center
*QuitVerifyText          "Do you really want to exit FVWM?"
*QuitVerifyLine          expand
*QuitVerifyButton   quit      " Exit "
*QuitVerifyCommand  Quit
*QuitVerifyButton   quit      "Cancel"
*QuitVerifyCommand  Nop

# MyTalk & MyFvwmTalk from Dave Goldberg
# MyTalk Form - dissappears after use
*MyTalkWarpPointer
*MyTalkFont *helvetica*m*r*n*14*
*MyTalkButtonFont *helvetica*m*o*n*14*
*MyTalkInputFont *cour*m*r*n*14*
*MyTalkFore Red
*MyTalkBack Gray
*MyTalkItemFore Blue
*MyTalkItemBack Gray
*MyTalkLine center
*MyTalkText "Fvwm Function"
*MyTalkInput Func 40 ""
*MyTalkLine expand
*MyTalkButton quit "Run" ^M
*MyTalkCommand $(Func)
*MyTalkButton restart "Clear" ^R
*MyTalkButton quit "Cancel" ^C
*MyTalkCommand Nop
# MyFvwmTalk Form - sticks around
*MyFvwmTalkWarpPointer
*MyFvwmTalkFont *helvetica*m*r*n*14*
*MyFvwmTalkButtonFont *helvetica*m*o*n*14*
*MyFvwmTalkInputFont *cour*m*r*n*14*
*MyFvwmTalkFore Red
*MyFvwmTalkBack Gray
*MyFvwmTalkItemFore Blue
*MyFvwmTalkItemBack Gray
*MyFvwmTalkLine center
*MyFvwmTalkText "Fvwm Function"
*MyFvwmTalkInput Func 40 ""
*MyFvwmTalkLine expand
*MyFvwmTalkButton restart "Run" ^M
*MyFvwmTalkCommand $(Func)
*MyFvwmTalkButton restart "Clear" ^R
*MyFvwmTalkCommand Nop
*MyFvwmTalkButton restart "Iconify" ^Z
*MyFvwmTalkCommand Next [MyFvwmTalk] Iconify
*MyFvwmTalkButton quit "Quit" ^C
*MyFvwmTalkCommand Nop

# to change banner pixmap
#*FvwmBannerPixmap fvwm3.xpm
#*FvwmBannerTimeout 2

Reply via email to