miracle-wm-org / miracle-wm

Miracle is a Wayland tiling window manager built on Mir
https://miracle-wm.org
GNU General Public License v3.0
406 stars 13 forks source link

Side_by_side output support? #79

Open APokorny opened 7 months ago

APokorny commented 7 months ago

I have a multi-monitor setup, how can you set up a side_by_side layout? I think this is supported somehow by miral - but I dont get how to setup miracle-wm to enable that.

mattkae commented 7 months ago

Hi @APokorny ! This is supported. You can do the following:

miracle-wm --display-config sidebyside

Let me know if that works for you :)

mattkae commented 7 months ago

Also, see miracle-wm --help for all of the options. There are many of them. I'll try and expose them in a nice way in miracle one of these days

APokorny commented 7 months ago

When using the snap it should be enough to add:

display-config: sidebyside

to a $HOME/.config/miracle-wm.config ? because miracle-wm will be argv[0] and MirRunner adds .config?

That does not seem to work for me..

mattkae commented 7 months ago

I would also expect that to work. It should read:

display-config=sidebyside

Maybe the colon is your issue there?

APokorny commented 7 months ago

Hmm makes no difference - is there a way to get log output..

mattkae commented 7 months ago

Does it work when you run with the command line param? Wondering if its a config parsing issue or something else

APokorny commented 7 months ago

no that parameter didnt help foo.log

APokorny commented 7 months ago

oh is that an nvidia issue... the logs dont look good..

mattkae commented 7 months ago

Is nothing showing when doing sidebyside? Or is the one monitor on and usable?

APokorny commented 7 months ago

both monitors are on, but on the second monitor a stretched version of the first monitor frame buffer is composited.

mattkae commented 6 months ago

Okay that's good news at least. That means we're at least trying to composite there. It is a mirror of the first monitor though, correct?

APokorny commented 6 months ago

yes

mattkae commented 6 months ago

That sounds like the option simply isn't working in your case, but I'd have to dig deeper there

mecattaf commented 2 months ago

Hey Matt, wondering if we can have a similar implementation to wayland's kanshi for miracle-wm? I like to have my output settings separate from my swaywm config, and kanshi allows for dynamic display configuration.

For example please find my current kanshi config below:

profile Thinkpad {
    output eDP-1 scale 1.5 position 0,0
    exec busctl --user set-property rs.wl-gammarelay /outputs/eDP_1 rs.wl.gammarelay Temperature q 3500
}

profile Duo {
    output eDP-1 scale 2 position 0,0   adaptive_sync on
    output eDP-2 scale 2 position 0,900 adaptive_sync on
    exec busctl --user set-property rs.wl-gammarelay /outputs/eDP_1 rs.wl.gammarelay Temperature q 3850
    exec busctl --user set-property rs.wl-gammarelay /outputs/eDP_2 rs.wl.gammarelay Temperature q 3350
    exec swaymsg input "1267:16986:ELAN9009:00_04F3:425B" map_to_output eDP-1
    exec swaymsg input "1267:16987:ELAN9008:00_04F3:425A" map_to_output eDP-2
    exec swaymsg input "1267:16986:ELAN9009:00_04F3:425B_Stylus" map_to_output eDP-1
    exec swaymsg input "1267:16987:ELAN9008:00_04F3:425A_Stylus" map_to_output eDP-2
}

profile Desktop {
    output eDP-1 scale 2 position 0,0   adaptive_sync on
    output eDP-2 scale 2 position 0,900 adaptive_sync on
    output HDMI-A-1 mode 2560x1440@119.998Hz scale 1 position 1440,0
    exec busctl --user set-property rs.wl-gammarelay /outputs/eDP_1 rs.wl.gammarelay Temperature q 3850
    exec busctl --user set-property rs.wl-gammarelay /outputs/eDP_2 rs.wl.gammarelay Temperature q 3350
    exec busctl --user set-property rs.wl-gammarelay /outputs/HDMI_A_1 rs.wl.gammarelay Temperature q 4000
    exec swaymsg input "1267:16986:ELAN9009:00_04F3:425B" map_to_output eDP-1
    exec swaymsg input "1267:16987:ELAN9008:00_04F3:425A" map_to_output eDP-2
    exec swaymsg input "1267:16986:ELAN9009:00_04F3:425B_Stylus" map_to_output eDP-1
    exec swaymsg input "1267:16987:ELAN9008:00_04F3:425A_Stylus" map_to_output eDP-2
}

You will also note here that I use wl-gammarelay-rs to control screen temperature as it is the only way I found to set different temperature on different displays. In hyprland we have to resort to shaders which is very annoying as it remains when we take screenshots (leaving me with a very orange screenshot most of the time).

Thanks!