1 poin oleh GN⁺ 11 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • Kompositor Wayland tiling bergulir kini makin matang dengan peningkatan menyeluruh pada blur latar belakang, screencast, rendering, dan penanganan input
  • Blur latar belakang kini masuk ke mainline sehingga jendela dan elemen layer-shell yang mendukung ext-background-effect dapat meminta blur tanpa konfigurasi niri tambahan, dan blur juga bisa dipaksakan lewat aturan di sisi niri
  • Screencast telah dipoles baik di jalur PipeWire maupun wlr-screencopy, mencakup penanganan kursor, cara memulai dynamic cast, kueri dan penghentian paksa via IPC, hingga masalah multi-copy dan pelepasan sumber daya
  • Struktur rendering dirombak dari berbasis iterator menjadi berbasis push, sehingga penyusunan daftar render menjadi 2–3 kali lebih cepat di mesin utama, dan 8 kali lebih cepat pada Eee PC lama, sekaligus mengurangi penggunaan memori
  • Perangkat keras lawas dan lingkungan input juga ikut diperbaiki, memperluas cakupan penggunaan nyata seperti screenshot dan screencast pada sistem Intel lama, konflik IME dan popup GTK 4, pemetaan mouse high-polling-rate dan tablet, serta akselerasi DMA-BUF untuk niri bersarang

Perubahan utama

  • Organisasi GitHub telah dipindahkan dari akun pribadi ke niri-wm, dan proyek terkait juga dirapikan bersama-sama
  • Perubahan terkait pemaket juga disertakan
    • Versi Rust minimum yang didukung naik ke 1.85
    • niri.service tidak lagi meng-hardcode /usr/bin/ pada path biner niri
    • Struktur file layanan dinit berubah: 3bfa4a7

Blur latar belakang

  • Blur latar belakang telah masuk ke mainline, dan jendela serta komponen layer-shell dapat meminta blur melalui protokol ext-background-effect
  • Meski aplikasi belum mendukung ext-background-effect, blur tetap bisa diaktifkan dari sisi niri lewat window-rule dan layer-rule
    • Pengaturan detail dan batasannya dirangkum dalam dokumentasi Window Effects
    • Blur yang dikonfigurasi di niri memerlukan geometry-corner-radius yang benar
    • Tidak berfungsi pada bentuk surface yang kompleks
  • Menyediakan xray blur dan blur biasa secara bersamaan, dengan xray blur sebagai nilai default
    • Xray blur menghitung blur wallpaper hanya sekali lalu menggunakannya kembali seperti gambar statis, sehingga jauh lebih efisien
    • Hanya dihitung ulang saat wallpaper berubah
    • Pada wallpaper animasi, keuntungan efisiensinya berkurang
    • Matcher layer baru memungkinkan blur biasa diterapkan hanya pada layer seperti top dan overlay
  • Fitur blur memiliki tingkat kesulitan implementasi yang cukup tinggi hingga memerlukan perubahan struktur rendering
    • Blur biasa membaca ulang piksel yang sudah dirender di tengah frame, memburamkannya, lalu melanjutkan rendering
    • Xray blur mengharuskan posisi jendela diteruskan ke seluruh kode rendering agar pemotongan latar belakang tetap benar
    • Di Overview, sifat yang mendukung xray blur sekaligus tidak merender ulang overview harus tetap dipertahankan
    • Harus tetap bekerja bersama jendela pemblokir screencast
  • Xray dapat digunakan sendiri tanpa blur, dan efek noise serta saturation untuk mengurangi color banding pada blur juga bisa dimanfaatkan secara terpisah
  • Blok popups baru memungkinkan efek transparansi dan latar belakang diterapkan juga pada menu popup lewat window rule atau layer rule
    • Pada kasus non-persegi panjang membulat seperti popup GTK 4 dengan has-arrow=true, bentuknya bisa terlihat janggal
    • Web app atau Electron tidak menggunakan popup Wayland sehingga tidak bisa ditangani niri
    • Klien yang mengimplementasikan ext-background-effect secara langsung dapat menangani blur dengan bentuk yang lebih kompleks

