!Flatpak

2023-03-06T21:25:07+05:00

linux

Обновлено: 20.12.23

Установка

pacman -S flatpak flatpak-xdg-utils flatpak-builder elfutils patch --needed

Добавляем репозиторий Flathub и Flathub-Beta

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo &&
flatpak remote-add --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo

Обновление приложений или среду выполнения

flatpak update

Разрешить доступ только для чтения к конфигурациям GTK

sudo flatpak override --filesystem=xdg-config/gtk-3.0:ro
sudo flatpak override --filesystem=xdg-config/gtk-4.0:ro

Включите курсоры и значки мыши в Flatpak (таким образом курсор мыши будет отображаться правильно).

flatpak --user override --filesystem=/home/$USER/.icons/:ro
flatpak --user override --filesystem=/usr/share/icons/:ro

Установка программ с Flathub

PKGS=(
        'com.discordapp.Discord' # Чат для геймеров
        'com.github.tchx84.Flatseal' # Управление разрешениями Flatpak, для KDE не нужен
        'net.davidotek.pupgui2' # ProtonUpQt
        'com.usebottles.bottles' # Бутылка Wine Менеджер
        'org.blender.Blender'
)
flatpak install -y --noninteractive flathub "${PKGS[@]}"

Правила и настройки

# Использовать wayland
flatpak override --socket=wayland org.blender.Blender
flatpak override --socket=wayland com.discordapp.Discord
# Дать возможность Bottles создавать ярлыки
flatpak override --filesystem=xdg-data/applications com.usebottles.bottles
# Правим discord ярлык для совместимости на Wayland
cp /var/lib/flatpak/app/com.discordapp.Discord/current/active/files/share/applications/com.discordapp.Discord.desktop $HOME/.local/share/applications
sed -i "s|Exec=discord|Exec=flatpak run com.discordapp.Discord --enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform=wayland|g" $HOME/.local/share/applications/com.discordapp.Discord.desktop

Установка программ с Flathub-beta

PKGS=(
        'org.gimp.GIMP' # Редактор изображений (Имеет нативную поддержку wayland)
)
flatpak install -y --noninteractive flathub-beta "${PKGS[@]}"

#  Удобства / полезное

Для WM (оконных менеджеров) использующих rofi dmenu, и также для тех кто не хочет постоянно перезапускать сессию для появления ярлыков. Создаёт символическую ссылку чтобы ярлыки Flatpak'ов были в /usr/share/applications, и показывались в меню пуск

ln -s /var/lib/flatpak /usr/share/applications

Alias для удобного запуска программ через flatpak, прописываем в .bashrc или .zshrc

alias flat="flatpak run"
flat [название программы]

Взято из поста Reddit

Экспорт пакетов Flatpak

flatpak list --columns=application --app > flatpaks.txt

Импорт пакетов Flatpak

xargs flatpak install -y < flatpaks.txt

Очистить осиротевшие Flatpak runtimes

flatpak uninstall --unused --noninteractive

[11.06.2023] Во flatpak скоро будет своя собственная реализация синхронизации пакетов т.е импорт и экспорт называется flatsync. Новость в The Linux Experiment

#  Как вернуться к предыдущей коммиту Flatpak

# Список доступных коммитов
flatpak remote-info --log flathub org.godotengine.Godot

# Откатить до специфичной версии
sudo flatpak update --commit=${HASH} org.godotengine.Godot

# Закрепить версию
flatpak mask org.godotengine.Godot

#  Полезные опции

  • -y (--assumeyes) - Избавится от вопросов
  • --noninteractive - Без лишних подробностей