finished preferences

This commit is contained in:
2024-11-22 18:36:35 +01:00
parent 90036da40e
commit 0d24511b6c
1107 changed files with 475 additions and 31 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,2 @@
#Ignore all repo directories #Ignore all repo directories
repo/
.flatpak-builder/ .flatpak-builder/

View File

@@ -43,12 +43,6 @@
<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.0" date="2024-11-19">
<url type="details">https://gitea.farmdash.org/angoosh/Flatpaks/commits/branch/main</url>
<description>
<p>Initial release</p>
</description>
</release>
<release version="1.0.1" date="2024-11-20"> <release version="1.0.1" date="2024-11-20">
<url type="details">https://gitea.farmdash.org/angoosh/Flatpaks/commits/branch/main</url> <url type="details">https://gitea.farmdash.org/angoosh/Flatpaks/commits/branch/main</url>
<description> <description>
@@ -67,6 +61,12 @@
<p>Cropped screenshot and made background invisible</p> <p>Cropped screenshot and made background invisible</p>
</description> </description>
</release> </release>
<release version="1.1.0" date="2024-11-22">
<url type="details">https://gitea.farmdash.org/angoosh/Flatpaks/commit/2093a21ecfa86c20f15b9b44897d1c7bebfafd79</url>
<description>
<p>Created about section, borgar menu, settings menu and we have easy settings for the rdp connection now</p>
</description>
</release>
</releases> </releases>
<screenshots> <screenshots>

View File

@@ -112,7 +112,7 @@
<property name="vexpand">True</property> <property name="vexpand">True</property>
<child> <child>
<object class="GtkCheckButton" id="save_conf"> <object class="GtkCheckButton" id="save_conf">
<property name="label">save config</property> <property name="label">save login</property>
</object> </object>
</child> </child>
<child> <child>

View File

@@ -82,6 +82,7 @@ modules:
- install -Dm755 main.py /app/ - install -Dm755 main.py /app/
- install com.angoosh.RDPConnect.ui /app/ - install com.angoosh.RDPConnect.ui /app/
- install menu.ui /app/ - install menu.ui /app/
- install preferences.ui /app/
- install style-dark.css /app/ - install style-dark.css /app/
- install style-light.css /app/ - install style-light.css /app/
- install -Dm644 com.angoosh.RDPConnect.svg /app/share/icons/hicolor/scalable/apps/ - install -Dm644 com.angoosh.RDPConnect.svg /app/share/icons/hicolor/scalable/apps/
@@ -107,4 +108,6 @@ modules:
- type: file - type: file
path: com.angoosh.RDPConnect.metainfo.xml path: com.angoosh.RDPConnect.metainfo.xml
- type: file - type: file
path: menu.ui path: menu.ui
- type: file
path: preferences.ui

View File

