################################## # ____________________________ # ( _________________________) # ) (__ _ _ _ _ # ( __)( \/ )( \/\/ )/\/\ # ) ( \ / \ // \ # (___) \/ \/\/(_/\/\_) 2.6 # # # This is the default configuration file shipped with fvwm. # # This config file is organized as follows: # # 1: Functions # 2: Styles # 3: Colorsets # 4: Menus # 5: Bindings # 6: Decor # 7: Modules # ################################# # InfoStoreAdd can be used to store variable data internal to fvwm. # The variable can then be used in the configuration as $[infostore.name]. # # You can also use environment variables but for data internal to fvwm # use InfoStore variables instead. # # The following is used in various menus and also sets the terminal # that FvwmConsole uses. Change this to your terminal of choice InfoStoreAdd terminal st InfoStoreAdd altterminal urxvtc ImagePath +:$[FVWM_USERDIR]/icon/PixelFengShui ImagePath +:$[FVWM_USERDIR]/icon/PixelFengShui/24 ImagePath +:$[FVWM_USERDIR]/icon/Yoritsuki ImagePath +:$[FVWM_USERDIR]/icon/Yoritsuki/24 ImagePath +:$[FVWM_USERDIR]/icon/pixmap # read .sidebar.fvwm2rc Read horizontal.sys SetEnv fvwmscript $[HOME]/.fvwm/fvwmscript/ SetEnv themedir $[HOME]/.fvwm/themes/ ########### # 1: Functions # # Fvwm can use custom functions for various tasks. # The syntax for defining a function named FunctionName is: # # DestroyFunc FunctionName # AddToFunc FunctionName # + I [Action to do Immediately] # + C [Action to do on a Mouse Click] # + D [Action to do on a Mouse Double Click] # + H [Action to do on a Mouse Hold] # + M [Action to do on a Mouse Motion] ########### # Start Function # # The start function is run right after fvwm is done reading # the config file. This function run after each restart # so using Test (Init) or Test (Restart) can further control # actions that are run during the first time run (Init) or # actions that are run after a restart. DestroyFunc StartFunction AddToFunc StartFunction + I Test (Init) Module FvwmBanner + I Module FvwmScript fvwmscript/org-clock + I Module FvwmButtons HorizontalPanel + I Module FvwmEvent EventNewDesk # Mouse Bindings Functions DestroyFunc RaiseMoveX AddToFunc RaiseMoveX + I Raise + M $0 + D $1 DestroyFunc RaiseMove AddToFunc RaiseMove + I Raise + M $0 DestroyFunc MoveToCurrent AddToFunc MoveToCurrent + I ThisWindow MoveToPage + I ThisWindow MoveToDesk # Function: ViewManPage $0 # # This function loads the man page $0 in an terminal # and is used with the help menu. DestroyFunc ViewManPage AddToFunc ViewManPage + I Exec exec $[infostore.terminal] -g 80x40 \ -n "Manual Page - $0" -T "Manual Page - $0" -e man "$0" # Function: SetBG $0 # # SetBG is used with the background menu to set the background # image and configure it to be loaded the next time fvwm is run. # Note, fvwm-root can't use .jpeg or resize images. Use something # like display, feh, etc. DestroyFunc SetBG AddToFunc SetBG + I Test (f $[FVWM_USERDIR]/images/background/$0) \ Exec exec fvwm2-root $[FVWM_USERDIR]/images/background/$0 + I TestRc (Match) Exec exec ln -fs images/background/$0 \ $[FVWM_USERDIR]/.BGdefault + I TestRc (Match) Break + I Test (!f $[FVWM_DATADIR]/default-config/images/background/$0) Break + I Exec exec fvwm2-root $[FVWM_DATADIR]/default-config/images/background/$0 + I Exec exec ln -fs $[FVWM_DATADIR]/default-config/images/background/$0 \ $[FVWM_USERDIR]/.BGdefault # Function: IconManClick # # This function is run from FvwmIconMan when the button is clicked. DestroyFunc IconManClick AddToFunc IconManClick + I ThisWindow (Raised, !Shaded, !Iconic, CurrentPage) Iconify + I TestRc (Match) Break + I ThisWindow WindowShade off + I ThisWindow Iconify off + I ThisWindow Raise + I ThisWindow (AcceptsFocus) FlipFocus # Function: ToggleTitle # # This function will toggle if fvwm shows the TitleBar. DestroyFunc ToggleTitle AddToFunc ToggleTitle + I ThisWindow (State 1) WindowStyle Title + I TestRc (Match) State 1 False + I TestRc (Match) Break + I WindowStyle !Title + I State 1 True # Function: ChangeDesk # # This function is called by FvwmEvent every time the Desk is changed. DestroyFunc ChangeDesk AddToFunc ChangeDesk + I SendToModule FvwmButtons ChangeButton desk0 Colorset 10 + I SendToModule FvwmButtons ChangeButton desk1 Colorset 10 + I SendToModule FvwmButtons ChangeButton desk2 Colorset 10 + I SendToModule FvwmButtons ChangeButton desk3 Colorset 10 + I SendToModule FvwmButtons ChangeButton desk$0 Colorset 11 # Function used for tiling/un-tiling windows. estroyFunc TileLeft AddToFunc TileLeft + I ThisWindow (!Shaded, !Iconic) Maximize 50 100 + I ThisWindow (Maximized, !Shaded, !Iconic) Move +0 +0 DestroyFunc TileRight AddToFunc TileRight + I ThisWindow (!Shaded, !Iconic) Maximize 50 100 + I ThisWindow (Maximized, !Shaded, !Iconic) Move -0 +0 DestroyFunc TileTop AddToFunc TileTop + I ThisWindow (!Shaded, !Iconic) Maximize 100 50 + I ThisWindow (Maximized, !Shaded, !Iconic) Move +0 +0 DestroyFunc TileBottom AddToFunc TileBottom + I ThisWindow (!Shaded, !Iconic) Maximize 100 50 + I ThisWindow (Maximized, !Shaded, !Iconic) Move +0 -0 DestroyFunc TileTopLeft AddToFunc TileTopLeft + I ThisWindow (!Shaded, !Iconic) Maximize 50 50 + I ThisWindow (Maximized, !Shaded, !Iconic) Move +0 +0 DestroyFunc TileTopRight AddToFunc TileTopRight + I ThisWindow (!Shaded, !Iconic) Maximize 50 50 + I ThisWindow (Maximized, !Shaded, !Iconic) Move -0 +0 DestroyFunc TileBottomLeft AddToFunc TileBottomLeft + I ThisWindow (!Shaded, !Iconic) Maximize 50 50 + I ThisWindow (Maximized, !Shaded, !Iconic) Move +0 -0 DestroyFunc TileBottomRight AddToFunc TileBottomRight + I ThisWindow (!Shaded, !Iconic) Maximize 50 50 + I ThisWindow (Maximized, !Shaded, !Iconic) Move -0 -0 DestroyFunc ChangeTheme AddToFunc ChangeTheme + I Read $[themedir]/$0.sys + I Exec exec xrdb -merge ~/.Xresources.d/Xresources.$1 + I Exec exec emacsclient -e "(bard/select-theme '$2)" # To change the theme, you can call the function like this: # ChangeTheme theme_name Xresources_file_name # For example: # ChangeTheme "dark_theme" "dark_theme.Xresources" ############# # 2: Styles # ############# # Desktops and Pages # # Fvwm has both Virtual Desktops and Pages. Each Desktop is built from # a grid of Pages. The following sets the name of four Desktops and then # divides each Desktop into a 2x2 grid of Pages that are positioned as # # +---+---+ # | | | # +---+---+ # | | | # +---+---+ # DesktopName 0 Main DesktopName 1 Desk1 DesktopName 2 Desk2 DesktopName 3 Desk3 DesktopSize 4x1 # EdgeScroll will move the view port between the Pages when the mouse # moves to the edge of the screen. This set the amount of distance to # scroll at 100% (full page) and the EdgeResistance which is a timer # for how long the mouse as at the edge before it scrolls. # # Set EdgeScroll 0 0 and/or EdgeResistance -1 to disable. EdgeScroll 100 100 EdgeResistance 300 EdgeThickness 1 Style * EdgeMoveDelay 350, EdgeMoveResistance 350 # EwmhBaseStruts [left] [right] [top] [bottom] # Reserves space along the edge(s) of the Screen that will not # be covered when maximizing or placing windows. # no gaps EwmhBaseStruts screen $[monitor.0.name] 0 0 30 0 EwmhBaseStruts screen $[monitor.1.name] 0 0 0 0 # with gaps # EwmhBaseStruts screen $[monitor.0.name] 20 20 50 20 # EwmhBaseStruts screen $[monitor.1.name] 20 20 20 20 # This sets the ClickTime and MoveThreshold used to determine # Double Clicks, Hold and Move for the mouse. ClickTime 250 MoveThreshold 3 # Sets the focus style to SloppyFocus and a mouse click # in a window will Raise it. Style * SloppyFocus, MouseFocusClickRaises # Default Font DefaultFont "xft:Iosevka Comfy:size=14:antialias=True" # Window Placement Style * MinOverlapPlacement, GrabFocusOff, !UsePPosition # Sets all windows to OpaqueMove (vs a wired frame) and windows will # snap to each other and the edge of the screen. OpaqueMoveSize unlimited Style * ResizeOpaque, SnapAttraction 15 SameType ScreenAll, SnapGrid # Transient Windows (such as open file windows) Style * DecorateTransient, StackTransientParent Style * !FPGrabFocusTransient, FPReleaseFocusTransient # WindowShade Style * WindowShadeScrolls, WindowShadeSteps 10 # Ignore Numlock and other modifiers for bindings # See http://fvwm.org/documentation/faq/#why-do-numlock-capslock-and-scrolllock-interfere-with-clicktofocus-andor-my-mouse-bindings IgnoreModifiers L25 # Decor Styles Style * BorderWidth 5, HandleWidth 5, MWMButtons, FvwmBorder, FirmBorder Style * Colorset 1, HilightColorset 2 Style * BorderColorset 3, HilightBorderColorset 4 # Disable Icons from appearing on desktop. # Comment this out or use Style * Icon to get the icons back. Style * Icon # Style * IconBox 990x150-20-10, IconGrid 234 134, IconFill right bottom Style * IconBox 64x1080-0+40 # Style * IconBox 64x1080-0+0 # Window Specific Styles Style HorizontalPanel !Title, !Borders, !Handles, Sticky, \ WindowListSkip, NeverFocus, FixedPosition Style conky !Title, !Borders, !Handles, Sticky, \ WindowListSkip, NeverFocus Style ConfirmQuit !Title, PositionPlacement Center, WindowListSkip, Layer 6 Style ConfirmOff !Title, PositionPlacement Center, WindowListSkip, Layer 6 Style FvwmIdent WindowListSkip Style st MiniIcon teacup.png, Icon teacup-big.png, EWMHMiniIconOverride, FPGrabFocus Style urxvt MiniIcon teacup.png, Icon teacup-big.png, EWMHMiniIconOverride, FPGrabFocus Style firefox MiniIcon "Chouchin Reinensai-24x24.png", Icon "Chouchin Reinensai.png", EWMHMiniIconOverride, IconOverride Style LibreWolf MiniIcon "Chouchin Kuroshiro-24x24.png", Icon "Chouchin Kuroshiro.png", EWMHMiniIconOverride, IconOverride Style emacs MiniIcon Shodou-24x24.png, IconOverride, Icon Shodou.png, EWMHMiniIconOverride Style Pcmanfm MiniIcon Bonsai-24x24.png, IconOverride, Icon Bonsai.png, EWMHMiniIconOverride Style "Org-Clock" Sticky, !Title, !Handles, NoClose, PositionPlacement 50-50w -0, WindowListSkip, NeverFocus, FixedPosition, StaysOnBottom Style sowon MiniIcon "Furoisu (bath chair)-24x24.png", Icon "Furoisu (bath chair).png", EWMHMiniIconOverride, IconOverride Style * Font "xft:Iosevka Comfy:Thin:size=14:antialias=True", FPGrabFocus ## Program styles # Style "*EMMS Playlist*" MiniIcon Shamisen-24x24.png, IconOverride, Icon Shamisen.png, EWMHMiniIconOverride, FPGrabFocus # Style "*tmr-tabulated-view*" MiniIcon "Furoisu (bath chair)-24x24.png", IconOverride, "Icon Furoisu (bath chair).png", EWMHMiniIconOverride, FPGrabFocus # Style *notmuch* MiniIcon "Kinchaku (drawstring bag)-24x24.png", IconOverride, Icon "Kinchaku (drawstring bag).png", EWMHMiniIconOverride, FPGrabFocus # Style "*elfeed-search*" MiniIcon "Shichirin (charcoal brazier)-24x24.png", IconOverride, Icon "Shichirin (charcoal brazier).png", EWMHMiniIconOverride, FPGrabFocus # Style "*Org Agenda*" MiniIcon "Kakejiku-24x24.png", IconOverride, Icon "Kakejiku.png", EWMHMiniIconOverride, FPGrabFocus ####### # 3: Colorsets # # Colorsets can be used to configure the color of the various # parts of fvwm such as window decor, menus, modules, etc. # # Colorset Convention # # 0 - Default # 1 - Inactive Windows # 2 - Active Window # 3 - Inactive Windows Borders # 4 - Active Windows Borders # 5 - Menu - Inactive Item # 6 - Menu - Active Item # 7 - Menu - Grayed Item # 8 - Menu - Title # 9 - Reserved # 10+ Modules # 10 - Module Default # 11 - Module Hilight # 12 - Module ActiveButton (Mouse Hover) # 13 - FvwmPager Active Page # 14 - FvwmIconMan Iconified Button ########### Read $[themedir]/modus-vivendi.sys ####### # 4: Menus ########### MenuStyle * MenuColorset 5, ActiveColorset 6, GreyedColorset 7, TitleColorset 8 MenuStyle * Hilight3DOff, HilightBack, HilightTitleBack, SeparatorsLong MenuStyle * TrianglesSolid MenuStyle * ActiveFore, !Animation, PopupOffset -5 100 # MenuStyle * ItemFormat "%|%3.1i%5.3l%5.3>%|" MenuStyle * Font "xft:Iosevka Comfy:Thin:size=14:antialias=True" # Root Menu # # The root menu will PopUp with a click in the root # window or using alt-f1 (or menu). DestroyMenu MenuFvwmRoot AddToMenu MenuFvwmRoot "Fvwm Menu" Title # + "&Programs%Chouchin Shinku-24x24.png%" Popup xdgmenu + "&Programs%Chouchin Shinku-24x24.png%" Popup MenuPrograms + "&Accessories%Chabitsu (tea box)-24x24.png%" Popup MenuAccessories + "" Nop + "&Settings%Yagura1 (hot spring tower)-24x24.png%" Popup MenuSettings + "Fvwm&Ident%Tourist guidebook-24x24.png%" Module FvwmIdent + "&Wallpapers%Folder2-24x24.png%" Popup MenuWallpaper + "&Color Themes%Gunsen-24x24.png%" Popup MenuThemes + "" Nop + "&Power%Futon (bed)-24x24.png%" Popup MenuPower # Programs Menu # # This test for some common programs and adds them to the menu. # When adding programs you don't need to use the Test (x foo) # lines as this is only to help make this menu portable. DestroyMenu MenuPrograms AddToMenu MenuPrograms "Programs" Title Test (x emacs) + "&Emacs%Shodou-24x24.png%" Exec exec emacsclient -c -a 'emacs' Test (x firefox) + "&Firefox%Chouchin Reinensai-24x24.png%" Exec exec firefox Test (x firefox-bin) + "&Firefox%Chouchin Reinensai-24x24.png%" Exec exec firefox-bin Test (x librewolf) + "Libre&wolf%Chouchin Kuroshiro-24x24.png%" Exec exec librewolf Test (x librewolf-bin) + "Libre&wolf%Chouchin Kuroshiro-24x24.png%" Exec exec librewolf-bin Test (x pcmanfm) + "&Files%Bonsai-24x24.png%" Exec exec pcmanfm Test (x st) + "&Terminal%Yunomi (tea cup)-24x24.png%" Exec exec $[infostore.terminal] Test (x flatpak) + "&Flatpak%yukata-24x24.png%" Exec exec launch-flatpak DestroyMenu MenuAccessories AddToMenu MenuAccessories "Accessories" Title Test (x emacs) + "&Agenda%Kakejiku-24x24.png%" Exec exec emacsclient -c -e '(bard/default-agenda)' Test (x emacs) + "&Calendar%Kanban (sign)-24x24.png%" Exec exec emacsclient -c -e '(bard/open-calendar)' Test (x emacs) + "&Email%Kinchaku (drawstring bag)-24x24.png%" Exec exec emacsclient -c -e '(notmuch-hello)' Test (x emacs) + "&Music%Shamisen-24x24.png%" Exec exec emacsclient -c -e '(emms)' Test (x emacs) + "&RSS%Shichirin (charcoal brazier)-24x24.png%" Exec exec emacsclient -c -e '(elfeed)' DestroyMenu MenuWallpaper AddToMenu MenuWallpaper "Wallpaper" Title + "Choose wallpaper" Exec exec $HOME/.local/bin/scripts/wallpaper.sh + "Themed wallpaper" Exec exec $HOME/.local/bin/scripts/load-theme-wallpaper + "Repaint wallpaper" Exec exec $HOME/.cache/wallpaper DestroyMenu MenuThemes AddToMenu MenuThemes "Themes" Title + "Modus &Vivendi" ChangeTheme 'modus-vivendi' 'vivendi' "modus-vivendi" + "Vivendi &Tritanopia" ChangeTheme 'vivendi-tritanopia' 'vivendi-tritanopia' "modus-vivendi-tritanopia" + "Vivendi &Tinted" ChangeTheme 'vivendi-tinted' 'vivendi-tinted' "modus-vivendi-tinted" + "Modus Operandi &Tinted" ChangeTheme 'operandi-tinted' 'operandi-tinted' "modus-operandi-tinted" + "Modus &Operandi" ChangeTheme 'modus-operandi' 'operandi' "modus-operandi" + "Ef &Autumn" ChangeTheme 'ef-autumn' 'autumn' "ef-autumn" + "Ef &Winter" ChangeTheme 'ef-winter' 'winter' "ef-winter" + "Ef &Frost" ChangeTheme 'ef-frost' 'frost' "ef-frost" + "Ef &Elea Light" ChangeTheme 'ef-elea-light' 'elea-light' "ef-elea-light" + "Ef &Elea Dark" ChangeTheme 'ef-elea-dark' 'elea-dark' "ef-elea-dark" + "Ef &Cyprus" ChangeTheme 'ef-cyprus' 'cyprus' "ef-cyprus" + "Ef &Night" ChangeTheme 'ef-night' 'night' "ef-night" + "Ef &Trianopia Dark" ChangeTheme 'tritanopia-dark' 'tritanopia-dark' "ef-tritanopia-dark" + "Ef &Duo Dark" ChangeTheme 'ef-duo-dark' 'duo-dark' "ef-duo-dark" + "Ef &Day" ChangeTheme 'ef-day' 'day' "ef-day" + "Ef &Eagle" ChangeTheme 'ef-eagle' 'eagle' "ef-eagle" + "Ef &Owl" ChangeTheme 'ef-owl' 'owl' "ef-owl" + "Ef &Dream" ChangeTheme 'ef-dream' 'dream' "ef-dream" + "Ef &Reverie" ChangeTheme 'ef-reverie' 'reverie' "ef-reverie" + "Ef &Maris Dark" ChangeTheme 'ef-maris-dark' 'maris-dark' "ef-maris-dark" + "Ef &Maris Light" ChangeTheme 'ef-maris-light' 'maris-light' "ef-maris-light" + "Ef &Cherie" ChangeTheme 'ef-cherie' 'cherie' "ef-cherie" + "Ef &Rosa" ChangeTheme 'ef-rosa' 'rosa' "ef-rosa" + "Ef &Bio" ChangeTheme 'ef-bio' 'bio' "ef-bio" + "Ef &Spring" ChangeTheme 'ef-spring' 'spring' "ef-spring" + "Ef Kassi&o" ChangeTheme 'ef-kassio' 'kassio' "ef-kassio" + "Ef &Symbiosis" ChangeTheme 'ef-symbiosis' 'symbiosis' "ef-symbiosis" + "Ef &Trio Dark" ChangeTheme 'ef-trio-dark' 'trio-dark' "ef-trio-dark" + "Ef &Melissa Dark" ChangeTheme 'ef-melissa-dark' 'melissa-dark' "ef-melissa-dark" + "Ef &Melissa Light" ChangeTheme 'ef-melissa-light' 'melissa-light' "ef-melissa-light" + "Ef &Arbutus" ChangeTheme 'ef-arbutus' 'arbutus' "ef-arbutus" + "&Gruvbox" ChangeTheme 'gruvbox' 'gruvbox' "gruvbox-dark-medium" + "&Dwm" ChangeTheme 'dwm' 'gruvbox' "gruvbox-dark-medium" + "" ChangeTheme 'vivendi' 'vivendi' "modus-vivendi" DestroyMenu MenuPower AddToMenu MenuPower "Power" Title + "&Restart" Restart + "&Lock" Exec exec slock + "&Quit" Module FvwmScript fvwmscript/FvwmScript-ConfirmQuit DestroyMenu MenuSettings AddToMenu MenuSettings "Settings" Title Test (x alsamixer) + "&Network" Exec exec st -e nmtui Test (x nmtui) + "&Audio" Exec exec st -e alsamixer Test (x arandr) + "&Display" Exec exec arandr Test (x btop) + "&System" Exec exec st -e btop Test (x blueman-manager) + "&Bluetooth" Exec exec blueman-manager # Background Menu # # Backgrounds are located in ~/.fvwm/images/background/ # Menu icons are located in ~/.fvwm/images/bgicons/ DestroyMenu BGMenu AddToMenu BGMenu "Wallpapers" Title # Window Operations Menus DestroyMenu MenuWindowOps AddToMenu MenuWindowOps "Window Operations" Title + "Move" Move + "Resize" Resize + "Iconify" Iconify + "Maximize" Maximize + "Shade" WindowShade + "Stick" Stick + "" Nop + "Close" Close + "More..." Menu MenuWindowOpsLong This 0 0 DestroyMenu MenuWindowOpsLong AddToMenu MenuWindowOpsLong "Window Operations" Title + "Move" Move + "Resize" Resize + "(De)Iconify" Iconify + "(Un)Maximize" Maximize + "(Un)Shade" WindowShade + "(Un)Sticky" Stick + "(No)TitleBar" Pick (CirculateHit) ToggleTitle + "Send To" Popup MenuSendTo + "" Nop + "Close" Close + "Destroy" Destroy + "" Nop + "Raise" Raise + "Lower" Lower + "" Nop + "StaysOnTop" Pick (CirculateHit) Layer 0 6 + "StaysPut" Pick (CirculateHit) Layer 0 4 + "StaysOnBottom" Pick (CirculateHit) Layer 0 2 + "" Nop + "Identify" Module FvwmIdent DestroyMenu MenuIconOps AddToMenu MenuIconOps + "(De)Iconify" Iconify + "(Un)Maximize" Maximize + "(Un)Shade" WindowShade + "(Un)Sticky" Stick + "(No)TitleBar" Pick (CirculateHit) ToggleTitle + "Send To" Popup MenuSendTo + "" Nop + "Close" Close + "Destroy" Destroy + "" Nop + "Raise" Raise + "Lower" Lower + "" Nop + "StaysOnTop" Pick (CirculateHit) Layer 0 6 + "StaysPut" Pick (CirculateHit) Layer 0 4 + "StaysOnBottom" Pick (CirculateHit) Layer 0 2 + "" Nop + "Identify" Module FvwmIdent DestroyMenu MenuSendTo AddToMenu MenuSendTo + "Current" MoveToCurrent + "Page" PopUp MenuSendToPage + "Desk" PopUp MenuSendToDesk DestroyMenu MenuSendToDesk AddToMenu MenuSendToDesk + "Desk 0" MoveToDesk 0 0 + "Desk 1" MoveToDesk 0 1 + "Desk 2" MoveToDesk 0 2 + "Desk 3" MoveToDesk 0 3 DestroyMenu MenuSendToPage AddToMenu MenuSendToPage + "Page (0,0)" MoveToPage 0 0 + "Page (0,1)" MoveToPage 0 1 + "Page (1,0)" MoveToPage 1 0 + "Page (1,1)" MoveToPage 1 1 # Fvwm Man Pages (Help) Menu DestroyMenu MenuFvwmManPages AddToMenu MenuFvwmManPages "Help" Title + "fvwm2" ViewManPage fvwm2 + "FvwmAnimate" ViewManPage Fvwm2Animate + "FvwmAuto" ViewManPage Fvwm2Auto + "FvwmBacker" ViewManPage Fvwm2Backer + "FvwmBanner" ViewManPage Fvwm2Banner + "FvwmButtons" ViewManPage Fvwm2Buttons + "FvwmCommand" ViewManPage Fvwm2Command + "FvwmConsole" ViewManPage Fvwm2Console + "FvwmEvent" ViewManPage Fvwm2Event + "FvwmForm" ViewManPage Fvwm2Form + "FvwmIconMan" ViewManPage Fvwm2IconMan + "FvwmIdent" ViewManPage Fvwm2Ident + "FvwmPager" ViewManPage Fvwm2Pager + "FvwmPerl" ViewManPage Fvwm2Perl + "FvwmProxy" ViewManPage Fvwm2Proxy + "FvwmRearrange" ViewManPage Fvwm2Rearrange + "FvwmScript" ViewManPage Fvwm2Script + "" Nop + "fvwm2-root" ViewManPage fvwm2-root + "fvwm2-menu-desktop" ViewManPage fvwm2-menu-desktop + "fvwm2-menu-directory" ViewManPage fvwm2-menu-directory + "fvwm2-menu-headlines" ViewManPage fvwm2-menu-headlines + "fvwm2-menu-xlock" ViewManPage fvwm2-menu-xlock + "fvwm2-config" ViewManPage fvwm2-config ####### # 5: 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 # Mouse #################### # Alt-F1 or Menu to load the root menu and Alt-Tab for a WindowList. # Ctrl-F1/F2/F3/F4 will switch between the Virtual Desktops. # Super_R (windows key) will launch a terminal. # # Silent supresses any errors (such as keyboards with no Menu key). CursorStyle ROOT left_ptr CursorStyle TITLE left_ptr CursorStyle DEFAULT left_ptr CursorStyle SYS left_ptr CursorStyle MENU left_ptr CursorStyle WAIT left_ptr Silent Key F1 A M Menu MenuFvwmRoot Silent Key Space A 4 Menu MenuFvwmRoot Silent Key Space A 4S Menu MenuWindowOpsLong Silent Key Tab A M WindowList Root c c NoSticky, NoGeometry, NoDeskSort, CurrentAtEnd, SelectOnRelease Meta_L Silent Key F1 A 4 GotoDesk 0 0 Silent Key F2 A 4 GotoDesk 0 1 Silent Key F3 A 4 GotoDesk 0 2 Silent Key F4 A 4 GotoDesk 0 3 Silent Key F1 A 4S MoveToDesk 0 0 Silent Key F2 A 4S MoveToDesk 0 1 Silent Key F3 A 4S MoveToDesk 0 2 Silent Key F4 A 4S MoveToDesk 0 3 Silent Key 1 A 4 GotoPage 0 0 Silent Key 2 A 4 GotoPage 1 0 Silent Key 3 A 4 GotoPage 2 0 Silent Key 4 A 4 GotoPage 3 0 Silent Key 1 A 4S MoveToPage 0 0 Silent Key 2 A 4S MoveToPage 1 0 Silent Key 3 A 4S MoveToPage 2 0 Silent Key 4 A 4S MoveToPage 3 0 DestroyMenu MenuSendToPage AddToMenu MenuSendToPage + "Page (0,0)" MoveToPage 0 0 + "Page (1,0)" MoveToPage 1 0 + "Page (2,0)" MoveToPage 2 0 + "Page (3,0)" MoveToPage 3 0 # page scrolling custom Mouse 9 R 4 Scroll 0 -100p Mouse 8 R 4 Scroll 0 100p Mouse 9 A 4 Scroll 0 -100p Mouse 8 A 4 Scroll 0 100p #### Programs Keybinding # Silent Key Return A 4 Exec exec $[infostore.terminal] -g 80x32 Silent Key Return A 4 Exec exec $[infostore.terminal] Silent Key Return A 4C Exec exec $[infostore.altterminal] Silent Key Return A 4S Exec exec emacsclient -c -e '(bard/open-terminal-in-current-directory)' Silent Key Backslash A 4 Exec exec $[infostore.terminal] -e bc -l Silent Key E A 4 Exec exec emacs Silent Key N A 4 exec emacsclient -c Silent Key D A 4 Exec exec dmenu_run -c -l 15 # restart Silent Key R A 4S Restart # browser Silent Key W A 4 Exec exec librewolf-bin Silent Key W A 4S Exec exec firefox-bin #### Media keybinds Silent Key P A 4 Exec exec st -e alsamixer Silent Key XF86AudioMute A A Exec exec pactl set-sink-mute @DEFAULT_SINK@ toggle Silent Key XF86AudioRaiseVolume A A Exec exec pactl set-sink-volume @DEFAULT_SINK@ +10% Silent Key XF86AudioLowerVolume A A Exec exec pactl set-sink-volume @DEFAULT_SINK@ -10% Silent Key XF86AudioMicMute A A Exec exec pactl set-source-mute @DEFAULT_SOURCE@ toggle Silent Key XF86AudioPrev A A Exec exec playerctl prev Silent Key XF86AudioNext A A Exec exec playerctl next Silent Key XF86AudioPause A A Exec exec playerctl pause Silent Key P A 4S Exec exec playerctl pause Silent Key XF86AudioPlay A A Exec exec playerctl play ## brightness Silent Key XF86MonBrightnessUp A A Exec exec xbacklight -inc 10 Silent Key XF86MonBrightnessDown A A Exec exec xbacklight -dec 10 #### Script keybinds Silent Key B A 4 Exec exec "$HOME/.local/bin/scripts/scratch.sh" Silent Key N A 4S Exec exec "$HOME/.local/bin/scripts/emacs-launcher" Silent Key D A 4S Exec exec "$HOME/.local/bin/scripts/dired_selector" Silent Key M A 4 Exec exec emacsclient -c -e '(emms)' Silent Key C A 4 Module FvwmScript fvwmscript/org-clock # screenshot Silent Key Print A A Exec exec "$HOME/.local/bin/scripts/maimpick" # Window Buttons: [1 3 5 7 9 TTTTT 0 8 6 4 2] # 1 - Open the WindowOps menu. # 2 - Close on single click, Destroy on double click. # 4 - Maximize (right/middle button will only maximize vertical/horizontal) # 6 - Iconify (minimize) Mouse 1 1 A Menu MenuWindowOps Delete Mouse 1 2 A Close Mouse 1 4 A Maximize 100 100 Mouse 2 4 A Maximize 0 100 Mouse 3 4 A Maximize 100 0 Mouse 1 6 A Iconify # TitleBar: Click to Raise, Move, Double Click to Maximize # Mouse Wheel Up/Down to WindowShade On/Off # Borders: Click to raise, Move to Resize # Root Window: Left Click - Main Menu # Right Click - WindowOps Menu # Middle Click - Window List Menu # Right click TitleBar/Borders for WindowOps Menu Mouse 1 T A RaiseMoveX Move Maximize Mouse 1 FS A RaiseMove Resize Mouse 4 T A WindowShade True Mouse 5 T A WindowShade False Mouse 1 R A Menu MenuFvwmRoot Mouse 2 R A WindowList Mouse 3 R A Menu MenuWindowOpsLong Mouse 1 I A RaiseMoveX Move "Iconify off" Mouse 3 T A Menu MenuWindowOps Mouse 3 I A Menu MenuIconOps # delete window Silent Key Q A 4 Close # Resize window DestroyFunc F-Move-Resize AddtoFunc F-Move-Resize + I Maximize 50 50 + I WarpToWindow 50 50 + I Move + I Maximize 100 100 DestroyFunc F-Move AddtoFunc F-Move + I WarpToWindow 50 50 + I Move DestroyFunc F-Resize AddtoFunc F-Resize + I WarpToWindow 100 100 + I Resize DestroyFunc F-MoveMonRight AddtoFunc F-MoveMonRight + I MoveToScreen $[monitor.1.name] + I WarpToWindow 50 50 DestroyFunc F-MoveMonLeft AddtoFunc F-MoveMonLeft + I MoveToScreen $[monitor.0.name] + I WarpToWindow 50 50 Silent Key A A 4 Raise Silent Key S A 4 Lower Silent Mouse 3 A 4 F-Resize Silent Mouse 1 A 4 F-Move # monitor Silent Key Left A 4 MoveToScreen $[monitor.0.name] Silent Key Right A 4 MoveToScreen $[monitor.1.name] Silent Key Left A 4S F-MoveMonLeft Silent Key Right A 4S F-MoveMonRight # deiconify/iconify and rearrange Mouse 1 I A DeiconifyAndRearrange # super + arrows for tiling Silent Key H A 4 TileLeft 60 100 +0 +0 Silent Key L A 4 TileRight 40 100 -0 +0 Silent Key K A 4 TileTop 40 60 -0 +0 Silent Key J A 4 TileBottom 40 40 -0 -0 DestroyFunc F-Center AddToFunc F-Center + I ThisWindow (!Iconic) Resize 1120p 800p + I ThisWindow AnimatedMove 50-50w 50-50w # Super+C/F/J/H/K/L - center, maximize, move window, etc Silent Key C A 4 AnimatedMove 50-50w 50-50w Silent Key C A 4S F-Center Silent Key F A 4 Maximize toggle 100 100 Silent Key F A 4S Iconify Silent Key H A 4S Maximize growleft 0 Silent Key L A 4S Maximize growright 0 Silent Key K A 4S Maximize 0 growup Silent Key J A 4S Maximize 0 growdown Silent Key H A 4C TileTopLeft 60 100 +0 +0 Silent Key K A 4C TileTopRight 40 100 -0 +0 Silent Key J A 4C TileBottomLeft 40 60 -0 +0 Silent Key L A 4C TileBottomRight 40 40 -0 -0 ####### # 6: Window Decor # # Buttons Locations: [1 3 5 7 9 TTTTT 0 8 6 4 2] # # 1 - WindowOps Menu # 2 - Close # 4 - Maximize # 6 - Minimize ########### TitleStyle Centered Height 25 -- Flat ButtonStyle All ( Colorset 1 -- Flat ) ButtonStyle All Active ( Colorset 0 -- Flat ) AddButtonStyle 1 MiniIcon AddButtonStyle 6 Pixmap minimize__FFFFFF.svg:20x20 AddButtonStyle 4 Pixmap maximize__FFFFFF.svg:20x20 AddButtonStyle 2 Pixmap close__FFFFFF.svg:20x20 ############ # 7: Modules ############# # FvwmIdent # # FvwmIdent is a module that can be used to get the various info about # a window. One use is getting the class/resource/name of a window. DestroyModuleConfig FvwmIdent:* *FvwmIdent: Colorset 10 *FvwmIdent: Font "xft:Iosevka Comfy:size=14:antialias=True" # FvwmBanner # # This displays the Fvwm Logo for 5 seconds. This is displayed # when fvwm starts. DestroyModuleConfig FvwmBanner:* *FvwmBanner: NoDecor *FvwmBanner: Timeout 5 # FvwmScript # # FvwmScript is a module that allows one to write custom desktop # widgets and various other tools. This config uses two FvwmScripts. # - DateTime - uses the output of "date" to display the date/time # on the LeftPanel. # - Quit - This is a popup that asks for quit confirmation before # quitting fvwm. DestroyModuleConfig FvwmScript:* *FvwmScript: DefaultColorset 10 # FvwmPager # # This module displays the location of the windows on the various Pages # and Desks. This is setup to show only the Pages on the current Desk. DestroyModuleConfig FvwmPager:* *FvwmPager: Colorset * 10 *FvwmPager: HilightColorset * 13 *FvwmPager: BalloonColorset * 10 *FvwmPager: WindowColorsets 10 11 *FvwmPager: Font None *FvwmPager: Balloons All *FvwmPager: BalloonFont "xft:Iosevka Comfy:Italic:size=14:antialias=True" *FvwmPager: Window3dBorders *FvwmPager: MiniIcons # FvwmIconMan # # FvwmIconMan is a powerful tool to list and manage windows. This # is used as the window list in the panel or taskbar. DestroyModuleConfig FvwmIconMan:* *FvwmIconMan: UseWinList true *FvwmIconMan: ButtonGeometry 120x30 *FvwmIconMan: ManagerGeometry 1x1 *FvwmIconMan: Colorset 10 *FvwmIconMan: FocusColorset 11 *FvwmIconMan: IconColorset 14 *FvwmIconMan: FocusAndSelectColorset 12 *FvwmIconMan: SelectColorset 12 *FvwmIconMan: IconAndSelectColorset 12 *FvwmIconMan: DrawIcons always *FvwmIconMan: ReliefThickness 0 *FvwmIconMan: Format "%t" *FvwmIconMan: Font "xft:Iosevka Comfy:size=14:antialias=True" *FvwmIconMan: Action Mouse 0 A ret *FvwmIconMan: Action Mouse 1 A sendcommand IconManClick *FvwmIconMan: Action Mouse 3 A sendcommand "Menu MenuIconOps" *FvwmIconMan: Resolution desk *FvwmIconMan: Tips needed *FvwmIconMan: Sort id # FvwmEvent # # FvwmEvent is a module that can run an action or function # on specific events. This instance changes which desk number # is highlighted when the desk is changed. DestroyModuleConfig EventNewDesk:* *EventNewDesk: PassID *EventNewDesk: new_desk ChangeDesk # FvwmForm # # FvwmForm is a module that can be used to build a GUI # form. Used with fvwm-menu-desktop-config.fpl. # This sets the default colorsets. *FvwmFormDefault: Colorset 10 *FvwmFormDefault: ItemColorset 13 # Local configuration file. For use with the default-config. # # If $FVWMUSER_DIR/local.config ($HOME/.fvwm/local.config by default) # exists, then read it. This allows changes to default-config settings # without needing a full copy of the default-config. This will also allow # default-config changes to get used after upgrades (if applicable). Test (f $[FVWM_USERDIR]/local.config) Read $[FVWM_USERDIR]/local.config DesktopConfiguration per-monitor GotoDesk screen $[monitor.primary] 0 2 DestroyFunc SmartPrevPageFlipFocus AddToFunc SmartPrevPageFlipFocus + I Prev (CurrentDesk,AcceptsFocus,!Iconic,Iconifiable) FuncFlipFocusWindow + I TestRc (Match) EchoPageNumberIfFull cyan DestroyFunc DeiconifyAndRearrange AddToFunc DeiconifyAndRearrange + C Iconify off + C All (CurrentPage, Iconic) PlaceAgain Icon DestroyFunc IconFunc AddToFunc IconFunc + C DeiconifyAndRearrange + M Raise + M Move + D DeiconifyAndRearrange DestroyFunc LimitApplication AddToFunc LimitApplication + I Next ($0, CurrentDesk, CirculateHit) FlipFocus + I Next ($0, CurrentDesk, CirculateHit) Raise + I TestRc (NoMatch) None ($0, CurrentDesk) Exec exec $[1-] DestroyFunc ShowDesktop AddToFunc ShowDesktop + I All (CurrentPage, Iconic, State 1) RestoreDesktop + I TestRc (Match) Break + I All (CurrentPage, !Iconic, !State 1) ThisWindow State 1 True + I All (CurrentPage, !Iconic, State 1) Iconify DestroyFunc RestoreDesktop AddToFunc RestoreDesktop + I All (CurrentPage, Iconic, State 1) Iconify off + I All (CurrentPage, State 1) ThisWindow State 1 False Read $[themedir]/iosevka.sys