]> git.phdru.name Git - dotfiles.git/blobdiff - .fvwm/main.m4
.fvwm: Publish my real `main.m4`
[dotfiles.git] / .fvwm / main.m4
index c432a39c6f0129da9c3ba05824f6b88a5b52065e..7812b7281fdaa31ec14dc6de7ad91e8325e66255 100644 (file)
@@ -3,7 +3,7 @@
 #
 
 dnl The file is in m4 format, use FvwmM4 module to read it
-dnl like this: ModuleSynchronous FvwmM4 -lock .fvwm2rc
+dnl like this: ModuleSynchronous FvwmM4 -lock main.m4
 
 dnl This is to prevent FvwmM4 to shadow $HOME
 undefine(`HOME')
@@ -80,36 +80,49 @@ define(`TERM_GEOM_BOTRT', TERM_GEOM`-0-0')
 
 define(`TERM_GEOM_BIG',
 ifelse(eval(WIDTH < 1024), 1, `96x30',
-       eval(WIDTH < 1920), 1, `112x32+2-0', `126x35'))
+       eval(WIDTH < 1920), 1, `112x32+2-0', `119x32+1-0'))
 
 
 define(`TERM', `urxvt')
 define(`TERM_KOI8', `Exec LC_CTYPE=ru_RU.KOI8-R exec TERM')
-define(`TERM_UTF8', `Exec exec "$HOME"/lib/X11/utf8rxvt')
+define(`TERM_RU_UTF8', `Exec LC_CTYPE=ru_RU.UTF-8 exec TERM -name URxvt')
+define(`TERM_EN_UTF8', `Exec LC_CTYPE=en_US.UTF-8 exec TERM -name URxvt')
+define(`TERM_HEB_UTF8', `Exec LC_CTYPE=he_IL.UTF-8 exec TERM -name URxvt')
 define(`TERM_KOI8_BOTLT', `TERM_KOI8 -geometry TERM_GEOM_BOTLT')
-define(`TERM_UTF8_BOTLT', `TERM_UTF8 -geometry TERM_GEOM_BOTLT')
+define(`TERM_RU_UTF8_BOTLT', `TERM_RU_UTF8 -geometry TERM_GEOM_BOTLT')
 define(`TERM_KOI8_BOTRT', `TERM_KOI8 -geometry TERM_GEOM_BOTRT')
-define(`TERM_UTF8_BOTRT', `TERM_UTF8 -geometry TERM_GEOM_BOTRT')
+define(`TERM_RU_UTF8_BOTRT', `TERM_RU_UTF8 -geometry TERM_GEOM_BOTRT')
 
 
-define(`REMOTE_HOST_TERM',
-`$1 -e ssh -4 $2')
+define(`SSH', `cgmem_nice 300 ssh -4')
 
-define(`REMOTE_HOST_TERM_TITLE',
-`$1 -title $3 -n $3 -e ssh -4 $2')
+define(`REMOTE_HOST_TERM', `$1 -e SSH $2')
+
+define(`REMOTE_HOST_TERM_TITLE', `$1 -title $3 -n $3 -e SSH $2')
 
 define(`REMOTE_HOST_KOI8',
 REMOTE_HOST_TERM_TITLE(TERM_KOI8, $1, $2))
 
+define(`REMOTE_SCREEN', `-t $1 exec screen -xRR -S default')
+
+define(`REMOTE_HOST_KOI8_SCREEN',
+REMOTE_HOST_KOI8(REMOTE_SCREEN($1), $2))
+
 define(`REMOTE_HOST_KOI8_MENU',
 "$2 (koi8)" REMOTE_HOST_KOI8($1, $2))
 
 define(`REMOTE_HOST_KOI8_BOTLT',
 REMOTE_HOST_TERM_TITLE(TERM_KOI8_BOTLT, $1, $2))
 
+define(`REMOTE_HOST_KOI8_SCREEN_BOTLT',
+REMOTE_HOST_TERM_TITLE(TERM_KOI8_BOTLT, REMOTE_SCREEN($1), $2))
+
 define(`REMOTE_HOST_KOI8_BOTRT',
 REMOTE_HOST_TERM_TITLE(TERM_KOI8_BOTRT, $1, $2))
 
+define(`REMOTE_HOST_KOI8_SCREEN_BOTRT',
+REMOTE_HOST_TERM_TITLE(TERM_KOI8_BOTRT, REMOTE_SCREEN($1), $2))
+
 define(`REMOTE_HOST_KOI8_BOTLT_MENU',
 "$2 (koi8,btlt)" REMOTE_HOST_KOI8_BOTLT($1, $2))
 
@@ -117,16 +130,16 @@ define(`REMOTE_HOST_KOI8_BOTRT_MENU',
 "$2 (koi8,btrt)" REMOTE_HOST_KOI8_BOTRT($1, $2))
 
 define(`REMOTE_HOST_UTF8',
-REMOTE_HOST_TERM(TERM_UTF8, $1))
+REMOTE_HOST_TERM(TERM_RU_UTF8, $1))
 
 define(`REMOTE_HOST_UTF8_MENU',
 "$2 (utf8)" REMOTE_HOST_UTF8($1, $2))
 
 define(`REMOTE_HOST_UTF8_BOTLT',
-REMOTE_HOST_TERM(TERM_UTF8_BOTLT, $1))
+REMOTE_HOST_TERM(TERM_RU_UTF8_BOTLT, $1))
 
 define(`REMOTE_HOST_UTF8_BOTRT',
-REMOTE_HOST_TERM(TERM_UTF8_BOTRT, $1))
+REMOTE_HOST_TERM(TERM_RU_UTF8_BOTRT, $1))
 
 define(`REMOTE_HOST_UTF8_BOTLT_MENU',
 "$2 (utf8,btlt)" REMOTE_HOST_UTF8_BOTLT($1, $2))
@@ -135,7 +148,7 @@ define(`REMOTE_HOST_UTF8_BOTRT_MENU',
 "$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")
+TERM_KOI8 -geometry TERM_GEOM_BIG -title "$2" -n "$2" -e SSH "$1")
 
 define(`REMOTE_HOST_KOI8_BIG_MENU',
 "$2 (koi8)" REMOTE_HOST_KOI8_BIG($1, $2))
@@ -266,8 +279,8 @@ Style "Buddy List"      PositionPlacement +0 -0
 Style "*Pidgin*"        MinOverlapPercentPlacement
 
 # (S)MPlayer
-Style "*MPlayer*"       Layer 6, PositionPlacement 350p 100p
-Style "*mpv"            Layer 6, PositionPlacement 350p 100p
+Style "*MPlayer*"       Layer 6, PositionPlacement 250p 100p
+Style "*mpv"            Layer 6, PositionPlacement 250p 100p
 
 Style "*clock"          !Title, Sticky, WindowListSkip, Color Black/#40c040, NeverFocus, PositionPlacement 50-50w +1p, Layer 2
 Style "emacs"           NoPPosition
@@ -484,11 +497,9 @@ AddToFunc StartStandardSession
 +              I TERM_KOI8
 +              I Wait TERM
 +              I GotoDeskAndPage 0 0 1
-+              I TERM_UTF8 -geometry 38x30+0-0
++              I TERM_RU_UTF8 -geometry 38x30+0-0
 +              I Wait URxvt
-+              I GotoDeskAndPage 0 1 0
-+              I TERM_KOI8 -e su -
-+              I Wait TERM
++              I Exec exec cgmem_nice 200 pulseaudio --start
 +              I PaVuControl
 +              I Exec exec "$HOME"/current/projects/audio-cdr-video/audio/pa-mic-off
 +              I XsetbgFilename
@@ -496,30 +507,24 @@ AddToFunc StartStandardSession
 +              I GotoDeskAndPage 1 0 1
 +              I TERM_KOI8
 +              I Wait TERM
-+              I GotoDeskAndPage 1 1 0
-+              I TERM_UTF8 -iconic -name term-im-remote
-+              I Wait term-im-remote
-+              I TERM_KOI8 -geometry 60x25-5-5 -iconic -name term-im-local
-+              I Wait term-im-local
 +              I GotoDeskAndPage 2 0 1
 +              I TERM_KOI8 -geometry TERM_GEOM_BIG
 +              I Wait TERM
 +              I FireFox
-+              I Schedule 4500 GotoDeskAndPage 0 1 0
 
 DestroyFunc ResumeFunction
 AddToFunc ResumeFunction
 +              I GotoDeskAndPage 0 0 0
 +              I TERM_KOI8
 +              I Wait TERM
++              I Exec exec cgmem_nice 200 pulseaudio --start
 +              I None ("Volume Control") PaVuControl
 +              I Exec sleep 10; exec "$HOME"/current/projects/audio-cdr-video/audio/pa-mic-off
 +              I XsetbgFilename
 +              I Wait gxmessage
-+              I Any ("*Mozilla Firefox") GotoDeskAndPage 0 1 0
++              I Any ("*Mozilla Firefox") GotoDeskAndPage 0 0 0
 +              I TestRc (Match) Break
 +              I None ("*Mozilla Firefox") FireFox
-+              I Schedule 4500 GotoDeskAndPage 0 1 0
 
 ############################################################################
 # COMPLEX FUNCTIONS
@@ -589,17 +594,33 @@ AddToFunc Raise-All           I All Raise
 
 DestroyFunc PaVuControl
 AddToFunc PaVuControl         I GotoDeskAndPage 0 1 1
-+                             I Exec exec pavucontrol
++                             I Exec exec cgmem_nice 200 pavucontrol
 +                             I Wait "Volume Control"
 
 changequote([,])
 DestroyFunc Id3Info
-AddToFunc Id3Info             I Exec "$HOME"/lib/audio/mp3/id3info.py "`deadbeef --nowplaying '%F'`" | text-wrap.py | gxmessage -buttons Ok -default Ok -fn 'MESSAGE_FONT' -file -
+AddToFunc Id3Info             I Exec "$HOME"/lib/audio/mp3/id3info.py "`audtool --current-song-filename`" | text-wrap.py | gxmessage -buttons Ok -default Ok -fn 'MESSAGE_FONT' -file -
 changequote([`], ['])
 
-DestroyFunc DeadBeef
-AddToFunc DeadBeef            I GotoDeskAndPage 0 1 1
-+                             I Exec exec deadbeef
+DestroyFunc AudioPlayer
+AddToFunc AudioPlayer         I GotoDeskAndPage 0 1 1
++                             I Exec LC_CTYPE=ru_RU.KOI8-R exec cgmem_nice 200 audacious
+
+DestroyFunc Term-Iskra
+AddToFunc Term-Iskra          I GotoDeskAndPage 1 1 2
++                             I REMOTE_HOST_KOI8(iskra-aviel.phdru.name, iskra)
+
+DestroyFunc Term-Iskra-Big
+AddToFunc Term-Iskra-Big      I GotoDeskAndPage 1 1 2
++                             I REMOTE_HOST_KOI8_BIG(iskra-aviel.phdru.name, iskra)
+
+DestroyFunc Term-Oper
+AddToFunc Term-Oper           I GotoDeskAndPage 1 1 2
++                             I REMOTE_HOST_KOI8_BOTRT(oper.med.ru, oper)
+
+DestroyFunc Term-Oper-Big
+AddToFunc Term-Oper-Big       I GotoDeskAndPage 1 1 2
++                             I REMOTE_HOST_KOI8_BIG(oper.med.ru, OPER)
 
 DestroyFunc Term-Phdru
 AddToFunc Term-Phdru          I GotoDeskAndPage 1 0 1
@@ -612,19 +633,19 @@ AddToFunc Term-Phdru-Big      I GotoDeskAndPage 1 0 1
 DestroyFunc FireFox
 AddToFunc FireFox             I Any ("*Mozilla Firefox") Break
 +                             I GotoDeskAndPage 1 0 0
-+                             I Exec exec start-browser firefox
++                             I Exec LC_CTYPE=ru_RU.KOI8-R exec cgmem_nice 4000 start-browser firefox
 +                             I Wait "*Mozilla Firefox"
-+                             I All ("*Mozilla Firefox") Iconify true
-+                             I Exec webbrowserX -n file:///home/phd/Internet/WWW/dashboard/index.html
++                             I Exec LC_CTYPE=ru_RU.KOI8-R exec cgmem_nice 4000 firefox --new-window
 +                             I Wait "*Mozilla Firefox"
++                             I Next ("*Mozilla Firefox") Iconify true
 
 DestroyFunc Gajim
 AddToFunc Gajim               I GotoDeskAndPage 1 1 0
-+                             I Exec exec gajim
++                             I Exec exec cgmem_nice 300 gajim
 
 DestroyFunc Pidgin
 AddToFunc Pidgin              I GotoDeskAndPage 1 1 0
-+                             I Exec exec pidgin
++                             I Exec exec cgmem_nice 300 pidgin
 
 DestroyFunc XFilename
 AddToFunc XSetbgFilename      I Exec "$HOME"/current/projects/xsetbg/print-filename.py | text-wrap.py -w TEXT_WIDTH -s | gxmessage -buttons Ok -default Ok -fn 'MESSAGE_FONT' -file -
@@ -671,16 +692,17 @@ AddToMenu Window-Ops2   "Center"        Center
 
 AddToMenu Terminals     "Terminals" Title
 +               "Grey term (koi8)" TERM_KOI8
-+               "Grey term (utf8)" TERM_UTF8
++               "Grey term (utf8)" TERM_RU_UTF8
++               "Grey term (heb-utf8)" TERM_HEB_UTF8
 +               "Grey term (koi8,btlt)" TERM_KOI8_BOTLT
 +               "Grey term (koi8,btrt)" TERM_KOI8_BOTRT
-+               "Grey term (utf8,btlt)" TERM_UTF8_BOTLT
-+               "Grey term (utf8,btrt)" TERM_UTF8_BOTRT
++               "Grey term (utf8,btlt)" TERM_RU_UTF8_BOTLT
++               "Grey term (utf8,btrt)" TERM_RU_UTF8_BOTRT
 +               "Big grey term (koi8)" TERM_KOI8 -geometry TERM_GEOM_BIG
-+               "Big grey term (utf8)" TERM_UTF8 -geometry TERM_GEOM_BIG
++               "Big grey term (utf8)" TERM_RU_UTF8 -geometry TERM_GEOM_BIG
 +                       ""      Nop
 +               "White/black term (koi8)" TERM_KOI8 -fg white -cr white -bg black
-+               "White/black term (utf8)" TERM_UTF8 -fg white -bg black
++               "White/black term (utf8)" TERM_RU_UTF8 -fg white -bg black
 
 AddToMenu TermColors    "Term Colors" Title
 +                       "Term: black/mediumturquoise" TERM_KOI8 -fg black -cr black -bg mediumturquoise
@@ -708,8 +730,16 @@ AddToMenu TermColors    "Term Colors" Title
 +                       "Term: white/black" TERM_KOI8 -fg white -cr white -bg black
 
 AddToMenu Systems       "Systems" Title
++                       REMOTE_HOST_KOI8_MENU(iskra-aviel.phdru.name, iskra)
++                       REMOTE_HOST_UTF8_BOTLT_MENU(iskra-aviel.phdru.name, iskra)
++                       REMOTE_HOST_KOI8_BIG_MENU(iskra-aviel.phdru.name, ISKRA)
++                       ""        Nop
++                       REMOTE_HOST_KOI8_BOTRT_MENU(oper.med.ru, oper)
++                       REMOTE_HOST_UTF8_BOTRT_MENU(oper.med.ru, oper)
++                       REMOTE_HOST_KOI8_BIG_MENU(oper.med.ru, OPER)
++                       ""        Nop
 +                       REMOTE_HOST_KOI8_MENU(phdru.name, phdru)
-+                       REMOTE_HOST_UTF8_MENU(phdru.name, phdru)
++                       REMOTE_HOST_UTF8_BOTLT_MENU(phdru.name, phdru)
 +                       REMOTE_HOST_KOI8_BIG_MENU(phdru.name, PHDRU)
 
 AddToMenu FvwmCommands  "Fvwm Commands" Title
@@ -784,16 +814,17 @@ AddToMenu RootMenu "Root Menu"  Title
 # This menu will fire up some often used programs
 DestroyMenu  Utilities
 AddToMenu Utilities     "Choose one:" Title
-+                       "qPDFview" Exec exec qpdfview
-+                       "FBReader" Exec exec fbreader
++                       "qPDFview" Exec LC_CTYPE=ru_RU.KOI8-R exec qpdfview
++                       "FBReader" Exec LC_CTYPE=ru_RU.KOI8-R exec fbreader
 +                       ""       Nop
-+                       "GVim"     Exec exec gvim
++                       "GVim (koi8)" Exec LC_CTYPE=ru_RU.KOI8-R exec gvim
++                       "GVim (utf8)" Exec LC_CTYPE=ru_RU.UTF-8  exec gvim
 +                       ""       Nop
 #+                       "XFortune" Exec /usr/games/fortune | gxmessage -buttons Ok -default Ok -fn 'MESSAGE_FONT' -file -
 #+                       "xbuffy" Exec exec xbuffy -fn 'XBUFFY_FONT' -geometry +0+125 -boxfile mail/misc/.xbuffyrc
 #+                       ""       Nop
 +                       "pavucontrol" PaVuControl
-+                       "DeadBeef"    DeadBeef
++                       "AudioPlayer" AudioPlayer
 +                       "Id3Info"     Id3Info
 +                       ""       Nop
 +                       "Gajim"       Gajim
@@ -815,8 +846,8 @@ AddToMenu Utilities     "Choose one:" Title
 DestroyMenu  Browsers
 AddToMenu Browsers      "Choose one:" Title
 +                       "FireFox" FireFox
-+                       "Chromium" None ("*Chromium") Exec exec start-browser chromium
-+                       "Opera" None ("*Opera") Exec exec start-browser opera
++                       "Chromium" None ("*Chromium") Exec LC_CTYPE=ru_RU.KOI8-R exec cgmem_nice 2000 start-browser chromium
++                       "Opera" None ("*Opera") Exec LC_CTYPE=ru_RU.KOI8-R exec cgmem_nice 2000 start-browser opera
 
 # A wide variety of screenlocking options...
 #AddToMenu XlockMenu     "Choose one:" Title
@@ -839,12 +870,12 @@ AddToMenu XScreenSaverMenu     "Choose mode:" Title
 +                       "Screen Saver Preferences"  Exec exec xscreensaver-command -prefs
 +                       "Reinitialize Screen Saver" Exec exec xscreensaver-command -restart
 +                       "" Nop
-+                       "Launch Screen Saver"       Exec exec xscreensaver
 +                       "Kill Screen Saver"         Exec exec xscreensaver-command -exit
++                       "Launch Screen Saver"       Exec exec xscreensaver
 
 AddToMenu XSetBgMenu    "XSetBg" Title
 +                       "Change wallpaper" Exec exec "$HOME"/current/projects/xsetbg/xsetbg-force
-+                       "Start" Exec exec "$HOME"/current/projects/xsetbg/xsetbg-http-start
++                       "Start" Exec exec cgmem_nice 100 "$HOME"/current/projects/xsetbg/xsetbg-http-start
 +                       "Stop" Exec exec "$HOME"/current/projects/xsetbg/xsetbg-http-stop
 +                       "Restart" Exec exec "$HOME"/current/projects/xsetbg/xsetbg-http-restart
 +                       ""       Nop
@@ -902,18 +933,20 @@ changequote([`], ['])
 
 # Buttons
 pushdef(`TERM_KOI8', `Exec "TERM" LC_CTYPE=ru_RU.KOI8-R exec TERM')
-pushdef(`TERM_UTF8', `Exec "URxvt" exec "$HOME"/lib/X11/utf8rxvt')
+pushdef(`TERM_RU_UTF8', `Exec "URxvt" LC_CTYPE=ru_RU.UTF-8 exec TERM -name URxvt')
 *FvwmButtons: (Title Term,     Icon rterm2.xpm,      Action TERM_KOI8)
-*FvwmButtons: (Title UTF-8,    Icon rterm2.xpm,      Action TERM_UTF8)
-*FvwmButtons: (Title phdru,    Icon xterm-sgi.xpm,   Action REMOTE_HOST_KOI8(phdru.name, phdru.name))
-popdef(`TERM_KOI8', `TERM_UTF8')
+*FvwmButtons: (Title UTF-8,    Icon rterm2.xpm,      Action TERM_RU_UTF8)
+*FvwmButtons: (Title phdru,    Icon xterm-sgi.xpm,   Action REMOTE_HOST_KOI8_SCREEN(-D 1080 phdru.name, phdru.name))
+*FvwmButtons: (Title iskra,    Icon xterm-sgi.xpm,   Action REMOTE_HOST_KOI8_SCREEN(iskra-aviel.phdru.name, iskra))
+*FvwmButtons: (Title oper,     Icon xterm-linux.xpm, Action REMOTE_HOST_KOI8_SCREEN_BOTRT(oper.med.ru, oper))
+popdef(`TERM_KOI8', `TERM_RU_UTF8')
 
 *FvwmButtons: (Title Wallpaper, Icon find1.xpm,        Action Exec "gxmessage" "$HOME"/current/projects/xsetbg/print-filename.py | text-wrap.py -w TEXT_WIDTH -s | gxmessage -buttons Ok -default Ok -fn 'MESSAGE_FONT' -file -)
 *FvwmButtons: (Title "-1",      Icon find1.xpm,        Action Exec "gxmessage" "$HOME"/current/projects/xsetbg/print-filename.py 1 | text-wrap.py -w TEXT_WIDTH -s | gxmessage -buttons Ok -default Ok -fn 'MESSAGE_FONT' -file -)
 *FvwmButtons: (Title Next,      Icon Jrecycle.xpm,     Action Exec exec "$HOME"/current/projects/xsetbg/xsetbg-http-force)
-*FvwmButtons: (Title pavucontrol, Icon mini.sound.xpm, Action Exec "Volume Control" exec pavucontrol)
+*FvwmButtons: (Title pavucontrol, Icon mini.sound.xpm, Action Exec "Volume Control" exec cgmem_nice 200 pavucontrol)
 #*FvwmButtons: (Title Id3Info,  Icon bell.xpm,         Action Id3Info)
-*FvwmButtons: (Title DeadBeef,  Icon bell.xpm,         Action Exec "DeaDBeeF-*" exec deadbeef)
+*FvwmButtons: (Title AudioPlayer,  Icon bell.xpm,      Action Exec "Audacious" LC_CTYPE=ru_RU.KOI8-R exec cgmem_nice 200 audacious)
 #*FvwmButtons: (Title XLock,     Icon Jxlock.xpm,      Action Exec exec xscreensaver-command -lock)
 
 ############################################################################