Apakah klien X perlu manajer jendela untuk bekerja?

32

Apakah klien X perlu manajer jendela untuk bekerja? Bisakah klien X bekerja hanya dengan server X?

Jika klien X tidak memiliki jendela , apakah bisa berfungsi membutuhkan manajer jendela?

Jika klien X dapat bekerja tanpa manajer jendela, apakah klien X tidak perlu memiliki jendela?

Terima kasih.

Tim
sumber
4
Ketika saya pertama kali bertemu X — yaitu, sudah lama sekali — fakta bahwa Anda tidak memerlukan manajer jendela dibahas dalam sebagian besar materi pengantar. Tampaknya tidak menjadi masalah akhir-akhir ini, tetapi saya kira seseorang mungkin menganggap ini jelas atau contoh kemalasan.
dmckee
11
@Tim: Anda sepertinya sudah ada cukup lama sehingga Anda harus tahu bahwa downvote tidak dimaksudkan untuk mengkomunikasikan "kebencian", "kejahatan", "kekejaman", "diskriminasi" atau hal-hal seperti itu sama sekali. Downvote hanyalah sebuah sistem peringkat konten , dan beberapa konten kurang bernilai dibandingkan konten lainnya. (Sebagai catatan, saya tidak meremehkan pertanyaan ini: Saya pikir pertanyaan ini hebat.) Lihat juga: Bisakah kita membuatnya lebih jelas bagi pengguna baru bahwa downvotes di situs utama bukan penghinaan dan pada kenyataannya dapat membantu mereka membantu diri mereka sendiri ? pada Meta Stack Overflow.
Daniel Pryden
5
@Tim. Beberapa pertanyaan Anda yang dibatalkan tampaknya tidak berguna bagi saya. UI (teks alt dari tombol) mendorong pengguna untuk downvote pertanyaan "tidak berguna". Kebencian bukanlah komponen yang diperlukan. Menambahkan sedikit petunjuk / pernyataan bahwa sebuah pertanyaan dapat berpotensi digunakan dalam beberapa skenario (bahkan jika sangat marjinal / tidak mungkin) sebagian besar akan mencegah reaksi spontan itu. Pertanyaan Anda yang saya lihat sangat mirip karena mereka tidak memiliki petunjuk / pernyataan seperti itu.
kubanczyk
3
Tim, moderator berlian memiliki akses ke beberapa alat yang mendeteksi pemilihan pola. Tandai mereka dan minta mereka untuk melihatnya. / mod pada physics.se
dmckee
1
Sebagian dari pertanyaan Anda tampaknya tidak sesuai tata bahasa. Pelaku terburuk sepertinya adalah "apakah bisa berhasil membutuhkan window manager?".
hkBst

Jawaban:

26

Tidak. Aplikasi yang ditulis dengan baik tidak memerlukan manajer jendela.

Tetapi beberapa aplikasi yang rusak "modern" tidak akan berfungsi dengan baik tanpa manajer jendela (mis. Firefox dan saran bilah alamatnya yang tidak akan drop down [1]).

Banyak aplikasi bawah standar lainnya tidak hanya menganggap window manager, tetapi untuk menambahkan penghinaan pada cedera, klik untuk memfokuskan window manager. Misalnya, dulu aplikasi java mana pun hanya akan mencuri fokus pada startup.

Jika Anda ingin menguji, instal Xephyr(server X11 "bersarang"), jalankan dengan Xephyr :1, dan kemudian jalankan aplikasi Anda DISPLAY=:1di lingkungan mereka.

[1] "bar yang luar biasa" dari Firefox tidak akan membuka panel sarannya saat diketikkan atau diklik pada tombol histori kecuali ada pengelola jendela yang berjalan. Menu sembunyikan otomatis tidak akan berfungsi.

mosvy
sumber
Apakah ada bug terbuka di firefox untuk masalah yang Anda sebutkan? Saya pikir sifat open source firefox akan bersedia untuk mengakomodasi perbaikan bug untuk masalah itu.
t3dodson
4
@ t3dodson Anda dapat mencoba mengirim satu, tetapi sangat diragukan bahwa ada orang yang mau meninjau perbaikan tambalan itu. Menjalankan firefox tidak benar-benar didukung tanpa manajer jendela, manajer sesi, dan baru-baru ini, server pulseaudio berjalan. Tentu saja, Anda dapat memotongnya, tetapi harus mempertahankan garpu firefox bukanlah sesuatu yang saya harapkan pada musuh terburuk saya ;-)
mosvy
Imo jawaban apa pun pada tema ini tidak lengkap tanpa menyebutkan Xephyr. +1
Rui F Ribeiro
38

Tidak, Anda tidak perlu menjalankan manajer jendela untuk memungkinkan klien X bekerja. Beberapa sistem memberikan opsi untuk hanya menjalankan terminal saat startup, dan dari situ Anda dapat memulai program tambahan, termasuk manajer jendela. Beberapa pengaturan kios yang hanya ingin menjalankan satu aplikasi tidak memerlukan manajer jendela. Beberapa implementasi X untuk microsoft windows menghindari manajer X window dengan membiarkan OS mengelola windows.

Tanpa window manager, Anda biasanya perlu menentukan geometri untuk program-program sehingga Anda tidak memiliki semuanya ditempatkan di sudut kiri atas.

Di X, manajer jendela hanyalah klien X lainnya. Ini tidak biasa pada waktu itu, tetapi membuatnya mudah untuk memiliki manajer jendela yang berbeda.

Cara lain untuk melihat pertanyaan adalah dengan mengamati bahwa Anda dapat mengubah window manager dengan cepat, jadi ada waktu antara yang pertama berhenti dan yang kedua mengambil kendali, tetapi karena semua aplikasi Anda tidak macet, mereka harus dapat bekerja tanpa.

