Re: Dynamic multimonitor setup question

From: Mateusz Piotrowski <0mp_at_FreeBSD.org>
Date: Tue, 15 Mar 2022 11:46:45 UTC
Hi,

On 15/03/2022 12:01, Milan Obuch wrote:
> On Tue, 15 Mar 2022 11:24:51 +0100
> Mateusz Piotrowski <0mp@FreeBSD.org> wrote:
>
>> On 15/03/2022 03:03, Alexey Dokuchaev wrote:
>>> On Mon, Mar 14, 2022 at 10:16:46AM +0100, Milan Obuch wrote:
[snip]
>>> Per 'man srandrd', if started with 'srandrd -v -n some_script', it
>>> should output some debug data (-v), stay in foreground (-n) and
>>> invoke some_script when monitor is being plugged or unplugged. It
>>> does not work for me. Something happens just when I invoke
>>> 'xrandr' in another terminal - I see some debug output, but the
>>> script is not invoked.
>>>
>>> Is anybody here using x11/srandrd? I can debug the script
>>> invocation, but if the event is not detected without external
>>> intervention, it is not really usable for me. And I have no
>>> experience with debugging the issue in graphics stack...
>> I'm using srandrd to recenter my wallpapers when I configure an
>> external monitor (I always do it manually with either arandr or
>> xrandr).
[snip]
>>
> Thanks for response. Using similar method to start, with full path
> pointing to handler, I am getting script called and it does what is
> intended... but I have just
>
> ---- 8< ------------------------------------------------------------
>
> #! /bin/sh
>
> /usr/bin/env>/home/milan/randr-log-env
>
> ---- 8< ------------------------------------------------------------
>
> in my script, so nothing is currently done, just logged.
>
> The main problem, however, still remains - action is done not when
> cable is being plugged/unplugged, but xrandr or arandr must be called
> manually, then intended action occurs.
Unfortunately, I don't have a solution at hand for this use case.
>
> What hardware do you have?

I'm also using i915kms.ko, but I don't think it is a kernel module issue. To me what you are 
describing sounds like something that could be configured with a mix of xorg.conf and devd(8) 
(although even devd(8) could be an overkill here).

Best,

Mateusz