@@ -22,10 +22,11 @@ from gi.repository import Gtk, Adw, Gdk, Gio
APPID = "com.angoosh.RDPConnect" APPID = "com.angoosh.RDPConnect"
HOMEDIR = os.path.expanduser('~') HOMEDIR = os.path.expanduser('~')
VERSION = "1.0.5rc1" VERSION = "1.1.0"
conn_info = {} conn_info = {}
settings = {} settings = {}
settings["extra_params"] = {}
fernet = "" fernet = ""
def load_keys(): def load_keys():
@@ -67,7 +68,123 @@ 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 PreferencesWindow(Gtk.Window):
global settings
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.builder = Gtk.Builder(self)
self.builder.add_from_file("/app/preferences.ui")
self.resx = self.builder.get_object("resx")
self.resy = self.builder.get_object("resy")
self.monitors = self.builder.get_object("monitors")
self.fullscreen = self.builder.get_object("fullscreen")
self.xfree = self.builder.get_object("xfree")
self.sound = self.builder.get_object("sound")
self.mic = self.builder.get_object("mic")
self.dynres = self.builder.get_object("dynres")
self.clipboard = self.builder.get_object("clipboard")
try:
self.clipboard.set_state(settings["extra_params"]["clipboard"])
self.clipboard.set_active(settings["extra_params"]["clipboard"])
except:
pass
try:
self.dynres.set_state(settings["extra_params"]["dynamic-resolution"])
self.dynres.set_active(settings["extra_params"]["dynamic-resolution"])
except:
pass
try:
self.mic.set_state(settings["extra_params"]["microphone"])
self.mic.set_active(settings["extra_params"]["microphone"])
except:
pass
try:
self.sound.set_state(settings["extra_params"]["sound"])
self.sound.set_active(settings["extra_params"]["sound"])
except:
pass
try:
if settings["rdp_bin"] == "xfreerdp":
self.xfree.set_state(True)
self.xfree.set_active(True)
except:
pass
try:
self.fullscreen.set_state(settings["extra_params"]["f"])
self.fullscreen.set_active(settings["extra_params"]["f"])
except:
pass
try:
self.monitors.get_buffer().set_text(str(settings["extra_params"]["monitors"]), len(settings["extra_params"]["monitors"]))
except:
pass
try:
self.resx.get_buffer().set_text(str(settings["extra_params"]["w"]), len(settings["extra_params"]["w"]))
except:
pass
try:
self.resy.get_buffer().set_text(str(settings["extra_params"]["h"]), len(settings["extra_params"]["h"]))
except:
pass
pref_window = self.builder.get_object("pref_window")
pref_window.show()
def f_resx(self, app):
settings["extra_params"]["w"] = self.resx.get_buffer().get_text()
def f_resy(self, app):
settings["extra_params"]["h"] = self.resy.get_buffer().get_text()
def monconf(self, app):
settings["extra_params"]["monitors"] = self.monitors.get_buffer().get_text()
def clipboard(self, app, state):
if state:
settings["extra_params"]["clipboard"] = True
else:
settings["extra_params"]["clipboard"] = False
def dynres(self, app, state):
if state:
settings["extra_params"]["dynamic-resolution"] = True
else:
settings["extra_params"]["dynamic-resolution"] = False
def microphone(self, app, state):
if state:
settings["extra_params"]["microphone"] = True
else:
settings["extra_params"]["microphone"] = False
def sound(self, app, state):
if state:
settings["extra_params"]["sound"] = True
else:
settings["extra_params"]["sound"] = False
def xfree(self, app, state):
if state:
settings["rdp_bin"] = "xfreerdp"
else:
settings["rdp_bin"] = "sdl-freerdp"
def fscr(self, app, state):
if state:
settings["extra_params"]["f"] = True
else:
settings["extra_params"]["f"] = False
def on_destroy(self, app):
print("Saving settings config to "+HOMEDIR+"/.config/rdpconnect/settings.json")
with open(HOMEDIR+"/.config/rdpconnect/settings.json", "w") as settings_file:
js = json.dumps(settings, sort_keys=True, indent=4, separators=(',', ': '))
settings_file.write(js)
class MyApp(Adw.Application): class MyApp(Adw.Application):
def __init__(self, **kwargs): def __init__(self, **kwargs):
super().__init__(**kwargs) super().__init__(**kwargs)
@@ -139,9 +256,7 @@ class MyApp(Adw.Application):
about_dialog.present() about_dialog.present()
def on_preferences(self, action, param): def on_preferences(self, action, param):
pref_window = Gtk.Window(title="Preferences") PreferencesWindow()
pref_window.show()
print("Preferences")
def saveConnConf(self): def saveConnConf(self):
if settings["save_conn"]: if settings["save_conn"]:
@@ -172,17 +287,28 @@ class MyApp(Adw.Application):
settings["save_conn"] = True settings["save_conn"] = True
else: else:
settings["save_conn"] = False settings["save_conn"] = False
if not "extra_params" in settings:
settings["extra_params"] = []
if not "rdp_bin" in settings: if not "rdp_bin" in settings:
settings["rdp_bin"] = "sdl-freerdp" settings["rdp_bin"] = "sdl-freerdp"
self.saveConnConf() self.saveConnConf()
extra_params = []
for item in settings["extra_params"]:
#check if is boolean
if type(settings["extra_params"][item]) == type(True):
if settings["extra_params"][item]:
extra_params.append("/"+str(item))
else:
if str(settings["extra_params"][item]) != "":
print(str(settings["extra_params"][item]))
extra_params.append("/"+str(item)+":"+str(settings["extra_params"][item]))
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"])]+settings["extra_params"]) subprocess.Popen([settings["rdp_bin"], "/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"])]+settings["extra_params"]) subprocess.Popen(["sdl-freerdp", "/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

