web-dev-qa-db-ja.com

デフォルト/グローバルGnomeプリファレンスの設定(Gnome 3)

最近、Gnome2からGnome3に切り替えました(そしてその前に最近Linuxに切り替えました)。Gnome3には、GUIを介して設定を変更するための、特にデフォルト設定を変更しないためのオプションがあまりありません。

具体的には、ラップトップのふたを閉じるアクションを変更しようとしています。これは、ふたを閉じるときに中断したくないためです。 (これは、gnome-Tweak-toolを使用して自分のユーザー用に変更しました。)

私はいくつかの失敗した刺し傷を取りました。これは、rootまたはgdmSudoであるかどうかに関係なく、一部のユーザーのSudoと関係があると思います。

私は試しました(GnomeセッションのコンソールウィンドウとリモートマシンからのSSHセッションで):

> Sudo gsettings get org.gnome.settings-daemon.plugins.power lid-close-ac-action
'suspend'
> Sudo gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action "blank"

このため、X11を初期化できないというエラーが表示されます。

私も試しました:

> Sudo -u gdm gsettings get org.gnome.settings-daemon.plugins.power lid-close-ac-action

しかし、これは私が設定したことのないgdmのパスワードを要求します。 passwdを続けましたが、次のように表示されます:Cannot unlock the password for `gdm'!そして、ユーザーのロックを強制的に解除しようとすることもできますが、この抵抗は、おそらくこのパスを放棄する必要があることを示しています。

これらのそれぞれが独自の質問を正当化するかどうかはわかりませんが、最終的には、ラップトップの蓋を閉じる設定(すべてのユーザーのデフォルト)を設定しようとしていますが、より一般的に知りたいですGnomeのデフォルト設定を設定する方法。

3
palswim

ユーレカ!

ここでの答えの組み合わせのおかげで、 ログイン画面の壁紙の設定に関する議論 、および 別のコンソールからのXプログラムの実行に関する一般的な議論 、私はついに解決することができましたこの。

設定をgdmユーザーとして設定する必要があります。ただし、X11エラーが原因でgsettings set ...gdmとして実行するだけでは失敗します。したがって、コマンドをXセッションにアタッチする必要もあります。

しかし、Sudo su gdmは私が望んでいたようにターミナルをgdmとして与えなかったので、私は最終的に必要なコマンドを実行するための単純なシェルスクリプトを作成しました。

setblank.sh:

#!/bin/sh

export DISPLAY=":0"
export XAUTHORITY="$1"
export XAUTHLOCALHOSTNAME="localhost"

gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action "blank"

または、より一般的には(gset.sh):

#!/bin/sh

export DISPLAY=":0"
export XAUTHORITY="$1"
export XAUTHLOCALHOSTNAME="localhost"

gsettings set $2 $3 $4

これを入手したら、次のように呼び出すことができます。

Sudo sudo -u gdm gset.sh Xauthority-file org.gnome.settings-daemon.plugins.power lid-close-ac-action "blank"

そして、これはトリックを行います!

Xauthorityファイルに関するもう1つの注意事項:ユーザーのXauthorityファイルを、gdmが読み取る権限を持つファイルにコピーする必要があります。 (簡単で汚い例:cp $XAUTHORITY /tmp/.Xauthorityおよびchown gdm:root /tmp/.Xauthority

1
palswim

Sudo su gdm -c 'gsettings …'(またはSudo sudo -u gdm gsettings …)を実行します。コマンドSudo -u gdmは、Sudoを介してコマンドをgdmとして実行するための特定の権限がないため、パスワードの入力を求められます。ただし、rootは任意のユーザーを奪う可能性があり、rootになることができるため、最初にrootになり、次にgdmになります。

gsettingsユーザーがログイン画面の電源管理設定を設定するのでgdmを実行するかどうかはわかりません。試すもう1つの可能性は、/etc/gdm/Init/(またはディストリビューションがGdmの構成ファイルを保持している場所)のスクリプトからコマンドを実行することです。

Gdmユーザーとしてログインすることは想定されていません。これは、OSがファイルのグループの所有権とそれに関連する読み取り、書き込み、実行のアクセス許可を割り当てるための便利な方法です。

試行中にコンソールまたはxsessionにログインしていますか

gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action 'blank'

Joeuserとしてログインし、Sudo su -を実行してから、

gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action 'blank'

エラーは発生しませんでした

または、rootとして、すべてのユーザーのデフォルトであるXMLスキーマファイルを編集することもできます。

Sudo vi /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.power.gschema.xml

'lid-close-ac-action'キーを検索し、<default>値を変更します

1
bsd

アタッチするXセッションを見つける代わりに、dbus-launchコマンドでもこれを実行できることを発見しました。

root/gdm /他の人のGnome設定を次のパターンで更新できます。

Sudo sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action "blank"
1
palswim