Elméleti áttekintés
A napokban szakítottam időt arra, hogy kicsit alaposabban utánajárjak a Flatpak működésének. Ezt a friss tudást szeretném most megosztani veletek
Az első oldalon áttekintjük a Flatpak elméleti alapjait, a második oldalon az alapvető parancssori működést nézzük meg, a harmadikon pedig bemutatok néhány hasznos Flatpak alkalmazást.
Mi az a Flatpak?
A Flatpak egy Linuxos alkalmazáscsomagolási- és terjesztési rendszer. Célja, hogy megkönnyítse az alkalmazások terjesztését úgy, hogy közben a biztonságot is növeli. A Flatpak segítségével a szoftverfejlesztők disztribúciófüggetlen, konténerizált csomagokat készíthetnek alkalmazásaikból, amiket a felhasználók bármely olyan Linux disztribúcióra feltelepíthetnek, amely támogatja a Flatpakot (és manapság gyakorlatilag mindegyik disztribúció támogatja).
Hogyan működik?
A Flatpak felépítését az alábbi ábra szemlélteti (közbeszerezve a hivatalos dokumentációból):
A rendszer alapvetően két nagy részre osztható:
Hirdetés
• a runtime-ok biztosítják az alkalmazások futásához szükséges összetevők (függvények) zömét. Minden Flatpak alkalmazás ezekből építkezik. A runtime-ok által nem tartalmazott függőségeket a fejlesztők elhelyezik a Flatpak csomagban, de törekszenek rá, hogy ilyenből minél kevesebb legyen. Néha előfordul az is, hogy sem a Flatpak csomag, sem egyik runtime sem tartalmaz egy függőséget, ez esetben a fejlesztők jelzik a felhasználók felé, hogy az alkalmazás működéséhez telepíteniük kell az adott csomagot a disztribúció csomagkezelőjével.
Runtime-ból csupán néhány létezik, ezek közül a jelentősebbek az alábbiak:
A Freedesktop runtime tartalmazza az asztali alkalmazásokhoz szükséges legalapvetőbb összetevőket (D-Bus, GLib, PulseAudio, X11, Wayland, stb.), néhány kiegészítőt, illetve olyan részeket, amelyek segítségével a fejlesztők további kiegészítőket adhatnak hozzá.
A Freedesktop runtime részei:
org.freedesktop.Platform
org.freedesktop.Sdk
org.freedesktop.Platform.Locale (kiegészítő)
org.freedesktop.Sdk.Debug (kiegészítő)
org.freedesktop.Sdk.Locale (kiegészítő)
org.freedesktop.Sdk.Docs (kiegészítő)
org.freedesktop.Platform.GL (kiegészítő)
org.freedesktop.Platform.GL.nvidia (kiegészítő)
org.freedesktop.Platform.VulkanLayer (kiegészítő)
org.freedesktop.Platform.GStreamer (kiegészítő)
org.freedesktop.Platform.Icontheme (kiegészítő)
org.gtk.Gtk3theme (kiegészítő)
org.freedesktop.Platform.VAAPI.Intel (kiegészítő)
org.freedesktop.Platform.openh264 (kiegészítő)
org.freedesktop.Platform.ffmpeg (kiegészítő)
A GNOME runtime a GNOME alkalmazásohoz futásához szükséges összetevőket tartalmazza.
org.gnome.Platform
org.gnome.Sdk
org.gnome.Platform.Locale (kiegészítő)
org.gnome.Sdk.Debug (kiegészítő)
org.gnome.Sdk.Locale (kiegészítő)
org.gnome.Sdk.Docs (kiegészítő)
A KDE runtime a KDE programok futásához szükséges Qt és KDE összetevőket tartalmazza.
org.kde.Platform
org.kde.Sdk
org.kde.Platform.Locale (kiegészítő)
org.kde.Sdk.Debug (kiegészítő)
org.kde.Sdk.Locale (kiegészítő)
org.kde.Sdk.Docs (kiegészítő)
Az elementary runtime pedig az elementary OS programjaihoz szükséges.
io.elementary.Platform
io.elementary.Sdk
io.elementary.Platform.Locale (kiegészítő)
io.elementary.Sdk.Debug (kiegészítő)
io.elementary.Sdk.Locale (kiegészítő)
io.elementary.Sdk.Docs (kiegészítő)
Ezeken kívül létezik még néhány kisebb runtime (pl. az adw-gtk3 témának saját runtime-ja van).
• a runtime-okra épülve pedig ott vannak az alkalmazások, az adataik, és az esetleges olyan függőségek, amiket a runtime-ok nem tudnak biztosítani - mindezek becsomagolva egy Flatpak csomagba.
Amikor egy olyan Flatpak alkalmazást töltünk le, amelynek szüksége van egy runtime-ra, akkor a rendszer letölti a szükséges runtime-ot is. Egy adott runtime verzióból egy időben csak egy példány lehet a gépünkön, így ha ismét letöltünk egy alkalmazást, ami ugyanazt a runtime-ot igényli, akkor a rendszer nem tölti le ismét, hanem a már letöltöttet fogja használni.
Az, hogy a Flatpak alkalmazások a lehető leginkább disztribúció-függetlenek legyenek, csak úgy érhető el, hogy ha a Flatpak rendszer a legminimálisabb mértékben támaszkodik a disztribúciókra. Emiatt a Flatpaknak semmilyen más függősége nincs a disztribúció felé, mint maga 'flatpak' nevű csomag, ami a Flatpak csomagok műkődéséhez szükséges összetevőket és parancssori eszközöket tartalmazza, és ami manapság részét képezi majd minden Linux disztribúciónak.
Az, hogy a Flatpak rendszer próbál a lehető legfüggetlenebb lenni a disztrótól, egyben azt is jelenti, hogy ha egy Flatpak alkalmazásnak pl. a Gnome 47-es függvényekre van szüksége, és a gépünkön Gnome 47 fut, a Flatpak akkor is le fogja tölteni a Flatpakos Gnome 47 runtime-ot, mert nem támaszkodhat a gépünkön lévő Gnome-ra.
Emiatt a Flatpak alkalmazásoknak általánosságban nagyobb a helyfoglalásuk. Elég gyakran előfordul az, hogy letöltünk egy Flatpak alkalmazást, az hozza magával az 1 GB-os Gnome runtime-ot, az 500 MB-os Mesat, és mondjuk az 50 MB-os Intel VAAPI drivert, így egy pár száz MB-os programból gyorsan 1,5-1,7 GB-os lesz. Természetesen, ha letöltünk egy másik alkalmazást, aminek szintén ugyanaz a verziójú Gnome rumtime, Mesa és VAAPI driver kell, akkor a rendszer már nem fogja még egyszer letölteni ezeket a csomagokat.
Ez épp olyan, mint ha egy adott asztali környezet alatt elkezdenénk egy másik asztali környezethez tartozó programokat használni (mondjuk Gnome alatt KDE-s programokat). Itt annyi előnye van a Flatpaknak, hogy nem a rendszercsomagok közé ékelődik be, és könnyebb eltávolítani az a pár Flatpak runtime-ot, mint ha a rendszercsomagok közül kellene kibogarászni a másik asztali környezet csomagjait.
Sebesség
Ha már a méretproblémákról szó esett, itt ragadnám meg az alkalmat, hogy beszéljek a Flatpak másik jellemző hátrányáról, az alkalmazások indulási sebességéről. Ugyanis a Flatpak alkalmazások lassabban startolnak, mint hagyományos társaik. Némelyiknél egészen kicsi a különbség, míg másoknál érezhetően nagyobb, főleg, ha HDD-s gépünk van.
Természetesen minél újabb és nagyobb teljesítményű géppel rendelkezünk, ez az indulási "delay" annál kevésbé érzékelhető.
Biztonság, sandboxing
A Flatpak alkalmazások biztonságát az adja, hogy ún. sandbox-ban futnak. A sandbox egyfajta konténer, ami azt jelenti, hogy az alkalmazás alapvetően csak a sandboxban lévő futó processzeket látja, csak az ugyanabban a sandboxban lévő fájlokhoz, könyvtárakhoz és hálózati megosztásokhoz fér hozzá, csak a sandboxnak átadott eszközöket látja, és így tovább.
Felhasználói oldalról nagyon pontosan szabályozhatjuk egy Flatpak alkalmazás jogosultságait. Meghatározhatjuk, hogy milyen könyvtárakhoz férhet hozzá, milyen típusú eszközöket érhet el, mely rendszerösszevetőket használhatja, stb. Szükség esetén egyes erőforrások exportálhatók a sandboxból a rendszerbe, ezeket 'exportoknak' nevezzük. Itt olyanokra kell gondolni, mint desktop fájlok, ikonok, stb.
Itt hívnám fel azonban a figyelmet arra, hogy a Flatpak sanboxing megoldása nem helyettesíti a felhasználói tudatosságot!
Sok Flatpak alkamazásnak "gyárilag" eléggé tágan vannak meghatározva a jogosultságai, tehát gyakran láthatunk olyat, hogy az alkalmazás hozzáfér a teljes /home könyvtárunkhoz, vagy a teljes fájlrendszerhez, esetleg olyan eszközökhöz vagy fájlokhoz, amikhez látszólag semmi köze. Mindig nézzük meg, hogy milyen jogosultságokra tart igényt az alkalmazás, és ha kell, nyugodtan korlázottuk a hozzáféréseit! Legfeljebb funkcióvesztést tapasztalunk, de hát valamit, valamiért...
A később bemutatott Flatseal programmal a jogosultságok vezérlését nagyon egyszerűen megtehetjük.
Portálok
A portálok egyfajta "kapuk", amelyek a Flatpak alkalmazásokat összekötik a külvilággal, biztonságos és szabályozott módon.
Az igény a portálok megalkotására akkor keletkezett, amikor a fejlesztők szerették volna elérni, hogy a sandboxolt alkalmazásokban megjelenő fájlkiválasztó ablakok pontosan úgy nézzenek ki és úgy működjenek, mint a rendszer ablakai. Ekkor találták ki azt a megoldást, hogy ne az alkalmazás nyissa meg a fájlkiválasztó ablakot, hanem kérje meg a rendszert egy meghatározott interfészen keresztül, hogy nyújtson számára egy ilyen ablakot, és amikor a felhasználó az ablakban a "Megnyitás" gombra kattint, akkor a rendszer adja vissza az ablakban kiválasztott fájlok nevét és elérési útját az alkalmazás számára. Később ez a megoldás további portálokkal bővült, és xdg-desktop-portal néven Freedesktop szabvánnyá vált.
Csak érdekességképp, jelenleg az alábbi portálok léteznek. A backend interfészek a portálokhoz tartozó kéréseket kezelik, ezek végzik el a tényleges munkát, ezeket külön folyamatok biztosítják. Pl. egy a screenshot portál esetén a frontend portál érintkezik a felhasználóval, a backend portál pedig elkészíti és visszadja a képernyőket a frontend portál számára.
org.freedesktop.portal.Account — Portál a felhasználói információk lekéréséhez.
org.freedesktop.portal.Background — Portál az automatikus indítás és a háttértevékenységek engedélyezéséhez.
org.freedesktop.portal.Camera — Portál a kamera eléréséhez.
org.freedesktop.portal.Device — Portál eszközök eléréséhez.
org.freedesktop.portal.Documents — Dokumentum portál.
org.freedesktop.portal.DynamicLauncher — Portál alkalmazásindítók telepítéséhez.
org.freedesktop.portal.Email — Portál e-mailek küldéséhez.
org.freedesktop.portal.FileChooser — Fájlválasztó portál.
org.freedesktop.portal.FileTransfer — Portál fájlok átviteléhez alkalmazások között.
org.freedesktop.portal.Flatpak.UpdateMonitor — Flatpak frissítéseket figyelő portál.
org.freedesktop.portal.Flatpak — Flatpak portál.
org.freedesktop.portal.GameMode — Portál a GameMode eléréséhez.
org.freedesktop.portal.Inhibit — Portál a munkamenet-átmenetek tiltásához.
org.freedesktop.portal.Location — Portál helyadatok lekéréséhez.
org.freedesktop.portal.MemoryMonitor — Memóriafigyelő portál.
org.freedesktop.portal.NetworkMonitor — Hálózatfigyelő portál.
org.freedesktop.portal.Notification — Portál értesítések küldéséhez.
org.freedesktop.portal.OpenURI — Portál URI-k megnyitásához.
org.freedesktop.portal.PowerProfileMonitor — Teljesítményprofil-figyelő portál.
org.freedesktop.portal.Print — Portál nyomtatáshoz.
org.freedesktop.portal.ProxyResolver — Proxy információk lekérése.
org.freedesktop.portal.Realtime — Portál szálak valós idejű futtatásához.
org.freedesktop.portal.RemoteDesktop — Távoli asztal portál.
org.freedesktop.portal.Request — Közös kéréskezelő interfész.
org.freedesktop.portal.ScreenCast — Képernyőmegosztási portál.
org.freedesktop.portal.Screenshot — Portál képernyőképek készítéséhez.
org.freedesktop.portal.Secret — Portál alkalmazás-titkok lekéréséhez.
org.freedesktop.portal.Session — Közös munkamenet-kezelő interfész.
org.freedesktop.portal.Settings — Beállítások interfész.
org.freedesktop.portal.Trash — Portál fájlok törléséhez.
org.freedesktop.portal.Wallpaper — Portál az asztali háttérkép beállításához.
Backend interfészek:
org.freedesktop.impl.portal.Access — Hozzáférési párbeszédablak megjelenítésére szolgáló interfész.
org.freedesktop.impl.portal.Account — A felhasználói információk lekéréséhez tartozó portál backendje.
org.freedesktop.impl.portal.AppChooser — Alkalmazásválasztó interfész.
org.freedesktop.impl.portal.Background — Háttérfolyamat portál backend interfész.
org.freedesktop.impl.portal.Email — E-mail portál backend interfész.
org.freedesktop.impl.portal.FileChooser — Fájlválasztó portál backend interfész.
org.freedesktop.impl.portal.Inhibit — Tiltási portál backend interfész.
org.freedesktop.impl.portal.Lockdown — Korlátozási backend interfész.
org.freedesktop.impl.portal.Notification — Értesítési portál backend interfész.
org.freedesktop.impl.portal.PermissionStore — Engedélyek tárolására szolgáló adatbázis.
org.freedesktop.impl.portal.Print — Nyomtatási portál backend interfész.
org.freedesktop.impl.portal.RemoteDesktop — Távoli asztal portál backend interfész.
org.freedesktop.impl.portal.Request — Közös kéréskezelő interfész.
org.freedesktop.impl.portal.ScreenCast — Képernyőmegosztási portál backend interfész.
org.freedesktop.impl.portal.Screenshot — Képernyőkép portál backend interfész.
org.freedesktop.impl.portal.Secret — Titok portál backend interfész.
org.freedesktop.impl.portal.Session — Közös munkamenet-kezelő interfész.
org.freedesktop.impl.portal.Settings — Beállítások portál backend interfész.
org.freedesktop.impl.portal.Wallpaper — Portál az asztali háttérkép beállítására.
Amikor egy portált használunk, az alkalmazásnak egyben engedélyt is adunk arra, hogy az adott portál által biztosított erőforrást használja. Ha például egy fájlválasztó ablakban kiválasztunk egy fájlt, a Flatpak rendszer ezt megjegyzi, és onnantól fogva engedélyezett az alkalmazás számára a fájl elérése. Az így megadott engedélyeket dinamikus engedélyeknek nevezzük.
Repozitóriumok
Akárcsak a hagyományos Linuxos csomagkezelők (apt, dnf, zypper, stb.), a Flatpak is repozitóriumokat (repókat) használ a csomagok terjesztéséhez. Az olyan szoftverközpontok, mint a Gnome Software, a KDE Discover és az elementary AppCenter képesek Flatpak repókról letölteni. A legjelentősebb Flatpak repó, a Flathub 2018 óta működik, és jelen pillanatban 2799 asztali alkalmazást kínál (https://flathub.org/statistics).
A Flathubon kívül megemlíthető még a Fedora Flatpaks repó, amelyben jelenleg 484 csomag van, és az elementary OS AppCenter repója, ahol pillanatnyilag 160 csomag található. A Fedora Flatpaks-ban sok olyan csomag van, ami megtalálható Flathubon is, viszont a licenszdíjas komponensek (jellemzően a kodekek) ki vannak hagyva belőlük, ezért előfordulhat, hogy az onnan telepített videólejátszó, böngésző nem fog minden videót lejátszani!
Ezeket a következőképp telepíthetjük:
- Fedora Flatpaks: flatpak remote-add --if-not-exists fedora oci+https://registry.fedoraproject.org
- elementary OS flatpakrepo: flatpak remote-add --if-not-exists elementaryos https://flatpak.elementary.io/repo.flatpakrepo
.flatpakref, .flatpakrepo
Flatpak használata esetén találkozhatunk .flatpakref kiterjesztésű fájlokkal. Ezek a fájlok tartalmazzák azokat az információkat, amik szükségesek egy távoli Flatpak fájl telepítéséhez. Egy flatpakref fájl például így néz ki:
[Flatpak Ref]
Name=fr.free.Homebank
Branch=stable
Title=fr.free.Homebank from flathub
Url=https://dl.flathub.org/repo/
RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo
IsRuntime=false
GPGKey=mQINBFlD2sABEADsiUZUO...
Ha van egy flatpakref fájlunk, az alábbi módon közvetlenül telepíthejük a fájlt által hivatkozott alkalmazást anélkül, hogy az alkalmazást tartalmazó repót fel kellene vennünk:flatpak install https://flathub.org/repo/appstream/fr.free.Homebank.flatpakref
Ezen kívül találkozhatunk még .flatpakrepo fájlokkal is, ezek nem alkalmazásokat, hanem repókat azonosítanak. Segítségükkel könnyen hozzáadhatunk a rendszerhez távoli Flatpak repókat, Flathub esetén például így:flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Rendszerszintű és felhasználószintű Flatpak telepítések
Flatpak alkalmazásokat két féle módon telepíthetünk. Az alapértelmezett mód a rendszerszintű mód, ebben az esetben a gépen lévő összes felhasználó számára elérhetők lesznek a telepített alkalmazások. Ez esetben a /var/lib/flatpak könyvtárba kerülnek az alkalmazások.
A másik módszer a felhasználószintű telepítés, ez esetben a ~/.local/share/flatpak és a ~/.var/app/ mappákba kerülnek a telepítések.
Rendszerszintű telepítésnél meg kell adnunk a sudo vagy a root jelszót (mivel rendszermappába szeretnénk írni), felhasználószintű telepítésnél viszont nem. A hivatalos ajánlás az, hogy tartsuk be az alapértelmezett telepítési módot. Én a hivatalos ajánlást megszegve, mindent felhasználó szinten telepítek, mert ilyenkor nem kér jelszót (hiába no, gyarló az ember). Viszont ennek megvan az a hátránya, hogy ha már vannak fent rendszerszinten telepített runtime-ok, és felhasználószinten kezd el telepítgetni az ember, akkor azok a runtime-ok még egyszer felkerülnek, így kétszer annyi helyet foglalnak el. Utólag átmozgatni a rendszerszinten telepített alkalmazásokat felhasználószintre pedig csak újratelepítéssel lehet, bár a beállításaink így nem vesznek el, hiszen azok a /home alatt tárolódnak akkor is, ha az alkalmazás rendszerszinten van telepítve.
Flatpak alkalmazások felépítése
A Flatpak alkalmazások az OSTree-n alapulnak. Ha tudod, mi az a Git, akkor meg fogod érteni az OSTree-t, ha azt mondom, hogy az OSTree olyan az alkalmazások számára, mint a Git a forráskódok számára.
Az OSTree az alkalmazás és a fájlrendszer között helyezkedik el, és egy olyan frissítési mechanizmust nyújt, amely egyrészt folyamatosan követi és nyilvántartja a jelenlegi és az összes korábbi frissítést (változást), másrészt atomi frissítésekkel operál. Ez két dolgot jelent, és az utóbbi a fontosabb számunkra:
- egyrészt az atomi frissítések biztosítják, hogy minden appfrissítés egyetlen atomi műveletben menjen végre, így kisebb az esély a hibázásra
- másrészt mivel a frissítések mindenkori állapota folyamatosan nyomon van követve, ezért bármikor visszaállhatunk egy korábbi verzióra
Újabban a Flatpak támogatja az OCI konténer típusú felépítést is, így könnyen lehet Docker image-ből Flatpak csomagot készíteni, és OCI registryn keresztül terjeszteni.
Háttéretechnológiák
Csak említés szintjén érdemes tudni, hogy a Flatpak a Bubblewrap segítségével oldja meg a sandboxingot, systemd-et használ a sandboxok cgroups részéhez, AppStream-et a metaadatok kezeléséhez, és D-Bust az interprocessz kommunikációhoz (pl. a portálok meghívásához).
Gyakorlati alkalmazás
Telepítés
Flatpak csomagok használatához elsősorban a flatpak parancssori eszközre van szükségünk. Ezt szokás szerint a disztribúciónk csomagkezelőjével telepíthetjük. Debian, Ubuntu és Ubuntu-alapú rendszerek esetén például így:sudo apt install flatpak
Ha a Gnome Software programot használjuk, ahhoz is hozzáadhatjuk a Flatpak támogatást:sudo apt install gnome-software-plugin-flatpak
Illetve ha KDE Discovert használunk, abban az esetben ahhoz:sudo apt install plasma-discover-backend-flatpak
És végül, ha szeretnénk, hozzáadhatjuk a Flathub repót a rendszerünkhöz:flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Nagyon sok disztróban (pl. Linux Mintben, Fedorában, OpenSuse-ban) alapértelmezetten telepítve van a flatpak csomag. Ilyen esetben csak adjuk hozzá azt a repót, amelyiket szeretnénk. Egyed disztrók (pl. a Fedora) saját Flatpak repóval is rendelkeznek.
A Flathub biztosít egy mini telepítési útmutatót a népszerűbb disztrókhoz: https://flathub.org/setup
Csomagok azonosítása
Flatpak esetén minden csomagot az ún. reverse domain name notation (reverse DNS) módszerrel azonosítunk. Ezt azt jelenti, hogy a csomagok nevei a fejlesztő domain nevéből, és az alkalmazás nevéből állnak, fordított sorrendben, pl.:
com.spotify.Client
de.haeckerfelix.Shortwave
org.gimp.GIMP
org.gnome.Connections
Ez biztosítja, hogy még véletlenül se létezhessen két azonos nevű alkalmazás.
Telepítés
Ha telepíteni szeretnénk egy alkalmazást, így tudjuk megtenni:
flatpak install <név>
Pl. flatpak install org.gimp.GIMP
Ha hozzácsapjuk a --user (-u) kapcsolót, akkor felhasználószintű telepítés jön létre. Pl.:flatpak install --user org.gimp.GIMP
Ez csak akkor használható, ha előzőleg már felhasználó szinten is felvettük az adott repót, tehát nem elég, ha rendszerszinten fel van véve.
A flatpak újabb verziói annyi könnyítést engednek, hogy nem kell kiírnunk a teljes nevet, elég csak egy részletét, pl.flatpak install gimp
Ha több találat is van a 'gimp' szóra, a rendszer megkérdezi, melyiket szeretnénk telepíteni, illetve ha több repozitórium is fel van véve, akkor a rendszer azt is megkérdezi, hogy melyikből telepítse.
Telepített alkalmazásainkat a flatpak list paranccsal tudjuk kilistázni:
flatpak list
Ha csak a runtime-okat szeretnék kilistázni, akkor tegyük hozzá a --runtime kapcsolót, ha pedig csak az alkalmazásokat, akkor az --app kapcsolót. Itt is működik az, ami a legtöbb flatpak parancsnál, hogy ha a --user kapcsolót tesszük hozzá, akkor csak a felhasználószintű telepítéseket látjuk, ha pedig a --system kapcsolót, akkor csak a rendszerszintűeket.
Egy alkalmazást futtatni pedig így tudunk:
flatpak run <teljes név>
Pl. flatpak run org.gimp.GIMP
Itt viszont már nem kapjuk meg azt a könnyítést, amit a telepítésnél, kénytelenek vagyunk kiírni az alkalmazás teljes nevét.
A flatpak ps
parancssal megtekinthetjük az éppen futó Flatpak alkalmazásokat, a flatpak kill <teljes név>
paranccsal pedig le is állíthatunk egy futó alkalmazást.
Ha egy repó rendszerszinten és felhasználószinten is fel van véve, akkor a Flatpak megkérdezi, melyikből telepítse a programot. Ha egy keresőszóra több találat is van, akkor felajánlja az összes találatot. Végül megmutatja a csomag által igényelt jogosultságokat, és hogy mely másik csomagokat (runtime-okat) fogja még feltelepíteni
Mint ahogy korábban írtam, mindig ellenőrizzük le a telepíteni kívánt alkalmazás jogosultságait! Szerencsére a Flathub is, és a gyakran használt grafikus csomagkezelők is nyújtanak erre lehetőséget. A Flathub külön szekcióban jelzi, hogy az alkalmazás potenciálisan veszélyes lehet:
Ha ide kattintunk, láthatjuk, hogy milyen jogosultságokat igényel az alkalmazás:
A Home folder read/write access jogosultság azt jelenti, hogy az adott alkalmazás írni és olvasni is tudja a teljes /home könyvtárunkat! Ha ezt nem szeretnénk megengedni neki, a Flatseal programmal (vagy paranccsorban) könnyen letilthatjuk ezt a jogosultságot.
Arra is érdemes odafigyelnünk, hogy az alkalmazás státusza Ellenőrzött (kék plecsniben sötét pipa) vagy nem ellenőrzött (unverified). Az ellenőrzött azt jelenti, hogy az alkalmazást annak fejlesztője, vagy a fejlesztő által meghatalmazott személy töltötte fel a Flathubra (és nem hitelesítetlen harmadik fél). Lehetőség szerint csak ellenőrzött alkalmazásokat használjunk, vagy ha mindenképp unverified alkalmazást szeretnénk telepíteni, ellenőrizzük az alkalmazás manifest fájlját (lásd lejjebb)!
Célszerű megnéznünk még azt is, hogy milyen licenccel rendelkezik az adott alkalmazás. A Proprietary (tulajdonosi) licenc azt jelenti, hogy a szoftver tulajdonosa szigorúan szabályozza a szoftver felhasználását, terjesztését és módosítását. Ez a licenc általában megtiltja vagy jelentősen korlátozza a forráskódhoz való hozzáférést (zárt forráskód) és a szoftver szabad módosítását.
A Community built (közösségileg készítve) licenc viszont olyan licenctípusokat takar, amelyek megengedik a forráskód terjesztését (nyílt forráskód), módosítását, újrafelhasználását (bizonyos megkötésekkel). Amikor csak lehet, ez utóbbit részesítsük előnyben!
Példa egy tulajdonosi és két közösségi licenctípusra.
Valamint van még egy dolog, amire érdemes odafigyelnünk. A Flathubon is szerepel, valamint a parancssoros telepítős és a grafikus telepítő is jelzi, ha olyan alkalmazást szeretnénk telepíteni, ami elavult, már nem karbantartott runtime-ot használ (Uses an end-of-life runtime):
Az ilyen alkalmazásokat ne telepítsük fel, mert biztonsági kockázatot jelentenek! A csomag karbantartójának feladata a program frissítése az aktuális runtime-ra.
Tipp: előfordulhat olyan, hogy egy alkalmazáshoz szükséges runtime-ot törlünk, ilyenkor az alkalmazás nem fog elindulni. Ez esetben egyszerűen csak telepítsük újra az alkalmazást, magával fogja hozni az adott runtime-ot is:flatpak install --reinstall <teljes név>
Ha az összes alkalmazásunkat szeretnénk egy lépésben újratelepíteni, így tehetjük meg:flatpak list --app --columns=application | xargs flatpak install -y --reinstall --user
Ez felhasználószinten telepít újra minden alkalmazást, ha rendszerszinten szeretnénk, vegyük ki a --user kapcsolót.
Manifest ellenőrzése
Minden flatpak alkalmazáshoz tartozik egy manifest fájlt. Ez a fájl írja le a flatpak csomag építéséhez szükséges paramétereket (a flatpak-builder segédprogram ez alapján készíti el a csomagot).
Flathubon minden egyes alkalmazás oldalán fel van tüntetve a manifest fájlra mutató hivatkozás, a lap alján a "Links" szekcióban.
A manifest fájl JSON vagy YAML formátumú lehet. Ha rákattintunk a linkre, megnyílik a csomag tárolója, ahol meg tudjuk keresni a manifest fájlt. A fájl neve általában megegyezik az alkalmazás teljes azonosítójával, és json vagy yaml kiterjesztéssel rendelkezik. A struktúrája eltérő, attól függően, hogy JSON vagy YAML formátumú, de a paraméterek mindkét esetben ugyanazok.
Ha megkeressük a fájlban a "modules" / "sources" részt, ott láthatunk egy hivatkozást (url), amely arra a tárolóra mutat, amelyből a csomag készült. Egy példa JSON formátumú manifest fájlra:
"modules" : [
{
"name" : "inspector",
"builddir" : true,
"buildsystem" : "meson",
"sources" : [
{
"type" : "git",
"commit" : "5e3ac67e7e193bac25dc0cfb8dca7ef982cfcc0e",
"url" : "https://github.com/Nokse22/inspector"
}
]
Egy másik példa egy YML formátumú fájlra:
modules:
- name: bleach
builddir: true
no-autogen: true
cleanup:
- /share/pixmaps
sources:
- type: git
url: https://github.com/bleachbit/bleachbit.git
tag: v4.6.2
commit: f49ae456f4bf416b7d9c6e720704e69a3a3f8f80
Ha a program nyílt forráskódú, akkor a hivatkozott URL rendszerint közvetlenül a program forráskódjának tárolójára mutat. Ha zárt forráskódú, akkor pedig azokat a bináris forrásokat sorolja fel, amik alapján készült a csomag.
Egy manifest fájlban több "sources" szakasz is lehet, mindegyik fordítási egység rendelkezik egy sajáttal.
Ez alapján megbizonyosodhatunk arról, hogy a csomag valóban abból a forrásból készült, aminek mondja magát. Ez főleg unverified csomagok esetén lehet hasznos, mert így le tudjuk ellenőrizni, hogy a csomag az eredeti forrásból készült.
Törlés
Alkalmazást törölni így tudunk:
flatpak remove <teljes név>
vagyflatpak uninstall <teljes név>
Pl.:flatpak remove org.gimp.GIMP
flatpak uninstall org.gimp.GIMP
Frissítés
Ha csak egyetlen alkalmazást szeretnénk frissíteni, használjuk a flatpak update <teljes név>
parancsot, pl.:flatpak update org.gimp.GIMP
Ha az összes alkalmazást szeretnénk frissíteni, egyszerűen csak adjuk ki a flatpak update
parancsot.
A legtöbb parancsnál használható a -y (--assumeyes) kapcsoló, ami azt eredményezi, hogy a rendszer az eldötendő kérdéseknél nem fog visszakérdezni, hanem automatikusan az igen lehetőséget fogja választani. Frissítés esetén érdemes használni, törlés esetén nem annyira.
A legtöbb szoftveráruház (Gnome Softwares, KDE Discover, stb.) a megfelelő pluginnal képes akár automatikusan is frissíteni a Flatpak alkalmazásainkat, tehát viszonylag ritkán kell parancssorban ezzel foglalkoznunk.
Egyébként a Flatpak ún. delta frissítéseket használ, ami azt jelenti, hogy nem tölti le a teljes frissítést, hanem csak a korábbi verzióhoz képest történt változásokat, emiatt a frissítések rendszerint kisebb méretűek, mint az alaptelepítések.
Információk lekérdezése egy telepített appról
Ha le szeretnénk kérdezni egy telepített app információit, használjuk a flatpak info <teljes név>
parancsot, pl.:
flatpak info org.gimp.GIMP
GNU képszerkesztő program - Képek létrehozása és fotók szerkesztése
Azonosító: org.gimp.GIMP
Hivatkozás: app/org.gimp.GIMP/x86_64/stable
Architektúra: x86_64
Ág: stable
Version: 2.10.38
License: GPL-3.0+ AND LGPL-3.0+
Eredet: flathub
Collection: org.flathub.Stable
Installation: user
Installed: 368,8 MB
Futtatókörnyezet: org.gnome.Platform/x86_64/46
Sdk: org.gnome.Sdk/x86_64/46
Kommit: 83b335255cc239e223ada842f99107d1d6ce51b511a8ae2a278005c2e2809242
Szülő: ed836c267becb833db2945b42a0a89d69e6fc122b4b5284124f20510c9602ffe
Tárgy: Update poppler and cairo modules (#355) (735387ad)
Dátum: 2024-09-14 22:36:06 +0000
Repozitóriumok kezelése
Flatpak repókat hozzáadni a flatpak remote-add
paranccsal tudunk, pl.
flatpak remote-add --if-not-exists <repó neve> <távoli .flatpakref fájl>
Pl.: flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Az --if-not-exists kapcsoló biztosítja, hogy a repó csak egyszer legyen hozzáadva (ha már fel van véve, nem adja hozzá többször).
Itt is használhatjuk a --user kapcsolót, ami azt eredményezi, hogy a repó csak a saját felhasználói fiókunkhoz lesz hozzáadva.
Ha ki szeretnénk listázni a repóinkat, használjuk a flatpak remote-list
parancsot, de még véletlenül se keverjük össze a flatpak remote-ls
parancssal, ami az elérhető alkalmazásokat és runtime-okat listázza ki. Ha a flatpak remote-ls <tároló neve>
formát használjuk, akkor csak az adott tárolóban lévő csomagokat listázza ki.
Keresés
Ha viszont meg szeretnénk keresni egy alkalmazást, ne a flatpak remote-ls
a parancsot használjuk, hanem a flatpak search
parancsot, pl.:flatpak search gimp
Ez az alkalmazás összes információját (név, leírás, stb.) átfésüli, és visszadja azt az alkalmazást vagy runtime-ot, amelyik illeszkedik a keresőszóra.
Ha le szeretnénk kérni egy alkalmazás vagy runtime adatait, használjuk a flatpak remote-info
parancsot, pl.:flatpak remote-info flathub org.gnome.gedit
Repozitórium tulajdonságainak módosításához használhatjuk a flatpak remote-modify
parancsot, pl.:flatpak --user remote-modify --no-gpg-verify test-repo
Repozitóriumot eltávolítani a rendszerből pedig a flatpak remote-delete
paranccsal tudunk, pl.:flatpak remote-delete test-repo
Nagyjából ennyi tudás elég ahhoz, hogy kezelni tudjuk Flatpak alkalmazásainkat. A továbbiakban a ritkábban használt parancsokról írok pár szót.
Portál engedélyek (dinamikus engedélyek)
A flatpak permissions
paranccsal ki tudjuk listázni az alkalmazásaink portáljai által használt engedélyeket (dinamikus engedélyek), de amit cserébe kapunk, abban nem lesz köszönet...
Használjuk inkább a flatpak permission-show <teljes név>
formát, pl.:flatpak permission-show org.mozilla.firefox
Itt megtekinthetjük az alkalmazás portáljai által használt engedélyeket, beleértve a fájlokat is, amiket a portálokon keresztül értünk el.
A flatpak permission-reset <teljes név>
paranccsal alapértelmezettre állíthatjuk a portálok által használt engedélyeket.
A flatpak permission-set <teljes név>
és flatpak permission-remove <teljes név>
parancsokkal tudunk engedélyeket hozzáadni és eltávolítani, de ezen parancsok szintaktikája eléggé bonyolult, és jó eséllyel sosem fogjuk használni őket. Ha érdekel a működésik, olvassuk el a referencia dokumentációt:
https://docs.flatpak.org/en/latest/flatpak-command-reference.html#flatpak-permission-set
https://docs.flatpak.org/en/latest/flatpak-command-reference.html#flatpak-permission-remove
Statikus engedélyek
Mint korábban volt szó róla, a dinamikus engedélyek azok az engedélyek, amelyeket mi adunk az alkalmazásnak akkor, amikor egy portálját használjuk. Ezzel szemben a statikus engedélyek azok az engedélyek, amelyek az alkalmazással együtt érkeznek. Ezek az engedélyek futás közben nem változtathatók meg. Ha egy ilyen engedélyt adunk egy alkalmazásnak, vagy visszavonjuk tőle, az addig nem fog érvényesülni, amíg az alkalmazás teljesen le nem áll és újra nem indul.
Egy alkalmazás statikus engedélyeit a flatpak info --show-permissions <teljes név>
parancssal tudjuk kilistázni, pl.:flatpak info --show-permissions org.mozilla.firefox
vagy
flatpak info -M org.mozilla.firefox
Valami ilyesmit fogunk látni:
[Context]
shared=network;ipc;
sockets=x11;wayland;pulseaudio;fallback-x11;pcsc;cups;
devices=dri;all;
features=devel;
filesystems=xdg-download;/run/.heim_org.h5l.kcm-socket;xdg-run/speech-dispatcher:ro;
persistent=.mozilla;
[Session Bus Policy]
org.mozilla.firefox_beta.*=own
org.mozilla.firefox.*=own
org.gtk.vfs.*=talk
org.mpris.MediaPlayer2.firefox.*=own
org.a11y.Bus=talk
org.freedesktop.FileManager1=talk
[System Bus Policy]
org.freedesktop.NetworkManager=talk
[Environment]
DICPATH=/usr/share/hunspell
Ezek közül talán a legfontosabb a filesystems, itt találhatók a fájlrendszerhez megadott engedélyek. Az xdg-download a letöltések könyvtárat jelenti. Amelyik könyvtár neve után :ro szerepel, az azt jelenti, hogy csak olvasni tudja az adott könyvtárat (read only). Amelyik könyvtár után pedig :create szerepel, az azt jelenti, hogy ahhoz a könyvtárhoz van írási/olvasási joga a programnak, és létre is hozhatja az adott könyvtárat, ha az nem létezik.
Fájlrendszer jogosultságoknál nem csak könyvtárnevek szerepelhetnek, hanem a következő formák is:
host - hozzáférés a /home, /media, /opt, /run/media, /srv könyvátrakhoz és összes alkönyvtárukhoz, és azokhoz, amiket a host-os és a host-etc jogosultság biztosít
host-etc - hozzáférés az /etc könyvtárhoz
host-os - hozzáférés a /usr, /bin, /sbin, /lib{32, 64}, /etc/ld.so.cache, /etc/alternatives könyvátrakhoz
home - hozzáférés a felhasználó home könyvátárhoz (kivéve ~/.var/app)
xdg-desktop - hozzáférés a felhasználó asztal könyvtárához
xdg-documents - hozzáférés a felhasználó dokumentumok könyvtárához
xdg-download - hozzáférés a felhasználó letöltések könyvtárához
xdg-music - hozzáférés a felhasználó zenék könyvtárához
xdg-pictures - hozzáférés a felhasználó képek könyvtárához
xdg-videos- hozzáférés a felhasználó videók könyvtárához
xdg-templates - hozzáférés a felhasználó sablonok könyvtárához
xdg-cache - hozzáférés a felhasználó cache könyvtárához (~/.cache)
xdg-data - hozzáférés a felhasználó adatkönyvtárához (~/.local/share)
xdg-run/path - hozzáférés a felhasználó XDG runtime könyvtárához és alkönyvtáraihoz (/run/user/$UID/path)
xdg-public-share - hozzáférés a nyilvános megosztott könyvtárhoz
Megnézhetjük a sockets szekciót is. Az itt szereplők a következőket jelentik:
x11: engedély az X11 alrendszerhez, azaz megjeleníthet ablakokat az X11 használatával.
wayland: engedély a Wayland alrendszerhez, azaz megjeleníthet ablakokat Wayland használatával.
pulseaudio: hozzáférés a hangeszközökhöz, beleértve a bemeneteket (mikrofon), a lejátszóeszközöket, MIDI és ALSA alrendszert, stb.
fallback-x11: ha a Wayland nem érhető el, akkor az X11 legyen használva.
pcsc: hozzáférés az okoskártyákhoz.
cups: hozzáférés a nyomtatáshoz, tehát a program tud nyomtatni.
Ha részletesebben is érdekelnek a jogosultságok, keressük fel a hivatalos dokumentációt: https://docs.flatpak.org/en/latest/sandbox-permissions.html
Egy program statikus jogosultságait módosíthatjuk a flatpak override
paranccsal. Ha például azt szeretnénk, hogy az adott program hozzáférjen az /etc könyvtárhoz, így tehetjük meg:sudo flatpak override --filesystem=host-etc <teljes név>
Ahogy feljebb írtam, használhatunk általános formákat, és a :ro vagy a :create utótagokat is:sudo flatpak override --filesystem=xdg-pictures:ro org.gimp.GIMP
Így a GIMP csak olvasni tudja a képek mappában lévő fájlokat.
Ha vissza szeretnénk vonni egy hozzáférést, a következő módon csinálhajtuk:sudo flatpak override --nofilesystem=host-etc <teljes név>
Ha egy adott funkcióhoz szeretnénk hozzáférést adni a programnak, így tehetjük meg:sudo flatpak override --allow=bluetooth <teljes név>
Ennek visszavonása pedig így néz ki:sudo flatpak override --disallow=bluetooth <teljes név>
A logika a többi jogosultság esetén is hasonló. Részletekért keressük fel a hivatalos dokumentációt: https://docs.flatpak.org/en/latest/flatpak-command-reference.html#flatpak-override
Fontos, hogy csak akkor állítsuk át egy alkalmazás jogosultságait, ha pontosan tudjuk, hogy mit csinálunk! Egyébként akár működésképtelenné is tehetjük az alkalmazást.
Egyebek
A flatpak history
parancssal vissza tudjuk nézni a korábban elkövetett flatpak műveleteket.
A teljes parancssori referencia: https://docs.flatpak.org/en/latest/flatpak-command-reference.html
Néhány hasznos Flatpak alkalmazás
Az alábbiakban összegyűjtöttem néhány grafikus Flatpak alkalmazást. Nem állítom azt, hogy ezek a legjobb Flatpak alkalmazások, ez csak egyszerűen egy gyűjtemény néhány olyan alkalmazásról, amit hasznosnak találtam.
Flatseal
Egy "must have" Flatpak alkalmazás. Egyszerűen tudjuk vele állítgatni a Flatpak alkalmazások jogosultságait.
https://flathub.org/apps/com.github.tchx84.Flatseal
Telepítés: flatpak install flathub com.github.tchx84.Flatseal
Raktár (Warehouse)
Flatpak alkalmazások és repók kezelésre való alkalmazás. Információkat tud megjeleníteni a telepített alkalmazásokról, upgradelni és downgradelni is képes őket, repókat tudunk vele hozzáadni...
https://flathub.org/apps/io.github.flattool.Warehouse
Telepítés: flatpak install flathub io.github.flattool.Warehouse
Flatsweep
Flatpak csomagok által hátrahagyott adatok törlésére használható.
https://flathub.org/apps/io.github.giantpinkrobots.flatsweep
Telepítés: flatpak install flathub io.github.giantpinkrobots.flatsweep
Küldetésközpont (Mission Center)
Feladatkezelő, erőforrás menedzselő alkalmazás.
https://flathub.org/apps/io.missioncenter.MissionCenter
Telepítés: flatpak install flathub io.missioncenter.MissionCenter
Resources
A Küldetésközponthoz hasonló alkalmazás, kicsit más funkciókkal.
https://flathub.org/apps/net.nokyan.Resources
Telepítés: flatpak install flathub net.nokyan.Resources
CPU-X
A processzorról, az alaplapról és egyéb rendszereszközökről jelenít meg információkat. A Windows-os CPU-Z mintájára készült változat Linuxra és BSD-re.
https://flathub.org/apps/io.github.thetumultuousunicornofdarkness.cpu-x
Telepítés: flatpak install flathub io.github.thetumultuousunicornofdarkness.cpu-x
Examine
Hardveres információk megjelenítésére való program.
https://flathub.org/apps/io.github.cosmic_utils.Examine
Telepítés: flatpak install flathub io.github.cosmic_utils.Examine
GPU-Viewer
Grafikus hardver- és szoftverösszetevőkről képes megjeleníteni részletes információkat.
https://flathub.org/apps/io.github.arunsivaramanneo.GPUViewer
Telepítés: flatpak install flathub io.github.arunsivaramanneo.GPUViewer
fan-control
A gépünkben lévő ventillátorok vezérlésére használható. Telepítés után egy udev szabályt kell a rendszerhez adni, ezzel kapcsolatban lásd a projekt Github oldalát.
https://flathub.org/apps/io.github.wiiznokes.fan-control
Telepítés: flatpak install flathub io.github.wiiznokes.fan-control
SysD Manager
SystemD szolgáltatásokat, timereket, socketeket és egyéb unitokat tudunk kezelni vele.
https://flathub.org/apps/io.github.plrigaux.sysd-manager
Telepítés: flatpak install flathub io.github.plrigaux.sysd-manager
Palackok (Bottles)
WINE-ra épülő segédprogram, segítségével Windows programokat futtathatunk Linux alatt.
https://flathub.org/apps/com.usebottles.bottles
Telepítés: flatpak install flathub com.usebottles.bottles
Concessio
Ez egy nagyon egyszerű, de hasznos kis alkalmazás. Semmi többet nem tud, mint a hagyományos UNIX jogosultságok (ugo-rwx) numerikus és szöveges formátuma közt konvertálni.
https://flathub.org/apps/io.github.ronniedroid.concessio
Telepítés: flatpak install flathub io.github.ronniedroid.concessio
Spotify
A Spotifyt szerintem senkinek sem kell bemutatni.
https://flathub.org/apps/com.spotify.Client
Telepítés: flatpak install flathub com.spotify.Client
Spot
Egy kis erőforrásigényű, GTK-ban írt Spotify kliens. Csak premium accountal működik.
https://flathub.org/apps/dev.alextren.Spot
Telepítés: flatpak install flathub dev.alextren.Spot
ncspot
Egy még kisebb erőforrásigényű, parancssorban futó Spotify kliens.
https://flathub.org/apps/io.github.hrkfdn.ncspot
Telepítés: flatpak install flathub io.github.hrkfdn.ncspot
Spotube
Ismét egy Spotify kliens, érdekessége, hogy a Spotify dalait többféle forrásból (pl. Youtube) tudja lejátszani és letölteni, alacsony erőforrásigény mellett.
https://flathub.org/apps/com.github.KRTirtho.Spotube
Telepítés: flatpak install flathub com.github.KRTirtho.Spotube
Easy Effects
Gépünk hangzásának javítására alkalmas program, rengeteg lehetőséggel. Korábban PulseEffects néven futott. Régebbi disztrókhoz a PulseEffects ajánlott.
https://flathub.org/apps/com.github.wwmm.easyeffects
Telepítés: flatpak run com.github.wwmm.easyeffects
Rövidhullám (Shortwave)
Interenetes rádiók hallgatására alkalmas program, rengeteg állomással, köztük sok magyarral is.
https://flathub.org/apps/de.haeckerfelix.Shortwave
Telepítés: flatpak install flathub de.haeckerfelix.Shortwave
Füljelző (Ear Tag)
Audio fájlok tagjeit lehet állítani vele.
https://flathub.org/apps/app.drey.EarTag
Telepítés: flatpak install flathub app.drey.EarTag
Audio Sharing
Számítógépünk által lejátszott hangot, zenét tudjuk átjátszani bármilyen RTSP fogadásra képes eszközre (pl. okostelefonra).
https://flathub.org/apps/de.haeckerfelix.AudioSharing
Telepítés: flatpak install flathub de.haeckerfelix.AudioSharing
Mirror Hall
A Mirror Hall egy nagyon érdekes alkalmazás (lesz, ha kész lesz). Segítségével a számítógépünk képernyőjét tudjuk tükrözni egy másik számítógépre. Jelenleg még eléggé kezdetleges állapotban van, de már működik. Gnome 47 alatt egy bug miatt összeomlaszthatja a shellt bizonyos esetekben!
https://flathub.org/apps/eu.nokun.MirrorHall
Telepítés: flatpak install flathub eu.nokun.MirrorHall
Ciano
Sokféle audió, videó és képformátumok közt képes konvertálni.
https://flathub.org/apps/com.github.robertsanseries.ciano
Telepítés: flatpak install flathub com.github.robertsanseries.ciano
YTMDesktop
Keresztplatformos Youtube Music lejátszó.
https://flathub.org/apps/app.ytmdesktop.ytmdesktop
Telepítés: flatpak install flathub app.ytmdesktop.ytmdesktop
Mousam
Több időjárás alkalmazás is van Flathubon, szerintem ez a leghasználhatóbb.
https://flathub.org/apps/io.github.amit9838.mousam
Telepítés: flatpak install flathub io.github.amit9838.mousam
Hitelesítő (authenticator)
Kétfaktoros hitelesítéshez használható kódgenerátor.
https://flathub.org/apps/com.belmoussaoui.Authenticator
Telepítés: flatpak install flathub com.belmoussaoui.Authenticator
Password
Erős jelszavak létrehozására és létező jelszavak ellenőrzésére használható alkalmazás.
https://flathub.org/apps/io.gitlab.elescoute.password
Telepítés: flatpak install flathub io.gitlab.elescoute.password
Yubico Authenticator
Yubikey kódok generálására képes eszköz.
https://flathub.org/apps/com.yubico.yubioath
Telepítés: flatpak install flathub com.yubico.yubioath
Vaults
Titkosított tárakat készíthetünk vele, ahova elhelyezhetjük privát fájlainkat. A KDE Vaults plasmoidjához nagyon hasonló megoldás.
https://flathub.org/apps/io.github.mpobaschnig.Vaults
Telepítés: flatpak install flathub io.github.mpobaschnig.Vaults
Cosmic money
Egy egyszerű pénzügykezelő alkalmazás. Alapvetően COSMIC asztali környezethez készült, de természetesen működik más környezetben is.
https://flathub.org/apps/com.francescogaglione.cosmicmoney
Telepítés: flatpak install flathub com.francescogaglione.cosmicmoney
Fondo
Háttérképet letöltésére használható alkalmazás.
https://flathub.org/apps/com.github.calo001.fondo
Telepítés: flatpak install flathub com.github.calo001.fondo
ColorWall
Szintén háttérképek letöltésére használható.
https://flathub.org/apps/com.ktechpit.colorwall
Telepítés: flatpak install flathub com.ktechpit.colorwall
Foliate
Kiváló program e-book olvasáshoz. Remekül megbírkózik az EPUB, MOBI, Kindle, FB2, CBZ, és PDF formátumokkal.
https://flathub.org/apps/com.github.johnfactotum.Foliate
Telepítés: flatpak install flathub com.github.johnfactotum.Foliate
PDF Tricks
PDF dokumentumok darabolásához, egyesítéséhez, konvertálásához, tömörítéséhez használható alkalmazás.
https://flathub.org/apps/com.github.muriloventuroso.pdftricks
Telepítés: flatpak install flathub com.github.muriloventuroso.pdftricks
PDF Arranger
Szintén PDF átalakításhoz használható program.
https://flathub.org/apps/com.github.jeromerobert.pdfarranger
Telepítés: flatpak install flathub com.github.jeromerobert.pdfarranger
Tennivalók (Errands)
Egyszerű "to do" applikáció. Több listát és allistákat is támogat, képes importálni .ics fájlokat, és Nextcloud vagy CalDAV szerverrel szinkronizálható.
https://flathub.org/apps/io.github.mrvladus.List
Telepítés: flatpak install flathub io.github.mrvladus.List
Planify
Egy összetettebb to do lista és tervezőalkalmazás. Todoist platformmal szinkronizálható.
https://flathub.org/apps/io.github.alainm23.planify
Telepítés: flatpak install flathub io.github.alainm23.planify
Filmszalag (Footage)
Alapvető műveleteket tudunk elvégezni videókon (forgatás, trimelés, stb.)
https://flathub.org/apps/io.gitlab.adhami3310.Footage
Letöltés: flatpak install flathub io.gitlab.adhami3310.Footage
Curtail
Képek tömeges méretcsökkentéséhez használható program.
https://flathub.org/apps/com.github.huluti.Curtail
Telepítés: flatpak install flathub com.github.huluti.Curtail
Switcheroo
Képek tömeges átméretezésére és konvertálására használható.
https://flathub.org/apps/io.gitlab.adhami3310.Converter
Telepítés: flatpak run io.gitlab.adhami3310.Converter
Touché
Érintőpad és érintőképernyő gesztusok konfigurálásához használható. A Touchegg programok telepíteni kell hozzá a disztribúciónk csomagkezelőjével.
https://flathub.org/apps/com.github.joseexposito.touche
Telepítés: flatpak install flathub com.github.joseexposito.touche
Turn On
Wake-on-Lan képes eszközeinket kapcsolhatjuk be vele helyi hálózaton keresztül.
https://flathub.org/apps/de.swsnr.turnon
Telepítés: flatpak install flathub de.swsnr.turnon
Awake on LAN
Ugyan azt tudja, mint az előző alkalmazás.
https://flathub.org/apps/co.logonoff.awakeonlan
Telepítés: flatpak install flathub co.logonoff.awakeonlan
Frog
Képekről tud szöveget leolvasni (OCR).
https://flathub.org/apps/com.github.tenderowl.frog
Telepítés: flatpak install flathub com.github.tenderowl.frog
Pods
Podman konténereinket kezelhetjük vele.
https://flathub.org/apps/com.github.marhkb.Pods
Telepítés: flatpak install flathub com.github.marhkb.Pods
Podman Desktop
Az előzőhöz hasonlóan, szintén egy konténerkezelő alkalmazás.
https://flathub.org/apps/io.podman_desktop.PodmanDesktop
Telepítés: flatpak install flathub io.podman_desktop.PodmanDesktop
BoxBuddy
Distrobox konténerek kezeléhez használható.
https://flathub.org/apps/io.github.dvlv.boxbuddyrs
Telepítés: flatpak install flathub io.github.dvlv.boxbuddyrs