Mendirikan Xfce Classic, cabang dari Xfce tanpa hiasan jendela sisi klien

Sean Anastasi (Shawn Anastasio), seorang penggila perangkat lunak gratis yang pernah mengembangkan sistem operasinya sendiri ShawnOS dan terlibat dalam porting Chromium dan Qubes OS ke arsitektur ppc64le, didirikan proyek Xfce Klasik, di mana ia bermaksud untuk mengembangkan fork komponen lingkungan pengguna Xfce yang berfungsi tanpa menggunakan dekorasi jendela sisi klien (CSD, dekorasi sisi klien), di mana judul dan bingkai jendela digambar bukan oleh pengelola jendela, tetapi oleh aplikasi itu sendiri.

Izinkan kami mengingatkan Anda bahwa ini adalah persiapan untuk rilis Xfce 4.16 berikutnya, yang rilisnya diharapkan pada bulan Oktober atau November, antarmuka dipindahkan ke widget GtkHeaderBar dan penggunaan CSD, yang memungkinkan, dengan analogi dengan GNOME, untuk menempatkan menu, tombol, dan elemen antarmuka lainnya di header jendela, serta memastikan penyembunyian bingkai dalam dialog. Mesin rendering antarmuka baru diintegrasikan ke dalam perpustakaan libxfce4ui, yang menghasilkan aplikasi CSD otomatis untuk hampir semua dialog, tanpa perlu melakukan perubahan pada kode proyek yang ada.

Pada transisi ke CSD ditemukan lawan, yang percaya bahwa dukungan CSD harus bersifat opsional dan pengguna harus dapat terus menggunakan judul jendela klasik. Di antara kelemahan menggunakan CSD, area judul jendela yang terlalu besar, kurangnya kebutuhan untuk mentransfer elemen aplikasi ke judul jendela, tidak dapat dioperasikannya tema Xfwm4, dan perbedaan dalam desain jendela aplikasi dan program Xfce/GNOME. tidak menggunakan CSD disebutkan. Perlu dicatat bahwa salah satu alasan penolakan antarmuka GNOME oleh beberapa pengguna adalah penggunaan CSD.

Karena tidak ada upaya yang dilakukan untuk memberikan dukungan untuk menonaktifkan CSD dalam 5 bulan, Sean Anastasi diputuskan menangani masalah ini dengan tangan saya sendiri dan membuat cabang perpustakaan libxfce4ui, di mana saya membersihkan pengikatan ke CSD dan mengembalikan mode dekorasi lama di sisi server (manajer jendela). Untuk memastikan kompatibilitas dengan aplikasi yang menggunakan API libxfce4ui baru dan mempertahankan ABI, binding khusus telah disiapkan yang menerjemahkan metode CSD spesifik dari kelas XfceTitledDialog menjadi panggilan kelas GtkDialog. Hasilnya, aplikasi Xfce dapat dihilangkan dari CSD dengan mengganti pustaka libxfce4ui, tanpa mengubah kode aplikasi itu sendiri.

Selain itu garpu telah terbentuk panel xfce4, yang mencakup perubahan untuk mengembalikan perilaku klasik. Disiapkan untuk pengguna Gentoo hamparan untuk menginstal libxfce4ui-nocsd. Disiapkan untuk pengguna Xubuntu/Ubuntu Repositori PPA dengan paket siap pakai. Sean Anastasi menjelaskan alasan pembuatan fork dengan mengatakan bahwa dia telah menggunakan Xfce selama bertahun-tahun dan menyukai antarmuka lingkungan ini. Setelah memutuskan perubahan antarmuka yang tidak dia setujui, dan tidak ada upaya untuk memberikan opsi untuk kembali ke perilaku lama, dia memutuskan untuk menyelesaikan masalahnya sendiri dan berbagi solusi dengan orang lain yang berpikiran sama.

Salah satu permasalahan saat menggunakan Xfce Classic adalah munculnya duplikat judul karena tampilan informasi yang berulang pada judul dan jendela aplikasi. Fitur ini konsisten dengan perilaku Xfce 4.12 dan 4.14, dan tidak terkait dengan CSD. Di beberapa aplikasi, duplikasi seperti itu terlihat normal (misalnya, di xfce4-screenshooter), tetapi di aplikasi lain jelas tidak pantas. Untuk mengatasi masalah ini, dimungkinkan untuk menambahkan variabel lingkungan yang mengontrol rendering XfceHeading.

Mendirikan Xfce Classic, cabang dari Xfce tanpa hiasan jendela sisi klien

Posisi pendukung CSD bergantung pada kemampuan untuk menggunakan ruang judul jendela yang terbuang untuk menempatkan menu, tombol panel, dan elemen antarmuka penting lainnya. Penentang CSD percaya bahwa pendekatan ini menimbulkan masalah dalam menyatukan desain jendela, terutama yang ditulis untuk lingkungan pengguna berbeda yang menentukan rekomendasi berbeda untuk tata letak area judul. Jauh lebih mudah untuk membawa desain jendela semua aplikasi ke satu gaya ketika merender area layanan jendela secara klasik di sisi server. Dalam hal menggunakan CSD, antarmuka aplikasi perlu disesuaikan secara terpisah untuk setiap lingkungan grafis dan cukup sulit untuk memastikan bahwa aplikasi tidak terlihat asing di lingkungan pengguna yang berbeda.

Sumber: opennet.ru

Tambah komentar