diff --git a/com.angoosh.RDPConnect/com.angoosh.RDPConnect.ui b/com.angoosh.RDPConnect/com.angoosh.RDPConnect.ui
new file mode 100644
index 0000000..c404534
--- /dev/null
+++ b/com.angoosh.RDPConnect/com.angoosh.RDPConnect.ui
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
diff --git a/com.angoosh.RDPConnect/com.angoosh.cmb b/com.angoosh.RDPConnect/com.angoosh.cmb
new file mode 100644
index 0000000..20bb979
--- /dev/null
+++ b/com.angoosh.RDPConnect/com.angoosh.cmb
@@ -0,0 +1,196 @@
+
+
+
+
+ (1,None,"com.angoosh.RDPConnect.ui","com.angoosh.RDPConnect.ui",None,None,None,None,None,None,None),
+ (2,None,"com.angoosh.RDPConnect.ui","com.angoosh.RDPConnect/com.angoosh.RDPConnect.ui",None,None,None,None,None,None,None)
+
+
+ (2,"gtk","4.12",None)
+
+
+ (1,"./style.css",None,1)
+
+
+ (1,1,"GtkWindow","main_window",None,None,None,None,0,None,None),
+ (1,2,"GtkBox",None,1,None,None,None,0,None,None),
+ (1,5,"GtkBox",None,2,None,None,None,1,None,None),
+ (1,6,"GtkText","ip",5,None,None,None,0,None,None),
+ (1,7,"GtkBox",None,2,None,None,None,0,None,None),
+ (1,8,"GtkText","ip_label",7,None,None,None,0,None,None),
+ (1,9,"GtkText","user_label",7,None,None,None,1,None,None),
+ (1,10,"GtkText","pass_label",7,None,None,None,2,None,None),
+ (1,11,"GtkText","user",5,None,None,None,1,None,None),
+ (1,12,"GtkText","pass",5,None,None,None,2,None,None),
+ (1,13,"GtkButton","connect",5,None,None,None,3,None,None),
+ (2,1,"GtkWindow","main_window",None,None,None,None,0,None,None),
+ (2,2,"GtkBox",None,1,None,None,None,0,None,None),
+ (2,3,"GtkBox",None,2,None,None,None,0,None,None),
+ (2,4,"GtkText","ip_label",3,None,None,None,0,None,None),
+ (2,5,"GtkText","user_label",3,None,None,None,1,None,None),
+ (2,6,"GtkText","pass_label",3,None,None,None,2,None,None),
+ (2,7,"GtkBox",None,2,None,None,None,1,None,None),
+ (2,8,"GtkText","ip",7,None,None,None,0,None,None),
+ (2,9,"GtkText","user",7,None,None,None,1,None,None),
+ (2,10,"GtkText","pass",7,None,None,None,2,None,None),
+ (2,11,"GtkButton","connect",7,None,None,None,3,None,None)
+
+
+ (1,1,"GtkWidget","css-classes","\n",None,None,None,None,None,None,None,None,None),
+ (1,1,"GtkWindow","default-height","200",None,None,None,None,None,None,None,None,None),
+ (1,1,"GtkWindow","default-width","450",None,None,None,None,None,None,None,None,None),
+ (1,1,"GtkWindow","resizable","False",None,None,None,None,None,None,None,None,None),
+ (1,1,"GtkWindow","title","RDPConnect",None,None,None,None,None,None,None,None,None),
+ (1,5,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
+ (1,5,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
+ (1,5,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
+ (1,5,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
+ (1,5,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
+ (1,5,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
+ (1,6,"GtkEditable","xalign","0.02",None,None,None,None,None,None,None,None,None),
+ (1,6,"GtkText","placeholder-text","ip-adresa",None,None,None,None,None,None,None,None,None),
+ (1,6,"GtkWidget","css-name","textentry",None,None,None,None,None,None,None,None,None),
+ (1,6,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
+ (1,6,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
+ (1,6,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
+ (1,7,"GtkOrientable","orientation","vertical",0,None,None,None,None,None,None,None,None),
+ (1,7,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
+ (1,7,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
+ (1,7,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
+ (1,7,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
+ (1,7,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
+ (1,8,"GtkEditable","editable","False",None,None,None,None,None,None,None,None,None),
+ (1,8,"GtkEditable","enable-undo","False",None,None,None,None,None,None,None,None,None),
+ (1,8,"GtkEditable","xalign","1.0",None,None,None,None,None,None,None,None,None),
+ (1,8,"GtkText","placeholder-text","IP:",None,None,None,None,None,None,None,None,None),
+ (1,8,"GtkWidget","can-focus","False",None,None,None,None,None,None,None,None,None),
+ (1,8,"GtkWidget","can-target","False",None,None,None,None,None,None,None,None,None),
+ (1,8,"GtkWidget","focus-on-click","False",None,None,None,None,None,None,None,None,None),
+ (1,8,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
+ (1,8,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
+ (1,8,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
+ (1,8,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
+ (1,9,"GtkEditable","editable","False",0,None,None,None,None,None,None,None,None),
+ (1,9,"GtkEditable","enable-undo","False",0,None,None,None,None,None,None,None,None),
+ (1,9,"GtkEditable","xalign","1.0",0,None,None,None,None,None,None,None,None),
+ (1,9,"GtkText","placeholder-text","User:",0,None,None,None,None,None,None,None,None),
+ (1,9,"GtkWidget","can-focus","False",0,None,None,None,None,None,None,None,None),
+ (1,9,"GtkWidget","can-target","False",0,None,None,None,None,None,None,None,None),
+ (1,9,"GtkWidget","focus-on-click","False",0,None,None,None,None,None,None,None,None),
+ (1,9,"GtkWidget","halign","start",0,None,None,None,None,None,None,None,None),
+ (1,9,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
+ (1,9,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
+ (1,9,"GtkWidget","valign","center",0,None,None,None,None,None,None,None,None),
+ (1,10,"GtkEditable","editable","False",0,None,None,None,None,None,None,None,None),
+ (1,10,"GtkEditable","enable-undo","False",0,None,None,None,None,None,None,None,None),
+ (1,10,"GtkEditable","xalign","1.0",0,None,None,None,None,None,None,None,None),
+ (1,10,"GtkText","placeholder-text","Password:",0,None,None,None,None,None,None,None,None),
+ (1,10,"GtkWidget","can-focus","False",0,None,None,None,None,None,None,None,None),
+ (1,10,"GtkWidget","can-target","False",0,None,None,None,None,None,None,None,None),
+ (1,10,"GtkWidget","focus-on-click","False",0,None,None,None,None,None,None,None,None),
+ (1,10,"GtkWidget","halign","start",0,None,None,None,None,None,None,None,None),
+ (1,10,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
+ (1,10,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
+ (1,10,"GtkWidget","valign","center",0,None,None,None,None,None,None,None,None),
+ (1,11,"GtkEditable","xalign","0.02",None,None,None,None,None,None,None,None,None),
+ (1,11,"GtkText","placeholder-text","uzivatel",0,None,None,None,None,None,None,None,None),
+ (1,11,"GtkText","truncate-multiline","True",None,None,None,None,None,None,None,None,None),
+ (1,11,"GtkWidget","css-name","textentry",None,None,None,None,None,None,None,None,None),
+ (1,11,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
+ (1,11,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
+ (1,11,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
+ (1,11,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
+ (1,12,"GtkEditable","xalign","0.02",None,None,None,None,None,None,None,None,None),
+ (1,12,"GtkText","placeholder-text","heslo",0,None,None,None,None,None,None,None,None),
+ (1,12,"GtkText","visibility","False",None,None,None,None,None,None,None,None,None),
+ (1,12,"GtkWidget","css-name","textentry",None,None,None,None,None,None,None,None,None),
+ (1,12,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
+ (1,12,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
+ (1,12,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
+ (1,12,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
+ (1,13,"GtkButton","label","Connect",None,None,None,None,None,None,None,None,None),
+ (1,13,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
+ (1,13,"GtkWidget","valign","end",None,None,None,None,None,None,None,None,None),
+ (1,13,"GtkWidget","vexpand","True",None,None,None,None,None,None,None,None,None),
+ (2,1,"GtkWidget","css-classes","\n",0,None,None,None,None,None,None,None,None),
+ (2,1,"GtkWindow","default-height","200",0,None,None,None,None,None,None,None,None),
+ (2,1,"GtkWindow","default-width","450",0,None,None,None,None,None,None,None,None),
+ (2,1,"GtkWindow","resizable","False",0,None,None,None,None,None,None,None,None),
+ (2,1,"GtkWindow","title","RDPConnect",0,None,None,None,None,None,None,None,None),
+ (2,3,"GtkOrientable","orientation","vertical",0,None,None,None,None,None,None,None,None),
+ (2,3,"GtkWidget","halign","start",0,None,None,None,None,None,None,None,None),
+ (2,3,"GtkWidget","margin-bottom","5",0,None,None,None,None,None,None,None,None),
+ (2,3,"GtkWidget","margin-end","5",0,None,None,None,None,None,None,None,None),
+ (2,3,"GtkWidget","margin-start","5",0,None,None,None,None,None,None,None,None),
+ (2,3,"GtkWidget","margin-top","5",0,None,None,None,None,None,None,None,None),
+ (2,4,"GtkEditable","editable","False",0,None,None,None,None,None,None,None,None),
+ (2,4,"GtkEditable","enable-undo","False",0,None,None,None,None,None,None,None,None),
+ (2,4,"GtkEditable","xalign","1.0",0,None,None,None,None,None,None,None,None),
+ (2,4,"GtkText","placeholder-text","IP:",0,None,None,None,None,None,None,None,None),
+ (2,4,"GtkWidget","can-focus","False",0,None,None,None,None,None,None,None,None),
+ (2,4,"GtkWidget","can-target","False",0,None,None,None,None,None,None,None,None),
+ (2,4,"GtkWidget","focus-on-click","False",0,None,None,None,None,None,None,None,None),
+ (2,4,"GtkWidget","halign","start",0,None,None,None,None,None,None,None,None),
+ (2,4,"GtkWidget","margin-bottom","5",0,None,None,None,None,None,None,None,None),
+ (2,4,"GtkWidget","margin-top","5",0,None,None,None,None,None,None,None,None),
+ (2,4,"GtkWidget","valign","center",0,None,None,None,None,None,None,None,None),
+ (2,5,"GtkEditable","editable","False",0,None,None,None,None,None,None,None,None),
+ (2,5,"GtkEditable","enable-undo","False",0,None,None,None,None,None,None,None,None),
+ (2,5,"GtkEditable","xalign","1.0",0,None,None,None,None,None,None,None,None),
+ (2,5,"GtkText","placeholder-text","User:",0,None,None,None,None,None,None,None,None),
+ (2,5,"GtkWidget","can-focus","False",0,None,None,None,None,None,None,None,None),
+ (2,5,"GtkWidget","can-target","False",0,None,None,None,None,None,None,None,None),
+ (2,5,"GtkWidget","focus-on-click","False",0,None,None,None,None,None,None,None,None),
+ (2,5,"GtkWidget","halign","start",0,None,None,None,None,None,None,None,None),
+ (2,5,"GtkWidget","margin-bottom","5",0,None,None,None,None,None,None,None,None),
+ (2,5,"GtkWidget","margin-top","5",0,None,None,None,None,None,None,None,None),
+ (2,5,"GtkWidget","valign","center",0,None,None,None,None,None,None,None,None),
+ (2,6,"GtkEditable","editable","False",0,None,None,None,None,None,None,None,None),
+ (2,6,"GtkEditable","enable-undo","False",0,None,None,None,None,None,None,None,None),
+ (2,6,"GtkEditable","xalign","1.0",0,None,None,None,None,None,None,None,None),
+ (2,6,"GtkText","placeholder-text","Password:",0,None,None,None,None,None,None,None,None),
+ (2,6,"GtkWidget","can-focus","False",0,None,None,None,None,None,None,None,None),
+ (2,6,"GtkWidget","can-target","False",0,None,None,None,None,None,None,None,None),
+ (2,6,"GtkWidget","focus-on-click","False",0,None,None,None,None,None,None,None,None),
+ (2,6,"GtkWidget","halign","start",0,None,None,None,None,None,None,None,None),
+ (2,6,"GtkWidget","margin-bottom","5",0,None,None,None,None,None,None,None,None),
+ (2,6,"GtkWidget","margin-top","5",0,None,None,None,None,None,None,None,None),
+ (2,6,"GtkWidget","valign","center",0,None,None,None,None,None,None,None,None),
+ (2,7,"GtkOrientable","orientation","vertical",0,None,None,None,None,None,None,None,None),
+ (2,7,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
+ (2,7,"GtkWidget","margin-bottom","5",0,None,None,None,None,None,None,None,None),
+ (2,7,"GtkWidget","margin-end","5",0,None,None,None,None,None,None,None,None),
+ (2,7,"GtkWidget","margin-start","5",0,None,None,None,None,None,None,None,None),
+ (2,7,"GtkWidget","margin-top","5",0,None,None,None,None,None,None,None,None),
+ (2,8,"GtkEditable","xalign","0.02",0,None,None,None,None,None,None,None,None),
+ (2,8,"GtkText","placeholder-text","ip-adresa",0,None,None,None,None,None,None,None,None),
+ (2,8,"GtkWidget","css-name","textentry",0,None,None,None,None,None,None,None,None),
+ (2,8,"GtkWidget","margin-bottom","5",0,None,None,None,None,None,None,None,None),
+ (2,8,"GtkWidget","margin-end","5",0,None,None,None,None,None,None,None,None),
+ (2,8,"GtkWidget","margin-top","5",0,None,None,None,None,None,None,None,None),
+ (2,9,"GtkEditable","xalign","0.02",0,None,None,None,None,None,None,None,None),
+ (2,9,"GtkText","placeholder-text","uzivatel",0,None,None,None,None,None,None,None,None),
+ (2,9,"GtkText","truncate-multiline","True",0,None,None,None,None,None,None,None,None),
+ (2,9,"GtkWidget","css-name","textentry",0,None,None,None,None,None,None,None,None),
+ (2,9,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
+ (2,9,"GtkWidget","margin-bottom","5",0,None,None,None,None,None,None,None,None),
+ (2,9,"GtkWidget","margin-end","5",0,None,None,None,None,None,None,None,None),
+ (2,9,"GtkWidget","margin-top","5",0,None,None,None,None,None,None,None,None),
+ (2,10,"GtkEditable","xalign","0.02",0,None,None,None,None,None,None,None,None),
+ (2,10,"GtkText","placeholder-text","heslo",0,None,None,None,None,None,None,None,None),
+ (2,10,"GtkText","visibility","False",0,None,None,None,None,None,None,None,None),
+ (2,10,"GtkWidget","css-name","textentry",0,None,None,None,None,None,None,None,None),
+ (2,10,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
+ (2,10,"GtkWidget","margin-bottom","5",0,None,None,None,None,None,None,None,None),
+ (2,10,"GtkWidget","margin-end","5",0,None,None,None,None,None,None,None,None),
+ (2,10,"GtkWidget","margin-top","5",0,None,None,None,None,None,None,None,None),
+ (2,11,"GtkButton","label","Connect",0,None,None,None,None,None,None,None,None),
+ (2,11,"GtkWidget","halign","end",0,None,None,None,None,None,None,None,None),
+ (2,11,"GtkWidget","valign","end",0,None,None,None,None,None,None,None,None),
+ (2,11,"GtkWidget","vexpand","True",0,None,None,None,None,None,None,None,None)
+
+
+ (1,1,"GtkWidget",1,1,None,None,None,None,None,None),
+ (2,1,"GtkWidget",1,1,None,None,None,None,None,None)
+
+
diff --git a/com.angoosh.RDPConnect/main.py b/com.angoosh.RDPConnect/main.py
new file mode 100644
index 0000000..cf3c533
--- /dev/null
+++ b/com.angoosh.RDPConnect/main.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Nov 18 12:04:53 2024
+
+@author: angoosh
+"""
+import sys
+import gi
+import subprocess
+gi.require_version('Gtk', '4.0')
+gi.require_version('Adw', '1')
+from gi.repository import Gtk, Adw, Gdk, Gio
+
+APPID = "com.angoosh.RDPConnect"
+
+
+class MyApp(Adw.Application):
+ def __init__(self, **kwargs):
+ super().__init__(**kwargs)
+ self.connect('activate', self.on_activate)
+
+ def on_activate(self, app):
+ builder = Gtk.Builder()
+ builder.add_from_file(APPID+".ui")
+
+ css_provider = Gtk.CssProvider()
+ css_provider.load_from_file(Gio.File.new_for_path("style.css"))
+ Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
+
+ connect = builder.get_object("connect")
+ connect.connect("clicked", self.hello)
+
+ self.ip = builder.get_object("ip")
+ self.user = builder.get_object("user")
+ self.passwd = builder.get_object("pass")
+
+ self.win = builder.get_object("main_window")
+ self.win.set_application(self)
+ self.win.present()
+
+ def hello(self, button):
+ print("Hello world")
+ ip = self.ip.get_buffer().get_text()
+ user = self.user.get_buffer().get_text()
+ passwd = self.passwd.get_buffer().get_text()
+
+ #subprocess.run(["flatpak", "run", "com.freerdp.FreeRDP", "/v:"+str(ip), "/u:"+str(user), "/p:"+str(passwd)])
+ subprocess.run(["xfreerdp", "/v:"+str(ip), "/u:"+str(user), "/p:"+str(passwd)])
+
+
+app = MyApp(application_id=APPID)
+app.run(sys.argv)
diff --git a/com.angoosh.RDPConnect/style.css b/com.angoosh.RDPConnect/style.css
new file mode 100644
index 0000000..14571d5
--- /dev/null
+++ b/com.angoosh.RDPConnect/style.css
@@ -0,0 +1,14 @@
+text{
+ font-size: 16pt;
+
+}
+
+textentry{
+ font-size: 16pt;
+ background-color: #454545;
+ border-radius: 6pt;
+}
+
+window{
+ background-color: #303030;
+}
\ No newline at end of file