Saya perlu mengotomatisasi konfigurasi desktop melalui Wayang, terminal virtual atau ssh.
Sayangnya, doa gsettings
via ssh atau terminal virtual memberi:
gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ hsize "4"
(process:29520): dconf-WARNING **: failed to commit changes to dconf: Cannot autolaunch D-Bus without X11 $DISPLAY
Ketika saya mengatur $DISPLAY
dengan export DISPLAY=:0.0
itu memberikan kesalahan lain:
(process:29862): dconf-WARNING **: failed to commit changes to dconf: Could not connect: Connection refused
Apa yang dapat saya?
remote-access
dconf
gsettings
puppet
remote-login
Adam Ryczkowski
sumber
sumber
DBUS_SESSION_BUS_ADDRESS
, tetapi jugaXDG_RUNTIME_DIR
.Jawaban:
Kuncinya adalah mengatur
DBUS_SESSION_BUS_ADDRESS
variabel lingkungan.Di utas ini saya menemukan skrip berikut, yang membantu untuk mendapatkan nilai yang benar dari variabel itu. Itu membutuhkan nama proses, yang berjalan di desktop, di mana kami ingin mengubah pengaturan dbus. (Bisa ada lebih dari 1 sesi grafik berjalan secara paralel). Mari kita sebut saja
discover_session_bus_address.sh
Dengan skrip ini kita dapat melakukan hal berikut, dengan asumsi
unity
proses sedang berjalan di desktop, di mana kita ingin menerapkan pengaturan kita:Dan semuanya akan beres.
sumber
Saya mengalami masalah yang sama saat mencoba membuat perubahan pengaturan untuk gambar gelandangan melalui SSH selama penyediaan.
Solusi ini /ubuntu//a/326773 melakukan trik untuk saya tanpa memancing untuk koneksi aktif dan mencoba menipu lingkungan. YMMV ...
sumber
Saya memiliki skrip POST-Install yang mengatur gsetting saya. Karena saya menjalankan skrip sebagai sudo EUID adalah 0, karena itu saya harus mencari $ RUID (Real User ID).
inilah pendekatan saya:
sumber
$USER
variabel lingkungan, dan UID Anda dalam$UID
variabel. Saat berjalansudo
, mereka berada di$SUDO_USER
dan$SUDO_UID
variabel. Yang mengatakan, mengapa Anda bahkan menjalankan ini dengansudo
di tempat pertama? Menggunakansudo -u $YOUR_USER
sama seperti tidak menggunakansudo
sama sekali. Akhirnya,who | awk . . .
perintah Anda tidak mendapatkan ID Anda , ia mencetak semua ID dari semua pengguna yang saat ini masuk ke sistem.