Apa subsistem antarmuka pengguna, komponen dan tanggung jawabnya?

8

Saya mencoba memahami berbagai subsistem yang bertanggung jawab atas antarmuka pengguna, terminologi untuk merujuk mereka, dan bagaimana mereka disusun; sejauh ini saya tahu ada:

Di tingkat atas:

desktop ? (KDE, GNOME, dll)

Maka kita memiliki:

  • manajer tampilan (juga disebut manajer desktop atau lingkungan desktop)
  • manajer jendela
  • ada yang lain?

Saya menjadikan ini sebagai wiki komunitas, saya ingin ini menjadi tempat utama bagi * yang perlu diketahui (dari perspektif pengguna) mengenai subsistem antarmuka pengguna di Linux; apa yang ingin saya ketahui adalah apa komponen masing-masing, dan apa tanggung jawab masing-masing, yaitu saya ingin mengetahui hal-hal seperti:

  • apa sebenarnya yang bertanggung jawab atas tombol pintas global, ketika saya membuka dialog "jalankan aplikasi", siapa yang melakukan itu, ketika saya menekan tombol untuk menampilkan desktop, menjalankan terminal, memaksimalkan jendela, dll, siapa yang menangkap itu dan mengirimkannya ke jendela kanan;
  • siapa yang bertanggung jawab menggambar desktop, ruang kerja, dll.
  • apa variabel lingkungan yang dapat memberi saya informasi mengenai komponen ini
  • Apakah "menu utama" adalah subsistem, atau komponen dari subsistem?

Akan lebih baik untuk menyusun daftar desktop / subsistem yang paling populer, yang mana berjalan di bawahnya masing-masing, dapatkah Anda mencampur dan mencocokkan desktop / lingkungan desktop / manajer jendela, dll?

Akhirnya, bagaimana cara mengetahui desktop / subsistem mana yang benar-benar berjalan (aktif?) Pada sistem, dapatkah pengguna yang berbeda memiliki subsistem yang berbeda pula?

BlackTigerX
sumber

Jawaban:

5

Pertama-tama, Display Manager (atau DM, mis. Xdm, gdm, kdm) tidak sama dengan Lingkungan Desktop (atau DE, mis. GNOME, KDE, XFCE).

Display Manager menangani login grafis, dan memutuskan (atau membiarkan Anda memilih) sesi apa yang akan dijalankan. Atau apa sesi * s * jika Anda memilih "switch pengguna" pilihan menu.

Desktop Environment pada dasarnya adalah kumpulan program (pengelola tampilan, pengelola jendela, pengelola sesi, panel, alat konfigurasi, dll.) Dan perpustakaan (misalnya Gtk) yang bermaksud memberikan lingkungan yang konsisten dan terintegrasi untuk bekerja.

Seorang Manajer Jendela mengelola jendela: tempat meletakkannya, memindahkannya, mengubah ukurannya, memperkecil / memaksimalkannya, memasang ubin, dll.). Itu juga menangani jalan pintas untuk melakukan hal-hal itu. Dalam beberapa kasus manajer jendela juga mengecat perbatasan windows, dalam kasus lain tugas ini diserahkan kepada "dekorator jendela".

Dialog "Jalankan Aplikasi" di GNOME adalah bagian dari gnome-panel, tetapi di DE lain itu bisa menjadi bagian lain dari lingkungan.

Siapa yang bertanggung jawab untuk mengecat jendela dll tergantung; jika ada "compositor" yang digunakan (sering merupakan bagian dari window manager, misalnya dalam Compiz) maka komposer mengecat windows pada layar, jika tidak (seperti biasa di masa lalu) itu adalah server-X yang melakukan itu.

Menu Utama diletakkan di layar oleh bagian dari panel gnome, tetapi data yang digunakan berasal dari banyak file /usr/share/applications/(mungkin digabungkan dengan direktori yang setara di rumah Anda untuk perubahan pribadi). File-file tersebut memiliki struktur yang ditentukan oleh FreeDesktop.org (platform untuk DE yang berbeda untuk berkolaborasi pada infrastruktur umum), sehingga GNOME dan KDE tahu tentang program yang sama (tetapi masih dapat menunjukkannya secara berbeda, dan dalam beberapa kasus memprioritaskan program "asli") lebih dari yang "asing").

Dan ya, pengguna yang berbeda dapat menggunakan konfigurasi sesi yang berbeda (dan bahkan dapat menentukan sendiri sesi mereka). Di GDM, coba tarik-turun Sesi untuk pilihan yang tersedia.

Lebih jauh lagi, adalah mungkin untuk mencampur & mencocokkan beberapa komponen, tetapi itu kadang-kadang akan menghasilkan kurang kerja sama dan hilangnya "kehalusan" dalam cara kerja. Salah satu contoh yang sangat terkenal di mana hal mendapatkan pertukaran tentu saja adalah Compiz, yang menggantikan Metacity jika Anda ingin efek desktop mewah. Tetapi ada banyak perubahan lain yang mungkin terjadi.

JanC
sumber
2

Manajer desktop kebanyakan mengelola perangkat keras Anda, sedangkan manajer jendela mengelola perangkat lunak Anda. Misalnya, manajemen daya, screen saver, kinerja sistem, layar masuk, dll dikelola oleh manajer desktop. Tema Anda, penempatan jendela, set widget dan ikon, font, dll. Dikelola oleh manajer jendela Anda.

Anda dapat menginstal window manager tanpa desktop manager. Adalah umum untuk masuk ke terminal virtual, kemudian minta skrip login untuk mengeksekusi window manager Anda untuk memulai "desktop" Anda.

Manajer desktop adalah GNOME, KDE dan CDE. Manajer jendela adalah Metacity, Openbox, Enlightenment, Awesome, dll.

Untuk menjawab beberapa pertanyaan Anda secara langsung:

  • manajer jendela sebagian besar bertanggung jawab atas pintasan keyboard desktop.
  • manajer jendela bertugas menggambar desktop, ruang kerja, penempatan jendela, dll seperti yang disebutkan sebelumnya
  • tidak ada banyak variabel lingkungan untuk GUI. Ini biasanya hanya berlaku untuk shell di belakang terminal. Namun, Anda dapat menjalankan setdan envmendapatkan gagasan tentang apa yang ditetapkan.
  • tidak yakin apa yang Anda maksud dengan "menu utama" sebagai subsistem atau komponen dari suatu subsistem. Menu adalah bagian dari window manager.

Saya telah menyebutkan beberapa manajer desktop dan window manager yang populer. Lebih banyak dapat ditemukan dengan menggunakan Google.

Tergantung pada sistem operasi Anda, mungkin ada file konfigurasi ASCII yang telah menentukan desktop pilihan Anda. Sebagai contoh, pada Debian GNU / Linux, ini didefinisikan dalam /etc/X11/default-display-managerkonfigurasi. Anda juga bisa menjalankan 'ps -ef | grep pengguna 'di mana' pengguna 'adalah nama login beberapa pengguna pada sistem, dan lihat proses apa yang terdaftar, dan mana yang menjalankan desktop grafis. Bagi saya, ini 'kegigihan'.

Aaron Toponce
sumber