Include opsional

  • Include opsional ditambahkan ke config include
    • Dapat digunakan seperti include optional=true "optional-config.kdl", sehingga pemuatan konfigurasi tidak gagal meski file tidak ada
    • Jika file tidak ada, log peringatan akan tetap dicatat setiap kali konfigurasi di-reload, tetapi konfigurasi tetap dimuat
    • Jika file dibuat belakangan, perubahan yang sedang dipantau akan terdeteksi dan dimuat ulang secara otomatis
    • Jika file ada tetapi memiliki kesalahan sintaks, tetap dianggap gagal parsing
  • ~ pada path include kini diekspansi menjadi direktori home
    • ~/file.kdl akan diekspansi menjadi /home/user/file.kdl

Pointer warping dan scroll

  • Saat melakukan gestur untuk menggulir tampilan, pointer kini di-warp dari satu tepi layar ke tepi seberangnya
    • Perilakunya mirip Blender
    • Ini memungkinkan scroll berlanjut secara alami melintasi banyak jendela, bahkan jika dimulai dekat tepi monitor

Peningkatan screencast

  • Screencast niri ditingkatkan baik untuk metode melalui xdg-desktop-portal-gnome via PipeWire maupun melalui wlr-screencopy
  • Penanganan kursor pada screencast jendela

    • Kini mendukung metadata kursor alih-alih langsung menggambar kursor ke dalam frame video di PipeWire
      • Frame video tidak menyertakan kursor, dan ikon serta koordinat kursor dikirim melalui buffer terpisah
      • Sisi penerima seperti OBS atau browser akan menggambar kursor sendiri
    • Berfungsi untuk tangkapan monitor maupun tangkapan jendela
    • Pada tangkapan jendela, kursor hanya terlihat saat benar-benar menunjuk jendela tersebut atau popup-nya
    • Ikon drag-and-drop juga ikut digambar
    • Dalam proses implementasinya, masalah kerusakan memori di PipeWire juga terungkap dan diperbaiki
    • Juga ditemukan ketidaksesuaian antara maksud desain PipeWire dan implementasi konsumen seperti libwebrtc
    • Pada lingkungan yang diuji, semuanya berfungsi normal
    • Dengan screenshot-window show-pointer=true, pointer juga bisa disertakan dalam screenshot jendela
  • Perubahan cara memulai Dynamic cast target

    • Dynamic cast target adalah fitur untuk langsung mengganti target screencast lewat keybind
    • Sebelumnya, saat dimulai fitur ini membuka stream video piksel hitam 1×1
    • Kini permulaan stream video ditunda sampai target nyata pertama dipilih
    • Ini menghindari masalah video 1×1 singkat di Microsoft Teams
  • Cast IPC

    • Screencast yang sedang berjalan kini bisa diperiksa lewat IPC
    • Cast aktif bisa dilihat dengan niri msg casts
    • Di event stream, Anda bisa berlangganan cast events
    • Objek Cast menyediakan jenis, target saat ini, dan status aktif
    • Screencast PipeWire menyediakan node ID, dan wlr-screencopy menyediakan ID proses klien
    • DankMaterialShell sudah memakai IPC ini untuk menampilkan indikator screencast
    • Screencast PipeWire bisa dihentikan paksa dengan niri msg action stop-cast --session-id <ID>
  • Batasan dan perbaikan terkait wlr-screencopy

    • wlr-screencopy tidak punya cara yang kuat untuk membedakan screencast dan screenshot, sehingga perlu beberapa heuristik
    • xdg-desktop-portal-wlr mempertahankan satu objek wlr-screencopy manager terus-menerus, sehingga sulit langsung mengetahui kapan ia berakhir
    • Masalah ini diselesaikan oleh protokol baru ext-image-copy-capture, tetapi belum masuk ke niri
  • Perbaikan screencast lainnya

    • Memperbaiki masalah saat menyalin damage, klien wlr-screencopy selalu menyertakan kursor meski tidak menginginkannya
    • Memperbaiki perilaku saat beberapa penyalinan multi-frame dengan damage diminta secara bersamaan
    • Memperbaiki masalah data wlr-screencopy di niri yang tidak dibebaskan dalam beberapa kasus, misalnya saat klien berhenti
    • Mengurangi jumlah buffer screencast PipeWire default dari 16 menjadi 8
    • Menyesuaikan urutan field struct agar menghindari masalah use-after-free di pipewire-rs
    • Memperbaiki rendering yang salah selama satu frame pada z-order saat target dynamic cast diubah ke jendela

