• 1 Post
  • 48 Comments
Joined 1 year ago
cake
Cake day: June 25th, 2023

help-circle





  • At the very beginning in early 90’s Linux adopted X11 implementation that was XFree86. It was obvious and pragmatic move, because Linux was UNIX clone with full POSIX standard compatibility, and X11 was already there for almost a decade. Porting it allowed for having graphical interface very early on (Linux started in 1991, X11 support was added one year later) and allowed all the contemporary UNIX software to be easily ported to Linux.

    X11 however was designed with completely different needs in mind, as UNIX machines were mostly mainframes or powerful workstations and not home computers. It was about a lot of features that make no sense in this day and age (like network transparency, drawing primitives, printing capabilities, font rendering etc) and its design aged like milk. Xorg (that was fork of XFree86 started after license change) was implemented in a way that allows keeping compatibility for the time being with many issues being worked around and the old solution being effectively forcefully framed into modern use. It’s basically huge

    Wayland started as an idea on how to do graphics on Linux (and other UNIX systems) without X, but it was never meant to be drop-in replacement. That being said, it’s vastly incompatible and the shape towards having Wayland desktops is long process of gradual implementation of new protocols to make it complete eventually.

    Making Wayland possible took redesign of the OS itself. In old days, Linux didn’t think much about graphics and it was the monolithic X server that took responsibility of things like loading video drivers, setting screen modes or pushing stuff to video memory. Wayland was all about split of X’s features outside of X to gradually remove the dependency, so now the kernel has native system interfaces like kernel mode setting, direct rendering manager and so on. It’s not only Wayland taking advantage of it, as the same infrastructure is now used under X too.

    Your experience wasn’t much different because it wasn’t meant to be. Desktops that are ported to Wayland are very good at abstracting things that are specific to both (otherwise completely different) display systems. You can gradually find about some things being different over time as you dive deeper.

    There are certain limitations of X that Wayland doesn’t have:

    • X cannot handle multiple DPI settings, so it is only possible to set one scaling factor globally for all monitors no matter their size/pixel density
    • X could never properly handle multiple refresh rates for different monitors
    • No way for proper HDR support on X
    • VR is not really a good idea on X

    On the other hand, X is very open to the user and applications, providing all sorts of information about opened windows and sniffing input globally by any client (focused or not) is a feature. In 1984 no one really thought cybersecurity will be important factor. So on Wayland:

    • App can’t keylog keyboard presses or mouse movements unless its window is focused (global shortcuts are still unsolved issue, WIP)
    • App can’t directly control its window position and size as it is only controlled by compositor (the idea is to introduce protocol for asking compositor on window positions relative to some area, it’s WIP)
    • App cannot get image of screen or window (this is solved via PipeWire video capabilities and xdg-desktop-portal)
    • Any GUI automation is compositor-specific, at least for now.

    For those and other reasons (like availability of desktop environments and window managers), some still prefer Xserver.







  • Traditionally on Ubuntu-based systems, those packages get installed as dependency of a meta package that pulls the entire desktop experience, for instance on Ubuntu this is ubuntu-desktop (the default GNOME experience), kubuntu-desktop (the KDE Plasma experience) and so on. I believe this won’t be much different for Mint.

    The consequence of uninstalling such package is removal of the meta package. You can totally do that, but then the dependencies (so the cinnamon desktop with everything that makes it Linux Mint) are due for autoremoval of no longer needed packages (so apt autoremove would remove it all) unless they’re marked as explicitly installed and needed by you. Unless they’re “optional” dependencies. It’s hard to tell precisely what will happen without access to actual Linux Mint, but in theory you can just cherry pick whatever you want from that big chunky meta package, or remove it all and only reinstall stuff that interests you.

    I personally wouldn’t bother and just set my default apps to my preference and if the app menu is too crowded I’d hide them using something like Alacarte (old school GNOME menu editor). That way you know that full system upgrades wont cause any problems, and you effectively replace apps as you desire.

    And it’s true that for lightweight system with only what I need, something like Debian or Arch would be much better. My experience is that usually modifying easy-to-use distribution is (while perfectly possible) more effort than building one from the ground up.






  • Yeah, Flatpak installing user-space driver for itself is unfortunately not solvable until there’s open source driver that is part of the Mesa project. Every time you update the driver in your system, Flatpak must update its nvidia-utils too, because their versions must match exactly. For Mesa drivers, Flatpak also installs the drivers as Flatpak, but they’re compatible back and forth and it only updates when it ships new version.

    The cleanup should be more automatic, but try

    flatpak uninstall --unused
    

  • Because it always worked on X11 and Mint Cinnamon is just that. I used NVIDIA graphics on X11 in 2007 and, apart from the extra dkms driver that could break at times, it was fine, and much better anyway than ATI/AMD with proprietary fglrx driver. Rest in piss son of a bitch.

    The question was what would I recommend for Wayland. Only the brand new 555 driver combined with most recent compositors (and other packages like mesa, xwayland,…) offers decent NVIDIA experience. It’s a matter of new distro releases around this fall.



  • Well, if your GPU is NVIDIA, you will also need a bleeding edge rolling release distro for now. Other than that, anything that ships recent version of KDE Plasma or GNOME (the first one handles Xwayland with DPI scaling a bit better imo and is generally more functional)

    Garuda (Arch-based distro) is worth looking at, but has a ton of UI customization that I personally don’t like and, same as with Manjaro, I’d spend some time on cleaning it up to more vanilla state.

    Endeavour is cool option as well, but other than GUI installer, it provides you with Arch base and is purely terminal-centric.

    OpenSuse Tumbleweed - personally never liked RPM based distros, and Zypper (the package manager) is pretty slow, but the distro itself is beloved for being great balance between bleeding edge and stability and set of GUI tools for system management.

    Fedora (defaults to GNOME but has decent KDE spin) is great option for a workstation, but it has couple of advanced configurations that not everyone needs (like SELinux getting in your way sometimes) and because it’s very concerned about licensing, you might need to manually add extra video encoding/decoding drivers and media codecs with royalties.

    Nobara is modification of Fedora that comes pre-packed with gaming related stuff. It’s pretty cool, but in my experience it tends to ship experimental packages with regressions.

    Last but not least, if you’re patient enough to read through some documentation and follow guides step by step, can invest some time and want to learn, go with Arch Linux. The ISO ships now with text-based archinstall installer that guides you through basic install and brings fairly functional Linux system out-of-box EASY, but still pretty bare bones without any assumptions on what you’re going to use it for and how. Everything that you need (like gaming, bluetooth, printing, file sharing…) has its Wiki pages with thorough explanation in form of step-by-step guide. It’s all about installing packages and changing config files, it’s not doing anything automatically for you.