







Most likely yes, and if it works, this is one of the easier options (without needing to develop anything or change workflow). However, not all devices work properly with this. iPhones on iTunes are particularly difficult, as (iirc) they sometimes change device ID immediately after connecting/initializing. If you pass through a specific “USB Host Device”, an iPhone connected to a Windows VM with iTunes may not work.
If you pass through an entire USB controller, like an extra PCIe card or one from your motherboard (if it has multiple), this method should work on any USB device with any Windows tools/drivers.
If a Linux native method exists (which it does according to other comments), that is usually easier to set up than a VM with USB passthrough, but it might change the workflow.
You need a couple things:
First get your kernel headers, this is easy enough, but varies based on which kernel you have installed. The format of the package name is {kernel}-headers. If you have the linux kernel, get linux-headers. If you have linux-lts, get linux-lts-headers. If you’re not sure on this, the command pacman -Q | grep linux searches for installed packages containing linux in the name. If you have multiple kernels installed, get the headers for all of them.
Then install (from AUR) at least nvidia-580xx-dkms (display out) and nvidia-580xx-utils (Acceleration, like 3D and video decoding). If you have Steam or play Windows games under Wine, be sure to get lib32-nvidia-580xx-utils too.
Also of note is the order in which you install things. Having the kernel headers installed is important for the DKMS modules to install succesfully. If you already have nvidia-580xx-dkms but were missing your kernel headers, you should reinstall it after installing your kernel headers.
It’s an old blog post, but this doesn’t look very good for System76. At the same time, GNOME (and GTK) is refusing to implement basic features. Stuff like server side window decorations, because they can’t “tolerate” SSD. The hard enforcing of Adwaita theming might make sense in GNOME, but on devices not 100% in the GNOME ecosystem, libadwaita apps have awful UX. I do not want shit like Zenity to take up 50% of my screen space for 3 words and 2 buttons, yet libadwaita enforces it.


As long as you use an AUR helper to update your system (replace pacman -Syu with yay -Syu), and keep the kernel EOLs in your calendar, it shouldn’t be constant babysitting. Updating a (non -bin) kernel from the AUR requires compiling the kernel, which makes updates take way longer, but doesn’t require extra manual maintenance.
You can find when a kernel is EOL on kernel.org. When your chosen LTS goes out of support, you should update (for security reasons). You’ll have to hope the 580 nvidia drivers still support the newer kernel version you move to.
This path allows you to run your setup for as long as possible on Arch, when you run into issues with nvidia support, so does every other distro.


Unless Arch’s lts kernel switches to a newer lts (in a year or two?), you can run nvidia 580 dkms modules and the lts kernel with basically no maintenance.
After that, you can consider something like linux-lts66 from AUR, or switch to another distro if desired. The first option requires compiling the kernel (no maintenance, just processor time), and will keep your system security patched until the last LTS kernel supported by nvidia 580 modules stops being supported.
Whatever kernel you choose, ensure you have the -headers, like linux-lts-headers. That way, the nvidia-580xx-dkms package can install properly.
If you haven’t yet, look into an AUR helper like yay or paru. These significantly improve quality of life when using AUR packages.


There’s always the option of gathering device info first, then using the appropriate driver. Either the SSD is in a “known supported models” list, or it reports support for whatever feature the new driver needs.
It’s technically possible that straight up trying an unsupported driver can cause physical damage, but this can be avoided by carefully selecting the driver. From MS pov, they’d have to extensively test this driver on a bunch of SSDs and configurations, but it would lead to a performance improvement.


And obviously, there’s been no possible way to try loading the modern driver and if that fails, falling back to the legacy one.
This is once again Microsoft refusing to improve performance, because that doesn’t directly increase profits.
There is a way, but no point in doing so. As such no OSes offer such an option out of the box. For file encryption to be of any use, you need there to be some kind of authentication before being able to access those files (like a password).
The easiest method would be to encrypt the entire drive, as modern Linux and Windows both support using the TPM for automatic unlocking. With that, set up standard user autologin and you’ve made the drive encryption useless.
The version from their F-Droid repo, SchildiChat[f], has no Google libraries. The version from the playstore includes proprietary blobs to support Firebase Cloud Messaging (Google notifications system). Exodus may be misidentifying this as “Google Admob”, which is not present in the app.


