設置預設/全域 Gnome 首選項 (Gnome 3)
我最近從 Gnome 2 切換到了 Gnome 3(並且在此之前最近切換到了 Linux),而 Gnome 3 並沒有給我提供太多通過 GUI 更改設置的選項,尤其是不更改預設設置。
具體來說,我正在嘗試更改筆記型電腦上的蓋子關閉操作,因為我不希望它在蓋子關閉時暫停。(我通過 gnome-tweak-tool 為我自己的使用者更改了這個。)
我已經打了幾次不成功的刺。我想這與
sudo
某些使用者有關,無論sudo
是root還是gdm。我嘗試過(在 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 的預設首選項。
尤里卡!
感謝這裡的答案組合,關於設置登錄螢幕桌面的討論,以及關於從另一個控制台執行 X 程序的一般討論,我終於設法解決了這個問題。
我確實需要將設置設置為
gdm
使用者。但是,簡單地執行gsettings set ...
asgdm
會因為 X11 錯誤而失敗。因此,我還需要將命令附加到 X 會話。但是,
sudo su gdm
並沒有gdm
像我希望的那樣給我終端,所以我最終創建了一個簡單的 shell 腳本來執行我需要的命令。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 文件的附加說明:您需要將使用者的 Xauthority 文件複製到 gdm 有權讀取的文件中。(對於一個快速而骯髒的例子:
cp $XAUTHORITY /tmp/.Xauthority
和chown gdm:root /tmp/.Xauthority
)
執行
sudo su gdm -c 'gsettings …'
(或sudo sudo -u gdm gsettings …
)。該命令sudo -u gdm
會提示您輸入密碼,因為您沒有gdm
通過 sudo 執行命令的特定授權。但是root可以篡奪任何使用者,你可以成為root,所以先成為root,然後成為gdm
.請注意,我不知道
gsettings
以gdm
使用者身份執行是否會為登錄螢幕設置電源管理首選項。另一種嘗試的可能性是從/etc/gdm/Init/
(或您的發行版保存 Gdm 配置文件的任何位置)中的腳本執行命令。