85 Commits
1.1.0 ... main

Author SHA1 Message Date
8662bfe619 attempt to fixed audio 2025-11-24 12:44:56 +01:00
f978c96265 version bump up 2025-10-10 11:03:45 +02:00
000bd789b1 removed history bloat 2025-10-10 10:21:07 +02:00
cd2545934e bugfixing and added history data apply 2025-09-17 12:48:53 +02:00
efa23f6b50 possibly fixd everything 2025-09-17 12:24:31 +02:00
5083bedf57 possibly fixd everything 2025-09-17 12:11:34 +02:00
a621e58db8 gitignore edit 2025-09-17 12:11:05 +02:00
fa41eb1b02 added history wiew 2025-09-17 11:45:04 +02:00
5f3b4b7ddb meta edit 2025-09-16 14:41:56 +02:00
0d09c9701d bugfix 2025-09-16 14:32:39 +02:00
17e46ed0b2 bugfix 2025-09-16 14:20:27 +02:00
5931143564 bugfix 2025-09-16 14:07:41 +02:00
36f9cac0af fixd app name in keyring 2025-09-16 13:53:06 +02:00
eea479b3df added keyring auth, so we don't have to save credentials in file 2025-09-16 13:47:28 +02:00
d38aeda6c0 reverted back to subprocess.run and bumped up version 2025-02-19 12:57:40 +01:00
2e0f3849be fix missing comma 2025-02-19 12:32:07 +01:00
ef4f0f3e18 freerdp refactor to mirror official package build process 2025-02-19 12:29:58 +01:00
259b3fb58d typo fix 2025-02-19 11:50:56 +01:00
54aae72e28 changed subprocess.run to subprocess.call 2025-02-19 11:42:31 +01:00
fbcae78456 added popen.communicate() to execute xfreerdp 2025-02-19 11:20:09 +01:00
364da38f3c revert to xfreerdp fro mxfreerdp3 2025-02-19 11:00:23 +01:00
6992aa696c xfreerdp3 bugfix 2025-02-18 23:52:09 +01:00
f02f631820 edit action 2025-02-18 15:22:50 +01:00
d5d8c4d07a run action 2025-02-18 14:52:49 +01:00
6fc26bb6af removed bundle from build 2025-02-18 14:51:26 +01:00
5556e8d890 added ignore cert and changed xfreerdp binary to execute xfreerdp3 2025-02-18 13:35:23 +01:00
a03da0f8bb CI/CD edit 2025-02-13 11:03:43 +01:00
86540bfa0d added CI/CD for doublecmd and removed comented out shite from rdpconnect CI/CD 2025-02-13 10:58:18 +01:00
fb2d36d84c CI/CD edit 2025-02-13 03:23:09 +01:00
6c5606174a CI/CD edit 2025-02-13 03:05:02 +01:00
76bbf76666 CI/CD edit 2025-02-13 02:33:04 +01:00
04c2cff8d9 CI/CD edit 2025-02-13 02:31:25 +01:00
776a92fae1 CI/CD edit 2025-02-13 02:30:10 +01:00
ca3a30982f CI/CD edit 2025-02-13 02:29:21 +01:00
7052b0be80 CI/CD edit 2025-02-13 02:14:36 +01:00
81d27b0799 CI/CD edit 2025-02-13 02:13:00 +01:00
15f2c3d10f CI/CD edit 2025-02-13 01:48:26 +01:00
42bd5acf03 CI/CD edit 2025-02-13 01:36:20 +01:00
d869da8d07 removed repo 2025-02-13 01:23:39 +01:00
da53ae19bd CI/CD edit 2025-02-13 01:22:27 +01:00
07c85079f4 CI/CD edit, removed repo 2025-02-13 01:21:36 +01:00
ecbf52b25f CI/CD edit 2025-02-13 01:09:51 +01:00
a64a31eb2d CI/CD edit 2025-02-13 01:06:30 +01:00
138cbd029a CI/CD edit 2025-02-13 01:04:00 +01:00
9916fee478 CI/CD edit 2025-02-13 01:01:51 +01:00
417dc096ff CI/CD edit 2025-02-13 01:00:25 +01:00
161d8dbd2a CI/CD edit 2025-02-13 00:57:15 +01:00
1f0e1bd229 CI/CD edit 2025-02-13 00:39:30 +01:00
b596f32d66 CI/CD edit 2025-02-12 23:42:59 +01:00
89dfb7169f CI/CD edit 2025-02-12 23:36:29 +01:00
cb001018ba CI/CD edit 2025-02-12 23:34:45 +01:00
3f0a310f5f CI/CD edit 2025-02-12 23:27:19 +01:00
f449e4f8ba CI/CD edit 2025-02-12 23:22:48 +01:00
58808e0a7c CI/CD edit 2025-02-12 23:21:36 +01:00
a765fb904d CI/CD edit 2025-02-12 23:21:06 +01:00
a05570365d CI/CD edit 2025-02-12 23:20:16 +01:00
014f5b3cc2 CI/CD edit 2025-02-12 23:19:28 +01:00
ab881ca709 CI/CD edit 2025-02-12 23:12:14 +01:00
08b4631032 CI/CD edit 2025-02-12 23:11:23 +01:00
4aa5ff1e2c CI/CD edit 2025-02-12 21:40:32 +01:00
c02a887992 CI/CD edit 2025-02-12 21:38:28 +01:00
592ee09793 CI/CD edit 2025-02-12 21:36:24 +01:00
93c8e4a50a CI/CD edit 2025-02-12 21:18:19 +01:00
53fa8e4a1e CI/CD edit 2025-02-12 21:14:11 +01:00
23fa27fa7d CI/CD edit 2025-02-12 21:13:34 +01:00
ec45bb4a1f CI/CD edit 2025-02-12 21:12:37 +01:00
d760a491c4 CI/CD edit 2025-02-12 21:11:58 +01:00
3bc9492a90 CI/CD edit 2025-02-12 21:10:35 +01:00
716a2a1e34 CI/CD edit 2025-02-12 21:07:23 +01:00
dca16b890d CI/CD edit 2025-02-12 21:05:25 +01:00
610108d860 minor changes in CI/CD 2025-02-12 20:45:28 +01:00
3f26865ea8 minor changes in CI/CD 2025-02-12 20:44:31 +01:00
494e255282 minor changes in CI/CD 2025-02-12 20:39:48 +01:00
63bb811bb0 minor changes in CI/CD 2025-02-12 20:39:10 +01:00
18cc340519 minor changes in CI/CD 2025-02-12 20:36:02 +01:00
ac2c16f81e minor changes in CI/CD 2025-02-12 20:32:43 +01:00
678c32893e minor changes in CI/CD 2025-02-12 20:31:54 +01:00
bff921c878 minor changes in CI/CD 2025-02-12 20:26:45 +01:00
b998801c40 minor changes in CI/CD 2025-02-12 20:25:08 +01:00
504957b611 change to start CI/CD 2025-02-12 20:19:37 +01:00
e47dd436a0 edit action to get files in dir 2025-02-12 20:17:27 +01:00
447f895865 renamed action 2025-02-12 20:15:49 +01:00
c4ff05da64 moved actions 2025-02-12 20:14:52 +01:00
e917219c28 added workflow for test 2025-02-12 20:11:54 +01:00
b3a9e45e8e minor edits 2024-11-22 18:43:48 +01:00
14032 changed files with 906 additions and 227 deletions