Animasi dan perilaku jendela

  • Sinkronisasi animasi menjadi lebih akurat
    • niri memungkinkan pengaturan animasi secara terpisah, tetapi bila beberapa harus benar-benar selaras, animasi tersebut dijalankan secara sinkron
    • Animasi perubahan ukuran jendela kini disinkronkan dengan animasi perpindahan view horizontal yang dipicunya
    • Memperbaiki masalah saat keluar dari fullscreen atau maximize, sinkronisasi perpindahan view hilang sehingga jendela langsung kembali tetapi layar masih menggulir pelan
  • Memperbaiki masalah animasi perpindahan horizontal jendela tile lain yang kadang terlewati pada jalur drag tertentu
    • Ini terjadi karena tumpang tindih antara perilaku menyeret jendela maximize untuk melepasnya lalu mengembalikannya ke floating jika sebelumnya memang floating,
    • dan logika scroll workspace kiri/kanan saat drag di dekat tepi monitor
    • Commit perbaikan: df3f3979e936ed6800b4fbd55843bb0fe2554f15
  • Juga diperbaiki masalah ketika kolom paling kiri workspace ditarik keluar lalu dilepas kembali, tetapi masuk ke kanan alih-alih kembali ke posisi semula
  • Durasi tampil notifikasi kesalahan konfigurasi kini tidak lagi dipengaruhi oleh pengaturan slowdown/speedup animasi

IME dan popup

  • Masalah lama ketika popup input GTK 4 dan IME tidak bisa bekerja bersama kini diatasi dengan solusi sementara
    • Saat IME seperti Fcitx5 aktif, popup input teks tidak bisa dibuka
    • Konflik terjadi karena popup mengambil pointer dan keyboard grab, sementara IME juga memakai keyboard grab
    • niri lalu melepaskan grab popup sehingga popup sering langsung tertutup
    • Beberapa pemeriksaan dilonggarkan agar ini bisa bekerja tanpa mengubah struktur Smithay sepenuhnya
    • Kini pengguna IME bisa melakukan hal seperti mengganti nama file di Nautilus

Drag-and-drop dan perangkat input

  • Saat drag-and-drop, menekan Escape kini dapat membatalkan operasi
  • Berbagai perbaikan juga diterapkan pada perangkat input secara umum
    • Memperbaiki masalah yang makin melambat seiring waktu saat memakai mouse high-polling-rate bersama hide-after-inactive-ms atau daemon pemantau idle
    • Pada libwayland-server v1.23 atau lebih baru, ukuran buffer Wayland ditingkatkan agar jendela tidak cepat crash saat mouse high-polling-rate digerakkan di atas jendela yang tidak responsif
    • Opsi tablet map-to-focused-output ditambahkan, sehingga bisa dipetakan ke output yang sedang fokus alih-alih satu output tetap yang ditentukan
    • Memperbaiki masalah ketika pada piksel paling atas workspace, kursor tidak selalu tepat menunjuk jendela maximize
    • Memperbaiki masalah Alt-Tab yang merespons input mouse sebelum tampil di layar
    • Scroll on-button-down pada trackball kini juga berfungsi di overview
    • Status Num Lock kini tetap dipertahankan bahkan setelah memuat custom .xkb keymap
    • Memperbaiki masalah perangkat input sama sekali tidak bisa dipakai saat dijalankan dari TTY lain melalui tmux
    • Mengaktifkan pemuatan plugin libinput

