Skip to content
  • Hjem
  • Seneste
  • Etiketter
  • Populære
  • Verden
  • Bruger
  • Grupper
Temaer
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Kollaps
FARVEL BIG TECH
  1. Forside
  2. Ikke-kategoriseret
  3. Decided to try writing a Wayland compositor for fun.

Decided to try writing a Wayland compositor for fun.

Planlagt Fastgjort Låst Flyttet Ikke-kategoriseret
227 Indlæg 2 Posters 0 Visninger
  • Ældste til nyeste
  • Nyeste til ældste
  • Most Votes
Svar
  • Svar som emne
Login for at svare
Denne tråd er blevet slettet. Kun brugere med emne behandlings privilegier kan se den.
  • yalter@mastodon.onlineY yalter@mastodon.online

    unusual sights

    #niri

    yalter@mastodon.onlineY This user is from outside of this forum
    yalter@mastodon.onlineY This user is from outside of this forum
    yalter@mastodon.online
    wrote on sidst redigeret af
    #101

    Turns out, there's a lot of details to get right when implementing a floating window space. For example, dialog windows should always show above their parent window. Otherwise, it's easy to lose them under the (usually much bigger) parent.

    The WIP floating branch in niri now handles this properly, even for xdg-desktop-portal dialogs (like file chooser) as long as the app correctly parents them via xdg-foreign.

    #niri

    yalter@mastodon.onlineY 1 Reply Last reply
    0
    • yalter@mastodon.onlineY yalter@mastodon.online

      Turns out, there's a lot of details to get right when implementing a floating window space. For example, dialog windows should always show above their parent window. Otherwise, it's easy to lose them under the (usually much bigger) parent.

      The WIP floating branch in niri now handles this properly, even for xdg-desktop-portal dialogs (like file chooser) as long as the app correctly parents them via xdg-foreign.

      #niri

      yalter@mastodon.onlineY This user is from outside of this forum
      yalter@mastodon.onlineY This user is from outside of this forum
      yalter@mastodon.online
      wrote on sidst redigeret af
      #102

      Another piece of the floating puzzle: keeping windows on screen. When you change your monitor scale or resolution, you don't want your floating windows to suddenly go unreachable behind the monitor's new borders.

      Here I'm resizing a nested niri with three windows, simulating resolution changes. No matter what I do, they always remain partially visible and reachable. Even for more unusual cases like trying to resize a window into out of bounds.

      #niri

      yalter@mastodon.onlineY 1 Reply Last reply
      0
      • yalter@mastodon.onlineY yalter@mastodon.online

        Another piece of the floating puzzle: keeping windows on screen. When you change your monitor scale or resolution, you don't want your floating windows to suddenly go unreachable behind the monitor's new borders.

        Here I'm resizing a nested niri with three windows, simulating resolution changes. No matter what I do, they always remain partially visible and reachable. Even for more unusual cases like trying to resize a window into out of bounds.

        #niri

        yalter@mastodon.onlineY This user is from outside of this forum
        yalter@mastodon.onlineY This user is from outside of this forum
        yalter@mastodon.online
        wrote on sidst redigeret af
        #103

        In the tiling layout, niri is constantly asking windows to assume their expected size. In contrast, floating windows should be able to freely change size as they see fit.

        The logic turns out to be quite tricky. On the one hand we want a window to keep its latest size, but on the other we still want to be able to resize the window, which means asking it for a different size. The window can take a second to respond, or respond with a yet another size, and nothing must break.

        #niri

        yalter@mastodon.onlineY 1 Reply Last reply
        0
        • yalter@mastodon.onlineY yalter@mastodon.online

          In the tiling layout, niri is constantly asking windows to assume their expected size. In contrast, floating windows should be able to freely change size as they see fit.

          The logic turns out to be quite tricky. On the one hand we want a window to keep its latest size, but on the other we still want to be able to resize the window, which means asking it for a different size. The window can take a second to respond, or respond with a yet another size, and nothing must break.

          #niri

          yalter@mastodon.onlineY This user is from outside of this forum
          yalter@mastodon.onlineY This user is from outside of this forum
          yalter@mastodon.online
          wrote on sidst redigeret af
          #104

          While trying to make this work, I realized that this is the time when I *really really* want to be able to test this stuff. So I got on a sidetrack adventure to write testing infra for running real Wayland clients inside unit tests.

          I've got it working! In these tests, I'm creating a new niri instance along with test clients, all on the same test-local event loop. No global state, no threads needed.

          What's really cool is that this lets me test the weirdest client-server event timings.

          #niri

          yalter@mastodon.onlineY 1 Reply Last reply
          0
          • yalter@mastodon.onlineY yalter@mastodon.online

            While trying to make this work, I realized that this is the time when I *really really* want to be able to test this stuff. So I got on a sidetrack adventure to write testing infra for running real Wayland clients inside unit tests.

            I've got it working! In these tests, I'm creating a new niri instance along with test clients, all on the same test-local event loop. No global state, no threads needed.

            What's really cool is that this lets me test the weirdest client-server event timings.

            #niri

            yalter@mastodon.onlineY This user is from outside of this forum
            yalter@mastodon.onlineY This user is from outside of this forum
            yalter@mastodon.online
            wrote on sidst redigeret af
            #105

            This morning I worked on remembering the size for floating windows when they go to the tiling layout and back.

            The whole sizing code must be at the top by logic complexity in niri. I have to juggle, all at once:

            - new size I haven't sent to the window yet,
            - size changes I sent, but window hasn't acked yet (0, 1, or more in-flight),
            - size change window acked but hasn't committed for yet,
            - size change window acked and responded to with a commit (maybe with a different size entirely).

            #niri

            yalter@mastodon.onlineY 1 Reply Last reply
            0
            • yalter@mastodon.onlineY yalter@mastodon.online

              This morning I worked on remembering the size for floating windows when they go to the tiling layout and back.

              The whole sizing code must be at the top by logic complexity in niri. I have to juggle, all at once:

              - new size I haven't sent to the window yet,
              - size changes I sent, but window hasn't acked yet (0, 1, or more in-flight),
              - size change window acked but hasn't committed for yet,
              - size change window acked and responded to with a commit (maybe with a different size entirely).

              #niri

              yalter@mastodon.onlineY This user is from outside of this forum
              yalter@mastodon.onlineY This user is from outside of this forum
              yalter@mastodon.online
              wrote on sidst redigeret af
              #106

              The diff is 85 lines of change and 243 lines of new tests, and I already found a few weirder edge cases that I've missed. No way I could do this well without that client-server testing setup that I posted about yesterday.

              Btw I pushed the testing setup if you're curious, along with the entirety of 1215 snapshot files for a powerset of new window workspace/output target settings: https://github.com/YaLTeR/niri/commit/771ea1e81557ffe7af9cbdbec161601575b64d81

              The WIP floating branch caused them to update in several commits already.

              #niri

              yalter@mastodon.onlineY 1 Reply Last reply
              0
              • yalter@mastodon.onlineY yalter@mastodon.online

                The diff is 85 lines of change and 243 lines of new tests, and I already found a few weirder edge cases that I've missed. No way I could do this well without that client-server testing setup that I posted about yesterday.

                Btw I pushed the testing setup if you're curious, along with the entirety of 1215 snapshot files for a powerset of new window workspace/output target settings: https://github.com/YaLTeR/niri/commit/771ea1e81557ffe7af9cbdbec161601575b64d81

                The WIP floating branch caused them to update in several commits already.

                #niri

                yalter@mastodon.onlineY This user is from outside of this forum
                yalter@mastodon.onlineY This user is from outside of this forum
                yalter@mastodon.online
                wrote on sidst redigeret af
                #107

                The big 1215 snapshot test powerset (actually it already grew to 1695) continues to prove its worth. Just finished a big +495 -508 cleanup of the window opening code, and verified that not a single of those 1215 window opening configurations changed its outcome. I will be sleeping well tonight

                #niri

                yalter@mastodon.onlineY 1 Reply Last reply
                0
                • yalter@mastodon.onlineY yalter@mastodon.online

                  The big 1215 snapshot test powerset (actually it already grew to 1695) continues to prove its worth. Just finished a big +495 -508 cleanup of the window opening code, and verified that not a single of those 1215 window opening configurations changed its outcome. I will be sleeping well tonight

                  #niri

                  yalter@mastodon.onlineY This user is from outside of this forum
                  yalter@mastodon.onlineY This user is from outside of this forum
                  yalter@mastodon.online
                  wrote on sidst redigeret af
                  #108

                  After three weeks of hard work, I am undrafting the floating window PR in niri. Please give it thorough testing and report any bugs or issues!

                  https://github.com/YaLTeR/niri/pull/871

                  #niri

                  yalter@mastodon.onlineY 1 Reply Last reply
                  0
                  • yalter@mastodon.onlineY yalter@mastodon.online

                    After three weeks of hard work, I am undrafting the floating window PR in niri. Please give it thorough testing and report any bugs or issues!

                    https://github.com/YaLTeR/niri/pull/871

                    #niri

                    yalter@mastodon.onlineY This user is from outside of this forum
                    yalter@mastodon.onlineY This user is from outside of this forum
                    yalter@mastodon.online
                    wrote on sidst redigeret af
                    #109

                    Early happy new year! 🎉

                    Thanks to everyone who helped with testing and ideas!

                    #niri

                    yalter@mastodon.onlineY 1 Reply Last reply
                    0
                    • yalter@mastodon.onlineY yalter@mastodon.online

                      Early happy new year! 🎉

                      Thanks to everyone who helped with testing and ideas!

                      #niri

                      yalter@mastodon.onlineY This user is from outside of this forum
                      yalter@mastodon.onlineY This user is from outside of this forum
                      yalter@mastodon.online
                      wrote on sidst redigeret af
                      #110

                      I spent today figuring out the remaining layer-shell keyboard focus problems, and I've got it all working! Pop-ups now render above windows, and bottom/background layers can receive on-demand focus.

                      Effectively, this makes the desktop icons components from @LXQt or @xfce just work on niri!

                      #niri

                      yalter@mastodon.onlineY 1 Reply Last reply
                      0
                      • yalter@mastodon.onlineY yalter@mastodon.online

                        I spent today figuring out the remaining layer-shell keyboard focus problems, and I've got it all working! Pop-ups now render above windows, and bottom/background layers can receive on-demand focus.

                        Effectively, this makes the desktop icons components from @LXQt or @xfce just work on niri!

                        #niri

                        yalter@mastodon.onlineY This user is from outside of this forum
                        yalter@mastodon.onlineY This user is from outside of this forum
                        yalter@mastodon.online
                        wrote on sidst redigeret af
                        #111

                        Alright, I think I got all of the important things in for the next niri release. Today I updated Smithay for the DRM compositor changes, and added a workaround for a panic when you have two monitors with exactly matching make/model/serial.

                        I'll give it a week of testing (if you run niri-git, please report any problems) and if all goes well, tag next Saturday.

                        There are a few PRs I'll try to review in time, but they're fairly self contained.

                        #niri

                        yalter@mastodon.onlineY 1 Reply Last reply
                        0
                        • yalter@mastodon.onlineY yalter@mastodon.online

                          Alright, I think I got all of the important things in for the next niri release. Today I updated Smithay for the DRM compositor changes, and added a workaround for a panic when you have two monitors with exactly matching make/model/serial.

                          I'll give it a week of testing (if you run niri-git, please report any problems) and if all goes well, tag next Saturday.

                          There are a few PRs I'll try to review in time, but they're fairly self contained.

                          #niri

                          yalter@mastodon.onlineY This user is from outside of this forum
                          yalter@mastodon.onlineY This user is from outside of this forum
                          yalter@mastodon.online
                          wrote on sidst redigeret af
                          #112

                          After a full day of writing release notes (god how'd it take so long 😫), niri v25.01 is out with Floating Windows and Working Layer-Shell Desktop Icons and Layer-Shell Screencast Blocking Out and so many more improvements! Yes, you read that right, we finally escaped zerover! I feel that niri is now ready to graduate from v0.1

                          Read here and download when your distribution package updates: https://github.com/YaLTeR/niri/releases/tag/v25.01

                          #niri #smithay #wayland #rust

                          yalter@mastodon.onlineY 1 Reply Last reply
                          0
                          • yalter@mastodon.onlineY yalter@mastodon.online

                            After a full day of writing release notes (god how'd it take so long 😫), niri v25.01 is out with Floating Windows and Working Layer-Shell Desktop Icons and Layer-Shell Screencast Blocking Out and so many more improvements! Yes, you read that right, we finally escaped zerover! I feel that niri is now ready to graduate from v0.1

                            Read here and download when your distribution package updates: https://github.com/YaLTeR/niri/releases/tag/v25.01

                            #niri #smithay #wayland #rust

                            yalter@mastodon.onlineY This user is from outside of this forum
                            yalter@mastodon.onlineY This user is from outside of this forum
                            yalter@mastodon.online
                            wrote on sidst redigeret af
                            #113

                            something odd about these windows

                            #niri

                            yalter@mastodon.onlineY 1 Reply Last reply
                            0
                            • yalter@mastodon.onlineY yalter@mastodon.online

                              something odd about these windows

                              #niri

                              yalter@mastodon.onlineY This user is from outside of this forum
                              yalter@mastodon.onlineY This user is from outside of this forum
                              yalter@mastodon.online
                              wrote on sidst redigeret af
                              #114

                              this is a completely normal screenshot. nothing unusual here

                              #niri

                              yalter@mastodon.onlineY 1 Reply Last reply
                              0
                              • yalter@mastodon.onlineY yalter@mastodon.online

                                this is a completely normal screenshot. nothing unusual here

                                #niri

                                yalter@mastodon.onlineY This user is from outside of this forum
                                yalter@mastodon.onlineY This user is from outside of this forum
                                yalter@mastodon.online
                                wrote on sidst redigeret af
                                #115

                                Looking for testing and feedback for server-side shadows: https://github.com/YaLTeR/niri/pull/990

                                #niri

                                yalter@mastodon.onlineY 1 Reply Last reply
                                0
                                • yalter@mastodon.onlineY yalter@mastodon.online

                                  Looking for testing and feedback for server-side shadows: https://github.com/YaLTeR/niri/pull/990

                                  #niri

                                  yalter@mastodon.onlineY This user is from outside of this forum
                                  yalter@mastodon.onlineY This user is from outside of this forum
                                  yalter@mastodon.online
                                  wrote on sidst redigeret af
                                  #116

                                  ppl from our niri matrix playing around with the new compositor-side shadows! These screenshots are from @r4hulrosh4n and calops (no fedi)

                                  #niri

                                  yalter@mastodon.onlineY 1 Reply Last reply
                                  0
                                  • yalter@mastodon.onlineY yalter@mastodon.online

                                    ppl from our niri matrix playing around with the new compositor-side shadows! These screenshots are from @r4hulrosh4n and calops (no fedi)

                                    #niri

                                    yalter@mastodon.onlineY This user is from outside of this forum
                                    yalter@mastodon.onlineY This user is from outside of this forum
                                    yalter@mastodon.online
                                    wrote on sidst redigeret af
                                    #117

                                    Added shadow support for layer-shell surfaces!

                                    Though unfortunately layer-shell has no way to signal the visual geometry, so this only looks right if the layer surface doesn't have its own margins.

                                    https://github.com/YaLTeR/niri/wiki/Configuration:-Layer-Rules#shadow

                                    #niri

                                    yalter@mastodon.onlineY 1 Reply Last reply
                                    0
                                    • yalter@mastodon.onlineY yalter@mastodon.online

                                      Added shadow support for layer-shell surfaces!

                                      Though unfortunately layer-shell has no way to signal the visual geometry, so this only looks right if the layer surface doesn't have its own margins.

                                      https://github.com/YaLTeR/niri/wiki/Configuration:-Layer-Rules#shadow

                                      #niri

                                      yalter@mastodon.onlineY This user is from outside of this forum
                                      yalter@mastodon.onlineY This user is from outside of this forum
                                      yalter@mastodon.online
                                      wrote on sidst redigeret af
                                      #118

                                      I'm adding tabs to niri. Instead of some separate mode, they're just changing how a column is displayed. This means all your hotkeys and everything works exactly the same with tabs. Which was a wonderful UX idea by @elkowar!

                                      I've got a draft PR going with some design and UX questions, please feel free to try it and give feedback: https://github.com/YaLTeR/niri/pull/1085

                                      #niri

                                      yalter@mastodon.onlineY 1 Reply Last reply
                                      0
                                      • yalter@mastodon.onlineY yalter@mastodon.online

                                        I'm adding tabs to niri. Instead of some separate mode, they're just changing how a column is displayed. This means all your hotkeys and everything works exactly the same with tabs. Which was a wonderful UX idea by @elkowar!

                                        I've got a draft PR going with some design and UX questions, please feel free to try it and give feedback: https://github.com/YaLTeR/niri/pull/1085

                                        #niri

                                        yalter@mastodon.onlineY This user is from outside of this forum
                                        yalter@mastodon.onlineY This user is from outside of this forum
                                        yalter@mastodon.online
                                        wrote on sidst redigeret af
                                        #119

                                        Why would you even want tabs in niri? Occasionally it's quite useful. For example, when streaming programming, I increase the font size, so I can no longer fit editor + terminal on the screen at once. Scrolling back and forth gets annoying, and tabs feel just right for this.

                                        yalter@mastodon.onlineY 1 Reply Last reply
                                        0
                                        • yalter@mastodon.onlineY yalter@mastodon.online

                                          Why would you even want tabs in niri? Occasionally it's quite useful. For example, when streaming programming, I increase the font size, so I can no longer fit editor + terminal on the screen at once. Scrolling back and forth gets annoying, and tabs feel just right for this.

                                          yalter@mastodon.onlineY This user is from outside of this forum
                                          yalter@mastodon.onlineY This user is from outside of this forum
                                          yalter@mastodon.online
                                          wrote on sidst redigeret af
                                          #120

                                          We just hit 5000 stars! 🎉

                                          #niri

                                          yalter@mastodon.onlineY 1 Reply Last reply
                                          0
                                          Svar
                                          • Svar som emne
                                          Login for at svare
                                          • Ældste til nyeste
                                          • Nyeste til ældste
                                          • Most Votes


                                          • Log ind

                                          • Har du ikke en konto? Tilmeld

                                          • Login or register to search.
                                          Powered by NodeBB Contributors
                                          Graciously hosted by data.coop
                                          • First post
                                            Last post
                                          0
                                          • Hjem
                                          • Seneste
                                          • Etiketter
                                          • Populære
                                          • Verden
                                          • Bruger
                                          • Grupper