icarus
sumber
2
Petunjuk: ada alat bernama xwit yang sangat membantu ketika bereksperimen dengan konfigurasi wm-less.
rackandboneman
7

Window manager adalah kenyamanan bagi pengguna.

Di masa lalu ^ Wbad yang baik, saya dulu memiliki ~/.Xclientsfile yang bertuliskan:

#!/bin/sh

HOST=`uname -n | sed 's/\..*$//'`

xv -root -rmode 5 $HOME/misc/millennium/theme/Wallpaper.gif -quit &

xterm -geometry 80x24+0+85 \#52x71-104+0 -n $HOST -T $HOST &
xterm -geometry 80x24+510+429 \#52x71-52+0  -n $HOST -T $HOST &
xclock -digital -update 1 -geometry +1059+982 &
xscreensaver -nosplash &
exec /usr/local/lib/X11/fvwm/fvwm

File ini akan dijalankan ketika saya mulai X dengan startx. Ketika skrip ini selesai maka server X akan dimatikan.

Perhatikan baris terakhir: exec .../fvwm. Ini adalah baris yang memulai manajer jendela saya (fvwm). Semua aplikasi sebelumnya ( xv, xterm, xclock, xscreensaver) berjalan sebelum window manager mulai. Karena panggilan ke fvwmadalah baris terakhir dan tidak diletakkan di latar belakang itu berarti bahwa ketika fvwmdiakhiri maka X akan ditutup.

Startup X bahkan memiliki default "mundur" ... jika tidak ada file konfigurasi, maka mulai X dengan xtermmenjalankan tunggal . Menutup itu xtermakan mengakhiri sesi X.

Stephen Harris
sumber
Apa keuntungan dari tidak melukiskan fvwm?
Alex Hajnal
1
Kita memerlukan skrip untuk tidak mengakhiri karena jika tidak maka server X berakhir; dengan tidak melatar belakang fvwm(dan menjalankannya dengan exec) kami memastikan masih ada proses menjaga server X dari mematikan. Dengan membuat proses terakhir itu fvwmmemungkinkan item menu "keluar" berfungsi seperti yang diharapkan.
Stephen Harris
Oke. Sudah lama sejak saya melakukan banyak level rendah dengan X. Harus mengatakan bahwa fvwm 2 adalah salah satu dari dua window manager favorit saya (yang lainnya adalah kwin 3).
Alex Hajnal
Dalam kasus saya, fvwm-1.24radalah manajer jendela favorit saya :-)
Stephen Harris
Saya mendengar Anda tentang itu. Saya ingat bahwa v2 lebih dapat dikustomisasi daripada v1 (dengan semua opsi konfigurasi dalam satu file teks dan dapat dimuat ulang sambil jalan?). Cukup ringan juga, terutama menurut standar saat ini. Saya terakhir menggunakannya setiap hari di era P-II IIRC.
Alex Hajnal
6

Untuk menambah jawaban lain, saya telah mengembangkan dan merilis aplikasi open source yang berfungsi tanpa window manager (artinya Anda dapat memulainya langsung dari xinitrc). Ada beberapa langkah tambahan yang harus dilakukan aplikasi dalam hal ini selain mengelola geometri dan urutan-Z dari dialognya, tetapi ini benar-benar dapat dikelola.

George Y.
sumber
1

Ada banyak jawaban terperinci yang bagus di sini. Inilah jawaban sederhana yang jelas.

Apakah klien X perlu manajer jendela untuk bekerja?

Tidak: Tetapi tanpanya jika Anda akan kesulitan untuk mengelola jendela Anda (memindahkan, mengubah ukuran, menurunkan, menaikkan, dll.). Ada alat lain yang dapat melakukan ini, jika Anda membutuhkannya.

Bisakah klien X bekerja hanya dengan server X?

iya nih

Jika klien X tidak memiliki jendela, apakah bisa berfungsi membutuhkan manajer jendela?

Jika tidak memiliki windows, maka seharusnya tidak ada sisi negatif dari tidak memiliki window-manager.

Jika klien X dapat bekerja tanpa manajer jendela, apakah klien X tidak perlu memiliki jendela?

Tidak: itu dapat memiliki windows.

Coba ini.

DISPLAY=:21
vncserver -localhost -geometry 1920x1080  -SecurityTypes None $DISPLAY &
ssvnc $DISPLAY
xterm &

lalu pada xtermtipe baru fvwm.

Anda mungkin perlu menginstal vncserver, ssvncdan fvwm, pertama.

ctrl-alt-delor
sumber
1

Ya, klien X hanya dapat bekerja dengan X server. Sebagai contoh, saya memberikan mesin virtual saya sendiri konsol virtual mereka di host, seperti ini.

# Press CTRL-ALT-F5, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system CentOS -- :4

# Press CTRL-ALT-F6, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system Windows -- :5

Perintah "startx" memulai Xorg X server pada tampilan: 4 dan: 5 dengan hanya penampil-kebajikan sebagai klien.

"CentOS" dan "Windows" adalah nama yang saya berikan pada mesin virtual saya ketika saya menginstalnya. The -k saklar untuk Virt-penampil membuatnya layar penuh dengan kontrol minimal, sehingga setiap mesin virtual tampaknya memiliki mesin sampai aku menekan CTRL-ALT-Fn untuk beralih ke konsol virtual yang berbeda.

Tentu saja, CentOS menjalankan display manager dan window manager di dalam mesin virtual, tetapi itu tidak memiliki koneksi dengan server X yang berjalan di host.

Ken Jackson
sumber