Profiling GPU dan optimasi rendering

  • Integrasi profiling GPU ditambahkan ke Tracy yang digunakan di Smithay dan niri
    • Pekerjaan untuk mengirim kueri timestamp GPU, mengumpulkan nilai yang sudah selesai, lalu mengirimkannya ke Tracy telah ditambahkan ke Smithay: PR terkait
    • Kini dimungkinkan memberi penanda rentang baik untuk pekerjaan GPU internal Smithay maupun pekerjaan GPU milik compositor itu sendiri
    • Kini bisa melacak bagaimana rendering buffer DRM dan rendering buffer screencast PipeWire saling tumpang tindih dalam satu frame
    • Pada sistem multi-GPU, track per GPU juga bisa diperiksa
    • Ini memungkinkan verifikasi bahwa performa blur tidak lebih lambat dari perkiraan, dan juga mempermudah diagnosis dropped frame akibat kemacetan rendering GPU
  • Metode penyusunan render list direstrukturisasi dari berbasis iterator menjadi berbasis push
    • Sebelumnya, elemen render digabungkan dalam bentuk -> impl Iterator<Item = ...>
    • Ada berbagai kerumitan seperti percabangan kondisi, lifetime, peminjaman &self, konflik dengan &mut Renderer, alokasi Vec perantara, dan masalah batas crate
    • Struktur baru membuat fungsi render menerima push: &mut dyn FnMut(Element) lalu mendorong elemen ke dalamnya
    • Fungsi perantara bisa mempertahankan logika lama dengan closure yang membungkus push tingkat atas
    • Vec sementara hilang dan masalah borrowing juga lenyap
    • Di niri, keuntungan penghentian awal iterator ternyata memang tidak dibutuhkan dalam praktik
  • Refaktorisasi ini membuat kecepatan penyusunan render list meningkat drastis
    • Pada mesin utama, peningkatannya 2–3 kali
    • Pada Eee PC lama, peningkatannya 8 kali
    • Penyusunan render list memang bukan waktu rendering GPU aktual itu sendiri, tetapi karena sering dijalankan meski layar tidak perlu digambar ulang, dampak perbaikannya tetap besar
    • Penggunaan memori juga berkurang, dan alokasi pada jalur baru kini sebagian besar hanya tersisa untuk perluasan vektor output
    • Motivasi dan diff lebih rinci bisa dilihat di PR

Dukungan hardware lama

  • Penyebab kegagalan screenshot pada laptop Intel lawas terungkap sebagai nilai enum OpenGL yang salah di Smithay, dan kini sudah diperbaiki: PR analisis penyebab
  • Shader niri juga dioptimalkan sedikit sehingga pada GPU terbatas milik ASUS Eee PC yang sangat tua pun kini
    • animasi ubah ukuran jendela
    • sudut membulat compositor
    • bisa berjalan

