https://old.reddit.com/r/linux/comments/wwsiaf/writing_a_wayland_compositor_is_much_harder_than/ jump to content my subreddits edit subscriptions * popular * -all * -random * -users | * AskReddit * -funny * -worldnews * -pics * -mildlyinteresting * -news * -tifu * -gaming * -todayilearned * -explainlikeimfive * -movies * -TwoXChromosomes * -books * -videos * -aww * -science * -LifeProTips * -Jokes * -askscience * -IAmA * -nottheonion * -OldSchoolCool * -Music * -dataisbeautiful * -Futurology * -space * -Showerthoughts * -gifs * -Art * -DIY * -InternetIsBeautiful * -nosleep * -gadgets * -food * -sports * -history * -UpliftingNews * -Documentaries * -photoshopbattles * -GetMotivated * -WritingPrompts * -philosophy * -EarthPorn * -creepy * -announcements * -listentothis * -blog more >> linux linux * comments * other discussions (1) Want to join? Log in or sign up in seconds.| * English [ ][] [ ]limit my search to r/linux use the following search parameters to narrow your results: subreddit:subreddit find submissions in "subreddit" author:username find submissions by "username" site:example.com find submissions from "example.com" url:text search for "text" in url selftext:text search for "text" in self post contents self:yes (or self:no) include (or exclude) self posts nsfw:yes (or nsfw:no) include (or exclude) results marked as NSFW e.g. subreddit:aww site:imgur.com dog see the search faq for details. advanced search: by author, subreddit... this post was submitted on 24 Aug 2022 92 points (87% upvoted) shortlink: [https://redd.it/wwsi] [ ][ ] [ ]remember mereset password login Submit a new link Submit a new text post Get an ad-free experience with special benefits, and directly support Reddit. get reddit premium linux joinleave769,469 readers 1,176 users here now Please Read the full Rules here before posting or commenting GNU/Linux is a free and open source software operating system for computers. The operating system is a collection of the basic instructions that tell the electronic parts of the computer what to do and how to work. Free, Libre and open source software (FLOSS) means that everyone has the freedom to use it, see how it works, and change it. GNU/Linux is a collaborative effort between the GNU project, formed in 1983 to develop the GNU operating system and the development team of Linux, a kernel. Linux is also used without GNU in embedded systems, mobile phones, and more. These can include things like Android or ChromeOS. GNU itself is also used without Linux, some examples appear in projects like Debian/kFreebsd and Guix GNU/Hurd. * What is free software? * Basic history of GNU/Linux * Linux announcement post from 1991 * The Linux Kernel Join us on IRC at #r/linux on libera.chat! Frequently Asked Questions Recent AMA's * Rocky Linux * PINE64 * Matthew Miller * Tobias Zwick * Greg Kroah-Hartman * For more AMAs, check out our wiki link by clicking here. GNU/Linux resources GNU/Linux Related: * Kernel * GNU * LinuxAdmin * LinuxDevices * FreeGaming / LinuxGaming / OpenSourceGames * LinuxQuestions / Linux4noobs * DistroHopping / DistroReviews * Linux Weekly News * Linux Hardware Distributions: * Arch * elementary OS * Gentoo * openSUSE / SUSE * Slackware * Solus Debian based * Debian * Bunsen Labs / CrunchBang * LinuxMint * MX Linux * Pop!_OS * Ubuntu / Kubuntu / Xubuntu / Ubuntu Budgie Remix, Lubuntu RedHat * Red Hat * AlmaLinux * CentOS * Fedora * NavyLinux * RockyLinux Unique * NixOS * Bedrock Linux with Proprietary Elements * Chrome OS Embedded * OpenWRT Linux on Mobile: * Android + Termux * Jolla (SailfishOS) * PostmarketOS * Replicant * ZeroPhone Movements: * Free Culture * Free Software * Hack Bloc Desktop Environments: * Budgie * Cinnamon * Enlightenment / e17 * GNOME * KDE * LXDE / LXQt * XFCE Window Managers: * awesomewm * Openbox * xmonad * i3 Fluff * LinuxMemes * UnixPorn * UsabilityPorn * WildLinuxAppears Learning/resources * CommandLine * Linuxadmin * LinuxDev * Linux From Scratch * Linux Projects * Software Freedom Law Center * Raspberry Pi Forums * OSdev Creativity: * Blender * FOSSPhotography * FreeCAD * GIMP Chat * Krita Forums/Chat * LibreDesign * LibreOffice * LibreStudio * LinuxAudio * LinuxFilmMaking Help * /r/linuxquestions * /r/bash with [HELP] tag Webcasts: * Level 1 Techs * The Lunduke Hour * Linux Unplugged (formerly Linux Action Show) * Bad Voltage * Hacker Public Radio * FaiFCast Other operating systems: * AROS * BSD * FreeBSD * Genode * Haiku * HelenOS * HURD * Minix * Plan 9 Rules Please review full details on rules here.. All rules will be applied regardless of the number upvotes a post/comment has. * No support requests - This is not a support forum! Head to /r/ linuxquestions or /r/linux4noobs for support or help. Looking for a distro? Try r/findmeadistro. * No spamblog submissions - Posts should be submitted using the original source with the original title. Posts that are identified as either blog-spam, a link aggregator, or an otherwise low-effort website are to be removed. Some reasons for removal are that they contain re-hosted content, usually paired with privacy-invading ads. If there's another discussion on the topic, the link is welcome to be submitted as a top level comment to aid the previous discussion. Please see: r/linux/wiki/rules/ banneddomains * No memes, image macros, rage comics, overdone jokes - Meme posts of any kind are not allowed in r/linux. Feel free to post over at /r/linuxmemes instead. This rule can also apply to comments, including overdone jokes, comment-chain jokes, or other redditisms that are popular elsewhere. * Reddiquette, trolling, or poor discussion - r/linux asks all users follow Reddiquette. Reddiquette is ever changing, so a revisit once in awhile is recommended. Top violations of this rule are trolling, starting a flamewar, or not "Remembering the human" aka being hostile or incredibly impolite. Additionally, sexism/racism/other isms are not allowed. See also: /r/linux/wiki /rules/userconduct * Relevance to r/linux community / Promoting closed source applications over FOSS - Posts should follow what the community likes: GNU, Linux kernel, developers of open source software, or other applications on Linux. Take some time to get the feel of the subreddit if you're not sure! * Spamming self-promotion, surveys, crowdfunding - Submitting your own original content is welcome on r/linux, but we do ask that you contribute more than just your own content to the subreddit as well as require you to interact with the comments of your submission. We set that no more than 10% of your posts should be your content. Please be aware that this does not supersede other rules. Additionally, surveys for your blog/news source/paper/own use are not allowed. Please see /r/linux/wiki/rules/crowdfunding for those crowdfunding.. * No misdirecting links, sites that require a login, or URL shorteners - In short: if your link doesn't go right to the content it will be removed. Sites that require a login to view the content are not allowed in r/linux. Example: A private Facebook post or a news organization that doesn't have free article views. URL shorteners and links that misdirect users to ads/jokes are also banned. See a list here, although the mods will make a decision on a per domain basis as needed: /r/linux/ wiki/rules/banneddomains * No NSFW - No NSFW links or images without mod approval. No discussion that is overly-suggestive to what is normally considered NSFW. * Non-useful Image Upload/Fluff Image - Images of "Linux in the wild", plushies, Tux, and more are not encouraged for posting as a top level submission. If necessary, this can apply to comments too at mod discretion. The image/video upload feature is for posts regarding features/guides/etc. See also: Meme rule. See even more subreddit and external links over at the supplemental page This subreddit is fan ran and not affiliated with any organization. a community for 14 years MODERATORS * message the mods * Moderator list hidden. Learn More discussions in r/linux <> X 1850 * 181 comments Upscayl - Linux first AI Image Upscaler 91 * 28 comments Writing a Wayland compositor is MUCH harder than it should be 359 * 22 comments Cemu is now open source 138 * 63 comments Ctrl-w is the bane of my existence 116 * 25 comments The bottles is amazing! 48 * 9 comments The Future of NGINX: Getting Back to Our Open Source Roots 13 Oil 0.12.4 - User Feedback 29 Fosshost - We need to let you know about some important changes we are making 8 * 4 comments Linux on Thinkpad X13s? * 2 comments The bundled packages issue of Ubuntu Welcome to Reddit, the front page of the internet. Become a Redditor and join one of thousands of communities. x 91 92 93 DiscussionWriting a Wayland compositor is MUCH harder than it should be (self.linux) submitted 3 hours ago * by push_rbp Don't get me wrong. I understand that, over the course of its long existence, Xorg has slowly but surely become an unmaintainable mess. I understand that much of what was deemed essential when Xorg came to life -- like X Logical Font Description, primitive rendering etc -- is no longer used, except in very old programs. I understand the need for an X replacement. But after years of trying to write a Wayland compositor, I've come to the conclusion that Wayland is not a suitable replacement for X. Surely when the Wayland team came up with weston, its reference implementation, they should have noticed the code was far larger than it was reasonable to expect from implementers. But surely they would be able to re-use much of weston's code, right? Soon enough it became clear the answer was no. They did create libweston later on, but as its own documentation admits, "In current form, libweston is an amalgam of various APIs mashed together and currently it needs a large clean-up and re-organization and possibly, a split into class-specific files." Just reading this was enough to convince me to stay as far away from libweston as I possibly can. Then, you might have expected them to go back to the drawing board and come up with something better. Re-inventing a graphics stack is no easy matter by any means, and surely people would understand that the first attempt had failed, and had to be re-designed. Instead, they pushed on and insisted on their error. X is a gigantic code behemoth, and it seems that has led Wayland creators to err on the side of minimalism. Unfortunately, Wayland is far too minimal to be actually useful. The truth is, if you want a Wayland compositor, Wayland is just one of the several libraries and systems you'll have to deal with. You'll also need to deal with DRM, libinput, logind, D-Bus... the list goes on. And that's not to mention the Wayland protocol itself refused to incorporate many useful use-cases: screen capture? Extension. Clipboard support? Extension. Detecting lack of input for some time to take an appropriate action (e.g. lock the screen)? Extension. It looks as though they were not willing to add these actual use-cases to Wayland, lest it would corrupt their general, pure library. But a general solution that doesn't even properly solve the problems where it's normally used barely deserves to be called a solution. But not all is lost. We have wlroots, right? I don't mean to criticize wlroots -- it made it so the task of creating a Wayland compositor is actually feasible for smaller teams. I'm sure that if it wasn't for it, GNOME and KDE would have been the only ones to ever implement server-side support for Wayland. But the fact is, even using wlroots, creating a Wayland compositor is still a daunting task. Take a look at sway's code and you'll see how much wlroots leaves for compositors to do: you have to take care of input and output devices being plugged / unplugged, you have to manage seats, you don't have wlroots functions to get or set the currently focused window -- hell, wlroots doesn't even give you a type to represent graphical windows. Even using wlroots, Wayland compositors still have a lot of non-WM (window management) stuff to care about. I've tried to remedy this situation by creating a new library on top of wlroots, one that would be made by refactoring sway code to making most of its non-WM and non-sway specific code readily available. My attempt was called wlstem. I've spent a year or so refactoring sway code, only to come to a point that is far, far from where I wanted this library to be. For a few months now, I've been telling myself I should get back to work on wlstem, but I haven't, and quite frankly, I won't, because I know full well it might take two or three years to finally get all the features I wanted in wlstem. Not to mention wlstem is using an outdated version of wlroots, which would be even more outdated when I finally finished. And that's before I even wrote a single line of the compositor itself. So today I'm officially giving up. I've decided I no longer care about Wayland. I'll either make a new X window manager or take one of those extremely configurable ones, like xmonad, and configure it until it does what I want it to. And to anyone who wishes to write a Wayland compositor, heed my warning: it's not impossible (thanks to wlroots), but it's honestly not worth the hassle. EDIT: small corrections for the sake of clarity * 28 comments * share * save * hide * report all 28 comments sorted by: best topnewcontroversialoldrandomq&alive (beta) [ ] Want to add to the discussion? Post a comment! Create an account [-]Nefsen402 41 points42 points43 points 3 hours ago (4 children) Of course you need to write a lot of code to have a working compositor that integrates with input systems, clients, DRM/KMS subsystem, and libseat. You need a monstrous amount of code to even get a bootlable system - just take one look at the linux kernel. However, as you mentioned wlroots does slim that down quite a bit and new libraries and helpers and entering wlroots to slim that even more. Latest slimming effort for sway: https://github.com/swaywm/sway /pull/6844. However, to be frank, the size of sway is minuscule. Really only a couple thousand lines of code which in reality isn't all that much. What grinds my gears about this analysis is that this article has nothing to do with the Wayland protocol itself only the surrounding library code that is still maturing. I applaud you for trying to help with those efforts but as far as I could tell, you have not been active on wlroots development where new contributors creating new helpers and rewriting entire subsystems is really needed. I took the effort of rewriting rendering in sway, next I'll rewrite the unmaintainable input code in a way that doesn't crash all the time. wlstem IMO is not the way forward for that which as far as I can tell is mostly a copy paste of some stuff in sway. The sway code base has mostly been ignored by upstream wlroots because it has gotten into a state where it's nearly unmaintainable. Fortunately those unmaintainable systems are really small on the grand scheme and can be rewritten within the span of months unlike xorg or the x11 protocol. * permalink * embed * save * report * give award * reply [-]push_rbp[S] 18 points19 points20 points 2 hours ago (2 children) That's fair criticism. To be clear, even I no longer think wlstem is the way forward. It was more of a failed attempt that I've only mentioned to show I have genuinely tried to make my own compositor, before claiming it's too difficult. I disagree with sway being minuscule though. And while it may seem that none of this has to do Wayland protocol, I would argue it is exactly because they chose such a small protocol/library to replace X that we're now struggling to re-implement "the good parts" of X, if you will. * permalink * embed * save * parent * report * give award * reply [-]subdiff 5 points6 points7 points 1 hour ago (1 child) I would argue it is exactly because they chose such a small protocol/library to replace X that we're now struggling to re-implement "the good parts" of X On the contrary I believe it was a good decision to purposefully limit the size of the core protocol and library to a minimum. This way the risk of potential feature creep and technical debt was reduced while the protocol also could find success in embedded use cases. The problem we're experiencing now came more from everything what followed or rather not followed. Downstream projects were not ready to switch from consumers to producers of generic solutions building up on the smaller Wayland pastures. And to be frank the code structure as well as quality of these projects also didn't allow that. * permalink * embed * save * parent * report * give award * reply [-]Barafu [score hidden] 25 minutes ago (0 children) I am afraid it may turn into a clone of Gnome situation: people praise and donate to the core project, but actually for most of the users it is useless without plugins. Meanwhile, the plugin developers are mostly ignored and sometimes accused of parasitism, they have no voice in the development of the core project. * permalink * embed * save * parent * report * give award * reply [-]rulatore 1 point2 points3 points 1 hour ago (0 children) I cant wait for this to get merged, ever since those demos, they look pretty nice. I'll try to build that branch on the weekend. Last weekend I tried wlroots, but I'm afraid fedora dont have most of the packages, so probably will have to build stuff to build stuff Thanks for all the work * permalink * embed * save * parent * report * give award * reply [-]daemonpenguin 12 points13 points14 points 3 hours ago (1 child) Mir might be a good workaround for this as it implements Wayland. Hopefully it'll either save people from writing their own Wayland implementation or provide the low-level building blocks: https:// discourse.ubuntu.com/t/developing-a-wayland-compositor-using-mir/ 30112 * permalink * embed * save * report * give award * reply [-]push_rbp[S] 1 point2 points3 points 1 hour ago (0 children) This definitely looks promising, thank you. * permalink * embed * save * parent * report * give award * reply [-]wiki_me 7 points8 points9 points 2 hours ago (1 child) There is also smithay which is used by system76 for their new wayland compositor. wayfire was also intended to be a "common base" (And as far as i know it still is) , from it's release announcement: Having each DE/X window manager write their own compositor would mean a lot of useless, duplicated effort, not to mention most of them just don't have the resources for such a huge undertaking. wlroots actually does a great job in this respect - it provides a very flexible base for building a wayland compositor, abstracting away many of the low-level details. However, it still cannot make writing a compositor too simple, and for a good reason: there is a lot of desktop-specific functionality which just can't go into a generic library. Here's the place where Wayfire fits in: it aims to be a base on which a lightweight wayland DEs can be built. By being split into plugins (which mostly control the appearance/window-management part) and core (providing rendering, workspaces, etc) Wayfire makes it possible to build a DE with minimal effort. Since the beginning of the project, Wayfire's goals have also expanded to provide a rather minimalistic (but functional!) desktop environment. There was (is?) also a project called wltrunk intended to do what you want, but it appears to be inactive. If you want to implement something like that, i would contact sway about starting to gradually moving stuff a higher level library, doing a giant fork seems like a bad idea. You might want to post this to r/wayland , some wayland developers seem to hang out there. * permalink * embed * save * report * give award * reply [-]push_rbp[S] 0 points1 point2 points 2 hours ago (0 children) Thank you. I had heard about some of these but didn't know wayfire had this intention of being a common base as well. * permalink * embed * save * parent * report * give award * reply [-]DesiOtaku 1 point2 points3 points 3 hours ago (1 child) The funny thing is that for my production system, I would really benefit from Wayland. However, the big thing that is still missing is KDE's implementation of libinput as it still doesn't have a way to calibrate resistive touch screens. Until then, I am stuck using X11 hacks for my production system. * permalink * embed * save * report * give award * reply [-]natermer 3 points4 points5 points 1 hour ago (0 children) I occasionally use Gnome Wayland with Resistive touch screens. Calibrating is a PITA, but it's still possible. I don't use KDE. However it should still work since it's done at the libinput/dbus level and not at the DE level. I haven't done a calibration for a while and I don't remember exactly what I did, but based on my notes I run xinput_calibrator in verbose mode, take the output from that and do math on the click results. I'll have to try it again and get better steps, but I don't have time right this moment. Here is my python code for doing the math: import math click_0_X=157 click_0_Y=141 click_1_X=855 click_1_Y=146 click_2_X=154 click_2_Y=656 click_3_X=860 click_3_Y=655 screen_width = 1024.0 screen_height = 768.0 a=(screen_width * 6 / 8) / (click_3_X - click_0_X) c=((screen_width / 8) - (a * click_0_X)) / screen_width e=(screen_height * 6 / 8) / (click_3_Y - click_0_Y) f=((screen_height / 8) - (e * click_0_Y)) / screen_height print(a) print(c) print(e) print(f) Which then outputs the numbers I need. Then I put the following in / etc/udev/rules.d/98-touchscreen-cal.rules ATTRS{name}=="Fujitsu Component USB Touch Panel", ENV{LIBINPUT_CALIBRATION_MATRIX}="1.0924608819345663 0.0 -0.0424964438122333 0.0 1.1206225680933852 -0.08073929961089495" You'll have to figure out the name for your panel, resolution of your display, and adjust according. I've done this in Arch and in Fedora. * permalink * embed * save * parent * report * give award * reply [-]subdiff 6 points7 points8 points 2 hours ago (0 children) You might be interested in the KWinFT project I started few years ago which aims at providing such high-level libraries in the long run. Development is slowed down a bit at the moment because I can't work on it full time anymore but it's still progressing with unpaid development efforts quite nicely. Just today I created a massive MR for redesigning core internals to create the final library structure employing compile-time dependency injection. So you're not the only one who identified the lack of high-level libraries as a problem but for different reasons it is a hard one to solve and various smaller projects can only do so much with volunteer work while the big, funded projects don't care enough about the problem to focus on it. * permalink * embed * save * report * give award * reply [-]GujjuGang7 0 points1 point2 points 2 hours ago (3 children) Well it's kind of the point isn't it? It's a protocol that can be implemented in a myriad of ways. It's actually a strength imo. Large groups can make unique design decisions on how to implement features rather than depending on some library * permalink * embed * save * report * give award * reply [-]push_rbp[S] 7 points8 points9 points 2 hours ago* (2 children) This sounds very nice in theory, until you realize how much code you have to write to "make unique decisions" and realize it's not practical, unless you have a gigantic dev team like GNOME and KDE. I would much rather depend on some library like wlroots -- and even that wasn't enough * permalink * embed * save * parent * report * give award * reply [-]GujjuGang7 -4 points-3 points-2 points 1 hour ago (1 child) I like having the 3 big compositors: mutter, kwin and wlroots-based. X11 has way too many windowing systems which often diluted the quality. Think back to leftwm stumpwm etc. * permalink * embed * save * parent * report * give award * reply [-]push_rbp[S] 9 points10 points11 points 1 hour ago (0 children) I completely disagree. The number of windowing systems with X11 reflected the large amount of different ways and paradigms in which one can arrange and display windows. If you don't like this or that WM, just don't use it. But if it's not feasible to create a Wayland compositor, and none of the existing ones cater to your needs, what are you going to do? * permalink * embed * save * parent * report * give award * reply [-]gnosys_ 1 point2 points3 points 1 hour ago (4 children) my big question: why on earth should there be more than one standard compositor? seems like a ridiculous duplication of effort * permalink * embed * save * report * give award * reply [-]push_rbp[S] 8 points9 points10 points 1 hour ago (1 child) Wayland compositors are also window managers. The reason for having more than one is exactly the same as the reason for having more than one X window manager -- there are lots of ways of managing windows. I absolutely agree that there's no good reason to re-implement the non-window-management parts of a compositor. This is actually part of the problem: even with wlroots, you still need to re-implement lots of non-WM stuff before finally getting to the WM part that actually matters. * permalink * embed * save * parent * report * give award * reply [-]Artoriuz [score hidden] 56 minutes ago (0 children) Do you really think Wayland devs gave a shit about this when they decided how the protocol would look like? I'm sure they just looked at what MacOS, Windows and Android were doing, and then decided that X needed a modern replacement (which it really did). There's a very big intersection between the devs working on Wayland, Gnome, GTK, Libinput, D-Bus, Pipewire, etc. These are all projects that are made to work well together, they're all part of the RedHat/ FreeDesktop ecosystem. It's not that much of a stretch to say Wayland was designed from the ground up to be Gnome's new display server protocol, and these guys pretty much control what gets approved (https://gitlab.gnome.org/ GNOME/mutter/-/issues/217 as an example). They couldn't really care less about third parties, their argument against server side decorations is that you should just use GTK. * permalink * embed * save * parent * report * give award * reply [-]Blunders4life [score hidden] 50 minutes ago (0 children) Because not every computer user is the same person and thus different people have different needs and use cases for their computers. Being able to have a choice that suits the user is far nicer imo than only being able to use one thing that is imposed by someone else. If you are only referring to some specific part of the compositor, it might or might not be better standardized depending on what part it is. * permalink * embed * save * parent * report * give award * reply [-]natermer 2 points3 points4 points 1 hour ago (0 children) With X windows you have dozens of different X Servers. Many open source, many proprietary. And literally tens of thousands of Window manager. Almost none of it is compatible with most of it. Linux users have benefited from the fact that the rest of the world has long abandoned X Windows and the modern toolkits put herculean efforts into avoiding the use of X11 as much as possible to give a somewhat modern feeling desktop. So you've never seen how the sausage has been made. Just the finished product of thousands of burned out developers. * permalink * embed * save * parent * report * give award * reply [-]Ariquitaun -5 points-4 points-3 points 3 hours ago (5 children) Until you end up with a mixed dpi system or run into X code rot bugs that nobody will fix. * permalink * embed * save * report * give award * reply [-]push_rbp[S] 10 points11 points12 points 3 hours ago (4 children) You haven't read even the beginning of I wrote, have you? I understand X needs a replacement, but quite frankly, Wayland is not it. * permalink * embed * save * parent * report * give award * reply [+]Ariquitaun comment score below threshold-9 points-8 points-7 points 3 hours ago (3 children) I have been using sway for 3 years now and I beg to differ. * permalink * embed * save * parent * report * give award * reply [-]moonsnotreal 10 points11 points12 points 3 hours ago (2 children) The end user experience may be fine, but op is talking about the dev side of making a compositor * permalink * embed * save * parent * report * give award * reply [-]push_rbp[S] 8 points9 points10 points 3 hours ago (0 children) Exactly. I mean, I understand if the text is TL;DR but this is clear right from the title... * permalink * embed * save * parent * report * give award * reply [-]Ariquitaun -2 points-1 points0 points 3 hours ago (0 children) The dev is arguing that because they're having a hard time writing a Wayland compositor this somehow means Wayland is not fit for purpose. Anyone's. * permalink * embed * save * parent * report * give award * reply [+]pnarvaja 1 point2 points3 points 1 hour ago (0 children) I have also been looking into this and I agree with you. It seems that the wayland group have not made standard based on a real system so they dont get what is needed from such protocol. They should have joined a team like kde to see what a real de needs and work around that. Also a single compositor should be the way to go. Just one compositor that does everything, it is fully customizable and can be compiled to meet a config without extra code. Another way would be a compositor plug-in standard so every widget runs on every compositor Graphics on linux are such a mess that made every developer choose windows or Mac. Choice is good until it makes application support a pain. * permalink * embed * save * report * give award * reply * about * blog * about * advertising * careers * help * site rules * Reddit help center * reddiquette * mod guidelines * contact us * apps & tools * Reddit for iPhone * Reddit for Android * mobile website * <3 * reddit premium * reddit coins Use of this site constitutes acceptance of our User Agreement and Privacy Policy. (c) 2022 reddit inc. All rights reserved. REDDIT and the ALIEN Logo are registered trademarks of reddit inc. Advertise - technology [pixel] p Rendered by PID 83 on reddit-service-r2-loggedout-7f554874ff-qjhrm at 2022-08-24 23:02:57.940403+00:00 running 6c805f8 country code: US.