【问题标题】:Awesome WM: automatically display client across two monitors很棒的 WM:在两个显示器上自动显示客户端
【发布时间】:2016-11-30 09:34:07
【问题描述】:

我有两台显示器,开箱即用的 AwesomeWM 完全按照我喜欢的方式工作。不过,我想启动一个特别宽的应用程序 (avidemux),以便它在 两个 屏幕上水平延伸。

desired: app across both screens

我试图通过以下方式实现这一目标:

 { rule = { class = "avidemux" }, properties = { floating = true },
    callback = function(c)
        c:geometry( { x = 0, y = 0, width = 5120, height = 1440 } )
    end
}

有了这个改变,avidemux 窗口确实很宽,但是窗口左上角远离屏幕,窗口右边框与我的左显示器右侧齐平。

actual: app on one screen

我正在使用 awesomewm 3.5.6 (Ubuntu 16.04),使用“nvidia”驱动程序。我的 rc.lua 非常标准,但很早就调用 xrandr 来设置我喜欢的屏幕:

xrandr --output DP-3 --mode 2560x1440 --pos 2560x0 --rotate normal --output DP-2 --mode 2560x1440 --pos 0x0 --rotate normal --output DP-1 --off - -输出 DP-0 --off

欢迎提出任何建议。谢谢!

【问题讨论】:

标签: awesome-wm


【解决方案1】:

在应用几何之前尝试将窗口发送到右侧监视器,例如

callback = function(c)
    c.screen = 2
    c:geometry( { x = 0, y = 0, width = 5120, height = 1440 } )
end

【讨论】:

  • 谢谢,但运气不好。将 c.screen 放在 c:geometry 之前没有任何效果。将它放在之后会导致新窗口出现在屏幕 2 上,但受限于窗口 2 的尺寸。
【解决方案2】:

经过进一步的实验,这是可行的:

c:geometry( { x = SCREEN1_WIDTH, y = 0, width = SCREEN1_WIDTH + SCREEN2_WIDTH, height = SCREEN1_HEIGHT } )

在我的情况下,有两个 2560x1440 屏幕:

c:geometry( { x = 2560, y = 0, width = 5120, height = 1440 } )

该解决方案不会以任何理智的方式概括,例如我无法获得 100px 的右屏幕重叠:

c:geometry( { x = 100, y = 0, width = 2660, height = 1440 } )

此外,负 x 和 y 不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    相关资源
    最近更新 更多