]> git.phdru.name Git - dotfiles.git/blobdiff - .fvwm/main.m4
Feat(recode-filenames-recursive): Allow to omit parameters
[dotfiles.git] / .fvwm / main.m4
index 28db64bfdefbd6d5e4e0cb5320d17b21cf0f331f..8e7c740d554987f64e61a16d6698db271ab97610 100644 (file)
@@ -3,36 +3,23 @@
 #
 
 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
 dnl This is to prevent FvwmM4 to shadow $HOME
-undefine(`HOME')
-
+undefine(`HOME')dnl
+dnl
 dnl Echo dimension
-`#' width = WIDTH
-
+`#' width = WIDTH()dnl
 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 define(`BIG_FONT_KOI8', `-*-fixed-medium-r-normal-*-*-140-*-*-*-*-koi8-r')
-
-dnl cp1251 Fonts
-dnl define(`SMALL_FONT_CP1251', `-*-fixed-medium-r-normal-*-*-100-*-*-*-*-*-cp1251')
-dnl define(`MEDIUM_FONT_CP1251', `-*-fixed-medium-r-normal-*-*-120-*-*-*-*-*-cp1251')
-dnl define(`BIG_FONT_CP1251', `-*-fixed-medium-r-normal-*-*-140-*-*-*-*-*-cp1251')
-
-dnl define(`XBUFFY_FONT', `-cronyx-helvetica-bold-r-*-*-*-100-*-*-*-*-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(`LARGE_FONT', `xft:Sans:size=18')
-define(`HUGE_FONT', `xft:Sans:size=20')
-define(`GIGANTIC_FONT', `xft:Sans:size=22')
+define(`VERY_SMALL_FONT', `"xft:Liberation Mono:size=10"')
+define(`SMALL_FONT', `"xft:Liberation Mono:size=12"')
+define(`MEDIUM_FONT', `"xft:Liberation Mono:size=14"')
+define(`BIG_FONT', `"xft:Liberation Mono:size=16"')
+define(`LARGE_FONT', `"xft:Liberation Mono:size=18"')
+define(`HUGE_FONT', `"xft:Liberation Mono:size=20"')
+define(`GIGANTIC_FONT', `"xft:Liberation Mono:size=22"')
 
 dnl Bold TT fonts
 define(`SMALL_BOLD_FONT', SMALL_FONT`:Bold')
@@ -80,65 +67,122 @@ 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', `127x32+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(`TERM_KOI8_BIG', `TERM_KOI8 -geometry TERM_GEOM_BIG')
+define(`TERM_UTF8_BIG', `TERM_RU_UTF8 -geometry TERM_GEOM_BIG')
+
+
+define(`SSH', `cgmem_nice 300 ssh')
+
+define(`TERM_SSH', `$1 -e SSH $2')
+
+define(`TERM_TITLE_SSH', `$1 -title "$3" -n "$3" -e SSH $2')
+
+define(`TERM_KOI8_SSH',
+`TERM_TITLE_SSH(`TERM_KOI8', $1, $2)')
+
+define(`SSH_SCREEN_KOI8',
+`SSH -t $1 TZ="$(cat /etc/timezone)" exec /usr/bin/screen -xRR -S default-koi8')
+define(`SSH_SCREEN_UTF8',
+`SSH -t $1 TZ="$(cat /etc/timezone)" exec /usr/bin/screen -xRR -S default-utf8')
+
+define(`TERM_TITLE_SSH_SCREEN_KOI8',
+`$1 -title "$3 scr" -n "$3 scr" -e SSH_SCREEN_KOI8($2)')
+
+define(`TERM_TITLE_SSH_SCREEN_UTF8',
+`$1 -title "$3 scr" -n "$3 scr" -e SSH_SCREEN_UTF8($2)')
+
+define(`MENU_TERM_KOI8_SSH',
+`"$2 (koi8)" TERM_KOI8_SSH($1, $2)')
+
+define(`TERM_KOI8_BOTLT_SSH',
+`TERM_TITLE_SSH(`TERM_KOI8_BOTLT', $1, $2)')
+
+define(`TERM_KOI8_BOTRT_SSH',
+`TERM_TITLE_SSH(`TERM_KOI8_BOTRT', $1, $2)')
+
+define(`MENU_TERM_KOI8_BOTLT_SSH',
+`"$2 (btlt,koi8)" TERM_KOI8_BOTLT_SSH($1, $2)')
+
+define(`MENU_TERM_KOI8_BOTRT_SSH',
+`"$2 (btrt,koi8)" TERM_KOI8_BOTRT_SSH($1, $2)')
+
+define(`TERM_KOI8_SSH_SCREEN',
+`TERM_TITLE_SSH_SCREEN_KOI8(`TERM_KOI8', $1, $2)')
+
+define(`MENU_TERM_KOI8_SSH_SCREEN',
+`"$2 (koi8,scr)" TERM_TITLE_SSH_SCREEN_KOI8(`TERM_KOI8', $1, $2)')
+
+define(`TERM_KOI8_BOTLT_SSH_SCREEN',
+`TERM_TITLE_SSH_SCREEN_KOI8(`TERM_KOI8_BOTLT', $1, $2)')
+
+define(`TERM_KOI8_BOTRT_SSH_SCREEN',
+`TERM_TITLE_SSH_SCREEN_KOI8(`TERM_KOI8_BOTRT', $1, $2)')
 
+define(`MENU_TERM_KOI8_BOTLT_SSH_SCREEN',
+`"$2 (btlt,koi8,scr)" TERM_KOI8_BOTLT_SSH_SCREEN($1, $2)')
 
-define(`REMOTE_HOST_TERM',
-`$1 -e ssh -4 $2')
+define(`MENU_TERM_KOI8_BOTRT_SSH_SCREEN',
+`"$2 (btrt,koi8,scr)" TERM_KOI8_BOTRT_SSH_SCREEN($1, $2)')
 
-define(`REMOTE_HOST_TERM_TITLE',
-`$1 -title $3 -n $3 -e ssh -4 $2')
+define(`TERM_UTF8_SSH',
+`TERM_TITLE_SSH(`TERM_RU_UTF8', $1, $2)')
 
-define(`REMOTE_HOST_KOI8',
-REMOTE_HOST_TERM_TITLE(TERM_KOI8, $1, $2))
+define(`MENU_TERM_UTF8_SSH',
+`"$2 (utf8)" TERM_UTF8_SSH($1, $2)')
 
-define(`REMOTE_HOST_KOI8_MENU',
-"$2 (koi8)" REMOTE_HOST_KOI8($1, $2))
+define(`TERM_UTF8_BOTLT_SSH',
+`TERM_TITLE_SSH(`TERM_RU_UTF8_BOTLT', $1, $2)')
 
-define(`REMOTE_HOST_KOI8_BOTLT',
-REMOTE_HOST_TERM_TITLE(TERM_KOI8_BOTLT, $1, $2))
+define(`TERM_UTF8_BOTRT_SSH',
+`TERM_TITLE_SSH(`TERM_RU_UTF8_BOTRT', $1, $2)')
 
-define(`REMOTE_HOST_KOI8_BOTRT',
-REMOTE_HOST_TERM_TITLE(TERM_KOI8_BOTRT, $1, $2))
+define(`MENU_TERM_UTF8_BOTLT_SSH',
+`"$2 (btlt,utf8)" TERM_UTF8_BOTLT_SSH($1, $2)')
 
-define(`REMOTE_HOST_KOI8_BOTLT_MENU',
-"$2 (koi8,btlt)" REMOTE_HOST_KOI8_BOTLT($1, $2))
+define(`MENU_TERM_UTF8_BOTRT_SSH',
+`"$2 (btrt,utf8)" TERM_UTF8_BOTRT_SSH($1, $2)')
 
-define(`REMOTE_HOST_KOI8_BOTRT_MENU',
-"$2 (koi8,btrt)" REMOTE_HOST_KOI8_BOTRT($1, $2))
+define(`TERM_UTF8_SSH_SCREEN',
+`TERM_TITLE_SSH_SCREEN_UTF8(`TERM_RU_UTF8', $1, $2)')
 
-define(`REMOTE_HOST_UTF8',
-REMOTE_HOST_TERM(TERM_UTF8, $1))
+define(`MENU_TERM_UTF8_SSH_SCREEN',
+`"$2 (utf8,scr)" TERM_UTF8_SSH_SCREEN($1, $2)')
 
-define(`REMOTE_HOST_UTF8_MENU',
-"$2 (utf8)" REMOTE_HOST_UTF8($1, $2))
+define(`TERM_UTF8_BOTLT_SSH_SCREEN',
+`TERM_TITLE_SSH_SCREEN_UTF8(`TERM_RU_UTF8_BOTLT', $1, $2)')
 
-define(`REMOTE_HOST_UTF8_BOTLT',
-REMOTE_HOST_TERM(TERM_UTF8_BOTLT, $1))
+define(`TERM_UTF8_BOTRT_SSH_SCREEN',
+`TERM_TITLE_SSH_SCREEN_UTF8(`TERM_RU_UTF8_BOTRT', $1, $2)')
 
-define(`REMOTE_HOST_UTF8_BOTRT',
-REMOTE_HOST_TERM(TERM_UTF8_BOTRT, $1))
+define(`MENU_TERM_UTF8_BOTLT_SSH_SCREEN',
+`"$2 (btlt,utf8,scr)" TERM_UTF8_BOTLT_SSH_SCREEN($1, $2)')
 
-define(`REMOTE_HOST_UTF8_BOTLT_MENU',
-"$2 (utf8,btlt)" REMOTE_HOST_UTF8_BOTLT($1, $2))
+define(`MENU_TERM_UTF8_BOTRT_SSH_SCREEN',
+`"$2 (btrt,utf8,scr)" TERM_UTF8_BOTRT_SSH_SCREEN($1, $2)')
 
-define(`REMOTE_HOST_UTF8_BOTRT_MENU',
-"$2 (utf8,btrt)" REMOTE_HOST_UTF8_BOTRT($1, $2))
+define(`TERM_KOI8_BIG_SSH',
+`TERM_KOI8_BIG -title "$2" -n "$2" -e SSH "$1"')
 
-define(`REMOTE_HOST_KOI8_BIG',
-TERM_KOI8 -geometry TERM_GEOM_BIG -title "$2" -n "$2" -e ssh -4 "$1")
+define(`MENU_TERM_KOI8_BIG_SSH',
+`"$2 (koi8)" TERM_KOI8_BIG_SSH($1, $2)')
 
-define(`REMOTE_HOST_KOI8_BIG_MENU',
-"$2 (koi8)" REMOTE_HOST_KOI8_BIG($1, $2))
+define(`TERM_KOI8_BIG_SSH_SCREEN',
+`TERM_KOI8_BIG -title "$2" -n "$2" -e SSH_SCREEN_KOI8 "$1"')
+
+define(`MENU_TERM_KOI8_BIG_SSH_SCREEN',
+`"$2 (koi8,scr)" TERM_KOI8_BIG_SSH_SCREEN($1, $2)')
 
 divert
 
@@ -147,7 +191,7 @@ divert
 #
 # Colon seperated unix directory paths for Modules, xpm files, and bitmaps
 #ModulePath /usr/lib/fvwm
-ImagePath /usr/share/pixmaps/fvwm:/usr/share/pixmaps:/usr/include/X11/bitmaps #:/usr/local/firefox/browser/chrome/icons/default:/usr/local/firefox/browser/icons
+ImagePath /usr/share/icons/hicolor/32x32/apps/:/usr/share/pixmaps/fvwm:/usr/share/pixmaps:/usr/include/X11/bitmaps #:/usr/local/firefox/browser/chrome/icons/default:/usr/local/firefox/browser/icons
 
 ############################################################################
 # COLORS and FONTS
@@ -246,10 +290,6 @@ Style "FvwmPager"       Layer 2
 # Terminals
 Style "*term"           Icon term.xpm
 Style "*rxvt"           Icon term.xpm
-Style "term-im-local"   Icon pidgin-menu.xpm
-Style "term-im-remote"  Icon rcalc2.xpm
-Style "term-im-*"       IconBox 630 -75 -2 -2, IconGrid 200 80
-Style "term-im-*"       StartsOnPage 1 1 0, StartIconic
 
 # Browsers' windows
 Style "Certificate Manager" PositionPlacement Center
@@ -258,19 +298,11 @@ Style "*Mozilla*"       PositionPlacement +0 -0
 
 Style "*Chromium*"      PositionPlacement +0 -0
 
-# IM
-Style "Gajim"           PositionPlacement +0 -0
-Style "* - Gajim"       MinOverlapPercentPlacement
-# Pidgin
-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
+# Video player(s)
+Style "*mpv"            Layer 6, PositionPlacement 200p 150p
 
 Style "*clock"          !Title, Sticky, WindowListSkip, Color Black/#40c040, NeverFocus, PositionPlacement 50-50w +1p, Layer 2
-Style "emacs"           NoPPosition
+Style "deadbeef"        PositionPlacement -0 -0
 Style "gxmessage"       PositionPlacement 50-50w +20
 Style "*lock"           !Title, Sticky, WindowListSkip
 Style "Mosaic"          NoPPosition
@@ -473,7 +505,7 @@ AddToFunc RestartFunction
 DestroyFunc UrgencyFunc
 AddToFunc UrgencyFunc
 +                             I Iconify off
-+                             I ThisWindow ("*Downloads") Break
++                             I ThisWindow ("*Downloads|Skype") Break 1
 +                             I FlipFocus
 +                             I Raise
 +                             I WarpToWindow 5p 5p
@@ -483,43 +515,29 @@ AddToFunc StartStandardSession
 +              I GotoDeskAndPage 0 0 0
 +              I TERM_KOI8
 +              I Wait TERM
-+              I GotoDeskAndPage 0 0 1
-+              I TERM_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
 +              I Wait gxmessage
-+              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 TERM_KOI8_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 TestRc (Match) Break
++              I Any ("*Mozilla Firefox") GotoDeskAndPage 0 1 1
++              I TestRc (Match) Break 1
 +              I None ("*Mozilla Firefox") FireFox
-+              I Schedule 4500 GotoDeskAndPage 0 1 0
 
 ############################################################################
 # COMPLEX FUNCTIONS
@@ -589,42 +607,55 @@ AddToFunc Raise-All           I All Raise
 
 DestroyFunc PaVuControl
 AddToFunc PaVuControl         I GotoDeskAndPage 0 1 1
-+                             I Exec exec pavucontrol
++                             I Exec exec pulseaudio --kill
++                             I Exec exec cgmem_nice 200 pulseaudio --start
++                             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 -
-changequote([`], ['])
-
-DestroyFunc DeadBeef
-AddToFunc DeadBeef            I GotoDeskAndPage 0 1 1
-+                             I Exec exec deadbeef
-
-DestroyFunc Term-Phdru
-AddToFunc Term-Phdru          I GotoDeskAndPage 1 0 1
-+                             I REMOTE_HOST_KOI8(phdru.name, phdru.name)
-
-DestroyFunc Term-Phdru-Big
-AddToFunc Term-Phdru-Big      I GotoDeskAndPage 1 0 1
-+                             I REMOTE_HOST_KOI8_BIG(phdru.name, phdru.name)
+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 -
+
+DestroyFunc Term2HostsHome
+AddToFunc Term2HostsHome      I GotoDeskAndPage 1 1 2
++                             I PipeRead 'test -n "$(ip address show tun0 up 2>/dev/null)" || test -n "$(ip address show wg0 up 2>/dev/null)" || { echo Exec exec gxmessage -buttons Ok -default Ok "ERROR: Cannot find tun0/wg0 interfaces!"; echo Wait gxmessage; echo Break 1; }'
++                             I TERM_KOI8_SSH_SCREEN(iskra-aviel.phdru.name, iskra)
++                             I Wait TERM
++                             I GotoDeskAndPage 1 0 1
++                             I TERM_KOI8_SSH_SCREEN(-D 1080 phdru.name, phdru.name)
++                             I Wait TERM
++                             I GotoDeskAndPage 1 1 2
 
 DestroyFunc FireFox
-AddToFunc FireFox             I Any ("*Mozilla Firefox") Break
+AddToFunc FireFox             I Any ("*Mozilla Firefox") Break 1
 +                             I GotoDeskAndPage 1 0 0
-+                             I Exec exec 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 start-browser firefox -P phd
 +                             I Wait "*Mozilla Firefox"
 
+DestroyFunc SuspendFireFox
+AddToFunc SuspendFireFox      I Exec exec pkill -STOP firefox
++                             I All ("*Mozilla Firefox") Iconify True
+
+DestroyFunc ResumeFireFox
+AddToFunc ResumeFireFox       I Exec exec pkill -CONT firefox
++                             I All ("*Mozilla Firefox") Iconify False
+
+DestroyFunc Chromium
+AddToFunc Chromium            I Any ("*Chromium") Break 1
++                             I GotoDeskAndPage 1 1 0
++                             I Exec LC_CTYPE=ru_RU.KOI8-R exec cgmem_nice 2000 start-browser chromium
++                             I Wait "*Chromium"
+
 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 Skype
+AddToFunc Skype               I GotoDeskAndPage 0 0 1
++                             I Exec BROWSER=firefox exec cgmem_nice 2000 skypeforlinux
 
 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 +702,17 @@ AddToMenu Window-Ops2   "Center"        Center
 
 AddToMenu Terminals     "Terminals" Title
 +               "Grey term (koi8)" TERM_KOI8
-+               "Grey term (utf8)" TERM_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
-+               "Big grey term (koi8)" TERM_KOI8 -geometry TERM_GEOM_BIG
-+               "Big grey term (utf8)" TERM_UTF8 -geometry TERM_GEOM_BIG
++               "Grey term (utf8)" TERM_RU_UTF8
++               "Grey term (heb-utf8)" TERM_HEB_UTF8
++               "Grey term (btlt,koi8)" TERM_KOI8_BOTLT
++               "Grey term (btrt,koi8)" TERM_KOI8_BOTRT
++               "Grey term (btlt,utf8)" TERM_RU_UTF8_BOTLT
++               "Grey term (btrt,utf8)" TERM_RU_UTF8_BOTRT
++               "Big grey term (koi8)" TERM_KOI8_BIG
++               "Big grey term (utf8)" TERM_UTF8_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,15 +740,25 @@ AddToMenu TermColors    "Term Colors" Title
 +                       "Term: white/black" TERM_KOI8 -fg white -cr white -bg black
 
 AddToMenu Systems       "Systems" Title
-+                       REMOTE_HOST_KOI8_MENU(phdru.name, phdru)
-+                       REMOTE_HOST_UTF8_MENU(phdru.name, phdru)
-+                       REMOTE_HOST_KOI8_BIG_MENU(phdru.name, PHDRU)
++                       "Iskra+Phdru" Term2HostsHome
++                       ""        Nop
+pushdef(`TERM_KOI8', `Exec LC_CTYPE=ru_RU.KOI8-R exec TERM -xrm "*Page: 1 1 1"')dnl
+pushdef(`TERM_RU_UTF8', `Exec LC_CTYPE=ru_RU.UTF-8 exec TERM -name URxvt -xrm "*Page: 1 1 1"')dnl
++                       MENU_TERM_KOI8_SSH_SCREEN(iskra-aviel.phdru.name, iskra)
++                       MENU_TERM_UTF8_BOTLT_SSH(iskra-aviel.phdru.name, iskra)
++                       MENU_TERM_KOI8_BIG_SSH(iskra-aviel.phdru.name, ISKRA)
++                       ""        Nop
+pushdef(`TERM_KOI8', `Exec LC_CTYPE=ru_RU.KOI8-R exec TERM -xrm "*Page: 1 0 1"')dnl
+pushdef(`TERM_RU_UTF8', `Exec LC_CTYPE=ru_RU.UTF-8 exec TERM -name URxvt -xrm "*Page: 1 0 1"')dnl
++                       MENU_TERM_KOI8_SSH_SCREEN(phdru.name, phdru)
++                       MENU_TERM_KOI8_SSH_SCREEN(-D 1080 phdru.name, phdru SOCKS5)
++                       MENU_TERM_UTF8_BOTLT_SSH(phdru.name, phdru)
++                       MENU_TERM_KOI8_BIG_SSH(phdru.name, PHDRU)
+popdef(`TERM_KOI8', `TERM_RU_UTF8')dnl
 
 AddToMenu FvwmCommands  "Fvwm Commands" Title
 +                       "Restart" Restart
 +                       "Raise all" Raise-All
-#+                       "Restart Fvwm2" Restart fvwm2
-#+                       "Start Fvwm"    Restart fvwm
 +                       "Fvwm Setup"    Popup FvwmSetup
 +                       "Fvwm Modules"  Popup FvwmModules
 +                       "" Nop
@@ -781,44 +823,33 @@ AddToMenu RootMenu "Root Menu"  Title
 +               "XSetBg"        Popup XSetBgMenu
 +               "Fvwm Commands" Popup FvwmCommands
 
+DestroyMenu OSMenu
+AddToMenu OSMenu        "OS commands:" Title
++                       "Suspend to both" Exec exec s2b
++                       "Suspend to disk" Exec exec s2d
++                       "Suspend to ram"  Exec exec s2r
+
 # This menu will fire up some often used programs
-DestroyMenu  Utilities
+DestroyMenu Utilities
 AddToMenu Utilities     "Choose one:" Title
-+                       "qPDFview" Exec exec qpdfview
-+                       "FBReader" Exec exec fbreader
-+                       ""       Nop
-+                       "GVim"     Exec exec gvim
++                       "OS"     Popup OSMenu
 +                       ""       Nop
-+                       "MyRuLb"   Exec exec "$HOME"/admin/prog/myrulib/myrulib
-+                       ""       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
-+                       "Id3Info"     Id3Info
-+                       ""       Nop
-+                       "Gajim"       Gajim
-+                       "Pidgin"      Pidgin
-+                       ""       Nop
-+                       "xload"  Exec exec xload -geometry =136x136+0+0
-+                       "Top"    TERM_KOI8 -T Top -n Top -e top
++                       "GVim (koi8)" Exec LC_CTYPE=ru_RU.KOI8-R exec gvim
++                       "GVim (utf8)" Exec LC_CTYPE=ru_RU.UTF-8  exec gvim
 +                       ""       Nop
 +                       "Refresh Screen" Refresh
 +                       "xrefresh" Exec exec xrefresh
 +                       ""       Nop
-#+                       "xcalc" Exec exec xcalc
-+                       "xclipboard" Exec exec xclipboard
-+                       "xcutsel" Exec exec xcutsel
-#+                       "xman" Exec exec xman -notopbox -geometry +150+102
-#+                       "emacs" Exec emacs -geometry 81x35+150+34
-#+                       "xv" Function warp-or-run xv "Exec exec xv -ncols 240 -geometry +0+0"
++                       "Skype" Skype
++                       "pavucontrol" PaVuControl
 
 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
++                       "Suspend FireFox" SuspendFireFox
++                       "Resume FireFox" ResumeFireFox
++                       ""       Nop
++                       "Chromium" Chromium
 
 # A wide variety of screenlocking options...
 #AddToMenu XlockMenu     "Choose one:" Title
@@ -835,33 +866,34 @@ AddToMenu Browsers      "Choose one:" Title
 #+                       "Blank" Exec exec xlock -mode blank
 
 AddToMenu XScreenSaverMenu     "Choose mode:" Title
-+                       "Blank Screen Now" Exec exec xscreensaver-command -activate
-+                       "Lock Screen Now"  Exec exec xscreensaver-command -lock
-+                       "Screen Saver Demo" Exec exec xscreensaver-command -demo
-+                       "Screen Saver Preferences"  Exec exec xscreensaver-command -prefs
-+                       "Reinitialize Screen Saver" Exec exec xscreensaver-command -restart
++                       "Blank Screen via xset" Exec xset dpms force off
+#+                       "Blank Screen Now" Exec exec xscreensaver-command --suspend
++                       "Activate A Hack Now" Exec exec xscreensaver-command --activate
++                       "Lock Screen Now"  Exec exec xscreensaver-command --lock
++                       "" Nop
++                       "Screen Saver Demo" Exec exec xscreensaver-demo
++                       "Screen Saver Settings"  Exec exec xscreensaver-settings
 +                       "" Nop
++                       "Kill Screen Saver"         Exec exec xscreensaver-command --exit
 +                       "Launch Screen Saver"       Exec exec xscreensaver
-+                       "Kill Screen Saver"         Exec exec xscreensaver-command -exit
++                       "Reinitialize Screen Saver" Exec exec xscreensaver-command --restart
 
 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
-changequote([,])
-+                       "Xli" Exec fn="`$HOME/current/projects/xsetbg/print-filename.py -e koi8-r`" && exec xli -title "`echo $fn | sed 's/ /_/g'`" "$fn"
-+                       "Xli (scaled)" Exec fn="`$HOME/current/projects/xsetbg/print-filename.py -e koi8-r`" && exec xli -title "`echo $fn | sed 's/ /_/g'`" -zoom auto "$fn"
-+                       "Open in browser" Exec exec webbrowserX -n "`$HOME/current/projects/xsetbg/print-filename.py -e koi8-r`"
++                       "Xli" Exec fn="$($HOME/current/projects/xsetbg/print-filename.py -e koi8-r)" && exec xli -title "$(echo $fn | sed 's/[ .]/_/g')" "$fn"
++                       "Xli (scaled)" Exec fn="$($HOME/current/projects/xsetbg/print-filename.py -e koi8-r)" && exec xli -title "$(echo $fn | sed 's/[ .]/_/g')" -zoom auto "$fn"
++                       "Open in browser" Exec exec cgmem_nice 4000 webbrowserX -n "$($HOME/current/projects/xsetbg/print-filename.py -e koi8-r)"
 +                       "Filename" Exec exec "$HOME"/current/projects/xsetbg/print-filename.py -e koi8-r
 +                       "XFilename" Exec "$HOME"/current/projects/xsetbg/print-filename.py | text-wrap.py | gxmessage -buttons Ok -default Ok -fn 'MESSAGE_FONT' -file -
 +                       "XFilename (wrapped)" XSetbgFilename
 +                       ""       Nop
-+                       "Xli (prev.)" Exec fn="`$HOME/current/projects/xsetbg/print-filename.py -e koi8-r 1`" && exec xli -title "`echo $fn | sed 's/ /_/g'`" "$fn"
-+                       "Xli (prev., scaled)" Exec fn="`$HOME/current/projects/xsetbg/print-filename.py -e koi8-r 1`" && exec xli -title "`echo $fn | sed 's/ /_/g'`" -zoom auto "$fn"
-+                       "Open in browser (prev.)" Exec exec webbrowserX -n "`$HOME/current/projects/xsetbg/print-filename.py -e koi8-r 1`"
-changequote([`], ['])
++                       "Xli (prev.)" Exec fn="$($HOME/current/projects/xsetbg/print-filename.py -e koi8-r 1)" && exec xli -title "$(echo $fn | sed 's/[ .]/_/g')" "$fn"
++                       "Xli (prev., scaled)" Exec fn="$($HOME/current/projects/xsetbg/print-filename.py -e koi8-r 1)" && exec xli -title "$(echo $fn | sed 's/[ .]/_/g')" -zoom auto "$fn"
++                       "Open in browser (prev.)" Exec exec cgmem_nice 4000 webbrowserX -n "$($HOME/current/projects/xsetbg/print-filename.py -e koi8-r 1)"
 +                       "Filename (prev.)" Exec exec "$HOME"/current/projects/xsetbg/print-filename.py -e koi8-r 1
 +                       "XFilename (prev.)" Exec "$HOME"/current/projects/xsetbg/print-filename.py 1 | text-wrap.py | gxmessage -buttons Ok -default Ok -fn 'MESSAGE_FONT' -file -
 +                       "XFilename (prev., wrapped)" Exec "$HOME"/current/projects/xsetbg/print-filename.py 1 | text-wrap.py -w TEXT_WIDTH -s | gxmessage -buttons Ok -default Ok -fn 'MESSAGE_FONT' -file -
@@ -903,19 +935,25 @@ changequote([`], ['])
 #*FvwmButtons: (Swallow XClock 'Exec exec xclock -update 1 -geometry -3000-3000')
 
 # 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_KOI8', `Exec "TERM" LC_CTYPE=ru_RU.KOI8-R exec TERM')dnl
+pushdef(`TERM_RU_UTF8', `Exec "URxvt" LC_CTYPE=ru_RU.UTF-8 exec TERM -name URxvt')dnl
 *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)
+popdef(`TERM_KOI8', `TERM_RU_UTF8')dnl
+pushdef(`TERM_KOI8', `Exec "TERM" LC_CTYPE=ru_RU.KOI8-R exec TERM -xrm "*Page: 1 0 1"')dnl
+*FvwmButtons: (Title "phdru (k8,s)",    Icon xterm-sgi.xpm,   Action TERM_KOI8_SSH_SCREEN(phdru.name, phdru.name))
+popdef(`TERM_KOI8')dnl
+pushdef(`TERM_KOI8', `Exec "TERM" LC_CTYPE=ru_RU.KOI8-R exec TERM -xrm "*Page: 1 1 1"')dnl
+*FvwmButtons: (Title "iskra (k8,s)",    Icon xterm-sgi.xpm,   Action TERM_KOI8_SSH_SCREEN(iskra-aviel.phdru.name, iskra))
+popdef(`TERM_KOI8')dnl
 
 *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 Skype,    Icon skypeforlinux.png, Action Exec "Skype" FvwmCommand "GotoDeskAndPage 0 0 1" && BROWSER=firefox exec cgmem_nice 2000 skypeforlinux)
+*FvwmButtons: (Title AudioPlayer,  Icon bell.xpm,      Action Exec "deadbeef" LC_CTYPE=ru_RU.KOI8-R FvwmCommand "GotoDeskAndPage 0 1 1" && exec cgmem_nice 400 deadbeef)
 #*FvwmButtons: (Title XLock,     Icon Jxlock.xpm,      Action Exec exec xscreensaver-command -lock)
 
 ############################################################################
@@ -944,7 +982,7 @@ popdef(`TERM_KOI8', `TERM_UTF8')
 #*Rlogin: Input        UserName  10   ""
 #*Rlogin: Line         expand
 #*Rlogin: Button       quit "Login" ^M
-#*Rlogin: Command      TERM_KOI8 -T term@$(HostName) -e rlogin $(HostName) $(Custom?-l $(UserName))
+`#'*Rlogin: Command      TERM_KOI8 -T term@$(HostName) -e rlogin $(HostName) $(Custom?-l $(UserName))
 #*Rlogin: Button       restart   "Clear"
 #*Rlogin: Command Beep
 #*Rlogin: Button       quit "Cancel"