Terapkan pengaturan tampilan ke semua akun pengguna?

14

Saya menghabiskan beberapa waktu untuk memperbaiki pengaturan untuk beberapa monitor, dan itu berfungsi dengan baik ketika saya masuk, tetapi tidak benar di layar login atau untuk pengguna lain.

Bagaimana cara mengatur pengaturan tampilan secara global untuk semua pengguna dan layar login?

keajaiban
sumber
Bagaimana Anda mengaturnya? dari GUI atau baris perintah, dan apa tepatnya pengaturan Anda?
Jacob Vlijm
Dengan "Tampilan Layar" GUI saya pikir, pengaturan muncul di sana pula. Dua monitor, satu diputar.
mirams
askubuntu.com/questions/360886/… mengatur agar login sama dengan satu pengguna, yang sangat membantu. askubuntu.com/questions/372729/... tampaknya membahas pengaturan xorg lama yang tidak lagi digunakan pada 14,04 (saya pikir?). Tidak dapat menemukan pertanyaan atau jawaban untuk bagaimana melakukan ini pada 14,04 ...
mirams
Saya mencoba jawaban itu, layar diputar untuk login dengan benar, dan kemudian tidak diputar untuk pengguna sesudahnya (bahkan setelah menghapus
monitor.xml
Saya sedikit terkejut dengan karunia itu, jika Anda mengatur monitor Anda, jalankan sudo cp ~/.config/monitors.xml /var/lib/lightdm/.config/seperti yang disarankan sebelumnya, + solusi di bawah ini, Anda memiliki pengaturan untuk semua pengguna (termasuk pengguna baru) persis seperti yang Anda jelaskan.
Jacob Vlijm

Jawaban:

14

Bergantung pada cara Anda mengatur sistem Anda, mungkin semudah menyalin monitors.xmlfile dari pengguna yang diatur dengan benar ke semua pengguna:

Untuk menguji ini untuk satu pengguna:

cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /home/TestUser/.config/

kemudian keluar TestUser jika sudah masuk , masuk kembali dan lihat apakah semuanya sudah benar.

Perintah untuk semua pengguna:

cp /home/CorrectUser/.config/monitors.xml /tmp/
for szUser in /home/* ; do sudo cp --preserve=timestamps /tmp/monitors.xml $szUser/.config/ ; done

Perintah untuk layar masuk:

sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /var/lib/lightdm/.config/

Perintah untuk semua pengguna di masa depan ¹:

sudo mdkdir -p /etc/skel/.config
sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /etc/skel/.config/

Catatan¹: Semua pengguna yang akan Anda buat di masa depan

Fabby
sumber
1
Saya sudah menyarankan itu di komentar (dan dalam jawaban saya sebelumnya, tetapi dibatalkan), tetapi OP menyebutkan itu tidak cukup. Ini hanya berfungsi untuk layar masuk :) Ini juga tidak berfungsi untuk pengguna baru kecuali Anda menyalinnya lagi ke pengguna tersebut.
Jacob Vlijm
@JacobVlijm: Baca lagi ... Tambang untuk layar masuk dan semua pengguna ... : P (meninggalkannya di sana sebagai komentar di bawah ini oleh OP bahwa itu tidak berfungsi akan memperingatkan poster lain dari mengetik semua itu ketiga kalinya) > :-)
Fabby
1
Saya tidak menyarankan menyalin file ke semua pengguna, karena ini: Saya ingin solusi yang menerapkan pengaturan untuk semua akun pengguna (dan yang akan datang), dan juga membuat layar login terlihat benar. menambahkan /etc/xdg tampaknya menjadi satu-satunya trik yang melakukan itu kepada pengguna baru juga.
Jacob Vlijm
@JacobVlijm: ah, ketinggalan yang itu! (Solusi tambahan untuk itu juga) ;-)
Fabby
2
Ini adalah jawaban terbaik - atur semua monitor dengan benar, dan segera bekerja untuk pengguna tamu. Sebagai bonus - apakah ada cara untuk juga menyalin pengaturan "Peluncur Peluncur" dari GUI Pengaturan Tampilan juga? Pada pengguna saya ini hanya pada satu monitor, tetapi pada keduanya untuk pengguna baru / tamu.
mirams
3

Untuk mengatur konfigurasi layar Anda untuk setiap pengguna saat masuk (ini tidak akan mengubah konfigurasi pada layar masuk), Anda dapat membuat .desktopfile di/etc/xdg/autostart

Bagaimana cara melakukannya

  1. cari tahu nama layar yang ingin diputar dengan menjalankannya xrandr. Ini akan menampilkan sejumlah baris, di antara beberapa baris yang tampak seperti:

    VGA-0 connected
    

    Ini memberi Anda informasi tentang nama layar yang terhubung.

  2. Pilih yang ingin Anda putar, dalam contoh saya di bawah ini VGA-0
  3. Buat peluncur dengan (misalnya) gedit:

    sudo -i gedit /etc/xdg/autostart/set_screens.desktop
    

    Rekatkan teks di bawah ini ke dalam file:

    [Desktop Entry]
    Name=set_screens
    Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
    Type=Application
    

    ganti di baris:

    Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
    

    String: VGA-0dengan nama layar Anda (diputar).

Catatan penting

  • Dalam barisan

    Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
    

    Saya termasuk a sleep 10. Itu karena kadang-kadang, xrandrperintah rusak jika mereka berjalan terlalu dini, sebelum desktop "selesai" memuat. Mungkin Anda perlu menambah waktu istirahat, atau Anda bisa mencoba meninggalkannya. Dalam perintah, sebagaimana adanya, layar berputar setelah 10 detik setelah login dari pengguna mana pun .

  • Perintah:

    xrandr --output VGA-0 --rotate left
    

    berputar layar kiri, tidak perlu untuk mengatakan bahwa jika Anda ingin jenis lain dari rotasi, Anda dapat memilih left, right, normal, inverted(lihat juga di sini) .

Penjelasan

Anda dapat menjalankan perintah saat startup (sebenarnya login) dengan menempatkan .desktopfile (launcher) di ~/.config/autostart. Ini hanya akan menjalankan peluncur untuk satu pengguna. Jika Anda melakukan hal yang sama, tetapi letakkan peluncur di /etc/xdg/autostart, perintah berjalan setiap kali ada pengguna login, kecuali jika pengguna tertentu menonaktifkan peluncur untuknya di Dash> Aplikasi Startup

Selain itu , Anda cukup menyalin ~/.config/monitors.xmlfile lokal Anda /var/lib/lightdm/monitors.xmluntuk juga membuat pengaturan berfungsi pada layar masuk.

Imo kombinasi ini, dan solusi di atas (peluncur dalam /etc/xdg) adalah solusi termudah untuk mencapai apa yang Anda inginkan untuk layar login dan (setiap) pengguna. Juga, solusi launcher di /etc/xdg(sangat) mudah dibalik atau diubah jika Anda perlu membuat pengaturan lain, tanpa mengedit banyak file pada (masing-masing) tingkat pengguna, karena pengaturan pengguna dan layar login dikelola untuk semua pengguna sekaligus dalam dua file sederhana.

Yakub Vlijm
sumber
Itu mungkin bekerja - mengubah pengaturan 10s setelah login, tetapi saya lebih suka untuk mengetahui di mana mereka diatur untuk memulai dan mengubahnya untuk semua orang (dan layar login, yang saat ini menyamping).
mirams
Mengapa seseorang membatalkan ini?
Fabby
2

Hanya ingin menambahkan komentar untuk siapa pun yang menemukan masalah ini dengan masalah serupa. Saya terjebak dengan resolusi monitor lama saya (1280x1024) setiap kali saya masuk, tetapi layar login dan login tamu menggunakan standar 1680x1050 yang benar.

Saya telah membaca banyak posting selama empat bulan terakhir mencari jawaban, membaca di xorg.conf, monitor.xml, lightdm dan xrandr dan saran lainnya - tetapi beberapa perubahan konfigurasi rumit dan membawa risiko merusak tampilan sepenuhnya, jadi saya akhirnya menggunakan gui untuk mengubah pengaturan monitor secara manual setiap login.

Hari ini saya melakukan grep untuk resolusi lama di folder .config saya.

grep -HrnIF '1280' .config | less

Hasil pertama adalah file ~ / .config / autostart / xrandr.desktop yang mengandung ini,

Exec=xrandr -s 1280x1024 -r 75

jadi saya baru saja memindahkan file dari sana. Dan bingo, saya masuk dan mendapatkan resolusi 1680x1050 default.

Butuh beberapa jam pencarian dan saya tidak dapat menemukan jawaban yang cukup dekat, jadi posting di sini kalau-kalau itu berguna untuk seseorang.

MattB
sumber
Selamat Datang di Tanya Ubuntu. Terima kasih telah berbagi empat bulan (waktu berlalu) penelitian Anda.
WinEunuuchs2Unix
Membaca ini lagi saya pikir saya mungkin membuat file xrandr.desktop itu dua tahun lalu untuk berkeliling Ubuntu selalu default ke pengaturan monitor dasar 'Goldstar', dan itu mungkin masalah kompatibilitas dengan kartu video saya.
MattB
0

Anda mungkin ingin menambahkan sesuatu /etc/lightdm/lightdm.conf. Di sini kami membuat skrip yang menggunakan xrandrperintah untuk mengatur tampilan Anda. Anda dapat menggunakan beberapa alat RandR grafis untuk membuat perintah untuk Anda, seperti arandr. Dalam kasus saya, skrip akan terlihat seperti:

#!/bin/sh
xrandr --output DVI-I-1 --mode 1600x1200 --pos 0x0 --rotate left --output DVI-I-0 --off --output DP-3 --off --output DP-2 --off --output DP-1 --mode 1600x900 --pos 1200x700 --rotate normal --output DP-0 --off

Anda dapat meletakkan skrip ini di /usr/shareatau di mana pun Anda inginkan. Skrip Anda mungkin terlihat jauh lebih kompleks, karena ini untuk pengaturan dual-monitor yang kompleks. Kemudian tambahkan sesuatu seperti:

session-setup-script=/usr/share/mycustomxrandr.sh

dan:

display-setup-script=/usr/share/mycustomxrandr.sh

Pastikan file tersebut dapat dieksekusi, jadi:

chmod a+x mycustomxrandr.sh

The session-setup-scriptakan mengatur tampilan untuk setelah Anda login melalui LightDM, dan display-setup-scriptakan mengubah tampilan untuk layar login.

nixpower
sumber
Akan lebih bagus jika Anda bisa mencoba ini, saya tertarik melihat apakah ini akan berhasil untuk Anda.
nixpower
0

Di sistem saya (Ubuntu 16.04) untuk layar masuk hanya cpsebagai root (menggunakan sudo) tidak bekerja. Anda mungkin juga perlu memastikan bahwa pemilik / grup dari monitor.xml adalah lightdm:lightdm.

sudo chown lightdm:lightdm /var/lib/lightdm/.config/monitors.xml
Zinsser
sumber