Peningkatan lainnya

  • Memperbaiki masalah kebocoran VRAM yang pada sebagian sistem terjadi setelah aplikasi tertentu ditutup
  • Protokol ext-foreign-toplevel-list ditambahkan sehingga lebih mudah menghubungkan objek jendela Wayland dan ID jendela IPC niri di Quickshell dan lainnya
  • Jika terjadi error bind duplikat di konfigurasi, kini lokasi definisi pertama dari bind yang sama juga ikut ditampilkan
  • Menampilkan grabbing cursor saat drag jendela dengan Mod+LMB
  • --path ditambahkan ke niri msg action load-config-file sehingga bisa beralih ke file konfigurasi lain saat runtime
  • Dukungan DMA-BUF hadir di nested niri sehingga akselerasi hardware kembali berfungsi bahkan setelah Mesa menghentikan wl_drm
  • Menghapus padding yang sebelumnya ditambahkan niri pada popup layer-shell dekat tepi monitor
  • Juga mencakup perubahan pada konfigurasi default
    • Mod+M: maximize-window-to-edges
    • Mod+Shift+R: switch-preset-column-width-back
  • Flag debug force-disable-connectors-on-resume ditambahkan sehingga layar bisa dipaksa blank saat berpindah TTY atau kembali dari mode tidur
  • Memperbaiki agar sudut jendela pada fullscreen berjendela diproses sebagai siku-siku dengan benar
  • Memperbaiki masalah layar yang terus digambar ulang selama overview terbuka
  • Sedikit menyesuaikan rendering gradient border relative-to=workspace-view saat drag interaktif
  • Merapikan rendering shortcut diaeresis di dialog Important Hotkeys
  • Memperbarui deskripsi expel-window-from-column pada niri msg action agar sesuai dengan perilaku sebenarnya, yaitu mengeluarkan jendela di bawahnya
  • Memperbaiki beberapa panic yang bisa terjadi ketika klien mencoba memakai output yang baru saja dihapus
  • Memperbaiki kerusakan rendering saat clip-to-geometry digunakan bersama klien yang melampirkan buffer y_invert
  • Memperbaiki build OpenBSD
  • Nested niri kini diubah agar menetapkan app-id untuk jendelanya sendiri
  • Saat GPU baru dipasang, pengaturan debug ignore-drm-device akan dievaluasi ulang sehingga symbolic link /dev/dri/by-path/ juga bisa dimanfaatkan

Mengadopsi pembaruan Smithay

  • Berbagai peningkatan dasar juga ikut masuk melalui pembaruan Smithay
    • Pemilihan GPU otomatis membaik pada sebagian perangkat seperti ARM Mac
    • Asahi dan Pinephone kini bisa langsung berjalan tanpa pengaturan manual render-drm-device
    • Perilaku beberapa klien layer-shell seperti wl_shimeji membaik
    • Dukungan dock dengan EDID monitor yang dimuat terlambat ditingkatkan
    • Screenshot dan screencast kini berfungsi pada sistem Intel lama
    • Memperbaiki masalah output lama yang tertinggal saat dock USB-C dilepas dalam kondisi suspend
    • Memperbaiki panic zxdg_exporter_v2 pada sebagian klien
    • Memperbaiki kebocoran memori pada klien yang tidak secara eksplisit menghancurkan protokol clipboard
    • Memperbaiki panic terkait content hint dan purpose pada text-input yang mulai terjadi di rilisan pengembangan GTK 4.23
    • Drag-and-drop, input teks IME, multi-GPU, dan performa secara umum juga ditingkatkan