View File

@@ -0,0 +1,42 @@
name: com.angoosh.doublecmd deploy
run-name: ${{ gitea.actor }}
on:
push:
branches: [main]
paths:
- com.angoosh.doublecmd/**
jobs:
flatpak:
name: "Flatpak"
runs-on: ubuntu-latest
container:
image: bilelmoussaoui/flatpak-github-actions:gnome-44
options: --privileged
steps:
- run: sudo dnf install -y nodejs
- name: "Check out repo code"
uses: actions/checkout@v4
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PRIVATE_KEY_PASS }}
- name: "Build"
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: doublecmd.flatpak
manifest-path: com.angoosh.doublecmd/com.angoosh.doublecmd.yml
cache-key: flatpak-builder-${{ gitea.sha }}
gpg-sign: kaplanantonin@gmail.com
- name: Push flatpak to repo
run: |
git clone https://github.com/flatpak/flat-manager.git
export REPO_TOKEN=${{ secrets.FLATMAN_API_TOKEN }}
export FLATMAN_URL=$(./flat-manager/flat-manager-client create https://flatpak.angoosh.com stable)
echo $REPO_TOKEN
echo $FLATMAN_URL
./flat-manager/flat-manager-client push --commit $FLATMAN_URL repo
./flat-manager/flat-manager-client publish $FLATMAN_URL

View File

@@ -0,0 +1,45 @@
name: com.angoosh.RDPConnect deploy
run-name: ${{ gitea.actor }}
on:
push:
branches: [main]
paths:
- com.angoosh.RDPConnect/**
jobs:
flatpak:
name: "Flatpak"
runs-on: ubuntu-latest
container:
image: bilelmoussaoui/flatpak-github-actions:gnome-44
options: --privileged
steps:
- run: sudo dnf install -y nodejs
- name: "Check out repo code"
uses: actions/checkout@v4
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PRIVATE_KEY_PASS }}
- name: "Build"
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
build-bundle: false
upload-artifact: false
cache: false
restore-cache: false
manifest-path: com.angoosh.RDPConnect/com.angoosh.RDPConnect.yml
cache-key: flatpak-builder-${{ gitea.sha }}
gpg-sign: kaplanantonin@gmail.com
- name: Push flatpak to repo
run: |
git clone https://github.com/flatpak/flat-manager.git
export REPO_TOKEN=${{ secrets.FLATMAN_API_TOKEN }}
export FLATMAN_URL=$(./flat-manager/flat-manager-client create https://flatpak.angoosh.com stable)
echo $REPO_TOKEN
echo $FLATMAN_URL
./flat-manager/flat-manager-client push --commit $FLATMAN_URL repo
./flat-manager/flat-manager-client publish $FLATMAN_URL

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
#Ignore all repo directories #Ignore all repo directories
.flatpak-builder/ .flatpak-builder/
com.angoosh.RDPConnect/testing.py

View File

@@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
flatpak-builder --gpg-sign=kaplanantonin@gmail.com --force-clean --user --install-deps-from=flathub --repo=../repo --install builddir com.angoosh.RDPConnect.yml flatpak-builder --gpg-sign=kaplanantonin@gmail.com --force-clean --user --install-deps-from=flathub --repo=../repo --install builddir com.angoosh.RDPConnect.yml
#flatpak build-bundle repo RDPConnect.flatpak com.angoosh.RDPConnect --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo ####flatpak build-bundle repo RDPConnect.flatpak com.angoosh.RDPConnect --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo

View File

@@ -43,30 +43,30 @@
<url type="vcs-browser">https://gitea.farmdash.org/angoosh/Flatpaks/src/branch/main/com.angoosh.RDPConnect</url> <url type="vcs-browser">https://gitea.farmdash.org/angoosh/Flatpaks/src/branch/main/com.angoosh.RDPConnect</url>
<releases> <releases>
<release version="1.0.1" date="2024-11-20">
<url type="details">https://gitea.farmdash.org/angoosh/Flatpaks/commits/branch/main</url>
<description>
<p>Changed directory permissions from home to xdg-config</p>
</description>
</release>
<release version="1.0.2" date="2024-11-20">
<url type="details">https://gitea.farmdash.org/angoosh/Flatpaks/commit/85ea660c7e11d0c65c8aef23fcf76853882975cf</url>
<description>
<p>Password is now encrypted</p>
</description>
</release>
<release version="1.0.3" date="2024-11-20">
<url type="details">https://gitea.farmdash.org/angoosh/Flatpaks/commit/2093a21ecfa86c20f15b9b44897d1c7bebfafd79</url>
<description>
<p>Cropped screenshot and made background invisible</p>
</description>
</release>
<release version="1.1.0" date="2024-11-22"> <release version="1.1.0" date="2024-11-22">
<url type="details">https://gitea.farmdash.org/angoosh/Flatpaks/commit/2093a21ecfa86c20f15b9b44897d1c7bebfafd79</url> <url type="details">https://gitea.farmdash.org/angoosh/Flatpaks/src/tag/1.1.0</url>
<description> <description>
<p>Created about section, borgar menu, settings menu and we have easy settings for the rdp connection now</p> <p>Created about section, borgar menu, settings menu and we have easy settings for the rdp connection now</p>
</description> </description>
</release> </release>
<release version="1.2.0" date="2025-02-19">
<url type="details">https://gitea.farmdash.org/angoosh/Flatpaks/src/tag/1.2.0</url>
<description>
<p>Updated to newest FreeRDP which seems to fix issues with hanging / freezing</p>
</description>
</release>
<release version="1.3.0" date="2025-09-16">
<url type="details">https://gitea.farmdash.org/angoosh/Flatpaks/src/tag/1.3.0</url>
<description>
<p>Changed pasword storage from file to system keyring. Still using file for compatibility. Added connection history menu.</p>
</description>
</release>
<release version="1.3.1" date="2025-09-16">
<url type="details">https://gitea.farmdash.org/angoosh/Flatpaks/src/tag/1.3.1</url>
<description>
<p>History menu now shows only unique entries, no duplicates</p>
</description>
</release>
</releases> </releases>
<screenshots> <screenshots>

View File

@@ -1,10 +1,7 @@
id: com.angoosh.RDPConnect id: com.angoosh.RDPConnect
runtime: org.gnome.Platform runtime: org.gnome.Platform
#runtime: org.freedesktop.Platform
runtime-version: '47' runtime-version: '47'
#runtime-version: '23.08'
sdk: org.gnome.Sdk sdk: org.gnome.Sdk
#sdk: org.freedesktop.Sdk
command: rdpconnect command: rdpconnect
build-options: build-options:
@@ -31,30 +28,33 @@ finish-args:
- --socket=pulseaudio - --socket=pulseaudio
- --socket=cups - --socket=cups
- --filesystem=xdg-config - --filesystem=xdg-config
- --filesystem=xdg-download
- --socket=pcsc - --socket=pcsc
# - --socket=system-bus # - --socket=system-bus
- --socket=session-bus
# - --talk-name=org.freedesktop.Flatpak # - --talk-name=org.freedesktop.Flatpak
add-build-extensions: add-build-extensions:
org.freedesktop.Platform.ffmpeg-full: org.freedesktop.Platform.ffmpeg-full:
- directory: lib/ffmpeg - directory: lib/ffmpeg
version: 23.08 version: 24.08
add-ld-path: . add-ld-path: .
org.freedesktop.Platform.openh264: org.freedesktop.Platform.openh264:
- directory: lib/openh264 - directory: lib/openh264
version: 2.4.1 version: 2.4.1
add-ld-path: . add-ld-path: .
modules: modules:
- modules/openssl.json
- modules/libusb.json - modules/libusb.json
- modules/uriparser.json - modules/SDL2_ttf.json
- modules/SDL2_image.json
- modules/cJSON.json - modules/cJSON.json
- modules/xprop.json - modules/xprop.json
- modules/pcsc.json - modules/pcsc.json
- modules/krb5.json - modules/uriparser.json
- modules/pkcs11-helper.json
- modules/opensc.json - modules/opensc.json
- modules/krb5.json
- modules/freerdp.json - modules/freerdp.json
- name: python - name: python
@@ -69,7 +69,7 @@ modules:
build-args: build-args:
- --share=network - --share=network
build-commands: build-commands:
- pip3 install PyGObject cryptography - pip3 install PyGObject cryptography keyring
- name: rdpconnect - name: rdpconnect
buildsystem: simple buildsystem: simple

View File

@@ -18,13 +18,15 @@ from cryptography.fernet import Fernet
gi.require_version('Gtk', '4.0') gi.require_version('Gtk', '4.0')
gi.require_version('Adw', '1') gi.require_version('Adw', '1')
from gi.repository import Gtk, Adw, Gdk, Gio from gi.repository import Gtk, Adw, Gdk, Gio
import keyring
APPID = "com.angoosh.RDPConnect" APPID = "com.angoosh.RDPConnect"
HOMEDIR = os.path.expanduser('~') HOMEDIR = os.path.expanduser('~')
VERSION = "1.1.0" VERSION = "1.3.1"
conn_info = {} conn_info = {}
hist_info = {}
settings = {} settings = {}
settings["extra_params"] = {} settings["extra_params"] = {}
fernet = "" fernet = ""
@@ -32,7 +34,7 @@ fernet = ""
def load_keys(): def load_keys():
global fernet global fernet
cryptoKey = "" cryptoKey = ""
try: try:
with open(HOMEDIR+"/.config/rdpconnect/.key", "r") as keyfile: with open(HOMEDIR+"/.config/rdpconnect/.key", "r") as keyfile:
cryptoKey = str.encode(keyfile.readline()) cryptoKey = str.encode(keyfile.readline())
print("Encription key loaded") print("Encription key loaded")
@@ -45,18 +47,30 @@ def load_keys():
fernet = Fernet(cryptoKey) fernet = Fernet(cryptoKey)
def load_config(): def load_config():
global conn_info, settings global conn_info, settings, hist_info
loaded_json = "" loaded_json = ""
try: try:
with open(HOMEDIR+"/.config/rdpconnect/connection.json", "r") as connection_file: with open(HOMEDIR+"/.config/rdpconnect/history.json", "r") as history_file:
for line in connection_file: for line in history_file:
loaded_json += line loaded_json += line
conn_info = json.loads(loaded_json) hist_info = json.loads(loaded_json)
last_conn = hist_info[max(hist_info)]
conn_info["user"] = last_conn.split('@')[0]
conn_info["ip"] = last_conn.split('@')[1]
conn_info["passwd"] = keyring.get_password("com.angoosh.RDPConnect", last_conn)
conn_info["passwd"] = fernet.decrypt(str.encode(conn_info["passwd"])).decode()
except: except:
print("[WARN] FILE: "+HOMEDIR+"/.config/rdpconnect/connection.json doesn't exist") try:
with open(HOMEDIR+"/.config/rdpconnect/connection.json", "r") as connection_file:
for line in connection_file:
loaded_json += line
conn_info = json.loads(loaded_json)
conn_info["passwd"] = fernet.decrypt(str.encode(conn_info["passwd"])).decode()
except:
print("[WARN] FILE: "+HOMEDIR+"/.config/rdpconnect/connection.json doesn't exist")
loaded_json = "" loaded_json = ""
try: try:
@@ -68,14 +82,58 @@ def load_config():
except: except:
print("[WARN] FILE: "+HOMEDIR+"/.config/rdpconnect/settings.json doesn't exist") print("[WARN] FILE: "+HOMEDIR+"/.config/rdpconnect/settings.json doesn't exist")
class HistoryWindow(Gtk.Window):
global hist_info, conn_info, app
def __init__(self, **kargs):
super().__init__(**kargs, title='History')
self.set_default_size(100, 300)
self.scroll = Gtk.ScrolledWindow()
self.scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
self.grid = Gtk.Grid()
self.scroll.set_child(self.grid)
index = 0
for i in hist_info:
self.addRow(hist_info[i], index)
index += 1
self.set_child(self.scroll)
self.show()
def addRow(self, entry, index):
b = Gtk.Button(label=entry)
b.connect("clicked", self.apply_contents)
self.grid.attach(b, 0, index, 1, 1)
def apply_contents(self, button):
conn_info["user"] = button.get_label().split('@')[0]
conn_info["ip"] = button.get_label().split('@')[1]
app.ip.get_buffer().set_text(str(conn_info["ip"]), len(conn_info["ip"]))
app.user.get_buffer().set_text(str(conn_info["user"]), len(conn_info["user"]))
try:
conn_info["passwd"] = keyring.get_password("com.angoosh.RDPConnect", button.get_label())
app.passwd.get_buffer().set_text(str(conn_info["passwd"]), len(conn_info["passwd"]))
except:
pass
self.destroy()
class PreferencesWindow(Gtk.Window): class PreferencesWindow(Gtk.Window):
global settings global settings
def __init__(self, **kwargs): def __init__(self, **kwargs):
super().__init__(**kwargs) super().__init__(**kwargs)
self.builder = Gtk.Builder(self) self.builder = Gtk.Builder(self)
self.builder.add_from_file("/app/preferences.ui") self.builder.add_from_file("/app/preferences.ui")
self.resx = self.builder.get_object("resx") self.resx = self.builder.get_object("resx")
self.resy = self.builder.get_object("resy") self.resy = self.builder.get_object("resy")
self.monitors = self.builder.get_object("monitors") self.monitors = self.builder.get_object("monitors")
@@ -85,7 +143,7 @@ class PreferencesWindow(Gtk.Window):
self.mic = self.builder.get_object("mic") self.mic = self.builder.get_object("mic")
self.dynres = self.builder.get_object("dynres") self.dynres = self.builder.get_object("dynres")
self.clipboard = self.builder.get_object("clipboard") self.clipboard = self.builder.get_object("clipboard")
try: try:
self.clipboard.set_state(settings["extra_params"]["clipboard"]) self.clipboard.set_state(settings["extra_params"]["clipboard"])
self.clipboard.set_active(settings["extra_params"]["clipboard"]) self.clipboard.set_active(settings["extra_params"]["clipboard"])
@@ -97,13 +155,13 @@ class PreferencesWindow(Gtk.Window):
except: except:
pass pass
try: try:
self.mic.set_state(settings["extra_params"]["microphone"]) self.mic.set_state(settings["extra_params"]["microphone:sys:alsa"])
self.mic.set_active(settings["extra_params"]["microphone"]) self.mic.set_active(settings["extra_params"]["microphone:sys:alsa"])
except: except:
pass pass
try: try:
self.sound.set_state(settings["extra_params"]["sound"]) self.sound.set_state(settings["extra_params"]["sound:sys:alsa"])
self.sound.set_active(settings["extra_params"]["sound"]) self.sound.set_active(settings["extra_params"]["sound:sys:alsa"])
except: except:
pass pass
try: try:
@@ -129,63 +187,64 @@ class PreferencesWindow(Gtk.Window):
self.resy.get_buffer().set_text(str(settings["extra_params"]["h"]), len(settings["extra_params"]["h"])) self.resy.get_buffer().set_text(str(settings["extra_params"]["h"]), len(settings["extra_params"]["h"]))
except: except:
pass pass
pref_window = self.builder.get_object("pref_window") pref_window = self.builder.get_object("pref_window")
pref_window.show() pref_window.show()
def f_resx(self, app): def f_resx(self, app):
settings["extra_params"]["w"] = self.resx.get_buffer().get_text() settings["extra_params"]["w"] = self.resx.get_buffer().get_text()
def f_resy(self, app): def f_resy(self, app):
settings["extra_params"]["h"] = self.resy.get_buffer().get_text() settings["extra_params"]["h"] = self.resy.get_buffer().get_text()
def monconf(self, app): def monconf(self, app):
settings["extra_params"]["monitors"] = self.monitors.get_buffer().get_text() settings["extra_params"]["monitors"] = self.monitors.get_buffer().get_text()
def clipboard(self, app, state): def clipboard(self, app, state):
if state: if state:
settings["extra_params"]["clipboard"] = True settings["extra_params"]["clipboard"] = True
else: else:
settings["extra_params"]["clipboard"] = False settings["extra_params"]["clipboard"] = False
def dynres(self, app, state): def dynres(self, app, state):
if state: if state:
settings["extra_params"]["dynamic-resolution"] = True settings["extra_params"]["dynamic-resolution"] = True
else: else:
settings["extra_params"]["dynamic-resolution"] = False settings["extra_params"]["dynamic-resolution"] = False
def microphone(self, app, state): def microphone(self, app, state):
if state: if state:
settings["extra_params"]["microphone"] = True settings["extra_params"]["microphone:sys:alsa"] = True
else: else:
settings["extra_params"]["microphone"] = False settings["extra_params"]["microphone:sys:alsa"] = False
def sound(self, app, state): def sound(self, app, state):
if state: if state:
settings["extra_params"]["sound"] = True settings["extra_params"]["sound:sys:alsa"] = True
else: else:
settings["extra_params"]["sound"] = False settings["extra_params"]["sound:sys:alsa"] = False
def xfree(self, app, state): def xfree(self, app, state):
if state: if state:
settings["rdp_bin"] = "xfreerdp" settings["rdp_bin"] = "xfreerdp"
else: else:
settings["rdp_bin"] = "sdl-freerdp" settings["rdp_bin"] = "sdl-freerdp"
def fscr(self, app, state): def fscr(self, app, state):
if state: if state:
settings["extra_params"]["f"] = True settings["extra_params"]["f"] = True
else: else:
settings["extra_params"]["f"] = False settings["extra_params"]["f"] = False
def on_destroy(self, app): def on_destroy(self, app):
print("Saving settings config to "+HOMEDIR+"/.config/rdpconnect/settings.json") print("Saving settings config to "+HOMEDIR+"/.config/rdpconnect/settings.json")
with open(HOMEDIR+"/.config/rdpconnect/settings.json", "w") as settings_file: with open(HOMEDIR+"/.config/rdpconnect/settings.json", "w") as settings_file:
js = json.dumps(settings, sort_keys=True, indent=4, separators=(',', ': ')) js = json.dumps(settings, sort_keys=True, indent=4, separators=(',', ': '))
settings_file.write(js) settings_file.write(js)
class MyApp(Adw.Application): class MyApp(Adw.Application):
global hist_info
def __init__(self, **kwargs): def __init__(self, **kwargs):
super().__init__(**kwargs) super().__init__(**kwargs)
self.connect('activate', self.on_activate) self.connect('activate', self.on_activate)
@@ -245,6 +304,10 @@ class MyApp(Adw.Application):
action.connect('activate', self.on_about) action.connect('activate', self.on_about)
self.add_action(action) self.add_action(action)
action = Gio.SimpleAction(name='history')
action.connect('activate', self.on_history)
self.add_action(action)
def on_about(self, action, param): def on_about(self, action, param):
about_dialog = Gtk.AboutDialog(transient_for=self.win, modal=True) about_dialog = Gtk.AboutDialog(transient_for=self.win, modal=True)
about_dialog.set_copyright("Antonin Kaplan") about_dialog.set_copyright("Antonin Kaplan")
@@ -258,17 +321,36 @@ class MyApp(Adw.Application):
def on_preferences(self, action, param): def on_preferences(self, action, param):
PreferencesWindow() PreferencesWindow()
def on_history(self, action, param):
HistoryWindow()
def saveConnConf(self): def saveConnConf(self):
if settings["save_conn"]: if settings["save_conn"]:
password = conn_info["passwd"] password = conn_info["passwd"]
conn_info["passwd"] = fernet.encrypt(password.encode()).decode("utf-8") useratip = conn_info["user"] + "@" + conn_info["ip"]
print("Saving connection config to "+HOMEDIR+"/.config/rdpconnect/connection.json") new_conn = 1
with open(HOMEDIR+"/.config/rdpconnect/connection.json", "w") as connection_file: for i in hist_info:
js = json.dumps(conn_info, sort_keys=True, indent=4, separators=(',', ': ')) if hist_info[i] == useratip:
connection_file.write(js) new_conn = 0
if new_conn == 1:
with open(HOMEDIR+"/.config/rdpconnect/history.json", "w") as hist_file:
hist_id = str(int(max(hist_info, default=0)) + 1)
hist_info[hist_id] = useratip
js = json.dumps(hist_info, sort_keys=True, indent=4, separators=(',', ': '))
hist_file.write(js)
conn_info["passwd"] = password try:
keyring.set_password("com.angoosh.RDPConnect", useratip, password)
except:
conn_info["passwd"] = fernet.encrypt(password.encode()).decode("utf-8")
print("Saving connection config to "+HOMEDIR+"/.config/rdpconnect/connection.json")
with open(HOMEDIR+"/.config/rdpconnect/connection.json", "w") as connection_file:
js = json.dumps(conn_info, sort_keys=True, indent=4, separators=(',', ': '))
connection_file.write(js)
conn_info["passwd"] = password
else: else:
with open(HOMEDIR+"/.config/rdpconnect/connection.json", "w") as connection_file: with open(HOMEDIR+"/.config/rdpconnect/connection.json", "w") as connection_file:
connection_file.write("") connection_file.write("")
@@ -291,7 +373,7 @@ class MyApp(Adw.Application):
settings["rdp_bin"] = "sdl-freerdp" settings["rdp_bin"] = "sdl-freerdp"
self.saveConnConf() self.saveConnConf()
extra_params = [] extra_params = []
for item in settings["extra_params"]: for item in settings["extra_params"]:
#check if is boolean #check if is boolean
@@ -302,13 +384,15 @@ class MyApp(Adw.Application):
if str(settings["extra_params"][item]) != "": if str(settings["extra_params"][item]) != "":
print(str(settings["extra_params"][item])) print(str(settings["extra_params"][item]))
extra_params.append("/"+str(item)+":"+str(settings["extra_params"][item])) extra_params.append("/"+str(item)+":"+str(settings["extra_params"][item]))
print(extra_params) print(extra_params)
try: try:
subprocess.Popen([settings["rdp_bin"], "/v:"+str(conn_info["ip"]), "/u:"+str(conn_info["user"]), "/p:"+str(conn_info["passwd"])]+extra_params) print("Running", settings["rdp_bin"])
subprocess.run([settings["rdp_bin"], "/cert:ignore", "/v:"+str(conn_info["ip"]), "/u:"+str(conn_info["user"]), "/p:"+str(conn_info["passwd"])]+extra_params)
except: except:
subprocess.Popen(["sdl-freerdp", "/v:"+str(conn_info["ip"]), "/u:"+str(conn_info["user"]), "/p:"+str(conn_info["passwd"])]+extra_params) print("Running sdl-freerdp")
subprocess.run(["sdl-freerdp", "/cert:ignore", "/v:"+str(conn_info["ip"]), "/u:"+str(conn_info["user"]), "/p:"+str(conn_info["passwd"])]+extra_params)
if not os.path.isdir(HOMEDIR+"/.config/rdpconnect"): if not os.path.isdir(HOMEDIR+"/.config/rdpconnect"):
os.makedirs(HOMEDIR+"/.config/rdpconnect") os.makedirs(HOMEDIR+"/.config/rdpconnect")

View File

@@ -2,9 +2,13 @@
<interface> <interface>
<menu id='app-menu'> <menu id='app-menu'>
<section> <section>
<item>
<attribute name='label'>History</attribute>
<attribute name='action'>app.history</attribute>
</item>
<item> <item>
<attribute name='label'>Preferences</attribute> <attribute name='label'>Preferences</attribute>
<attribute name='action'>app.preferences</attribute> <attribute name='action'>app.preferences</attribute>
</item> </item>
<item> <item>
<attribute name='label'>About</attribute> <attribute name='label'>About</attribute>

View File

@@ -0,0 +1,31 @@
{
"name": "SDL2_image",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_VERBOSE_MAKEFILE=ON",
"-DCMAKE_BUILD_TYPE:STRING=Release",
"-DCMAKE_INSTALL_LIBDIR:PATH=lib"
],
"sources": [
{
"type": "archive",
"url": "https://github.com/libsdl-org/SDL_image/releases/download/release-2.8.4/SDL2_image-2.8.4.tar.gz",
"sha256": "f7c06a8783952cfe960adccdd3d8472b63ab31475b4390d10cfdcc1aea61238f",
"x-checker-data": {
"type": "anitya",
"project-id": 4781,
"stable-only": true,
"url-template": "https://github.com/libsdl-org/SDL_image/releases/download/release-${version0}.${version1}.${version2}/SDL2_image-${version0}.${version1}.${version2}.tar.gz"
}
}
],
"cleanup": [
"/include",
"/lib/*.la",
"/lib/*.a",
"/lib/cmake",
"/share/aclocal",
"/lib/pkgconfig"
]
}

View File

@@ -0,0 +1,31 @@
{
"name": "SDL2_ttf",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_VERBOSE_MAKEFILE=ON",
"-DCMAKE_BUILD_TYPE:STRING=Release",
"-DCMAKE_INSTALL_LIBDIR:PATH=lib"
],
"sources": [
{
"type": "archive",
"url": "https://github.com/libsdl-org/SDL_ttf/releases/download/release-2.24.0/SDL2_ttf-2.24.0.tar.gz",
"sha256": "0b2bf1e7b6568adbdbc9bb924643f79d9dedafe061fa1ed687d1d9ac4e453bfd",
"x-checker-data": {
"type": "anitya",
"project-id": 4784,
"stable-only": true,
"url-template": "https://github.com/libsdl-org/SDL_ttf/releases/download/release-${version0}.${version1}.${version2}/SDL2_ttf-${version0}.${version1}.${version2}.tar.gz"
}
}
],
"cleanup": [
"/include",
"/lib/*.la",
"/lib/*.a",
"/lib/cmake",
"/share/aclocal",
"/lib/pkgconfig"
]
}

View File

@@ -1,19 +1,25 @@
{ {
"name": "cjson", "name": "cjson",
"buildsystem": "cmake-ninja", "buildsystem": "cmake-ninja",
"cleanup": [], "builddir": true,
"config-opts": [ "cleanup": [],
"-Wno-error", "config-opts": [
"-DCMAKE_VERBOSE_MAKEFILE=ON", "-DCMAKE_VERBOSE_MAKEFILE=ON",
"-DCMAKE_BUILD_TYPE:STRING=Release", "-DCMAKE_BUILD_TYPE:STRING=Release",
"-DCMAKE_INSTALL_LIBDIR:PATH=lib" "-DCMAKE_INSTALL_LIBDIR:PATH=lib",
], "-DWITH_PULSE:BOOL=ON"
"sources": [ ],
{ "sources": [
"type": "git", {
"url": "https://github.com/DaveGamble/cJSON.git", "type": "archive",
"tag": "v1.7.17", "url": "https://github.com/DaveGamble/cJSON/archive/refs/tags/v1.7.18.tar.gz",
"commit": "87d8f0961a01bf09bef98ff89bae9fdec42181ee" "sha256": "3aa806844a03442c00769b83e99970be70fbef03735ff898f4811dd03b9f5ee5",
} "x-checker-data": {
] "type": "anitya",
} "project-id": 21330,
"stable-only": true,
"url-template": "https://github.com/DaveGamble/cJSON/archive/refs/tags/v${version0}.${version1}.${version2}.tar.gz"
}
}
]
}

View File

@@ -5,42 +5,50 @@
"cleanup": [], "cleanup": [],
"config-opts": [ "config-opts": [
"-DCMAKE_VERBOSE_MAKEFILE=ON", "-DCMAKE_VERBOSE_MAKEFILE=ON",
"-DCMAKE_BUILD_TYPE:STRING=Release", "-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo",
"-DCMAKE_INSTALL_LIBDIR:PATH=lib", "-DCMAKE_INSTALL_LIBDIR:PATH=lib",
"-DWITH_FREERDP_DEPRECATED_COMMANDLINE=ON", "-DCHANNEL_TSMF:BOOL=OFF",
"-DCHANNEL_TSMF:BOOL=OFF", "-DCHANNEL_URBDRC:BOOL=ON",
"-DCHANNEL_URBDRC:BOOL=ON", "-DBUILD_TESTING:BOOL=OFF",
"-DBUILD_TESTING:BOOL=OFF", "-DWITH_MANPAGES:BOOL=OFF",
"-DWITH_MANPAGES:BOOL=OFF", "-DWITH_WAYLAND:BOOL=ON",
"-DWITH_KRB5:BOOL=ON", "-DWITH_FUSE:BOOL=OFF",
"-DWITH_PCSC:BOOL=ON", "-DWITH_PCSC:BOOL=ON",
"-DWITH_SDL_IMAGE_DIALOGS:BOOL=ON", "-DWITH_PKCS11:BOOL=ON",
"-DWITH_INTERNAL_MD4:BOOL=ON", "-DWITH_SWSCALE:BOOL=ON",
"-DWITH_INTERNAL_MD5:BOOL=ON", "-DWITH_SERVER:BOOL=ON",
"-DWITH_INTERNAL_RC4:BOOL=ON", "-DWITH_SAMPLE:BOOL=ON",
"-DWITH_PKCS11:BOOL=ON", "-DWITH_CUPS:BOOL=ON",
"-DWITH_SWSCALE:BOOL=ON", "-DWITH_SSE2:BOOL=ON",
"-DWITH_SERVER:BOOL=ON", "-DWITH_NEON:BOOL=ON",
"-DWITH_SAMPLE:BOOL=ON", "-DWITH_FFMPEG:BOOL=ON",
"-DWITH_CUPS:BOOL=ON", "-DWITH_VERBOSE_WINPR_ASSERT:BOOL=OFF",
"-DWITH_OPUS:BOOL=ON", "-DWITH_DSP_FFMPEG:BOOL=ON",
"-DWITH_FUSE:BOOL=OFF", "-DWITH_FAAC:BOOL=OFF",
"-DWITH_FFMPEG:BOOL=ON", "-DWITH_INTERNAL_MD4:BOOL=ON",
"-DWITH_WINPR_UTILS_IMAGE_PNG:BOOL=ON", "-DWITH_INTERNAL_MD5:BOOL=ON",
"-DWITH_WINPR_UTILS_IMAGE_WEBP:BOOL=ON", "-DWITH_INTERNAL_RC4:BOOL=ON",
"-DWITH_WINPR_UTILS_IMAGE_JPEG:BOOL=ON", "-DWINPR_UTILS_IMAGE_PNG:BOOL=ON",
"-DWITH_URIPARSER:BOOL=ON", "-DWINPR_UTILS_IMAGE_WEBP:BOOL=ON",
"-DWITH_DSP_FFMPEG:BOOL=ON", "-DWINPR_UTILS_IMAGE_JPEG:BOOL=ON",
"-DWITH_OSS:BOOL=OFF", "-DWITH_FAAD2:BOOL=OFF",
"-DWITH_WEBVIEW:BOOL=OFF", "-DWITH_OSS:BOOL=OFF",
"-DWITH_PULSE:BOOL=ON" "-DWITH_SDL_IMAGE_DIALOGS:BOOL=ON",
"-DWITH_WEBVIEW:BOOL=OFF",
"-DWITH_PULSE:BOOL=ON"
], ],
"sources": [ "sources": [
{ {
"type": "git", "type": "git",
"url": "https://github.com/FreeRDP/FreeRDP.git", "url": "https://github.com/FreeRDP/FreeRDP.git",
"tag": "3.9.0", "tag": "3.12.0",
"commit": "4ae5b6c25452211f01f370d3e6e481553e72778a" "commit": "060e50d9ea722822c7b69d7a588f6c21b4e2512f",
"x-checker-data": {
"type": "anitya",
"project-id": 10442,
"stable-only": true,
"url-template": "https://github.com/FreeRDP/FreeRDP/releases/tag/${version0}.${version1}.${version2}"
}
} }
] ]
} }

View File

@@ -1,12 +1,18 @@
{ {
"name": "krb5", "name": "krb5",
"buildsystem": "autotools", "buildsystem": "autotools",
"subdir": "src", "subdir": "src",
"sources": [ "sources": [
{ {
"type": "archive", "type": "archive",
"url": "https://kerberos.org/dist/krb5/1.21/krb5-1.21.2.tar.gz", "url": "https://kerberos.org/dist/krb5/1.21/krb5-1.21.3.tar.gz",
"sha256": "9560941a9d843c0243a71b17a7ac6fe31c7cebb5bce3983db79e52ae7e850491" "sha256": "b7a4cd5ead67fb08b980b21abd150ff7217e85ea320c9ed0c6dadd304840ad35",
} "x-checker-data": {
] "type": "anitya",
} "project-id": 13287,
"stable-only": true,
"url-template": "https://kerberos.org/dist/krb5/${version0}.${version1}/krb5-${version0}.${version1}.${version2}.tar.gz"
}
}
]
}

View File

@@ -1,22 +1,19 @@
{ {
"name": "libusb", "name": "libusb",
"config-opts": [ "config-opts": [ "--disable-static" ],
"--disable-static" "cleanup": [
], "/lib/*.la",
"cleanup": [ "/lib/pkgconfig",
"/lib/*.la", "/include"
"/lib/pkgconfig", ],
"/include" "sources": [
], {
"sources": [ "type": "archive",
{ "url": "https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.tar.bz2",
"type": "archive", "sha256": "ffaa41d741a8a3bee244ac8e54a72ea05bf2879663c098c82fc5757853441575"
"url": }
"https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.tar.bz2", ],
"sha256": "ffaa41d741a8a3bee244ac8e54a72ea05bf2879663c098c82fc5757853441575" "post-install": [
} "install -Dm644 COPYING ${FLATPAK_DEST}/share/licenses/libusb/COPYING"
], ]
"post-install": [
"install -Dm644 COPYING /app/share/licenses/libusb/COPYING"
]
} }

View File

@@ -1,15 +1,25 @@
{ {
"name": "opensc", "name": "opensc",
"buildsystem": "autotools", "buildsystem": "autotools",
"cleanup": [], "cleanup": [
"config-opts": [ ],
"CFLAGS=-Wno-error" "config-opts": [
], "--disable-assert",
"sources": [ "--disable-fuzzing",
{ "--disable-man",
"type": "archive", "--disable-strict"
"url": "https://github.com/OpenSC/OpenSC/releases/download/0.25.0/opensc-0.25.0.tar.gz", ],
"sha256": "e6d7b66e2a508a377ac9d67aa463025d3c54277227be10bd08872e3407d6622f" "sources": [
} {
] "type": "archive",
} "url": "https://github.com/OpenSC/OpenSC/releases/download/0.25.1/opensc-0.25.1.tar.gz",
"sha256": "23cbaae8bd7c8eb589b68c0a961dfb0d02007bea3165a3fc5efe2621d549b37b",
"x-checker-data": {
"type": "anitya",
"project-id": 13287,
"stable-only": true,
"url-template": "https://github.com/OpenSC/OpenSC/tags/${version0}.${version1}.${version2}"
}
}
]
}

View File

@@ -1,23 +1,29 @@
{ {
"name": "pcsc", "name": "pcsc",
"config-opts": [ "config-opts": [
"--disable-libsystemd", "--disable-libsystemd",
"--enable-pic", "--enable-pic",
"--disable-libusb", "--disable-libusb",
"--disable-polkit", "--enable-shared",
"--enable-shared", "--disable-polkit",
"--with-systemdsystemunitdir=/app/lib/systemd/" "--with-systemdsystemunitdir=/app/lib/systemd/"
], ],
"sources": [ "sources": [
{ {
"type": "git", "type": "git",
"url": "https://github.com/LudovicRousseau/PCSC.git", "url": "https://github.com/LudovicRousseau/PCSC.git",
"tag": "2.0.3", "tag": "2.3.0",
"commit": "c4e7f6f9c6fe56fafd3f13c31fcc4f670ad6d022" "commit": "a2c25c5fa25b5e2400fe6a002ea2263069ebd94f",
} "x-checker-data": {
], "type": "anitya",
"cleanup": [ "project-id": 2611,
"/share/doc", "stable-only": true,
"/share/man" "url-template": "https://github.com/LudovicRousseau/PCSC/tags/${version0}.${version1}.${version2}"
] }
} }
],
"cleanup": [
"/share/doc",
"/share/man"
]
}

View File

@@ -0,0 +1,24 @@
{
"name": "pkcs11-helper",
"buildsystem": "autotools",
"sources": [
{
"type": "archive",
"url": "https://github.com/OpenSC/pkcs11-helper/archive/refs/tags/pkcs11-helper-1.30.0.tar.gz",
"sha256": "076c9f664812a45f2da25efc157338b0b8bb1949117f0144050fec176b6fdf78",
"x-checker-data": {
"type": "anitya",
"project-id": 91990,
"stable-only": true,
"url-template": "https://github.com/OpenSC/pkcs11-helper/archive/refs/tags/pkcs11-helper-$version.tar.gz"
}
},
{
"type": "script",
"dest-filename": "autogen.sh",
"commands": [
"autoreconf -vfi"
]
}
]
}

View File

@@ -1,23 +1,26 @@
{ {
"name": "uriparser", "name": "urlparser",
"buildsystem": "cmake-ninja", "buildsystem": "cmake-ninja",
"cleanup": [ "builddir": true,
], "cleanup": [],
"config-opts": [ "config-opts": [
"-DCMAKE_VERBOSE_MAKEFILE=ON", "-DCMAKE_VERBOSE_MAKEFILE=ON",
"-DCMAKE_BUILD_TYPE:STRING=Release", "-DCMAKE_BUILD_TYPE:STRING=Release",
"-DCMAKE_INSTALL_LIBDIR:PATH=lib", "-DCMAKE_INSTALL_LIBDIR:PATH=lib",
"-DURIPARSER_BUILD_TESTS:BOOL=OFF",
"-DURIPARSER_BUILD_DOCS:BOOL=OFF", "-DURIPARSER_BUILD_DOCS:BOOL=OFF",
"-DURIPARSER_BUILD_TOOLS:BOOL=OFF", "-DURIPARSER_BUILD_TESTS:BOOL=OFF"
"-DURIPARSER_BUILD_WCHAR_T:BOOL=OFF" ],
], "sources": [
"sources": [
{ {
"type": "git", "type": "archive",
"url": "https://github.com/uriparser/uriparser.git", "url": "https://github.com/uriparser/uriparser/releases/download/uriparser-0.9.8/uriparser-0.9.8.tar.xz",
"tag": "uriparser-0.9.7", "sha256": "1d71c054837ea32a31e462bce5a1af272379ecf511e33448e88100b87ff73b2e",
"commit": "634b678fa858abf1d1ebc0634e96e9e29596e92a" "x-checker-data": {
"type": "anitya",
"project-id": 10160,
"stable-only": true,
"url-template": "https://github.com/uriparser/uriparser/releases/download/uriparser-${version0}.${version1}.${version2}/uriparser-${version0}.${version1}.${version2}.tar.xz"
}
} }
] ]
} }

View File

@@ -1,14 +1,20 @@
{ {
"name": "xprop", "name": "xprop",
"sources": [ "sources": [
{ {
"type": "archive", "type": "archive",
"url": "https://xorg.freedesktop.org/releases/individual/app/xprop-1.2.7.tar.xz", "url": "https://xorg.freedesktop.org/releases/individual/app/xprop-1.2.8.tar.xz",
"sha256": "4436e3148bb91a162406230d9f736a49ca8b50b74790015dc15d78d6ce8e825f" "sha256": "d689e2adb7ef7b439f6469b51cda8a7daefc83243854c2a3b8f84d0f029d67ee",
} "x-checker-data": {
], "type": "anitya",
"cleanup": [ "project-id": 14958,
"/share/doc", "stable-only": true,
"/share/man" "url-template": "https://xorg.freedesktop.org/releases/individual/app/xprop-${version0}.${version1}.${version2}.tar.xz"
] }
} }
],
"cleanup": [
"/share/doc",
"/share/man"
]
}

View File

@@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
flatpak build-update-repo --generate-static-deltas ../repo flatpak build-update-repo --generate-static-deltas ../repo
rsync -av repo/ angoosh@10.0.69.69:/mnt/angoosh/flatpak/repo/ rsync -av ../repo/ angoosh@10.0.69.69:/mnt/angoosh/flatpak/repo/

View File

View File

@@ -1,4 +0,0 @@
[core]
repo_version=1
mode=archive-z2
indexed-deltas=true

Some files were not shown because too many files have changed in this diff Show More