From 2083f9b87b225422819076c7054e04aa23b50b6a Mon Sep 17 00:00:00 2001 From: unexplrd Date: Sun, 20 Apr 2025 12:30:39 +0300 Subject: [PATCH] user/flatpak: make some horror Signed-off-by: unexplrd --- hosts/dunamis/users/user/flatpak.nix | 140 +++++++++++++++------------ 1 file changed, 78 insertions(+), 62 deletions(-) diff --git a/hosts/dunamis/users/user/flatpak.nix b/hosts/dunamis/users/user/flatpak.nix index c693a5a..142347f 100644 --- a/hosts/dunamis/users/user/flatpak.nix +++ b/hosts/dunamis/users/user/flatpak.nix @@ -1,4 +1,8 @@ -{inputs, ...}: { +{ + lib, + inputs, + ... +}: { imports = with inputs; [ nix-flatpak.homeManagerModules.nix-flatpak ]; @@ -15,45 +19,63 @@ location = "https://dl.flathub.org/repo/flathub.flatpakrepo"; } ]; - packages = [ - # browsers - "app.zen_browser.zen" - "io.github.ungoogled_software.ungoogled_chromium" - "net.mullvad.MullvadBrowser" - "org.torproject.torbrowser-launcher" - - # misc - "com.bitwarden.desktop" - "com.github.tchx84.Flatseal" - "com.logseq.Logseq" - "com.obsproject.Studio" - "com.usebottles.bottles" - "de.capypara.FieldMonitor" - "de.haeckerfelix.Fragments" - "org.nicotine_plus.Nicotine" - - # chatting - "im.riot.Riot" - "io.github.kukuruzka165.materialgram" - "io.github.spacingbat3.webcord" - "org.mozilla.Thunderbird" - "org.signal.Signal" - # "org.telegram.desktop" - - # media - "io.bassi.Amberol" - "io.freetubeapp.FreeTube" - "org.atheme.audacious" - - # gaming - "com.heroicgameslauncher.hgl" - "com.valvesoftware.Steam" - "net.lutris.Lutris" - "org.prismlauncher.PrismLauncher" - "org.freedesktop.Platform.VulkanLayer.MangoHud//24.08" - "org.freedesktop.Platform.VulkanLayer.gamescope//24.08" - ]; - overrides = { + packages = + [ + # browsers + "app.zen_browser.zen" + "com.vivaldi.Vivaldi" + "net.mullvad.MullvadBrowser" + "org.torproject.torbrowser-launcher" + ] + ++ [ + # editing + "com.github.PintaProject.Pinta" + "org.gimp.GIMP" + "org.kde.kdenlive" + ] + ++ [ + # chatting + "im.riot.Riot" + "io.github.kukuruzka165.materialgram" + "io.github.spacingbat3.webcord" + "org.mozilla.Thunderbird" + "org.signal.Signal" + # "org.telegram.desktop" + ] + ++ [ + # media + "io.bassi.Amberol" + "io.freetubeapp.FreeTube" + "org.atheme.audacious" + ] + ++ [ + # gaming + "com.heroicgameslauncher.hgl" + "com.valvesoftware.Steam" + "net.lutris.Lutris" + "org.prismlauncher.PrismLauncher" + "org.freedesktop.Platform.VulkanLayer.MangoHud//24.08" + "org.freedesktop.Platform.VulkanLayer.gamescope//24.08" + ] + ++ [ + # misc + "com.bitwarden.desktop" + "com.github.tchx84.Flatseal" + "com.logseq.Logseq" + "com.obsproject.Studio" + "com.usebottles.bottles" + "de.capypara.FieldMonitor" + "de.haeckerfelix.Fragments" + "org.nicotine_plus.Nicotine" + ]; + overrides = let + homeNoNetwork = { + Context.share = ["!network"]; + Context.filesystems = ["home"]; + }; + game.sockets = ["x11" "wayland"]; + game.folder = folder: ["/storage/games/${folder}" "~/games/${folder}"]; + in { "global" = { Context = { sockets = ["wayland" "!x11" "!fallback-x11"]; @@ -74,35 +96,29 @@ }; "com.valvesoftware.Steam" = { Context = { - sockets = ["x11" "wayland"]; - filesystems = ["/storage/games/steam"]; + inherit (game) sockets; + filesystems = game.folder "steam"; }; Environment.STEAM_FORCE_DESKTOPUI_SCALING = "1.3"; }; - "org.signal.Signal" = { - Environment.SIGNAL_PASSWORD_STORE = "gnome-libsecret"; - }; - "com.obsproject.Studio" = { - Context.filesystems = ["~/vids"]; - }; - "com.logseq.Logseq" = { - Context.filesystems = [ - "~/docs/logseq" - "~/docs/nure/2025/logseq" - "~/syncthing/logseq" - ]; - }; "net.lutris.Lutris".Context = { - sockets = ["x11" "wayland"]; - filesystems = ["/storage/games/lutris" "~/games/lutris"]; + inherit (game) sockets; + filesystems = game.folder "lutris"; }; "com.heroicgameslauncher.hgl".Context = { - sockets = ["x11" "wayland"]; - filesystems = ["/storage/games/heroic" "~/games/heroic"]; - }; - "com.usebottles.Bottles" = { - Context.sockets = ["x11" "wayland"]; + inherit (game) sockets; + filesystems = game.folder "heroic"; }; + "com.github.PintaProject.Pinta" = {inherit (homeNoNetwork) Context;}; + "com.logseq.Logseq" = {inherit (homeNoNetwork) Context;}; + "com.obsproject.Studio" = {inherit (homeNoNetwork) Context;}; + "com.usebottles.Bottles".Context = {inherit (game) sockets;}; + "io.bassi.Amberol" = {inherit (homeNoNetwork) Context;}; + "io.freetubeapp.FreeTube" = {inherit (homeNoNetwork) Context;}; + "org.atheme.audacious" = {inherit (homeNoNetwork) Context;}; + "org.gimp.GIMP" = {inherit (homeNoNetwork) Context;}; + "org.kde.kdenlive" = {inherit (homeNoNetwork) Context;}; + "org.signal.Signal".Environment.SIGNAL_PASSWORD_STORE = "gnome-libsecret"; }; }; }