Tech Over Tea - Lead Developer Of Hyprland | Vaxry

Episode Date: March 29, 2023

Hyprland has been getting a ton of attention as of late so I thought why don't we bring the lead developer Vaxry onto the show and see how we got here and what's planned for the future. ======...====Guest Links========== Website: https://hyprland.org/ Github: https://github.com/hyprwm/Hyprland Ko-fi: https://ko-fi.com/vaxry Hypr Github: https://github.com/hyprwm/Hypr Blog: https://blog.vaxry.net/ ==========Support The Show========== ► Patreon: https://www.patreon.com/brodierobertson ► Paypal: https://www.paypal.me/BrodieRobertsonVideo ► Amazon USA: https://amzn.to/3d5gykF ► Other Methods: https://cointr.ee/brodierobertson =========Video Platforms========== 🎥 YouTube: https://www.youtube.com/channel/UCBq5p-xOla8xhnrbhu8AIAg =========Audio Release========= 🎵 RSS: https://anchor.fm/s/149fd51c/podcast/rss 🎵 Apple Podcast:https://podcasts.apple.com/us/podcast/tech-over-tea/id1501727953 🎵 Spotify: https://open.spotify.com/show/3IfFpfzlLo7OPsEnl4gbdM 🎵 Google Podcast: https://www.google.com/podcasts?feed=aHR0cHM6Ly9hbmNob3IuZm0vcy8xNDlmZDUxYy9wb2RjYXN0L3Jzcw== 🎵 Anchor: https://anchor.fm/tech-over-tea ==========Social Media========== 🎤 Discord:https://discord.gg/PkMRVn9 🐦 Twitter: https://twitter.com/TechOverTeaShow 📷 Instagram: https://www.instagram.com/techovertea/ 🌐 Mastodon:https://mastodon.social/web/accounts/1093345 ==========Credits========== 🎨 Channel Art: All my art has was created by Supercozman https://twitter.com/Supercozman https://www.instagram.com/supercozman_draws/ DISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase we may receive a small commission or other compensation.

