NOTE: I was told of another method to handle theming using flatseal, that should be less prone to breakage in apps: instead of adding the GTK_THEME override in .bash-profile, and giving flatpak access to the .themes folder, you can add the 2 following overrides for all apps in flatseal in the "other files" section: xdg-config/gtk-4.0:ro xdg-config/gtk-3.0:ro This will let flatpak read the current theme in your config, and change it for all flatpak apps. Should be more resilient if things change in GNOME, and shouldn't break too much stuff. As awlays, though, theming is a "hack" so it's never 100% perfect. Oh, and also, if you want to secure and monitor your internet connection, you can download Safing's Portmaster and take control of your network traffic: safing.io
Yeah I was playing with vanillaOS and found it hilarious that the flatseal icon is a roll of scotch tape 😂 so accurate! I need to take baby steps with the container OS'es there is definitely a very steep learning cliff I mean curve
I love the permissions popup idea! When I installed Bottles I had no idea that it only had access to ~/Downloads by default so when I downloaded an app, ran it to test if it works, then moved it to an apps folder, I was very surprised to see a WINE error message. No warning from Bottles or Flatpak that somethign was wrong. I spent a good half hour troubleshooting before I thought of checking the permissions in Flatseal - something that came to mind only because YOU mentioned Flatseal in a previous video. Had I not watched it, I would have no idea what was going on or how to fix it!
multiple people pointed out that permissions should've been realtime from the get go but the committee working on it refused by never even really acknowledging the question. it's one of my biggest gripes about flatpak. I hate having to launch flatseal to change/fix permissions. it's better now though but the solution has been to do more broader permissions from the get go. that said, managing flatpak is much better than snaps, appimages and even system packages at times.
Unfortunately, I do not think that is so easy to implement from a programmers perspective. A much easier and cleaner way to achieve this is via the use of flatpak portals (maybe a drag and drop portal in this specific case). This does require the app developers to update their apps to use the new APIs though. Something I think is a reasonable thing to ask for new and actively maintained applications but less likely to happen for legacy ones
On the theming part, it's worth noting Linux Mint takes care of all of it, just pick the theme you like as you usually do, and the Mint Update manager will download said theme as a flatpack and apply it to all your installed flatpacks
It seems GNOME Software is also smart enough to install your active theme when you install software. Wished the CLI version or Pamac would do that too.
Flatpak has great potential for both developers and users. And mostly this has been realized. It's just nice that you can rely on one solution that will work regardless of distro. The permission situation is a bit lacking still. Your solution is how Android does things and it works beautifully there. If an app wants to use your camera or microphone it'll request it with a popup. The only thing I wish Flatpak did is cleaning up runtimes when they're no longer needed. When you remove a program Flatpak will leave all the runtimes behind. If I choose to uninstall an app and it's the only thing using that runtime then Flatpak should just get rid of that runtime too. Or alternatively: ask real quick if I wanna leave the runtime or remove it. Would save a little space.
@@MichaelMantion That's unfortunate, personally though for me it's been great! Pretty much every time I had an issue with something, the solution ended up being "Just use Flatpak" I use an immutable system now because of it, I only have solaar and ckb-next installed with traditional packaging (by layering them) because they're not available as Flatpak
@@softwarelivre2389 That action should be automatically run after each Flatpak update and uninstall, with a prompt asking the user if they want to clean these unused Flatpaks or not. It's a silly oversight in my opinion, and a costly one on storage space (the first time I discovered and ran this command, it freed up almost 50Go of space on my disk...)
For me appimage is the best package format. Just 1 thing to download and use it from a USB you can want to move it from debian to arch you can flatpak/snap is just to complicated. Only thing appimage does lack is theming and update option. And it will be instantly better than flatpak or snap
I agree for the pop up permission like android or ios do. For me the fact that it's me who should disable some permissions is weird and the proof that developers should be more aware, the developer shouldn't just force his flatpak to access everything and I have to disable the various permissions and see if the application will work or not and what settings should be enable to make the app works...etc. For me the mentality of just "there isn't any virus on linux so let's use X11 even when it's not secure and we don't have to enforce sandboxing" is false.
The fact that some will want to disable some permissions stems from the fact, that we're all different and static permissions are just an in between before there are enough portals. Permissions on flathub are vetted, but some even want all apps to don't have network access by default. It's a compromise between usability and security.
@@razzeeee I understand that and I don't want to remove the possibility of editing permissions. But for me and for most normal user I think, they just want the sandboxing to have a secure system, and so it's better for us that the developers choose themselves the permissions needed to have a working application but that doesn't have access to everything. Or they can enable some permission to have a working application but disable some because they are uses in some option and if you want those options a pop up will tell you if you want to allow this access or not.
@@moussagacem8260 I think you need to be more specific and call out apps, that don't have a minimal set of permissions in your opinion. Best would be to then open an issue on their flathub repo. Flatpak shows you that exact pop up, for webcam access and file access, if your app is up to date enough.
If the flatpak devs implemented your suggestions (I'm not sure how the permissions popup will work, but the CLI part about program names over IDs is a must) I would consider switching to flatpak for all desktop applications possible.
Flatpak isn't targeted for CLI apps, so why would you consider using it for them? It's primarily for GUI apps, and it already has all kinds of permissions popups, including file chooser drag-and-drop.
The issue I have with Flatpak is not the Flatpak technology itself, but the shift of responsibility towards developers. That means, i have to trust 50 developers of Flatpaks, instead of only my distribution. It also means that a single Flatpak can't be perfectly suited to all distributions and need configuration by the end user to be usable. A native package is already packaged and configured in a way, that it works perfectly fine for the individual distribution. Not to mention CLI apps, which Flatpak does not support and it's my preferred way of handling many things. Hopefully this will be addressed soon. Still Flatpak is useful today and I use a few programs.
If you use their app, you implicitly trust them? Why would you trust a version of the app packaged by a third party that barely had any time to test it compared to a package the developer made and tested because that’s the only one they make?
@@TheLinuxEXP Because the distribution is an additional step, which involves the quality standards I expect with a specific maintainer and the rest of the distribution having an eye on the system. To me it is an improvement over Windows in example, that we do not get the applications directly from the developers. That means for a distribution less control over the integrity of the system. I'm not saying that I don't trust nobody. Most popular software like Firefox and LibreOffice isn't actually an issue. Otherwise I wouldn't use Flatpaks. But I mean the general trust issue and concept over ANY software. And as said, I do not hate the Flatpak. The opposite is true! Hopefully ALL distributions will support Flatpak and Flathub out of the box. But I do want distributions to continue packaging usual as business (maybe with exceptions for big and complex software such as Firefox). Because that is my preferred way of managing the system.
@@pulkitkrishna8809 With a distribution package there is a second step between the 50 developers and the highly trusted distribution packager. I prefer this way.
I use the source with the most up-to-date version. It's a simple practical matter. Surprisingly, flatpack isn't always the most recent. Since my application needs are pretty mainstream I've never had any "dependency hell" problems. I appreciate the appeal of Flatpaks for developers / maintainers, and *philosophically* I like the idea of Flatpaks, but as a practical matter I just want something that is up-to-date and works with my system with minimal fuss.
There is also "flatpak remote-ls --updates" command to check what updates your system is waiting. I wish you would add this as well :) but great video overall, thank you!
I don't use Flatpak because there's a large difference between the sizes of applications. For example, VS Code's rpm would have a size of 25-50mb whereas it's flatpak equivalent would be 200-300mb. Yes, it could be because I have never downloaded any flatpak apps before and there's no common packages to share, but I'm on a daily data limit so I can't spend it downloading a single application. Plus I surely wouldn't bother doing all this stuff just to get the theming right, something which is a very basic thing an application is supposed to do.
That's the best mentality to have, use what tool works best for the job. Personally I use flatpaks because they do the job reliably across distros but I can see why someone would avoid it.
I've been a die hard Linux user for years, but we NEEEEED a SINGLE app for all of what you did for themes, this is something we are WAY behind with compared to windows and mac, I know how complicated it might be, but it's worth it for everyone wanting to give Linux a try, this leaves just enough of a bad taste in the regular computer users mouth to not want to consider living with the rest of the trade offs of Linux, if I had the ability, I'd make that app rn
Shared linking libraries/packages was a mistake. The perfect application is self contained and does not break with a package update. Storage is not a bottleneck anymore to advocate for shared linking and statically linking everything at compile time prevents "packaging" applications for every other distribution. Flatpak runtimes are slowly becoming the NPM module folder, gotta have 5 versions of a runtime because every other application relies on a different one
Flatpak has so many issues. My TexMaths extension doesn't work on LibreOffice Flatpak. SImilarly, KiCAD Flatpak doesn't recognize the system Text editor in the preferences. Same is true for Inkscape Flatpak Latex extension. And I m afraid to uninstall LibreOffice as my work has lot of references, that might go bad. If Anyone is having a solution to these issues, please help?
I know the LO devs are working on fixing access to extensions, but I’m not sure there is solution yet! Maybe giving the app access to the directory where the extension is usually installed?
I like to just wrap everything in containers and just map in exactly what I want them to know/have access to. Completely distro agnostic. Thanks to Jessie Frazzelle, the docker queen, for detailing how to do it all on her blog.
So debian and archlinux aren't one of the "good ones" distributions because they don't come with Flatpak and Flathub pre-installed? Debian/ArchLinux masterrace!
I love Flatpaks as a supplement to existing distro repos but I never want to see them straight up replace them! They are big and bloated and because they're containerized they ship dependencies that you might already have installed (double edged sword). Also because of permissions issues, some types of apps may not have permission to do things they may need to do like access certain parts of the filesystem you may actually want to access. Another example is Dejadup which for the longest time didn't have permission to automate backups on Mint. This is partially the fault of Cinnamon not properly supporting portals but this still proves my point because not all desktops may properly support all aspects of Flatpak especially more obscure or less popular ones. Flatpak is awesome, I use it a lot but never let it replace base repos. 🥺🙏
Flatpack looks great compared to what we've had in the past. It solves a lot of problems with installing shared libraries that have plagued Linux for a long time. And it eases the developer's burden of creating distro-specific images. It does however look a little rough around the edges for installing themes. That will obviously need a lot more work to make it user friendly. And Flatpack doesn't address installing non-GUI apps, does it? I'd be interested in seeing a video about that problem and if there are any potential solutions on the horizon apart from snaps, which I believe supports it.
Unfortunately Flatpak still suffers from inter-flatpak apps communication. Inability to use Flatpak KeepassXC together with Flatpak Firefox is a great example of that, and this is a bigger problem that it seems which must be addressed on the Flatpak implementation level. CLI apps on the other hand don't really need Flatpak, and was never within Flatpak scope, Nix-packages can address CLI apps, but honestly CLI apps are usually low-level applications which comes with the base system, so there are not much benefit of packing them into something fancy. I guess in future linux will split between base system where low-level system lives together with DE, and GUI apps distributed as Flatpaks - that would have make more sense than trying to package the entire system into Flatpaks.
I think there is a need for tutorials or good blogs on the correct use of flatpak. An example, I was trying to implement using flatpak and I thought that google chrome was not working correctly. I understood after much research and especially when commenting on the problem that I needed to give permissions to access certain files and directories. Now I feel like Flatpak makes sense to me.
10:15 - That kind of exists... Apps open the file chooser popup (included with your system) in which you can choose any file you want to give to the app. Works for drag-and-drop, too. The way you phrased all that, sounds as if there is no way to do that. A special popup for apps that don't support Flatpak & portals could be a fine bonus, but I doubt it would actually be all that commonly usable.
10:36 Either the ability to drag and drop files into Flatpaks, via a 'drag and drop' Portal, is in the works or already exists but Discord doesn't use it yet.
One thing I love about Flatpak is I can have the entire installation on a dedicated partition that can be shared between several distributions and kept intact even if I reinstall my system.
This is a great video on Flatpak Nick. The way theming works on flatpak is convoluted like you said. The guide you provide in your video really helps to correct that, thanks! Hopefully flatpak will make it easier to follow the theme used by the system in the future.
Yeah the issue is that there is no « general » theming API. Apps aren’t meant to be themed and it’s a hack that will never work completely reliably on every app, so I doubt they’ll spend much time on it. I included it because I knew people would ask, but I personally don’t do it
You really don't need to know most things he said to use it. I use it since a long time and I didn't know most of it. Everything just worked out of the box except drag and drop files into discord (if it was not in the download folder) that I had to add access.
Thanks Nick for the Flatpak themes tutorial! Hope someday all this theme stuff will get an automated running script or something in any distro to just apply/copy/whatever is needed to set a theme to Flatpak apps. And shorter name for Flatpak run and kill in the future is a must-have, it is odd that it require full name, but install works.
Would have been nice to touch on the de-duplication properties of Flatpak, as "Flatpak takes a huge amount of space" is a common criticism which, while still partially true, I think is blown way out of proportion.
My root / partition is 30 gigs and is routinely getting close to full. The flatpak folder is huge and removing old versions on the CLI doesn't do anything.
Make your root partition bigger (or don't separate /home at all). While 30GB might usually suffice for newly installed system, you will eventually grow out of it, Flatpak or not.
Personally, I still prefer appimages, though there can be issues with them. The apps need to be complete. I've had appimages that kept crashing trying to find missing libraries, etc. I like appimages because I can download them, set them to execute, put them in a shared folder, and all of my other systems can use them without having to install the same app on multiple machines. Same with updating. Download the updated version, set to execute, copy/move to the shared drive, and the other systems are updated at the same time. At worst, just refresh the file browser to see the updated version, not have to install separately. I know I should start looking into flatpaks going forward.
Although Flatpaks are safer than native packages, it still isn't much as their sandbox is pretty weak and there are exploits that allow (or allowed) acess to the host. If you want maximum security, ONLY allow permisions that you know will be used like there is zero reason.
If you want MAXIMUM security you could give every app it's own docker container but unfortunately security and privacy often come at the cost of convenience
@@TheLinuxEXPis it? Like I have a fence up in my yard that has multiple gaps in it, the only reason why we haven’t taken it down yet is because we haven’t had the time too. But I promise that the fence is absolutely useless because it can be thwarted by walking just a bit further. Flatpaks are ok but security is the worst thing to bring up because it makes people think that their system is secure, when it really isn’t.
@@zetetic-astronomer The fence is a minor obstacle to indicate to people that you don't want them walking in your space. It keeps casual or incidental trespassers out, but will not stop an even mildly determined intruder. I guess the sandbox serves a similar function here. But it could be worse than no sandbox if it provides a false sense of security.
@@monabuuHow is Docker any better? It also comes with a huge attack surface out of the box. VMs are better. If you want maximum security you don't run code you don't trust.
My issue with Bottles is that, although it does have internet connection or access turned on for apps, the bottle-containers still say there don't have access to internet. This is happening when I\m trying to install any kind of windows software inside of them. That's something which I do not understand. Any ideas?
the developers need to figure out the theming without me having to do anything, and that is enough reason for me to not use this system. permissions it's also a fail here, learn from Android, when an application needs a permission you ask the user with a popup, (once/always/no), flatseal should be rare to use, just do not apply permissions by default, ask the user. once this issues are fixed, then i would consider using and recommending flatpak for now, it's a no go.
"flatpak run minitext" is certainly an improvement over the awful terminal launch process we had before, but I would much prefer it if I could just do: $ minitext Y'know, like other package types. Will "flatpak run steam" even accept switches?
In speak of themes: Is there Yaru Colors for GTK4? i am aware of Gradience, but last time I checked I didn't see theme like that. I wish accent colors were already a thing in GNOME.
God, yeah, the theming is annoying. I just do a global override for all gtk files and folders in .config, plus I think my theme is in the .local/share/themes folder. Idk, I just backup the global overrides file and all the other files, which is easier to do with a flatpak --user install. Also, anyone else still waiting for Network Host Messaging? Waiting for that one so long that I'm pretty much moving all of my stuff to Nix and Conty which covers most of my usecases anyways.
It's the default method to install applications on the Steam Deck and I suspect, this is the most common consumer GNU/Linux device currently available, so I guess Flatpak has won.
Instead of permissions for temporary drag-drop things that I have to grant to the whole directory, a temporary 'access token' such as 'okay let this app read this file/directory just this once' would be great, so that I don't have to keep removing and checking permissions just because I am a disorganized weiro lmao Great video as usual!
Kinda complicated on Fedora right now. The gimp flatpack works better then the official fedora repository package, but it can't see any printers on the system [permissions?🤷♂️]. There are other problems with other packages like kdenlive.. and its weird that I can have a flatpack AND a package from a dnf repository too. Libre office also dosen't load printers on Fedora [permissions?... 🙈]
But why is flatpak better than snap or appimage? Or just using your distribution's repos? From what I can tell, appimage is superior to all the others... and I don't understand why everyone hates on snap. I'd love a compare-and-contrast episode of these technologies!
Every time I try to save a file using the brave or vscode flatpak or any other flatpak it opens some wierd '/run/user/1000/doc/.... directory. How can I fix this
Nick, instances - I want to be able to run several instances of a selected application, e.g. one instance of browser for work and one for private stuff.
What annoys me a little about all package managers is that I have to remember exactly what word they used for "get rid of some app" command. There are at least three words in English that basically mean the same thing - remove, uninstall, delete. And different package managers use different words! In Russian we use only one word in this context.
When I develop my first GUI app, I won’t have considered ‘I made it’ until I publish it on Flatpak 😂. I love it, as a Pop OS user, I have both Flatpaks and Snaps and it is awesome! ❤
I love that Flatpak apps have restricted access to the rest of the system by default, but I wish it was more obvious when the user tries accessing an inaccessible path. When I tried installing GOG games using the Heroic launcher, it kept putting them in my ~/.var/... directory, which was located on a hard disk at the time, instead of the dedicated SSD at /games. I couldn't figure out what the issue was, so I ended up using the installer EXE through straight wine.
Flatpak requires a lot of code changes (JNI interfaces) if you're supporting a Java application, as is the case for me. An AppImage installer may work for me, if I figure out how to do it. Until then, the Debian package will have to suffice for the KeyMusician Keyboard.
at least .jar files are easy to distribute and you dont have to link against many shared objects as long as the distro preinstalls a JVM (which im pretty sure ubuntu already does).
With the Debian package, I just specify default-jre as a required dependency. Anyway, I will be providing at least an AppImage installer. @@happygofishing
Thanks for the quick tutorial for terminal usage - that's what is usually missing for me in your videos, as you're rather graphic-oriented (I'm not saying, it's bad, of course, it's just not my preferred way)
Dans une de tes vidéos, tu expliques comment régler le problème des doubles icons qui s'ouvrent dans le dock lorsque qu'on ouvre une application flatpak. Je n'arrive pas à la retrouver.
5:00 I am running NixOS with a standalone window manager, and I use about a dozen Flatpaks. However, I simply *cannot* get them to respect my theme. If I change nothing, some apps use dark mode and some use light mode, both of the Adwaita theme, and very inconsistently. My cursor theme (Bibata Modern Ice) is only right in Flatpaks such as Flatseal itself, and it is wrong in basically every other Flatpak I have installed. My GTK theme (let's not even talk about QT theming in Flatpak… (yes, there is Kvantum, but it's not a solution for me, it's not what I use not what I want to use with my normal system packages), is Flat Remix Blue Dark, it is installed on my system as a package and as a flatpak. Yet, not any of my Flatpak uses it. I tried to add "GTK_THEME=Flat-Remix-GTK-Blue-Darkest-Solid", but it didn't do anything, and as the theme is installed as a flatpak, I really have no idea why it doesn't work. Also, I can't find a way to make the fonts work properly either, but that's a minor inconvenience for me. --- Theming in Flatpak is still a hell after all these years.
I wish appimages would have a central repo, im working on a coding app right now and realistically I need access to the host it's running on for opening a shell instance or just opening it from the command line, perfect use case for a appimage.
Thank you so much! This is a really really well made overview for how to use flatpak and tackle common issues. I am sure that this video will be the cause or at least accelerator of many improvements to flatpak, seeing that this video will be most people's starting point when they look for how to do certain things with flatpak.
The readme file that pops up at the first startup (or at least in VSCodium) says that you can add for example "flatpak-spawn --host bash" (or any other) as shell to work with the programs and commands from outside the flatpak.
I don't use flatpaks but I will accept it as soon as they are mature enough. I am on arch and just do anything with system packages and to be honest, I kinda hate when I get dependency issues, especially with AUR's git packages. But I don't feel like it's yet mature enough to use flatpaks, kind of like the X11/Wayland situation, although I recently decided to try out Wayland and I will try to actively use it after I come back from vacation haha
That part about managing permissions was helpful to me. I use telegram and drag and drop features just don't work on it so i thought its a bug in the app. Today I learned that i had to just set permissions for it to access all folders😅
I love Flatpaks, with them I can get software that's not in my distro's repos or the latest version which is something that drives me nuts with the Ubuntu repos, Running Mint myself. Instead of copying your /usr/share/themes folder to .themes or .local/share/themes (as suggested by someone else), just make .themes or .local/share/themes a link that points to the /usr/share/themes. now unless there is some other permission preventing Flatpaks from accessing the files it should work without making a duplicate of the various themes and wasting space. The command line access to run Flatpaks is a pain for people using window managers like SpectrWM or qtile as, so far in my experience, the launchers don't recognize the .desktop files used in things like KDE, Gnome, or XFCE. I got around that by making short bash scripts to run the Flatpak. I'm sure that there is a better launcher for the tiling window managers, I just haven't got around to exploring that yet as I'm still fairly new with them.
Thanks Nick, that was a helpful video. I recently installed Fedora on a new laptop and have never used Flatpaks before (my main desktop PC has been running Archlinux for years and I've always used packages from the official Arch repositories and the AUR). When possible, I still install "old-school" packages on Fedora, but for proprietary apps like Steam or Discord, I installed the flatpak version instead. The command line basics decribed in your video come in handy! :)