@@ -4,7 +4,7 @@
<section> <section>
<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,119 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE cambalache-project SYSTEM "cambalache-project.dtd">
<cambalache-project version="0.92.0" target_tk="gtk-4.0">
<ui>
(1,None,"preferences.ui","preferences.ui",None,None,None,None,None,None,None)
</ui>
<object>
(1,1,"GtkWindow","pref_window",None,None,None,None,0,None,None),
(1,2,"GtkGrid",None,1,None,None,None,0,None,None),
(1,3,"GtkLabel",None,2,None,None,None,0,None,None),
(1,4,"GtkSwitch","Fullscreen",2,None,None,None,1,None,None),
(1,5,"GtkLabel",None,2,None,None,None,2,None,None),
(1,6,"GtkSwitch","xfree",2,None,None,None,3,None,None),
(1,7,"GtkLabel",None,2,None,None,None,4,None,None),
(1,8,"GtkSwitch","sound",2,None,None,None,5,None,None),
(1,9,"GtkLabel",None,2,None,None,None,6,None,None),
(1,10,"GtkSwitch","mic",2,None,None,None,7,None,None),
(1,11,"GtkLabel",None,2,None,None,None,8,None,None),
(1,12,"GtkSwitch","dynres",2,None,None,None,9,None,None),
(1,13,"GtkLabel",None,2,None,None,None,10,None,None),
(1,14,"GtkSwitch","clipboard",2,None,None,None,11,None,None),
(1,15,"GtkLabel",None,2,None,None,None,12,None,None),
(1,16,"GtkSwitch","camera",2,None,None,None,13,None,None),
(1,17,"GtkLabel",None,2,None,None,None,14,None,None),
(1,18,"GtkEntry","resx",2,None,None,None,15,None,None),
(1,19,"GtkLabel",None,2,None,None,None,16,None,None),
(1,20,"GtkEntry","resy",2,None,None,None,17,None,None),
(1,21,"GtkLabel",None,2,None,None,None,18,None,None),
(1,22,"GtkEntry","monitors",2,None,None,None,19,None,None)
</object>
<object_property>
(1,1,"GtkWindow","title","Preferences",0,None,None,None,None,None,None,None,None),
(1,3,"GtkLabel","label","Fullscreen",0,None,None,None,None,None,None,None,None),
(1,4,"GtkWidget","halign","center",0,None,None,None,None,None,None,None,None),
(1,4,"GtkWidget","margin-bottom","2",0,None,None,None,None,None,None,None,None),
(1,4,"GtkWidget","margin-top","2",0,None,None,None,None,None,None,None,None),
(1,5,"GtkLabel","label","Use xfreerdp",0,None,None,None,None,None,None,None,None),
(1,6,"GtkWidget","halign","center",0,None,None,None,None,None,None,None,None),
(1,6,"GtkWidget","margin-bottom","2",0,None,None,None,None,None,None,None,None),
(1,6,"GtkWidget","margin-top","2",0,None,None,None,None,None,None,None,None),
(1,7,"GtkLabel","label","Sound",0,None,None,None,None,None,None,None,None),
(1,8,"GtkWidget","halign","center",0,None,None,None,None,None,None,None,None),
(1,8,"GtkWidget","margin-bottom","2",0,None,None,None,None,None,None,None,None),
(1,8,"GtkWidget","margin-top","2",0,None,None,None,None,None,None,None,None),
(1,9,"GtkLabel","label","Microphone",0,None,None,None,None,None,None,None,None),
(1,10,"GtkWidget","halign","center",0,None,None,None,None,None,None,None,None),
(1,10,"GtkWidget","margin-bottom","2",0,None,None,None,None,None,None,None,None),
(1,10,"GtkWidget","margin-top","2",0,None,None,None,None,None,None,None,None),
(1,11,"GtkLabel","label","Dynamic resolution",0,None,None,None,None,None,None,None,None),
(1,12,"GtkWidget","halign","center",0,None,None,None,None,None,None,None,None),
(1,12,"GtkWidget","margin-bottom","2",0,None,None,None,None,None,None,None,None),
(1,12,"GtkWidget","margin-top","2",0,None,None,None,None,None,None,None,None),
(1,13,"GtkLabel","label","Clipboard",0,None,None,None,None,None,None,None,None),
(1,14,"GtkWidget","halign","center",0,None,None,None,None,None,None,None,None),
(1,14,"GtkWidget","margin-bottom","2",0,None,None,None,None,None,None,None,None),
(1,14,"GtkWidget","margin-top","2",0,None,None,None,None,None,None,None,None),
(1,15,"GtkLabel","label","Camera",0,None,None,None,None,None,None,None,None),
(1,16,"GtkWidget","halign","center",0,None,None,None,None,None,None,None,None),
(1,16,"GtkWidget","margin-bottom","2",0,None,None,None,None,None,None,None,None),
(1,16,"GtkWidget","margin-top","2",0,None,None,None,None,None,None,None,None),
(1,17,"GtkLabel","label","Resolution width",0,None,None,None,None,None,None,None,None),
(1,18,"GtkWidget","margin-bottom","2",0,None,None,None,None,None,None,None,None),
(1,18,"GtkWidget","margin-end","5",0,None,None,None,None,None,None,None,None),
(1,18,"GtkWidget","margin-top","2",0,None,None,None,None,None,None,None,None),
(1,19,"GtkLabel","label","Resolution height",0,None,None,None,None,None,None,None,None),
(1,20,"GtkWidget","margin-bottom","2",0,None,None,None,None,None,None,None,None),
(1,20,"GtkWidget","margin-end","5",0,None,None,None,None,None,None,None,None),
(1,20,"GtkWidget","margin-top","2",0,None,None,None,None,None,None,None,None),
(1,21,"GtkLabel","label","Monitors",0,None,None,None,None,None,None,None,None),
(1,22,"GtkWidget","margin-bottom","2",0,None,None,None,None,None,None,None,None),
(1,22,"GtkWidget","margin-end","5",0,None,None,None,None,None,None,None,None),
(1,22,"GtkWidget","margin-top","2",0,None,None,None,None,None,None,None,None)
</object_property>
<object_layout_property>
(1,2,3,"GtkGridLayoutChild","column","0",0,None,None,None),
(1,2,3,"GtkGridLayoutChild","row","0",0,None,None,None),
(1,2,4,"GtkGridLayoutChild","column","1",0,None,None,None),
(1,2,4,"GtkGridLayoutChild","row","0",0,None,None,None),
(1,2,5,"GtkGridLayoutChild","column","0",0,None,None,None),
(1,2,5,"GtkGridLayoutChild","row","1",0,None,None,None),
(1,2,6,"GtkGridLayoutChild","column","1",0,None,None,None),
(1,2,6,"GtkGridLayoutChild","row","1",0,None,None,None),
(1,2,7,"GtkGridLayoutChild","column","0",0,None,None,None),
(1,2,7,"GtkGridLayoutChild","row","2",0,None,None,None),
(1,2,8,"GtkGridLayoutChild","column","1",0,None,None,None),
(1,2,8,"GtkGridLayoutChild","row","2",0,None,None,None),
(1,2,9,"GtkGridLayoutChild","column","0",0,None,None,None),
(1,2,9,"GtkGridLayoutChild","row","3",0,None,None,None),
(1,2,10,"GtkGridLayoutChild","column","1",0,None,None,None),
(1,2,10,"GtkGridLayoutChild","row","3",0,None,None,None),
(1,2,11,"GtkGridLayoutChild","column","0",0,None,None,None),
(1,2,11,"GtkGridLayoutChild","row","4",0,None,None,None),
(1,2,12,"GtkGridLayoutChild","column","1",0,None,None,None),
(1,2,12,"GtkGridLayoutChild","row","4",0,None,None,None),
(1,2,13,"GtkGridLayoutChild","column","0",0,None,None,None),
(1,2,13,"GtkGridLayoutChild","row","5",0,None,None,None),
(1,2,14,"GtkGridLayoutChild","column","1",0,None,None,None),
(1,2,14,"GtkGridLayoutChild","row","5",0,None,None,None),
(1,2,15,"GtkGridLayoutChild","column","0",0,None,None,None),
(1,2,15,"GtkGridLayoutChild","row","6",0,None,None,None),
(1,2,16,"GtkGridLayoutChild","column","1",0,None,None,None),
(1,2,16,"GtkGridLayoutChild","row","6",0,None,None,None),
(1,2,17,"GtkGridLayoutChild","column","0",0,None,None,None),
(1,2,17,"GtkGridLayoutChild","row","7",0,None,None,None),
(1,2,18,"GtkGridLayoutChild","column","1",0,None,None,None),
(1,2,18,"GtkGridLayoutChild","row","7",0,None,None,None),
(1,2,19,"GtkGridLayoutChild","column","0",0,None,None,None),
(1,2,19,"GtkGridLayoutChild","row","8",0,None,None,None),
(1,2,20,"GtkGridLayoutChild","column","1",0,None,None,None),
(1,2,20,"GtkGridLayoutChild","row","8",0,None,None,None),
(1,2,21,"GtkGridLayoutChild","column","0",0,None,None,None),
(1,2,21,"GtkGridLayoutChild","row","9",0,None,None,None),
(1,2,22,"GtkGridLayoutChild","column","1",0,None,None,None),
(1,2,22,"GtkGridLayoutChild","row","9",0,None,None,None)
</object_layout_property>
<object_signal>
(2,1,18,"GtkCellEditable","editing-done","rex_act",None,0,0,0,None)
</object_signal>
</cambalache-project>