No, not really. “Casting” through the netflix app basically just turns your phone into a remote for your TV. The TV still plays videos from Netflix directly, using the Netflix app (or website). Casting using Google or Apple’s solution casts to a proprietary device with all the content protections functional, just like using the app on those devices.
The content protections are bypassed way easier on a computer by using the website and some black magic. The removal/paywalling of casting is purely removing convenience from the user that had barely any financial impact on the company.
Or the service. Software that goes out of its way to ensure you paid, and poses limitations on the paying customer. Like always-online DRM for video games.


The difference is what code runs on your device. If proprietary libraries are included, F-Droid won’t build it, and it’s not allowed in their repository. There’s a lot to say about whether a FOSS app that relies on proprietary network services is truly “free”, there’s no arguing that an app with proprietary code blobs is “free”.
Take for example an app like NewPipe. The application itself doesn’t include proprietary code, but it contacts YouTube, a proprietary Google service. With the app itself being open source, you can tell exactly what it is doing on your device, and what information is sent over the network. Comparing that to something like Signal, which includes proprietary Google libraries, you’d have to decompile and reverse engineer it to try and figure out what it’s doing.
If you have a FOSS library that interacts with Google Play Services or microG to enable FCM, it would (probably) be allowed on F-Droid. (I’m not on their team, I can’t make a definitive statement about this).


“No Google Play services” falls under “app must be FOSS”. The average publicly developed open source app should not have much trouble getting into F-Droid if the developer wants to. Google Play services consists of several components, one of which is a proprietary library included in apps using it. If your app includes proprietary code, it is not FOSS.
If Signal decided a build without proprietary blobs isn’t worth it, they’re not getting into F-Droid. Forks of Signal exist that remove the Google Play services build requirement, those are in F-Droid.


This used to be an issue, but has been resolved in most major applications. Are you on an “app” version of slack? Try updating it, or try using an up to date webbrowser like Firefox, or anything based on Chromium if you prefer.


With either a physical security key (which no “average user” owns), or a damn numeric pin, which is vastly less secure than a password of the same length.


The documentation you were looking at might’ve been the Matrix specification.
There is documentation on how to host a Matrix server, I’d honestly recommend using containers (maybe docker compose) for this one. It can definitely be confusing setting up a service like a Matrix homeserver for the first time.
As for other people finding it, you can (and should) make your homeserver invite-only. It’s also possible to disable federation, which makes the server self-contained. It will not accept incoming connections from other servers, nor make outgoing connections to other servers.
This does mean everyone you want to talk with has to be on your homeserver. There are probably better options available if you want to avoid Matrix’ federation issues, like Spacebar.
To scroll in menus or desktop, sometimes virtual menus for games requiring more buttons


Web push for notifications. Sure, there’s privacy implications, but it’s already near universal. There’s other options like ntfy.sh if you’re not limited to existing infrastructure. UnifiedPush also works well as a protocol for push notifications.
Everything else can be handled in-app. Password reset will have to be done by an admin, though it’s completely doable for a small selfhosted service.
Some of the downsides OP listed may or may not always apply, but there are always downsides. Either you have to set up your own email server (with extra maintenance burden), or your “selfhosted” app suddenly relies on third party infrastructure, like your email provider (or those of other users on your instance).


I’m going to assume you’re unable to see the embedded image. I didn’t add alt text, that’s my mistake.
Below “Besides”, there is a screenshot of a tweet by user @haydendevs stating “this is who you’re arguing with online” and an attached image of a series of dots connected by lines. This is the (overused) visual representation of a “neural network” in machine learning. The meaning of the image in this context is to state you are arguing with bots or AI online. I used this twitter screenshot as an attempt to make a joke of the fact the OP reads like AI-generated text.
I will edit the alt text in my comment above.