Transcript
Discussion (0)
Starting point is 00:00:00 Good morning, good day, and good evening. Welcome to episode 161 of Tech of a T. I am, as always, Brodie Robertson. Welcome back to the show. And today, we have a developer on the show. Welcome to the show, Vaxxery, the developer of Hyperland. I guess Hyper as well, but no one's really paying attention to that one. Hyperland's the main focus right now. How's it going? I'm doing fine.
Starting point is 00:00:29 I'm all right. Yeah. Yeah, Hyper is dead regarding that. I didn't even know Hyper existed until I heard about Hyperland. So how long had Hyper been around for? Did it really have any sort of user base or was it just one of these like little window managers that like, you know, a couple of people knew about? Oh, I made Hyper like a long time ago. I think it was December 2021 even. I just made it because I was, well, I primarily, I started my
Starting point is 00:01:00 Linux journey on KDE and I have been in KDE for a while. Then I switched to i3 because one of my friends was pressuring me to switch to i3 or else they will kidnap me or something. And so I switched to i3, but I hated i3. It was terrible. It was garbage. It's a manual tiler. I like the tiling. I installed a script for auto tiling, but it just had so many quirks and annoyances.
Starting point is 00:01:27 Like, I just remember moving windows around was so unpredictable that it was literally painful. Like, I wanted to move a window to the left, and it would randomly go to the bottom, to the top left, to the right even sometimes, and it was so annoying. And I was just like like what if i write my own and that was a big mistake because that by the snow snowball effect cascaded now into me developing software for tens of thousands of people um yeah but so hyper in the beginning, I got a bit of a user base.
Starting point is 00:02:06 It wasn't a lot of people, but it was honestly more like just a window manager for me, just to fit that niche use case that I wanted it to be. I didn't know about BSPWM, and it was mostly BSPWM, to be honest. Right. I was going to ask you why. But it was mine. WM to be honest. Right, I was gonna ask you why... But it was mine! Yeah, yeah. I was gonna ask you what was, like, different about
Starting point is 00:02:28 Hyper that sort of made it stand out from the rest of the dynamic tilers out there, because there's a lot of them. The real thing that made it stand out was the fact that the window manager, not the compositor, supported animations and rounded
Starting point is 00:02:44 corners, so we didn't have to have PyChem for those. Which was pretty cool. But the animations were kind of laggy because, well, X.Org Plus, it's the window manager doing it. Which it shouldn't be. And PyChem had
Starting point is 00:03:00 some issues. Like, for example, during animations, the shadow wouldn't update, so it looked kind of weird. But generally, HyperMask Pyke had some issues, like, for example, during animations, the shadow wouldn't update, so it looked kind of weird. Yep. But generally, Hyper amassed, like, 600 or something stars. So I wouldn't say it was, like, a completely underground project, but it definitely wasn't a big one. I posted, like, my workflow, like, once, twice, or thrice to Unixborne, and it got a bit of traction and that actually smoothly translates to me and hyperland because these are definitely Unix porn
Starting point is 00:03:31 screenshots well either either the first or the second post that I made on Unix porn yeah God like like one and a half thousand up votes which is like a bunch Wow and almost every single one of my posts onto unix point got like over 1 000 upvotes but um i either first or the second there was this one guy that made a comment basically using a lot of expletives and generally unnice terminology to describe me and me making something for X, which he thought was bad, old, deprecated. Why are you using this?
Starting point is 00:04:19 Oh my God, you're stupid. And he got downvoted into oblivion he later deleted his comment but I probably still have a screenshot somewhere I mean I hope I do because it was really funny because basically I replied
Starting point is 00:04:38 with none of your effing business because he was using so many expletives that I just replied I would say none of your effing business but I'm not that rude and basically that was kind of like that that moment that I actually
Starting point is 00:04:54 learned about Wayland because no I was when I made Hyper in December I've been using Linux for like four months or like five. Wow. Okay.
Starting point is 00:05:09 I'm a very new Linux user. I started using Linux in May 2021, and then December 2021, I started Hyper. So I was using KDE for like three months, maybe. Wait, so what distro did you start on? I started, well, I wanted to start on Endeavor. Yeah. But at the time I had an NVIDIA graphics card. Ah, okay.
Starting point is 00:05:32 Great. And I actually started using Linux when NVIDIA drivers were causing kernel panics on almost all cards before the 20 series. Right. So I started Endeavor, it it loaded then i clicked like install and installed and i clicked install nvidia drivers and it would not boot again then i tried a fresh install the installer would not boot and i was like jesus christ what's wrong and i remember
Starting point is 00:06:00 having two linux friends trying to help me. Both failed. And they were just like, okay, just try a different distro. And one of my friends started on Manjaro. And he said, just try Manjaro. And Manjaro worked because their NVIDIA kernel driver was older. Because they haven't pushed the new release yet. So it works. And then a week later it broke.
Starting point is 00:06:34 But then I just knew that it was NVIDIA and I downgraded NVIDIA and held it. It was fine. So I started on Minjaro, but it was super annoying. And so I switched to just plain Arch two months later. So you've been using Arch now for two or so years? Yeah, basically. I'm an Arch Linux user, by the way. Absolutely, yeah. The only correct answer.
Starting point is 00:06:53 And so... The person telling you to unalive yourself about Wayland. Yeah. Then I learned about Wayland. I was like, that's pretty cool. And I just replied that, you know, the Wayland manager is made in a pretty modular fashion. So if I want to migrate to Wayland, I can do that in the future, whatever.
Starting point is 00:07:11 Just kind of brushed it off, but kept it at the back of my head because I was like, maybe, maybe something. Then I remember like two months later, I was like, hey, let's try out this Wayland thing. And I was like, I can see a couple like Wayland compositors like DWL, like Vivarium, like Sway at the time. And I was like, yeah, yeah, NVIDIA is going to be a problem because I still had an NVIDIA card. And I tried to launch them on my X11 session because apparently the people told me that it should launch in a window, which it should,
Starting point is 00:07:46 but on NVIDIA, it won't because I didn't apply the kernel parameters and the patches and whatnot and config options, so it just didn't work. So I was like, whatever, I'll just hold it off for a moment. But then
Starting point is 00:08:01 a lamp, a small little light popped out of my head and I was like it's the height of the GPU shortage what if I just buy an AMD GPU that was a mistake
Starting point is 00:08:15 how much extra did you pay than you should have paid? I don't want to admit but I had an NVIDIA 1080 Ti, which I bought used, and I sold it used for more money than I bought it for.
Starting point is 00:08:34 Yup, yup. And then with that money, kind of backwards, I bought an AMD Red Devil RX 6700 XT, which is still sitting in my computer, which is a way too powerful card for my uses because I play Counter-Strike
Starting point is 00:08:53 and apart from that, like turn-based strategy games from 15 years ago. No cap 15 years ago. So this card is definitely overkill for me, but at least it will stick for a while. Yeah, just don't upgrade for a while now.
Starting point is 00:09:11 I bought it for over a thousand US. So, yeah. Oh, God, yep. But the thing is, I bought it used. So I asked my dad to join me to the guy. Wait, hold up a sec. You bought it used for over a thousand US? Around a thousand, yeah, yeah.
Starting point is 00:09:33 Jesus, oh, I forgot how bad it was. Yeah. I mean, yeah, the exchange rate then was a bit... Well, now it would probably be less US, because the exchange rate of the currency, Polish currency. But I asked my dad to drive me to the guy and we went there
Starting point is 00:09:51 and it was just his house and the card was used in a crypto miner. When I went to the guy, the guy went out with the card, I had the cash, and he was just like, oh yeah, hell yeah, so what are you buying it for? You're going to mine Ethereum or something?
Starting point is 00:10:10 I was just like, I just hate Nvidia. He just looked at me dead in the eyes. I was just like, what? All right, just take the card. I just gave him the money, he didn't want to talk to me, because when I said I just hate Nvidia, he was like, what the fuck? What? What?
Starting point is 00:10:29 Yeah, he was very confused. He looked at me like I was the spawn of Satan or something, just coming here for his card. That's not the kind of person who plays a video game. All they see is how much crypto can I mine per hour? What is the optimal card to buy? Yeah, but he asked me, like, am I going to do heavy gaming as well? And I said, nah. I just hate Nvidia. He was like, okay, brother. Sure, okay.
Starting point is 00:11:00 Yeah, so I bought the card. I got it to my home, I installed it in my PC, and of course, the first thing I had to do was sit for two hours and remove all the Nvidia things that apparently there were a lot, because my drivers wouldn't work if I had Nvidia modules installed. Then, normal people, when they get a new GPU, they launch Cyberpunk or something to just test the frame rates or whatever. What I did was I opened VS Code and I made a new project called Hyperland.
Starting point is 00:11:33 I didn't even use the graphics card per se up until a week later when I actually played some CSGO on it. And I was like, oh, shee, this thing actually is pretty good. I don't know how you noticed the difference with, if you're playing CSGO with a 1080 versus 6700 xt. Like, you're gonna be getting so many frames anyway. No, 1080 ti was actually noticeably worse than 6700 xt. Yeah. Maybe because I, I, I had,
Starting point is 00:12:03 maybe because 1080Ti was the bottleneck I don't know yeah sure something but but like I made Hyperland
Starting point is 00:12:11 it was like the beginning of March 2022 because it was like I think the 14th or 13th
Starting point is 00:12:18 because we had we had a one year anniversary like a couple days ago oh wow of Hyperland because it started yeah it started in march 2022 and it was a mess in the beginning yeah i i well i learned a lot of things from building hyper and
Starting point is 00:12:39 i'm i'm really glad that i did make hyper before Hyperland because it outlined a lot of flaws in my thinking about such a piece of software. I made a lot of mistakes in Hyper that I just wanted to rectify from the beginning in Hyperland just to never have them again. For example, one of the mega painful things in Hyper was the fact that layouts were not a separate thing from the window manager. Layouts were baked into the logic. So already with two layouts in Hyper, just dwindle and master, it was a spaghetti of an absolute mess. It was like terrible, like changing anything, like the terrible. Changing anything. The code for adding a new window, 90% of it was just layout-related stuff. And in the middle, there was
Starting point is 00:13:30 other logic. And it was just super painful to work with. So in Hyperland, from the beginning, I split layouts into separate things, into separate modules that just work independently of the entire window manager part. You have the window manager part, and you have entire window manager part.
Starting point is 00:13:45 And, like, you have the window manager part and you have the compositor part. So you kind of interact with each other but are separate. So you basically can make a new layout by creating two new files and just writing out for the window manager. I have no understanding of, like, making a Wailing compositor. But I presume, like, the layout stuff manager i have no understanding of like making a whaling compositor so but i presume like the
Starting point is 00:14:05 the layout stuff works roughly the same sort of concepts as xorg the way no no no it's fundamentally no fundamentally different okay that's uh xorg is terrible xorg is kind of like kind of like uh windows i think in windows it's actually almost the same as in everything is treated a window. It's just that Windows have those hints, those modes, those things that tell
Starting point is 00:14:35 the compositor or the window manager how to interact with them. So on Xorg, you have the horrible atoms. you have like a like a list of like around like a hundred atoms which are just text and a window can have multiple atoms for example oh this atom tells the window manager to make it sticky or this atom tells the window manager to make it floating or whatever actually floating, floating is done even worse.
Starting point is 00:15:06 But they kind of tell what to do. You can do an atom to skip pager, to skip the taskbar or whatever. And it's just this entire mess of who adds new properties to strings and who supports them and whatever. It's just like zero standardization. It's just like, give me a list of strings and the display server maybe understands
Starting point is 00:15:30 them. Which is terrible because every pop-up, every context menu, every drop-down, all of those are windows. Which is terrible for differentiating them and doing anything useful to them.
Starting point is 00:15:47 So in Wayland, a window is not really a thing. You do not have strictly a window. There is no concept of a window in Wayland. In the core spec, we don't use the word window once because there are no windows in Wayland. Because we don't like Microsoft, so we won't use their trademarked windows to describe anything, obviously. So when you have a Wayland desktop, it's comprised mostly of three things. First is the top levels, which is something that you would consider a window, for example a browser, or Discord, or
Starting point is 00:16:30 I don't know, a very obscure game with a very expletive title that your friend has gifted you, and it costs like 20 cents on the Steam market. Or just Nekopara.
Starting point is 00:16:45 Oh. Oh. Oh god. I have 2000 hours in Neptunia. Yup, absolutely. Great game. So these are top levels and then because in
Starting point is 00:17:01 Wayland a top level doesn't know where it is it can't really open other windows for stuff like pop-ups or drop-downs or stuff like that because it wouldn't know where to place them. And Wayland apps cannot place themselves because they don't know where they are. So instead of that, every top level has a tree of subsurfaces and pop-ups. So a subsurface is just a smaller surface that the top level can say where in its parent surface or in its top level coordinates it is. So for example, a dropdown in Chrome would be a subsurface.
Starting point is 00:17:40 Right. And a pop-up is a subsurface that can go outside of the bounds of the window. Because sometimes if you open a context menu, it may go outside the window. Yep, yep. So all of these are constrained to the top level and work in the top level's coordinate space. So there is no other windows created by the app. Well, sometimes if you have, for example, a dialog box, that will open a new window, of course. by the app. Well, sometimes if you have, for example, a dialog box, that will open a new window, of course. But stuff like dropdowns and hints, stuff like that, all this is just subsurfaces
Starting point is 00:18:13 and pop-ups. And the third thing is layer surfaces, which a lot of people, and I mean a lot of people, confuse with windows. Because if you're in Wayland your your background so your wallpaper or your status bars or your task bar way bar whatever these are not windows because there are no windows and they are on top levels because top levels cannot position themselves so instead they are layer surfaces which are kind of like you have four separate layers that you can put layer surfaces on you have two that are below the top levels and two that are above the top levels so you have you have background which is usually for wallpapers you have bottom which is for maybe like widgets or something on your desktop for example icons or whatever then you have top which is reserved for stuff like probably like your launcher or your bar
Starting point is 00:19:10 and then you have the overlay which is like i don't know a screen locker screenshot utility or whatever so you have those layers which can position themselves kind kind of. Basically, they can request a size, they can request anchors, they can request kind of like mostly positioning, and they can request reserved area. For example, like your top taskbar or top bar, whatever it's called, waybar. So these things often get confused for Windows.
Starting point is 00:19:42 And people ask me like, oh, you have window rules for animations but I can't find Waybar or RoFi in my list of clients. What's wrong? What happened? Well the problem is that RoFi or your taskbar are not a window. These kind of work and have like a different set of rules how they govern, but generally things that should be layer surfaces are better to be layer surfaces. Like if you have Rofi, there was a Rofi Wayland fork, which opens a layer surface instead of a window, and it works way better because the focus is more streamlined. It's described in the protocol. Meanwhile, if you have a RoFi X11, we literally in WL roots have a function that tries to guess whether a type of X window that
Starting point is 00:20:35 shouldn't be managed by the window manager should be focused or not. But it's not 100% accurate because Xorg. Because it's just guesswork. Yeah, yeah. So it doesn't always work. So it's just better for that to be a layer surface because a layer surface can request it to be in the middle of some screen, can request to be focused, can request to grab the focus so you don't click away from it and suddenly it's unfocused. So the launcher grabs your focus.
Starting point is 00:21:07 The only downside is that currently it's a WLROOTS protocol, but I think KDE also supports it. I don't know about GNOME. GNOME is like 10 years behind everywhere else. What was the protocol, sorry I can just quickly check it. Layer shell. WLR layer shell. There is a merge request open for a slightly modified layer shell to the EXT namespace, but we all know how the EXT namespace works. You make a merge request to the EXT namespace,
Starting point is 00:21:35 get 10 comments, you resolve them all, then you wait a year, and then you get 10 more comments. And yeah, rinse and repeat. Getting anything into Wayland Protocols, terrible. Corporate as hell. Before we get into that, Gnome has not implemented it.
Starting point is 00:21:55 So, yeah. But I think KDE has. That sounds right. Yeah, Gnome didn't have any interest because they don't have any interest in supporting things outside of the GNOME-y stuff, because they do I know they do their bar in a different way it's like a part of the compositor or something weird
Starting point is 00:22:13 Probably have their own protocol No, they definitely have their own protocol for doing it and they don't want to support adding other things in KDE also has, but as if I recall correctly, KDE is actually making progress to move to WL roots. So... Okay, I did not hear about that.
Starting point is 00:22:33 I heard somewhere that the base is actually slowly being ported to WL roots, which would be a great thing, because more standardization, and we would get more stable WL roots. But yeah, it would be pretty cool. Before I sidetracked you there, you were talking about getting things into the main set of protocols. Oh, terrible. Absolutely garbage.
Starting point is 00:23:01 The lifecycle of a protocol, then you make a merge request, you get 10 comments, you solve them all, then you wait a year, and then you get 10 more comments. And then after like maybe two years, the protocol either gets denied or gets suddenly some interest, probably because someone like Valve paid someone like Simon Sir to maybe move his ass and actually do something about this, and then we get a new protocol. Cool. Um, I think that that was- that's what actually happened with, uh, with Tering. Actually, the protocol, I think, got merged because Simon got paid by Valve. For anyone, um, unsure about who Simon Sir is, that is the guy who made Sway, and by extension, WL Roots as well.
Starting point is 00:23:46 Oh, he maintains Sway. Drew the Vault made Sway. Yeah, sorry, yeah, right. Drew made it, Simon, yeah, yeah, maintains it now. Simon maintains, he maintains Sway, he maintains WL Roots, and he is a member of Wayland Protocols. Yeah, yeah, yeah. I think one of the more active ones, actually. Right. of Wayland Protocols. I think one of the more active ones, actually. Some other people, I will not name names, are not very active, and only start being active
Starting point is 00:24:11 when they want to say something, say why something is stupid. When they want to argue about something, yeah. Going through, doing videos on various protocol proposals, yeah, I've certainly noticed a couple of names that show up just for the sake of why are you stupid i don't understand you i've i i have
Starting point is 00:24:34 i i know one guy that is trying currently to get a protocol for an app to list clients, like running, like list top levels running on the system, which would be useful for stuff like a screen share picker, because currently the Hyperland in XTG Desktop Portal Hyperland, it uses a WLRoots protocol to list the top level handles, but it of course is a WLRoots protocol. So the guy is trying to streamline it into EXT. And he got a couple comments, and it's been dragging on for like half a year now, probably. And so because the process, and I quote, was so onerous, I think that's what Daniel Stone said,
Starting point is 00:25:22 Simon made a proposal to lax the requirements for the protocols in EXT, because previously, I mean, currently still, they require two acknowledgements from different Wayland protocols members. And so he said that because EXT is, you know, it's just extensions, so it's not kind of a core protocol. So it's like, it doesn't really matter if there will be lesser-used protocols there. As long as they have a use and they're legitimate,
Starting point is 00:25:52 make sense, you should probably get them. So he said that it should be one acknowledgement from a Wayland protocols member. So for example, if all WL roots compositors would benefit from it, then Simon could acknowledge it as WL Roots maintainer, and one acknowledgement from a third-party project. So, for example, me.
Starting point is 00:26:14 Right. For example, right? Because I maintain Hyperland, which is the best Wayland compositor ever. Continuing. It's certainly at least in the top... Yeah, it's in the top one I was going to say top three
Starting point is 00:26:27 I can't think of too many others I'd really care about at least top three I'll give you top three I don't know about top one maybe when things stabilize a little bit and you're not making changes every single hour I mean every single hour I make changes every two hours
Starting point is 00:26:42 anyways continuing he said that you should get one acknowledgement from a Wayland Protocols member and one acknowledgement from like a third party project. And then a guy whose name I have never seen, and I mean never seen there, just stormed in and said, basically, in a very long paragraph, something like,
Starting point is 00:27:04 why should we do this? Because what stops people from making a protocol for EXT kill the compositor and merging it into Wayland Protocols? I'm like, brother, what the f***? What? I'm like, yeah, yeah, because a protocol called EX ext crash compositor is going to pass through one acknowledgement from the wayland protocols and the reviewer from wayland protocols that has to review both of the acknowledgements review the protocol and actually sign it so like
Starting point is 00:27:38 yeah we're getting a ext crash the compositor this person not realize that you can crash the compositor just using h top Yeah, I mean you can crash the compositor by just by just writing kill all yeah, you don't It's not super user to crash something like what I Mean you can crash gnOME by launching certain applications. Last time I checked. Let's just imagine for a second. Just imagine that protocol did exist and for whatever reason it passed. No one will implement it.
Starting point is 00:28:13 Why does it matter? Yeah. In the first place, it won't pass, even if you relax those requirements, because nobody's going to acknowledge it. And further, he raised the point that, oh, what what stops this not like we can knack a protocol yeah people can knack a protocol people cannot acknowledge a protocol and that kind of like blocks it from being merged so like it takes one whale and protocols members say like hey guys this is not a good idea and like the protocol is kind of stopped in its tracks so like the person appeared out of nowhere just to say that it's bad to make this feel less like we need to go to Obama for a signed approval of our top-level info
Starting point is 00:28:58 protocol because otherwise yeah it's probably not a good idea to merge it mm-hmm just terrible, terrible, terrible. My experiences with protocols, developers, I hate them all equally. No, like, I hate Simon the most, but probably because he's the most active, because all of them are the same types of assholes. but probably because he's the most active because all of them are the same types of assholes
Starting point is 00:29:24 so the thing is my first encounter with when it comes to issues they usually reply with something that makes sense and then
Starting point is 00:29:39 they actually try to help more or less sometimes once I had to wait a month for a response, but ignoring that. They mostly reply with something that makes sense, especially in HyperLens early days. There were some things that were poorly documented, because WLRoots has zero documentation, basically. It's just kind of like, figure it out yourself. Oh, okay.
Starting point is 00:30:04 Yeah, Wayland...'s just kind of like, figure it out yourself. Oh, okay. Yeah, Waelen, WLRoots says, WLRoots is documented by comments. Read them. And then you go into the code, there are no comments. So yeah, that's very funny. I remember there was a problem with ViewPorter
Starting point is 00:30:20 I had. It said, the only comment about implementing ViewPorter was compositors need to update their logic and use this instead of this. Did this. It caused 10,000 issues. Yeah. The documentation doubly resists Taro, but it's kind of expected. It's not really a framework for many people that really need to learn how the computer works to use.
Starting point is 00:30:50 It's kind of like this low-level library that kind of documents itself, I guess. But I guess you can read stuff like Sway or DWL or Wayfire to just get a rough understanding of how things work.
Starting point is 00:31:06 That's how I learned W roots because I'm not reading the code that they gave. It's just terrible. Yeah. Imagine reading 80,000 lines of code just to find something. I'm just going to look at how Wayfire did it. Yeah. I'm going to look how Wayfire did it. Wayfire did it this way.
Starting point is 00:31:23 Oh, I understand how this works. Okay. Thanks. So, thanks. So, my experience. Yeah, I had some issues, especially in the beginning, with things that were poorly documented. I sent them to the book tracker. They helped a bit, and yeah, in the end
Starting point is 00:31:36 I managed to solve the issue like 90% on my own. But then I... Yeah, then... I don't remember which one was first. Okay, so one of them was first, one of them was second. I don't remember. But one of them was me implementing the tearing support in wroots, because wroots still doesn't support tearing. So when the tearing support in wroots, because wroots still doesn't support tearing.
Starting point is 00:32:08 So when the tearing protocol got merged, I wrote an implementation for the tearing hint in wroots. It just implemented the hint, because the protocol technically was just a hint. The protocol didn't say explicitly the compositor has to enable tearing or whatever. It's just a hint. It's just like, please, tear me. Yeah.
Starting point is 00:32:28 So I implemented this hint in WLRoots and I wrote an implementation in Hyperlent for the compositor. And after like 80 comments about the style, which thanks WLRoots devs for making a
Starting point is 00:32:43 200-line MD file about the style, not providing a Clang format file. So basically you had to do manual formatting. Great. That sounds fun. So, to like 80 comments about the format and stuff like that. Simon asked me a question like, how should this protocol be used? I'm like, the Composer can either ignore or not a request for an app to be torn, probably only
Starting point is 00:33:12 when it's full screen and when it's the only surface that's showing. And yeah, that makes sense. But I said that, of course, WROoS currently doesn't allow tearing. It can't do tearing. And so he was like, yeah, and I asked whether should the tearing implementation, like the
Starting point is 00:33:32 actual tearing, be in this PR, or should it be in the separate? And he said that he doesn't care. It can't be either. And so I said, alright, cool. I looked through the code, I tried a bunch of things, but I am not a graphical engineer or whatever, or a Linux engineer, and I can't really figure out how to do tearing in W roots. I generally don't know.
Starting point is 00:33:57 I'm not really proficient with low-level KMS stuff. mess stuff. And so I was like, yeah, I tried this, this, and this, which was mostly removing checks that prevented submitting more frames than the frame rate, and it just ended up making more errors. Yeah. So obviously
Starting point is 00:34:16 removing safety checks isn't really going to help here. But yeah, I just said that I tried this, this, and this, and do you have any pointers for me? What was the last message in this PR. It's been like eight months. Yeah.
Starting point is 00:34:33 So this was, yeah, and the PR is still open. There was literally nothing more that has happened. So we still don't have tearing in W roots. Great. Then, I don't know if this was before or after, we have the global shortcuts DBOS thing, right? The portal. Yeah. Yeah. In W roots. Yeah. So because I'm still not really, really keen on implementing it, I have other things to do because pretty much nothing
Starting point is 00:35:06 still supports it. When OBS starts supporting it, I will implement it. I think Mumble is actually also working on implementing it. Oh, wow. So, I made a protocol proposal to
Starting point is 00:35:21 Hyperland Protocols for a protocol between the Hyperland desktop portal and Hyperland for the global shortcuts. Great, cool, amazing, wonderful. And someone stormed into the discussion and said would I mind
Starting point is 00:35:37 sending this protocol over to EXT instead of Hyperland protocols for other people to also implement. And I was like, I don't know, my experiences with Wayland protocols are kind of mixed, but I'll join the WL roots IRC and ask there. Joined. Asked. Two days later, conversation resumed on a completely unrelated topic, nobody ever noticed my message. Yeah. Great experience. 10 out of 10 would
Starting point is 00:36:11 recommend. I will not be sending this protocol to EXT. We already have protocols in Hyperline protocols. Because on Sway, another annoying thing on Sway, you can only screen share your monitor, right?
Starting point is 00:36:26 You cannot share a window. You cannot screen share a region. Yeah, I've definitely noticed this with OBS. Window capture just doesn't exist. On Hyperland, you can currently share a monitor or a window. you can currently share a monitor or a window. Region sharing is broken because WL Roots' implementation of the screen copy protocol is broken.
Starting point is 00:36:52 It's very broken. And Hyperland uses the WL Roots implementation. There is an open PR currently in Hyperland for my own implementation of the screen copy protocol, which fixes two issues. First of all, people not being able to screen share on scaled displays, which is also a W roots issue. And second, people not being able to screen share regions,
Starting point is 00:37:13 which is also W roots issue. It fixes both of them, but it's still open because there is one thing that I still want to add there that there is no support for currently. But I'll probably get to it in like a couple days and and just finish it because because it's also really annoying on my on my laptop because i can't record screen share anything on my laptop because i scale the display and the w roots implementation just kind of breaks on scale displays it's unable to send a single frame basically ah so the only thing i can screen share is a window because my own implementation of the screen copy protocol, and by extension the window copy protocol, better, apparently.
Starting point is 00:37:53 Yeah, so like on Hyperland, you can currently screen share a monitor and a window, but you will be able to screen share also a region in like the following days, probably. share also a region in like the following days probably we are here ahead and in the same vein you will be able to use global shortcuts whenever people start implementing them and then i'll write an implementation hyperland because it's it's it's not really a big deal it's it's pretty easy didn't hyperland already have some sort of thing beforehand or i'm thinking of something else yes but when apps start supporting the global shortcuts portal, they probably will stop supporting the legacy method.
Starting point is 00:38:31 How did the legacy method actually work? The legacy method works basically like X11. It just kind of listens for the key presses that you do. Right. And whenever it matches, it matches. But on Wayland, since when a window is unfocused, it doesn't get any events, it doesn't get any events. And the portal, the reason why
Starting point is 00:38:56 it can't really do both at the same time, or at least why it would be really, really weird for it to do so, is due to how the protocol, the portal actually works. It's really weird for someone that doesn't really do computers, but it makes sense in the standpoint of security, because Wayland, everything is security. And because an app, whenever it wants global shortcuts to be on the app, whenever it opens, it will send through Dbus to your XDG desktop portal a list of shortcuts that you can use in the app. So for example, OBS will send, I don't know, play, pause, record, stream, stuff like that. And then the portal will pass them onto the compositor,
Starting point is 00:39:53 and the compositor is tasked with handling how to bind them. So the protocol, the app, never knows what the keys are bound to. So the only events that it receives is this key got just pressed, this key got released. That's basically why on KDE that has implemented this, the shortcuts for apps that use those global shortcuts are in the KDE settings, not in the apps. Because the app cannot know what the shortcut is bound. It cannot bind it to anything.
Starting point is 00:40:22 It just knows whenever it gets pressed and whenever it gets released. That's it. Which, from a standpoint of security, of course, the app can't snoop on your keys. But from a standpoint of typical Windows user, it probably is unintuitive because a typical Windows user goes into OBS and has in OBS a list of keys that he can just assign to stuff. Meanwhile, here, it's just going to be like, probably like you go to hotkeys, and it's like probably, hotkeys are managed by your operating system, and then click here, and then it opens KDE settings or whatever.
Starting point is 00:40:54 Because I think there is also a method to open settings. So it can just ask the composer to open settings, and it opens the keybind settings. So yeah, implementation of this really simple it will take me like probably like four hours or something to do so like a day or two um so it's no big deal but i currently have better things to work on than shortcuts that won't be really used for a while and i won't have a great test client because the only test client is the kd test client which i don't like it only makes one shortcut and it's not have a great test client because the only test client is the KDE test client,
Starting point is 00:41:26 which I don't like. It only makes one shortcut and it's not actually a real world example. I like testing things with real world stuff. Because it's kind of like with driving. I don't have a driver's license, but people that got a driver's license, my friends, tell me that after you actually do your driving license exam
Starting point is 00:41:48 and all the classes and all the practical stuff, you start noticing how absolutely dumb and absolutely batshit insane things people can do on the road. And that's the same case with applications people can do absolutely the weirdest things with their applications no that definitely definitely makes sense yeah remember how i told you about subsurfaces right that apps can open a subsurface like a menu or something all browsers for whatever reason, leave their primary window surface completely transparent and draw everything on a full window subsurface.
Starting point is 00:42:34 Why? Yeah, why? That's a good question. It messes with my animation system. I still haven't fixed that. It's like a nine-month-old bug that it kind of... they resize independently. I don't know why they do that. No clue, but they do. Is this both on the Chromium and the Firefox side? Yes, yes. Firefox and Chromium. Okay, sure. I could have understood if it was just
Starting point is 00:43:02 one or the other, but there has to be a reason if they both do it then there has to be a reason I still don't know what the reason is though it's really weird and yeah subsurfaces are just one cause of my misery we've had two we
Starting point is 00:43:22 my 19 personalities we have had two super annoying issues on Hyperland that were driving me insane for two weeks each because I made a typo and I couldn't notice it for two weeks. So you know how double roots is a C library. We all know how safe and secure and memory amazing is C. Yeah. Memory safety in C doesn't exist. Anyway, so when you pass something to C, tool treat it at face value. If it expected something, it expected that thing and nothing else. Okay. The problem is when you pass something that it did not expect.
Starting point is 00:44:22 Well, you get usually just a seg fault or a bug in the function or something, something. Yep, yep. Well, yeah, I made two typos in the history of Hyperland and both were really annoying to track down. One of them, Hyperland was like a month old or something. And I was writing implementations for the subsurface trees.
Starting point is 00:44:38 So I could track them, I could damage them properly, I could send input to them properly and stuff like that because otherwise it was pretty bugged. And when a subsurface was destroyed, instead of connecting the handler for the destroy, I connected a different handler accidentally.
Starting point is 00:45:03 I think I connected the layer surface handler for destroy instead of the subsurface handler for destroy. And I couldn't find this typo for two weeks. And I read through that part of code at least five times before I noticed that it said layer surface destroy and not subsurface destroy. that it said layer surface destroy and not subsurface destroy. And the bugs that was crashing in completely random places, which usually means a race condition, but it didn't in this case. So you would just basically, oh I was doing, I opened a
Starting point is 00:45:41 menu in Firefox, I closed it and like 15 seconds later the compositor crashed because a random list in a random place in Core Wayland got corrupted right I was like, uh, what?
Starting point is 00:45:59 so yeah, that took me two weeks to track down I was like, never again. Then it happened again. This time I connected... No, this time I connected the correct event handler, but it was for layer surfaces. And even better, I never had the issue.
Starting point is 00:46:17 Other people did. Oh, that's always fun. Even better, it worked on Wayland, core Wayland, like 0.22, and it broke on core Wayland 0.23 without any input from me. Broke for other people and not for me. So the issue was that instead of attaching my handler for LayerSurfaceDestroy to the LayerSurfaceDestroy event, I attached it to the LayerSurfaceSurfaceDestroy event, which got called later, meaning that
Starting point is 00:46:56 the things that I was trying to operate on were already freed, which caused issues. Apparently not for me, because my PC is heap use after free resistance or something. I don't know. It just, yeah, it took me like another two weeks to track that, and I was like, yeah, never again. And knock on wood, it has not happened again.
Starting point is 00:47:22 Is this plenty of time for it to happen still? You know? It can happen at some point. It could be happening right now, but I don't think it is. I hope not. I'm like wrapping everything now from WLRoost that I can in like C++ types because they are so much more safer. In the early days, I would not wrap like event handlers in C++ times. So whenever a window was created I would connect the events, whenever the window was
Starting point is 00:47:52 destroyed I would disconnect the events. Still caused it to randomly crash sometimes on a null event handler or a non-existent event handler or a non-freed event handler. How? I don't know. Then I wrapped it in a C++ class that when the class got destroyed, it would destroy the event handler and unlink it. It suddenly fixed itself. Wow. I don't know where was the one path that suddenly didn't unlink the event handler, but the compiler fixed it for me, I guess. People like to shit on C and C++ because, hmm, my Rust is so memory safe. Yeah, but like, the problem is C. Like, C++, when done correctly, maybe doesn't look the best, but it's actually pretty memory safe.
Starting point is 00:48:45 If you do stuff correctly, if you do stupid things, then it's not, which I guess is a pro for Rust, because in Rust, even if you do stupid stuff, unless you wrap it in unsafe, it can't be memory unsafe. It's the bubble wrap language. Meanwhile, in C++, if you do something stupid, whether you realize it or not,
Starting point is 00:49:10 you've done something stupid. Which can later come and kick you in the ass. It does happen. I can see that. The longer you write... No, these memory faults are the fault of C, not keeping track of stuff that you plug.
Starting point is 00:49:30 Basically, like, half of the stuff in WL rules just takes random pointers and assumes that the pointers are correct. Okay, right, right, right. So, yeah, in C++, when you actually wrap stuff and, like, check the types, so, like, you have the compiler guarding the types of stuff that is plugged in. So in C++,
Starting point is 00:49:48 we don't just pass random void pointers to functions and expect them to be correct. No, we actually check the type. We don't pass random void pointers. I mean, sometimes we do, but it's generally not a good idea.
Starting point is 00:50:01 So like, I really like C++. I know that people like to shit on C++ and say that Rust is idea. So, like, I really like C++. I know that people like to shit on C++ and say that Rust is better. No! One reason why Rust is not better than C++ is that I don't have
Starting point is 00:50:15 10 years of experience in Rust. That's fair! Yeah! And also, like, a lot, like, probably like 30% or more of everything you use on a daily basis runs on C or C++. Like, you can't hide that fact that Linux is written in C, Dbus is written in C, Wroots is written in C, Mutter is written in C, K1 is written in C++. Kind of like everything almost you use is somehow written in C. I mean, yeah, it can be written in Python, but then Python is written in C. And then you realize how
Starting point is 00:50:58 everything runs in C. Does that mean that we should not... Rewrite it all in Rust. Rust... Rewrite everything in Rust I made a tweet once on Twitter that's a bad idea I don't use Twitter that much but
Starting point is 00:51:13 I once made a tweet and I said that and I basically said Rust pros and I was like memory safe more difficult to make a stupid mistake better syntax for beginners. Right.
Starting point is 00:51:28 C++ syntax, templates. Yeah, C++ is a little rough, yeah. Rust cons, the community, the community, the community. Yeah. I'm sure that went over well. I mean, I don't know. I don't have many followers, but I got a couple likes.
Starting point is 00:51:52 I know that it's just the few bad apples that spoil the entire image of Rust, but Rust being that bubble wrap children toy language compared to something like C++, because it's not a toy language but compared to something like C or C++ it is a toy language because it holds your hand a lot
Starting point is 00:52:14 it's going to attract people that of course know less about coding, so they're newer and who's going to be newer to code? Young people and young people tend to be uh how we say that weird well i i mean i'm also okay i'm i should be probably digging my own grave by now but um i wouldn't call myself normal. But yeah, then you have the problem is that you have rust. Then you're gonna have the people that are well, off the average to the left and off the average to the right, and you will always find people to annoy you. a far-right conservative or a far-left, blue-haired, I don't know, freedom LGBT lover,
Starting point is 00:53:10 you are going to find something, someone to piss you off in the community. Although I feel like way more of the far-left goes to us, probably because modern youth is mostly far-left, like farther left than, well, people older than us used to be. Especially if you're looking at the places like, you know, Silicon Valley, you know, is Silicon Valley. Like, yeah.
Starting point is 00:53:38 Almost people on every street. Back away from that, let's go back over to the hyperland stuff um when you first podcast this is not the best idea hyperland fdx podcast today we're going to talk about ethereum i can just go talk to luke smith he can go shulman arrow to me um so when you first started hyperland you created the project you opened it up in uh vs code or whatever where did you go from there what did you go to first to like work out what you were gonna do well before that i need to show that i do not use neo vim or vim i use vs code i'm a proud vs code user
Starting point is 00:54:25 um what a how um so first i tried seeing like the the simplest implementations that i could have so i didn't go into sway because sway is like 45 000 lines of code I am not going to read through the entirety of Sway just to start. So just like, okay, I'm going to go and see first the tiny WL, which is WL roots like 900 lines of code, the absolute bare minimum for a
Starting point is 00:54:58 display server. It's like the example of those 900 lines of code, like 500 are commons. So it's like really, really small. So I basically read through it. And I was like, okay, I'll need to do this, this, and this. Absolutely.
Starting point is 00:55:15 And then I went into DWL, which is like DWM for Wayland. And, well, the code styling of DWM and DWL is absolutely atrocious. But painfully reading through that, I managed to get a rough idea of what WLRoots works like. And so I designed a small plan for how to make this compositor. I was like, okay, I made Hyper. It's going to be a bit similar because we still need to manage Windows, so do this stuff,. I was like, okay, I made Hyper. It's going to be a bit similar because we still need to manage Windows, do this stuff, these animations, blah, blah, blah. And so I made a really rough base
Starting point is 00:55:54 for just, as I started with Hyper, just to render a window and a screen. I copy and pasted the config manager because why would I write a new one because the old one just worked and then I started building on top of that I implemented basic stuff like
Starting point is 00:56:15 filing and animations and just the absolute bare minimum we had animations I like how animations is the absolute bare minimum we had animations pseudo tiling the absolute bare minimum. I like how animations is the absolute bare minimum. We had animations, pseudo-tiling, like transparency,
Starting point is 00:56:31 borders, dynamic tiling, waybar, all that stuff, before I fixed the Firefox crashing your display server bug whenever you opened the context menu. And the even better part, I was using Hyperland
Starting point is 00:56:46 as my daily driver regardless of the fact that whenever I opened a Firefox context menu, I would crash. The solution to that was to not open a Firefox context menu. How long into Hyperland
Starting point is 00:57:01 existing did it take you to start daily driving it like that? Weeks or something. Oh god, yeah. Someone had to do it, I guess. It was really painful at the beginning. I mean, it wasn't that painful. It was just like-
Starting point is 00:57:17 I guess that's your motivation to make it work well. Couldn't do a couple things. It was just like, I knew that i just can't open settings in firefox or i have to accept my fate of crashing in 15 seconds so i was just like yeah i'm just not gonna open firefox settings uh-huh i don't need them anyways i can just do firefox colon slash slash settings yeah it works i guess um yeah so that was pretty fun um i think i made a unix porn post after like a month of developing heartland um like already showcasing the animations and stuff and it got like 2 000 upvotes it was really bare
Starting point is 00:58:06 bones back then but you already had like wallpapers and animations and all that fancy stuff and then after like another month I made another Unix porn post where I already had blur, rounded corners
Starting point is 00:58:22 multiple layouts I think. Stuff like that. I was just basically showcasing stuff at the dynamic config and stuff. And that post I think still is like the top three or top four of the year.
Starting point is 00:58:37 Wow. It got a lot of votes. Let me actually check how many. If you can send me the first one, I can share. I hope you won't get demonetized for me saying porn. I don't make money on this channel anyway, it's fine. Oh, I go to Unix Porn and the first thing I see is a Hyperland post.
Starting point is 00:59:00 Yeah, the fourth post of this year, 11 months ago. So I actually made that post one month after I made Hyperland. That was very... Yeah, it already had, like, rounded corners, blur, like, moving windows for your mouse, all that stuff. Ah, here it is. Yeah. I got, like, 50 rewards I think it was
Starting point is 00:59:33 less than two months one and a half months probably does it actually show the date? oh yeah it does, April 11th wait so that's like 28 days after I made Hyperland. At the month after I made
Starting point is 00:59:50 Hyperland. That was a pretty quick one. My title scheme was to that one guy that asked me to make a Wayland composter, referencing that one guy that was very nice and kind with his words. Oh, it's that one guy that asked me to make a Wayland composer, referencing that one guy that was very nice and kind with his words.
Starting point is 01:00:07 Oh, it's that one guy that asked me to make a Wayland composer, I am. That's awesome. Yeah. I think he actually went on to slander me on the internet, saying that I was saying
Starting point is 01:00:23 that Wayland is garbage and I'll never work on it or something. I remember reading a comment like that I was saying that, you know, Wayland is garbage and I'll never work on it or something. I remember reading a comment like that once that, oh, it's very hilarious that this guy has a Wayland compositor because when I told him to use Wayland on his Xorg window manager post, he said that Wayland is garbage and that he will never use it. Meanwhile, my comment was literally like, that he will never use it. Meanwhile, my comment was literally like, yeah, man, I mean, if I get arsed enough to start developing in Wayland,
Starting point is 01:00:50 I just might. I never said that Wayland is bad. Why would I say that Wayland is bad when I didn't even know back then what the hell Wayland was? That's such a quick transition, though. What the hell is Wayland? I googled Wayland, it was like a display server protocol. I was like, okay.
Starting point is 01:01:08 People go to a bit of a stretch to slander me online. The problem is you're getting too much attention. That's the problem. If this was a little positive that no one cared about... I am getting a lot of attention. But I'm also probably... I have to admit, I'm not the nicest developer ever. Because when someone annoys me, I tell them to fuck off. Look, I prefer that rather than the passive aggressive gnome approach.
Starting point is 01:01:41 Oh, no. I would prefer to be called the worst racial slur than to be ghosted like because ghosting literally tells me nothing meanwhile when you call me stupid and the n word i at least know what you mean well if you ghost me what yeah so we are very aware to just stop paying attention to the argument like if that's the only thing they have it's not like oh this is why you're wrong about this this is the exact thing no it's you're dumb like okay you're sure are we throwing words around like what are we doing here i'm gonna go i'm gonna go back to making this compositor. Uh, goodbye now Yeah, so
Starting point is 01:02:29 The thing we had a bit So we have a discord server just currently at like 2,000 people for some reason Jesus Like I started at like 15. I started one person obviously, but then within like a week we got like 15 people and it got reminded that we have a lot of people when I checked it one day and I noticed, oh wait, we have like 900 members. And I was like, yeah. And then I checked it once again, just out of the blue. I was like, oh, how many people do you have in Discord?
Starting point is 01:03:02 I checked it like two weeks ago and I was like, 1,800. Don't look at those numbers. They're not good for you. Just ignore the blue. I was like, oh, how many people do you have in Discord? I checked it like two weeks ago, and I was like 1,800. Don't look at those numbers. They're not good for you. Just ignore the number. Yeah, we have like 2,000 people in the Discord server now. Yeah, and so on the Discord server, we have we had
Starting point is 01:03:19 a very loose set of rules. It was like, basically, follow Discord's TOS, don't be an asshole, and don't say that Hyperland is a clone of i3, or else I'll ban you. Because we had problems there. Oh, and there is also a rule to never ping me, because I hate being pinged.
Starting point is 01:03:37 That's fair enough. And so it had a very minimal set of rules. So we had people that would kind of indulge in questionable conversations about nothing or about animal excrements in hashtag general or something. Yeah. And we had a bunch of incidents where someone would join, be racist or whatever and then get banned um but like generally whenever someone is like not serious or just lightheartedly joking or whatever as long as it follows discourse tos so he doesn't literally threaten that that he will bomb an we will allow it. Sure. And that was a bit of a problem because
Starting point is 01:04:28 me, including the mod team, took that very to heart and we weren't the nicest people. Sometimes when someone was really stupid, it could get to that point that it would borderline on bullying someone for just
Starting point is 01:04:47 telling them that they're literally dumber than like they have a lower IQ than room temperature yeah so so suddenly well it had to end
Starting point is 01:05:03 and because as the Discord server was growing, it was probably like two weeks ago actually, I got an email on my Vaxxery email and I noticed the
Starting point is 01:05:22 author of the email, the sender, was one of the big boys of Wayland. The title, Hyperland Community. I was like, shit. Oh, no. I opened the mail and I just see, hey, Vaxxery, very cool Wayland compository you have there. Hope WLRoots has been to your liking. That said, there has been some mentions
Starting point is 01:05:52 that transphobia is being tolerated on the Hyperland community Discord server. Do you want to talk about that? I was like, hell no, I don't want to talk about that, but I can't reply that way. And so, we had a bit of a chat in which, hell no, I don't want to talk about that, but I can't reply that way. And so we had a bit of a chat in which, I mean, fair enough.
Starting point is 01:06:12 Some of his points were okay. Some of his points were kind of like, well, he's sticking his nose and, you know, it's not his business. But as a result of that, we made a poll on the Discord server asking people whether they felt harassed or attacked on the Discord server. And 60% of people said no, but 40% of people said yes, which is a considerable chunk of the 2,000 that we have. And so we edited the rules saying that don't be an asshole for real. And now we stopped being that much of assholes. And I think it's kind of settled down.
Starting point is 01:06:53 Because I remember one of the people that well, I won't name them because I'm not naming here anyone. But the reason why the Wayland Big Boy mailed me was because one of the people that joined our Discord server
Starting point is 01:07:14 got kind of laughed at. And I know who that is, because they've been so open and loud about it that it's borderline hilarious. So first, I think actually you might probably know them, but I remember seeing them on like, I think like a forum, either Reddit or somewhere else, under your... I think under your or someone else's Hyperland video, and in, like, in, like, another
Starting point is 01:07:52 Discord server, they were just saying that Hyperland developers are the most transphobic, bigoted, terrible people online. Basically, they were, like, saying that in multiple places, and apparently this news reached
Starting point is 01:08:07 the Wayland committee, of which one of the big boys decided, oh, I'm gonna mail that guy. Why the entire thing? Because they joined the Discord server, they made a big deal out of their pronouns,
Starting point is 01:08:26 one of the moderators, because they put their pronouns in their nickname and made a big deal out of them whenever someone was because people were referring to them as he which on the internet let's be real is a default and so they edited their pronouns and so one of the moderators changed their pronouns in their nickname to who slash cares and the best part um
Starting point is 01:08:56 yeah i i noticed that everyone was changing their nicknames so i disabled changing nicknames on the server for people that don't have an activity role of like above something And that nickname of theirs of days of their of their stayed To cares and they got pissed and I just left and I was the entire thing Yes, that was very unprofessional But let's be real like but let's be real of like, man, not really like,
Starting point is 01:09:27 you know, calling other people the N word or something. I understand that. I can see why they're not. I can absolutely see why they got offended by that. And like that, I can agree with that's a really non-professional way to handle that. Um,
Starting point is 01:09:40 if there is that many people on the server that kind of feel like, you know, it's a bit of a toxic place, maybe at that point, you know, it's worth thinking about the way you're approaching stuff. I agree. That's why this mail kind of ended this very toxic phase of the Discord server. And I started muting the most active people every now and then for like being over the board because i remember i'm currently first year university so i was on a tutorial i was i i had my laptop open on hyper development because i was just replying someone and then i went over to help someone. And when I came back, one of the guys had, you know, this massive
Starting point is 01:10:28 PNG of, like, 3D text saying, child porn. It's just the text. 3D massive text, child porn. Uh-huh. And he sent, like, 10 of those, with each of them
Starting point is 01:10:44 being something different, equally stupid, like then like gay sex and other stuff. And like 10 of those images. And I was like, I'm in a tutorial. I have my laptop open. And this is what I come back to. Guy got muted for like a week. Because it's kind of like that thing that we would
Starting point is 01:11:07 probably let slide or but it was right after that change so no it was like over the board so yeah so we kind of changed how the discord server operates it's way less of a toxic hellhole now, I would say. Yeah. But it probably still isn't like Unix porn Discord server levels of... Sure, sure. Everyone is gonna lick your butthole just to be nice. Do they even install each other's screenshots there? I don't even know. Unix porn Discord server was in emergency mode a couple days ago. Uh-huh.
Starting point is 01:11:42 Because I think, you know, Elkowar, the WW creator? No, I don't know. The guy that made EWW, which is widely used. Oh, okay, yep, yep, yep. Elkowar, yeah, he's like, I think, a
Starting point is 01:11:59 moderator or an administrator of the Unix-born Discord server. He got spotted. He joined the Hyperland Discord server and made a Hyperland rise within like 12 hours of joining and chatted for quite a while. And people on the Unix-borne Discord server went into emergency mode because they were like, is Elkoar going to leave us for Hyperland?
Starting point is 01:12:21 Really? And then I remember one of the guys that got like oh i remember um one guy it was very very very long ago like nine months ago or something one guy joined our discord server was very annoying very disrespectful so i replied with being very annoying very disrespectful towards him so he had a massive argument and now he thinks that i'm an asshole and i think that he's an asshole and we're both probably right and i remember this guy literally replied to that and said that if elko chooses hyperland over unix porn he's gonna ditch eww and do something something and never come back to unix porn i I was like, damn, brother. What is this? You can be in multiple places at once. I don't know what
Starting point is 01:13:09 the confusion there is. Also, I've not heard of this project before. This is actually pretty cool. Yeah, it's amazing. I don't use it, but I would make my bar in it if it had a tray, but a tray is still a PR.
Starting point is 01:13:27 Right. Oh god. I'm trying to find that one message of him, but I probably will not find it now annoyingly because whenever I try to find something I can't and whenever I don't want to find something... Yup. ...I will. Yup. Oh yeah, there is also this one comment, someone saying that hyper...
Starting point is 01:13:53 I noticed that Hyperlens unoptimized AF after moving to SwayFX, which posted in Hyper Development and had a good laugh. Yeah, there we go, yeah. I've been informed that Elkowar will abandon the Unix porn community in favor of the Hyperland Discord server. And someone replied, WTF, Hyperland's dev is a huge dick and the conversation happened here already multiple times. And then the guy that I told you about replied to that.
Starting point is 01:14:32 I've been informed that if that happens, Elkowar will lose all my respect and can go F himself. Look, to be honest, you are a bit of a dick, but like, sure, whatever. It doesn't matter. I make software. I'm not here to be you you know terry a davis right um yes i'm very aware of terry davis you know his attitude there was there was this one clip online where he got a phone call and basically called the other person like the n word 10 times and people in the comments just said temple os customer support yeah it kind of reminds me of of me and like yeah people that ask stupid questions although we we have a dot wiki command now to just send people to the wiki that's good wiki is amazing yeah you know it's always great when people ask questions that are like... People like to shit on the wiki.
Starting point is 01:15:25 People just can't read the wiki because... To be fair... They failed the third grade. To be fair, when I did my video on Hyperland, there was a bit of the wiki that was completely out of date. I was very confused about it. Documentation is hard. Your Hyperland version was out of date.
Starting point is 01:15:44 The wiki was up to date. Now the wiki has versions, like literally two days after you made your video, we have a versioned wiki. Oh, lovely. Did they get out of it because of the video? Yes. Yes, basically, when I...
Starting point is 01:15:58 I remember when you said that you were making a Hyperland video, me and one of my moderators, which is a good friend of mine, Buffy, we were every single day at like, I think, 8pm for me and like 9pm for him, we were just refreshing your channel
Starting point is 01:16:16 to see if this is the day when you post that damn Hyperland video. I'll make another one at some point as well, but... And one day day it just appeared and literally like within probably like four hours like half of the things that you mentioned
Starting point is 01:16:32 I fixed and then like the next day I made versioned wiki I think that was it like every single thing that you complained about was addressed like a versioned wiki isn't a super important thing but having that there is just so nice when, like,
Starting point is 01:16:48 when you are dealing with, you know, especially if it does eventually get shipped on something that moves a little bit slower, like an Ubuntu, things like that. Maybe not Ubuntu. It won't. It won't. But one of the, like, the the flavors, like, there's gonna be
Starting point is 01:17:03 like an unofficial flavor at some or like there'll be some sort of Debian based distro or something like that that moves slower that's not Arch Linux it'll be somewhere that isn't Arch Linux or Gentoo where you're not gonna be on the latest version
Starting point is 01:17:19 unless we get off of WGilroot's git it will not happen unless someone is really dedicated to keeping that up. Because we still depend on WLRoots Git. We don't use version WLRoots. And so I keep a list of distros that have explicitly, by either a member of the distro or a trusted user in the case of Arch or a similar entity, have explicitly denied packaging hyperland and currently we have alpine void and arch arch linux denied packaging hyperland and i i just want you to go to go currently currently go to aur it's aurchLinux.org and click on packages
Starting point is 01:18:07 Okay Read the name of the first package. Oh, I don't even have to I just see the what do you call it the Description of the website the first package is hyperland Yes, it's it's it beats yay and paru. It is combined popular package. Combined. It's the most popular package by like... The second most popular package is Octopia, which is a Pac-Man front end. Yeah, okay.
Starting point is 01:18:36 And Hyperland has like 50% more popularity. To be fair, the top four... Okay, the top five packages, only one of them isn't related to Pac-Man. Yes. Yeah. Hyperland.
Starting point is 01:18:56 Alright then. Yeah, and a trusted user denied and said that probably no one will package it for Arch because we bundle WLRoots, which, yes, kind of... The problem most people have is just the fact that you're kind of ripping away that package, that WLRoots is a package. But another issue is that WLRoots Git often depends on very new versions of other things. Right.
Starting point is 01:19:29 And remember one time, like, for example, people have unofficial, like, packages on Fedora's Coper for Hyperlint. We'll have those. But every now and then it breaks because libDRM is out of date or something else is out of date or lib display info doesn't compile on Fedora unless you use the 1.0 version, which works, but you can't use the default one. And yeah, they have those issues. I remember someone got it to work on Ubuntu by compiling GCC, Wayland, Wayland server, Wayland call, Wayland protocols, double roots, and Hyperland.
Starting point is 01:20:09 You have to basically recompile the entire stack, the entire Wayland stack, plus have to compile GCC, because GCC is too old. But it works on Debian unstable. So that's cool. Oh, because Hyperland uses GCC that's not even a year old. We use GCC 12. We require GCC 12, which has been out since July 2022.
Starting point is 01:20:38 And I remember we started using it in December 2022, which made a lot of people mad. Because for example, Void Linux is stuck on GCC 9, so it just wouldn't compile. So a bunch of people had to compile GCC in order to compile Hyperland. You literally had to compile a compiler to compile something. Yeah, that was fun.
Starting point is 01:21:02 I'm sure that was... And currently, I don't know why, we have an LLVM bug, and it doesn't compile under LLVM, under Clang, because of a... I think we have to use a different
Starting point is 01:21:19 libc++, libstdc++ than Clang's, because Clangangs has a bug that makes Hyperland not compile. So like, yeah, that's pretty nice. I'm glad we only officially support GCC. So people that are on GCC systems can go
Starting point is 01:21:40 F themselves. Yeah, that's a problem. The more people If using Hyperlint... If they want to maintain it, I'm sure you can appreciate the sport. The more people... For example, the more people use Hyperlint, the more I see how everything that I've made for the build system to work and for the thing to work
Starting point is 01:22:03 is getting picked apart by different distros just to adapt to their own thing so i have one guy i think jabeach is his username on github that whenever i break something for free bsd and dragonfly and and NetBSD or whatever other operating system on the BSD family, he will just storm in with a merge request being like, oh, hey, this actually is not used on BSD, so just a merge request,
Starting point is 01:22:36 which is pretty cool. I appreciate that because, you know, I don't have to figure it out myself. And whenever I do something that I know or suspect is going to break on the BSDsds i just tag him and be like oh this this might break bsds you know um and oh god gen 2 has an e-build or multiple e-builds for hyperland some of them literally patch hyperland to work on versioned W roots. Okay. That's pretty cool. Okay.
Starting point is 01:23:07 But it's probably going to break someday or require a lot of rewriting or stuff. Yeah. I think also BSD does that also BSD patches like Hyperland for that. And then, and then you have like tons of other patches for the package build to be different. Then you have the Nix flake that Fuffy maintains. I remember once, I think one of the dependencies on the Nix was outdated.
Starting point is 01:23:32 I think it was libDRM. And remember I was like, Hey, so why is the CI failing continuous integration? We have like, whenever it commits, it compiles the code and we have Arch and Nix. And on Arch
Starting point is 01:23:48 it would be succeeding and on Nix it would be failing. I was like, hey man, why is it failing? And he's like, oh yeah because one of the packages is outdated and he linked me a merge request to the Nix repositories to update the package. And I was just like,
Starting point is 01:24:04 yeah, okay, but it's just a package update. Can't you, like, overwrite it like you do in Nix? He's like, yeah, I did that. Then why is it still compiling? Why is it compiling for 40 minutes? Because it was compiling for 40 minutes. And then he was like, yeah, look at the merge request.
Starting point is 01:24:19 And I clicked on the merge request, and in the tags that automatically a bot assigns, it said recompile needed 10,000 plus. I clicked on the merge request, and in the tags that automatically a bot assigns, it said, recompile needed 10,000 plus. So that's why, because basically by overriding this one version, you had to recompile pretty much the entire operating system. That was funny. Yep.
Starting point is 01:24:43 I don't know what happened in Nix. Nix is pretty weird. But yeah, that was pretty funny. I don't know what happened in Nix. Nix is pretty weird. But yeah, that was pretty funny. I thought that Nix handled dependencies pretty well. You know, multiple versions in one system and stuff. Apparently, something went very wrong. But one of the things recently that broke BSDs, but I want to mention because it's one of the coolest things I've done in Hyperland yet,
Starting point is 01:25:05 is the plugin system. We have a plugin system now. And it's not like scripts like we used to do before, which you can still do because scripts are super easy to do. You can just write a script that just executes a hyper control command and just sends something or listens to events. But now you can write plugins that directly interact with the code base you can you can basically do anything you want the code base and you can also do function hooks which so a lot like the way awesome does it or am i misunderstanding it i've never really worked with awesome but Awesome is just written in Lua. Yeah, it has...
Starting point is 01:25:46 Like, all of its configuration is just in Lua. Yeah, it exposes everything in the code base, like, with Lua, from my understanding. So plugins are basically that kind of thing. But the thing with plugins is... I think with Awesome, since it's written in Lua, you probably can hot reload stuff. If you change something, you can just save it
Starting point is 01:26:04 and, like, reload reload something and it will probably apply. But in Hyperland, since we're written in C++, we can't just embed Lua, because that would be basically the same thing as shell scripts. If you want to expose the entire code base, the plugins are written in C++ and are compiled to shared
Starting point is 01:26:19 objects, like.so files, that you can just inject with HyperControl into HyperLens and eject them. So you can dynamically shuffle them. And they expose the entire code base. And you can also do function hooks, which are really cool. So you can take any function in HyperLens code. And basically, hook works like this.
Starting point is 01:26:41 So when you have a function, you place your own hook. So your own function gets called whenever that function would be called instead of the original function. And you can call the original function later. But so you can modify its inputs, outputs. You can stop it from executing. You can write your own logic or whatever. This exposes a lot of things. For example, making your own layout plugin.
Starting point is 01:27:02 Really simple. making your own layout plugin. Really simple. A guy within like a week made a plugin to support the River protocol for window managers in Hyperland, which is really cool.
Starting point is 01:27:13 And within like two days, a guy made a plugin to manage plugins in Hyperland. Yeah. Yeah. And now he said that it's actually ready for version 1
Starting point is 01:27:25 because it can update itself so a plugin that can update itself on a running Hyperland manage other plugins and update them on a running Hyperland which is really cool in my opinion that is really awesome
Starting point is 01:27:40 it's really really cool, it allows you to do a lot of things like we have a repository for official plugins, which includes a plugin for double borders, which was a feature a lot of people apparently liked. Double borders meaning? Meaning you have
Starting point is 01:27:58 one border and then another border around that. No, I got that part. I mean, why would someone want that? I don't know. Some people really like them. Sure. Okay. Um, actually, when, like, two days after I released the plugin
Starting point is 01:28:14 system, someone on Discord asked DoubleBorders when. And I just linked them the official plugin that I wrote within, like, four hours of the plugin system being online. Um, we also have a plugin for title bars which was a requested feature. So like window top bars like KDE style. For some reason.
Starting point is 01:28:36 And we have a plugin that I use for CSGO fix because CSGO is bugged and it's a problem with CSGO and I don't want to put it in the core repository because it's just a CSGO issue. I see what you mean about double borders. So you have like a regular border and then for some reason you... I guess just a rising thing. Yeah.
Starting point is 01:28:57 Yeah. Well, rising thing. We have gradient borders. I don't think I've seen anyone do that. Well, now I've seen anyone do that. Well, now I've seen a lot of people do that, that Hyperland has it, and a lot of people apparently like it. I mean, I use them.
Starting point is 01:29:11 They're pretty cool. That's actually really cool. And you can animate them. Oh! Okay. You can animate the borders, like spin. Oh, wow. Eric has a video, the ArcaLinux guy. Okay, let's have a look. Of course he does.ic has a video the uh arco linux guy okay let's have a look yeah of course he does eric oh yeah eric eric has an issue currently for some reason with 0.23 apparently
Starting point is 01:29:34 freezes his entire system for some reason but i can't repro it even try this config i should just assume that every possible thing to do with arch is going to have a video from eric that's really cool yeah you can animate them because people people were really adamant that you should be able to make a spinning border and i was like guys please jesus christ and they were like no please spinning borders and i was like okay i just want you to make a full animation framework. Like, what is this? I had a proposal from someone on Hyperlens, like, two months old to implement a goddamn physics engine with windows
Starting point is 01:30:16 because he didn't like how animations looked non-realistic because when he yanked a window, it didn't behave like a solid body what yes me on my way to implement a physics engine for a god damn wayland compositor
Starting point is 01:30:34 rigid body simulation I would love that that would be hilarious I mean there is a wobbly windows merge request that someone was working on but then they didn't know how to do it How long until someone asks you to implement every single one of the effects from comp is?
Starting point is 01:30:54 Someone has already asked that and I said no I am not implementing a goddamned cube That's like the stupidest thing you can ever implement It's so 2007 another fun thing wayfire has already done it so you don't have to really think about it yeah wayfire has all of the
Starting point is 01:31:13 weird animation effects like fire windows or whatever it's why like it looks very 2007. Sorry, it just looks very 2007. Yeah, I'm not a big fan. I get it why people like it, but, like, it's not my thing. I get it, but I don't want to add unnecessary complexity to the code base just to make it look more 2007. Here's what you do, right? You make a plug-in system and let someone else do it. Yes, and you ask people to make a plugin, like make your own
Starting point is 01:31:46 decoration for that yeah someone actually roast people we have one guy that maintains the Hyperland community like GitHub
Starting point is 01:32:02 what is it called uh organization yeah they they maintain like the awesome hyperland list which is really cool and he also writes stuff in rust so he for example when we had when we just started doing like the the sockets so you could do bash scripts he made a wrapper in rust so you could do like your own scripts in Rust for Hyperland. And then he made like a couple of things in Rust. And I remember when the plugin system landed, he made a repo called Hyperland plugins Rust. And it was just called like a placeholder
Starting point is 01:32:42 for a Rust wrapper for the Hyperland plugins. And it's still empty to this day, because I think he realized that a wrapper for a plugin library, that the main point of it, of it giving you more control is the fact that you can write, that you can interact with the code base. You can't do that when you wrap it in Rust, because you can't read C++ objects from Rust. It's kind of not possible. So, like, you would be throwing
Starting point is 01:33:12 away all the upsides of plugins by writing a Rust wrapper, which kind of... Why? That's so stupid. I love it, though. Yeah, Rust people realizing they can't rewrite everything in Rust Rewrite
Starting point is 01:33:28 Hyperlend in Rust Yeah, some people have suggested that and I just said no Not rewriting Hyperlend in Rust You can't use W roots with Rust The bindings failed I was going to say, write Rust bindings for W roots
Starting point is 01:33:43 No, no, no, Rust bindings for Wots failed because of the reason that I told you, it's just that WLRoots passes everything as void pointers. Right, okay. Which Rust really doesn't like, so the bindings basically failed because nothing could be made memory safe. Write a wrapper for W Root to write a wrapper in Rust. No,
Starting point is 01:34:10 it's called Smithy, and it's just W Root written in Rust. That's fair. If you want to write a composite of Rust, just do Smithy. It's getting all the attention from PopOS right now. I'm sure it'll become better over time. Because PopOS wants to base Cosmic on it.
Starting point is 01:34:25 Because they really don't like Gnome. Yeah, I'm sure it'll become better over time. Because PopOS wants to base Cosmic on it. Because they really don't like GNOME. Yeah, I mean there are only two types of people. New Linux users and people that don't like GNOME. Oh god. Yeah. So when you started writing Hyper
Starting point is 01:34:43 and Hyperland what sort of experience did you have in, uh, in development? Cause you were new to Linux, but I presume you weren't new to like programming just generally. For my age too much. Oh, a little bit of backstory on me. I am 20 I should be
Starting point is 01:35:08 probably digging my own grave I know I know blah blah blah I already have a grave because you know I'm getting old and stuff you know back pain you know osteoporosis yeah yeah yeah baby 20 year old average 20 year old
Starting point is 01:35:24 back pain and stuff. So, when I was nine years old, I loved tinkering with computers. And I asked my dad, my dad is an engineer. And I asked my dad, like, hey, dad, so I can change a wallpaper, I can write a small script, I can fiddle with the files, I can try to edit this and that, but like, how do I do more?
Starting point is 01:35:53 How do I like write my own application or something? How do I make my own game, my video game? And he was like, no clue, but I heard that C++ is a programming language. C was very popular, so C++ could be cool. And I was like, okay, dad, thanks. And this was right around Christmas, so I just wrote a letter to Santa,
Starting point is 01:36:12 and I asked for something C++. And in Poland, and I'm not currently in Poland, but I'm from Poland, I'm Polish. We kind of have two Christmases. We have the Santa Day Day and we have Christmas. So for Santa Day, it's like 8th of December. You just give small gifts. Right.
Starting point is 01:36:32 I don't know, $10. And then for Christmas, you give the actual gifts. But like the Santa Day is like for kids mostly. Right. So for the Santa Day, I asked something, something C++. And I woke up the next day and i got two books a thousand pages each title symphony of c++ i've not heard symphony of c++ okay it's it's a polish book okay right uh it's a polish book i don't know if it's made by a polish person probably uh
Starting point is 01:37:05 that looks like a polish it's it's a name that is very very much yes these books yeah symphony c++ standard iso c++ yeah that is a cover page on it i love it yeah it has two books two um two separate volumes each are like 1000 pages jesus they're like very very long and me being a typical nine-year-old with the attention span of a chihuahua i read both of them uh actually those remain one of the few books i actually read the entirety of until i was 19 so uh so i read those and i really enjoyed it and i started you know tinkering with stuff i remember in fourth grade i would be writing like small utilities i actually still have two of them somehow they survived on my drive One of them was like a calculator. The other was like a quiz app. And they were all just in the console. But I would just be writing cool stuff, you know, in fourth, fifth grade. And my IT
Starting point is 01:38:14 teacher, who would later kill themselves for some reason, I don't know, he really enjoyed that. He said that, you know, it was really cool that I had potential and stuff. And so I basically, you know, started like coding some stuff, cool stuff. And then I had a bit of a hiatus. I stopped for a bit because I didn't really find anything. I wasn't kind of that phase of being a young person. And I saw I could do a lot of things in the console, but I didn't know. I was like, for example, how do I make my own game or something? I just didn't know.
Starting point is 01:38:49 And me being a young person, I just assumed that C++ just can only do console stuff. And I was like, oh, okay, whatever. And so I stopped for a while. But then my interest in coding got rejuvenated by questionable activities, which was cheating in online games. Yo! So I was
Starting point is 01:39:14 like, yeah, cheats are pretty cool. Oh, and they're written in C++. Oh, I know that. And then like 2015, I made an account on one of the most popular cheating websites, forums where people would discuss cheats and writing cheats and stuff. And I would be writing a lot of my own cheats for video games,
Starting point is 01:39:36 which helped me a lot to learn about C++ and how it works and memory hacking. And to this day, I know how to reverse engineer and read assembly and byte patch and all of these things. The hooks that I did in the plugin system, I learned by writing video game cheats. When I had a job in the biggest Polish IT company at the age of 17. I have to brag about that. I used IAT hooking for one thing that Windows just sucked at.
Starting point is 01:40:16 It was just so annoying because if I wanted to get core dumps from the app that crashes, I had to overwrite the Windows core dump thing with my own thing, which I could do by setting an IAT hook, which I learned while writing programs that were borderline malware previously.
Starting point is 01:40:37 So I just learned all the worst stuff and then somehow found a way to use it. Yeah, disclaimer, I never actually wrote malware, I just wrote things that were borderline malware. Yeah, that's probably a good disclaimer to have. Just for fun. Yeah, I was writing
Starting point is 01:40:55 just for fun, when I had a cheat, I was writing a loader that would authenticate with a server and then monitor the activity on the computer so that someone wasn't trying to dump it or like leak it or crack it or whatever and yeah that kind of worked like malware because it was injecting into like almost every single process on the computer and monitoring itself yeah that's how i learned this yeah this is borderline malware i don't it's you know at that point i don't know dm vibes i don't know if you get sony dr the borderline is a bit
Starting point is 01:41:29 difficult to say there i never i never deployed it i never deployed it okay okay okay it was just for me uh i never used it on anyone except for one of my friends but he was just in he no he was in for the testing he was just like he wanted to test if it works and he knew everything yeah um yeah so that's how i learned the stuff and i i literally copy pasted the code from that thing into my job in my job into the thing that i had to fix and i I remember one of my supervisors, when he was reviewing my merger, he was like, what the fuck? And I was just like, yeah, don't worry, it works. He was like, okay.
Starting point is 01:42:13 It was just like really complex, complicated, like Windows internals. I was literally digging through structs that were named DOS header to dig through the exe parameters because windows for some reason still accepts dos headers for exes what the hell but yeah it was it looked very sus but he was just like okay whatever but yeah that's my background in programming. Aha.
Starting point is 01:42:45 So how did that lead you into Linux eventually? Oh, into Linux? It didn't. Okay. I wrote a bunch of utilities for Windows later, because I was like, I wrote Mosaic, which was pretty cool, which was a program to make mosaics out of images. I was just experimenting with SFML, which is like a multimedia library. I use it for rendering and stuff.
Starting point is 01:43:08 So I didn't have to do OpenGL. I experimented with making my own Minecraft utility client, which are commonly known as hat clients, because I play on a certain anarchy server in Minecraft that allows the usage of such clients so i forked one client i made my own this is the oldest anarchy server in minecraft no it's the best anarchy server in minecraft 9b90 um so so yeah i had a bit of java here a bit of c++ and writing apps and stuff. And then when...
Starting point is 01:43:46 Actually, I don't remember. Oh, yeah, on the 9b19, I met one guy. I met a good old friend of mine. We kind of fell apart after like two years. Flammable Duck. And he kind of introduced me into Linux. I remember at the beginning, because he was a Linux user, he used like Endeavor,
Starting point is 01:44:08 and at the beginning, he was like, oh yeah, why don't you just use Linux and stuff like that? I was like, yeah, I don't really like how Linux looks like and stuff like that, because when I see people use Linux, it kind of looks weird. He was like, yeah, Lux isn't about Linux, it kind of doesn't work like that.
Starting point is 01:44:24 I was just like yeah everything works in windows for me for now i don't know but then like he reminded me a couple times and i just was like oh that's pretty interesting and then i asked my another friend of mine actually in poland that i knew like personally and he was also using linux i was like i'm gonna try it out looks pretty cool pretty cool and yeah, and then we had the NVIDIA problem but that didn't discourage me, I started using Linux
Starting point is 01:44:50 and I really liked it, and I never booted into Windows on any of my own machines ever again yeah, so my programming experience didn't kind of lead me into Linux one of my friends led me into Linux.
Starting point is 01:45:07 And now you write Hyperland, and it's... Yeah, somehow. So what's it been, besides, you know, having to deal with the Discord stuff, what's it been like, just... Because how quickly did Hyperland sort of take off? Is, like, the first, I think the first three months, by the look of the graph, like, that's when it was sort of take off is like the first i think the first three months but look at the graph like that's when it was sort of really picked up in the beginning had a bunch of bumps which are usually usually unix porn posts yep yep yep um so there was one
Starting point is 01:45:36 nothing like videos a month in it bumped up then about three months and it got another bump and then from there it's just progressively there, it's just progressively grown. Yeah, it's just progressively grown. Just kind of now we got like a solid influx of people because we basically beat Sway when it comes to everything. Yeah. Except maybe some stability issues. Yeah.
Starting point is 01:46:02 No, to be honest, like I would say that for like 80% of people, Hyperland is just stable. It's just that those 20% still have occasional issues. Okay, to be fair, I haven't used Hyperland in a while. So maybe it's more stable now. So I was actually going to do a video on Hyperland, I think a month or two earlier than I actually did it. video on hyperland i think a month or two earlier than i actually did it um but when i first looked at it for some reason everything was just flickering i was like this is let's let's not do it now because you hit those three days when that was an issue yeah um so i gave it like a couple of like a month or so after that and i was like okay okay it's good so the thing the thing with hyperline currently is it
Starting point is 01:46:45 doesn't crash that's good it doesn't crash for like i would say 80 of people it doesn't crash ever but it still occasionally has things that you wouldn't expect it doing like i don't know you move a window or full screen a window i i can't think of any issues off the top of my head because if I had any issue, I would patch it within 20 minutes. But yeah, like those minor issues, like, I don't know, you move a window here and there, it doesn't do exactly what you would expect it to do, stuff like that. But they aren't like really like fatal issues.
Starting point is 01:47:18 Like, you know, your entire display server goes down. They haven't had Hyperland like properly crash because of hyperlands fault like months now okay and i mean like of actual usage because of course when i'm developing a feature and i just want to test it in a real session sometimes it crashes because i just wrote something wrong but i'm just developing it i didn't't push it even. But yeah, apart from that, especially if you use the tagged releases, you're pretty much not crashing unless you have a laptop that for some reason physically disconnects the monitor when you close the lid. Yeah, that's mostly fixed. mostly fixed.
Starting point is 01:48:04 Mostly fixed. Some laptops actually do. Mine doesn't. Some do for some reason. And it would cause issues and it's still an open issue because one person has an issue with that. There were like 20 people that had the same issue. 19 of those
Starting point is 01:48:21 don't have the issue anymore. One of them has and it's the issue I told you earlier, where it's a thing that should never crash. Right. But it does for him somehow. So I would say that Hyperland is pretty stable now. If you are like in those 80% of people. If you are in those 20, I don't know, of course, the precise measurements, right?
Starting point is 01:48:46 Sure, sure. Then it still may have some rough edges, but please don't feel intimidated. Report it on GitHub. Of course, before reporting on GitHub, please use the search function because it might be reported already. But if you crash, please report on GitHub.
Starting point is 01:49:01 We have crash reports. They are stored in the issue guidelines. They have a path to the crash reports. Send the crash report and it tells a lot. Some crashes I fix within five minutes because it's just, oh shit, I forgot this may happen. And it's just one check, one null check. That's it. And it it's fixed so like a lot of those crashes are just oopsies because i don't have a quality assurance team checking my code yeah yeah yeah every single line i change and i don't want to be like wayland protocols where everything is a merge request that takes 20 years to be merged. Not the way
Starting point is 01:49:46 I want Hyperland to take. I want Hyperland to be like a cool, actually, really, this kind of multiple features, just eye candy, open to the user.
Starting point is 01:50:00 Kind of like KDE. It just allows the user to do a lot of stuff. Not like GNOME, where it allows the user to do a lot of stuff. Not like GNOME where it prevents user from doing stuff. I think a big part of the reason why Hyperland sort of gained a lot of attention is there's been this sort of, a lot of the existing compositors were kind of just, they did one thing really well but they didn't do everything it's like okay if you want to have something rock-solid sway it's literally just i3 if you like i3 it's fine if you want something fancy there's
Starting point is 01:50:36 wayfire it but there wasn't something where I guess sway fire was a thing but no one really maintained that that much no No, it wasn't a thing. Let's be real. It just failed. Yeah. It was a... Yeah, it existed. The problem with Wayfire is that it's mostly treated, I think, as a toy.
Starting point is 01:50:55 Yeah. I think that's just kind of a proof of concept of what Wayland can do, but not as an actual thing people would use. not as an actual thing people would use but then hyperlend comes along it's like okay it it's a window manager that has these you know these desktop environment level compositor it's not a window manager whatever yes it's a whaling compositor it's it's a tiling whaling compositor there we go i guess you're also floating though so whatever um dynamic tiling yeah dynamic tiling with weyland compositor there we go sure i i jump on people for the terminology sometimes as well it's fun um and i i should go actually give hyperland another
Starting point is 01:51:42 proper shot just to see what it's like now. Give it like, you know, a long, you know, month, two months, actually like trying to daily drive it just to see what sort of problems end up cropping up. And really, if any problems in my day-to-day stuff really does. Yeah, obviously there was like 194 open issues currently on the Hyperland Bug Tracker. So I have a lot of things to do, but I try to prioritize currently stability, so issues that crash the display server are real things to me that I focus on, or things that produce very awkward or annoying states, for example, if there would be an issue with the layout where, for example, Windows would be invisible, I had an issue, a guy reported an
Starting point is 01:52:33 issue that if you would move a group, so in i3 or Sway, I think it's called a tabbed container. So if you would move a group from one monitor to another, then all the windows that weren't active when you moved the group would be invisible. And I treat those things really seriously, because they seriously impact the user, because those windows are currently unretrievable.
Starting point is 01:52:58 You can't get them back unless you dissolve the group and then make it again. So the guy reported the bug, and within six hours, I made a fix and closed the issue. Because those issues that seriously impact the user, I take them really seriously and try to fix them just ASAP. If I know what is causing this,
Starting point is 01:53:24 I'll just fix it within a couple hours because i have no life no i think my girlfriend my girlfriend can attest i think the way you're approaching it is it's one of those things that a lot of fos projects i've noticed they do the exact opposite there's a lot of projects out there that really focus on those fancy you know fancy bells and whistles the fancy effects the fancy whatever but the foundation isn't solid and you had those fancy effects early on sorry xdg desktop portal but you are trying to just make that like if the foundation is solid that's the thing that most you are trying to just make that like, if the foundation is solid, that's the thing that most people
Starting point is 01:54:07 are going to notice. Most people aren't going to be using every single effect that's there. It's cool to have them. It does sort of like grab attention on Unix porn, things like that. People won't even discover that they exist. Exactly, yeah. You want to have them have a good experience, then they can explore the rest of
Starting point is 01:54:23 what's available. Absolutely. Laying foundation, xdg-toolportal, you know that thing, right? The problem, if you have a WLR or Hyperland backend on your system and you install KDE or GNOME, it should prioritize WLR or HyperLend, the portals that it provides, and use the rest of the portals as a backup, right? Right. Well, the problem is that if you install KDE or GNOME implementations, the entire XDD desktop portal just kind of dies. It won't work.
Starting point is 01:55:08 Like, everything is broken. Literally, the moment you install XDD desktop port KDE and you launch Hyperland, screen sharing will not work. Like, most of the things that you would expect portals to do won't work. Any single app that utilizes Dboss will launch 30 seconds because it will time out trying to get the portals. It just will time out and will just ignore portals altogether
Starting point is 01:55:35 because something is broken. And I submitted an issue and they were like, yeah, this probably might be fixed with this one PR. And this one PR just kind of clarifies what portals to use in which environments. And I mean, maybe, I replied maybe, but you can see from the logs that XGG Desktop Portal doesn't take the portals for a screencast and screen copy that WR or Hyperlens provides. It doesn't take them from KDE, but still for some reason produces a timeout. What is happening? They're just like, I don't know. Cool. Great. So even worse thing, like it used to be not
Starting point is 01:56:20 very, not very big issue. Just like remove Kd or gnome if you have it and just don't keep it right the problem on arch since like a month ago xdg desktop portal kde is a hard dependency of plasma integration so because i use plasma integration to have beauty themes or KDE system settings or some other KDE apps, Dolphin I had to literally Pacman RNSDD so remove purge, remove every file and ignore
Starting point is 01:56:56 dependency checks, the portal and then add it to ignore package great superb solution so like it's super annoying i might just one day just get mad enough to like try and try and debug the actual xdg desktop portal and see what the hell is going wrong because something is going very wrong there and it's just really annoying for me to have that that notice for everyone to like read and pay attention that they have KDE.
Starting point is 01:57:29 And still so many people had those timeouts. So I recently added literally a notification that Hyperland will pop you a notification if you have KDE or GNOME installed telling you to remove it because it's going to cause issues. And of course, I can't use the system notifications. I had to use the HyperLine built-in notifications because system notifications won't work because the D-Bus is timing out. D-Bus notifications won't work.
Starting point is 01:57:57 And also some people don't have a notification daemon. So. Right. Jesus Christ. It's a mess. So one last thing I want to talk about is besides just dealing with the the bugs and all the foundation stuff what do you want to actually add into highland like what's coming in the future that you think would be you know really cool
Starting point is 01:58:21 oh or even something you're not working on right now something you want to see yeah yeah plugins were for a long while on a list of like off in the future someday maybe and then one day i went like i woke up and i was like i'm gonna make a plugin system I don't really have a long-term ground plan for Hyperland, what to add and what not. Because in the beginning, yes, I had a bunch of things that I really wanted to implement. But now I think that most of the things that I really wanted to implement have been implemented. And the things that are left to implement are, of course, fixing bugs, but the 120 or so enhancement issues on the bug tracker so some things people are really like really cool things that people are
Starting point is 01:59:16 requesting but some things i can now delegate to plugins so also for a long while i don't like the hyperlens shadows because the window shadows i'm pretty sure they work like they should but they don't look great right at least i can't configure them to look great i know some people have but i don't know how so like there is this suggestion for something like, I think it's taken from Material You or something like that, where you have double shadows. One of them is different than the other. Okay.
Starting point is 01:59:54 Which, yeah, pretty cool. But generally, my roadmap now is to fix bugs and add the features that I find that should be in Hyperland, into Hyperland that people have requested. But we also make, we have made two censuses, we call them censuses, which is basically a glorified form about Hyperland enjoyment survey. So how do you enjoy Hyperland? What do you, what should we focus on? And what are your biggest pains with Hyperland? We have made two of those. I think we will make like a third one sometime soon because we haven't made one in a while. So I know, I like to know what the community's opinion is. I remember in the first one,
Starting point is 02:00:36 people were really, really adamant on the fact that Hyperland was very buggy. And like 60% of people said that the priority currently should be fixing bugs and by the time we got to the second census the amount of people that thought fixing bugs should be the priority dropped like 30 percent wow so we could we could see the improvement we okay i'm still talking about myself and plural i like 19 personalities or whatever. There's other people that might do something. I mean, let's be real, I wrote 95% of the code. Well, yeah, I think that, to be fair, that's the way it works with most FOSS projects.
Starting point is 02:01:14 Yeah, yeah, true. And so, because after the first census, I was like, yeah, I really need to fix the bugs. I know that the community says that, and that's really a priority. And then with the second census, we got bugs and features
Starting point is 02:01:34 and stuff like that. And so I think that we currently need a third census to see what the public's opinion on bugs is. Because I just threw that 80-20 because, I don't know, that seemed like a reasonable ratio.
Starting point is 02:01:50 But I don't know what the ratio is. I don't collect telemetry on the users. Maybe I should. Haha, gnome. But I don't. I don't really want to have Hyperland connect to the World wide web by default um so i think i should make another census and see like what the public's opinion on bugs is
Starting point is 02:02:13 because if still like 30 people think that fixing bugs should be the priority then absolutely i should focus on bugs but if it's like 10 that means that the bugs that were really annoying people have been mostly ironed out. And I can also focus a bit on adding new features. Yeah, yeah. Maybe adding them as plugins. I don't know. Some of them may be better as plugins.
Starting point is 02:02:35 Some of them, maybe not. Hmm. Well, it seems like the project is coming along really well. People are really... Hyper coming along really well. People are really hyper well. We have a joke on the Discord server that everything we do is hyper. So we have a hyper server, we have a Minecraft server, HyperMC. I'm sure that doesn't get a hyper website. We have hyperland, we have Hyperwiki. Well, Hyperwiki makes it sound like it's the wiki for Hyper, not Hyperland.
Starting point is 02:03:13 Someone asked me whether I was planning on expanding Hyperland, and I was like, expanding? Expanding to what? And they said, you know, like a display manager, like a kernel. What? Hyperland bootloader. It's a hyper kernel, and then the hyper bootloader, and then Hyper-D. So like system D, but Hyper-D. Oh, I love that.
Starting point is 02:03:37 That's awesome. Yeah, I do need to get back and actually check on the state of Hyperland on my system. Last time I used it, it was pretty good. And it sounds like it's only gotten better since then. And there are some of those things like the gradient borders and things like that where I didn't even know that was a thing or the plugins and having the river layouts.
Starting point is 02:04:01 Like that's all really cool stuff. And assuming the foundation is solid on my system, which it sounds like it should be, I guess I should probably replace Sway with Hyperland and just see how it goes as, like, a long-term thing.
Starting point is 02:04:18 I have a killer Sway feature planned. Manual tiling plugin. If you actually do that, that would be hilarious. I don't like manual tiling plugin oh my if you actually do that that would be hilarious i don't like manual tiling i think manual tiling is the dumbest thing in the world but horrible i get why people like it if you're one of those people who are very particular about where things are placed i get it i think you're stupid but i get it true I think you're stupid, but I get it. True, true. I mean, technically, with the dwindle layout on Harperland,
Starting point is 02:04:47 you can also do that. Because if you set preserve split to one, then you can just toggle the split of every single window. Hmm, okay. Where it's, like, manual. Why would you do that? I don't know. Well, um, let the people know
Starting point is 02:05:03 where they can find everything you do. Brody, Brody. Best idea. Yes. Monthly Hyperland review. Monthly Hyperland? Look, there's enough content to do it, that's the thing. This month in Hyperland.
Starting point is 02:05:23 You know, you know, you You know the Linux experiment? Brody, you're going to be like, welcome to this month's Hyperland news. No, but I definitely do need to get back and actually check it out and see how it's actually going on. Inshallah, it doesn't crush on you. Yeah, that would be a good...
Starting point is 02:05:46 That would be awkward. Yeah. Yeah. Anyway, let people know where they can find yourself. GitHub. GitHub. Go to hyperland.org
Starting point is 02:06:05 is our website and you can find links to the GitHub to the Discord server, to the wiki there, wiki was the most important thing, you should, like, if you use hyperland, the wiki should be like should be like your holy bible it like, it has everything
Starting point is 02:06:20 you need to know literally probably could survive off of the wiki alone without asking anyone for help you actually read it that's too much for some people but apparently it's better now
Starting point is 02:06:35 and there's also your discord the discord server on the website yes yes anything else to mention on the website. Yes. Yes. Anything else to mention? Anything else that should be of note?
Starting point is 02:06:54 Hyperland, best Wayland compositor ever. Okay, sure. As for me, main channel, Brody Robertson, do Linux videos there six days a week, probably going to do a Hyperland video I don't know, sometime between now and the end of the year, I'll work it out at some
Starting point is 02:07:08 point, um, gaming channel Brody on Games, right now playing through Hogwarts Legacy and Yakuza 0 and if you're listening to the audio version of this, the video version is available on YouTube, and the audio version is available anywhere you find podcasts
Starting point is 02:07:24 just go to a podcast website. It will probably be there. And there is an RSS feed. That's going to be a fun thing. I also have a YouTube channel. I make 90-90 videos. Do you want me to actually link the channel or not? You can link it.
Starting point is 02:07:40 I don't mind. I make 90-90 videos. Block Game Anarchy server from time to time. What is the channel? Is it Vax-ry? Vax-ry. Oh, it is Vax-ry. It's just Vax-ry. Ah, I see it. 10 reasons not to play 2b2t but 90-90. Exactly. I see, I see. Last video was three months ago. Master of shilling. You're too busy working on Hyperland
Starting point is 02:08:06 yes and yes and very much yes cool do you have a final word to say anything to close us off even if I am an asshole I still love
Starting point is 02:08:24 every single one of Linux users but like in the normal sense like brother in Christ not like you know kisses and stuff kiss your on the lips cool and
Starting point is 02:08:39 I'm out

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.