dnl The file is in m4 format, use FvwmM4 module to read it
dnl like this: ModuleSynchronous FvwmM4 -lock .fvwm2rc
-
dnl This is to prevent FvwmM4 to shadow $HOME
undefine(`HOME')
-
dnl Echo dimension
-changecom(`/*', `*/')
-# width = WIDTH
-changecom(`#')
-
+`#' width = WIDTH
+divert(-1)
dnl koi8-r Fonts
dnl define(`SMALL_FONT_KOI8', `-*-fixed-medium-r-normal-*-*-100-*-*-*-*-koi8-r')
dnl define(`MEDIUM_FONT_KOI8', `-*-fixed-medium-r-normal-*-*-120-*-*-*-*-koi8-r')
dnl TrueType Fonts
+define(`VERY_SMALL_FONT', `xft:Sans:size=10')
define(`SMALL_FONT', `xft:Sans:size=12')
define(`MEDIUM_FONT', `xft:Sans:size=14')
define(`BIG_FONT', `xft:Sans:size=16')
define(`HUGE_FONT', `xft:Sans:size=20')
dnl Bold TT fonts
-define(`SMALL_BOLD_FONT', `SMALL_FONT:Bold')
-define(`MEDIUM_BOLD_FONT', `MEDIUM_FONT:Bold')
-define(`BIG_BOLD_FONT', `BIG_FONT:Bold')
+define(`SMALL_BOLD_FONT', SMALL_FONT`:Bold')
+define(`MEDIUM_BOLD_FONT', MEDIUM_FONT`:Bold')
+define(`BIG_BOLD_FONT', BIG_FONT`:Bold')
+define(`TITLE_FONT', MEDIUM_FONT)
+define(`ICON_FONT', LARGE_FONT)
dnl Font and geometry aliases that depend on whether the screen resolution is
dnl 800x600, 1024x768 or 1920x1200
-define(`TITLE_FONT', `MEDIUM_FONT')
-
-define(`ICON_FONT', `LARGE_FONT')
-
-
define(`PAGER_GEOM',
-`ifelse(eval(WIDTH < 1024), 1, `365x100+0+0',dnl
-`ifelse(eval(WIDTH < 1920), 1, `365x100+0+0', `600x160+0+0'dnl
-)')'dnl
-)
-
-define(`PAGER_FONT',
-`ifelse(eval(WIDTH < 1920), 1, `SMALL_FONT', `BIG_FONT'dnl
-)')
+ifelse(eval(WIDTH < 1024), 1, `365x100+0+0',
+ eval(WIDTH < 1920), 1, `365x100+0+0', `600x160+0+0'))
+
+define(`SMALL_PAGER_FONT', ifelse(eval(WIDTH < 1920), 1, VERY_SMALL_FONT, SMALL_FONT))
+define(`PAGER_FONT', ifelse(eval(WIDTH < 1920), 1, SMALL_FONT, BIG_FONT))
define(`BUTTONS_FONT', PAGER_FONT)
define(`MENU_FONT',
-`ifelse(eval(WIDTH < 1024), 1, `xft:Helvetica:size=16',dnl
-`ifelse(eval(WIDTH < 1920), 1, `xft:Helvetica:size=18', `xft:Helvetica:size=22'dnl
-)')'dnl
-)
+ifelse(eval(WIDTH < 1024), 1, `xft:Helvetica:size=16',
+ eval(WIDTH < 1920), 1, `xft:Helvetica:size=18', `xft:Helvetica:size=22'))
define(`IDENT_FONT', MENU_FONT)
define(`WIN_LIST_FONT', MENU_FONT)
define(`ICON_BOX_FONT', MENU_FONT)
dnl XSetBg message width and font
define(`TEXT_WIDTH',
-`ifelse(eval(WIDTH < 1024), 1, 70,dnl
-`ifelse(eval(WIDTH < 1920), 1, 75, 80 dnl
-)')'dnl
-)
+ifelse(eval(WIDTH < 1024), 1, 70,
+ eval(WIDTH < 1920), 1, 75, 80))
-define(`MESSAGE_FONT', `Nimbus Sans L 18')dnl
+define(`MESSAGE_FONT', `Nimbus Sans L 18')
dnl Terminal emulator
define(`TERM_GEOM',
-`ifelse(eval(WIDTH < 1024), 1, `80x25',dnl
-`ifelse(eval(WIDTH < 1920), 1, `80x30', `80x32'dnl
-)')'dnl
-)
+ifelse(eval(WIDTH < 1024), 1, `80x25',
+ eval(WIDTH < 1920), 1, `80x30', `80x32'))
-define(`TERM_GEOM_BOTLT', `TERM_GEOM+0-0')dnl
-define(`TERM_GEOM_BOTRT', `TERM_GEOM-0-0')dnl
+define(`TERM_GEOM_BOTLT', TERM_GEOM`+0-0')
+define(`TERM_GEOM_BOTRT', TERM_GEOM`-0-0')
define(`TERM_GEOM_BIG',
-`ifelse(eval(WIDTH < 1024), 1, `96x30',dnl
-`ifelse(eval(WIDTH < 1920), 1, `112x32', `126x35'dnl
-)')'dnl
-)
+ifelse(eval(WIDTH < 1024), 1, `96x30',
+ eval(WIDTH < 1920), 1, `112x32', `126x35'))
define(`TERM', `urxvt')
define(`REMOTE_HOST_KOI8',
-TERM_KOI8 -title "$2" -n "$2" -e ssh -4 "$1"dnl
-)
+TERM_KOI8 -title "$2" -n "$2" -e ssh -4 "$1")
define(`REMOTE_HOST_KOI8_MENU',
-"$2 (koi8)" REMOTE_HOST_KOI8($1, $2)dnl
-)
+"$2 (koi8)" REMOTE_HOST_KOI8($1, $2))
define(`REMOTE_HOST_KOI8_BOTLT',
-TERM_KOI8_BOTLT -title "$2" -n "$2" -e ssh -4 "$1"dnl
-)
+TERM_KOI8_BOTLT -title "$2" -n "$2" -e ssh -4 "$1")
define(`REMOTE_HOST_KOI8_BOTRT',
-TERM_KOI8_BOTRT -title "$2" -n "$2" -e ssh -4 "$1"dnl
-)
+TERM_KOI8_BOTRT -title "$2" -n "$2" -e ssh -4 "$1")
define(`REMOTE_HOST_KOI8_BOTLT_MENU',
-"$2 (koi8,btlt)" REMOTE_HOST_KOI8_BOTLT($1, $2)dnl
-)
+"$2 (koi8,btlt)" REMOTE_HOST_KOI8_BOTLT($1, $2))
define(`REMOTE_HOST_KOI8_BOTRT_MENU',
-"$2 (koi8,btrt)" REMOTE_HOST_KOI8_BOTRT($1, $2)dnl
-)
+"$2 (koi8,btrt)" REMOTE_HOST_KOI8_BOTRT($1, $2))
define(`REMOTE_HOST_UTF8',
-TERM_UTF8 -e ssh -4 "$1"dnl
-)
+TERM_UTF8 -e ssh -4 "$1")
define(`REMOTE_HOST_UTF8_MENU',
-"$2 (utf8)" REMOTE_HOST_UTF8($1, $2)dnl
-)
+"$2 (utf8)" REMOTE_HOST_UTF8($1, $2))
define(`REMOTE_HOST_UTF8_BOTLT',
-TERM_UTF8_BOTLT -e ssh -4 "$1"dnl
-)
+TERM_UTF8_BOTLT -e ssh -4 "$1")
define(`REMOTE_HOST_UTF8_BOTRT',
-TERM_UTF8_BOTRT -e ssh -4 "$1"dnl
-)
+TERM_UTF8_BOTRT -e ssh -4 "$1")
define(`REMOTE_HOST_UTF8_BOTLT_MENU',
-"$2 (utf8,btlt)" REMOTE_HOST_UTF8_BOTLT($1, $2)dnl
-)
+"$2 (utf8,btlt)" REMOTE_HOST_UTF8_BOTLT($1, $2))
define(`REMOTE_HOST_UTF8_BOTRT_MENU',
-"$2 (utf8,btrt)" REMOTE_HOST_UTF8_BOTRT($1, $2)dnl
-)
+"$2 (utf8,btrt)" REMOTE_HOST_UTF8_BOTRT($1, $2))
define(`REMOTE_HOST_KOI8_BIG',
-TERM_KOI8 -geometry TERM_GEOM_BIG -title "$2" -n "$2" -e ssh -4 "$1"dnl
-)
+TERM_KOI8 -geometry TERM_GEOM_BIG -title "$2" -n "$2" -e ssh -4 "$1")
define(`REMOTE_HOST_KOI8_BIG_MENU',
-"$2 (koi8)" REMOTE_HOST_KOI8_BIG($1, $2)dnl
-)
-
+"$2 (koi8)" REMOTE_HOST_KOI8_BIG($1, $2))
+divert
##########################################################################
# PATH Setup
# Set colors/font for pop-up menus
# Syntax: MenuStyle forecolor backcolor shadecolor font style(fvwm/mwm)
-MenuStyle * FVWM, Foreground Black, Background grey, Greyed SlateGrey, Font MENU_FONT fvwm
+MenuStyle * FVWM, Foreground Black, Background grey, Greyed SlateGrey, Font MENU_FONT
# Set fonts to use on title bar and icon label
Style * Font TITLE_FONT
#
Style * PositionPlacement Center
-
############################################################################
# STYLE Flag Setup
#
# the number "2"
#ButtonStyle 8 12 80x80@0 22x80@0 80x40@0 70x25@0 30x25@0 20x35@0 20x30@1 30x20@1 70x20@1 80x30@1 20x75@1 80x75@1
-
############################################################################
# MOUSE Setup
#
#############################################################################
# START-UP Functions
#
-AddToFunc "InitFunction"
+DestroyFunc InitFunction
+AddToFunc InitFunction
+ I Module FvwmBacker
+ I Module FvwmButtons
+ I Module FvwmCommandS
+ I Module FvwmPager 0 2
-AddToFunc "RestartFunction"
+DestroyFunc RestartFunction
+AddToFunc RestartFunction
+ I Module FvwmBacker
+ I Module FvwmButtons
+ I Module FvwmCommandS
+ I Module FvwmPager 0 2
-+ I Next [!iconic CurrentScreen xterm] Focus
++ I Schedule 1000 Raise-All
-AddToFunc "StartStandardSession"
+DestroyFunc UrgencyFunc
+AddToFunc UrgencyFunc
++ I Iconify off
++ I ThisWindow ("*Downloads") Break
++ I FlipFocus
++ I Raise
++ I WarpToWindow 5p 5p
+
+DestroyFunc StartStandardSession
+AddToFunc StartStandardSession
+ I GotoDeskAndPage 0 0 0
+ I TERM_KOI8
+ I Wait TERM
+ I Wait TERM
+ I PaVuControl
+ I Wait "Volume Control"
-+ I FireFox
-+ I Wait "*Mozilla Firefox"
++ I Exec exec "$HOME"/current/projects/audio-cdr-video/audio/pa-mic-off
++ I FireFox-Wait
+ I GotoDeskAndPage 1 0 1
+ I TERM_KOI8
+ I Wait TERM
+ I GotoDeskAndPage 1 1 0
+ I Schedule 1000 GotoDeskAndPage 0 1 0
+DestroyFunc ResumeFunction
+AddToFunc ResumeFunction
++ I GotoDeskAndPage 0 0 0
++ I TERM_KOI8
++ I Wait TERM
++ I PaVuControl
++ I Wait "Volume Control"
++ I Exec exec "$HOME"/current/projects/audio-cdr-video/audio/pa-mic-off
++ I Exec "$HOME"/current/projects/xsetbg/print-filename.py | text-wrap.py -w TEXT_WIDTH -s -n | gxmessage -buttons Ok -default Ok -fn 'MESSAGE_FONT' -file -
++ I Wait gxmessage
++ I None ("*Mozilla Firefox") FireFox-Wait
++ I GotoDeskAndPage 0 1 0
############################################################################
# COMPLEX FUNCTIONS
AddToFunc Center I Move 50-50w 50-50w
+ I WarpToWindow 74p 18p
+DestroyFunc Iconify-and-Raise
AddToFunc Iconify-and-Raise I Iconify
+ I Raise
+DestroyFunc Maximize-Func
AddToFunc Maximize-Func C Maximize toggle
+ D Maximize 100 100
+DestroyFunc Move-or-Iconify
AddToFunc Move-or-Iconify I Raise
+ M Move
+ D Iconify
+DestroyFunc Move-or-Raise
AddToFunc Move-or-Raise I Raise
+ M Move
+ D Lower
+DestroyFunc Move-or-Raise2
AddToFunc Move-or-Raise2 M Raise
+ M Move
+ D Lower
+DestroyFunc Resize-or-Raise
AddToFunc Resize-or-Raise I Raise
+ M Resize
+ D Lower
+DestroyFunc Resize-or-Raise2
AddToFunc Resize-or-Raise2 M Raise
+ M Resize
+ D Lower
+DestroyFunc Shadify
AddToFunc Shadify D WindowShade
+ M Move
+ C RaiseLower
+DestroyFunc warp-or-run
AddToFunc warp-or-run I Next [$0 CirculateHit] Iconify -1
+ I Next [$0 CirculateHit] Focus
+ I None [$0] $1
+DestroyFunc MailFunction
AddToFunc MailFunction I Next [$0] Iconify -1
+ I Next [$0] focus
+ I None [$0] Exec exec $0 $1
+DestroyFunc PrintFunction
AddToFunc PrintFunction I Raise
+ I Exec exec xdpr -id $w
+DestroyFunc Raise-All
+AddToFunc Raise-All I All (!"FvwmButtons|System|*clock") Raise
+
##############################################################################
# User-defined functions
#
+ I REMOTE_HOST_KOI8_BIG(phdru.name, phdru.name)
DestroyFunc FireFox
-AddToFunc FireFox I GotoDeskAndPage 1 0 0
+AddToFunc FireFox I Any ("*Mozilla Firefox") Break
++ I GotoDeskAndPage 1 0 0
+ I Exec LC_CTYPE=ru_RU.KOI8-R exec start-browser firefox
+DestroyFunc FireFox-Wait
+AddToFunc FireFox-Wait I Any ("*Mozilla Firefox") Break
++ I FireFox
++ I Wait "*Mozilla Firefox"
+
DestroyFunc Gajim
AddToFunc Gajim I GotoDeskAndPage 1 1 0
+ I Exec exec gajim
AddToFunc Pidgin I GotoDeskAndPage 1 1 0
+ I Exec exec pidgin
-DestroyFunc Raise-All
-AddToFunc Raise-All I All (!"FvwmButtons|System|*clock") Raise
-
-DestroyFunc UrgencyFunc
-AddToFunc UrgencyFunc
-+ I Iconify off
-+ I ThisWindow ("*Downloads") Break
-+ I FlipFocus
-+ I Raise
-+ I WarpToWindow 5p 5p
-
##############################################################################
# MENU Setup
#
+ "Refresh Screen" Refresh
# A trimmed down version of "Window Ops", good for binding to decorations
-DestroyMenu "Window-Ops2"
+DestroyMenu Window-Ops2
AddToMenu Window-Ops2 "Center" Center
+ "Move" Move-or-Raise
+ "Iconify" Iconify
DestroyMenu Browsers
AddToMenu Browsers "Choose one:" Title
+ "FireFox" FireFox
-+ "Chromium" Exec LC_CTYPE=ru_RU.KOI8-R exec start-browser chromium
-+ "Opera" Exec LC_CTYPE=ru_RU.KOI8-R exec start-browser opera
++ "Chromium" None ("*Chromium") Exec LC_CTYPE=ru_RU.KOI8-R exec start-browser chromium
++ "Opera" None ("*Opera") Exec LC_CTYPE=ru_RU.KOI8-R exec start-browser opera
# A wide variety of screenlocking options...
#AddToMenu XlockMenu "Choose one:" Title
# Background
#*FvwmButtons: Pixmap fvwm.xpm
-
# Define the buttons to use.....
#*FvwmButtons: Move arrows2.xpm Move
#*FvwmButtons: Kill skull.xpm Destroy
#*FvwmButtons: Real bell.xpm Exec cd /opt/audio && exec realplay
#*FvwmButtons: Kill rbomb.xpm Destroy
-
# Buttons
*FvwmButtons: (Title Term, Icon rterm2.xpm, Action TERM_KOI8)
*FvwmButtons: (Title UTF-8, Icon rterm2.xpm, Action TERM_UTF8)
*FvwmPager: Label 0 System
*FvwmPager: Label 1 Net
*FvwmPager: Label 2 Work
-*FvwmPager: SmallFont PAGER_FONT
+*FvwmPager: SmallFont SMALL_PAGER_FONT
*FvwmPager: Balloons All
*FvwmPager: BalloonBack #efe3b5