View File

@@ -0,0 +1,203 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.92.2 -->
<interface>
<!-- interface-name preferences.ui -->
<requires lib="gtk" version="4.6"/>
<object class="GtkWindow" id="pref_window">
<property name="title">Preferences</property>
<signal name="close-request" handler="on_destroy"/>
<child>
<object class="GtkGrid">
<child>
<object class="GtkLabel">
<property name="label">Fullscreen</property>
<layout>
<property name="column">0</property>
<property name="row">0</property>
</layout>
</object>
</child>
<child>
<object class="GtkSwitch" id="fullscreen">
<property name="halign">center</property>
<property name="margin-bottom">2</property>
<property name="margin-top">2</property>
<signal name="state-set" handler="fscr"/>
<layout>
<property name="column">1</property>
<property name="row">0</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Use xfreerdp</property>
<layout>
<property name="column">0</property>
<property name="row">1</property>
</layout>
</object>
</child>
<child>
<object class="GtkSwitch" id="xfree">
<property name="halign">center</property>
<property name="margin-bottom">2</property>
<property name="margin-top">2</property>
<signal name="state-set" handler="xfree"/>
<layout>
<property name="column">1</property>
<property name="row">1</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Sound</property>
<layout>
<property name="column">0</property>
<property name="row">2</property>
</layout>
</object>
</child>
<child>
<object class="GtkSwitch" id="sound">
<property name="halign">center</property>
<property name="margin-bottom">2</property>
<property name="margin-top">2</property>
<signal name="state-set" handler="sound"/>
<layout>
<property name="column">1</property>
<property name="row">2</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Microphone</property>
<layout>
<property name="column">0</property>
<property name="row">3</property>
</layout>
</object>
</child>
<child>
<object class="GtkSwitch" id="mic">
<property name="halign">center</property>
<property name="margin-bottom">2</property>
<property name="margin-top">2</property>
<signal name="state-set" handler="microphone"/>
<layout>
<property name="column">1</property>
<property name="row">3</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Dynamic resolution</property>
<layout>
<property name="column">0</property>
<property name="row">4</property>
</layout>
</object>
</child>
<child>
<object class="GtkSwitch" id="dynres">
<property name="halign">center</property>
<property name="margin-bottom">2</property>
<property name="margin-top">2</property>
<signal name="state-set" handler="dynres"/>
<layout>
<property name="column">1</property>
<property name="row">4</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Clipboard</property>
<layout>
<property name="column">0</property>
<property name="row">5</property>
</layout>
</object>
</child>
<child>
<object class="GtkSwitch" id="clipboard">
<property name="halign">center</property>
<property name="margin-bottom">2</property>
<property name="margin-top">2</property>
<signal name="state-set" handler="clipboard"/>
<layout>
<property name="column">1</property>
<property name="row">5</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Resolution width</property>
<layout>
<property name="column">0</property>
<property name="row">6</property>
</layout>
</object>
</child>
<child>
<object class="GtkEntry" id="resx">
<property name="margin-bottom">2</property>
<property name="margin-end">5</property>
<property name="margin-top">2</property>
<signal name="changed" handler="f_resx"/>
<layout>
<property name="column">1</property>
<property name="row">6</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Resolution height</property>
<layout>
<property name="column">0</property>
<property name="row">7</property>
</layout>
</object>
</child>
<child>
<object class="GtkEntry" id="resy">
<property name="margin-bottom">2</property>
<property name="margin-end">5</property>
<property name="margin-top">2</property>
<signal name="changed" handler="f_resy"/>
<layout>
<property name="column">1</property>
<property name="row">7</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Monitors</property>
<layout>
<property name="column">0</property>
<property name="row">8</property>
</layout>
</object>
</child>
<child>
<object class="GtkEntry" id="monitors">
<property name="margin-bottom">2</property>
<property name="margin-end">5</property>
<property name="margin-top">2</property>
<signal name="changed" handler="monconf"/>
<layout>
<property name="column">1</property>
<property name="row">8</property>
</layout>
</object>
</child>
</object>
</child>
</object>
</interface>

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

@@ -1,6 +0,0 @@
[Flatpak Repo]
Title=Angoosh
Url=https://flatpak.angoosh.com/repo/
Homepage=https://gitea.farmdash.org/angoosh/Flatpaks/
Comment=Angoosh's flatpak repository
Description=Angoosh's flatpak repository

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