Py3status: implement real force_on_change

Created on 13 Dec 2019  路  5Comments  路  Source: ultrabug/py3status

Hi,

currently the code of force_on_change always enforces the configured monitor setups when the xrandr module is called.
On my system this behaviour causes a reset to configured force_on_change layouts when I switch the layout using the mouse.

As the behaviour and the implementation do not match the behaviour suggested by the option name I implemented a check that run the enforcement only when the monitor setup changed.
I'll open a PR for that.

Regards,
Andrwe

Most helpful comment

Can we have your config too? And number of outputs? To reproduce / understand this issue.

All 5 comments

Can we have your config too? And number of outputs? To reproduce / understand this issue.

@lasers
Sure here is the xrandr config section:

xrandr {
        fallback = True
        force_on_start = "eDP-1=HDMI-1"
        eDP-1_mode = "1920x1080"
        DP-1_pos = "right-of eDP-1"
        HDMI-1_pos = "left-of eDP-1"
        HDMI-2_pos = "right-of eDP-1"
        # py3status > 3.7
        #HDMI-1_primary = True
        force_on_change = ["HDMI-1", "HDMI-1=eDP-1", "eDP-1"]
}

And the outputs:

Screen 0: minimum 320 x 200, current 2560 x 1440, maximum 8192 x 8192
eDP-1 connected primary (normal left inverted right x axis y axis)
   1920x1080     60.02 +  60.01    59.97    59.96    59.93    48.01  
   1680x1050     59.95    59.88  
   1600x1024     60.17  
   1400x1050     59.98  
   1600x900      59.99    59.94    59.95    59.82  
   1280x1024     60.02  
   1440x900      59.89  
   1400x900      59.96    59.88  
   1280x960      60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1360x768      59.80    59.96  
   1280x800      59.99    59.97    59.81    59.91  
   1152x864      60.00  
   1280x720      60.00    59.99    59.86    59.74  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   960x540       59.96    59.99    59.63    59.82  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   800x512       60.17  
   700x525       59.98  
   800x450       59.95    59.82  
   640x512       60.02  
   720x450       59.89  
   700x450       59.96    59.88  
   640x480       60.00    59.94  
   720x405       59.51    58.99  
   684x384       59.88    59.85  
   680x384       59.80    59.96  
   640x400       59.88    59.98  
   576x432       60.06  
   640x360       59.86    59.83    59.84    59.32  
   512x384       60.00  
   512x288       60.00    59.92  
   480x270       59.63    59.82  
   400x300       60.32    56.34  
   432x243       59.92    59.57  
   320x240       60.05  
   360x202       59.51    59.13  
   320x180       59.84    59.32  
HDMI-1 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+
   1920x1200     59.95  
   1920x1080     60.00    50.00    59.94  
   1920x1080i    60.00    50.00    59.94    50.00  
   1680x1050     59.88  
   1280x1024     75.02    60.02  
   1440x900      59.90  
   1280x720      60.00    50.00    59.94  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x576i      50.00  
   720x480       60.00    59.94  
   720x480i      60.00    59.94  
   640x480       75.00    60.00    59.94  
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
DVI-I-3-3 disconnected (normal left inverted right x axis y axis)
DVI-I-2-2 disconnected (normal left inverted right x axis y axis)
DVI-I-1-1 disconnected (normal left inverted right x axis y axis)

When I'm switching the layout using the mouse click feature (e.g. from HDMI-1 to eDP-1+HDMI-1) the monitors are configured and with the next call by py3status they are switched back to HDMI-1 as it's the first force_on_change layout.
After applying the patch of #1974 the modules does not switch back.

@ultrabug ?

I believe this one got fixed, if not plz reopen

Was this page helpful?
0 / 5 - 0 ratings