YaLTeR

@YaLTeR@mastodon.online

Hi! I enjoy #Rust and #GNOME. I play a bit of Quaver and osu!. Apparently a Wayland compositor author now.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

alatiera, to random
@alatiera@mastodon.social avatar

deleted_by_author

  • Loading...
  • YaLTeR,

    @alatiera not before i implement must-have features such as rounded window corners and blur

    bragefuglseth, to random
    @bragefuglseth@fosstodon.org avatar

    Here's a tiny questionnaire for those of you that use non-Latin scripts:

    1. What script do you use (besides Latin)?
    2. How do you use this script on a keyboard? (Do all the glyphs fit on a single keyboard, or does it require a special software input method? Is it handled by your apps or by your operating system?)

    By answering this, you'll help me consider some things for a hobby project of mine (which I probably will ramble more than enough about here in the future). Thanks a lot 🥰

    YaLTeR,

    @bragefuglseth Russian. Glyphs are printed on the keyboard together with the standard QWERTY layout, and you switch between English and Russian layouts with xkb (Super+Space in GNOME). All glyphs fit, but some are located on the qwerty symbol buttons since there are a few more than latin.

    Russians are used to switching back and forth to US/English, and the US layout is always present alongside. Keyboard shortcuts are traditionally written and resolved with English keys (e.g. it's still Ctrl+V).

    YaLTeR, to random

    I swear, every single time I'm preparing release notes for one of my projects I randomly stumble upon a completely unrelated bug that's been sitting there unnoticed for months. It just happened again with niri 0.1.4, I hit a timing based crash in the screencast code that must've been there from the beginning. I'm actually glad because it means I can fix it right away, but how does this keep happening lol

    YaLTeR,

    @lanodan oh don't worry, that happens plenty often also 🙃

    alatiera, to random
    @alatiera@mastodon.social avatar

    Setup MOK keys, rebuilt the entire of GNOME OS, signed and with tpm2 WITH MY LOCAL GENERATED KEYS, deployed on the laptop, in under 2 hours.

    YaLTeR,

    @alatiera can i uninstall wayland tho?

    alatiera, to random
    @alatiera@mastodon.social avatar

    deleted_by_author

  • Loading...
  • YaLTeR,

    @alatiera how else do you carry your set of wip hacks across different branches and pulls

    bragefuglseth, to firefox
    @bragefuglseth@fosstodon.org avatar

    Firefox with its stock look, proper rounded window corners and actual Wayland support feels like jumping 5 years ahead of how it's shipped by default currently.

    Screenshot of Firefox with all the window corners rounded and its modern stock theme

    YaLTeR,

    @bragefuglseth aren't rounded corners also part of the gtk style though?

    YaLTeR, to random

    procrastination, the best driver of configuring vim

    YaLTeR,

    @alatiera should've asked copilot

    YaLTeR, to random

    Alright, let's see if Tracy can show me anything interesting in Mutter and Shell

    YaLTeR,

    Another issue discovered/diagnosed with Tracy: screencasting while a game is directly scanned out could lead to dropped frames1. Turns out that when doing implicit synchronization, AMDGPU doesn't distinguish between writes and reads, and thinks that the read of the game's buffer to draw a screencast frame is conflicting with DRM's read to put it on screen. DRM then skips the frame.

    Fix by Michel Dänzer passes an explicit sync file2.

    YaLTeR, to random

    Decided to try writing a Wayland compositor for fun. Took me a few days to get things going to a video-able state.

    This is scrollable tiling, heavily inspired by PaperWM (which I'm still using and very much enjoying). You've got an infinite strip of windows that you can scroll through.

    It's also got dynamic workspaces which work like in GNOME Shell (the Correct™ way to do workspaces), but all monitors have workspaces.

    The repo is https://github.com/YaLTeR/niri if you want to peek at the code

    Scrolling some windows and workspaces around in the Wayland compositor in question.

    YaLTeR,

    The development pace had slowed down a little, so I've tagged an alpha release for niri: https://github.com/YaLTeR/niri/releases/tag/v0.1.0-alpha.1

    Also made a COPR for the occasion, if you're on Fedora: https://copr.fedorainfracloud.org/coprs/yalter/niri/

    YaLTeR,

    A month has passed and a number of important additions have landed in niri, so here's a second alpha release: https://github.com/YaLTeR/niri/releases/tag/v0.1.0-alpha.2

    Highlights include relative-pointer and pointer-constraints which let Xwayland masterfully handle 3D games mouse look, and popup unconstraining which prevents popups from opening off-screen. I actually made popups place within their window with some padding, which looks quite nice.

    #rust #wayland

    A few terminals open in niri showing struts or outer gaps.

    YaLTeR,

    Aaahhhhhh another difficult refactor down and niri now does multi-GPU! By which I mean that monitors plugged into secondary GPUs will now light up and work. All the screenshot UI and screencast portal stuff also works just fine. Wouldn't be able to do this as quickly without Smithay's MultiRenderer support and lots of help from @drakulix 😄

    I went for the easier strat of always rendering on the primary GPU, but you can also pick render GPU dynamically, which apparently cosmic-comp does, cool!

    YaLTeR,

    Tagged niri v0.1.0-alpha.3 with multi-GPU support, borders and other improvements! Multi-GPU was one of the bigger things I wanted to get done before going out of alpha so I guess I'm slowly getting there.

    https://github.com/YaLTeR/niri/releases/tag/v0.1.0-alpha.3

    YaLTeR,

    Turns out that if you implement xdg-decoration in your compositor but tell clients that you want CSD, then SDL2 + libdecor clients will break due to a bug. The bug is already fixed, but the fix hasn't made it to any SDL2 release yet, let alone all the runtimes and vendored copies.

    Hiding xdg-decoration from clients it is then

    #wayland #sdl

    YaLTeR,

    I added text rendering to niri using pangocairo, which turned out to be surprisingly simple. It basically "just worked". This unlocks a lot of features, beginning with a hotkey overlay, which should help people get started (suggested by @ju).

    I've tagged niri 0.1.0-beta.1 which includes the overlay along with many more improvements: https://github.com/YaLTeR/niri/releases/tag/v0.1.0-beta.1

    I'm now happy enough with the feature set so in a week I'll release 0.1.0. Time to finally catch up on other projects I've been neglecting.

    YaLTeR,

    I'm pretty excited to finally be able to "release" niri soon but god I'm glad I set aside a beta week for bugfixes. We already stumbled upon and fixed several issues

    YaLTeR,

    A few latency tests before release confirm that niri's still doing good (at least on idle; I don't have any repaint scheduling yet but on idle it doesn't matter). The compositors are pretty much within the noise threshold from each other. Except some sway fullscreen bug and Shell losing one frame somewhere.

    Input latency chart for fullscreen alacritty showing mutter, cosmic-comp, niri equally low, then sway half a frame higher, then GNOME Shell half a frame higher than that.

    YaLTeR,

    Well, I'm happy to release the first stable version of niri, my scrollable-tiling compositor: https://github.com/YaLTeR/niri/releases/tag/v0.1.0

    Very satisfied with the current state, even though there's plenty left to do. Took a lot of time and work but I've certainly learned a lot, and I'm glad to have contributed a bit to Smithay too!

    #wayland #rust #smithay

    YaLTeR,

    Before adding more animations into niri, I'm making a "visual tests" application. It shows a set of hardcoded scenarios which I can quickly go through and visually check that everything looks right.

    It uses solid color rectangles as "windows", but otherwise this is the real niri layout code and real niri + Smithay rendering code, drawing to a GTK GL area.

    For example, on the last test you can see that my offscreen code currently clips CSD shadows (during the open animation).

    Adwaita app with a list of visual tests that I'm going through one by one.

    YaLTeR,

    visual tests are such a lifesaver, so glad I stole that idea from osu!lazer

    Going through visual tests one by one.

    YaLTeR,

    The window opening animation is now live as part of niri v0.1.2: https://github.com/YaLTeR/niri/releases/tag/v0.1.2

    I'm really looking forward to more animations, but wow they sure do need a lot of care to get right in all the edge cases.

    Also, I added a way to programmatically invoke compositor actions, and turns out that's quite useful for making video demos!

    #wayland #rust #smithay

    Several windows opening in niri, showcasing the animations.

    YaLTeR, to random

    I've been reunited with my latency tester 👀

    YaLTeR,

    You might've heard that VTE got faster in GNOME 46. But how much faster?

    I measured it with a hardware input latency tester! The answer is: a lot faster. Read all about it here: https://bxt.rs/blog/just-how-much-faster-are-the-gnome-46-terminals/

    For anyone following along, this is also finally the blog post where I explain in some detail how the latency tester works and what is shown on the plots.

    YaLTeR,

    @matt Hey! I did not determine that. It is a possibility that a11y is what makes GNOME Terminal worse than the GTK 4 terms (which currently have it disabled), but I haven't tested it.

    The reason to write this is that a11y, at least in the GTK 4 VTE, is known to be slow, so much so that Ptyxis has an off-by-default setting for it. There are plans upstream to try to speed it up though.

    You can toggle the enable-a11y property on the terminal widget to test it.

    YaLTeR,

    @matt uhh, can you contact Christian Hergert about this? I believe he implemented it and he's been the one telling me about this.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • mdbf
  • ngwrru68w68
  • modclub
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • InstantRegret
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • DreamBathrooms
  • megavids
  • GTA5RPClips
  • tacticalgear
  • normalnudes
  • tester
  • osvaldo12
  • everett
  • cubers
  • ethstaker
  • anitta
  • provamag3
  • Leos
  • cisconetworking
  • lostlight
  • All magazines