I'm noting a bug in sfrestore, with 2 monitors.
My bindings are similar to the sample.ratpoisonrc:
bind End exec ratpoison -c "setenv fs1 `ratpoison -c 'sfdump'`"
bind S-End exec ratpoison -c "sfrestore `ratpoison -c 'getenv fs1'`"
bind Next exec ratpoison -c "setenv fs2 `ratpoison -c 'sfdump'`"
bind ETH exec ratpoison -c "sfrestore `ratpoison -c 'getenv fs2'`"
Stored data is as follows:
$ ratpoison -c 'getenv fs1'
(frame :number 0 :x 0 :y 0 :width 1280 :height 1024 :screenw 1280 :screenh 1024 :window 10486147 :last-access 370 :dedicated 0) 0,(frame :number 1 :x 0 :y 0 :width 1280 :height 1024 :screenw 1280 :screenh 1024 :window 10632053 :last-access 369 :dedicated 0) 1,
$ ratpoison -c 'getenv fs2'
(frame :number 0 :x 0 :y 0 :width 1280 :height 1024 :screenw 1280 :screenh 1024 :window 10632053 :last-access 367 :dedicated 0) 0,(frame :number 1 :x 0 :y 0 :width 1280 :height 1024 :screenw 1280 :screenh 1024 :window 10485923 :last-access 366 :dedicated 0) 1,
When focus is in the left monitor, running sfrestore works as expected.
When focus is in the right monitor, running sfrestore only works as expected for fs1; however, for fs2, it restores the frame to the right monitor, but the left monitor is *blank*. In this case, the expected window is restored to the left monitor when I run "nextscreen".