diff --git a/flatpak/sa.sy.qocker.json b/flatpak/sa.sy.qocker.json index 3ce08a0..658a308 100644 --- a/flatpak/sa.sy.qocker.json +++ b/flatpak/sa.sy.qocker.json @@ -7,6 +7,21 @@ "base-version": "5.15-23.08", "command": "qocker", "modules": [ + { + "name": "docker-cli", + "buildsystem": "simple", + "build-commands": [ + "tar xzvf docker-20.10.9.tgz", + "install -D docker/docker /app/bin/docker" + ], + "sources": [ + { + "type": "file", + "url": "https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz", + "sha256": "caf74e54b58c0b38bb4d96c8f87665f29b684371c9a325562a3904b8c389995e" + } + ] + }, { "name": "qocker", "buildsystem": "simple", @@ -15,9 +30,8 @@ ], "sources": [ { - "type": "git", - "url": "https://github.com/xlmnxp/qocker.git", - "tag": "v0.2" + "type": "dir", + "path": ".." } ] } @@ -26,6 +40,9 @@ "--share=network", "--socket=fallback-x11", "--socket=wayland", - "--filesystem=/run/docker.sock" + "--env=DOCKER_HOST=unix:///run/docker.sock", + "--filesystem=/run/docker.sock", + "--system-talk-name=org.freedesktop.DBus", + "--socket=session-bus" ] } \ No newline at end of file diff --git a/main.py b/main.py index ddd466f..d43cb87 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 import sys +import os from PyQt5.QtWidgets import (QApplication, QMainWindow, QTabWidget, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QHBoxLayout, QWidget, QToolBar, QAction, QMenu, QHeaderView, QLabel, QLineEdit, QCheckBox, QMessageBox, QInputDialog) @@ -41,7 +42,11 @@ class TerminalOpener(QThread): if system == "Darwin": # macOS subprocess.Popen(['open', '-a', 'Terminal', '--', 'sh', '-c', f"{docker_command}"]) elif system == "Linux": - subprocess.Popen(['x-terminal-emulator', '-e', f'sh -c "{docker_command}"']) + # check if inside flatpak + if 'container' in os.environ: + subprocess.Popen(['flatpak-spawn', '--host', 'x-terminal-emulator', '-e', f'sh -c "{docker_command}"']) + else: + subprocess.Popen(['x-terminal-emulator', '-e', f'sh -c "{docker_command}"']) elif system == "Windows": subprocess.Popen(['start', 'cmd', '/k', docker_command], shell=True) else: @@ -64,7 +69,10 @@ class LogsOpener(QThread): if system == "Darwin": # macOS subprocess.Popen(['open', '-a', 'Terminal', '--', 'sh', '-c', f"{docker_command}"]) elif system == "Linux": - subprocess.Popen(['x-terminal-emulator', '-e', f'sh -c "{docker_command}"']) + if 'container' in os.environ: + subprocess.Popen(['flatpak-spawn', '--host', 'x-terminal-emulator', '-e', f'sh -c "{docker_command}"']) + else: + subprocess.Popen(['x-terminal-emulator', '-e', f'sh -c "{docker_command}"']) elif system == "Windows": subprocess.Popen(['start', 'cmd', '/k', docker_command], shell=True) else: