Tech Over Tea - Lead Developer Of Hyprland | Vaxry
Episode Date: March 29, 2023Hyprland 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)
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.
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
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.
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.
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
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
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
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
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?
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
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
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.
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.
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
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.
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.
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.
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,
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
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
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.
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
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.
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.
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
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?
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?
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.
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.
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,
maybe because 1080Ti was the
bottleneck
I don't know
yeah sure
something
but
but like
I made Hyperland
it was like
the beginning of
March
2022
because
it was like
I think the 14th
or 13th
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
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
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.
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
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
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.
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
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.
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
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.
Oh. Oh.
Oh god. I have
2000 hours in Neptunia.
Yup, absolutely.
Great game.
So
these are top levels
and then because in
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.
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
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
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.
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
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.
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,
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.
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
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.
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.
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.
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
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
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,
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,
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.
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
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
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,
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
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.
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
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
so
the thing is
my first encounter
with
when it comes to issues
they usually reply
with something that makes sense
and then
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.
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
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.
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.
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.
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
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.
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.
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
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
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
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.
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
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.
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
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
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
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
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?
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.
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,
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.
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.
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
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,
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.
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.
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,
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
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.
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
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
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.
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.
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.
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
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?
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.
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
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.
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
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.
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,
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.
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++,
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.
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
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
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
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.
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.
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
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,
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.
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
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
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.
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
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
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,
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
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
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-
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
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
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.
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.
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
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
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.
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
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,
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.
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.
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
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?
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
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.
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
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
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
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
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
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.
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.
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
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
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
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,
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
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,
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,
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
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
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
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.
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
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?
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
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.
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...
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.
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.
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.
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...
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
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
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,
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
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
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
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.
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.
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.
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.
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.
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.
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
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
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
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,
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.
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.
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
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,
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.
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.
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,
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...
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
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
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.
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.
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.
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
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
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
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
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.
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.
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.
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
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
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
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?
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
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
decoration for that
yeah
someone actually
roast people
we have one guy that
maintains the Hyperland community
like
GitHub
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
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
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
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
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,
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.
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
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
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
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?
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,
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.
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
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
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.
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
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,
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.
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.
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
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
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.
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.
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.
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...
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,
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.
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
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.
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
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.
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
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.
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.
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
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?
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.
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
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.
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
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.
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
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
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.
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,
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
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
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.
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
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
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
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.
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.
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
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
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.
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,
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.
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
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.
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
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.
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.
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.
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.
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.
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,
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
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.
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...
That would be awkward.
Yeah.
Yeah. Anyway, let people know
where they can find yourself.
GitHub.
GitHub.
Go to
hyperland.org
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
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
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?
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
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
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.
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
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
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
I'm out