David Uhden Collado wrote:
Sadeep wrote:
Hello,

Having display issues with fvwm (v2.2.5, the one in the base system). On
a 32" external monitor, it only uses the top half of the screen. I have
a 3x3 fvvwm desktop. On start-up, only the 1st quadrant is used:

+-------------------+-------------------+
|                   |                   |
|         x         |                   |
|                   |                   |
+-------------------+-------------------+
|                   |                   |
|                   |                   |
|                   |                   |
+-------------------+-------------------+

If I open firefox, which is pinned to page 2, display changes to this:

+-------------------+-------------------+
|                   |                   |
|       xterm       |      firefox      |
|                   |                   |
+-------------------+-------------------+
|                   |                   |
|                   |                   |
|                   |                   |
+-------------------+-------------------+

If I open a 3rd page, it's rendered on the 1st quadrant. If I switch to
page 2, page 2 and 3 render on the first two quadrants. Restarting fvwm,
xsession, or rebooting the machine (after connecting the monitor)
doesn't fix it.

$ xrandr -q:

Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 16384 x 16384
eDP-1 connected primary (normal left inverted right x axis y axis)
    1920x1080     60.00 +  60.00    48.00
    1680x1050     60.00
    (omitted...)
    320x180       59.99
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-2 connected 3840x2160+0+0 (normal left inverted right x axis y
axis) 697mm x 392mm
    3840x2160     30.00*   25.00    24.00    29.97    23.98
    (omitted...)
    640x480       60.00    59.94

.xsession content:

export LANG=en_US.UTF-8
xsetroot -def
srandrd ~/.config/srandrd/handler.sh &
ssh-agent fvwm

srandr handler:

#!/bin/sh

if [ "$SRANDRD_OUTPUT" = "HDMI-2" ]; then
     case "$SRANDRD_EVENT" in
         connected)
             xrandr --output eDP-1 --off --output HDMI-2 --auto
             xinput set-prop /dev/wsmouse "Device Accel Constant
Deceleration" 0.3
             ;;
         disconnected)
             xrandr --output HDMI-2 --off --output eDP-1 --auto
             xinput set-prop /dev/wsmouse "Device Accel Constant
Deceleration" 1.0
             ;;
     esac
fi

.fvwmrc:

DesktopSize 3x3

Style "*" ClickToFocus, SmartPlacement

# Lock screen edges: prevent viewport jumping
EdgeScroll 0 0
EdgeThickness 0
EdgeResistance -1 -1

Style "firefox"  StartsOnPage 0 1 0
Style "Chromium-browser" StartsOnPage 0 1 1
Style "Xmessage" Sticky, WindowListSkip, CirculateSkip

Key Return  A   4   Exec xterm
Key p       A   4   Exec dmenu_run
Key m       A   4S  Exec xterm -name "Mutt" -e mutt
Key c       A   4S  CloseAndRefocus
Key m       A   4   Maximize 100 100
Key i       A   4   ShowStatus
Key r       A   4S  Restart /usr/X11R6/bin/fvwm
Key q       A   4S  Quit

Key Tab     A   M   WindowList Root 100 0 NoGeometry, CurrentAtEnd

Key j       A   4   Next (CurrentPage !Iconic) FocusAndRaise
Key k       A   4   Prev (CurrentPage !Iconic) FocusAndRaise

# Change page
Key 1       A   4   GotoPageAndFocus 0 0
Key 2       A   4   GotoPageAndFocus 1 0
Key 3       A   4   GotoPageAndFocus 2 0
Key 4       A   4   GotoPageAndFocus 0 1
Key 5       A   4   GotoPageAndFocus 1 1
Key 6       A   4   GotoPageAndFocus 2 1
Key 7       A   4   GotoPageAndFocus 0 2
Key 8       A   4   GotoPageAndFocus 1 2
Key 9       A   4   GotoPageAndFocus 2 2

# Move active window to page
Key 1       A   4S  MoveToPage 0 0
Key 2       A   4S  MoveToPage 1 0
Key 3       A   4S  MoveToPage 2 0
Key 4       A   4S  MoveToPage 0 1
Key 5       A   4S  MoveToPage 1 1
Key 6       A   4S  MoveToPage 2 1
Key 7       A   4S  MoveToPage 0 2
Key 8       A   4S  MoveToPage 1 2
Key 9       A   4S  MoveToPage 2 2

DestroyFunc FocusAndRaise
AddToFunc FocusAndRaise
+ I Focus
+ I Raise

DestroyFunc CloseAndRefocus
AddToFunc CloseAndRefocus
+ I Prev (CurrentPage !Iconic) FocusAndRaise
+ I Close

DestroyFunc GotoPageAndFocus
AddToFunc GotoPageAndFocus
+ I GotoPage $0 $1
+ I FlipFocus

DestroyFunc GotoPageAndFocus
AddToFunc GotoPageAndFocus
+ I GotoPage $0 $1
+ I Next (CurrentPage !Iconic) FocusAndRaise

DestroyFunc ShowStatus
AddToFunc ShowStatus
+ I Exec exec ~/.fvwm/status

No .xsession-errors.

I've used the same .xsession and srandr handler with dwm without
problems.


Who would've thought that software that hasn't been updated in two decades will have problems with modern workflows?

I maintain my own fork of OpenBSD's fvwm, so if you want to send a patch, I'd be happy to take it. I don't personally use fvwm, but I don't like seeing my own work - or other people's - thrown away, so I'm keeping it alive.

I also saved the ext4 driver that was rejected. It might be worth porting it to FUSE someday; that could actually be pretty useful.

https://github.com/daviduhden/wip-openbsd-src

Could you tell me if this solves the problem?

https://github.com/daviduhden/wip-openbsd-src/commit/db20a58945c8aa2578562d478fc47e14f9a3a429

Reply via email to