web-dev-qa-db-ja.com

コマンドラインからGNOME / Waylandディスプレイ構成を構成する

ウェイランドセッションのコマンドラインからMutter/GNOMEシェルのモニター構成を構成する可能性はありますか?それは今まで実装されていませんか?

Xrandrコマンドを使用していくつかの変更を試みました(ただし、xrandrの「x」がXServerのツールであることを示しているため、これが機能しないことは明らかです)。

このコマンドは効果がありません(Fedora 23/GNOME 3.18.2を使用)

xrandr --output XWAYLAND0 --off

ただし、表示設定に含まれるgnome設定ダイアログは機能しています。設定ファイルまたはコマンドラインツールへのヒントはいいでしょう...

5
flammi88

@don_crisstiがコメントで指摘したように、Mutterドキュメントはdbusとのインターフェースを指定します。

https://gitlab.gnome.org/GNOME/mutter/blob/master/src/org.gnome.Mutter.DisplayConfig.xml

設定シリアルとコネクタを見つける必要があります:

構成シリアルは、

gdbus call \
--session \
--dest=org.gnome.Mutter.DisplayConfig \
--object-path /org/gnome/Mutter/DisplayConfig \
--method org.gnome.Mutter.DisplayConfig.GetResources

私の場合はuint32 3なので、3を使用します

コネクタ:ls /sys/class/drmに表示されます。私の場合、試行錯誤でcard0-DP-2が正しいため、DP-2を使用しています。 DisplayConfig.GetResourcesの出力を理解して、それを使用することもできます。

他のオプションを設定すると、最終的なコマンドは次のようになります。

gdbus call \
--session \
--dest=org.gnome.Mutter.DisplayConfig \
--object-path /org/gnome/Mutter/DisplayConfig \
--method org.gnome.Mutter.DisplayConfig.ApplyMonitorsConfig \
3 1 "[(0, 0, 1, 0, true, [('eDP-1', '[email protected]', [] )] )]" "[]"

残念ながら、適切な形式で解決策(別名「モードID」)を渡しても、これは機能しません。

Error: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: Invalid mode '[email protected]' specified
(According to introspection data, you need to pass 'uua(iiduba(ssa{sv}))a{sv}')

編集:

リフレッシュレートは、DisplayConfig.GetResourcesが報告している正確な文字列である必要がある理由を見つけました。悲しいことにリフレッシュレートとして欲しいものを設定することはできません!したがって、59.810825347900391などの任意の文字列を次のように使用する必要があります。

gdbus call \
--session \
--dest=org.gnome.Mutter.DisplayConfig \
--object-path /org/gnome/Mutter/DisplayConfig \
--method org.gnome.Mutter.DisplayConfig.ApplyMonitorsConfig \
3 1 "[(0, 0, 1, 0, true, [('eDP-1', '[email protected]', [] )] )]" "[]"

結論として、これは非常に限られた用途です。 CVTまたはGTFタイミングを生成して表示モードを追加する方法があるはずですが、DisplayConfigにはそのためのインターフェースがないようです:(

2