1 komentar

 
GN⁺ 11 jam lalu
Komentar Hacker News
  • Saya sangat suka Niri; sejak pindah sekitar 5 bulan lalu, ini terasa seperti salah satu keputusan terbaik saya dalam beberapa tahun terakhir, yaitu meninggalkan Windows
    Saya benar-benar sangat berterima kasih kepada pembuatnya
    dotfiles saya awalnya sudah mencakup skrip instalasi untuk konfigurasi alat CLI, pergantian tema, dan sebagainya, dan sekarang di distro keluarga Arch juga sudah mendukung Niri sepenuhnya
    Jika ingin cepat mencoba lingkungan desktop baru, https://github.com/nickjj/dotfiles cukup bagus untuk langsung mulai
    Saya memakainya di desktop utama dan laptop untuk bepergian

    • Saya juga sama, kombinasi monitor curved ultrawide dengan Niri sangat cocok
    • Coba lihat juga Nirimod
      Tidak resmi, tapi benar-benar luar biasa
    • Omarchy menambahkan toggle mode scrollable per-workspace seperti ini
      Tekan Win/Cmd + L untuk berpindah antara tiling dan scrolling, dan sekarang saya sangat sering memakainya
  • Berkat Niri, saya pertama kali mengenal manajemen jendela berbasis scroll dan langsung merasa cocok
    Baru-baru ini OmniWM untuk Mac menambahkan mode emulasi Niri penuh per-workspace, dan untungnya juga kompatibel dengan Sequoia, jadi langsung jadi window manager utama saya
    [1] https://github.com/BarutSRB/OmniWM

    • Paneru adalah alat baru di macOS yang memang dibuat khusus untuk meniru Niri
    • Saya juga mirip
      Saat pertama tahu pendekatan Niri, saya langsung suka dan terus mencari sesuatu yang serupa di Mac
      Ini adalah implementasi terbaik yang pernah saya coba sejauh ini, dan memang ada beberapa quirks kecil, tapi setidaknya buat saya sudah cukup layak dipakai sebagai daily driver
      Terutama tabbed columns-nya benar-benar bagus
      Tepuk tangan untuk maintainer dan para kontributornya
  • Kalau memakai Mac, saya merekomendasikan OmniWM
    Bukan cuma punya layout gaya Niri, tapi juga ada layout yang lebih dekat ke Hyprland, dan itu membuat pekerjaan di macOS jauh lebih nyaman
    https://github.com/BarutSRB/OmniWM
    Saya juga pernah mempostingnya saat baru mulai memakainya; setelah terus dipakai, ternyata memang sangat bagus dan layak direkomendasikan dengan kuat

    • Maaf, tapi video demonya termasuk video demo terburuk yang pernah saya lihat seumur hidup
      Rasanya tak ada orang yang akan melihat itu lalu ingin mencoba software ini, dan bahkan kalau sudah jadi pengguna pun bisa-bisa ingin menghapusnya
  • Saya memakai ekstensi PaperWM untuk GNOME, dan mungkin Niri juga terinspirasi dari sini
    Ini jelas cara kerja yang menarik, tapi begitu ada lebih dari 3 jendela dalam satu workspace, rasanya agak merepotkan, jadi saya belum sampai benar-benar jatuh cinta
    Meski begitu saya tetap sedang mencoba memakainya dengan serius, dan karena ini ekstensi GNOME, enaknya saya masih bisa memakai sisa GNOME DE apa adanya tanpa banyak konfigurasi

    • Sudah lama saya ingin pindah ke Niri, tapi proses menyesuaikan konfigurasi tambahan selalu memakan beberapa hari
      Karena hal-hal seperti top bar, idle timeout, dan notifikasi juga harus diurus semua
      Tapi belakangan saya tahu ada desktop shell untuk Wayland, dan itu menyediakan sebagian besar hal yang biasanya diharapkan dari lingkungan seperti GNOME tanpa banyak repot
      Ada dialog pengaturan, app tray, pemantauan resource, sampai top bar
      Sekarang saya memakai dank material shell, dan keren sekali bahwa desktop shell dan compositor bisa dipadupadankan sesuka hati
    • Saya juga sama, saya suka karena PaperWM adalah ekstensi GNOME yang tidak invasif
      Alur kerja saya secara keseluruhan memang membaik, tapi berkat itu saya juga bisa menghapus dua-tiga ekstensi lain seperti desktop grid
  • Saya sudah sepenuhnya terbiasa dengan alur tiling WM yang memungkinkan berpindah cepat di antara beberapa workspace fullscreen khusus dan mengelola jendela hanya dengan keyboard
    Biasanya saya menaruh satu aplikasi per workspace, atau satu terminal dengan tmux terbuka, dan hanya sesekali menaruh dua aplikasi berdampingan
    Saya benar-benar penasaran bagaimana model mental berubah bagi orang yang pindah ke Niri dari alur serupa

    • Di KDE, GNOME, dan Niri saya selalu memakai workspace per aktivitas/proyek
      Misalnya workspace untuk Steam dan wiki game, workspace untuk Emacs dan browser dokumen, workspace untuk Godot dan aplikasi pengembangan game
      Hal bagus dari Niri adalah hampir tidak ada tekanan untuk menutup sesuatu hanya karena jendelanya terasa sudah terlalu banyak
      Memisahkan dan merapikannya cukup mudah
      Saya kurang paham kenapa orang memakai workspace per aplikasi
      Saya juga tidak suka satu Firefox mencampur tab kerja dan hobi sekaligus
    • Saya sudah cukup lama jadi pengguna tiling, dan konfigurasinya juga mirip
      Saya pernah memakai awesome, qtile, sempat xmonad sebentar, lalu i3, kemudian saat pindah ke Wayland memakai sway, dan sedikit mencoba hyprland juga
      Masalah yang selalu saya hadapi adalah, begitu jumlah jendela lebih dari 3, tata letak horizontal tidak lagi enak dipakai, sementara split vertikal jadi terlalu kecil
      Di sisi lain, saya sering ingin membuka jendela baru di samping sesuatu yang sedang saya baca, atau menampilkan plot ipython di sebelah terminal
      Setiap kali itu terjadi, saya harus mengelompokkannya dalam stacked layout atau memindahkannya ke workspace baru, dan gesekan seperti itu cukup sering memutus alur kerja saya karena harus mengurus jendela
      Di Niri, saya tinggal membuka jendela baru dan ia muncul di tempat yang diperlukan, sementara jendela lain tetap berada di kiri-kanannya sehingga saya cukup scroll ke sana
      Sekarang alur kerja saya memang jadi sedikit lebih berantakan dibanding dulu, tapi justru itu yang saya suka
      Tiling WM tradisional menuntut kerapian sekaligus memudahkan untuk merapikan, sedangkan di Niri saya tidak perlu repot merapikan
      Sesekali kalau saya tidak langsung menemukan jendela yang dicari, saya memakai overview, dan saya juga menambahkan pencarian jendela lewat rofi
      Awalnya saya terus memakai workspace bernama karena kebiasaan dari masa memakai sway, tapi sekarang sudah tidak lagi
    • Saya pindah dari KDE dengan alur yang hampir sama persis
      Workspace 1 adalah terminal fullscreen dengan zellij, 2 browser, 3 sekitar dua aplikasi chat, dan saya berpindah di antaranya lewat shortcut
      Awalnya saya memakai Niri karena lebih ringan dan berbeda dari Plasma, tapi sekarang alur kerja saya juga sedikit berubah
      Kebanyakan jendela tetap saya pakai sebesar layar, dan saya masih menatanya kurang lebih sama seperti 1 untuk pengembangan, 2 untuk browser dan kadang pembaca email, 3 untuk aplikasi chat
      Hanya saja sekarang saya jauh lebih sering membuka jendela terminal baru untuk mengetik perintah singkat atau membiarkan pekerjaan yang berjalan lama tetap terbuka
      Di KDE, jendela-jendela seperti ini dulu bertumpuk di belakang, tapi sekarang di dalam workspace 1 mereka tersusun berdampingan
      Kalau dipikir-pikir lagi, cara berpindah dengan Alt-Tab sekarang terasa cukup menyesakkan, dan memakai Super-hjkl terasa jauh lebih ringan
      Tentu tiap orang berbeda, tapi perasaan bahwa jendela-jendela berada di samping satu sama lain alih-alih saling menumpuk membuat alur kerja terasa lebih ringan
    • Itu sebenarnya terlihat lebih dekat ke kombinasi fullscreen dan workspace daripada tiling
      Dengan WM tiling manual seperti i3 atau sway dan monitor besar, layar bisa dibagi menjadi beberapa area kerja sehingga tiap area menampung beberapa aplikasi berdasarkan peran, dan jumlah workspace bisa dikurangi
      Scrolling adalah alur yang mirip tapi berbeda, dan terutama cocok ketika fleksibilitas penting di layar kecil
    • Menurut saya satu workspace per aplikasi tidak terlalu berarti dalam tiling WM
      Alur seperti itu lebih cocok untuk floating WM
      Kelebihan sejati tiling WM adalah benar-benar menata jendela dalam bentuk tile, dan buat saya holy trinity browser·editor·terminal yang terlihat bersamaan adalah inti utamanya
      Lalu harus bisa berpindah secara spasial dengan super+hjkl atau tombol arah
      Karena itu, workspace per proyek terasa jauh lebih alami dan lebih sesuai dengan gaya tiling WM
      Niri melakukan ini dengan jauh lebih baik karena jendela baru dibuka di sebelah kanan tanpa merusak layout yang sedang ada
      Misalnya saat membuka PDF, saya bisa dengan mudah berpindah ke jendela baru itu sambil tetap mempertahankan susunan yang sudah ada
  • Berikut tautan terkait
    The dank case for scrolling window managers - https://news.ycombinator.com/item?id=46820468 - Jan 2026 (61 komentar)
    Niri 25.11 released with alt-tab and other improvements - https://news.ycombinator.com/item?id=46097051 - Nov 2025 (1 komentar)
    Niri – A scrollable-tiling Wayland compositor - https://news.ycombinator.com/item?id=45461500 - Okt 2025 (229 komentar)
    The Future Is Niri - https://news.ycombinator.com/item?id=43342178 - Maret 2025 (216 komentar)
    Niri: A scrollable-tiling Wayland compositor - https://news.ycombinator.com/item?id=37367687 - Sept 2023 (37 komentar)

  • Kalau ingin mencoba dots NNN (Niri-Nix-Noctalia), silakan ambil flake saya
    https://github.com/MostlyKIGuess/nix-flake-public

    • Saya sudah memakai window manager selama beberapa tahun, tapi pada akhirnya kembali ke desktop environment yang serba jadi karena hambatan harus mengatur sendiri konfigurasi di luar WM
      Hal-hal seperti dark mode saja sudah cukup merepotkan, dan Noctalia tampak persis mengarah ke yang saya inginkan
      Terima kasih sudah menyebutkannya
  • Saya memakai branch wl-only dari mangowm (berbasis wlroots 0.20)
    Jauh lebih hemat resource, punya lebih banyak layout, dan lebih sedikit masalah
    Niri memang terlihat punya efek visual yang lebih bagus, tapi tetap sangat layak untuk dicoba
    Kalau butuh HDR, untuk saat ini masih harus menunggu
    https://github.com/mangowm/mango

    • Saya penasaran, masalah seperti apa yang dimaksud lebih sedikit
      Dalam pengalaman saya, Niri benar-benar rock solid
  • Ini terdengar seperti ada seorang jenius Rusia yang membuat sesuatu yang lebih baik daripada token Claude senilai 100 juta dolar
    Tentu saja ini sama sekali bukan kegilaan massal, jadi suasananya seperti semua orang disuruh beli SPY saja

    • Sepertinya memang benar-benar jenius
      Kalau melihat catatan rilisnya, rasanya bahkan indah dengan sendirinya
  • Akhir tahun lalu saya pindah ke Niri setelah memakai i3 lebih dari 10 tahun
    Scroll horizontal yang tidak terikat ukuran monitor, dan jumlah workspace yang tidak terikat pada banyaknya shortcut yang saya atur, benar-benar memberi rasa bebas
    Kualitas sisi grafisnya juga bagus
    Hanya saja satu kekurangan yang masih tersisa adalah layer kompatibilitas X, xwayland-satellite, masih belum mendukung drag and drop antara aplikasi X dan aplikasi Wayland
    [1]: https://davidyat.es/2026/01/28/niri/
    [2]: https://github.com/Supreeeme/xwayland-satellite/issues/133

    • Situasi saya juga mirip
      Dulu saya selalu mudah mengingat karena terbiasa menaruh hal yang sama di workspace yang sama, tapi sekarang penataannya jadi tersebar ke mana-mana
      Dan saya cukup sangat merindukan scratch
      Rasanya ini mungkin bisa diatasi kalau saya lebih rajin mengutak-atik konfigurasi, tapi saya belum mau menghabiskan waktu ke sana