From 28118b66640ada111e5f5753ca6f265f25e9f50b Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:10:50 +0200 Subject: [PATCH 01/38] Renamed main folder to app --- {linux_gui => app}/__init__.py | 0 {linux_gui => app}/constants.py | 0 {linux_gui => app}/gui_logger.py | 0 {linux_gui => app}/indicator.py | 0 {linux_gui => app}/presenters/__init__.py | 0 .../presenters/dashboard_presenter.py | 0 {linux_gui => app}/presenters/login_presenter.py | 0 {linux_gui => app}/presenters/settings_presenter.py | 0 {linux_gui => app}/protonvpn_gui.py | 0 {linux_gui => app}/resources/__init__.py | 0 {linux_gui => app}/resources/img/__init__.py | 0 {linux_gui => app}/resources/img/flags/__init__.py | 0 .../resources/img/flags/large/__init__.py | 0 {linux_gui => app}/resources/img/flags/large/ad.jpg | Bin {linux_gui => app}/resources/img/flags/large/ae.jpg | Bin {linux_gui => app}/resources/img/flags/large/af.jpg | Bin {linux_gui => app}/resources/img/flags/large/ag.jpg | Bin {linux_gui => app}/resources/img/flags/large/al.jpg | Bin {linux_gui => app}/resources/img/flags/large/am.jpg | Bin {linux_gui => app}/resources/img/flags/large/ao.jpg | Bin {linux_gui => app}/resources/img/flags/large/ar.jpg | Bin {linux_gui => app}/resources/img/flags/large/at.jpg | Bin {linux_gui => app}/resources/img/flags/large/au.jpg | Bin {linux_gui => app}/resources/img/flags/large/az.jpg | Bin {linux_gui => app}/resources/img/flags/large/ba.jpg | Bin {linux_gui => app}/resources/img/flags/large/bb.jpg | Bin {linux_gui => app}/resources/img/flags/large/bd.jpg | Bin {linux_gui => app}/resources/img/flags/large/be.jpg | Bin {linux_gui => app}/resources/img/flags/large/bf.jpg | Bin {linux_gui => app}/resources/img/flags/large/bg.jpg | Bin {linux_gui => app}/resources/img/flags/large/bh.jpg | Bin {linux_gui => app}/resources/img/flags/large/bi.jpg | Bin {linux_gui => app}/resources/img/flags/large/bj.jpg | Bin {linux_gui => app}/resources/img/flags/large/bn.jpg | Bin {linux_gui => app}/resources/img/flags/large/bo.jpg | Bin {linux_gui => app}/resources/img/flags/large/br.jpg | Bin {linux_gui => app}/resources/img/flags/large/bs.jpg | Bin {linux_gui => app}/resources/img/flags/large/bt.jpg | Bin {linux_gui => app}/resources/img/flags/large/bw.jpg | Bin {linux_gui => app}/resources/img/flags/large/by.jpg | Bin {linux_gui => app}/resources/img/flags/large/bz.jpg | Bin {linux_gui => app}/resources/img/flags/large/ca.jpg | Bin {linux_gui => app}/resources/img/flags/large/cd.jpg | Bin {linux_gui => app}/resources/img/flags/large/cf.jpg | Bin {linux_gui => app}/resources/img/flags/large/cg.jpg | Bin {linux_gui => app}/resources/img/flags/large/ch.jpg | Bin {linux_gui => app}/resources/img/flags/large/ci.jpg | Bin {linux_gui => app}/resources/img/flags/large/ck.jpg | Bin {linux_gui => app}/resources/img/flags/large/cl.jpg | Bin {linux_gui => app}/resources/img/flags/large/cm.jpg | Bin {linux_gui => app}/resources/img/flags/large/cn.jpg | Bin {linux_gui => app}/resources/img/flags/large/co.jpg | Bin {linux_gui => app}/resources/img/flags/large/cr.jpg | Bin {linux_gui => app}/resources/img/flags/large/cu.jpg | Bin {linux_gui => app}/resources/img/flags/large/cv.jpg | Bin {linux_gui => app}/resources/img/flags/large/cy.jpg | Bin {linux_gui => app}/resources/img/flags/large/cz.jpg | Bin {linux_gui => app}/resources/img/flags/large/de.jpg | Bin {linux_gui => app}/resources/img/flags/large/dj.jpg | Bin {linux_gui => app}/resources/img/flags/large/dk.jpg | Bin {linux_gui => app}/resources/img/flags/large/dm.jpg | Bin {linux_gui => app}/resources/img/flags/large/do.jpg | Bin {linux_gui => app}/resources/img/flags/large/dz.jpg | Bin {linux_gui => app}/resources/img/flags/large/ec.jpg | Bin {linux_gui => app}/resources/img/flags/large/ee.jpg | Bin {linux_gui => app}/resources/img/flags/large/eg.jpg | Bin {linux_gui => app}/resources/img/flags/large/eh.jpg | Bin {linux_gui => app}/resources/img/flags/large/er.jpg | Bin {linux_gui => app}/resources/img/flags/large/es.jpg | Bin {linux_gui => app}/resources/img/flags/large/et.jpg | Bin {linux_gui => app}/resources/img/flags/large/fi.jpg | Bin {linux_gui => app}/resources/img/flags/large/fj.jpg | Bin {linux_gui => app}/resources/img/flags/large/fm.jpg | Bin {linux_gui => app}/resources/img/flags/large/fr.jpg | Bin {linux_gui => app}/resources/img/flags/large/ga.jpg | Bin {linux_gui => app}/resources/img/flags/large/gb.jpg | Bin {linux_gui => app}/resources/img/flags/large/gd.jpg | Bin {linux_gui => app}/resources/img/flags/large/ge.jpg | Bin {linux_gui => app}/resources/img/flags/large/gh.jpg | Bin {linux_gui => app}/resources/img/flags/large/gm.jpg | Bin {linux_gui => app}/resources/img/flags/large/gn.jpg | Bin {linux_gui => app}/resources/img/flags/large/gq.jpg | Bin {linux_gui => app}/resources/img/flags/large/gr.jpg | Bin {linux_gui => app}/resources/img/flags/large/gt.jpg | Bin {linux_gui => app}/resources/img/flags/large/gw.jpg | Bin {linux_gui => app}/resources/img/flags/large/gy.jpg | Bin {linux_gui => app}/resources/img/flags/large/hn.jpg | Bin {linux_gui => app}/resources/img/flags/large/hr.jpg | Bin {linux_gui => app}/resources/img/flags/large/ht.jpg | Bin {linux_gui => app}/resources/img/flags/large/hu.jpg | Bin {linux_gui => app}/resources/img/flags/large/id.jpg | Bin {linux_gui => app}/resources/img/flags/large/ie.jpg | Bin {linux_gui => app}/resources/img/flags/large/il.jpg | Bin {linux_gui => app}/resources/img/flags/large/in.jpg | Bin {linux_gui => app}/resources/img/flags/large/iq.jpg | Bin {linux_gui => app}/resources/img/flags/large/ir.jpg | Bin {linux_gui => app}/resources/img/flags/large/is.jpg | Bin {linux_gui => app}/resources/img/flags/large/it.jpg | Bin {linux_gui => app}/resources/img/flags/large/jm.jpg | Bin {linux_gui => app}/resources/img/flags/large/jo.jpg | Bin {linux_gui => app}/resources/img/flags/large/jp.jpg | Bin {linux_gui => app}/resources/img/flags/large/ke.jpg | Bin {linux_gui => app}/resources/img/flags/large/kg.jpg | Bin {linux_gui => app}/resources/img/flags/large/kh.jpg | Bin {linux_gui => app}/resources/img/flags/large/ki.jpg | Bin {linux_gui => app}/resources/img/flags/large/km.jpg | Bin {linux_gui => app}/resources/img/flags/large/kn.jpg | Bin {linux_gui => app}/resources/img/flags/large/kp.jpg | Bin {linux_gui => app}/resources/img/flags/large/kr.jpg | Bin {linux_gui => app}/resources/img/flags/large/kw.jpg | Bin {linux_gui => app}/resources/img/flags/large/kz.jpg | Bin {linux_gui => app}/resources/img/flags/large/la.jpg | Bin {linux_gui => app}/resources/img/flags/large/lb.jpg | Bin {linux_gui => app}/resources/img/flags/large/lc.jpg | Bin {linux_gui => app}/resources/img/flags/large/li.jpg | Bin {linux_gui => app}/resources/img/flags/large/lk.jpg | Bin {linux_gui => app}/resources/img/flags/large/lr.jpg | Bin {linux_gui => app}/resources/img/flags/large/ls.jpg | Bin {linux_gui => app}/resources/img/flags/large/lt.jpg | Bin {linux_gui => app}/resources/img/flags/large/lu.jpg | Bin {linux_gui => app}/resources/img/flags/large/lv.jpg | Bin {linux_gui => app}/resources/img/flags/large/ly.jpg | Bin {linux_gui => app}/resources/img/flags/large/ma.jpg | Bin {linux_gui => app}/resources/img/flags/large/mc.jpg | Bin {linux_gui => app}/resources/img/flags/large/md.jpg | Bin {linux_gui => app}/resources/img/flags/large/me.jpg | Bin {linux_gui => app}/resources/img/flags/large/mg.jpg | Bin {linux_gui => app}/resources/img/flags/large/mh.jpg | Bin {linux_gui => app}/resources/img/flags/large/mk.jpg | Bin {linux_gui => app}/resources/img/flags/large/ml.jpg | Bin {linux_gui => app}/resources/img/flags/large/mm.jpg | Bin {linux_gui => app}/resources/img/flags/large/mn.jpg | Bin {linux_gui => app}/resources/img/flags/large/mr.jpg | Bin {linux_gui => app}/resources/img/flags/large/mt.jpg | Bin {linux_gui => app}/resources/img/flags/large/mu.jpg | Bin {linux_gui => app}/resources/img/flags/large/mv.jpg | Bin {linux_gui => app}/resources/img/flags/large/mw.jpg | Bin {linux_gui => app}/resources/img/flags/large/mx.jpg | Bin {linux_gui => app}/resources/img/flags/large/my.jpg | Bin {linux_gui => app}/resources/img/flags/large/mz.jpg | Bin {linux_gui => app}/resources/img/flags/large/na.jpg | Bin {linux_gui => app}/resources/img/flags/large/ne.jpg | Bin {linux_gui => app}/resources/img/flags/large/ng.jpg | Bin {linux_gui => app}/resources/img/flags/large/ni.jpg | Bin {linux_gui => app}/resources/img/flags/large/nl.jpg | Bin {linux_gui => app}/resources/img/flags/large/no.jpg | Bin {linux_gui => app}/resources/img/flags/large/np.jpg | Bin {linux_gui => app}/resources/img/flags/large/nr.jpg | Bin {linux_gui => app}/resources/img/flags/large/nu.jpg | Bin {linux_gui => app}/resources/img/flags/large/nz.jpg | Bin {linux_gui => app}/resources/img/flags/large/om.jpg | Bin {linux_gui => app}/resources/img/flags/large/pa.jpg | Bin {linux_gui => app}/resources/img/flags/large/pe.jpg | Bin {linux_gui => app}/resources/img/flags/large/pg.jpg | Bin {linux_gui => app}/resources/img/flags/large/ph.jpg | Bin {linux_gui => app}/resources/img/flags/large/pk.jpg | Bin {linux_gui => app}/resources/img/flags/large/pl.jpg | Bin {linux_gui => app}/resources/img/flags/large/ps.jpg | Bin {linux_gui => app}/resources/img/flags/large/pt.jpg | Bin {linux_gui => app}/resources/img/flags/large/pw.jpg | Bin {linux_gui => app}/resources/img/flags/large/py.jpg | Bin {linux_gui => app}/resources/img/flags/large/qa.jpg | Bin {linux_gui => app}/resources/img/flags/large/ro.jpg | Bin {linux_gui => app}/resources/img/flags/large/rs.jpg | Bin {linux_gui => app}/resources/img/flags/large/ru.jpg | Bin {linux_gui => app}/resources/img/flags/large/rw.jpg | Bin {linux_gui => app}/resources/img/flags/large/sa.jpg | Bin {linux_gui => app}/resources/img/flags/large/sb.jpg | Bin {linux_gui => app}/resources/img/flags/large/sc.jpg | Bin {linux_gui => app}/resources/img/flags/large/sd.jpg | Bin {linux_gui => app}/resources/img/flags/large/se.jpg | Bin {linux_gui => app}/resources/img/flags/large/sg.jpg | Bin {linux_gui => app}/resources/img/flags/large/si.jpg | Bin {linux_gui => app}/resources/img/flags/large/sk.jpg | Bin {linux_gui => app}/resources/img/flags/large/sl.jpg | Bin {linux_gui => app}/resources/img/flags/large/sm.jpg | Bin {linux_gui => app}/resources/img/flags/large/sn.jpg | Bin {linux_gui => app}/resources/img/flags/large/so.jpg | Bin {linux_gui => app}/resources/img/flags/large/sr.jpg | Bin {linux_gui => app}/resources/img/flags/large/ss.jpg | Bin {linux_gui => app}/resources/img/flags/large/st.jpg | Bin {linux_gui => app}/resources/img/flags/large/sv.jpg | Bin {linux_gui => app}/resources/img/flags/large/sy.jpg | Bin {linux_gui => app}/resources/img/flags/large/sz.jpg | Bin {linux_gui => app}/resources/img/flags/large/td.jpg | Bin {linux_gui => app}/resources/img/flags/large/tg.jpg | Bin {linux_gui => app}/resources/img/flags/large/th.jpg | Bin {linux_gui => app}/resources/img/flags/large/tj.jpg | Bin {linux_gui => app}/resources/img/flags/large/tl.jpg | Bin {linux_gui => app}/resources/img/flags/large/tm.jpg | Bin {linux_gui => app}/resources/img/flags/large/tn.jpg | Bin {linux_gui => app}/resources/img/flags/large/to.jpg | Bin {linux_gui => app}/resources/img/flags/large/tr.jpg | Bin {linux_gui => app}/resources/img/flags/large/tt.jpg | Bin {linux_gui => app}/resources/img/flags/large/tv.jpg | Bin {linux_gui => app}/resources/img/flags/large/tw.jpg | Bin {linux_gui => app}/resources/img/flags/large/tz.jpg | Bin {linux_gui => app}/resources/img/flags/large/ua.jpg | Bin {linux_gui => app}/resources/img/flags/large/ug.jpg | Bin {linux_gui => app}/resources/img/flags/large/us.jpg | Bin {linux_gui => app}/resources/img/flags/large/uy.jpg | Bin {linux_gui => app}/resources/img/flags/large/uz.jpg | Bin {linux_gui => app}/resources/img/flags/large/va.jpg | Bin {linux_gui => app}/resources/img/flags/large/vc.jpg | Bin {linux_gui => app}/resources/img/flags/large/ve.jpg | Bin {linux_gui => app}/resources/img/flags/large/vn.jpg | Bin {linux_gui => app}/resources/img/flags/large/vu.jpg | Bin {linux_gui => app}/resources/img/flags/large/ws.jpg | Bin {linux_gui => app}/resources/img/flags/large/xk.jpg | Bin {linux_gui => app}/resources/img/flags/large/ye.jpg | Bin {linux_gui => app}/resources/img/flags/large/za.jpg | Bin {linux_gui => app}/resources/img/flags/large/zm.jpg | Bin {linux_gui => app}/resources/img/flags/large/zw.jpg | Bin .../resources/img/flags/small/Afghanistan.png | Bin .../resources/img/flags/small/Albania.png | Bin .../resources/img/flags/small/Algeria.png | Bin .../resources/img/flags/small/Andorra.png | Bin .../resources/img/flags/small/Argentina.png | Bin .../resources/img/flags/small/Armenia.png | Bin .../resources/img/flags/small/Australia.png | Bin .../resources/img/flags/small/Austria.png | Bin .../resources/img/flags/small/Azerbaijan.png | Bin .../resources/img/flags/small/Bahamas.png | Bin .../resources/img/flags/small/Bangladesh.png | Bin .../resources/img/flags/small/Belarus.png | Bin .../resources/img/flags/small/Belgium.png | Bin .../img/flags/small/Bosnia and Herzegovina.png | Bin .../resources/img/flags/small/Brazil.png | Bin .../resources/img/flags/small/Bulgaria.png | Bin .../resources/img/flags/small/Cameroon.png | Bin .../resources/img/flags/small/Canada.png | Bin .../resources/img/flags/small/Chile.png | Bin .../resources/img/flags/small/China.png | Bin .../resources/img/flags/small/Colombia.png | Bin .../resources/img/flags/small/Costa Rica.png | Bin .../resources/img/flags/small/Croatia.png | Bin .../resources/img/flags/small/Cuba.png | Bin .../resources/img/flags/small/Cyprus.png | Bin .../resources/img/flags/small/Czech Republic.png | Bin .../resources/img/flags/small/Denmark.png | Bin .../resources/img/flags/small/Ecuador.png | Bin .../resources/img/flags/small/Egypt.png | Bin .../resources/img/flags/small/Estonia.png | Bin .../resources/img/flags/small/Finland.png | Bin .../resources/img/flags/small/France.png | Bin .../resources/img/flags/small/Georgia.png | Bin .../resources/img/flags/small/Germany.png | Bin .../resources/img/flags/small/Greece.png | Bin .../resources/img/flags/small/Hong Kong.png | Bin .../resources/img/flags/small/Hungary.png | Bin .../resources/img/flags/small/Iceland.png | Bin .../resources/img/flags/small/India.png | Bin .../resources/img/flags/small/Indonesia.png | Bin .../resources/img/flags/small/Ireland.png | Bin .../resources/img/flags/small/Israel.png | Bin .../resources/img/flags/small/Italy.png | Bin .../resources/img/flags/small/Jamaica.png | Bin .../resources/img/flags/small/Japan.png | Bin .../resources/img/flags/small/Latvia.png | Bin .../resources/img/flags/small/Libya.png | Bin .../resources/img/flags/small/Lithuania.png | Bin .../resources/img/flags/small/Luxembourg.png | Bin .../img/flags/small/Macedonia, Republic of.png | Bin .../resources/img/flags/small/Malaysia.png | Bin .../resources/img/flags/small/Mexico.png | Bin .../resources/img/flags/small/Moldova.png | Bin .../resources/img/flags/small/Myanmar.png | Bin .../resources/img/flags/small/Netherlands.png | Bin .../resources/img/flags/small/New Zealand.png | Bin .../resources/img/flags/small/Norway.png | Bin .../resources/img/flags/small/Philippines.png | Bin .../resources/img/flags/small/Poland.png | Bin .../resources/img/flags/small/Portugal.png | Bin .../resources/img/flags/small/Romania.png | Bin .../resources/img/flags/small/Russia.png | Bin .../resources/img/flags/small/Serbia.png | Bin .../resources/img/flags/small/Singapore.png | Bin .../resources/img/flags/small/Slovakia.png | Bin .../resources/img/flags/small/Slovenia.png | Bin .../resources/img/flags/small/South Africa.png | Bin .../resources/img/flags/small/South Korea.png | Bin .../resources/img/flags/small/Spain.png | Bin .../resources/img/flags/small/Sweden.png | Bin .../resources/img/flags/small/Switzerland.png | Bin .../resources/img/flags/small/Taiwan.png | Bin .../resources/img/flags/small/Thailand.png | Bin .../resources/img/flags/small/Tunisia.png | Bin .../resources/img/flags/small/Turkey.png | Bin .../resources/img/flags/small/Ukraine.png | Bin .../img/flags/small/United Arab Emirates.png | Bin .../resources/img/flags/small/United Kingdom.png | Bin .../resources/img/flags/small/United States.png | Bin .../resources/img/flags/small/Unknown.png | Bin .../resources/img/flags/small/Viet Nam.png | Bin .../resources/img/flags/small/__init__.py | 0 {linux_gui => app}/resources/img/gui/dashboard.png | Bin .../resources/img/gui/diagnose_tool.png | Bin .../resources/img/gui/intialize_profile.png | Bin .../resources/img/gui/settings_advanced.png | Bin .../resources/img/gui/settings_connection.png | Bin .../resources/img/gui/settings_general.png | Bin .../resources/img/gui/settings_tray.png | Bin {linux_gui => app}/resources/img/logo/__init__.py | 0 .../resources/img/logo/protonvpn-logo-white.png | Bin .../resources/img/logo/protonvpn_logo.png | Bin .../resources/img/logo/protonvpn_logo_alt.png | Bin .../resources/img/logo/protonvpn_logo_full.png | Bin .../resources/img/logo/protonvpn_sign_green.png | Bin .../resources/img/protonvpn_gui_banner.png | Bin {linux_gui => app}/resources/img/utils/__init__.py | 0 .../resources/img/utils/bitrate-download-arrow.png | Bin .../resources/img/utils/bitrate-upload-arrow.png | Bin {linux_gui => app}/resources/img/utils/fastest.png | Bin .../resources/img/utils/hamburger-menu-icon.png | Bin .../resources/img/utils/info-green.png | Bin {linux_gui => app}/resources/img/utils/normal.png | Bin .../resources/img/utils/p2p-arrows.png | Bin .../resources/img/utils/plus-server.png | Bin {linux_gui => app}/resources/img/utils/random.png | Bin {linux_gui => app}/resources/img/utils/search.png | Bin .../resources/img/utils/tor-onion.png | Bin {linux_gui => app}/resources/styles/__init__.py | 0 {linux_gui => app}/resources/styles/common.css | 0 {linux_gui => app}/resources/styles/dashboard.css | 0 {linux_gui => app}/resources/styles/headerbar.css | 0 {linux_gui => app}/resources/styles/login.css | 0 {linux_gui => app}/resources/styles/main.css | 0 {linux_gui => app}/resources/styles/settings.css | 0 {linux_gui => app}/resources/ui/__init__.py | 0 .../resources/ui/dashboard_window.glade | 0 {linux_gui => app}/resources/ui/login_window.glade | 0 .../resources/ui/message_dialog.glade | 0 .../resources/ui/settings_window.glade | 0 {linux_gui => app}/services/__init__.py | 0 {linux_gui => app}/services/dashboard_service.py | 0 {linux_gui => app}/services/login_service.py | 0 {linux_gui => app}/services/settings_service.py | 0 {linux_gui => app}/utils.py | 0 {linux_gui => app}/views/__init__.py | 0 {linux_gui => app}/views/dashboard_view.py | 0 {linux_gui => app}/views/dialog_view.py | 0 {linux_gui => app}/views/login_view.py | 0 {linux_gui => app}/views/settings_view.py | 0 343 files changed, 0 insertions(+), 0 deletions(-) rename {linux_gui => app}/__init__.py (100%) rename {linux_gui => app}/constants.py (100%) rename {linux_gui => app}/gui_logger.py (100%) rename {linux_gui => app}/indicator.py (100%) rename {linux_gui => app}/presenters/__init__.py (100%) rename {linux_gui => app}/presenters/dashboard_presenter.py (100%) rename {linux_gui => app}/presenters/login_presenter.py (100%) rename {linux_gui => app}/presenters/settings_presenter.py (100%) rename {linux_gui => app}/protonvpn_gui.py (100%) rename {linux_gui => app}/resources/__init__.py (100%) rename {linux_gui => app}/resources/img/__init__.py (100%) rename {linux_gui => app}/resources/img/flags/__init__.py (100%) rename {linux_gui => app}/resources/img/flags/large/__init__.py (100%) rename {linux_gui => app}/resources/img/flags/large/ad.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ae.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/af.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ag.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/al.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/am.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ao.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ar.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/at.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/au.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/az.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ba.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bb.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bd.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/be.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bf.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bh.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bi.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bj.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bo.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/br.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bs.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bt.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/by.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ca.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cd.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cf.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ch.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ci.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ck.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cl.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/co.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cu.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cv.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cy.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/de.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/dj.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/dk.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/dm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/do.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/dz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ec.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ee.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/eg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/eh.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/er.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/es.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/et.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/fi.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/fj.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/fm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/fr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ga.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gb.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gd.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ge.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gh.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gq.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gt.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gy.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/hn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/hr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ht.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/hu.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/id.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ie.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/il.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/in.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/iq.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ir.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/is.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/it.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/jm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/jo.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/jp.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ke.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kh.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ki.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/km.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kp.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/la.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lb.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lc.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/li.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lk.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ls.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lt.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lu.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lv.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ly.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ma.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mc.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/md.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/me.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mh.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mk.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ml.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mt.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mu.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mv.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mx.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/my.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/na.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ne.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ng.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ni.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/nl.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/no.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/np.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/nr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/nu.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/nz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/om.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pa.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pe.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ph.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pk.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pl.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ps.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pt.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/py.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/qa.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ro.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/rs.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ru.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/rw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sa.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sb.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sc.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sd.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/se.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/si.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sk.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sl.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/so.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ss.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/st.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sv.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sy.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/td.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/th.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tj.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tl.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/to.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tt.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tv.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ua.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ug.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/us.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/uy.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/uz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/va.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/vc.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ve.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/vn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/vu.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ws.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/xk.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ye.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/za.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/zm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/zw.jpg (100%) rename {linux_gui => app}/resources/img/flags/small/Afghanistan.png (100%) rename {linux_gui => app}/resources/img/flags/small/Albania.png (100%) rename {linux_gui => app}/resources/img/flags/small/Algeria.png (100%) rename {linux_gui => app}/resources/img/flags/small/Andorra.png (100%) rename {linux_gui => app}/resources/img/flags/small/Argentina.png (100%) rename {linux_gui => app}/resources/img/flags/small/Armenia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Australia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Austria.png (100%) rename {linux_gui => app}/resources/img/flags/small/Azerbaijan.png (100%) rename {linux_gui => app}/resources/img/flags/small/Bahamas.png (100%) rename {linux_gui => app}/resources/img/flags/small/Bangladesh.png (100%) rename {linux_gui => app}/resources/img/flags/small/Belarus.png (100%) rename {linux_gui => app}/resources/img/flags/small/Belgium.png (100%) rename {linux_gui => app}/resources/img/flags/small/Bosnia and Herzegovina.png (100%) rename {linux_gui => app}/resources/img/flags/small/Brazil.png (100%) rename {linux_gui => app}/resources/img/flags/small/Bulgaria.png (100%) rename {linux_gui => app}/resources/img/flags/small/Cameroon.png (100%) rename {linux_gui => app}/resources/img/flags/small/Canada.png (100%) rename {linux_gui => app}/resources/img/flags/small/Chile.png (100%) rename {linux_gui => app}/resources/img/flags/small/China.png (100%) rename {linux_gui => app}/resources/img/flags/small/Colombia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Costa Rica.png (100%) rename {linux_gui => app}/resources/img/flags/small/Croatia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Cuba.png (100%) rename {linux_gui => app}/resources/img/flags/small/Cyprus.png (100%) rename {linux_gui => app}/resources/img/flags/small/Czech Republic.png (100%) rename {linux_gui => app}/resources/img/flags/small/Denmark.png (100%) rename {linux_gui => app}/resources/img/flags/small/Ecuador.png (100%) rename {linux_gui => app}/resources/img/flags/small/Egypt.png (100%) rename {linux_gui => app}/resources/img/flags/small/Estonia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Finland.png (100%) rename {linux_gui => app}/resources/img/flags/small/France.png (100%) rename {linux_gui => app}/resources/img/flags/small/Georgia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Germany.png (100%) rename {linux_gui => app}/resources/img/flags/small/Greece.png (100%) rename {linux_gui => app}/resources/img/flags/small/Hong Kong.png (100%) rename {linux_gui => app}/resources/img/flags/small/Hungary.png (100%) rename {linux_gui => app}/resources/img/flags/small/Iceland.png (100%) rename {linux_gui => app}/resources/img/flags/small/India.png (100%) rename {linux_gui => app}/resources/img/flags/small/Indonesia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Ireland.png (100%) rename {linux_gui => app}/resources/img/flags/small/Israel.png (100%) rename {linux_gui => app}/resources/img/flags/small/Italy.png (100%) rename {linux_gui => app}/resources/img/flags/small/Jamaica.png (100%) rename {linux_gui => app}/resources/img/flags/small/Japan.png (100%) rename {linux_gui => app}/resources/img/flags/small/Latvia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Libya.png (100%) rename {linux_gui => app}/resources/img/flags/small/Lithuania.png (100%) rename {linux_gui => app}/resources/img/flags/small/Luxembourg.png (100%) rename {linux_gui => app}/resources/img/flags/small/Macedonia, Republic of.png (100%) rename {linux_gui => app}/resources/img/flags/small/Malaysia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Mexico.png (100%) rename {linux_gui => app}/resources/img/flags/small/Moldova.png (100%) rename {linux_gui => app}/resources/img/flags/small/Myanmar.png (100%) rename {linux_gui => app}/resources/img/flags/small/Netherlands.png (100%) rename {linux_gui => app}/resources/img/flags/small/New Zealand.png (100%) rename {linux_gui => app}/resources/img/flags/small/Norway.png (100%) rename {linux_gui => app}/resources/img/flags/small/Philippines.png (100%) rename {linux_gui => app}/resources/img/flags/small/Poland.png (100%) rename {linux_gui => app}/resources/img/flags/small/Portugal.png (100%) rename {linux_gui => app}/resources/img/flags/small/Romania.png (100%) rename {linux_gui => app}/resources/img/flags/small/Russia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Serbia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Singapore.png (100%) rename {linux_gui => app}/resources/img/flags/small/Slovakia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Slovenia.png (100%) rename {linux_gui => app}/resources/img/flags/small/South Africa.png (100%) rename {linux_gui => app}/resources/img/flags/small/South Korea.png (100%) rename {linux_gui => app}/resources/img/flags/small/Spain.png (100%) rename {linux_gui => app}/resources/img/flags/small/Sweden.png (100%) rename {linux_gui => app}/resources/img/flags/small/Switzerland.png (100%) rename {linux_gui => app}/resources/img/flags/small/Taiwan.png (100%) rename {linux_gui => app}/resources/img/flags/small/Thailand.png (100%) rename {linux_gui => app}/resources/img/flags/small/Tunisia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Turkey.png (100%) rename {linux_gui => app}/resources/img/flags/small/Ukraine.png (100%) rename {linux_gui => app}/resources/img/flags/small/United Arab Emirates.png (100%) rename {linux_gui => app}/resources/img/flags/small/United Kingdom.png (100%) rename {linux_gui => app}/resources/img/flags/small/United States.png (100%) rename {linux_gui => app}/resources/img/flags/small/Unknown.png (100%) rename {linux_gui => app}/resources/img/flags/small/Viet Nam.png (100%) rename {linux_gui => app}/resources/img/flags/small/__init__.py (100%) rename {linux_gui => app}/resources/img/gui/dashboard.png (100%) rename {linux_gui => app}/resources/img/gui/diagnose_tool.png (100%) rename {linux_gui => app}/resources/img/gui/intialize_profile.png (100%) rename {linux_gui => app}/resources/img/gui/settings_advanced.png (100%) rename {linux_gui => app}/resources/img/gui/settings_connection.png (100%) rename {linux_gui => app}/resources/img/gui/settings_general.png (100%) rename {linux_gui => app}/resources/img/gui/settings_tray.png (100%) rename {linux_gui => app}/resources/img/logo/__init__.py (100%) rename {linux_gui => app}/resources/img/logo/protonvpn-logo-white.png (100%) rename {linux_gui => app}/resources/img/logo/protonvpn_logo.png (100%) rename {linux_gui => app}/resources/img/logo/protonvpn_logo_alt.png (100%) rename {linux_gui => app}/resources/img/logo/protonvpn_logo_full.png (100%) rename {linux_gui => app}/resources/img/logo/protonvpn_sign_green.png (100%) rename {linux_gui => app}/resources/img/protonvpn_gui_banner.png (100%) rename {linux_gui => app}/resources/img/utils/__init__.py (100%) rename {linux_gui => app}/resources/img/utils/bitrate-download-arrow.png (100%) rename {linux_gui => app}/resources/img/utils/bitrate-upload-arrow.png (100%) rename {linux_gui => app}/resources/img/utils/fastest.png (100%) rename {linux_gui => app}/resources/img/utils/hamburger-menu-icon.png (100%) rename {linux_gui => app}/resources/img/utils/info-green.png (100%) rename {linux_gui => app}/resources/img/utils/normal.png (100%) rename {linux_gui => app}/resources/img/utils/p2p-arrows.png (100%) rename {linux_gui => app}/resources/img/utils/plus-server.png (100%) rename {linux_gui => app}/resources/img/utils/random.png (100%) rename {linux_gui => app}/resources/img/utils/search.png (100%) rename {linux_gui => app}/resources/img/utils/tor-onion.png (100%) rename {linux_gui => app}/resources/styles/__init__.py (100%) rename {linux_gui => app}/resources/styles/common.css (100%) rename {linux_gui => app}/resources/styles/dashboard.css (100%) rename {linux_gui => app}/resources/styles/headerbar.css (100%) rename {linux_gui => app}/resources/styles/login.css (100%) rename {linux_gui => app}/resources/styles/main.css (100%) rename {linux_gui => app}/resources/styles/settings.css (100%) rename {linux_gui => app}/resources/ui/__init__.py (100%) rename {linux_gui => app}/resources/ui/dashboard_window.glade (100%) rename {linux_gui => app}/resources/ui/login_window.glade (100%) rename {linux_gui => app}/resources/ui/message_dialog.glade (100%) rename {linux_gui => app}/resources/ui/settings_window.glade (100%) rename {linux_gui => app}/services/__init__.py (100%) rename {linux_gui => app}/services/dashboard_service.py (100%) rename {linux_gui => app}/services/login_service.py (100%) rename {linux_gui => app}/services/settings_service.py (100%) rename {linux_gui => app}/utils.py (100%) rename {linux_gui => app}/views/__init__.py (100%) rename {linux_gui => app}/views/dashboard_view.py (100%) rename {linux_gui => app}/views/dialog_view.py (100%) rename {linux_gui => app}/views/login_view.py (100%) rename {linux_gui => app}/views/settings_view.py (100%) diff --git a/linux_gui/__init__.py b/app/__init__.py similarity index 100% rename from linux_gui/__init__.py rename to app/__init__.py diff --git a/linux_gui/constants.py b/app/constants.py similarity index 100% rename from linux_gui/constants.py rename to app/constants.py diff --git a/linux_gui/gui_logger.py b/app/gui_logger.py similarity index 100% rename from linux_gui/gui_logger.py rename to app/gui_logger.py diff --git a/linux_gui/indicator.py b/app/indicator.py similarity index 100% rename from linux_gui/indicator.py rename to app/indicator.py diff --git a/linux_gui/presenters/__init__.py b/app/presenters/__init__.py similarity index 100% rename from linux_gui/presenters/__init__.py rename to app/presenters/__init__.py diff --git a/linux_gui/presenters/dashboard_presenter.py b/app/presenters/dashboard_presenter.py similarity index 100% rename from linux_gui/presenters/dashboard_presenter.py rename to app/presenters/dashboard_presenter.py diff --git a/linux_gui/presenters/login_presenter.py b/app/presenters/login_presenter.py similarity index 100% rename from linux_gui/presenters/login_presenter.py rename to app/presenters/login_presenter.py diff --git a/linux_gui/presenters/settings_presenter.py b/app/presenters/settings_presenter.py similarity index 100% rename from linux_gui/presenters/settings_presenter.py rename to app/presenters/settings_presenter.py diff --git a/linux_gui/protonvpn_gui.py b/app/protonvpn_gui.py similarity index 100% rename from linux_gui/protonvpn_gui.py rename to app/protonvpn_gui.py diff --git a/linux_gui/resources/__init__.py b/app/resources/__init__.py similarity index 100% rename from linux_gui/resources/__init__.py rename to app/resources/__init__.py diff --git a/linux_gui/resources/img/__init__.py b/app/resources/img/__init__.py similarity index 100% rename from linux_gui/resources/img/__init__.py rename to app/resources/img/__init__.py diff --git a/linux_gui/resources/img/flags/__init__.py b/app/resources/img/flags/__init__.py similarity index 100% rename from linux_gui/resources/img/flags/__init__.py rename to app/resources/img/flags/__init__.py diff --git a/linux_gui/resources/img/flags/large/__init__.py b/app/resources/img/flags/large/__init__.py similarity index 100% rename from linux_gui/resources/img/flags/large/__init__.py rename to app/resources/img/flags/large/__init__.py diff --git a/linux_gui/resources/img/flags/large/ad.jpg b/app/resources/img/flags/large/ad.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ad.jpg rename to app/resources/img/flags/large/ad.jpg diff --git a/linux_gui/resources/img/flags/large/ae.jpg b/app/resources/img/flags/large/ae.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ae.jpg rename to app/resources/img/flags/large/ae.jpg diff --git a/linux_gui/resources/img/flags/large/af.jpg b/app/resources/img/flags/large/af.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/af.jpg rename to app/resources/img/flags/large/af.jpg diff --git a/linux_gui/resources/img/flags/large/ag.jpg b/app/resources/img/flags/large/ag.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ag.jpg rename to app/resources/img/flags/large/ag.jpg diff --git a/linux_gui/resources/img/flags/large/al.jpg b/app/resources/img/flags/large/al.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/al.jpg rename to app/resources/img/flags/large/al.jpg diff --git a/linux_gui/resources/img/flags/large/am.jpg b/app/resources/img/flags/large/am.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/am.jpg rename to app/resources/img/flags/large/am.jpg diff --git a/linux_gui/resources/img/flags/large/ao.jpg b/app/resources/img/flags/large/ao.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ao.jpg rename to app/resources/img/flags/large/ao.jpg diff --git a/linux_gui/resources/img/flags/large/ar.jpg b/app/resources/img/flags/large/ar.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ar.jpg rename to app/resources/img/flags/large/ar.jpg diff --git a/linux_gui/resources/img/flags/large/at.jpg b/app/resources/img/flags/large/at.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/at.jpg rename to app/resources/img/flags/large/at.jpg diff --git a/linux_gui/resources/img/flags/large/au.jpg b/app/resources/img/flags/large/au.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/au.jpg rename to app/resources/img/flags/large/au.jpg diff --git a/linux_gui/resources/img/flags/large/az.jpg b/app/resources/img/flags/large/az.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/az.jpg rename to app/resources/img/flags/large/az.jpg diff --git a/linux_gui/resources/img/flags/large/ba.jpg b/app/resources/img/flags/large/ba.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ba.jpg rename to app/resources/img/flags/large/ba.jpg diff --git a/linux_gui/resources/img/flags/large/bb.jpg b/app/resources/img/flags/large/bb.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bb.jpg rename to app/resources/img/flags/large/bb.jpg diff --git a/linux_gui/resources/img/flags/large/bd.jpg b/app/resources/img/flags/large/bd.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bd.jpg rename to app/resources/img/flags/large/bd.jpg diff --git a/linux_gui/resources/img/flags/large/be.jpg b/app/resources/img/flags/large/be.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/be.jpg rename to app/resources/img/flags/large/be.jpg diff --git a/linux_gui/resources/img/flags/large/bf.jpg b/app/resources/img/flags/large/bf.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bf.jpg rename to app/resources/img/flags/large/bf.jpg diff --git a/linux_gui/resources/img/flags/large/bg.jpg b/app/resources/img/flags/large/bg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bg.jpg rename to app/resources/img/flags/large/bg.jpg diff --git a/linux_gui/resources/img/flags/large/bh.jpg b/app/resources/img/flags/large/bh.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bh.jpg rename to app/resources/img/flags/large/bh.jpg diff --git a/linux_gui/resources/img/flags/large/bi.jpg b/app/resources/img/flags/large/bi.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bi.jpg rename to app/resources/img/flags/large/bi.jpg diff --git a/linux_gui/resources/img/flags/large/bj.jpg b/app/resources/img/flags/large/bj.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bj.jpg rename to app/resources/img/flags/large/bj.jpg diff --git a/linux_gui/resources/img/flags/large/bn.jpg b/app/resources/img/flags/large/bn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bn.jpg rename to app/resources/img/flags/large/bn.jpg diff --git a/linux_gui/resources/img/flags/large/bo.jpg b/app/resources/img/flags/large/bo.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bo.jpg rename to app/resources/img/flags/large/bo.jpg diff --git a/linux_gui/resources/img/flags/large/br.jpg b/app/resources/img/flags/large/br.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/br.jpg rename to app/resources/img/flags/large/br.jpg diff --git a/linux_gui/resources/img/flags/large/bs.jpg b/app/resources/img/flags/large/bs.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bs.jpg rename to app/resources/img/flags/large/bs.jpg diff --git a/linux_gui/resources/img/flags/large/bt.jpg b/app/resources/img/flags/large/bt.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bt.jpg rename to app/resources/img/flags/large/bt.jpg diff --git a/linux_gui/resources/img/flags/large/bw.jpg b/app/resources/img/flags/large/bw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bw.jpg rename to app/resources/img/flags/large/bw.jpg diff --git a/linux_gui/resources/img/flags/large/by.jpg b/app/resources/img/flags/large/by.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/by.jpg rename to app/resources/img/flags/large/by.jpg diff --git a/linux_gui/resources/img/flags/large/bz.jpg b/app/resources/img/flags/large/bz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bz.jpg rename to app/resources/img/flags/large/bz.jpg diff --git a/linux_gui/resources/img/flags/large/ca.jpg b/app/resources/img/flags/large/ca.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ca.jpg rename to app/resources/img/flags/large/ca.jpg diff --git a/linux_gui/resources/img/flags/large/cd.jpg b/app/resources/img/flags/large/cd.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cd.jpg rename to app/resources/img/flags/large/cd.jpg diff --git a/linux_gui/resources/img/flags/large/cf.jpg b/app/resources/img/flags/large/cf.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cf.jpg rename to app/resources/img/flags/large/cf.jpg diff --git a/linux_gui/resources/img/flags/large/cg.jpg b/app/resources/img/flags/large/cg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cg.jpg rename to app/resources/img/flags/large/cg.jpg diff --git a/linux_gui/resources/img/flags/large/ch.jpg b/app/resources/img/flags/large/ch.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ch.jpg rename to app/resources/img/flags/large/ch.jpg diff --git a/linux_gui/resources/img/flags/large/ci.jpg b/app/resources/img/flags/large/ci.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ci.jpg rename to app/resources/img/flags/large/ci.jpg diff --git a/linux_gui/resources/img/flags/large/ck.jpg b/app/resources/img/flags/large/ck.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ck.jpg rename to app/resources/img/flags/large/ck.jpg diff --git a/linux_gui/resources/img/flags/large/cl.jpg b/app/resources/img/flags/large/cl.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cl.jpg rename to app/resources/img/flags/large/cl.jpg diff --git a/linux_gui/resources/img/flags/large/cm.jpg b/app/resources/img/flags/large/cm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cm.jpg rename to app/resources/img/flags/large/cm.jpg diff --git a/linux_gui/resources/img/flags/large/cn.jpg b/app/resources/img/flags/large/cn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cn.jpg rename to app/resources/img/flags/large/cn.jpg diff --git a/linux_gui/resources/img/flags/large/co.jpg b/app/resources/img/flags/large/co.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/co.jpg rename to app/resources/img/flags/large/co.jpg diff --git a/linux_gui/resources/img/flags/large/cr.jpg b/app/resources/img/flags/large/cr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cr.jpg rename to app/resources/img/flags/large/cr.jpg diff --git a/linux_gui/resources/img/flags/large/cu.jpg b/app/resources/img/flags/large/cu.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cu.jpg rename to app/resources/img/flags/large/cu.jpg diff --git a/linux_gui/resources/img/flags/large/cv.jpg b/app/resources/img/flags/large/cv.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cv.jpg rename to app/resources/img/flags/large/cv.jpg diff --git a/linux_gui/resources/img/flags/large/cy.jpg b/app/resources/img/flags/large/cy.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cy.jpg rename to app/resources/img/flags/large/cy.jpg diff --git a/linux_gui/resources/img/flags/large/cz.jpg b/app/resources/img/flags/large/cz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cz.jpg rename to app/resources/img/flags/large/cz.jpg diff --git a/linux_gui/resources/img/flags/large/de.jpg b/app/resources/img/flags/large/de.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/de.jpg rename to app/resources/img/flags/large/de.jpg diff --git a/linux_gui/resources/img/flags/large/dj.jpg b/app/resources/img/flags/large/dj.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/dj.jpg rename to app/resources/img/flags/large/dj.jpg diff --git a/linux_gui/resources/img/flags/large/dk.jpg b/app/resources/img/flags/large/dk.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/dk.jpg rename to app/resources/img/flags/large/dk.jpg diff --git a/linux_gui/resources/img/flags/large/dm.jpg b/app/resources/img/flags/large/dm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/dm.jpg rename to app/resources/img/flags/large/dm.jpg diff --git a/linux_gui/resources/img/flags/large/do.jpg b/app/resources/img/flags/large/do.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/do.jpg rename to app/resources/img/flags/large/do.jpg diff --git a/linux_gui/resources/img/flags/large/dz.jpg b/app/resources/img/flags/large/dz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/dz.jpg rename to app/resources/img/flags/large/dz.jpg diff --git a/linux_gui/resources/img/flags/large/ec.jpg b/app/resources/img/flags/large/ec.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ec.jpg rename to app/resources/img/flags/large/ec.jpg diff --git a/linux_gui/resources/img/flags/large/ee.jpg b/app/resources/img/flags/large/ee.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ee.jpg rename to app/resources/img/flags/large/ee.jpg diff --git a/linux_gui/resources/img/flags/large/eg.jpg b/app/resources/img/flags/large/eg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/eg.jpg rename to app/resources/img/flags/large/eg.jpg diff --git a/linux_gui/resources/img/flags/large/eh.jpg b/app/resources/img/flags/large/eh.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/eh.jpg rename to app/resources/img/flags/large/eh.jpg diff --git a/linux_gui/resources/img/flags/large/er.jpg b/app/resources/img/flags/large/er.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/er.jpg rename to app/resources/img/flags/large/er.jpg diff --git a/linux_gui/resources/img/flags/large/es.jpg b/app/resources/img/flags/large/es.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/es.jpg rename to app/resources/img/flags/large/es.jpg diff --git a/linux_gui/resources/img/flags/large/et.jpg b/app/resources/img/flags/large/et.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/et.jpg rename to app/resources/img/flags/large/et.jpg diff --git a/linux_gui/resources/img/flags/large/fi.jpg b/app/resources/img/flags/large/fi.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/fi.jpg rename to app/resources/img/flags/large/fi.jpg diff --git a/linux_gui/resources/img/flags/large/fj.jpg b/app/resources/img/flags/large/fj.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/fj.jpg rename to app/resources/img/flags/large/fj.jpg diff --git a/linux_gui/resources/img/flags/large/fm.jpg b/app/resources/img/flags/large/fm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/fm.jpg rename to app/resources/img/flags/large/fm.jpg diff --git a/linux_gui/resources/img/flags/large/fr.jpg b/app/resources/img/flags/large/fr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/fr.jpg rename to app/resources/img/flags/large/fr.jpg diff --git a/linux_gui/resources/img/flags/large/ga.jpg b/app/resources/img/flags/large/ga.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ga.jpg rename to app/resources/img/flags/large/ga.jpg diff --git a/linux_gui/resources/img/flags/large/gb.jpg b/app/resources/img/flags/large/gb.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gb.jpg rename to app/resources/img/flags/large/gb.jpg diff --git a/linux_gui/resources/img/flags/large/gd.jpg b/app/resources/img/flags/large/gd.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gd.jpg rename to app/resources/img/flags/large/gd.jpg diff --git a/linux_gui/resources/img/flags/large/ge.jpg b/app/resources/img/flags/large/ge.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ge.jpg rename to app/resources/img/flags/large/ge.jpg diff --git a/linux_gui/resources/img/flags/large/gh.jpg b/app/resources/img/flags/large/gh.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gh.jpg rename to app/resources/img/flags/large/gh.jpg diff --git a/linux_gui/resources/img/flags/large/gm.jpg b/app/resources/img/flags/large/gm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gm.jpg rename to app/resources/img/flags/large/gm.jpg diff --git a/linux_gui/resources/img/flags/large/gn.jpg b/app/resources/img/flags/large/gn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gn.jpg rename to app/resources/img/flags/large/gn.jpg diff --git a/linux_gui/resources/img/flags/large/gq.jpg b/app/resources/img/flags/large/gq.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gq.jpg rename to app/resources/img/flags/large/gq.jpg diff --git a/linux_gui/resources/img/flags/large/gr.jpg b/app/resources/img/flags/large/gr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gr.jpg rename to app/resources/img/flags/large/gr.jpg diff --git a/linux_gui/resources/img/flags/large/gt.jpg b/app/resources/img/flags/large/gt.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gt.jpg rename to app/resources/img/flags/large/gt.jpg diff --git a/linux_gui/resources/img/flags/large/gw.jpg b/app/resources/img/flags/large/gw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gw.jpg rename to app/resources/img/flags/large/gw.jpg diff --git a/linux_gui/resources/img/flags/large/gy.jpg b/app/resources/img/flags/large/gy.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gy.jpg rename to app/resources/img/flags/large/gy.jpg diff --git a/linux_gui/resources/img/flags/large/hn.jpg b/app/resources/img/flags/large/hn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/hn.jpg rename to app/resources/img/flags/large/hn.jpg diff --git a/linux_gui/resources/img/flags/large/hr.jpg b/app/resources/img/flags/large/hr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/hr.jpg rename to app/resources/img/flags/large/hr.jpg diff --git a/linux_gui/resources/img/flags/large/ht.jpg b/app/resources/img/flags/large/ht.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ht.jpg rename to app/resources/img/flags/large/ht.jpg diff --git a/linux_gui/resources/img/flags/large/hu.jpg b/app/resources/img/flags/large/hu.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/hu.jpg rename to app/resources/img/flags/large/hu.jpg diff --git a/linux_gui/resources/img/flags/large/id.jpg b/app/resources/img/flags/large/id.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/id.jpg rename to app/resources/img/flags/large/id.jpg diff --git a/linux_gui/resources/img/flags/large/ie.jpg b/app/resources/img/flags/large/ie.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ie.jpg rename to app/resources/img/flags/large/ie.jpg diff --git a/linux_gui/resources/img/flags/large/il.jpg b/app/resources/img/flags/large/il.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/il.jpg rename to app/resources/img/flags/large/il.jpg diff --git a/linux_gui/resources/img/flags/large/in.jpg b/app/resources/img/flags/large/in.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/in.jpg rename to app/resources/img/flags/large/in.jpg diff --git a/linux_gui/resources/img/flags/large/iq.jpg b/app/resources/img/flags/large/iq.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/iq.jpg rename to app/resources/img/flags/large/iq.jpg diff --git a/linux_gui/resources/img/flags/large/ir.jpg b/app/resources/img/flags/large/ir.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ir.jpg rename to app/resources/img/flags/large/ir.jpg diff --git a/linux_gui/resources/img/flags/large/is.jpg b/app/resources/img/flags/large/is.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/is.jpg rename to app/resources/img/flags/large/is.jpg diff --git a/linux_gui/resources/img/flags/large/it.jpg b/app/resources/img/flags/large/it.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/it.jpg rename to app/resources/img/flags/large/it.jpg diff --git a/linux_gui/resources/img/flags/large/jm.jpg b/app/resources/img/flags/large/jm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/jm.jpg rename to app/resources/img/flags/large/jm.jpg diff --git a/linux_gui/resources/img/flags/large/jo.jpg b/app/resources/img/flags/large/jo.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/jo.jpg rename to app/resources/img/flags/large/jo.jpg diff --git a/linux_gui/resources/img/flags/large/jp.jpg b/app/resources/img/flags/large/jp.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/jp.jpg rename to app/resources/img/flags/large/jp.jpg diff --git a/linux_gui/resources/img/flags/large/ke.jpg b/app/resources/img/flags/large/ke.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ke.jpg rename to app/resources/img/flags/large/ke.jpg diff --git a/linux_gui/resources/img/flags/large/kg.jpg b/app/resources/img/flags/large/kg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kg.jpg rename to app/resources/img/flags/large/kg.jpg diff --git a/linux_gui/resources/img/flags/large/kh.jpg b/app/resources/img/flags/large/kh.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kh.jpg rename to app/resources/img/flags/large/kh.jpg diff --git a/linux_gui/resources/img/flags/large/ki.jpg b/app/resources/img/flags/large/ki.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ki.jpg rename to app/resources/img/flags/large/ki.jpg diff --git a/linux_gui/resources/img/flags/large/km.jpg b/app/resources/img/flags/large/km.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/km.jpg rename to app/resources/img/flags/large/km.jpg diff --git a/linux_gui/resources/img/flags/large/kn.jpg b/app/resources/img/flags/large/kn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kn.jpg rename to app/resources/img/flags/large/kn.jpg diff --git a/linux_gui/resources/img/flags/large/kp.jpg b/app/resources/img/flags/large/kp.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kp.jpg rename to app/resources/img/flags/large/kp.jpg diff --git a/linux_gui/resources/img/flags/large/kr.jpg b/app/resources/img/flags/large/kr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kr.jpg rename to app/resources/img/flags/large/kr.jpg diff --git a/linux_gui/resources/img/flags/large/kw.jpg b/app/resources/img/flags/large/kw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kw.jpg rename to app/resources/img/flags/large/kw.jpg diff --git a/linux_gui/resources/img/flags/large/kz.jpg b/app/resources/img/flags/large/kz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kz.jpg rename to app/resources/img/flags/large/kz.jpg diff --git a/linux_gui/resources/img/flags/large/la.jpg b/app/resources/img/flags/large/la.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/la.jpg rename to app/resources/img/flags/large/la.jpg diff --git a/linux_gui/resources/img/flags/large/lb.jpg b/app/resources/img/flags/large/lb.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lb.jpg rename to app/resources/img/flags/large/lb.jpg diff --git a/linux_gui/resources/img/flags/large/lc.jpg b/app/resources/img/flags/large/lc.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lc.jpg rename to app/resources/img/flags/large/lc.jpg diff --git a/linux_gui/resources/img/flags/large/li.jpg b/app/resources/img/flags/large/li.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/li.jpg rename to app/resources/img/flags/large/li.jpg diff --git a/linux_gui/resources/img/flags/large/lk.jpg b/app/resources/img/flags/large/lk.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lk.jpg rename to app/resources/img/flags/large/lk.jpg diff --git a/linux_gui/resources/img/flags/large/lr.jpg b/app/resources/img/flags/large/lr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lr.jpg rename to app/resources/img/flags/large/lr.jpg diff --git a/linux_gui/resources/img/flags/large/ls.jpg b/app/resources/img/flags/large/ls.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ls.jpg rename to app/resources/img/flags/large/ls.jpg diff --git a/linux_gui/resources/img/flags/large/lt.jpg b/app/resources/img/flags/large/lt.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lt.jpg rename to app/resources/img/flags/large/lt.jpg diff --git a/linux_gui/resources/img/flags/large/lu.jpg b/app/resources/img/flags/large/lu.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lu.jpg rename to app/resources/img/flags/large/lu.jpg diff --git a/linux_gui/resources/img/flags/large/lv.jpg b/app/resources/img/flags/large/lv.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lv.jpg rename to app/resources/img/flags/large/lv.jpg diff --git a/linux_gui/resources/img/flags/large/ly.jpg b/app/resources/img/flags/large/ly.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ly.jpg rename to app/resources/img/flags/large/ly.jpg diff --git a/linux_gui/resources/img/flags/large/ma.jpg b/app/resources/img/flags/large/ma.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ma.jpg rename to app/resources/img/flags/large/ma.jpg diff --git a/linux_gui/resources/img/flags/large/mc.jpg b/app/resources/img/flags/large/mc.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mc.jpg rename to app/resources/img/flags/large/mc.jpg diff --git a/linux_gui/resources/img/flags/large/md.jpg b/app/resources/img/flags/large/md.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/md.jpg rename to app/resources/img/flags/large/md.jpg diff --git a/linux_gui/resources/img/flags/large/me.jpg b/app/resources/img/flags/large/me.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/me.jpg rename to app/resources/img/flags/large/me.jpg diff --git a/linux_gui/resources/img/flags/large/mg.jpg b/app/resources/img/flags/large/mg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mg.jpg rename to app/resources/img/flags/large/mg.jpg diff --git a/linux_gui/resources/img/flags/large/mh.jpg b/app/resources/img/flags/large/mh.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mh.jpg rename to app/resources/img/flags/large/mh.jpg diff --git a/linux_gui/resources/img/flags/large/mk.jpg b/app/resources/img/flags/large/mk.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mk.jpg rename to app/resources/img/flags/large/mk.jpg diff --git a/linux_gui/resources/img/flags/large/ml.jpg b/app/resources/img/flags/large/ml.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ml.jpg rename to app/resources/img/flags/large/ml.jpg diff --git a/linux_gui/resources/img/flags/large/mm.jpg b/app/resources/img/flags/large/mm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mm.jpg rename to app/resources/img/flags/large/mm.jpg diff --git a/linux_gui/resources/img/flags/large/mn.jpg b/app/resources/img/flags/large/mn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mn.jpg rename to app/resources/img/flags/large/mn.jpg diff --git a/linux_gui/resources/img/flags/large/mr.jpg b/app/resources/img/flags/large/mr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mr.jpg rename to app/resources/img/flags/large/mr.jpg diff --git a/linux_gui/resources/img/flags/large/mt.jpg b/app/resources/img/flags/large/mt.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mt.jpg rename to app/resources/img/flags/large/mt.jpg diff --git a/linux_gui/resources/img/flags/large/mu.jpg b/app/resources/img/flags/large/mu.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mu.jpg rename to app/resources/img/flags/large/mu.jpg diff --git a/linux_gui/resources/img/flags/large/mv.jpg b/app/resources/img/flags/large/mv.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mv.jpg rename to app/resources/img/flags/large/mv.jpg diff --git a/linux_gui/resources/img/flags/large/mw.jpg b/app/resources/img/flags/large/mw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mw.jpg rename to app/resources/img/flags/large/mw.jpg diff --git a/linux_gui/resources/img/flags/large/mx.jpg b/app/resources/img/flags/large/mx.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mx.jpg rename to app/resources/img/flags/large/mx.jpg diff --git a/linux_gui/resources/img/flags/large/my.jpg b/app/resources/img/flags/large/my.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/my.jpg rename to app/resources/img/flags/large/my.jpg diff --git a/linux_gui/resources/img/flags/large/mz.jpg b/app/resources/img/flags/large/mz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mz.jpg rename to app/resources/img/flags/large/mz.jpg diff --git a/linux_gui/resources/img/flags/large/na.jpg b/app/resources/img/flags/large/na.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/na.jpg rename to app/resources/img/flags/large/na.jpg diff --git a/linux_gui/resources/img/flags/large/ne.jpg b/app/resources/img/flags/large/ne.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ne.jpg rename to app/resources/img/flags/large/ne.jpg diff --git a/linux_gui/resources/img/flags/large/ng.jpg b/app/resources/img/flags/large/ng.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ng.jpg rename to app/resources/img/flags/large/ng.jpg diff --git a/linux_gui/resources/img/flags/large/ni.jpg b/app/resources/img/flags/large/ni.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ni.jpg rename to app/resources/img/flags/large/ni.jpg diff --git a/linux_gui/resources/img/flags/large/nl.jpg b/app/resources/img/flags/large/nl.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/nl.jpg rename to app/resources/img/flags/large/nl.jpg diff --git a/linux_gui/resources/img/flags/large/no.jpg b/app/resources/img/flags/large/no.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/no.jpg rename to app/resources/img/flags/large/no.jpg diff --git a/linux_gui/resources/img/flags/large/np.jpg b/app/resources/img/flags/large/np.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/np.jpg rename to app/resources/img/flags/large/np.jpg diff --git a/linux_gui/resources/img/flags/large/nr.jpg b/app/resources/img/flags/large/nr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/nr.jpg rename to app/resources/img/flags/large/nr.jpg diff --git a/linux_gui/resources/img/flags/large/nu.jpg b/app/resources/img/flags/large/nu.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/nu.jpg rename to app/resources/img/flags/large/nu.jpg diff --git a/linux_gui/resources/img/flags/large/nz.jpg b/app/resources/img/flags/large/nz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/nz.jpg rename to app/resources/img/flags/large/nz.jpg diff --git a/linux_gui/resources/img/flags/large/om.jpg b/app/resources/img/flags/large/om.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/om.jpg rename to app/resources/img/flags/large/om.jpg diff --git a/linux_gui/resources/img/flags/large/pa.jpg b/app/resources/img/flags/large/pa.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pa.jpg rename to app/resources/img/flags/large/pa.jpg diff --git a/linux_gui/resources/img/flags/large/pe.jpg b/app/resources/img/flags/large/pe.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pe.jpg rename to app/resources/img/flags/large/pe.jpg diff --git a/linux_gui/resources/img/flags/large/pg.jpg b/app/resources/img/flags/large/pg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pg.jpg rename to app/resources/img/flags/large/pg.jpg diff --git a/linux_gui/resources/img/flags/large/ph.jpg b/app/resources/img/flags/large/ph.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ph.jpg rename to app/resources/img/flags/large/ph.jpg diff --git a/linux_gui/resources/img/flags/large/pk.jpg b/app/resources/img/flags/large/pk.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pk.jpg rename to app/resources/img/flags/large/pk.jpg diff --git a/linux_gui/resources/img/flags/large/pl.jpg b/app/resources/img/flags/large/pl.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pl.jpg rename to app/resources/img/flags/large/pl.jpg diff --git a/linux_gui/resources/img/flags/large/ps.jpg b/app/resources/img/flags/large/ps.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ps.jpg rename to app/resources/img/flags/large/ps.jpg diff --git a/linux_gui/resources/img/flags/large/pt.jpg b/app/resources/img/flags/large/pt.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pt.jpg rename to app/resources/img/flags/large/pt.jpg diff --git a/linux_gui/resources/img/flags/large/pw.jpg b/app/resources/img/flags/large/pw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pw.jpg rename to app/resources/img/flags/large/pw.jpg diff --git a/linux_gui/resources/img/flags/large/py.jpg b/app/resources/img/flags/large/py.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/py.jpg rename to app/resources/img/flags/large/py.jpg diff --git a/linux_gui/resources/img/flags/large/qa.jpg b/app/resources/img/flags/large/qa.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/qa.jpg rename to app/resources/img/flags/large/qa.jpg diff --git a/linux_gui/resources/img/flags/large/ro.jpg b/app/resources/img/flags/large/ro.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ro.jpg rename to app/resources/img/flags/large/ro.jpg diff --git a/linux_gui/resources/img/flags/large/rs.jpg b/app/resources/img/flags/large/rs.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/rs.jpg rename to app/resources/img/flags/large/rs.jpg diff --git a/linux_gui/resources/img/flags/large/ru.jpg b/app/resources/img/flags/large/ru.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ru.jpg rename to app/resources/img/flags/large/ru.jpg diff --git a/linux_gui/resources/img/flags/large/rw.jpg b/app/resources/img/flags/large/rw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/rw.jpg rename to app/resources/img/flags/large/rw.jpg diff --git a/linux_gui/resources/img/flags/large/sa.jpg b/app/resources/img/flags/large/sa.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sa.jpg rename to app/resources/img/flags/large/sa.jpg diff --git a/linux_gui/resources/img/flags/large/sb.jpg b/app/resources/img/flags/large/sb.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sb.jpg rename to app/resources/img/flags/large/sb.jpg diff --git a/linux_gui/resources/img/flags/large/sc.jpg b/app/resources/img/flags/large/sc.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sc.jpg rename to app/resources/img/flags/large/sc.jpg diff --git a/linux_gui/resources/img/flags/large/sd.jpg b/app/resources/img/flags/large/sd.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sd.jpg rename to app/resources/img/flags/large/sd.jpg diff --git a/linux_gui/resources/img/flags/large/se.jpg b/app/resources/img/flags/large/se.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/se.jpg rename to app/resources/img/flags/large/se.jpg diff --git a/linux_gui/resources/img/flags/large/sg.jpg b/app/resources/img/flags/large/sg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sg.jpg rename to app/resources/img/flags/large/sg.jpg diff --git a/linux_gui/resources/img/flags/large/si.jpg b/app/resources/img/flags/large/si.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/si.jpg rename to app/resources/img/flags/large/si.jpg diff --git a/linux_gui/resources/img/flags/large/sk.jpg b/app/resources/img/flags/large/sk.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sk.jpg rename to app/resources/img/flags/large/sk.jpg diff --git a/linux_gui/resources/img/flags/large/sl.jpg b/app/resources/img/flags/large/sl.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sl.jpg rename to app/resources/img/flags/large/sl.jpg diff --git a/linux_gui/resources/img/flags/large/sm.jpg b/app/resources/img/flags/large/sm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sm.jpg rename to app/resources/img/flags/large/sm.jpg diff --git a/linux_gui/resources/img/flags/large/sn.jpg b/app/resources/img/flags/large/sn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sn.jpg rename to app/resources/img/flags/large/sn.jpg diff --git a/linux_gui/resources/img/flags/large/so.jpg b/app/resources/img/flags/large/so.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/so.jpg rename to app/resources/img/flags/large/so.jpg diff --git a/linux_gui/resources/img/flags/large/sr.jpg b/app/resources/img/flags/large/sr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sr.jpg rename to app/resources/img/flags/large/sr.jpg diff --git a/linux_gui/resources/img/flags/large/ss.jpg b/app/resources/img/flags/large/ss.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ss.jpg rename to app/resources/img/flags/large/ss.jpg diff --git a/linux_gui/resources/img/flags/large/st.jpg b/app/resources/img/flags/large/st.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/st.jpg rename to app/resources/img/flags/large/st.jpg diff --git a/linux_gui/resources/img/flags/large/sv.jpg b/app/resources/img/flags/large/sv.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sv.jpg rename to app/resources/img/flags/large/sv.jpg diff --git a/linux_gui/resources/img/flags/large/sy.jpg b/app/resources/img/flags/large/sy.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sy.jpg rename to app/resources/img/flags/large/sy.jpg diff --git a/linux_gui/resources/img/flags/large/sz.jpg b/app/resources/img/flags/large/sz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sz.jpg rename to app/resources/img/flags/large/sz.jpg diff --git a/linux_gui/resources/img/flags/large/td.jpg b/app/resources/img/flags/large/td.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/td.jpg rename to app/resources/img/flags/large/td.jpg diff --git a/linux_gui/resources/img/flags/large/tg.jpg b/app/resources/img/flags/large/tg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tg.jpg rename to app/resources/img/flags/large/tg.jpg diff --git a/linux_gui/resources/img/flags/large/th.jpg b/app/resources/img/flags/large/th.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/th.jpg rename to app/resources/img/flags/large/th.jpg diff --git a/linux_gui/resources/img/flags/large/tj.jpg b/app/resources/img/flags/large/tj.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tj.jpg rename to app/resources/img/flags/large/tj.jpg diff --git a/linux_gui/resources/img/flags/large/tl.jpg b/app/resources/img/flags/large/tl.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tl.jpg rename to app/resources/img/flags/large/tl.jpg diff --git a/linux_gui/resources/img/flags/large/tm.jpg b/app/resources/img/flags/large/tm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tm.jpg rename to app/resources/img/flags/large/tm.jpg diff --git a/linux_gui/resources/img/flags/large/tn.jpg b/app/resources/img/flags/large/tn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tn.jpg rename to app/resources/img/flags/large/tn.jpg diff --git a/linux_gui/resources/img/flags/large/to.jpg b/app/resources/img/flags/large/to.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/to.jpg rename to app/resources/img/flags/large/to.jpg diff --git a/linux_gui/resources/img/flags/large/tr.jpg b/app/resources/img/flags/large/tr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tr.jpg rename to app/resources/img/flags/large/tr.jpg diff --git a/linux_gui/resources/img/flags/large/tt.jpg b/app/resources/img/flags/large/tt.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tt.jpg rename to app/resources/img/flags/large/tt.jpg diff --git a/linux_gui/resources/img/flags/large/tv.jpg b/app/resources/img/flags/large/tv.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tv.jpg rename to app/resources/img/flags/large/tv.jpg diff --git a/linux_gui/resources/img/flags/large/tw.jpg b/app/resources/img/flags/large/tw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tw.jpg rename to app/resources/img/flags/large/tw.jpg diff --git a/linux_gui/resources/img/flags/large/tz.jpg b/app/resources/img/flags/large/tz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tz.jpg rename to app/resources/img/flags/large/tz.jpg diff --git a/linux_gui/resources/img/flags/large/ua.jpg b/app/resources/img/flags/large/ua.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ua.jpg rename to app/resources/img/flags/large/ua.jpg diff --git a/linux_gui/resources/img/flags/large/ug.jpg b/app/resources/img/flags/large/ug.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ug.jpg rename to app/resources/img/flags/large/ug.jpg diff --git a/linux_gui/resources/img/flags/large/us.jpg b/app/resources/img/flags/large/us.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/us.jpg rename to app/resources/img/flags/large/us.jpg diff --git a/linux_gui/resources/img/flags/large/uy.jpg b/app/resources/img/flags/large/uy.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/uy.jpg rename to app/resources/img/flags/large/uy.jpg diff --git a/linux_gui/resources/img/flags/large/uz.jpg b/app/resources/img/flags/large/uz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/uz.jpg rename to app/resources/img/flags/large/uz.jpg diff --git a/linux_gui/resources/img/flags/large/va.jpg b/app/resources/img/flags/large/va.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/va.jpg rename to app/resources/img/flags/large/va.jpg diff --git a/linux_gui/resources/img/flags/large/vc.jpg b/app/resources/img/flags/large/vc.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/vc.jpg rename to app/resources/img/flags/large/vc.jpg diff --git a/linux_gui/resources/img/flags/large/ve.jpg b/app/resources/img/flags/large/ve.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ve.jpg rename to app/resources/img/flags/large/ve.jpg diff --git a/linux_gui/resources/img/flags/large/vn.jpg b/app/resources/img/flags/large/vn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/vn.jpg rename to app/resources/img/flags/large/vn.jpg diff --git a/linux_gui/resources/img/flags/large/vu.jpg b/app/resources/img/flags/large/vu.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/vu.jpg rename to app/resources/img/flags/large/vu.jpg diff --git a/linux_gui/resources/img/flags/large/ws.jpg b/app/resources/img/flags/large/ws.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ws.jpg rename to app/resources/img/flags/large/ws.jpg diff --git a/linux_gui/resources/img/flags/large/xk.jpg b/app/resources/img/flags/large/xk.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/xk.jpg rename to app/resources/img/flags/large/xk.jpg diff --git a/linux_gui/resources/img/flags/large/ye.jpg b/app/resources/img/flags/large/ye.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ye.jpg rename to app/resources/img/flags/large/ye.jpg diff --git a/linux_gui/resources/img/flags/large/za.jpg b/app/resources/img/flags/large/za.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/za.jpg rename to app/resources/img/flags/large/za.jpg diff --git a/linux_gui/resources/img/flags/large/zm.jpg b/app/resources/img/flags/large/zm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/zm.jpg rename to app/resources/img/flags/large/zm.jpg diff --git a/linux_gui/resources/img/flags/large/zw.jpg b/app/resources/img/flags/large/zw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/zw.jpg rename to app/resources/img/flags/large/zw.jpg diff --git a/linux_gui/resources/img/flags/small/Afghanistan.png b/app/resources/img/flags/small/Afghanistan.png similarity index 100% rename from linux_gui/resources/img/flags/small/Afghanistan.png rename to app/resources/img/flags/small/Afghanistan.png diff --git a/linux_gui/resources/img/flags/small/Albania.png b/app/resources/img/flags/small/Albania.png similarity index 100% rename from linux_gui/resources/img/flags/small/Albania.png rename to app/resources/img/flags/small/Albania.png diff --git a/linux_gui/resources/img/flags/small/Algeria.png b/app/resources/img/flags/small/Algeria.png similarity index 100% rename from linux_gui/resources/img/flags/small/Algeria.png rename to app/resources/img/flags/small/Algeria.png diff --git a/linux_gui/resources/img/flags/small/Andorra.png b/app/resources/img/flags/small/Andorra.png similarity index 100% rename from linux_gui/resources/img/flags/small/Andorra.png rename to app/resources/img/flags/small/Andorra.png diff --git a/linux_gui/resources/img/flags/small/Argentina.png b/app/resources/img/flags/small/Argentina.png similarity index 100% rename from linux_gui/resources/img/flags/small/Argentina.png rename to app/resources/img/flags/small/Argentina.png diff --git a/linux_gui/resources/img/flags/small/Armenia.png b/app/resources/img/flags/small/Armenia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Armenia.png rename to app/resources/img/flags/small/Armenia.png diff --git a/linux_gui/resources/img/flags/small/Australia.png b/app/resources/img/flags/small/Australia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Australia.png rename to app/resources/img/flags/small/Australia.png diff --git a/linux_gui/resources/img/flags/small/Austria.png b/app/resources/img/flags/small/Austria.png similarity index 100% rename from linux_gui/resources/img/flags/small/Austria.png rename to app/resources/img/flags/small/Austria.png diff --git a/linux_gui/resources/img/flags/small/Azerbaijan.png b/app/resources/img/flags/small/Azerbaijan.png similarity index 100% rename from linux_gui/resources/img/flags/small/Azerbaijan.png rename to app/resources/img/flags/small/Azerbaijan.png diff --git a/linux_gui/resources/img/flags/small/Bahamas.png b/app/resources/img/flags/small/Bahamas.png similarity index 100% rename from linux_gui/resources/img/flags/small/Bahamas.png rename to app/resources/img/flags/small/Bahamas.png diff --git a/linux_gui/resources/img/flags/small/Bangladesh.png b/app/resources/img/flags/small/Bangladesh.png similarity index 100% rename from linux_gui/resources/img/flags/small/Bangladesh.png rename to app/resources/img/flags/small/Bangladesh.png diff --git a/linux_gui/resources/img/flags/small/Belarus.png b/app/resources/img/flags/small/Belarus.png similarity index 100% rename from linux_gui/resources/img/flags/small/Belarus.png rename to app/resources/img/flags/small/Belarus.png diff --git a/linux_gui/resources/img/flags/small/Belgium.png b/app/resources/img/flags/small/Belgium.png similarity index 100% rename from linux_gui/resources/img/flags/small/Belgium.png rename to app/resources/img/flags/small/Belgium.png diff --git a/linux_gui/resources/img/flags/small/Bosnia and Herzegovina.png b/app/resources/img/flags/small/Bosnia and Herzegovina.png similarity index 100% rename from linux_gui/resources/img/flags/small/Bosnia and Herzegovina.png rename to app/resources/img/flags/small/Bosnia and Herzegovina.png diff --git a/linux_gui/resources/img/flags/small/Brazil.png b/app/resources/img/flags/small/Brazil.png similarity index 100% rename from linux_gui/resources/img/flags/small/Brazil.png rename to app/resources/img/flags/small/Brazil.png diff --git a/linux_gui/resources/img/flags/small/Bulgaria.png b/app/resources/img/flags/small/Bulgaria.png similarity index 100% rename from linux_gui/resources/img/flags/small/Bulgaria.png rename to app/resources/img/flags/small/Bulgaria.png diff --git a/linux_gui/resources/img/flags/small/Cameroon.png b/app/resources/img/flags/small/Cameroon.png similarity index 100% rename from linux_gui/resources/img/flags/small/Cameroon.png rename to app/resources/img/flags/small/Cameroon.png diff --git a/linux_gui/resources/img/flags/small/Canada.png b/app/resources/img/flags/small/Canada.png similarity index 100% rename from linux_gui/resources/img/flags/small/Canada.png rename to app/resources/img/flags/small/Canada.png diff --git a/linux_gui/resources/img/flags/small/Chile.png b/app/resources/img/flags/small/Chile.png similarity index 100% rename from linux_gui/resources/img/flags/small/Chile.png rename to app/resources/img/flags/small/Chile.png diff --git a/linux_gui/resources/img/flags/small/China.png b/app/resources/img/flags/small/China.png similarity index 100% rename from linux_gui/resources/img/flags/small/China.png rename to app/resources/img/flags/small/China.png diff --git a/linux_gui/resources/img/flags/small/Colombia.png b/app/resources/img/flags/small/Colombia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Colombia.png rename to app/resources/img/flags/small/Colombia.png diff --git a/linux_gui/resources/img/flags/small/Costa Rica.png b/app/resources/img/flags/small/Costa Rica.png similarity index 100% rename from linux_gui/resources/img/flags/small/Costa Rica.png rename to app/resources/img/flags/small/Costa Rica.png diff --git a/linux_gui/resources/img/flags/small/Croatia.png b/app/resources/img/flags/small/Croatia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Croatia.png rename to app/resources/img/flags/small/Croatia.png diff --git a/linux_gui/resources/img/flags/small/Cuba.png b/app/resources/img/flags/small/Cuba.png similarity index 100% rename from linux_gui/resources/img/flags/small/Cuba.png rename to app/resources/img/flags/small/Cuba.png diff --git a/linux_gui/resources/img/flags/small/Cyprus.png b/app/resources/img/flags/small/Cyprus.png similarity index 100% rename from linux_gui/resources/img/flags/small/Cyprus.png rename to app/resources/img/flags/small/Cyprus.png diff --git a/linux_gui/resources/img/flags/small/Czech Republic.png b/app/resources/img/flags/small/Czech Republic.png similarity index 100% rename from linux_gui/resources/img/flags/small/Czech Republic.png rename to app/resources/img/flags/small/Czech Republic.png diff --git a/linux_gui/resources/img/flags/small/Denmark.png b/app/resources/img/flags/small/Denmark.png similarity index 100% rename from linux_gui/resources/img/flags/small/Denmark.png rename to app/resources/img/flags/small/Denmark.png diff --git a/linux_gui/resources/img/flags/small/Ecuador.png b/app/resources/img/flags/small/Ecuador.png similarity index 100% rename from linux_gui/resources/img/flags/small/Ecuador.png rename to app/resources/img/flags/small/Ecuador.png diff --git a/linux_gui/resources/img/flags/small/Egypt.png b/app/resources/img/flags/small/Egypt.png similarity index 100% rename from linux_gui/resources/img/flags/small/Egypt.png rename to app/resources/img/flags/small/Egypt.png diff --git a/linux_gui/resources/img/flags/small/Estonia.png b/app/resources/img/flags/small/Estonia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Estonia.png rename to app/resources/img/flags/small/Estonia.png diff --git a/linux_gui/resources/img/flags/small/Finland.png b/app/resources/img/flags/small/Finland.png similarity index 100% rename from linux_gui/resources/img/flags/small/Finland.png rename to app/resources/img/flags/small/Finland.png diff --git a/linux_gui/resources/img/flags/small/France.png b/app/resources/img/flags/small/France.png similarity index 100% rename from linux_gui/resources/img/flags/small/France.png rename to app/resources/img/flags/small/France.png diff --git a/linux_gui/resources/img/flags/small/Georgia.png b/app/resources/img/flags/small/Georgia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Georgia.png rename to app/resources/img/flags/small/Georgia.png diff --git a/linux_gui/resources/img/flags/small/Germany.png b/app/resources/img/flags/small/Germany.png similarity index 100% rename from linux_gui/resources/img/flags/small/Germany.png rename to app/resources/img/flags/small/Germany.png diff --git a/linux_gui/resources/img/flags/small/Greece.png b/app/resources/img/flags/small/Greece.png similarity index 100% rename from linux_gui/resources/img/flags/small/Greece.png rename to app/resources/img/flags/small/Greece.png diff --git a/linux_gui/resources/img/flags/small/Hong Kong.png b/app/resources/img/flags/small/Hong Kong.png similarity index 100% rename from linux_gui/resources/img/flags/small/Hong Kong.png rename to app/resources/img/flags/small/Hong Kong.png diff --git a/linux_gui/resources/img/flags/small/Hungary.png b/app/resources/img/flags/small/Hungary.png similarity index 100% rename from linux_gui/resources/img/flags/small/Hungary.png rename to app/resources/img/flags/small/Hungary.png diff --git a/linux_gui/resources/img/flags/small/Iceland.png b/app/resources/img/flags/small/Iceland.png similarity index 100% rename from linux_gui/resources/img/flags/small/Iceland.png rename to app/resources/img/flags/small/Iceland.png diff --git a/linux_gui/resources/img/flags/small/India.png b/app/resources/img/flags/small/India.png similarity index 100% rename from linux_gui/resources/img/flags/small/India.png rename to app/resources/img/flags/small/India.png diff --git a/linux_gui/resources/img/flags/small/Indonesia.png b/app/resources/img/flags/small/Indonesia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Indonesia.png rename to app/resources/img/flags/small/Indonesia.png diff --git a/linux_gui/resources/img/flags/small/Ireland.png b/app/resources/img/flags/small/Ireland.png similarity index 100% rename from linux_gui/resources/img/flags/small/Ireland.png rename to app/resources/img/flags/small/Ireland.png diff --git a/linux_gui/resources/img/flags/small/Israel.png b/app/resources/img/flags/small/Israel.png similarity index 100% rename from linux_gui/resources/img/flags/small/Israel.png rename to app/resources/img/flags/small/Israel.png diff --git a/linux_gui/resources/img/flags/small/Italy.png b/app/resources/img/flags/small/Italy.png similarity index 100% rename from linux_gui/resources/img/flags/small/Italy.png rename to app/resources/img/flags/small/Italy.png diff --git a/linux_gui/resources/img/flags/small/Jamaica.png b/app/resources/img/flags/small/Jamaica.png similarity index 100% rename from linux_gui/resources/img/flags/small/Jamaica.png rename to app/resources/img/flags/small/Jamaica.png diff --git a/linux_gui/resources/img/flags/small/Japan.png b/app/resources/img/flags/small/Japan.png similarity index 100% rename from linux_gui/resources/img/flags/small/Japan.png rename to app/resources/img/flags/small/Japan.png diff --git a/linux_gui/resources/img/flags/small/Latvia.png b/app/resources/img/flags/small/Latvia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Latvia.png rename to app/resources/img/flags/small/Latvia.png diff --git a/linux_gui/resources/img/flags/small/Libya.png b/app/resources/img/flags/small/Libya.png similarity index 100% rename from linux_gui/resources/img/flags/small/Libya.png rename to app/resources/img/flags/small/Libya.png diff --git a/linux_gui/resources/img/flags/small/Lithuania.png b/app/resources/img/flags/small/Lithuania.png similarity index 100% rename from linux_gui/resources/img/flags/small/Lithuania.png rename to app/resources/img/flags/small/Lithuania.png diff --git a/linux_gui/resources/img/flags/small/Luxembourg.png b/app/resources/img/flags/small/Luxembourg.png similarity index 100% rename from linux_gui/resources/img/flags/small/Luxembourg.png rename to app/resources/img/flags/small/Luxembourg.png diff --git a/linux_gui/resources/img/flags/small/Macedonia, Republic of.png b/app/resources/img/flags/small/Macedonia, Republic of.png similarity index 100% rename from linux_gui/resources/img/flags/small/Macedonia, Republic of.png rename to app/resources/img/flags/small/Macedonia, Republic of.png diff --git a/linux_gui/resources/img/flags/small/Malaysia.png b/app/resources/img/flags/small/Malaysia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Malaysia.png rename to app/resources/img/flags/small/Malaysia.png diff --git a/linux_gui/resources/img/flags/small/Mexico.png b/app/resources/img/flags/small/Mexico.png similarity index 100% rename from linux_gui/resources/img/flags/small/Mexico.png rename to app/resources/img/flags/small/Mexico.png diff --git a/linux_gui/resources/img/flags/small/Moldova.png b/app/resources/img/flags/small/Moldova.png similarity index 100% rename from linux_gui/resources/img/flags/small/Moldova.png rename to app/resources/img/flags/small/Moldova.png diff --git a/linux_gui/resources/img/flags/small/Myanmar.png b/app/resources/img/flags/small/Myanmar.png similarity index 100% rename from linux_gui/resources/img/flags/small/Myanmar.png rename to app/resources/img/flags/small/Myanmar.png diff --git a/linux_gui/resources/img/flags/small/Netherlands.png b/app/resources/img/flags/small/Netherlands.png similarity index 100% rename from linux_gui/resources/img/flags/small/Netherlands.png rename to app/resources/img/flags/small/Netherlands.png diff --git a/linux_gui/resources/img/flags/small/New Zealand.png b/app/resources/img/flags/small/New Zealand.png similarity index 100% rename from linux_gui/resources/img/flags/small/New Zealand.png rename to app/resources/img/flags/small/New Zealand.png diff --git a/linux_gui/resources/img/flags/small/Norway.png b/app/resources/img/flags/small/Norway.png similarity index 100% rename from linux_gui/resources/img/flags/small/Norway.png rename to app/resources/img/flags/small/Norway.png diff --git a/linux_gui/resources/img/flags/small/Philippines.png b/app/resources/img/flags/small/Philippines.png similarity index 100% rename from linux_gui/resources/img/flags/small/Philippines.png rename to app/resources/img/flags/small/Philippines.png diff --git a/linux_gui/resources/img/flags/small/Poland.png b/app/resources/img/flags/small/Poland.png similarity index 100% rename from linux_gui/resources/img/flags/small/Poland.png rename to app/resources/img/flags/small/Poland.png diff --git a/linux_gui/resources/img/flags/small/Portugal.png b/app/resources/img/flags/small/Portugal.png similarity index 100% rename from linux_gui/resources/img/flags/small/Portugal.png rename to app/resources/img/flags/small/Portugal.png diff --git a/linux_gui/resources/img/flags/small/Romania.png b/app/resources/img/flags/small/Romania.png similarity index 100% rename from linux_gui/resources/img/flags/small/Romania.png rename to app/resources/img/flags/small/Romania.png diff --git a/linux_gui/resources/img/flags/small/Russia.png b/app/resources/img/flags/small/Russia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Russia.png rename to app/resources/img/flags/small/Russia.png diff --git a/linux_gui/resources/img/flags/small/Serbia.png b/app/resources/img/flags/small/Serbia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Serbia.png rename to app/resources/img/flags/small/Serbia.png diff --git a/linux_gui/resources/img/flags/small/Singapore.png b/app/resources/img/flags/small/Singapore.png similarity index 100% rename from linux_gui/resources/img/flags/small/Singapore.png rename to app/resources/img/flags/small/Singapore.png diff --git a/linux_gui/resources/img/flags/small/Slovakia.png b/app/resources/img/flags/small/Slovakia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Slovakia.png rename to app/resources/img/flags/small/Slovakia.png diff --git a/linux_gui/resources/img/flags/small/Slovenia.png b/app/resources/img/flags/small/Slovenia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Slovenia.png rename to app/resources/img/flags/small/Slovenia.png diff --git a/linux_gui/resources/img/flags/small/South Africa.png b/app/resources/img/flags/small/South Africa.png similarity index 100% rename from linux_gui/resources/img/flags/small/South Africa.png rename to app/resources/img/flags/small/South Africa.png diff --git a/linux_gui/resources/img/flags/small/South Korea.png b/app/resources/img/flags/small/South Korea.png similarity index 100% rename from linux_gui/resources/img/flags/small/South Korea.png rename to app/resources/img/flags/small/South Korea.png diff --git a/linux_gui/resources/img/flags/small/Spain.png b/app/resources/img/flags/small/Spain.png similarity index 100% rename from linux_gui/resources/img/flags/small/Spain.png rename to app/resources/img/flags/small/Spain.png diff --git a/linux_gui/resources/img/flags/small/Sweden.png b/app/resources/img/flags/small/Sweden.png similarity index 100% rename from linux_gui/resources/img/flags/small/Sweden.png rename to app/resources/img/flags/small/Sweden.png diff --git a/linux_gui/resources/img/flags/small/Switzerland.png b/app/resources/img/flags/small/Switzerland.png similarity index 100% rename from linux_gui/resources/img/flags/small/Switzerland.png rename to app/resources/img/flags/small/Switzerland.png diff --git a/linux_gui/resources/img/flags/small/Taiwan.png b/app/resources/img/flags/small/Taiwan.png similarity index 100% rename from linux_gui/resources/img/flags/small/Taiwan.png rename to app/resources/img/flags/small/Taiwan.png diff --git a/linux_gui/resources/img/flags/small/Thailand.png b/app/resources/img/flags/small/Thailand.png similarity index 100% rename from linux_gui/resources/img/flags/small/Thailand.png rename to app/resources/img/flags/small/Thailand.png diff --git a/linux_gui/resources/img/flags/small/Tunisia.png b/app/resources/img/flags/small/Tunisia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Tunisia.png rename to app/resources/img/flags/small/Tunisia.png diff --git a/linux_gui/resources/img/flags/small/Turkey.png b/app/resources/img/flags/small/Turkey.png similarity index 100% rename from linux_gui/resources/img/flags/small/Turkey.png rename to app/resources/img/flags/small/Turkey.png diff --git a/linux_gui/resources/img/flags/small/Ukraine.png b/app/resources/img/flags/small/Ukraine.png similarity index 100% rename from linux_gui/resources/img/flags/small/Ukraine.png rename to app/resources/img/flags/small/Ukraine.png diff --git a/linux_gui/resources/img/flags/small/United Arab Emirates.png b/app/resources/img/flags/small/United Arab Emirates.png similarity index 100% rename from linux_gui/resources/img/flags/small/United Arab Emirates.png rename to app/resources/img/flags/small/United Arab Emirates.png diff --git a/linux_gui/resources/img/flags/small/United Kingdom.png b/app/resources/img/flags/small/United Kingdom.png similarity index 100% rename from linux_gui/resources/img/flags/small/United Kingdom.png rename to app/resources/img/flags/small/United Kingdom.png diff --git a/linux_gui/resources/img/flags/small/United States.png b/app/resources/img/flags/small/United States.png similarity index 100% rename from linux_gui/resources/img/flags/small/United States.png rename to app/resources/img/flags/small/United States.png diff --git a/linux_gui/resources/img/flags/small/Unknown.png b/app/resources/img/flags/small/Unknown.png similarity index 100% rename from linux_gui/resources/img/flags/small/Unknown.png rename to app/resources/img/flags/small/Unknown.png diff --git a/linux_gui/resources/img/flags/small/Viet Nam.png b/app/resources/img/flags/small/Viet Nam.png similarity index 100% rename from linux_gui/resources/img/flags/small/Viet Nam.png rename to app/resources/img/flags/small/Viet Nam.png diff --git a/linux_gui/resources/img/flags/small/__init__.py b/app/resources/img/flags/small/__init__.py similarity index 100% rename from linux_gui/resources/img/flags/small/__init__.py rename to app/resources/img/flags/small/__init__.py diff --git a/linux_gui/resources/img/gui/dashboard.png b/app/resources/img/gui/dashboard.png similarity index 100% rename from linux_gui/resources/img/gui/dashboard.png rename to app/resources/img/gui/dashboard.png diff --git a/linux_gui/resources/img/gui/diagnose_tool.png b/app/resources/img/gui/diagnose_tool.png similarity index 100% rename from linux_gui/resources/img/gui/diagnose_tool.png rename to app/resources/img/gui/diagnose_tool.png diff --git a/linux_gui/resources/img/gui/intialize_profile.png b/app/resources/img/gui/intialize_profile.png similarity index 100% rename from linux_gui/resources/img/gui/intialize_profile.png rename to app/resources/img/gui/intialize_profile.png diff --git a/linux_gui/resources/img/gui/settings_advanced.png b/app/resources/img/gui/settings_advanced.png similarity index 100% rename from linux_gui/resources/img/gui/settings_advanced.png rename to app/resources/img/gui/settings_advanced.png diff --git a/linux_gui/resources/img/gui/settings_connection.png b/app/resources/img/gui/settings_connection.png similarity index 100% rename from linux_gui/resources/img/gui/settings_connection.png rename to app/resources/img/gui/settings_connection.png diff --git a/linux_gui/resources/img/gui/settings_general.png b/app/resources/img/gui/settings_general.png similarity index 100% rename from linux_gui/resources/img/gui/settings_general.png rename to app/resources/img/gui/settings_general.png diff --git a/linux_gui/resources/img/gui/settings_tray.png b/app/resources/img/gui/settings_tray.png similarity index 100% rename from linux_gui/resources/img/gui/settings_tray.png rename to app/resources/img/gui/settings_tray.png diff --git a/linux_gui/resources/img/logo/__init__.py b/app/resources/img/logo/__init__.py similarity index 100% rename from linux_gui/resources/img/logo/__init__.py rename to app/resources/img/logo/__init__.py diff --git a/linux_gui/resources/img/logo/protonvpn-logo-white.png b/app/resources/img/logo/protonvpn-logo-white.png similarity index 100% rename from linux_gui/resources/img/logo/protonvpn-logo-white.png rename to app/resources/img/logo/protonvpn-logo-white.png diff --git a/linux_gui/resources/img/logo/protonvpn_logo.png b/app/resources/img/logo/protonvpn_logo.png similarity index 100% rename from linux_gui/resources/img/logo/protonvpn_logo.png rename to app/resources/img/logo/protonvpn_logo.png diff --git a/linux_gui/resources/img/logo/protonvpn_logo_alt.png b/app/resources/img/logo/protonvpn_logo_alt.png similarity index 100% rename from linux_gui/resources/img/logo/protonvpn_logo_alt.png rename to app/resources/img/logo/protonvpn_logo_alt.png diff --git a/linux_gui/resources/img/logo/protonvpn_logo_full.png b/app/resources/img/logo/protonvpn_logo_full.png similarity index 100% rename from linux_gui/resources/img/logo/protonvpn_logo_full.png rename to app/resources/img/logo/protonvpn_logo_full.png diff --git a/linux_gui/resources/img/logo/protonvpn_sign_green.png b/app/resources/img/logo/protonvpn_sign_green.png similarity index 100% rename from linux_gui/resources/img/logo/protonvpn_sign_green.png rename to app/resources/img/logo/protonvpn_sign_green.png diff --git a/linux_gui/resources/img/protonvpn_gui_banner.png b/app/resources/img/protonvpn_gui_banner.png similarity index 100% rename from linux_gui/resources/img/protonvpn_gui_banner.png rename to app/resources/img/protonvpn_gui_banner.png diff --git a/linux_gui/resources/img/utils/__init__.py b/app/resources/img/utils/__init__.py similarity index 100% rename from linux_gui/resources/img/utils/__init__.py rename to app/resources/img/utils/__init__.py diff --git a/linux_gui/resources/img/utils/bitrate-download-arrow.png b/app/resources/img/utils/bitrate-download-arrow.png similarity index 100% rename from linux_gui/resources/img/utils/bitrate-download-arrow.png rename to app/resources/img/utils/bitrate-download-arrow.png diff --git a/linux_gui/resources/img/utils/bitrate-upload-arrow.png b/app/resources/img/utils/bitrate-upload-arrow.png similarity index 100% rename from linux_gui/resources/img/utils/bitrate-upload-arrow.png rename to app/resources/img/utils/bitrate-upload-arrow.png diff --git a/linux_gui/resources/img/utils/fastest.png b/app/resources/img/utils/fastest.png similarity index 100% rename from linux_gui/resources/img/utils/fastest.png rename to app/resources/img/utils/fastest.png diff --git a/linux_gui/resources/img/utils/hamburger-menu-icon.png b/app/resources/img/utils/hamburger-menu-icon.png similarity index 100% rename from linux_gui/resources/img/utils/hamburger-menu-icon.png rename to app/resources/img/utils/hamburger-menu-icon.png diff --git a/linux_gui/resources/img/utils/info-green.png b/app/resources/img/utils/info-green.png similarity index 100% rename from linux_gui/resources/img/utils/info-green.png rename to app/resources/img/utils/info-green.png diff --git a/linux_gui/resources/img/utils/normal.png b/app/resources/img/utils/normal.png similarity index 100% rename from linux_gui/resources/img/utils/normal.png rename to app/resources/img/utils/normal.png diff --git a/linux_gui/resources/img/utils/p2p-arrows.png b/app/resources/img/utils/p2p-arrows.png similarity index 100% rename from linux_gui/resources/img/utils/p2p-arrows.png rename to app/resources/img/utils/p2p-arrows.png diff --git a/linux_gui/resources/img/utils/plus-server.png b/app/resources/img/utils/plus-server.png similarity index 100% rename from linux_gui/resources/img/utils/plus-server.png rename to app/resources/img/utils/plus-server.png diff --git a/linux_gui/resources/img/utils/random.png b/app/resources/img/utils/random.png similarity index 100% rename from linux_gui/resources/img/utils/random.png rename to app/resources/img/utils/random.png diff --git a/linux_gui/resources/img/utils/search.png b/app/resources/img/utils/search.png similarity index 100% rename from linux_gui/resources/img/utils/search.png rename to app/resources/img/utils/search.png diff --git a/linux_gui/resources/img/utils/tor-onion.png b/app/resources/img/utils/tor-onion.png similarity index 100% rename from linux_gui/resources/img/utils/tor-onion.png rename to app/resources/img/utils/tor-onion.png diff --git a/linux_gui/resources/styles/__init__.py b/app/resources/styles/__init__.py similarity index 100% rename from linux_gui/resources/styles/__init__.py rename to app/resources/styles/__init__.py diff --git a/linux_gui/resources/styles/common.css b/app/resources/styles/common.css similarity index 100% rename from linux_gui/resources/styles/common.css rename to app/resources/styles/common.css diff --git a/linux_gui/resources/styles/dashboard.css b/app/resources/styles/dashboard.css similarity index 100% rename from linux_gui/resources/styles/dashboard.css rename to app/resources/styles/dashboard.css diff --git a/linux_gui/resources/styles/headerbar.css b/app/resources/styles/headerbar.css similarity index 100% rename from linux_gui/resources/styles/headerbar.css rename to app/resources/styles/headerbar.css diff --git a/linux_gui/resources/styles/login.css b/app/resources/styles/login.css similarity index 100% rename from linux_gui/resources/styles/login.css rename to app/resources/styles/login.css diff --git a/linux_gui/resources/styles/main.css b/app/resources/styles/main.css similarity index 100% rename from linux_gui/resources/styles/main.css rename to app/resources/styles/main.css diff --git a/linux_gui/resources/styles/settings.css b/app/resources/styles/settings.css similarity index 100% rename from linux_gui/resources/styles/settings.css rename to app/resources/styles/settings.css diff --git a/linux_gui/resources/ui/__init__.py b/app/resources/ui/__init__.py similarity index 100% rename from linux_gui/resources/ui/__init__.py rename to app/resources/ui/__init__.py diff --git a/linux_gui/resources/ui/dashboard_window.glade b/app/resources/ui/dashboard_window.glade similarity index 100% rename from linux_gui/resources/ui/dashboard_window.glade rename to app/resources/ui/dashboard_window.glade diff --git a/linux_gui/resources/ui/login_window.glade b/app/resources/ui/login_window.glade similarity index 100% rename from linux_gui/resources/ui/login_window.glade rename to app/resources/ui/login_window.glade diff --git a/linux_gui/resources/ui/message_dialog.glade b/app/resources/ui/message_dialog.glade similarity index 100% rename from linux_gui/resources/ui/message_dialog.glade rename to app/resources/ui/message_dialog.glade diff --git a/linux_gui/resources/ui/settings_window.glade b/app/resources/ui/settings_window.glade similarity index 100% rename from linux_gui/resources/ui/settings_window.glade rename to app/resources/ui/settings_window.glade diff --git a/linux_gui/services/__init__.py b/app/services/__init__.py similarity index 100% rename from linux_gui/services/__init__.py rename to app/services/__init__.py diff --git a/linux_gui/services/dashboard_service.py b/app/services/dashboard_service.py similarity index 100% rename from linux_gui/services/dashboard_service.py rename to app/services/dashboard_service.py diff --git a/linux_gui/services/login_service.py b/app/services/login_service.py similarity index 100% rename from linux_gui/services/login_service.py rename to app/services/login_service.py diff --git a/linux_gui/services/settings_service.py b/app/services/settings_service.py similarity index 100% rename from linux_gui/services/settings_service.py rename to app/services/settings_service.py diff --git a/linux_gui/utils.py b/app/utils.py similarity index 100% rename from linux_gui/utils.py rename to app/utils.py diff --git a/linux_gui/views/__init__.py b/app/views/__init__.py similarity index 100% rename from linux_gui/views/__init__.py rename to app/views/__init__.py diff --git a/linux_gui/views/dashboard_view.py b/app/views/dashboard_view.py similarity index 100% rename from linux_gui/views/dashboard_view.py rename to app/views/dashboard_view.py diff --git a/linux_gui/views/dialog_view.py b/app/views/dialog_view.py similarity index 100% rename from linux_gui/views/dialog_view.py rename to app/views/dialog_view.py diff --git a/linux_gui/views/login_view.py b/app/views/login_view.py similarity index 100% rename from linux_gui/views/login_view.py rename to app/views/login_view.py diff --git a/linux_gui/views/settings_view.py b/app/views/settings_view.py similarity index 100% rename from linux_gui/views/settings_view.py rename to app/views/settings_view.py From 551094ba01dab7de25ed17def94655475c5d54e4 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:12:25 +0200 Subject: [PATCH 02/38] Updated to main package name 'app' Also updated links to github repo --- setup.py | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/setup.py b/setup.py index 3bf4699..8ac818e 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ import os from setuptools import setup -from linux_gui.constants import VERSION +from app.constants import VERSION try: with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), 'README.md'), encoding='utf-8') as f: @@ -14,40 +14,40 @@ For further information and a usage guide, please view the project page: - https://github.com/ProtonVPN/linux-gui + https://github.com/ProtonVPN/linux-app """ setup( name="protonvpn-gui", packages=[ - "linux_gui", - "linux_gui.presenters", - "linux_gui.services", - "linux_gui.views", - "linux_gui.resources", - "linux_gui.resources.img.flags", - "linux_gui.resources.img.flags.small", - "linux_gui.resources.img.flags.large", - "linux_gui.resources.img.logo", - "linux_gui.resources.img.utils", - "linux_gui.resources.styles", - "linux_gui.resources.ui", + "app", + "app.presenters", + "app.services", + "app.views", + "app.resources", + "app.resources.img.flags", + "app.resources.img.flags.small", + "app.resources.img.flags.large", + "app.resources.img.logo", + "app.resources.img.utils", + "app.resources.styles", + "app.resources.ui", ], entry_points={ "console_scripts": [ - "protonvpn-gui = linux_gui.protonvpn_gui:init", - "protonvpn-tray = linux_gui.indicator:ProtonVPNIndicator", + "protonvpn-app = app.main:init", + "protonvpn-tray = app.indicator:ProtonVPNIndicator", ] }, include_package_data=True, version=VERSION, - description="Linux GUI client for ProtonVPN", + description="ProtonVPN Application for Linux based OSs", long_description=long_descr, long_description_content_type="text/markdown", author="Proton Technologies AG", author_email="contact@protonvpn.com", license="GPLv3", - url="https://github.com/ProtonVPN/linux-gui", + url="https://github.com/ProtonVPN/linux-app", install_requires=[ "protonvpn-cli>=2.2.2", "requests>=2.23.0", From 982b329c727cc5104db4f82dd88ff86d5faaa02e Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:12:54 +0200 Subject: [PATCH 03/38] Updated path to resources since main package name has been changed --- MANIFEST.in | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index 42a1f3b..a76ef47 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,6 @@ -include protonvpn_linux_gui/resources/ui/*.glade -include protonvpn_linux_gui/resources/styles/*.css -include protonvpn_linux_gui/resources/img/logo/*.png -include protonvpn_linux_gui/resources/img/utils/*.png -include protonvpn_linux_gui/resources/img/flags/large/*.jpg -include protonvpn_linux_gui/resources/img/flags/small/*.png \ No newline at end of file +include app/resources/ui/*.glade +include app/resources/styles/*.css +include app/resources/img/logo/*.png +include app/resources/img/utils/*.png +include app/resources/img/flags/large/*.jpg +include app/resources/img/flags/small/*.png \ No newline at end of file From 347df531feccadf9497caeaba53b0830c7838c52 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:13:15 +0200 Subject: [PATCH 04/38] Main entry file has been renamed --- app/{protonvpn_gui.py => main.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename app/{protonvpn_gui.py => main.py} (100%) diff --git a/app/protonvpn_gui.py b/app/main.py similarity index 100% rename from app/protonvpn_gui.py rename to app/main.py From b7726ffec94a62773254230da63ca7cc22c79177 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:38:02 +0200 Subject: [PATCH 05/38] Updated github path Created also a constant that hold the PyPi app name --- app/constants.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/constants.py b/app/constants.py index 92d2a51..146f48d 100644 --- a/app/constants.py +++ b/app/constants.py @@ -3,7 +3,9 @@ USER = getpass.getuser() VERSION = "2.1.0" -GITHUB_URL_RELEASE = "https://github.com/ProtonVPN/linux-gui/releases/latest" +APP_NAME = "protonvpn-app" +GITHUB_URL = "https://github.com/ProtonVPN/linux-app" +GITHUB_URL_RELEASE = GITHUB_URL+"/releases/latest" # GUI configurations GUI_CONFIG_DIR = os.path.join(os.path.expanduser("~{0}".format(USER)), ".pvpn-gui") From 656eef55ae51b4ed8df03c8ed011e85a2fde0c9e Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:38:50 +0200 Subject: [PATCH 06/38] Created variables that hold common information messages that are displayed to the user --- app/services/settings_service.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/services/settings_service.py b/app/services/settings_service.py index fe4b1f4..d931235 100644 --- a/app/services/settings_service.py +++ b/app/services/settings_service.py @@ -24,6 +24,8 @@ class SettingsService: sudo_timeout = 10 + unable_to_process_request_info_msg = "Unable to process request. Administrator access has probably not been provided.\nTo do so, please run the app from within a terminal or enable PolKit Support from within the settings window." + admin_acess_dissmissed_info_msg = "Administrator access was dismissed." def set_user_pass(self, username, password): user_pass = "'{}\n{}'".format(username, password) @@ -268,10 +270,10 @@ def enable_autoconnect(self, command): gui_logger.debug("errs: {}\nouts: {}".format(errs, outs)) if "dismissed" in errs and not timeout: - return False, "Administrator access was dismissed." + return False, admin_acess_dissmissed_info_msg if not "dismissed" in errs and timeout: - return False, "Unable to process request. Administrator access has probably not been provided.\nTo do so, please run the GUI from within a terminal or enable PolKit Support from within the settings window." + return False, unable_to_process_request_info_msg if not "created symlink" in errs.lower(): return False, "Unable to setup autoconnect!" @@ -308,7 +310,7 @@ def disable_autoconnect(self): gui_logger.debug("errs: {}\nouts: {}".format(errs, outs)) if "dismissed" in errs and not timeout: - return False, "Administrator access was dismissed." + return False, admin_acess_dissmissed_info_msg if not "dismissed" in errs and timeout: return False, "Unable to process request. Administrator access has probably not been provided." @@ -362,10 +364,10 @@ def root_command(self, command_list, enable=False): return False, "Administrator access is required, and PolKit Support is not enabled.\nPlease launch the app either from within a terminal or enable PolKit Support." if "dismissed" in errs and not timeout: - return False, "Administrator access was dismissed." + return False, admin_acess_dissmissed_info_msg if not "dismissed" in errs and timeout: - return False, "Unable to process request. Administrator access has probably not been provided.\nTo do so, please run the GUI from within a terminal or enable PolKit Support from within the settings window." + return False, unable_to_process_request_info_msg return True, return_on_sucess_message From 3c192bf86318e2eb75ae99dca188d22af79d10f8 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:39:08 +0200 Subject: [PATCH 07/38] Replaced by the constant app_name --- app/services/dashboard_service.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/dashboard_service.py b/app/services/dashboard_service.py index e38a228..196af74 100644 --- a/app/services/dashboard_service.py +++ b/app/services/dashboard_service.py @@ -6,7 +6,7 @@ from protonvpn_cli.utils import get_config_value, set_config_value, is_connected, get_server_value, get_country_name from ..utils import set_gui_config, get_gui_config, check_internet_conn, get_server_protocol_from_cli -from ..constants import GITHUB_URL_RELEASE, SMALL_FLAGS_BASE_PATH, FEATURES_BASE_PATH +from ..constants import GITHUB_URL_RELEASE, SMALL_FLAGS_BASE_PATH, FEATURES_BASE_PATH, APP_NAME from ..gui_logger import gui_logger class DashboardService: @@ -106,7 +106,7 @@ def check_for_updates(self): pip3_installed = False try: - is_pip3_installed = subprocess.run(["pip3", "show", "protonvpn-gui"],stdout=subprocess.PIPE) # nosec + is_pip3_installed = subprocess.run(["pip3", "show", APP_NAME],stdout=subprocess.PIPE) # nosec except: return False From 57f7a1784fb06ad71c602f8a1e430a573ea81665 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:39:46 +0200 Subject: [PATCH 08/38] Updated url path to a constant Also updated word from GUI to app --- app/presenters/settings_presenter.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/presenters/settings_presenter.py b/app/presenters/settings_presenter.py index 497a66b..451019b 100644 --- a/app/presenters/settings_presenter.py +++ b/app/presenters/settings_presenter.py @@ -19,7 +19,8 @@ PATH_AUTOCONNECT_SERVICE, SERVICE_NAME, GUI_CONFIG_DIR, - TRAY_SUDO_TYPES + TRAY_SUDO_TYPES, + GITHUB_URL ) from ..utils import ( set_gui_config, @@ -280,7 +281,7 @@ def load_general_settings(self, general_settings_dict): sudo_info_tooltip = general_settings_dict["sudo_info_tooltip"] setter = 0 - tooltip_msg = "Could not find PolKit installed on your system. For more information, please visit: \nhttps://github.com/ProtonVPN/linux-gui" + tooltip_msg = "Could not find PolKit installed on your system. For more information, please visit: \n"+GITHUB_URL username = get_config_value("USER", "username") tier = int(get_config_value("USER", "tier")) @@ -298,7 +299,7 @@ def load_general_settings(self, general_settings_dict): polkit_support_switch.set_property('sensitive', True) use_cases = "\n-Update username and password (root protected file)\n-Enable/disable autoconnect (create/remove .service file)\n-Connect/disconnect to/from VPN (run CLI commands)" - tooltip_msg = "Displays a window to enter sudo password, which is needed for the following cases:{}\n\nIt is recommended to enabled this if you don't want to use the GUI via the terminal.".format(use_cases) + tooltip_msg = "Displays a window to enter sudo password, which is needed for the following cases:{}\n\nIt is recommended to enabled this if you don't want to use the app via terminal.".format(use_cases) sudo_info_tooltip.set_tooltip_text(tooltip_msg) From 2de054a1db962a3d684656a47c91814196658310 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:40:54 +0200 Subject: [PATCH 09/38] Updated app name and repo url to respetive constants Also updated install instructions --- app/presenters/dashboard_presenter.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/presenters/dashboard_presenter.py b/app/presenters/dashboard_presenter.py index 6dfc1b8..f1ba7a6 100644 --- a/app/presenters/dashboard_presenter.py +++ b/app/presenters/dashboard_presenter.py @@ -24,7 +24,7 @@ # Local imports from ..gui_logger import gui_logger -from ..constants import GITHUB_URL_RELEASE, VERSION, LARGE_FLAGS_BASE_PATH, SMALL_FLAGS_BASE_PATH, FEATURES_BASE_PATH +from ..constants import GITHUB_URL, GITHUB_URL_RELEASE, VERSION, LARGE_FLAGS_BASE_PATH, SMALL_FLAGS_BASE_PATH, FEATURES_BASE_PATH, APP_NAME from ..utils import ( get_server_protocol_from_cli, get_gui_config, @@ -193,9 +193,9 @@ def on_check_for_updates(self): if VERSION < latest_release: return_string = "There is a newer release, you should upgrade to v{0}.\n\n".format(latest_release) if pip3_installed: - return_string = return_string + "You can upgrade with the following command:\n\nsudo pip3 install protonvpn-linux-gui-calexandru2018 --upgrade\n\n" + return_string = return_string + "You can upgrade with the following command:\n\nsudo pip3 install "+APP_NAME+" --upgrade\n\n" else: - return_string = return_string + "You can upgrade by first removing this version, and then cloning the new one with the following commands:\n\ngit clone https://github.com/calexandru2018/protonvpn-linux-gui\n\ncd protonvpn-linux-gui\n\nsudo python3 setup.py install" + return_string = return_string + "You can upgrade by first removing this version, and then cloning the new one with the following commands:\n\ngit clone "+GITHUB_URL+"\n\ncd linux-app\n\nsudo pip install -e ." return_val = True self.queue.put(dict(action="update_dialog", label=return_string)) From 202a60ecd93659a39f0336dca9b304f5c2d44761 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:42:33 +0200 Subject: [PATCH 10/38] Updated package name and repo till to respectinve constants in setup --- setup.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py index 8ac818e..aa15470 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ import os from setuptools import setup -from app.constants import VERSION +from app.constants import VERSION, APP_NAME, GITHUB_URL try: with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), 'README.md'), encoding='utf-8') as f: @@ -14,11 +14,11 @@ For further information and a usage guide, please view the project page: - https://github.com/ProtonVPN/linux-app - """ + {} + """.format(GITHUB_URL) setup( - name="protonvpn-gui", + name=APP_NAME, packages=[ "app", "app.presenters", @@ -47,7 +47,7 @@ author="Proton Technologies AG", author_email="contact@protonvpn.com", license="GPLv3", - url="https://github.com/ProtonVPN/linux-app", + url=GITHUB_URL, install_requires=[ "protonvpn-cli>=2.2.2", "requests>=2.23.0", From 8279bc6b7a91d4cbed6b615da4631eb455cc456c Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:45:54 +0200 Subject: [PATCH 11/38] Updated main package name --- tests.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests.py b/tests.py index ea6b201..79b61e8 100644 --- a/tests.py +++ b/tests.py @@ -2,13 +2,13 @@ import shutil from queue import Queue -from linux_gui.presenters.login_presenter import LoginPresenter -from linux_gui.presenters.settings_presenter import SettingsPresenter +from app.presenters.login_presenter import LoginPresenter +from app.presenters.settings_presenter import SettingsPresenter -from linux_gui.services.login_service import LoginService -from linux_gui.services.settings_service import SettingsService +from app.services.login_service import LoginService +from app.services.settings_service import SettingsService -from linux_gui.constants import GUI_CONFIG_DIR +from app.constants import GUI_CONFIG_DIR from protonvpn_cli.constants import CONFIG_DIR q = Queue() From a4925f0b58b9e2b24b7835cbf8a8651c9726f425 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:55:08 +0200 Subject: [PATCH 12/38] Updated string so that 'admin access' instead of 'privilege escalation' --- app/services/dashboard_service.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/services/dashboard_service.py b/app/services/dashboard_service.py index 196af74..873533e 100644 --- a/app/services/dashboard_service.py +++ b/app/services/dashboard_service.py @@ -156,13 +156,13 @@ def root_command(self, command_list): gui_logger.debug("errs: {}\nouts: {}".format(errs, outs)) if "terminal is required" in errs: - return (False, "Privilege escalation is required and PolKit Support is not enabled.\nPlease launch the app either from within a terminal or enable PolKit Support.") + return (False, "Administrator acess is required and PolKit Support is not enabled.\nPlease launch the app either from within a terminal or enable PolKit Support.") if "dismissed" in errs and not timeout: - return (False, "Privilege escalation was dismissed.") + return (False, "Administrator acess was dismissed.") if not "dismissed" in errs and timeout: - return (False, "Request timed out, either because of insufficient privileges\nor network/api issues.") + return (False, "Request timed out, either because of insufficient administrator acess\nor network/api issues.") if "authentication failed" in outs: return (False, "Authentication failed!\nPlease make sure that your username and password is correct.") From 74827464b9dc7c56383bbd47781dac5f9bf67d7d Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:56:16 +0200 Subject: [PATCH 13/38] Removed code duplication --- app/main.py | 58 ++++++++++++++++++++--------------------------------- 1 file changed, 22 insertions(+), 36 deletions(-) diff --git a/app/main.py b/app/main.py index 6f90c46..6bac27d 100644 --- a/app/main.py +++ b/app/main.py @@ -72,41 +72,27 @@ def init(): ) dialog_view = DialogView(interface, Gtk, queue) - - if not find_cli(): - dialog_view.display_dialog(label=CLI_ABSENCE_INFO, spinner=False, hide_close_button=True) - else: - gui_logger.debug("\n______________________________________\n\n\tINITIALIZING NEW GUI WINDOW\n______________________________________\n") - - if not os.path.isfile(GUI_CONFIG_FILE): - initialize_gui_config() - - if not os.path.isfile(CONFIG_FILE): - gui_logger.debug(">>> Loading LoginWindow") - - settings_service = SettingsService() - settings_presenter = SettingsPresenter(settings_service, queue) - settings_view = SettingsView(interface, Gtk, settings_presenter, queue) - - dashboard_service = DashboardService() - dashboard_presenter = DashboardPresenter(dashboard_service, queue) - dashboard_view = DashboardView(interface, Gtk, dashboard_presenter, settings_view, queue) - - login_service = LoginService() - login_presenter = LoginPresenter(login_service, queue) - login_view = LoginView(interface, Gtk, login_presenter, dashboard_view, queue) - - login_view.display_window() - else: - gui_logger.debug(">>> Loading DashboardWindow") - settings_service = SettingsService() - settings_presenter = SettingsPresenter(settings_service, queue) - settings_view = SettingsView(interface, Gtk, settings_presenter, queue) - - dashboard_service = DashboardService() - dashboard_presenter = DashboardPresenter(dashboard_service, queue) - dashboard_view = DashboardView(interface, Gtk, dashboard_presenter, settings_view, queue) - - dashboard_view.display_window() + + gui_logger.debug("\n______________________________________\n\n\tINITIALIZING NEW GUI WINDOW\n______________________________________\n") + + if not os.path.isfile(GUI_CONFIG_FILE): + initialize_gui_config() + + settings_service = SettingsService() + settings_presenter = SettingsPresenter(settings_service, queue) + settings_view = SettingsView(interface, Gtk, settings_presenter, queue) + + dashboard_service = DashboardService() + dashboard_presenter = DashboardPresenter(dashboard_service, queue) + window_view = DashboardView(interface, Gtk, dashboard_presenter, settings_view, queue) + + if not os.path.isfile(CONFIG_FILE): + gui_logger.debug(">>> Loading LoginWindow") + login_service = LoginService() + login_presenter = LoginPresenter(login_service, queue) + window_view = LoginView(interface, Gtk, login_presenter, window_view, queue) + + window_view.display_window() + Gtk.main() From b99c0a34558b5a99107bb8b4bf74e044f4aa1e06 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 21:00:40 +0200 Subject: [PATCH 14/38] Updated short description in case readme is not found --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index aa15470..297c14f 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ long_descr = '\n' + f.read() except FileNotFoundError: long_descr = """ - The Linux GUI for ProtonVPN. + ProtonVPN Application for Linux based OSs. For further information and a usage guide, please view the project page: From 16ac3de23384c4937aef7eed3b05d9b2100eae7d Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 21:10:43 +0200 Subject: [PATCH 15/38] Updated readme text --- README.md | 118 +++++++++++++++++++++++++++--------------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index a41ead7..3a8abad 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -

ProtonVPN Linux GUI

+

ProtonVPN Linux Application

- ProtonVPN Banner + ProtonVPN Banner

@@ -13,63 +13,63 @@

- - Build Status + + Build Status - - Downloads + + Downloads - - Downloads per Week + + Downloads per Week

- PyPI - Python Version + PyPI - Python Version

- - GitHub Workflow Status (branch) + + GitHub Workflow Status (branch)

- - License + + License

-

Linux GUI for ProtonVPN, written in Python. Layout designed in Glade.

+

Linux app for ProtonVPN, written in Python. Layout designed in Glade.

Development Status: Beta

-The linux-gui works on top of linux-cli, making it a dependency. All local configurations are managed by the GUI (such as updating protocol, split tunneling, manage killswitch) while the connections are managed by the CLI. This way, you will be able to use the latest version of the CLI, while also being able to use the GUI. +This application works on top of linux-cli, making it a dependency. All local configurations are managed by the app (such as updating protocol, split tunneling, manage killswitch) while the connections are managed by the CLI. This way, you will be able to use the latest version of the CLI, while also being able to use the app. **Disclaimer:** -The ProtonVPN GUI is currently still an experimental interface. It requires escalated privileges and might be somehow unstable. In the near future we plan to refactor the ProtonVPN CLI and GUI so that the part of the client that really requires being executed as root user is kept to a minimum. +The ProtonVPN application is currently still an experimental interface. It requires escalated privileges and might be somehow unstable. In the near future we plan to refactor both the ProtonVPN CLI and the app, so that the part of the client that really requires being executed as root user is kept to a minimum. ## Table of Contents - [Installing and Updating](#installing-and-updating) - [Dependencies](#dependencies) - [Python dependencies](#python-dependencies) - - [ProtonVPN GUI dependencies](#protonvpn-gui-dependencies) + - [ProtonVPN App dependencies](#protonvpn-app-dependencies) - [ProtonVPN Tray dependencies](#protonvpn-tray-dependencies) - [Known Issues](#tray-known-issues) - [dbus-launch](#dbus-launch) - - [Installing ProtonVPN GUI](#installing-protonvpn-linux-gui) + - [Installing ProtonVPN App](#installing-protonvpn-app) - [Distribution based](#distribution-based) - [PIP based](#pip-based) - [How to Update](#to-update-to-a-new-version) - - [Uninstalling ProtonVPN GUI](#uninstalling-protonvpn-linux-gui) + - [Uninstalling ProtonVPN App](#uninstalling-protonvpn-app) - [Manual installation](#manual-installation) - [Virtual environment](#virtual-environment) - [How to use](#how-to-use) - - [ProtonVPN GUI](#protonvpn-gui) + - [ProtonVPN App](#protonvpn-app) - [ProtonVPN Tray](#protonvpn-tray) - [Enhancements](#enhancements) - [Create .desktop file](#create-desktop-file) - - [ProtonVPN GUI](#protonvpn-gui-1) + - [ProtonVPN App](#protonvpn-app-1) - [ProtonVPN Tray](#protonvpn-tray-1) - [Sudo/PolKit](#sudopolkit) -- [GUI Layout](#gui-layout) +- [App Layout](#app-layout) # Installing and Updating @@ -83,7 +83,7 @@ The ProtonVPN GUI is currently still an experimental interface. It requir - pip for python3 (pip3) - setuptools for python3 (python3-setuptools) -#### ProtonVPN GUI dependencies +#### ProtonVPN App dependencies | **Distro** | **Command** | |:----------------------------------------|:----------------------------------------------------------------------------------------------------------------| @@ -121,7 +121,7 @@ If you would like to use `pkexec` instead of the terminal (or alter `visudo`), t |OpenSUSE/SLES | `sudo zypper install polkit` | |Arch Linux/Manjaro | `sudo pacman -S polkit` | -## Installing ProtonVPN Linux GUI +## Installing ProtonVPN App ### Distribution based - Fedora/CentOS/RHEL: To-do @@ -134,37 +134,37 @@ If you would like to use `pkexec` instead of the terminal (or alter `visudo`), t *Note: Make sure to run pip with sudo* -`sudo pip3 install protonvpn-gui` +`sudo pip3 install protonvpn-app` #### To update to a new version -`sudo pip3 install protonvpn-gui --upgrade` +`sudo pip3 install protonvpn-app --upgrade` ### Manual Installation -**Note:** Before installing the GUI, make sure that you have previously installed the CLI, otherwise an error will be thrown. +**Note:** Before installing the app, make sure that you have previously installed the CLI, otherwise an error will be thrown. 1. Clone this repository - `git clone https://github.com/ProtonVPN/linux-gui` + `git clone https://github.com/ProtonVPN/linux-app` 2. Step into the directory - `cd linux-gui` + `cd linux-app` 3. Install `sudo pip3 install -e .` -## Uninstalling ProtonVPN Linux GUI +## Uninstalling ProtonVPN App -If you have installed the GUI via PIP or by cloning this repo, then to uninstall it type in the following command: +If you have installed the app via PIP or by cloning this repo, then to uninstall it type in the following command: - `sudo pip3 uninstall protonvpn-gui` + `sudo pip3 uninstall protonvpn-app` ### Virtual environment -If you would like to run the the GUI within a virtual environment (for either development purposes or other), then you can easily do that with the help of pipenv. Make sure to install pipenv and additional packages before. +If you would like to run the app within a virtual environment (for either development purposes or other), then you can easily do that with the help of pipenv. Make sure to install pipenv and additional packages before. **Note:** PolKit does not work within virtual environments. | **Distro** | **Command** | @@ -174,18 +174,18 @@ If you would like to run the the GUI within a virtual environment (for either de |OpenSUSE/SLES | `sudo zypper install cairo-devel gobject-introspection-devel python3-cairo-devel pkg-config` | |Arch Linux/Manjaro | `sudo pacman -S cairo base-devel gobject-introspection pkgconf` | -1. `git clone https://github.com/ProtonVPN/linux-gui` -2. `cd linux-gui` +1. `git clone https://github.com/ProtonVPN/linux-app` +2. `cd linux-app` 3. `pipenv install` installs the virtual environment and all necessary dependencies from `Pipfile`. 4. `pipenv shell` enters the virtual environment. -5. `sudo pip install -e .` installs the GUI in your virtual environment. -6. `protonvpn-gui` starts the GUI from within the virtual environment. +5. `sudo pip install -e .` installs the app in your virtual environment. +6. `protonvpn-app` starts the application from within the virtual environment. # How to use -### ProtonVPN GUI +### ProtonVPN App - `protonvpn-gui` + `protonvpn-app` ### ProtonVPN Tray @@ -195,22 +195,22 @@ If you would like to run the the GUI within a virtual environment (for either de ### Create .desktop file -#### ProtonVPN GUI +#### ProtonVPN App To create at desktop launcher with a .desktop file, follow the instructions below. -1. Find the path to the package with `pip3 show protonvpn-gui` +1. Find the path to the package with `pip3 show protonvpn-app` You should get something like `Location: /usr/local/lib//dist-packages` , this is where your Python packages reside. **Note:** Based on your distro, your `Location` path may not look exactly like this one, so make sure to use your own and `Location` path. -2. Based on previous information, the path to your icon should be `/linux_gui/resources/img/logo/protonvpn_logo.png` +2. Based on previous information, the path to your icon should be `/app/resources/img/logo/protonvpn_logo.png` -3. Create a `protonvpn-gui.desktop` file in `.local/share/applications/`, and paste in the following code. Remember to change the **`Icon`** path to your own path. +3. Create a `protonvpn-app.desktop` file in `.local/share/applications/`, and paste in the following code. Remember to change the **`Icon`** path to your own path. ``` [Desktop Entry] Name=ProtonVPN - GenericName=ProtonVPN GUI - Exec=protonvpn-gui + GenericName=ProtonVPN App + Exec=protonvpn-app Icon= Type=Application Terminal=False @@ -220,11 +220,11 @@ To create at desktop launcher with a .desktop file, follow the instructio #### ProtonVPN Tray To create at tray icon launcher with a .desktop file, follow the instructions below. -1. Find the path to the package with `pip3 show protonvpn-gui` +1. Find the path to the package with `pip3 show protonvpn-app` You should get something like `Location: /usr/local/lib//dist-packages` , this is where your Python packages reside. **Note:** Based on your distro, your `Location` path may not look exactly like this one, so make sure to use your own and `Location` path. -2. Based on previous information, the path to your icon should be `/linux_gui/resources/img/logo/protonvpn_logo.png` +2. Based on previous information, the path to your icon should be `/app/resources/img/logo/protonvpn_logo.png` 3. Create a `protonvpn-tray.desktop` file in `.local/share/applications/`, and paste in the following code. Remember to change the **`Icon`** path to your own path. @@ -240,44 +240,44 @@ To create at tray icon launcher with a .desktop file, follow the instruct ``` ## Sudo/PolKit -At the moment, since the CLI protects certain files using sudo and also manages killswitch and split tunneling, the GUI will also need to have access to these sudo protected files. Thus, as it is at the moment, the GUI needs to have certain root privileges. This though is subject to change. -Nonetheless, if you would like to launch the GUI without having to type in your sudo password everytime, then you could add the executable file to `visudo`. +At the moment, since the CLI protects certain files using sudo and also manages killswitch and split tunneling, the app will also need to have access to these sudo protected files. Thus, as it is at the moment, the app needs to have certain root privileges. This though is subject to change. +Nonetheless, if you would like to launch the app without having to type in your sudo password everytime, then you could add the executable file to `visudo`.
Another alternative is enable PolKit Support from within the settings (`pkexec` command). This displays a window for the user to type the sudo password, this way, a user won't have to type the password into the terminal. Whenever you want to connect/disconnect or make some important changes to files, a window prompt will appear for you to enter the sudo password.
-**Note:** This feature needs to be enabled from within the GUI settings for it to be able to work. If you have not installed the necessary packages, then the this feature will not work. +**Note:** This feature needs to be enabled from within the app settings for it to be able to work. If you have not installed the necessary packages, then the this feature will not work. ### Visudo The instructions for seting up visudo are described below. -1. First you will need the path to the GUI. This can be found by typing `which protonvpn-gui`. You should get something like this: `/usr/bin/protonvpn-gui`. Save it since you will need it later. **Note:** As previously mentioned, the path may look different for you, based on your distro. +1. First you will need the path to the application. This can be found by typing `which protonvpn-app`. You should get something like this: `/usr/bin/protonvpn-app`. Save it since you will need it later. **Note:** As previously mentioned, the path may look different for you, based on your distro. 2. Identify your username by typing `whoami`. Save it (or memorize it). 3. In another terminal, type in `sudo visudo`, and a window should pop-up, scroll to the very bottom of it. 4. Once you are at the botton, type: ` ALL = (root) NOPASSWD: ` 5. Exit and save! Have fun :) -# GUI Layout +# App Layout

- Login + Login

- Dashboard + Dashboard

- General Settings + General Settings

- Tray Settings + Tray Settings

- Connection Settings + Connection Settings

- Advanced Settings + Advanced Settings

- Diagnosis Tool + Diagnosis Tool

From 1c0e9a0b842c8c17a5cec06892a7b2211c532e93 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 21:14:31 +0200 Subject: [PATCH 16/38] Removed unnecessary dependency --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 3a8abad..9ed24bc 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,6 @@ The ProtonVPN application is currently still an experimental interface. I - python >= 3.5 - linux-cli >= 2.2.2 - requests >= 2.23.0 -- configparse >= 4.0.2 - pip for python3 (pip3) - setuptools for python3 (python3-setuptools) From 220203e38d5c6feada7a1051febe833b03138f38 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 21:22:34 +0200 Subject: [PATCH 17/38] Added 'self.' prefix to class properties --- app/services/settings_service.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/services/settings_service.py b/app/services/settings_service.py index d931235..63817b2 100644 --- a/app/services/settings_service.py +++ b/app/services/settings_service.py @@ -270,10 +270,10 @@ def enable_autoconnect(self, command): gui_logger.debug("errs: {}\nouts: {}".format(errs, outs)) if "dismissed" in errs and not timeout: - return False, admin_acess_dissmissed_info_msg + return False, self.admin_acess_dissmissed_info_msg if not "dismissed" in errs and timeout: - return False, unable_to_process_request_info_msg + return False, self.unable_to_process_request_info_msg if not "created symlink" in errs.lower(): return False, "Unable to setup autoconnect!" @@ -310,7 +310,7 @@ def disable_autoconnect(self): gui_logger.debug("errs: {}\nouts: {}".format(errs, outs)) if "dismissed" in errs and not timeout: - return False, admin_acess_dissmissed_info_msg + return False, self.admin_acess_dissmissed_info_msg if not "dismissed" in errs and timeout: return False, "Unable to process request. Administrator access has probably not been provided." @@ -364,10 +364,10 @@ def root_command(self, command_list, enable=False): return False, "Administrator access is required, and PolKit Support is not enabled.\nPlease launch the app either from within a terminal or enable PolKit Support." if "dismissed" in errs and not timeout: - return False, admin_acess_dissmissed_info_msg + return False, self.admin_acess_dissmissed_info_msg if not "dismissed" in errs and timeout: - return False, unable_to_process_request_info_msg + return False, self.unable_to_process_request_info_msg return True, return_on_sucess_message From e3152bbcbcc152f5fea829fba595d446f73a6312 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Wed, 17 Jun 2020 22:32:24 +0200 Subject: [PATCH 18/38] Updated to new app name --- app/indicator.py | 3 ++- app/resources/ui/dashboard_window.glade | 2 +- app/resources/ui/message_dialog.glade | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/indicator.py b/app/indicator.py index a4518eb..51b9d27 100644 --- a/app/indicator.py +++ b/app/indicator.py @@ -30,6 +30,7 @@ TRAY_CFG_DATA_TX, TRAY_CFG_TIME_CONN, CURRDIR, + APP_NAME ) from .utils import get_gui_config, set_gui_config @@ -257,7 +258,7 @@ def show_gui(self, _): self.notify.Notification.new(self.tray_title, "Displaying ProtonVPN GUI", LOGO_PATH).show() - process = subprocess.Popen(["protonvpn-gui"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) # nosec + process = subprocess.Popen([APP_NAME], stdout=subprocess.PIPE, stderr=subprocess.PIPE) # nosec outs, errs = process.communicate() gui_logger.debug("TRAY >>> errs: {}\nouts:{}".format(outs, errs)) diff --git a/app/resources/ui/dashboard_window.glade b/app/resources/ui/dashboard_window.glade index fa22323..2812573 100644 --- a/app/resources/ui/dashboard_window.glade +++ b/app/resources/ui/dashboard_window.glade @@ -39,7 +39,7 @@ Author: Alexandru Cheltuitor False False center - ProtonVPN Linux GUI + ProtonVPN Linux App Proton Technologies AG Based on linux-cli https://github.com/ProtonVPN/linux-gui/ diff --git a/app/resources/ui/message_dialog.glade b/app/resources/ui/message_dialog.glade index aa70f97..d6ed415 100644 --- a/app/resources/ui/message_dialog.glade +++ b/app/resources/ui/message_dialog.glade @@ -33,7 +33,7 @@ Author: Alexandru Cheltuitor False True popup - ProtonVPN GUI + ProtonVPN App False center-always 400 @@ -50,7 +50,7 @@ Author: Alexandru Cheltuitor True False - ProtonVPN Linux GUI + ProtonVPN Linux App False True From cffdb4750326373e96581e1575054c0af31eb1ea Mon Sep 17 00:00:00 2001 From: arch-btw <57669023+arch-btw@users.noreply.github.com> Date: Fri, 19 Jun 2020 10:31:13 -0700 Subject: [PATCH 19/38] Typo (#86) Fixed type "Connecto", to "Connect" --- linux_gui/views/dashboard_view.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux_gui/views/dashboard_view.py b/linux_gui/views/dashboard_view.py index 633f94b..194f1de 100644 --- a/linux_gui/views/dashboard_view.py +++ b/linux_gui/views/dashboard_view.py @@ -197,7 +197,7 @@ def TreeViewServerList_cursor_changed(self, treeview): user_selected_server = model.get_value(tree_iter, 1) try: - self.conn_disc_button_label.set_markup("Connecto to {}".format(user_selected_server)) + self.conn_disc_button_label.set_markup("Connect to {}".format(user_selected_server)) except UnboundLocalError: self.conn_disc_button_label.set_markup("Quick Connect") From 338c91fb336f04ef0cbe320ef425c090deb1b63d Mon Sep 17 00:00:00 2001 From: Sandaru Jayasekara Date: Sun, 28 Jun 2020 18:55:59 +0530 Subject: [PATCH 20/38] Fix grammar and spelling mistakes in README.md (#91) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a41ead7..1fbb761 100644 --- a/README.md +++ b/README.md @@ -102,11 +102,11 @@ The ProtonVPN GUI is currently still an experimental interface. It requir |Arch Linux/Manjaro | `sudo pacman -S libappindicator-gtk3 libnotify` | **NOTE:** -Gnome users will to install and additional extension for this to work: KStatusNotifierItem/AppIndicator Support +Gnome users will need to install an additional extension for this to work: KStatusNotifierItem/AppIndicator Support ### Tray Known issues: #### dbus-launch -There is a known issue when user attempts to start the systray/appindicator. This might throw an error that is simillar to this one: `(:) LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: Failed to execute child process "dbus-launch" (No such file or directory)` if a user does not have a specific package installed. If you are unable to use the systray/appindicator and have a simillar error then a solution is provided below. +There is a known issue when user attempts to start the systray/appindicator. This might throw an error that is similar to this one: `(:) LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: Failed to execute child process "dbus-launch" (No such file or directory)` if a user does not have a specific package installed. If you are unable to use the systray/appindicator and have a similar error, then a solution is provided below. **Solution:** Install `dbus-x11` package for your distribution, more information can be found on this stackoverflow post. From f77a01be2dd2e13bf5a6387e49deb0f47ea5c95d Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:10:50 +0200 Subject: [PATCH 21/38] Renamed main folder to app --- {linux_gui => app}/__init__.py | 0 {linux_gui => app}/constants.py | 0 {linux_gui => app}/gui_logger.py | 0 {linux_gui => app}/indicator.py | 0 {linux_gui => app}/presenters/__init__.py | 0 .../presenters/dashboard_presenter.py | 0 {linux_gui => app}/presenters/login_presenter.py | 0 {linux_gui => app}/presenters/settings_presenter.py | 0 {linux_gui => app}/protonvpn_gui.py | 0 {linux_gui => app}/resources/__init__.py | 0 {linux_gui => app}/resources/img/__init__.py | 0 {linux_gui => app}/resources/img/flags/__init__.py | 0 .../resources/img/flags/large/__init__.py | 0 {linux_gui => app}/resources/img/flags/large/ad.jpg | Bin {linux_gui => app}/resources/img/flags/large/ae.jpg | Bin {linux_gui => app}/resources/img/flags/large/af.jpg | Bin {linux_gui => app}/resources/img/flags/large/ag.jpg | Bin {linux_gui => app}/resources/img/flags/large/al.jpg | Bin {linux_gui => app}/resources/img/flags/large/am.jpg | Bin {linux_gui => app}/resources/img/flags/large/ao.jpg | Bin {linux_gui => app}/resources/img/flags/large/ar.jpg | Bin {linux_gui => app}/resources/img/flags/large/at.jpg | Bin {linux_gui => app}/resources/img/flags/large/au.jpg | Bin {linux_gui => app}/resources/img/flags/large/az.jpg | Bin {linux_gui => app}/resources/img/flags/large/ba.jpg | Bin {linux_gui => app}/resources/img/flags/large/bb.jpg | Bin {linux_gui => app}/resources/img/flags/large/bd.jpg | Bin {linux_gui => app}/resources/img/flags/large/be.jpg | Bin {linux_gui => app}/resources/img/flags/large/bf.jpg | Bin {linux_gui => app}/resources/img/flags/large/bg.jpg | Bin {linux_gui => app}/resources/img/flags/large/bh.jpg | Bin {linux_gui => app}/resources/img/flags/large/bi.jpg | Bin {linux_gui => app}/resources/img/flags/large/bj.jpg | Bin {linux_gui => app}/resources/img/flags/large/bn.jpg | Bin {linux_gui => app}/resources/img/flags/large/bo.jpg | Bin {linux_gui => app}/resources/img/flags/large/br.jpg | Bin {linux_gui => app}/resources/img/flags/large/bs.jpg | Bin {linux_gui => app}/resources/img/flags/large/bt.jpg | Bin {linux_gui => app}/resources/img/flags/large/bw.jpg | Bin {linux_gui => app}/resources/img/flags/large/by.jpg | Bin {linux_gui => app}/resources/img/flags/large/bz.jpg | Bin {linux_gui => app}/resources/img/flags/large/ca.jpg | Bin {linux_gui => app}/resources/img/flags/large/cd.jpg | Bin {linux_gui => app}/resources/img/flags/large/cf.jpg | Bin {linux_gui => app}/resources/img/flags/large/cg.jpg | Bin {linux_gui => app}/resources/img/flags/large/ch.jpg | Bin {linux_gui => app}/resources/img/flags/large/ci.jpg | Bin {linux_gui => app}/resources/img/flags/large/ck.jpg | Bin {linux_gui => app}/resources/img/flags/large/cl.jpg | Bin {linux_gui => app}/resources/img/flags/large/cm.jpg | Bin {linux_gui => app}/resources/img/flags/large/cn.jpg | Bin {linux_gui => app}/resources/img/flags/large/co.jpg | Bin {linux_gui => app}/resources/img/flags/large/cr.jpg | Bin {linux_gui => app}/resources/img/flags/large/cu.jpg | Bin {linux_gui => app}/resources/img/flags/large/cv.jpg | Bin {linux_gui => app}/resources/img/flags/large/cy.jpg | Bin {linux_gui => app}/resources/img/flags/large/cz.jpg | Bin {linux_gui => app}/resources/img/flags/large/de.jpg | Bin {linux_gui => app}/resources/img/flags/large/dj.jpg | Bin {linux_gui => app}/resources/img/flags/large/dk.jpg | Bin {linux_gui => app}/resources/img/flags/large/dm.jpg | Bin {linux_gui => app}/resources/img/flags/large/do.jpg | Bin {linux_gui => app}/resources/img/flags/large/dz.jpg | Bin {linux_gui => app}/resources/img/flags/large/ec.jpg | Bin {linux_gui => app}/resources/img/flags/large/ee.jpg | Bin {linux_gui => app}/resources/img/flags/large/eg.jpg | Bin {linux_gui => app}/resources/img/flags/large/eh.jpg | Bin {linux_gui => app}/resources/img/flags/large/er.jpg | Bin {linux_gui => app}/resources/img/flags/large/es.jpg | Bin {linux_gui => app}/resources/img/flags/large/et.jpg | Bin {linux_gui => app}/resources/img/flags/large/fi.jpg | Bin {linux_gui => app}/resources/img/flags/large/fj.jpg | Bin {linux_gui => app}/resources/img/flags/large/fm.jpg | Bin {linux_gui => app}/resources/img/flags/large/fr.jpg | Bin {linux_gui => app}/resources/img/flags/large/ga.jpg | Bin {linux_gui => app}/resources/img/flags/large/gb.jpg | Bin {linux_gui => app}/resources/img/flags/large/gd.jpg | Bin {linux_gui => app}/resources/img/flags/large/ge.jpg | Bin {linux_gui => app}/resources/img/flags/large/gh.jpg | Bin {linux_gui => app}/resources/img/flags/large/gm.jpg | Bin {linux_gui => app}/resources/img/flags/large/gn.jpg | Bin {linux_gui => app}/resources/img/flags/large/gq.jpg | Bin {linux_gui => app}/resources/img/flags/large/gr.jpg | Bin {linux_gui => app}/resources/img/flags/large/gt.jpg | Bin {linux_gui => app}/resources/img/flags/large/gw.jpg | Bin {linux_gui => app}/resources/img/flags/large/gy.jpg | Bin {linux_gui => app}/resources/img/flags/large/hn.jpg | Bin {linux_gui => app}/resources/img/flags/large/hr.jpg | Bin {linux_gui => app}/resources/img/flags/large/ht.jpg | Bin {linux_gui => app}/resources/img/flags/large/hu.jpg | Bin {linux_gui => app}/resources/img/flags/large/id.jpg | Bin {linux_gui => app}/resources/img/flags/large/ie.jpg | Bin {linux_gui => app}/resources/img/flags/large/il.jpg | Bin {linux_gui => app}/resources/img/flags/large/in.jpg | Bin {linux_gui => app}/resources/img/flags/large/iq.jpg | Bin {linux_gui => app}/resources/img/flags/large/ir.jpg | Bin {linux_gui => app}/resources/img/flags/large/is.jpg | Bin {linux_gui => app}/resources/img/flags/large/it.jpg | Bin {linux_gui => app}/resources/img/flags/large/jm.jpg | Bin {linux_gui => app}/resources/img/flags/large/jo.jpg | Bin {linux_gui => app}/resources/img/flags/large/jp.jpg | Bin {linux_gui => app}/resources/img/flags/large/ke.jpg | Bin {linux_gui => app}/resources/img/flags/large/kg.jpg | Bin {linux_gui => app}/resources/img/flags/large/kh.jpg | Bin {linux_gui => app}/resources/img/flags/large/ki.jpg | Bin {linux_gui => app}/resources/img/flags/large/km.jpg | Bin {linux_gui => app}/resources/img/flags/large/kn.jpg | Bin {linux_gui => app}/resources/img/flags/large/kp.jpg | Bin {linux_gui => app}/resources/img/flags/large/kr.jpg | Bin {linux_gui => app}/resources/img/flags/large/kw.jpg | Bin {linux_gui => app}/resources/img/flags/large/kz.jpg | Bin {linux_gui => app}/resources/img/flags/large/la.jpg | Bin {linux_gui => app}/resources/img/flags/large/lb.jpg | Bin {linux_gui => app}/resources/img/flags/large/lc.jpg | Bin {linux_gui => app}/resources/img/flags/large/li.jpg | Bin {linux_gui => app}/resources/img/flags/large/lk.jpg | Bin {linux_gui => app}/resources/img/flags/large/lr.jpg | Bin {linux_gui => app}/resources/img/flags/large/ls.jpg | Bin {linux_gui => app}/resources/img/flags/large/lt.jpg | Bin {linux_gui => app}/resources/img/flags/large/lu.jpg | Bin {linux_gui => app}/resources/img/flags/large/lv.jpg | Bin {linux_gui => app}/resources/img/flags/large/ly.jpg | Bin {linux_gui => app}/resources/img/flags/large/ma.jpg | Bin {linux_gui => app}/resources/img/flags/large/mc.jpg | Bin {linux_gui => app}/resources/img/flags/large/md.jpg | Bin {linux_gui => app}/resources/img/flags/large/me.jpg | Bin {linux_gui => app}/resources/img/flags/large/mg.jpg | Bin {linux_gui => app}/resources/img/flags/large/mh.jpg | Bin {linux_gui => app}/resources/img/flags/large/mk.jpg | Bin {linux_gui => app}/resources/img/flags/large/ml.jpg | Bin {linux_gui => app}/resources/img/flags/large/mm.jpg | Bin {linux_gui => app}/resources/img/flags/large/mn.jpg | Bin {linux_gui => app}/resources/img/flags/large/mr.jpg | Bin {linux_gui => app}/resources/img/flags/large/mt.jpg | Bin {linux_gui => app}/resources/img/flags/large/mu.jpg | Bin {linux_gui => app}/resources/img/flags/large/mv.jpg | Bin {linux_gui => app}/resources/img/flags/large/mw.jpg | Bin {linux_gui => app}/resources/img/flags/large/mx.jpg | Bin {linux_gui => app}/resources/img/flags/large/my.jpg | Bin {linux_gui => app}/resources/img/flags/large/mz.jpg | Bin {linux_gui => app}/resources/img/flags/large/na.jpg | Bin {linux_gui => app}/resources/img/flags/large/ne.jpg | Bin {linux_gui => app}/resources/img/flags/large/ng.jpg | Bin {linux_gui => app}/resources/img/flags/large/ni.jpg | Bin {linux_gui => app}/resources/img/flags/large/nl.jpg | Bin {linux_gui => app}/resources/img/flags/large/no.jpg | Bin {linux_gui => app}/resources/img/flags/large/np.jpg | Bin {linux_gui => app}/resources/img/flags/large/nr.jpg | Bin {linux_gui => app}/resources/img/flags/large/nu.jpg | Bin {linux_gui => app}/resources/img/flags/large/nz.jpg | Bin {linux_gui => app}/resources/img/flags/large/om.jpg | Bin {linux_gui => app}/resources/img/flags/large/pa.jpg | Bin {linux_gui => app}/resources/img/flags/large/pe.jpg | Bin {linux_gui => app}/resources/img/flags/large/pg.jpg | Bin {linux_gui => app}/resources/img/flags/large/ph.jpg | Bin {linux_gui => app}/resources/img/flags/large/pk.jpg | Bin {linux_gui => app}/resources/img/flags/large/pl.jpg | Bin {linux_gui => app}/resources/img/flags/large/ps.jpg | Bin {linux_gui => app}/resources/img/flags/large/pt.jpg | Bin {linux_gui => app}/resources/img/flags/large/pw.jpg | Bin {linux_gui => app}/resources/img/flags/large/py.jpg | Bin {linux_gui => app}/resources/img/flags/large/qa.jpg | Bin {linux_gui => app}/resources/img/flags/large/ro.jpg | Bin {linux_gui => app}/resources/img/flags/large/rs.jpg | Bin {linux_gui => app}/resources/img/flags/large/ru.jpg | Bin {linux_gui => app}/resources/img/flags/large/rw.jpg | Bin {linux_gui => app}/resources/img/flags/large/sa.jpg | Bin {linux_gui => app}/resources/img/flags/large/sb.jpg | Bin {linux_gui => app}/resources/img/flags/large/sc.jpg | Bin {linux_gui => app}/resources/img/flags/large/sd.jpg | Bin {linux_gui => app}/resources/img/flags/large/se.jpg | Bin {linux_gui => app}/resources/img/flags/large/sg.jpg | Bin {linux_gui => app}/resources/img/flags/large/si.jpg | Bin {linux_gui => app}/resources/img/flags/large/sk.jpg | Bin {linux_gui => app}/resources/img/flags/large/sl.jpg | Bin {linux_gui => app}/resources/img/flags/large/sm.jpg | Bin {linux_gui => app}/resources/img/flags/large/sn.jpg | Bin {linux_gui => app}/resources/img/flags/large/so.jpg | Bin {linux_gui => app}/resources/img/flags/large/sr.jpg | Bin {linux_gui => app}/resources/img/flags/large/ss.jpg | Bin {linux_gui => app}/resources/img/flags/large/st.jpg | Bin {linux_gui => app}/resources/img/flags/large/sv.jpg | Bin {linux_gui => app}/resources/img/flags/large/sy.jpg | Bin {linux_gui => app}/resources/img/flags/large/sz.jpg | Bin {linux_gui => app}/resources/img/flags/large/td.jpg | Bin {linux_gui => app}/resources/img/flags/large/tg.jpg | Bin {linux_gui => app}/resources/img/flags/large/th.jpg | Bin {linux_gui => app}/resources/img/flags/large/tj.jpg | Bin {linux_gui => app}/resources/img/flags/large/tl.jpg | Bin {linux_gui => app}/resources/img/flags/large/tm.jpg | Bin {linux_gui => app}/resources/img/flags/large/tn.jpg | Bin {linux_gui => app}/resources/img/flags/large/to.jpg | Bin {linux_gui => app}/resources/img/flags/large/tr.jpg | Bin {linux_gui => app}/resources/img/flags/large/tt.jpg | Bin {linux_gui => app}/resources/img/flags/large/tv.jpg | Bin {linux_gui => app}/resources/img/flags/large/tw.jpg | Bin {linux_gui => app}/resources/img/flags/large/tz.jpg | Bin {linux_gui => app}/resources/img/flags/large/ua.jpg | Bin {linux_gui => app}/resources/img/flags/large/ug.jpg | Bin {linux_gui => app}/resources/img/flags/large/us.jpg | Bin {linux_gui => app}/resources/img/flags/large/uy.jpg | Bin {linux_gui => app}/resources/img/flags/large/uz.jpg | Bin {linux_gui => app}/resources/img/flags/large/va.jpg | Bin {linux_gui => app}/resources/img/flags/large/vc.jpg | Bin {linux_gui => app}/resources/img/flags/large/ve.jpg | Bin {linux_gui => app}/resources/img/flags/large/vn.jpg | Bin {linux_gui => app}/resources/img/flags/large/vu.jpg | Bin {linux_gui => app}/resources/img/flags/large/ws.jpg | Bin {linux_gui => app}/resources/img/flags/large/xk.jpg | Bin {linux_gui => app}/resources/img/flags/large/ye.jpg | Bin {linux_gui => app}/resources/img/flags/large/za.jpg | Bin {linux_gui => app}/resources/img/flags/large/zm.jpg | Bin {linux_gui => app}/resources/img/flags/large/zw.jpg | Bin .../resources/img/flags/small/Afghanistan.png | Bin .../resources/img/flags/small/Albania.png | Bin .../resources/img/flags/small/Algeria.png | Bin .../resources/img/flags/small/Andorra.png | Bin .../resources/img/flags/small/Argentina.png | Bin .../resources/img/flags/small/Armenia.png | Bin .../resources/img/flags/small/Australia.png | Bin .../resources/img/flags/small/Austria.png | Bin .../resources/img/flags/small/Azerbaijan.png | Bin .../resources/img/flags/small/Bahamas.png | Bin .../resources/img/flags/small/Bangladesh.png | Bin .../resources/img/flags/small/Belarus.png | Bin .../resources/img/flags/small/Belgium.png | Bin .../img/flags/small/Bosnia and Herzegovina.png | Bin .../resources/img/flags/small/Brazil.png | Bin .../resources/img/flags/small/Bulgaria.png | Bin .../resources/img/flags/small/Cameroon.png | Bin .../resources/img/flags/small/Canada.png | Bin .../resources/img/flags/small/Chile.png | Bin .../resources/img/flags/small/China.png | Bin .../resources/img/flags/small/Colombia.png | Bin .../resources/img/flags/small/Costa Rica.png | Bin .../resources/img/flags/small/Croatia.png | Bin .../resources/img/flags/small/Cuba.png | Bin .../resources/img/flags/small/Cyprus.png | Bin .../resources/img/flags/small/Czech Republic.png | Bin .../resources/img/flags/small/Denmark.png | Bin .../resources/img/flags/small/Ecuador.png | Bin .../resources/img/flags/small/Egypt.png | Bin .../resources/img/flags/small/Estonia.png | Bin .../resources/img/flags/small/Finland.png | Bin .../resources/img/flags/small/France.png | Bin .../resources/img/flags/small/Georgia.png | Bin .../resources/img/flags/small/Germany.png | Bin .../resources/img/flags/small/Greece.png | Bin .../resources/img/flags/small/Hong Kong.png | Bin .../resources/img/flags/small/Hungary.png | Bin .../resources/img/flags/small/Iceland.png | Bin .../resources/img/flags/small/India.png | Bin .../resources/img/flags/small/Indonesia.png | Bin .../resources/img/flags/small/Ireland.png | Bin .../resources/img/flags/small/Israel.png | Bin .../resources/img/flags/small/Italy.png | Bin .../resources/img/flags/small/Jamaica.png | Bin .../resources/img/flags/small/Japan.png | Bin .../resources/img/flags/small/Latvia.png | Bin .../resources/img/flags/small/Libya.png | Bin .../resources/img/flags/small/Lithuania.png | Bin .../resources/img/flags/small/Luxembourg.png | Bin .../img/flags/small/Macedonia, Republic of.png | Bin .../resources/img/flags/small/Malaysia.png | Bin .../resources/img/flags/small/Mexico.png | Bin .../resources/img/flags/small/Moldova.png | Bin .../resources/img/flags/small/Myanmar.png | Bin .../resources/img/flags/small/Netherlands.png | Bin .../resources/img/flags/small/New Zealand.png | Bin .../resources/img/flags/small/Norway.png | Bin .../resources/img/flags/small/Philippines.png | Bin .../resources/img/flags/small/Poland.png | Bin .../resources/img/flags/small/Portugal.png | Bin .../resources/img/flags/small/Romania.png | Bin .../resources/img/flags/small/Russia.png | Bin .../resources/img/flags/small/Serbia.png | Bin .../resources/img/flags/small/Singapore.png | Bin .../resources/img/flags/small/Slovakia.png | Bin .../resources/img/flags/small/Slovenia.png | Bin .../resources/img/flags/small/South Africa.png | Bin .../resources/img/flags/small/South Korea.png | Bin .../resources/img/flags/small/Spain.png | Bin .../resources/img/flags/small/Sweden.png | Bin .../resources/img/flags/small/Switzerland.png | Bin .../resources/img/flags/small/Taiwan.png | Bin .../resources/img/flags/small/Thailand.png | Bin .../resources/img/flags/small/Tunisia.png | Bin .../resources/img/flags/small/Turkey.png | Bin .../resources/img/flags/small/Ukraine.png | Bin .../img/flags/small/United Arab Emirates.png | Bin .../resources/img/flags/small/United Kingdom.png | Bin .../resources/img/flags/small/United States.png | Bin .../resources/img/flags/small/Unknown.png | Bin .../resources/img/flags/small/Viet Nam.png | Bin .../resources/img/flags/small/__init__.py | 0 {linux_gui => app}/resources/img/gui/dashboard.png | Bin .../resources/img/gui/diagnose_tool.png | Bin .../resources/img/gui/intialize_profile.png | Bin .../resources/img/gui/settings_advanced.png | Bin .../resources/img/gui/settings_connection.png | Bin .../resources/img/gui/settings_general.png | Bin .../resources/img/gui/settings_tray.png | Bin {linux_gui => app}/resources/img/logo/__init__.py | 0 .../resources/img/logo/protonvpn-logo-white.png | Bin .../resources/img/logo/protonvpn_logo.png | Bin .../resources/img/logo/protonvpn_logo_alt.png | Bin .../resources/img/logo/protonvpn_logo_full.png | Bin .../resources/img/logo/protonvpn_sign_green.png | Bin .../resources/img/protonvpn_gui_banner.png | Bin {linux_gui => app}/resources/img/utils/__init__.py | 0 .../resources/img/utils/bitrate-download-arrow.png | Bin .../resources/img/utils/bitrate-upload-arrow.png | Bin {linux_gui => app}/resources/img/utils/fastest.png | Bin .../resources/img/utils/hamburger-menu-icon.png | Bin .../resources/img/utils/info-green.png | Bin {linux_gui => app}/resources/img/utils/normal.png | Bin .../resources/img/utils/p2p-arrows.png | Bin .../resources/img/utils/plus-server.png | Bin {linux_gui => app}/resources/img/utils/random.png | Bin {linux_gui => app}/resources/img/utils/search.png | Bin .../resources/img/utils/tor-onion.png | Bin {linux_gui => app}/resources/styles/__init__.py | 0 {linux_gui => app}/resources/styles/common.css | 0 {linux_gui => app}/resources/styles/dashboard.css | 0 {linux_gui => app}/resources/styles/headerbar.css | 0 {linux_gui => app}/resources/styles/login.css | 0 {linux_gui => app}/resources/styles/main.css | 0 {linux_gui => app}/resources/styles/settings.css | 0 {linux_gui => app}/resources/ui/__init__.py | 0 .../resources/ui/dashboard_window.glade | 0 {linux_gui => app}/resources/ui/login_window.glade | 0 .../resources/ui/message_dialog.glade | 0 .../resources/ui/settings_window.glade | 0 {linux_gui => app}/services/__init__.py | 0 {linux_gui => app}/services/dashboard_service.py | 0 {linux_gui => app}/services/login_service.py | 0 {linux_gui => app}/services/settings_service.py | 0 {linux_gui => app}/utils.py | 0 {linux_gui => app}/views/__init__.py | 0 {linux_gui => app}/views/dashboard_view.py | 0 {linux_gui => app}/views/dialog_view.py | 0 {linux_gui => app}/views/login_view.py | 0 {linux_gui => app}/views/settings_view.py | 0 343 files changed, 0 insertions(+), 0 deletions(-) rename {linux_gui => app}/__init__.py (100%) rename {linux_gui => app}/constants.py (100%) rename {linux_gui => app}/gui_logger.py (100%) rename {linux_gui => app}/indicator.py (100%) rename {linux_gui => app}/presenters/__init__.py (100%) rename {linux_gui => app}/presenters/dashboard_presenter.py (100%) rename {linux_gui => app}/presenters/login_presenter.py (100%) rename {linux_gui => app}/presenters/settings_presenter.py (100%) rename {linux_gui => app}/protonvpn_gui.py (100%) rename {linux_gui => app}/resources/__init__.py (100%) rename {linux_gui => app}/resources/img/__init__.py (100%) rename {linux_gui => app}/resources/img/flags/__init__.py (100%) rename {linux_gui => app}/resources/img/flags/large/__init__.py (100%) rename {linux_gui => app}/resources/img/flags/large/ad.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ae.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/af.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ag.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/al.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/am.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ao.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ar.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/at.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/au.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/az.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ba.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bb.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bd.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/be.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bf.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bh.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bi.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bj.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bo.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/br.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bs.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bt.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/by.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/bz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ca.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cd.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cf.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ch.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ci.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ck.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cl.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/co.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cu.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cv.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cy.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/cz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/de.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/dj.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/dk.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/dm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/do.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/dz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ec.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ee.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/eg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/eh.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/er.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/es.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/et.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/fi.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/fj.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/fm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/fr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ga.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gb.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gd.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ge.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gh.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gq.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gt.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/gy.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/hn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/hr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ht.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/hu.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/id.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ie.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/il.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/in.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/iq.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ir.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/is.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/it.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/jm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/jo.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/jp.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ke.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kh.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ki.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/km.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kp.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/kz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/la.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lb.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lc.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/li.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lk.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ls.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lt.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lu.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/lv.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ly.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ma.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mc.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/md.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/me.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mh.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mk.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ml.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mt.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mu.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mv.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mx.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/my.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/mz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/na.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ne.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ng.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ni.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/nl.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/no.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/np.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/nr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/nu.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/nz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/om.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pa.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pe.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ph.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pk.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pl.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ps.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pt.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/pw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/py.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/qa.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ro.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/rs.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ru.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/rw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sa.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sb.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sc.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sd.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/se.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/si.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sk.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sl.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/so.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ss.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/st.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sv.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sy.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/sz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/td.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tg.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/th.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tj.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tl.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/to.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tr.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tt.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tv.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tw.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/tz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ua.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ug.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/us.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/uy.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/uz.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/va.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/vc.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ve.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/vn.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/vu.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ws.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/xk.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/ye.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/za.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/zm.jpg (100%) rename {linux_gui => app}/resources/img/flags/large/zw.jpg (100%) rename {linux_gui => app}/resources/img/flags/small/Afghanistan.png (100%) rename {linux_gui => app}/resources/img/flags/small/Albania.png (100%) rename {linux_gui => app}/resources/img/flags/small/Algeria.png (100%) rename {linux_gui => app}/resources/img/flags/small/Andorra.png (100%) rename {linux_gui => app}/resources/img/flags/small/Argentina.png (100%) rename {linux_gui => app}/resources/img/flags/small/Armenia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Australia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Austria.png (100%) rename {linux_gui => app}/resources/img/flags/small/Azerbaijan.png (100%) rename {linux_gui => app}/resources/img/flags/small/Bahamas.png (100%) rename {linux_gui => app}/resources/img/flags/small/Bangladesh.png (100%) rename {linux_gui => app}/resources/img/flags/small/Belarus.png (100%) rename {linux_gui => app}/resources/img/flags/small/Belgium.png (100%) rename {linux_gui => app}/resources/img/flags/small/Bosnia and Herzegovina.png (100%) rename {linux_gui => app}/resources/img/flags/small/Brazil.png (100%) rename {linux_gui => app}/resources/img/flags/small/Bulgaria.png (100%) rename {linux_gui => app}/resources/img/flags/small/Cameroon.png (100%) rename {linux_gui => app}/resources/img/flags/small/Canada.png (100%) rename {linux_gui => app}/resources/img/flags/small/Chile.png (100%) rename {linux_gui => app}/resources/img/flags/small/China.png (100%) rename {linux_gui => app}/resources/img/flags/small/Colombia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Costa Rica.png (100%) rename {linux_gui => app}/resources/img/flags/small/Croatia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Cuba.png (100%) rename {linux_gui => app}/resources/img/flags/small/Cyprus.png (100%) rename {linux_gui => app}/resources/img/flags/small/Czech Republic.png (100%) rename {linux_gui => app}/resources/img/flags/small/Denmark.png (100%) rename {linux_gui => app}/resources/img/flags/small/Ecuador.png (100%) rename {linux_gui => app}/resources/img/flags/small/Egypt.png (100%) rename {linux_gui => app}/resources/img/flags/small/Estonia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Finland.png (100%) rename {linux_gui => app}/resources/img/flags/small/France.png (100%) rename {linux_gui => app}/resources/img/flags/small/Georgia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Germany.png (100%) rename {linux_gui => app}/resources/img/flags/small/Greece.png (100%) rename {linux_gui => app}/resources/img/flags/small/Hong Kong.png (100%) rename {linux_gui => app}/resources/img/flags/small/Hungary.png (100%) rename {linux_gui => app}/resources/img/flags/small/Iceland.png (100%) rename {linux_gui => app}/resources/img/flags/small/India.png (100%) rename {linux_gui => app}/resources/img/flags/small/Indonesia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Ireland.png (100%) rename {linux_gui => app}/resources/img/flags/small/Israel.png (100%) rename {linux_gui => app}/resources/img/flags/small/Italy.png (100%) rename {linux_gui => app}/resources/img/flags/small/Jamaica.png (100%) rename {linux_gui => app}/resources/img/flags/small/Japan.png (100%) rename {linux_gui => app}/resources/img/flags/small/Latvia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Libya.png (100%) rename {linux_gui => app}/resources/img/flags/small/Lithuania.png (100%) rename {linux_gui => app}/resources/img/flags/small/Luxembourg.png (100%) rename {linux_gui => app}/resources/img/flags/small/Macedonia, Republic of.png (100%) rename {linux_gui => app}/resources/img/flags/small/Malaysia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Mexico.png (100%) rename {linux_gui => app}/resources/img/flags/small/Moldova.png (100%) rename {linux_gui => app}/resources/img/flags/small/Myanmar.png (100%) rename {linux_gui => app}/resources/img/flags/small/Netherlands.png (100%) rename {linux_gui => app}/resources/img/flags/small/New Zealand.png (100%) rename {linux_gui => app}/resources/img/flags/small/Norway.png (100%) rename {linux_gui => app}/resources/img/flags/small/Philippines.png (100%) rename {linux_gui => app}/resources/img/flags/small/Poland.png (100%) rename {linux_gui => app}/resources/img/flags/small/Portugal.png (100%) rename {linux_gui => app}/resources/img/flags/small/Romania.png (100%) rename {linux_gui => app}/resources/img/flags/small/Russia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Serbia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Singapore.png (100%) rename {linux_gui => app}/resources/img/flags/small/Slovakia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Slovenia.png (100%) rename {linux_gui => app}/resources/img/flags/small/South Africa.png (100%) rename {linux_gui => app}/resources/img/flags/small/South Korea.png (100%) rename {linux_gui => app}/resources/img/flags/small/Spain.png (100%) rename {linux_gui => app}/resources/img/flags/small/Sweden.png (100%) rename {linux_gui => app}/resources/img/flags/small/Switzerland.png (100%) rename {linux_gui => app}/resources/img/flags/small/Taiwan.png (100%) rename {linux_gui => app}/resources/img/flags/small/Thailand.png (100%) rename {linux_gui => app}/resources/img/flags/small/Tunisia.png (100%) rename {linux_gui => app}/resources/img/flags/small/Turkey.png (100%) rename {linux_gui => app}/resources/img/flags/small/Ukraine.png (100%) rename {linux_gui => app}/resources/img/flags/small/United Arab Emirates.png (100%) rename {linux_gui => app}/resources/img/flags/small/United Kingdom.png (100%) rename {linux_gui => app}/resources/img/flags/small/United States.png (100%) rename {linux_gui => app}/resources/img/flags/small/Unknown.png (100%) rename {linux_gui => app}/resources/img/flags/small/Viet Nam.png (100%) rename {linux_gui => app}/resources/img/flags/small/__init__.py (100%) rename {linux_gui => app}/resources/img/gui/dashboard.png (100%) rename {linux_gui => app}/resources/img/gui/diagnose_tool.png (100%) rename {linux_gui => app}/resources/img/gui/intialize_profile.png (100%) rename {linux_gui => app}/resources/img/gui/settings_advanced.png (100%) rename {linux_gui => app}/resources/img/gui/settings_connection.png (100%) rename {linux_gui => app}/resources/img/gui/settings_general.png (100%) rename {linux_gui => app}/resources/img/gui/settings_tray.png (100%) rename {linux_gui => app}/resources/img/logo/__init__.py (100%) rename {linux_gui => app}/resources/img/logo/protonvpn-logo-white.png (100%) rename {linux_gui => app}/resources/img/logo/protonvpn_logo.png (100%) rename {linux_gui => app}/resources/img/logo/protonvpn_logo_alt.png (100%) rename {linux_gui => app}/resources/img/logo/protonvpn_logo_full.png (100%) rename {linux_gui => app}/resources/img/logo/protonvpn_sign_green.png (100%) rename {linux_gui => app}/resources/img/protonvpn_gui_banner.png (100%) rename {linux_gui => app}/resources/img/utils/__init__.py (100%) rename {linux_gui => app}/resources/img/utils/bitrate-download-arrow.png (100%) rename {linux_gui => app}/resources/img/utils/bitrate-upload-arrow.png (100%) rename {linux_gui => app}/resources/img/utils/fastest.png (100%) rename {linux_gui => app}/resources/img/utils/hamburger-menu-icon.png (100%) rename {linux_gui => app}/resources/img/utils/info-green.png (100%) rename {linux_gui => app}/resources/img/utils/normal.png (100%) rename {linux_gui => app}/resources/img/utils/p2p-arrows.png (100%) rename {linux_gui => app}/resources/img/utils/plus-server.png (100%) rename {linux_gui => app}/resources/img/utils/random.png (100%) rename {linux_gui => app}/resources/img/utils/search.png (100%) rename {linux_gui => app}/resources/img/utils/tor-onion.png (100%) rename {linux_gui => app}/resources/styles/__init__.py (100%) rename {linux_gui => app}/resources/styles/common.css (100%) rename {linux_gui => app}/resources/styles/dashboard.css (100%) rename {linux_gui => app}/resources/styles/headerbar.css (100%) rename {linux_gui => app}/resources/styles/login.css (100%) rename {linux_gui => app}/resources/styles/main.css (100%) rename {linux_gui => app}/resources/styles/settings.css (100%) rename {linux_gui => app}/resources/ui/__init__.py (100%) rename {linux_gui => app}/resources/ui/dashboard_window.glade (100%) rename {linux_gui => app}/resources/ui/login_window.glade (100%) rename {linux_gui => app}/resources/ui/message_dialog.glade (100%) rename {linux_gui => app}/resources/ui/settings_window.glade (100%) rename {linux_gui => app}/services/__init__.py (100%) rename {linux_gui => app}/services/dashboard_service.py (100%) rename {linux_gui => app}/services/login_service.py (100%) rename {linux_gui => app}/services/settings_service.py (100%) rename {linux_gui => app}/utils.py (100%) rename {linux_gui => app}/views/__init__.py (100%) rename {linux_gui => app}/views/dashboard_view.py (100%) rename {linux_gui => app}/views/dialog_view.py (100%) rename {linux_gui => app}/views/login_view.py (100%) rename {linux_gui => app}/views/settings_view.py (100%) diff --git a/linux_gui/__init__.py b/app/__init__.py similarity index 100% rename from linux_gui/__init__.py rename to app/__init__.py diff --git a/linux_gui/constants.py b/app/constants.py similarity index 100% rename from linux_gui/constants.py rename to app/constants.py diff --git a/linux_gui/gui_logger.py b/app/gui_logger.py similarity index 100% rename from linux_gui/gui_logger.py rename to app/gui_logger.py diff --git a/linux_gui/indicator.py b/app/indicator.py similarity index 100% rename from linux_gui/indicator.py rename to app/indicator.py diff --git a/linux_gui/presenters/__init__.py b/app/presenters/__init__.py similarity index 100% rename from linux_gui/presenters/__init__.py rename to app/presenters/__init__.py diff --git a/linux_gui/presenters/dashboard_presenter.py b/app/presenters/dashboard_presenter.py similarity index 100% rename from linux_gui/presenters/dashboard_presenter.py rename to app/presenters/dashboard_presenter.py diff --git a/linux_gui/presenters/login_presenter.py b/app/presenters/login_presenter.py similarity index 100% rename from linux_gui/presenters/login_presenter.py rename to app/presenters/login_presenter.py diff --git a/linux_gui/presenters/settings_presenter.py b/app/presenters/settings_presenter.py similarity index 100% rename from linux_gui/presenters/settings_presenter.py rename to app/presenters/settings_presenter.py diff --git a/linux_gui/protonvpn_gui.py b/app/protonvpn_gui.py similarity index 100% rename from linux_gui/protonvpn_gui.py rename to app/protonvpn_gui.py diff --git a/linux_gui/resources/__init__.py b/app/resources/__init__.py similarity index 100% rename from linux_gui/resources/__init__.py rename to app/resources/__init__.py diff --git a/linux_gui/resources/img/__init__.py b/app/resources/img/__init__.py similarity index 100% rename from linux_gui/resources/img/__init__.py rename to app/resources/img/__init__.py diff --git a/linux_gui/resources/img/flags/__init__.py b/app/resources/img/flags/__init__.py similarity index 100% rename from linux_gui/resources/img/flags/__init__.py rename to app/resources/img/flags/__init__.py diff --git a/linux_gui/resources/img/flags/large/__init__.py b/app/resources/img/flags/large/__init__.py similarity index 100% rename from linux_gui/resources/img/flags/large/__init__.py rename to app/resources/img/flags/large/__init__.py diff --git a/linux_gui/resources/img/flags/large/ad.jpg b/app/resources/img/flags/large/ad.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ad.jpg rename to app/resources/img/flags/large/ad.jpg diff --git a/linux_gui/resources/img/flags/large/ae.jpg b/app/resources/img/flags/large/ae.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ae.jpg rename to app/resources/img/flags/large/ae.jpg diff --git a/linux_gui/resources/img/flags/large/af.jpg b/app/resources/img/flags/large/af.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/af.jpg rename to app/resources/img/flags/large/af.jpg diff --git a/linux_gui/resources/img/flags/large/ag.jpg b/app/resources/img/flags/large/ag.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ag.jpg rename to app/resources/img/flags/large/ag.jpg diff --git a/linux_gui/resources/img/flags/large/al.jpg b/app/resources/img/flags/large/al.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/al.jpg rename to app/resources/img/flags/large/al.jpg diff --git a/linux_gui/resources/img/flags/large/am.jpg b/app/resources/img/flags/large/am.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/am.jpg rename to app/resources/img/flags/large/am.jpg diff --git a/linux_gui/resources/img/flags/large/ao.jpg b/app/resources/img/flags/large/ao.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ao.jpg rename to app/resources/img/flags/large/ao.jpg diff --git a/linux_gui/resources/img/flags/large/ar.jpg b/app/resources/img/flags/large/ar.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ar.jpg rename to app/resources/img/flags/large/ar.jpg diff --git a/linux_gui/resources/img/flags/large/at.jpg b/app/resources/img/flags/large/at.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/at.jpg rename to app/resources/img/flags/large/at.jpg diff --git a/linux_gui/resources/img/flags/large/au.jpg b/app/resources/img/flags/large/au.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/au.jpg rename to app/resources/img/flags/large/au.jpg diff --git a/linux_gui/resources/img/flags/large/az.jpg b/app/resources/img/flags/large/az.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/az.jpg rename to app/resources/img/flags/large/az.jpg diff --git a/linux_gui/resources/img/flags/large/ba.jpg b/app/resources/img/flags/large/ba.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ba.jpg rename to app/resources/img/flags/large/ba.jpg diff --git a/linux_gui/resources/img/flags/large/bb.jpg b/app/resources/img/flags/large/bb.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bb.jpg rename to app/resources/img/flags/large/bb.jpg diff --git a/linux_gui/resources/img/flags/large/bd.jpg b/app/resources/img/flags/large/bd.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bd.jpg rename to app/resources/img/flags/large/bd.jpg diff --git a/linux_gui/resources/img/flags/large/be.jpg b/app/resources/img/flags/large/be.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/be.jpg rename to app/resources/img/flags/large/be.jpg diff --git a/linux_gui/resources/img/flags/large/bf.jpg b/app/resources/img/flags/large/bf.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bf.jpg rename to app/resources/img/flags/large/bf.jpg diff --git a/linux_gui/resources/img/flags/large/bg.jpg b/app/resources/img/flags/large/bg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bg.jpg rename to app/resources/img/flags/large/bg.jpg diff --git a/linux_gui/resources/img/flags/large/bh.jpg b/app/resources/img/flags/large/bh.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bh.jpg rename to app/resources/img/flags/large/bh.jpg diff --git a/linux_gui/resources/img/flags/large/bi.jpg b/app/resources/img/flags/large/bi.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bi.jpg rename to app/resources/img/flags/large/bi.jpg diff --git a/linux_gui/resources/img/flags/large/bj.jpg b/app/resources/img/flags/large/bj.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bj.jpg rename to app/resources/img/flags/large/bj.jpg diff --git a/linux_gui/resources/img/flags/large/bn.jpg b/app/resources/img/flags/large/bn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bn.jpg rename to app/resources/img/flags/large/bn.jpg diff --git a/linux_gui/resources/img/flags/large/bo.jpg b/app/resources/img/flags/large/bo.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bo.jpg rename to app/resources/img/flags/large/bo.jpg diff --git a/linux_gui/resources/img/flags/large/br.jpg b/app/resources/img/flags/large/br.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/br.jpg rename to app/resources/img/flags/large/br.jpg diff --git a/linux_gui/resources/img/flags/large/bs.jpg b/app/resources/img/flags/large/bs.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bs.jpg rename to app/resources/img/flags/large/bs.jpg diff --git a/linux_gui/resources/img/flags/large/bt.jpg b/app/resources/img/flags/large/bt.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bt.jpg rename to app/resources/img/flags/large/bt.jpg diff --git a/linux_gui/resources/img/flags/large/bw.jpg b/app/resources/img/flags/large/bw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bw.jpg rename to app/resources/img/flags/large/bw.jpg diff --git a/linux_gui/resources/img/flags/large/by.jpg b/app/resources/img/flags/large/by.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/by.jpg rename to app/resources/img/flags/large/by.jpg diff --git a/linux_gui/resources/img/flags/large/bz.jpg b/app/resources/img/flags/large/bz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/bz.jpg rename to app/resources/img/flags/large/bz.jpg diff --git a/linux_gui/resources/img/flags/large/ca.jpg b/app/resources/img/flags/large/ca.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ca.jpg rename to app/resources/img/flags/large/ca.jpg diff --git a/linux_gui/resources/img/flags/large/cd.jpg b/app/resources/img/flags/large/cd.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cd.jpg rename to app/resources/img/flags/large/cd.jpg diff --git a/linux_gui/resources/img/flags/large/cf.jpg b/app/resources/img/flags/large/cf.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cf.jpg rename to app/resources/img/flags/large/cf.jpg diff --git a/linux_gui/resources/img/flags/large/cg.jpg b/app/resources/img/flags/large/cg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cg.jpg rename to app/resources/img/flags/large/cg.jpg diff --git a/linux_gui/resources/img/flags/large/ch.jpg b/app/resources/img/flags/large/ch.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ch.jpg rename to app/resources/img/flags/large/ch.jpg diff --git a/linux_gui/resources/img/flags/large/ci.jpg b/app/resources/img/flags/large/ci.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ci.jpg rename to app/resources/img/flags/large/ci.jpg diff --git a/linux_gui/resources/img/flags/large/ck.jpg b/app/resources/img/flags/large/ck.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ck.jpg rename to app/resources/img/flags/large/ck.jpg diff --git a/linux_gui/resources/img/flags/large/cl.jpg b/app/resources/img/flags/large/cl.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cl.jpg rename to app/resources/img/flags/large/cl.jpg diff --git a/linux_gui/resources/img/flags/large/cm.jpg b/app/resources/img/flags/large/cm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cm.jpg rename to app/resources/img/flags/large/cm.jpg diff --git a/linux_gui/resources/img/flags/large/cn.jpg b/app/resources/img/flags/large/cn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cn.jpg rename to app/resources/img/flags/large/cn.jpg diff --git a/linux_gui/resources/img/flags/large/co.jpg b/app/resources/img/flags/large/co.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/co.jpg rename to app/resources/img/flags/large/co.jpg diff --git a/linux_gui/resources/img/flags/large/cr.jpg b/app/resources/img/flags/large/cr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cr.jpg rename to app/resources/img/flags/large/cr.jpg diff --git a/linux_gui/resources/img/flags/large/cu.jpg b/app/resources/img/flags/large/cu.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cu.jpg rename to app/resources/img/flags/large/cu.jpg diff --git a/linux_gui/resources/img/flags/large/cv.jpg b/app/resources/img/flags/large/cv.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cv.jpg rename to app/resources/img/flags/large/cv.jpg diff --git a/linux_gui/resources/img/flags/large/cy.jpg b/app/resources/img/flags/large/cy.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cy.jpg rename to app/resources/img/flags/large/cy.jpg diff --git a/linux_gui/resources/img/flags/large/cz.jpg b/app/resources/img/flags/large/cz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/cz.jpg rename to app/resources/img/flags/large/cz.jpg diff --git a/linux_gui/resources/img/flags/large/de.jpg b/app/resources/img/flags/large/de.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/de.jpg rename to app/resources/img/flags/large/de.jpg diff --git a/linux_gui/resources/img/flags/large/dj.jpg b/app/resources/img/flags/large/dj.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/dj.jpg rename to app/resources/img/flags/large/dj.jpg diff --git a/linux_gui/resources/img/flags/large/dk.jpg b/app/resources/img/flags/large/dk.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/dk.jpg rename to app/resources/img/flags/large/dk.jpg diff --git a/linux_gui/resources/img/flags/large/dm.jpg b/app/resources/img/flags/large/dm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/dm.jpg rename to app/resources/img/flags/large/dm.jpg diff --git a/linux_gui/resources/img/flags/large/do.jpg b/app/resources/img/flags/large/do.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/do.jpg rename to app/resources/img/flags/large/do.jpg diff --git a/linux_gui/resources/img/flags/large/dz.jpg b/app/resources/img/flags/large/dz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/dz.jpg rename to app/resources/img/flags/large/dz.jpg diff --git a/linux_gui/resources/img/flags/large/ec.jpg b/app/resources/img/flags/large/ec.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ec.jpg rename to app/resources/img/flags/large/ec.jpg diff --git a/linux_gui/resources/img/flags/large/ee.jpg b/app/resources/img/flags/large/ee.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ee.jpg rename to app/resources/img/flags/large/ee.jpg diff --git a/linux_gui/resources/img/flags/large/eg.jpg b/app/resources/img/flags/large/eg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/eg.jpg rename to app/resources/img/flags/large/eg.jpg diff --git a/linux_gui/resources/img/flags/large/eh.jpg b/app/resources/img/flags/large/eh.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/eh.jpg rename to app/resources/img/flags/large/eh.jpg diff --git a/linux_gui/resources/img/flags/large/er.jpg b/app/resources/img/flags/large/er.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/er.jpg rename to app/resources/img/flags/large/er.jpg diff --git a/linux_gui/resources/img/flags/large/es.jpg b/app/resources/img/flags/large/es.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/es.jpg rename to app/resources/img/flags/large/es.jpg diff --git a/linux_gui/resources/img/flags/large/et.jpg b/app/resources/img/flags/large/et.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/et.jpg rename to app/resources/img/flags/large/et.jpg diff --git a/linux_gui/resources/img/flags/large/fi.jpg b/app/resources/img/flags/large/fi.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/fi.jpg rename to app/resources/img/flags/large/fi.jpg diff --git a/linux_gui/resources/img/flags/large/fj.jpg b/app/resources/img/flags/large/fj.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/fj.jpg rename to app/resources/img/flags/large/fj.jpg diff --git a/linux_gui/resources/img/flags/large/fm.jpg b/app/resources/img/flags/large/fm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/fm.jpg rename to app/resources/img/flags/large/fm.jpg diff --git a/linux_gui/resources/img/flags/large/fr.jpg b/app/resources/img/flags/large/fr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/fr.jpg rename to app/resources/img/flags/large/fr.jpg diff --git a/linux_gui/resources/img/flags/large/ga.jpg b/app/resources/img/flags/large/ga.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ga.jpg rename to app/resources/img/flags/large/ga.jpg diff --git a/linux_gui/resources/img/flags/large/gb.jpg b/app/resources/img/flags/large/gb.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gb.jpg rename to app/resources/img/flags/large/gb.jpg diff --git a/linux_gui/resources/img/flags/large/gd.jpg b/app/resources/img/flags/large/gd.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gd.jpg rename to app/resources/img/flags/large/gd.jpg diff --git a/linux_gui/resources/img/flags/large/ge.jpg b/app/resources/img/flags/large/ge.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ge.jpg rename to app/resources/img/flags/large/ge.jpg diff --git a/linux_gui/resources/img/flags/large/gh.jpg b/app/resources/img/flags/large/gh.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gh.jpg rename to app/resources/img/flags/large/gh.jpg diff --git a/linux_gui/resources/img/flags/large/gm.jpg b/app/resources/img/flags/large/gm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gm.jpg rename to app/resources/img/flags/large/gm.jpg diff --git a/linux_gui/resources/img/flags/large/gn.jpg b/app/resources/img/flags/large/gn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gn.jpg rename to app/resources/img/flags/large/gn.jpg diff --git a/linux_gui/resources/img/flags/large/gq.jpg b/app/resources/img/flags/large/gq.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gq.jpg rename to app/resources/img/flags/large/gq.jpg diff --git a/linux_gui/resources/img/flags/large/gr.jpg b/app/resources/img/flags/large/gr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gr.jpg rename to app/resources/img/flags/large/gr.jpg diff --git a/linux_gui/resources/img/flags/large/gt.jpg b/app/resources/img/flags/large/gt.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gt.jpg rename to app/resources/img/flags/large/gt.jpg diff --git a/linux_gui/resources/img/flags/large/gw.jpg b/app/resources/img/flags/large/gw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gw.jpg rename to app/resources/img/flags/large/gw.jpg diff --git a/linux_gui/resources/img/flags/large/gy.jpg b/app/resources/img/flags/large/gy.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/gy.jpg rename to app/resources/img/flags/large/gy.jpg diff --git a/linux_gui/resources/img/flags/large/hn.jpg b/app/resources/img/flags/large/hn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/hn.jpg rename to app/resources/img/flags/large/hn.jpg diff --git a/linux_gui/resources/img/flags/large/hr.jpg b/app/resources/img/flags/large/hr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/hr.jpg rename to app/resources/img/flags/large/hr.jpg diff --git a/linux_gui/resources/img/flags/large/ht.jpg b/app/resources/img/flags/large/ht.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ht.jpg rename to app/resources/img/flags/large/ht.jpg diff --git a/linux_gui/resources/img/flags/large/hu.jpg b/app/resources/img/flags/large/hu.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/hu.jpg rename to app/resources/img/flags/large/hu.jpg diff --git a/linux_gui/resources/img/flags/large/id.jpg b/app/resources/img/flags/large/id.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/id.jpg rename to app/resources/img/flags/large/id.jpg diff --git a/linux_gui/resources/img/flags/large/ie.jpg b/app/resources/img/flags/large/ie.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ie.jpg rename to app/resources/img/flags/large/ie.jpg diff --git a/linux_gui/resources/img/flags/large/il.jpg b/app/resources/img/flags/large/il.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/il.jpg rename to app/resources/img/flags/large/il.jpg diff --git a/linux_gui/resources/img/flags/large/in.jpg b/app/resources/img/flags/large/in.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/in.jpg rename to app/resources/img/flags/large/in.jpg diff --git a/linux_gui/resources/img/flags/large/iq.jpg b/app/resources/img/flags/large/iq.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/iq.jpg rename to app/resources/img/flags/large/iq.jpg diff --git a/linux_gui/resources/img/flags/large/ir.jpg b/app/resources/img/flags/large/ir.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ir.jpg rename to app/resources/img/flags/large/ir.jpg diff --git a/linux_gui/resources/img/flags/large/is.jpg b/app/resources/img/flags/large/is.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/is.jpg rename to app/resources/img/flags/large/is.jpg diff --git a/linux_gui/resources/img/flags/large/it.jpg b/app/resources/img/flags/large/it.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/it.jpg rename to app/resources/img/flags/large/it.jpg diff --git a/linux_gui/resources/img/flags/large/jm.jpg b/app/resources/img/flags/large/jm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/jm.jpg rename to app/resources/img/flags/large/jm.jpg diff --git a/linux_gui/resources/img/flags/large/jo.jpg b/app/resources/img/flags/large/jo.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/jo.jpg rename to app/resources/img/flags/large/jo.jpg diff --git a/linux_gui/resources/img/flags/large/jp.jpg b/app/resources/img/flags/large/jp.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/jp.jpg rename to app/resources/img/flags/large/jp.jpg diff --git a/linux_gui/resources/img/flags/large/ke.jpg b/app/resources/img/flags/large/ke.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ke.jpg rename to app/resources/img/flags/large/ke.jpg diff --git a/linux_gui/resources/img/flags/large/kg.jpg b/app/resources/img/flags/large/kg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kg.jpg rename to app/resources/img/flags/large/kg.jpg diff --git a/linux_gui/resources/img/flags/large/kh.jpg b/app/resources/img/flags/large/kh.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kh.jpg rename to app/resources/img/flags/large/kh.jpg diff --git a/linux_gui/resources/img/flags/large/ki.jpg b/app/resources/img/flags/large/ki.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ki.jpg rename to app/resources/img/flags/large/ki.jpg diff --git a/linux_gui/resources/img/flags/large/km.jpg b/app/resources/img/flags/large/km.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/km.jpg rename to app/resources/img/flags/large/km.jpg diff --git a/linux_gui/resources/img/flags/large/kn.jpg b/app/resources/img/flags/large/kn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kn.jpg rename to app/resources/img/flags/large/kn.jpg diff --git a/linux_gui/resources/img/flags/large/kp.jpg b/app/resources/img/flags/large/kp.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kp.jpg rename to app/resources/img/flags/large/kp.jpg diff --git a/linux_gui/resources/img/flags/large/kr.jpg b/app/resources/img/flags/large/kr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kr.jpg rename to app/resources/img/flags/large/kr.jpg diff --git a/linux_gui/resources/img/flags/large/kw.jpg b/app/resources/img/flags/large/kw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kw.jpg rename to app/resources/img/flags/large/kw.jpg diff --git a/linux_gui/resources/img/flags/large/kz.jpg b/app/resources/img/flags/large/kz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/kz.jpg rename to app/resources/img/flags/large/kz.jpg diff --git a/linux_gui/resources/img/flags/large/la.jpg b/app/resources/img/flags/large/la.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/la.jpg rename to app/resources/img/flags/large/la.jpg diff --git a/linux_gui/resources/img/flags/large/lb.jpg b/app/resources/img/flags/large/lb.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lb.jpg rename to app/resources/img/flags/large/lb.jpg diff --git a/linux_gui/resources/img/flags/large/lc.jpg b/app/resources/img/flags/large/lc.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lc.jpg rename to app/resources/img/flags/large/lc.jpg diff --git a/linux_gui/resources/img/flags/large/li.jpg b/app/resources/img/flags/large/li.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/li.jpg rename to app/resources/img/flags/large/li.jpg diff --git a/linux_gui/resources/img/flags/large/lk.jpg b/app/resources/img/flags/large/lk.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lk.jpg rename to app/resources/img/flags/large/lk.jpg diff --git a/linux_gui/resources/img/flags/large/lr.jpg b/app/resources/img/flags/large/lr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lr.jpg rename to app/resources/img/flags/large/lr.jpg diff --git a/linux_gui/resources/img/flags/large/ls.jpg b/app/resources/img/flags/large/ls.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ls.jpg rename to app/resources/img/flags/large/ls.jpg diff --git a/linux_gui/resources/img/flags/large/lt.jpg b/app/resources/img/flags/large/lt.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lt.jpg rename to app/resources/img/flags/large/lt.jpg diff --git a/linux_gui/resources/img/flags/large/lu.jpg b/app/resources/img/flags/large/lu.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lu.jpg rename to app/resources/img/flags/large/lu.jpg diff --git a/linux_gui/resources/img/flags/large/lv.jpg b/app/resources/img/flags/large/lv.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/lv.jpg rename to app/resources/img/flags/large/lv.jpg diff --git a/linux_gui/resources/img/flags/large/ly.jpg b/app/resources/img/flags/large/ly.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ly.jpg rename to app/resources/img/flags/large/ly.jpg diff --git a/linux_gui/resources/img/flags/large/ma.jpg b/app/resources/img/flags/large/ma.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ma.jpg rename to app/resources/img/flags/large/ma.jpg diff --git a/linux_gui/resources/img/flags/large/mc.jpg b/app/resources/img/flags/large/mc.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mc.jpg rename to app/resources/img/flags/large/mc.jpg diff --git a/linux_gui/resources/img/flags/large/md.jpg b/app/resources/img/flags/large/md.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/md.jpg rename to app/resources/img/flags/large/md.jpg diff --git a/linux_gui/resources/img/flags/large/me.jpg b/app/resources/img/flags/large/me.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/me.jpg rename to app/resources/img/flags/large/me.jpg diff --git a/linux_gui/resources/img/flags/large/mg.jpg b/app/resources/img/flags/large/mg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mg.jpg rename to app/resources/img/flags/large/mg.jpg diff --git a/linux_gui/resources/img/flags/large/mh.jpg b/app/resources/img/flags/large/mh.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mh.jpg rename to app/resources/img/flags/large/mh.jpg diff --git a/linux_gui/resources/img/flags/large/mk.jpg b/app/resources/img/flags/large/mk.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mk.jpg rename to app/resources/img/flags/large/mk.jpg diff --git a/linux_gui/resources/img/flags/large/ml.jpg b/app/resources/img/flags/large/ml.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ml.jpg rename to app/resources/img/flags/large/ml.jpg diff --git a/linux_gui/resources/img/flags/large/mm.jpg b/app/resources/img/flags/large/mm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mm.jpg rename to app/resources/img/flags/large/mm.jpg diff --git a/linux_gui/resources/img/flags/large/mn.jpg b/app/resources/img/flags/large/mn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mn.jpg rename to app/resources/img/flags/large/mn.jpg diff --git a/linux_gui/resources/img/flags/large/mr.jpg b/app/resources/img/flags/large/mr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mr.jpg rename to app/resources/img/flags/large/mr.jpg diff --git a/linux_gui/resources/img/flags/large/mt.jpg b/app/resources/img/flags/large/mt.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mt.jpg rename to app/resources/img/flags/large/mt.jpg diff --git a/linux_gui/resources/img/flags/large/mu.jpg b/app/resources/img/flags/large/mu.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mu.jpg rename to app/resources/img/flags/large/mu.jpg diff --git a/linux_gui/resources/img/flags/large/mv.jpg b/app/resources/img/flags/large/mv.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mv.jpg rename to app/resources/img/flags/large/mv.jpg diff --git a/linux_gui/resources/img/flags/large/mw.jpg b/app/resources/img/flags/large/mw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mw.jpg rename to app/resources/img/flags/large/mw.jpg diff --git a/linux_gui/resources/img/flags/large/mx.jpg b/app/resources/img/flags/large/mx.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mx.jpg rename to app/resources/img/flags/large/mx.jpg diff --git a/linux_gui/resources/img/flags/large/my.jpg b/app/resources/img/flags/large/my.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/my.jpg rename to app/resources/img/flags/large/my.jpg diff --git a/linux_gui/resources/img/flags/large/mz.jpg b/app/resources/img/flags/large/mz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/mz.jpg rename to app/resources/img/flags/large/mz.jpg diff --git a/linux_gui/resources/img/flags/large/na.jpg b/app/resources/img/flags/large/na.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/na.jpg rename to app/resources/img/flags/large/na.jpg diff --git a/linux_gui/resources/img/flags/large/ne.jpg b/app/resources/img/flags/large/ne.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ne.jpg rename to app/resources/img/flags/large/ne.jpg diff --git a/linux_gui/resources/img/flags/large/ng.jpg b/app/resources/img/flags/large/ng.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ng.jpg rename to app/resources/img/flags/large/ng.jpg diff --git a/linux_gui/resources/img/flags/large/ni.jpg b/app/resources/img/flags/large/ni.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ni.jpg rename to app/resources/img/flags/large/ni.jpg diff --git a/linux_gui/resources/img/flags/large/nl.jpg b/app/resources/img/flags/large/nl.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/nl.jpg rename to app/resources/img/flags/large/nl.jpg diff --git a/linux_gui/resources/img/flags/large/no.jpg b/app/resources/img/flags/large/no.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/no.jpg rename to app/resources/img/flags/large/no.jpg diff --git a/linux_gui/resources/img/flags/large/np.jpg b/app/resources/img/flags/large/np.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/np.jpg rename to app/resources/img/flags/large/np.jpg diff --git a/linux_gui/resources/img/flags/large/nr.jpg b/app/resources/img/flags/large/nr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/nr.jpg rename to app/resources/img/flags/large/nr.jpg diff --git a/linux_gui/resources/img/flags/large/nu.jpg b/app/resources/img/flags/large/nu.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/nu.jpg rename to app/resources/img/flags/large/nu.jpg diff --git a/linux_gui/resources/img/flags/large/nz.jpg b/app/resources/img/flags/large/nz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/nz.jpg rename to app/resources/img/flags/large/nz.jpg diff --git a/linux_gui/resources/img/flags/large/om.jpg b/app/resources/img/flags/large/om.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/om.jpg rename to app/resources/img/flags/large/om.jpg diff --git a/linux_gui/resources/img/flags/large/pa.jpg b/app/resources/img/flags/large/pa.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pa.jpg rename to app/resources/img/flags/large/pa.jpg diff --git a/linux_gui/resources/img/flags/large/pe.jpg b/app/resources/img/flags/large/pe.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pe.jpg rename to app/resources/img/flags/large/pe.jpg diff --git a/linux_gui/resources/img/flags/large/pg.jpg b/app/resources/img/flags/large/pg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pg.jpg rename to app/resources/img/flags/large/pg.jpg diff --git a/linux_gui/resources/img/flags/large/ph.jpg b/app/resources/img/flags/large/ph.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ph.jpg rename to app/resources/img/flags/large/ph.jpg diff --git a/linux_gui/resources/img/flags/large/pk.jpg b/app/resources/img/flags/large/pk.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pk.jpg rename to app/resources/img/flags/large/pk.jpg diff --git a/linux_gui/resources/img/flags/large/pl.jpg b/app/resources/img/flags/large/pl.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pl.jpg rename to app/resources/img/flags/large/pl.jpg diff --git a/linux_gui/resources/img/flags/large/ps.jpg b/app/resources/img/flags/large/ps.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ps.jpg rename to app/resources/img/flags/large/ps.jpg diff --git a/linux_gui/resources/img/flags/large/pt.jpg b/app/resources/img/flags/large/pt.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pt.jpg rename to app/resources/img/flags/large/pt.jpg diff --git a/linux_gui/resources/img/flags/large/pw.jpg b/app/resources/img/flags/large/pw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/pw.jpg rename to app/resources/img/flags/large/pw.jpg diff --git a/linux_gui/resources/img/flags/large/py.jpg b/app/resources/img/flags/large/py.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/py.jpg rename to app/resources/img/flags/large/py.jpg diff --git a/linux_gui/resources/img/flags/large/qa.jpg b/app/resources/img/flags/large/qa.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/qa.jpg rename to app/resources/img/flags/large/qa.jpg diff --git a/linux_gui/resources/img/flags/large/ro.jpg b/app/resources/img/flags/large/ro.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ro.jpg rename to app/resources/img/flags/large/ro.jpg diff --git a/linux_gui/resources/img/flags/large/rs.jpg b/app/resources/img/flags/large/rs.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/rs.jpg rename to app/resources/img/flags/large/rs.jpg diff --git a/linux_gui/resources/img/flags/large/ru.jpg b/app/resources/img/flags/large/ru.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ru.jpg rename to app/resources/img/flags/large/ru.jpg diff --git a/linux_gui/resources/img/flags/large/rw.jpg b/app/resources/img/flags/large/rw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/rw.jpg rename to app/resources/img/flags/large/rw.jpg diff --git a/linux_gui/resources/img/flags/large/sa.jpg b/app/resources/img/flags/large/sa.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sa.jpg rename to app/resources/img/flags/large/sa.jpg diff --git a/linux_gui/resources/img/flags/large/sb.jpg b/app/resources/img/flags/large/sb.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sb.jpg rename to app/resources/img/flags/large/sb.jpg diff --git a/linux_gui/resources/img/flags/large/sc.jpg b/app/resources/img/flags/large/sc.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sc.jpg rename to app/resources/img/flags/large/sc.jpg diff --git a/linux_gui/resources/img/flags/large/sd.jpg b/app/resources/img/flags/large/sd.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sd.jpg rename to app/resources/img/flags/large/sd.jpg diff --git a/linux_gui/resources/img/flags/large/se.jpg b/app/resources/img/flags/large/se.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/se.jpg rename to app/resources/img/flags/large/se.jpg diff --git a/linux_gui/resources/img/flags/large/sg.jpg b/app/resources/img/flags/large/sg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sg.jpg rename to app/resources/img/flags/large/sg.jpg diff --git a/linux_gui/resources/img/flags/large/si.jpg b/app/resources/img/flags/large/si.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/si.jpg rename to app/resources/img/flags/large/si.jpg diff --git a/linux_gui/resources/img/flags/large/sk.jpg b/app/resources/img/flags/large/sk.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sk.jpg rename to app/resources/img/flags/large/sk.jpg diff --git a/linux_gui/resources/img/flags/large/sl.jpg b/app/resources/img/flags/large/sl.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sl.jpg rename to app/resources/img/flags/large/sl.jpg diff --git a/linux_gui/resources/img/flags/large/sm.jpg b/app/resources/img/flags/large/sm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sm.jpg rename to app/resources/img/flags/large/sm.jpg diff --git a/linux_gui/resources/img/flags/large/sn.jpg b/app/resources/img/flags/large/sn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sn.jpg rename to app/resources/img/flags/large/sn.jpg diff --git a/linux_gui/resources/img/flags/large/so.jpg b/app/resources/img/flags/large/so.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/so.jpg rename to app/resources/img/flags/large/so.jpg diff --git a/linux_gui/resources/img/flags/large/sr.jpg b/app/resources/img/flags/large/sr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sr.jpg rename to app/resources/img/flags/large/sr.jpg diff --git a/linux_gui/resources/img/flags/large/ss.jpg b/app/resources/img/flags/large/ss.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ss.jpg rename to app/resources/img/flags/large/ss.jpg diff --git a/linux_gui/resources/img/flags/large/st.jpg b/app/resources/img/flags/large/st.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/st.jpg rename to app/resources/img/flags/large/st.jpg diff --git a/linux_gui/resources/img/flags/large/sv.jpg b/app/resources/img/flags/large/sv.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sv.jpg rename to app/resources/img/flags/large/sv.jpg diff --git a/linux_gui/resources/img/flags/large/sy.jpg b/app/resources/img/flags/large/sy.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sy.jpg rename to app/resources/img/flags/large/sy.jpg diff --git a/linux_gui/resources/img/flags/large/sz.jpg b/app/resources/img/flags/large/sz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/sz.jpg rename to app/resources/img/flags/large/sz.jpg diff --git a/linux_gui/resources/img/flags/large/td.jpg b/app/resources/img/flags/large/td.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/td.jpg rename to app/resources/img/flags/large/td.jpg diff --git a/linux_gui/resources/img/flags/large/tg.jpg b/app/resources/img/flags/large/tg.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tg.jpg rename to app/resources/img/flags/large/tg.jpg diff --git a/linux_gui/resources/img/flags/large/th.jpg b/app/resources/img/flags/large/th.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/th.jpg rename to app/resources/img/flags/large/th.jpg diff --git a/linux_gui/resources/img/flags/large/tj.jpg b/app/resources/img/flags/large/tj.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tj.jpg rename to app/resources/img/flags/large/tj.jpg diff --git a/linux_gui/resources/img/flags/large/tl.jpg b/app/resources/img/flags/large/tl.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tl.jpg rename to app/resources/img/flags/large/tl.jpg diff --git a/linux_gui/resources/img/flags/large/tm.jpg b/app/resources/img/flags/large/tm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tm.jpg rename to app/resources/img/flags/large/tm.jpg diff --git a/linux_gui/resources/img/flags/large/tn.jpg b/app/resources/img/flags/large/tn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tn.jpg rename to app/resources/img/flags/large/tn.jpg diff --git a/linux_gui/resources/img/flags/large/to.jpg b/app/resources/img/flags/large/to.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/to.jpg rename to app/resources/img/flags/large/to.jpg diff --git a/linux_gui/resources/img/flags/large/tr.jpg b/app/resources/img/flags/large/tr.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tr.jpg rename to app/resources/img/flags/large/tr.jpg diff --git a/linux_gui/resources/img/flags/large/tt.jpg b/app/resources/img/flags/large/tt.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tt.jpg rename to app/resources/img/flags/large/tt.jpg diff --git a/linux_gui/resources/img/flags/large/tv.jpg b/app/resources/img/flags/large/tv.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tv.jpg rename to app/resources/img/flags/large/tv.jpg diff --git a/linux_gui/resources/img/flags/large/tw.jpg b/app/resources/img/flags/large/tw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tw.jpg rename to app/resources/img/flags/large/tw.jpg diff --git a/linux_gui/resources/img/flags/large/tz.jpg b/app/resources/img/flags/large/tz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/tz.jpg rename to app/resources/img/flags/large/tz.jpg diff --git a/linux_gui/resources/img/flags/large/ua.jpg b/app/resources/img/flags/large/ua.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ua.jpg rename to app/resources/img/flags/large/ua.jpg diff --git a/linux_gui/resources/img/flags/large/ug.jpg b/app/resources/img/flags/large/ug.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ug.jpg rename to app/resources/img/flags/large/ug.jpg diff --git a/linux_gui/resources/img/flags/large/us.jpg b/app/resources/img/flags/large/us.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/us.jpg rename to app/resources/img/flags/large/us.jpg diff --git a/linux_gui/resources/img/flags/large/uy.jpg b/app/resources/img/flags/large/uy.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/uy.jpg rename to app/resources/img/flags/large/uy.jpg diff --git a/linux_gui/resources/img/flags/large/uz.jpg b/app/resources/img/flags/large/uz.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/uz.jpg rename to app/resources/img/flags/large/uz.jpg diff --git a/linux_gui/resources/img/flags/large/va.jpg b/app/resources/img/flags/large/va.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/va.jpg rename to app/resources/img/flags/large/va.jpg diff --git a/linux_gui/resources/img/flags/large/vc.jpg b/app/resources/img/flags/large/vc.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/vc.jpg rename to app/resources/img/flags/large/vc.jpg diff --git a/linux_gui/resources/img/flags/large/ve.jpg b/app/resources/img/flags/large/ve.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ve.jpg rename to app/resources/img/flags/large/ve.jpg diff --git a/linux_gui/resources/img/flags/large/vn.jpg b/app/resources/img/flags/large/vn.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/vn.jpg rename to app/resources/img/flags/large/vn.jpg diff --git a/linux_gui/resources/img/flags/large/vu.jpg b/app/resources/img/flags/large/vu.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/vu.jpg rename to app/resources/img/flags/large/vu.jpg diff --git a/linux_gui/resources/img/flags/large/ws.jpg b/app/resources/img/flags/large/ws.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ws.jpg rename to app/resources/img/flags/large/ws.jpg diff --git a/linux_gui/resources/img/flags/large/xk.jpg b/app/resources/img/flags/large/xk.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/xk.jpg rename to app/resources/img/flags/large/xk.jpg diff --git a/linux_gui/resources/img/flags/large/ye.jpg b/app/resources/img/flags/large/ye.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/ye.jpg rename to app/resources/img/flags/large/ye.jpg diff --git a/linux_gui/resources/img/flags/large/za.jpg b/app/resources/img/flags/large/za.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/za.jpg rename to app/resources/img/flags/large/za.jpg diff --git a/linux_gui/resources/img/flags/large/zm.jpg b/app/resources/img/flags/large/zm.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/zm.jpg rename to app/resources/img/flags/large/zm.jpg diff --git a/linux_gui/resources/img/flags/large/zw.jpg b/app/resources/img/flags/large/zw.jpg similarity index 100% rename from linux_gui/resources/img/flags/large/zw.jpg rename to app/resources/img/flags/large/zw.jpg diff --git a/linux_gui/resources/img/flags/small/Afghanistan.png b/app/resources/img/flags/small/Afghanistan.png similarity index 100% rename from linux_gui/resources/img/flags/small/Afghanistan.png rename to app/resources/img/flags/small/Afghanistan.png diff --git a/linux_gui/resources/img/flags/small/Albania.png b/app/resources/img/flags/small/Albania.png similarity index 100% rename from linux_gui/resources/img/flags/small/Albania.png rename to app/resources/img/flags/small/Albania.png diff --git a/linux_gui/resources/img/flags/small/Algeria.png b/app/resources/img/flags/small/Algeria.png similarity index 100% rename from linux_gui/resources/img/flags/small/Algeria.png rename to app/resources/img/flags/small/Algeria.png diff --git a/linux_gui/resources/img/flags/small/Andorra.png b/app/resources/img/flags/small/Andorra.png similarity index 100% rename from linux_gui/resources/img/flags/small/Andorra.png rename to app/resources/img/flags/small/Andorra.png diff --git a/linux_gui/resources/img/flags/small/Argentina.png b/app/resources/img/flags/small/Argentina.png similarity index 100% rename from linux_gui/resources/img/flags/small/Argentina.png rename to app/resources/img/flags/small/Argentina.png diff --git a/linux_gui/resources/img/flags/small/Armenia.png b/app/resources/img/flags/small/Armenia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Armenia.png rename to app/resources/img/flags/small/Armenia.png diff --git a/linux_gui/resources/img/flags/small/Australia.png b/app/resources/img/flags/small/Australia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Australia.png rename to app/resources/img/flags/small/Australia.png diff --git a/linux_gui/resources/img/flags/small/Austria.png b/app/resources/img/flags/small/Austria.png similarity index 100% rename from linux_gui/resources/img/flags/small/Austria.png rename to app/resources/img/flags/small/Austria.png diff --git a/linux_gui/resources/img/flags/small/Azerbaijan.png b/app/resources/img/flags/small/Azerbaijan.png similarity index 100% rename from linux_gui/resources/img/flags/small/Azerbaijan.png rename to app/resources/img/flags/small/Azerbaijan.png diff --git a/linux_gui/resources/img/flags/small/Bahamas.png b/app/resources/img/flags/small/Bahamas.png similarity index 100% rename from linux_gui/resources/img/flags/small/Bahamas.png rename to app/resources/img/flags/small/Bahamas.png diff --git a/linux_gui/resources/img/flags/small/Bangladesh.png b/app/resources/img/flags/small/Bangladesh.png similarity index 100% rename from linux_gui/resources/img/flags/small/Bangladesh.png rename to app/resources/img/flags/small/Bangladesh.png diff --git a/linux_gui/resources/img/flags/small/Belarus.png b/app/resources/img/flags/small/Belarus.png similarity index 100% rename from linux_gui/resources/img/flags/small/Belarus.png rename to app/resources/img/flags/small/Belarus.png diff --git a/linux_gui/resources/img/flags/small/Belgium.png b/app/resources/img/flags/small/Belgium.png similarity index 100% rename from linux_gui/resources/img/flags/small/Belgium.png rename to app/resources/img/flags/small/Belgium.png diff --git a/linux_gui/resources/img/flags/small/Bosnia and Herzegovina.png b/app/resources/img/flags/small/Bosnia and Herzegovina.png similarity index 100% rename from linux_gui/resources/img/flags/small/Bosnia and Herzegovina.png rename to app/resources/img/flags/small/Bosnia and Herzegovina.png diff --git a/linux_gui/resources/img/flags/small/Brazil.png b/app/resources/img/flags/small/Brazil.png similarity index 100% rename from linux_gui/resources/img/flags/small/Brazil.png rename to app/resources/img/flags/small/Brazil.png diff --git a/linux_gui/resources/img/flags/small/Bulgaria.png b/app/resources/img/flags/small/Bulgaria.png similarity index 100% rename from linux_gui/resources/img/flags/small/Bulgaria.png rename to app/resources/img/flags/small/Bulgaria.png diff --git a/linux_gui/resources/img/flags/small/Cameroon.png b/app/resources/img/flags/small/Cameroon.png similarity index 100% rename from linux_gui/resources/img/flags/small/Cameroon.png rename to app/resources/img/flags/small/Cameroon.png diff --git a/linux_gui/resources/img/flags/small/Canada.png b/app/resources/img/flags/small/Canada.png similarity index 100% rename from linux_gui/resources/img/flags/small/Canada.png rename to app/resources/img/flags/small/Canada.png diff --git a/linux_gui/resources/img/flags/small/Chile.png b/app/resources/img/flags/small/Chile.png similarity index 100% rename from linux_gui/resources/img/flags/small/Chile.png rename to app/resources/img/flags/small/Chile.png diff --git a/linux_gui/resources/img/flags/small/China.png b/app/resources/img/flags/small/China.png similarity index 100% rename from linux_gui/resources/img/flags/small/China.png rename to app/resources/img/flags/small/China.png diff --git a/linux_gui/resources/img/flags/small/Colombia.png b/app/resources/img/flags/small/Colombia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Colombia.png rename to app/resources/img/flags/small/Colombia.png diff --git a/linux_gui/resources/img/flags/small/Costa Rica.png b/app/resources/img/flags/small/Costa Rica.png similarity index 100% rename from linux_gui/resources/img/flags/small/Costa Rica.png rename to app/resources/img/flags/small/Costa Rica.png diff --git a/linux_gui/resources/img/flags/small/Croatia.png b/app/resources/img/flags/small/Croatia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Croatia.png rename to app/resources/img/flags/small/Croatia.png diff --git a/linux_gui/resources/img/flags/small/Cuba.png b/app/resources/img/flags/small/Cuba.png similarity index 100% rename from linux_gui/resources/img/flags/small/Cuba.png rename to app/resources/img/flags/small/Cuba.png diff --git a/linux_gui/resources/img/flags/small/Cyprus.png b/app/resources/img/flags/small/Cyprus.png similarity index 100% rename from linux_gui/resources/img/flags/small/Cyprus.png rename to app/resources/img/flags/small/Cyprus.png diff --git a/linux_gui/resources/img/flags/small/Czech Republic.png b/app/resources/img/flags/small/Czech Republic.png similarity index 100% rename from linux_gui/resources/img/flags/small/Czech Republic.png rename to app/resources/img/flags/small/Czech Republic.png diff --git a/linux_gui/resources/img/flags/small/Denmark.png b/app/resources/img/flags/small/Denmark.png similarity index 100% rename from linux_gui/resources/img/flags/small/Denmark.png rename to app/resources/img/flags/small/Denmark.png diff --git a/linux_gui/resources/img/flags/small/Ecuador.png b/app/resources/img/flags/small/Ecuador.png similarity index 100% rename from linux_gui/resources/img/flags/small/Ecuador.png rename to app/resources/img/flags/small/Ecuador.png diff --git a/linux_gui/resources/img/flags/small/Egypt.png b/app/resources/img/flags/small/Egypt.png similarity index 100% rename from linux_gui/resources/img/flags/small/Egypt.png rename to app/resources/img/flags/small/Egypt.png diff --git a/linux_gui/resources/img/flags/small/Estonia.png b/app/resources/img/flags/small/Estonia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Estonia.png rename to app/resources/img/flags/small/Estonia.png diff --git a/linux_gui/resources/img/flags/small/Finland.png b/app/resources/img/flags/small/Finland.png similarity index 100% rename from linux_gui/resources/img/flags/small/Finland.png rename to app/resources/img/flags/small/Finland.png diff --git a/linux_gui/resources/img/flags/small/France.png b/app/resources/img/flags/small/France.png similarity index 100% rename from linux_gui/resources/img/flags/small/France.png rename to app/resources/img/flags/small/France.png diff --git a/linux_gui/resources/img/flags/small/Georgia.png b/app/resources/img/flags/small/Georgia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Georgia.png rename to app/resources/img/flags/small/Georgia.png diff --git a/linux_gui/resources/img/flags/small/Germany.png b/app/resources/img/flags/small/Germany.png similarity index 100% rename from linux_gui/resources/img/flags/small/Germany.png rename to app/resources/img/flags/small/Germany.png diff --git a/linux_gui/resources/img/flags/small/Greece.png b/app/resources/img/flags/small/Greece.png similarity index 100% rename from linux_gui/resources/img/flags/small/Greece.png rename to app/resources/img/flags/small/Greece.png diff --git a/linux_gui/resources/img/flags/small/Hong Kong.png b/app/resources/img/flags/small/Hong Kong.png similarity index 100% rename from linux_gui/resources/img/flags/small/Hong Kong.png rename to app/resources/img/flags/small/Hong Kong.png diff --git a/linux_gui/resources/img/flags/small/Hungary.png b/app/resources/img/flags/small/Hungary.png similarity index 100% rename from linux_gui/resources/img/flags/small/Hungary.png rename to app/resources/img/flags/small/Hungary.png diff --git a/linux_gui/resources/img/flags/small/Iceland.png b/app/resources/img/flags/small/Iceland.png similarity index 100% rename from linux_gui/resources/img/flags/small/Iceland.png rename to app/resources/img/flags/small/Iceland.png diff --git a/linux_gui/resources/img/flags/small/India.png b/app/resources/img/flags/small/India.png similarity index 100% rename from linux_gui/resources/img/flags/small/India.png rename to app/resources/img/flags/small/India.png diff --git a/linux_gui/resources/img/flags/small/Indonesia.png b/app/resources/img/flags/small/Indonesia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Indonesia.png rename to app/resources/img/flags/small/Indonesia.png diff --git a/linux_gui/resources/img/flags/small/Ireland.png b/app/resources/img/flags/small/Ireland.png similarity index 100% rename from linux_gui/resources/img/flags/small/Ireland.png rename to app/resources/img/flags/small/Ireland.png diff --git a/linux_gui/resources/img/flags/small/Israel.png b/app/resources/img/flags/small/Israel.png similarity index 100% rename from linux_gui/resources/img/flags/small/Israel.png rename to app/resources/img/flags/small/Israel.png diff --git a/linux_gui/resources/img/flags/small/Italy.png b/app/resources/img/flags/small/Italy.png similarity index 100% rename from linux_gui/resources/img/flags/small/Italy.png rename to app/resources/img/flags/small/Italy.png diff --git a/linux_gui/resources/img/flags/small/Jamaica.png b/app/resources/img/flags/small/Jamaica.png similarity index 100% rename from linux_gui/resources/img/flags/small/Jamaica.png rename to app/resources/img/flags/small/Jamaica.png diff --git a/linux_gui/resources/img/flags/small/Japan.png b/app/resources/img/flags/small/Japan.png similarity index 100% rename from linux_gui/resources/img/flags/small/Japan.png rename to app/resources/img/flags/small/Japan.png diff --git a/linux_gui/resources/img/flags/small/Latvia.png b/app/resources/img/flags/small/Latvia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Latvia.png rename to app/resources/img/flags/small/Latvia.png diff --git a/linux_gui/resources/img/flags/small/Libya.png b/app/resources/img/flags/small/Libya.png similarity index 100% rename from linux_gui/resources/img/flags/small/Libya.png rename to app/resources/img/flags/small/Libya.png diff --git a/linux_gui/resources/img/flags/small/Lithuania.png b/app/resources/img/flags/small/Lithuania.png similarity index 100% rename from linux_gui/resources/img/flags/small/Lithuania.png rename to app/resources/img/flags/small/Lithuania.png diff --git a/linux_gui/resources/img/flags/small/Luxembourg.png b/app/resources/img/flags/small/Luxembourg.png similarity index 100% rename from linux_gui/resources/img/flags/small/Luxembourg.png rename to app/resources/img/flags/small/Luxembourg.png diff --git a/linux_gui/resources/img/flags/small/Macedonia, Republic of.png b/app/resources/img/flags/small/Macedonia, Republic of.png similarity index 100% rename from linux_gui/resources/img/flags/small/Macedonia, Republic of.png rename to app/resources/img/flags/small/Macedonia, Republic of.png diff --git a/linux_gui/resources/img/flags/small/Malaysia.png b/app/resources/img/flags/small/Malaysia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Malaysia.png rename to app/resources/img/flags/small/Malaysia.png diff --git a/linux_gui/resources/img/flags/small/Mexico.png b/app/resources/img/flags/small/Mexico.png similarity index 100% rename from linux_gui/resources/img/flags/small/Mexico.png rename to app/resources/img/flags/small/Mexico.png diff --git a/linux_gui/resources/img/flags/small/Moldova.png b/app/resources/img/flags/small/Moldova.png similarity index 100% rename from linux_gui/resources/img/flags/small/Moldova.png rename to app/resources/img/flags/small/Moldova.png diff --git a/linux_gui/resources/img/flags/small/Myanmar.png b/app/resources/img/flags/small/Myanmar.png similarity index 100% rename from linux_gui/resources/img/flags/small/Myanmar.png rename to app/resources/img/flags/small/Myanmar.png diff --git a/linux_gui/resources/img/flags/small/Netherlands.png b/app/resources/img/flags/small/Netherlands.png similarity index 100% rename from linux_gui/resources/img/flags/small/Netherlands.png rename to app/resources/img/flags/small/Netherlands.png diff --git a/linux_gui/resources/img/flags/small/New Zealand.png b/app/resources/img/flags/small/New Zealand.png similarity index 100% rename from linux_gui/resources/img/flags/small/New Zealand.png rename to app/resources/img/flags/small/New Zealand.png diff --git a/linux_gui/resources/img/flags/small/Norway.png b/app/resources/img/flags/small/Norway.png similarity index 100% rename from linux_gui/resources/img/flags/small/Norway.png rename to app/resources/img/flags/small/Norway.png diff --git a/linux_gui/resources/img/flags/small/Philippines.png b/app/resources/img/flags/small/Philippines.png similarity index 100% rename from linux_gui/resources/img/flags/small/Philippines.png rename to app/resources/img/flags/small/Philippines.png diff --git a/linux_gui/resources/img/flags/small/Poland.png b/app/resources/img/flags/small/Poland.png similarity index 100% rename from linux_gui/resources/img/flags/small/Poland.png rename to app/resources/img/flags/small/Poland.png diff --git a/linux_gui/resources/img/flags/small/Portugal.png b/app/resources/img/flags/small/Portugal.png similarity index 100% rename from linux_gui/resources/img/flags/small/Portugal.png rename to app/resources/img/flags/small/Portugal.png diff --git a/linux_gui/resources/img/flags/small/Romania.png b/app/resources/img/flags/small/Romania.png similarity index 100% rename from linux_gui/resources/img/flags/small/Romania.png rename to app/resources/img/flags/small/Romania.png diff --git a/linux_gui/resources/img/flags/small/Russia.png b/app/resources/img/flags/small/Russia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Russia.png rename to app/resources/img/flags/small/Russia.png diff --git a/linux_gui/resources/img/flags/small/Serbia.png b/app/resources/img/flags/small/Serbia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Serbia.png rename to app/resources/img/flags/small/Serbia.png diff --git a/linux_gui/resources/img/flags/small/Singapore.png b/app/resources/img/flags/small/Singapore.png similarity index 100% rename from linux_gui/resources/img/flags/small/Singapore.png rename to app/resources/img/flags/small/Singapore.png diff --git a/linux_gui/resources/img/flags/small/Slovakia.png b/app/resources/img/flags/small/Slovakia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Slovakia.png rename to app/resources/img/flags/small/Slovakia.png diff --git a/linux_gui/resources/img/flags/small/Slovenia.png b/app/resources/img/flags/small/Slovenia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Slovenia.png rename to app/resources/img/flags/small/Slovenia.png diff --git a/linux_gui/resources/img/flags/small/South Africa.png b/app/resources/img/flags/small/South Africa.png similarity index 100% rename from linux_gui/resources/img/flags/small/South Africa.png rename to app/resources/img/flags/small/South Africa.png diff --git a/linux_gui/resources/img/flags/small/South Korea.png b/app/resources/img/flags/small/South Korea.png similarity index 100% rename from linux_gui/resources/img/flags/small/South Korea.png rename to app/resources/img/flags/small/South Korea.png diff --git a/linux_gui/resources/img/flags/small/Spain.png b/app/resources/img/flags/small/Spain.png similarity index 100% rename from linux_gui/resources/img/flags/small/Spain.png rename to app/resources/img/flags/small/Spain.png diff --git a/linux_gui/resources/img/flags/small/Sweden.png b/app/resources/img/flags/small/Sweden.png similarity index 100% rename from linux_gui/resources/img/flags/small/Sweden.png rename to app/resources/img/flags/small/Sweden.png diff --git a/linux_gui/resources/img/flags/small/Switzerland.png b/app/resources/img/flags/small/Switzerland.png similarity index 100% rename from linux_gui/resources/img/flags/small/Switzerland.png rename to app/resources/img/flags/small/Switzerland.png diff --git a/linux_gui/resources/img/flags/small/Taiwan.png b/app/resources/img/flags/small/Taiwan.png similarity index 100% rename from linux_gui/resources/img/flags/small/Taiwan.png rename to app/resources/img/flags/small/Taiwan.png diff --git a/linux_gui/resources/img/flags/small/Thailand.png b/app/resources/img/flags/small/Thailand.png similarity index 100% rename from linux_gui/resources/img/flags/small/Thailand.png rename to app/resources/img/flags/small/Thailand.png diff --git a/linux_gui/resources/img/flags/small/Tunisia.png b/app/resources/img/flags/small/Tunisia.png similarity index 100% rename from linux_gui/resources/img/flags/small/Tunisia.png rename to app/resources/img/flags/small/Tunisia.png diff --git a/linux_gui/resources/img/flags/small/Turkey.png b/app/resources/img/flags/small/Turkey.png similarity index 100% rename from linux_gui/resources/img/flags/small/Turkey.png rename to app/resources/img/flags/small/Turkey.png diff --git a/linux_gui/resources/img/flags/small/Ukraine.png b/app/resources/img/flags/small/Ukraine.png similarity index 100% rename from linux_gui/resources/img/flags/small/Ukraine.png rename to app/resources/img/flags/small/Ukraine.png diff --git a/linux_gui/resources/img/flags/small/United Arab Emirates.png b/app/resources/img/flags/small/United Arab Emirates.png similarity index 100% rename from linux_gui/resources/img/flags/small/United Arab Emirates.png rename to app/resources/img/flags/small/United Arab Emirates.png diff --git a/linux_gui/resources/img/flags/small/United Kingdom.png b/app/resources/img/flags/small/United Kingdom.png similarity index 100% rename from linux_gui/resources/img/flags/small/United Kingdom.png rename to app/resources/img/flags/small/United Kingdom.png diff --git a/linux_gui/resources/img/flags/small/United States.png b/app/resources/img/flags/small/United States.png similarity index 100% rename from linux_gui/resources/img/flags/small/United States.png rename to app/resources/img/flags/small/United States.png diff --git a/linux_gui/resources/img/flags/small/Unknown.png b/app/resources/img/flags/small/Unknown.png similarity index 100% rename from linux_gui/resources/img/flags/small/Unknown.png rename to app/resources/img/flags/small/Unknown.png diff --git a/linux_gui/resources/img/flags/small/Viet Nam.png b/app/resources/img/flags/small/Viet Nam.png similarity index 100% rename from linux_gui/resources/img/flags/small/Viet Nam.png rename to app/resources/img/flags/small/Viet Nam.png diff --git a/linux_gui/resources/img/flags/small/__init__.py b/app/resources/img/flags/small/__init__.py similarity index 100% rename from linux_gui/resources/img/flags/small/__init__.py rename to app/resources/img/flags/small/__init__.py diff --git a/linux_gui/resources/img/gui/dashboard.png b/app/resources/img/gui/dashboard.png similarity index 100% rename from linux_gui/resources/img/gui/dashboard.png rename to app/resources/img/gui/dashboard.png diff --git a/linux_gui/resources/img/gui/diagnose_tool.png b/app/resources/img/gui/diagnose_tool.png similarity index 100% rename from linux_gui/resources/img/gui/diagnose_tool.png rename to app/resources/img/gui/diagnose_tool.png diff --git a/linux_gui/resources/img/gui/intialize_profile.png b/app/resources/img/gui/intialize_profile.png similarity index 100% rename from linux_gui/resources/img/gui/intialize_profile.png rename to app/resources/img/gui/intialize_profile.png diff --git a/linux_gui/resources/img/gui/settings_advanced.png b/app/resources/img/gui/settings_advanced.png similarity index 100% rename from linux_gui/resources/img/gui/settings_advanced.png rename to app/resources/img/gui/settings_advanced.png diff --git a/linux_gui/resources/img/gui/settings_connection.png b/app/resources/img/gui/settings_connection.png similarity index 100% rename from linux_gui/resources/img/gui/settings_connection.png rename to app/resources/img/gui/settings_connection.png diff --git a/linux_gui/resources/img/gui/settings_general.png b/app/resources/img/gui/settings_general.png similarity index 100% rename from linux_gui/resources/img/gui/settings_general.png rename to app/resources/img/gui/settings_general.png diff --git a/linux_gui/resources/img/gui/settings_tray.png b/app/resources/img/gui/settings_tray.png similarity index 100% rename from linux_gui/resources/img/gui/settings_tray.png rename to app/resources/img/gui/settings_tray.png diff --git a/linux_gui/resources/img/logo/__init__.py b/app/resources/img/logo/__init__.py similarity index 100% rename from linux_gui/resources/img/logo/__init__.py rename to app/resources/img/logo/__init__.py diff --git a/linux_gui/resources/img/logo/protonvpn-logo-white.png b/app/resources/img/logo/protonvpn-logo-white.png similarity index 100% rename from linux_gui/resources/img/logo/protonvpn-logo-white.png rename to app/resources/img/logo/protonvpn-logo-white.png diff --git a/linux_gui/resources/img/logo/protonvpn_logo.png b/app/resources/img/logo/protonvpn_logo.png similarity index 100% rename from linux_gui/resources/img/logo/protonvpn_logo.png rename to app/resources/img/logo/protonvpn_logo.png diff --git a/linux_gui/resources/img/logo/protonvpn_logo_alt.png b/app/resources/img/logo/protonvpn_logo_alt.png similarity index 100% rename from linux_gui/resources/img/logo/protonvpn_logo_alt.png rename to app/resources/img/logo/protonvpn_logo_alt.png diff --git a/linux_gui/resources/img/logo/protonvpn_logo_full.png b/app/resources/img/logo/protonvpn_logo_full.png similarity index 100% rename from linux_gui/resources/img/logo/protonvpn_logo_full.png rename to app/resources/img/logo/protonvpn_logo_full.png diff --git a/linux_gui/resources/img/logo/protonvpn_sign_green.png b/app/resources/img/logo/protonvpn_sign_green.png similarity index 100% rename from linux_gui/resources/img/logo/protonvpn_sign_green.png rename to app/resources/img/logo/protonvpn_sign_green.png diff --git a/linux_gui/resources/img/protonvpn_gui_banner.png b/app/resources/img/protonvpn_gui_banner.png similarity index 100% rename from linux_gui/resources/img/protonvpn_gui_banner.png rename to app/resources/img/protonvpn_gui_banner.png diff --git a/linux_gui/resources/img/utils/__init__.py b/app/resources/img/utils/__init__.py similarity index 100% rename from linux_gui/resources/img/utils/__init__.py rename to app/resources/img/utils/__init__.py diff --git a/linux_gui/resources/img/utils/bitrate-download-arrow.png b/app/resources/img/utils/bitrate-download-arrow.png similarity index 100% rename from linux_gui/resources/img/utils/bitrate-download-arrow.png rename to app/resources/img/utils/bitrate-download-arrow.png diff --git a/linux_gui/resources/img/utils/bitrate-upload-arrow.png b/app/resources/img/utils/bitrate-upload-arrow.png similarity index 100% rename from linux_gui/resources/img/utils/bitrate-upload-arrow.png rename to app/resources/img/utils/bitrate-upload-arrow.png diff --git a/linux_gui/resources/img/utils/fastest.png b/app/resources/img/utils/fastest.png similarity index 100% rename from linux_gui/resources/img/utils/fastest.png rename to app/resources/img/utils/fastest.png diff --git a/linux_gui/resources/img/utils/hamburger-menu-icon.png b/app/resources/img/utils/hamburger-menu-icon.png similarity index 100% rename from linux_gui/resources/img/utils/hamburger-menu-icon.png rename to app/resources/img/utils/hamburger-menu-icon.png diff --git a/linux_gui/resources/img/utils/info-green.png b/app/resources/img/utils/info-green.png similarity index 100% rename from linux_gui/resources/img/utils/info-green.png rename to app/resources/img/utils/info-green.png diff --git a/linux_gui/resources/img/utils/normal.png b/app/resources/img/utils/normal.png similarity index 100% rename from linux_gui/resources/img/utils/normal.png rename to app/resources/img/utils/normal.png diff --git a/linux_gui/resources/img/utils/p2p-arrows.png b/app/resources/img/utils/p2p-arrows.png similarity index 100% rename from linux_gui/resources/img/utils/p2p-arrows.png rename to app/resources/img/utils/p2p-arrows.png diff --git a/linux_gui/resources/img/utils/plus-server.png b/app/resources/img/utils/plus-server.png similarity index 100% rename from linux_gui/resources/img/utils/plus-server.png rename to app/resources/img/utils/plus-server.png diff --git a/linux_gui/resources/img/utils/random.png b/app/resources/img/utils/random.png similarity index 100% rename from linux_gui/resources/img/utils/random.png rename to app/resources/img/utils/random.png diff --git a/linux_gui/resources/img/utils/search.png b/app/resources/img/utils/search.png similarity index 100% rename from linux_gui/resources/img/utils/search.png rename to app/resources/img/utils/search.png diff --git a/linux_gui/resources/img/utils/tor-onion.png b/app/resources/img/utils/tor-onion.png similarity index 100% rename from linux_gui/resources/img/utils/tor-onion.png rename to app/resources/img/utils/tor-onion.png diff --git a/linux_gui/resources/styles/__init__.py b/app/resources/styles/__init__.py similarity index 100% rename from linux_gui/resources/styles/__init__.py rename to app/resources/styles/__init__.py diff --git a/linux_gui/resources/styles/common.css b/app/resources/styles/common.css similarity index 100% rename from linux_gui/resources/styles/common.css rename to app/resources/styles/common.css diff --git a/linux_gui/resources/styles/dashboard.css b/app/resources/styles/dashboard.css similarity index 100% rename from linux_gui/resources/styles/dashboard.css rename to app/resources/styles/dashboard.css diff --git a/linux_gui/resources/styles/headerbar.css b/app/resources/styles/headerbar.css similarity index 100% rename from linux_gui/resources/styles/headerbar.css rename to app/resources/styles/headerbar.css diff --git a/linux_gui/resources/styles/login.css b/app/resources/styles/login.css similarity index 100% rename from linux_gui/resources/styles/login.css rename to app/resources/styles/login.css diff --git a/linux_gui/resources/styles/main.css b/app/resources/styles/main.css similarity index 100% rename from linux_gui/resources/styles/main.css rename to app/resources/styles/main.css diff --git a/linux_gui/resources/styles/settings.css b/app/resources/styles/settings.css similarity index 100% rename from linux_gui/resources/styles/settings.css rename to app/resources/styles/settings.css diff --git a/linux_gui/resources/ui/__init__.py b/app/resources/ui/__init__.py similarity index 100% rename from linux_gui/resources/ui/__init__.py rename to app/resources/ui/__init__.py diff --git a/linux_gui/resources/ui/dashboard_window.glade b/app/resources/ui/dashboard_window.glade similarity index 100% rename from linux_gui/resources/ui/dashboard_window.glade rename to app/resources/ui/dashboard_window.glade diff --git a/linux_gui/resources/ui/login_window.glade b/app/resources/ui/login_window.glade similarity index 100% rename from linux_gui/resources/ui/login_window.glade rename to app/resources/ui/login_window.glade diff --git a/linux_gui/resources/ui/message_dialog.glade b/app/resources/ui/message_dialog.glade similarity index 100% rename from linux_gui/resources/ui/message_dialog.glade rename to app/resources/ui/message_dialog.glade diff --git a/linux_gui/resources/ui/settings_window.glade b/app/resources/ui/settings_window.glade similarity index 100% rename from linux_gui/resources/ui/settings_window.glade rename to app/resources/ui/settings_window.glade diff --git a/linux_gui/services/__init__.py b/app/services/__init__.py similarity index 100% rename from linux_gui/services/__init__.py rename to app/services/__init__.py diff --git a/linux_gui/services/dashboard_service.py b/app/services/dashboard_service.py similarity index 100% rename from linux_gui/services/dashboard_service.py rename to app/services/dashboard_service.py diff --git a/linux_gui/services/login_service.py b/app/services/login_service.py similarity index 100% rename from linux_gui/services/login_service.py rename to app/services/login_service.py diff --git a/linux_gui/services/settings_service.py b/app/services/settings_service.py similarity index 100% rename from linux_gui/services/settings_service.py rename to app/services/settings_service.py diff --git a/linux_gui/utils.py b/app/utils.py similarity index 100% rename from linux_gui/utils.py rename to app/utils.py diff --git a/linux_gui/views/__init__.py b/app/views/__init__.py similarity index 100% rename from linux_gui/views/__init__.py rename to app/views/__init__.py diff --git a/linux_gui/views/dashboard_view.py b/app/views/dashboard_view.py similarity index 100% rename from linux_gui/views/dashboard_view.py rename to app/views/dashboard_view.py diff --git a/linux_gui/views/dialog_view.py b/app/views/dialog_view.py similarity index 100% rename from linux_gui/views/dialog_view.py rename to app/views/dialog_view.py diff --git a/linux_gui/views/login_view.py b/app/views/login_view.py similarity index 100% rename from linux_gui/views/login_view.py rename to app/views/login_view.py diff --git a/linux_gui/views/settings_view.py b/app/views/settings_view.py similarity index 100% rename from linux_gui/views/settings_view.py rename to app/views/settings_view.py From 28d913d3c16f40f5cbea485d126fe3d38df9e637 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:12:25 +0200 Subject: [PATCH 22/38] Updated to main package name 'app' Also updated links to github repo --- setup.py | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/setup.py b/setup.py index 3bf4699..8ac818e 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ import os from setuptools import setup -from linux_gui.constants import VERSION +from app.constants import VERSION try: with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), 'README.md'), encoding='utf-8') as f: @@ -14,40 +14,40 @@ For further information and a usage guide, please view the project page: - https://github.com/ProtonVPN/linux-gui + https://github.com/ProtonVPN/linux-app """ setup( name="protonvpn-gui", packages=[ - "linux_gui", - "linux_gui.presenters", - "linux_gui.services", - "linux_gui.views", - "linux_gui.resources", - "linux_gui.resources.img.flags", - "linux_gui.resources.img.flags.small", - "linux_gui.resources.img.flags.large", - "linux_gui.resources.img.logo", - "linux_gui.resources.img.utils", - "linux_gui.resources.styles", - "linux_gui.resources.ui", + "app", + "app.presenters", + "app.services", + "app.views", + "app.resources", + "app.resources.img.flags", + "app.resources.img.flags.small", + "app.resources.img.flags.large", + "app.resources.img.logo", + "app.resources.img.utils", + "app.resources.styles", + "app.resources.ui", ], entry_points={ "console_scripts": [ - "protonvpn-gui = linux_gui.protonvpn_gui:init", - "protonvpn-tray = linux_gui.indicator:ProtonVPNIndicator", + "protonvpn-app = app.main:init", + "protonvpn-tray = app.indicator:ProtonVPNIndicator", ] }, include_package_data=True, version=VERSION, - description="Linux GUI client for ProtonVPN", + description="ProtonVPN Application for Linux based OSs", long_description=long_descr, long_description_content_type="text/markdown", author="Proton Technologies AG", author_email="contact@protonvpn.com", license="GPLv3", - url="https://github.com/ProtonVPN/linux-gui", + url="https://github.com/ProtonVPN/linux-app", install_requires=[ "protonvpn-cli>=2.2.2", "requests>=2.23.0", From e81215d52ad303456ad8e23f3b9dde4b95b8215a Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:12:54 +0200 Subject: [PATCH 23/38] Updated path to resources since main package name has been changed --- MANIFEST.in | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index 42a1f3b..a76ef47 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,6 @@ -include protonvpn_linux_gui/resources/ui/*.glade -include protonvpn_linux_gui/resources/styles/*.css -include protonvpn_linux_gui/resources/img/logo/*.png -include protonvpn_linux_gui/resources/img/utils/*.png -include protonvpn_linux_gui/resources/img/flags/large/*.jpg -include protonvpn_linux_gui/resources/img/flags/small/*.png \ No newline at end of file +include app/resources/ui/*.glade +include app/resources/styles/*.css +include app/resources/img/logo/*.png +include app/resources/img/utils/*.png +include app/resources/img/flags/large/*.jpg +include app/resources/img/flags/small/*.png \ No newline at end of file From 8c32b3fa25c762f38730016839155ddca4e953d1 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:13:15 +0200 Subject: [PATCH 24/38] Main entry file has been renamed --- app/{protonvpn_gui.py => main.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename app/{protonvpn_gui.py => main.py} (100%) diff --git a/app/protonvpn_gui.py b/app/main.py similarity index 100% rename from app/protonvpn_gui.py rename to app/main.py From f84f9dc5e8b115275cedcb0743ea7de045f725e5 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:38:02 +0200 Subject: [PATCH 25/38] Updated github path Created also a constant that hold the PyPi app name --- app/constants.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/constants.py b/app/constants.py index 92d2a51..146f48d 100644 --- a/app/constants.py +++ b/app/constants.py @@ -3,7 +3,9 @@ USER = getpass.getuser() VERSION = "2.1.0" -GITHUB_URL_RELEASE = "https://github.com/ProtonVPN/linux-gui/releases/latest" +APP_NAME = "protonvpn-app" +GITHUB_URL = "https://github.com/ProtonVPN/linux-app" +GITHUB_URL_RELEASE = GITHUB_URL+"/releases/latest" # GUI configurations GUI_CONFIG_DIR = os.path.join(os.path.expanduser("~{0}".format(USER)), ".pvpn-gui") From d5402fa6e9da1ae841bbdc88717abb08fe3effe1 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:38:50 +0200 Subject: [PATCH 26/38] Created variables that hold common information messages that are displayed to the user --- app/services/settings_service.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/services/settings_service.py b/app/services/settings_service.py index fe4b1f4..d931235 100644 --- a/app/services/settings_service.py +++ b/app/services/settings_service.py @@ -24,6 +24,8 @@ class SettingsService: sudo_timeout = 10 + unable_to_process_request_info_msg = "Unable to process request. Administrator access has probably not been provided.\nTo do so, please run the app from within a terminal or enable PolKit Support from within the settings window." + admin_acess_dissmissed_info_msg = "Administrator access was dismissed." def set_user_pass(self, username, password): user_pass = "'{}\n{}'".format(username, password) @@ -268,10 +270,10 @@ def enable_autoconnect(self, command): gui_logger.debug("errs: {}\nouts: {}".format(errs, outs)) if "dismissed" in errs and not timeout: - return False, "Administrator access was dismissed." + return False, admin_acess_dissmissed_info_msg if not "dismissed" in errs and timeout: - return False, "Unable to process request. Administrator access has probably not been provided.\nTo do so, please run the GUI from within a terminal or enable PolKit Support from within the settings window." + return False, unable_to_process_request_info_msg if not "created symlink" in errs.lower(): return False, "Unable to setup autoconnect!" @@ -308,7 +310,7 @@ def disable_autoconnect(self): gui_logger.debug("errs: {}\nouts: {}".format(errs, outs)) if "dismissed" in errs and not timeout: - return False, "Administrator access was dismissed." + return False, admin_acess_dissmissed_info_msg if not "dismissed" in errs and timeout: return False, "Unable to process request. Administrator access has probably not been provided." @@ -362,10 +364,10 @@ def root_command(self, command_list, enable=False): return False, "Administrator access is required, and PolKit Support is not enabled.\nPlease launch the app either from within a terminal or enable PolKit Support." if "dismissed" in errs and not timeout: - return False, "Administrator access was dismissed." + return False, admin_acess_dissmissed_info_msg if not "dismissed" in errs and timeout: - return False, "Unable to process request. Administrator access has probably not been provided.\nTo do so, please run the GUI from within a terminal or enable PolKit Support from within the settings window." + return False, unable_to_process_request_info_msg return True, return_on_sucess_message From 76b6324aad9193a4cf1ca9816a77cbb7e417ece1 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:39:08 +0200 Subject: [PATCH 27/38] Replaced by the constant app_name --- app/services/dashboard_service.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/dashboard_service.py b/app/services/dashboard_service.py index e38a228..196af74 100644 --- a/app/services/dashboard_service.py +++ b/app/services/dashboard_service.py @@ -6,7 +6,7 @@ from protonvpn_cli.utils import get_config_value, set_config_value, is_connected, get_server_value, get_country_name from ..utils import set_gui_config, get_gui_config, check_internet_conn, get_server_protocol_from_cli -from ..constants import GITHUB_URL_RELEASE, SMALL_FLAGS_BASE_PATH, FEATURES_BASE_PATH +from ..constants import GITHUB_URL_RELEASE, SMALL_FLAGS_BASE_PATH, FEATURES_BASE_PATH, APP_NAME from ..gui_logger import gui_logger class DashboardService: @@ -106,7 +106,7 @@ def check_for_updates(self): pip3_installed = False try: - is_pip3_installed = subprocess.run(["pip3", "show", "protonvpn-gui"],stdout=subprocess.PIPE) # nosec + is_pip3_installed = subprocess.run(["pip3", "show", APP_NAME],stdout=subprocess.PIPE) # nosec except: return False From 8e3d2c447b4ecf44014ed7eee5d66361d09494db Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:39:46 +0200 Subject: [PATCH 28/38] Updated url path to a constant Also updated word from GUI to app --- app/presenters/settings_presenter.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/presenters/settings_presenter.py b/app/presenters/settings_presenter.py index 497a66b..451019b 100644 --- a/app/presenters/settings_presenter.py +++ b/app/presenters/settings_presenter.py @@ -19,7 +19,8 @@ PATH_AUTOCONNECT_SERVICE, SERVICE_NAME, GUI_CONFIG_DIR, - TRAY_SUDO_TYPES + TRAY_SUDO_TYPES, + GITHUB_URL ) from ..utils import ( set_gui_config, @@ -280,7 +281,7 @@ def load_general_settings(self, general_settings_dict): sudo_info_tooltip = general_settings_dict["sudo_info_tooltip"] setter = 0 - tooltip_msg = "Could not find PolKit installed on your system. For more information, please visit: \nhttps://github.com/ProtonVPN/linux-gui" + tooltip_msg = "Could not find PolKit installed on your system. For more information, please visit: \n"+GITHUB_URL username = get_config_value("USER", "username") tier = int(get_config_value("USER", "tier")) @@ -298,7 +299,7 @@ def load_general_settings(self, general_settings_dict): polkit_support_switch.set_property('sensitive', True) use_cases = "\n-Update username and password (root protected file)\n-Enable/disable autoconnect (create/remove .service file)\n-Connect/disconnect to/from VPN (run CLI commands)" - tooltip_msg = "Displays a window to enter sudo password, which is needed for the following cases:{}\n\nIt is recommended to enabled this if you don't want to use the GUI via the terminal.".format(use_cases) + tooltip_msg = "Displays a window to enter sudo password, which is needed for the following cases:{}\n\nIt is recommended to enabled this if you don't want to use the app via terminal.".format(use_cases) sudo_info_tooltip.set_tooltip_text(tooltip_msg) From 1dc531477b965d6572426c9fb10dcde6ec660f09 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:40:54 +0200 Subject: [PATCH 29/38] Updated app name and repo url to respetive constants Also updated install instructions --- app/presenters/dashboard_presenter.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/presenters/dashboard_presenter.py b/app/presenters/dashboard_presenter.py index 6dfc1b8..f1ba7a6 100644 --- a/app/presenters/dashboard_presenter.py +++ b/app/presenters/dashboard_presenter.py @@ -24,7 +24,7 @@ # Local imports from ..gui_logger import gui_logger -from ..constants import GITHUB_URL_RELEASE, VERSION, LARGE_FLAGS_BASE_PATH, SMALL_FLAGS_BASE_PATH, FEATURES_BASE_PATH +from ..constants import GITHUB_URL, GITHUB_URL_RELEASE, VERSION, LARGE_FLAGS_BASE_PATH, SMALL_FLAGS_BASE_PATH, FEATURES_BASE_PATH, APP_NAME from ..utils import ( get_server_protocol_from_cli, get_gui_config, @@ -193,9 +193,9 @@ def on_check_for_updates(self): if VERSION < latest_release: return_string = "There is a newer release, you should upgrade to v{0}.\n\n".format(latest_release) if pip3_installed: - return_string = return_string + "You can upgrade with the following command:\n\nsudo pip3 install protonvpn-linux-gui-calexandru2018 --upgrade\n\n" + return_string = return_string + "You can upgrade with the following command:\n\nsudo pip3 install "+APP_NAME+" --upgrade\n\n" else: - return_string = return_string + "You can upgrade by first removing this version, and then cloning the new one with the following commands:\n\ngit clone https://github.com/calexandru2018/protonvpn-linux-gui\n\ncd protonvpn-linux-gui\n\nsudo python3 setup.py install" + return_string = return_string + "You can upgrade by first removing this version, and then cloning the new one with the following commands:\n\ngit clone "+GITHUB_URL+"\n\ncd linux-app\n\nsudo pip install -e ." return_val = True self.queue.put(dict(action="update_dialog", label=return_string)) From 330caa1762a9bd28b28d21547be2175060442d65 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:42:33 +0200 Subject: [PATCH 30/38] Updated package name and repo till to respectinve constants in setup --- setup.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py index 8ac818e..aa15470 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ import os from setuptools import setup -from app.constants import VERSION +from app.constants import VERSION, APP_NAME, GITHUB_URL try: with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), 'README.md'), encoding='utf-8') as f: @@ -14,11 +14,11 @@ For further information and a usage guide, please view the project page: - https://github.com/ProtonVPN/linux-app - """ + {} + """.format(GITHUB_URL) setup( - name="protonvpn-gui", + name=APP_NAME, packages=[ "app", "app.presenters", @@ -47,7 +47,7 @@ author="Proton Technologies AG", author_email="contact@protonvpn.com", license="GPLv3", - url="https://github.com/ProtonVPN/linux-app", + url=GITHUB_URL, install_requires=[ "protonvpn-cli>=2.2.2", "requests>=2.23.0", From 68216ef7ca5d9cdeb86a59c5c3083a2fe5f19e92 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:45:54 +0200 Subject: [PATCH 31/38] Updated main package name --- tests.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests.py b/tests.py index ea6b201..79b61e8 100644 --- a/tests.py +++ b/tests.py @@ -2,13 +2,13 @@ import shutil from queue import Queue -from linux_gui.presenters.login_presenter import LoginPresenter -from linux_gui.presenters.settings_presenter import SettingsPresenter +from app.presenters.login_presenter import LoginPresenter +from app.presenters.settings_presenter import SettingsPresenter -from linux_gui.services.login_service import LoginService -from linux_gui.services.settings_service import SettingsService +from app.services.login_service import LoginService +from app.services.settings_service import SettingsService -from linux_gui.constants import GUI_CONFIG_DIR +from app.constants import GUI_CONFIG_DIR from protonvpn_cli.constants import CONFIG_DIR q = Queue() From 92166ff86c1b95b64d392deb9d2cb0dbfa81c207 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:55:08 +0200 Subject: [PATCH 32/38] Updated string so that 'admin access' instead of 'privilege escalation' --- app/services/dashboard_service.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/services/dashboard_service.py b/app/services/dashboard_service.py index 196af74..873533e 100644 --- a/app/services/dashboard_service.py +++ b/app/services/dashboard_service.py @@ -156,13 +156,13 @@ def root_command(self, command_list): gui_logger.debug("errs: {}\nouts: {}".format(errs, outs)) if "terminal is required" in errs: - return (False, "Privilege escalation is required and PolKit Support is not enabled.\nPlease launch the app either from within a terminal or enable PolKit Support.") + return (False, "Administrator acess is required and PolKit Support is not enabled.\nPlease launch the app either from within a terminal or enable PolKit Support.") if "dismissed" in errs and not timeout: - return (False, "Privilege escalation was dismissed.") + return (False, "Administrator acess was dismissed.") if not "dismissed" in errs and timeout: - return (False, "Request timed out, either because of insufficient privileges\nor network/api issues.") + return (False, "Request timed out, either because of insufficient administrator acess\nor network/api issues.") if "authentication failed" in outs: return (False, "Authentication failed!\nPlease make sure that your username and password is correct.") From f623cdd3be91447fb0ea91b59998b8fbb02614e5 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 20:56:16 +0200 Subject: [PATCH 33/38] Removed code duplication --- app/main.py | 58 ++++++++++++++++++++--------------------------------- 1 file changed, 22 insertions(+), 36 deletions(-) diff --git a/app/main.py b/app/main.py index 6f90c46..6bac27d 100644 --- a/app/main.py +++ b/app/main.py @@ -72,41 +72,27 @@ def init(): ) dialog_view = DialogView(interface, Gtk, queue) - - if not find_cli(): - dialog_view.display_dialog(label=CLI_ABSENCE_INFO, spinner=False, hide_close_button=True) - else: - gui_logger.debug("\n______________________________________\n\n\tINITIALIZING NEW GUI WINDOW\n______________________________________\n") - - if not os.path.isfile(GUI_CONFIG_FILE): - initialize_gui_config() - - if not os.path.isfile(CONFIG_FILE): - gui_logger.debug(">>> Loading LoginWindow") - - settings_service = SettingsService() - settings_presenter = SettingsPresenter(settings_service, queue) - settings_view = SettingsView(interface, Gtk, settings_presenter, queue) - - dashboard_service = DashboardService() - dashboard_presenter = DashboardPresenter(dashboard_service, queue) - dashboard_view = DashboardView(interface, Gtk, dashboard_presenter, settings_view, queue) - - login_service = LoginService() - login_presenter = LoginPresenter(login_service, queue) - login_view = LoginView(interface, Gtk, login_presenter, dashboard_view, queue) - - login_view.display_window() - else: - gui_logger.debug(">>> Loading DashboardWindow") - settings_service = SettingsService() - settings_presenter = SettingsPresenter(settings_service, queue) - settings_view = SettingsView(interface, Gtk, settings_presenter, queue) - - dashboard_service = DashboardService() - dashboard_presenter = DashboardPresenter(dashboard_service, queue) - dashboard_view = DashboardView(interface, Gtk, dashboard_presenter, settings_view, queue) - - dashboard_view.display_window() + + gui_logger.debug("\n______________________________________\n\n\tINITIALIZING NEW GUI WINDOW\n______________________________________\n") + + if not os.path.isfile(GUI_CONFIG_FILE): + initialize_gui_config() + + settings_service = SettingsService() + settings_presenter = SettingsPresenter(settings_service, queue) + settings_view = SettingsView(interface, Gtk, settings_presenter, queue) + + dashboard_service = DashboardService() + dashboard_presenter = DashboardPresenter(dashboard_service, queue) + window_view = DashboardView(interface, Gtk, dashboard_presenter, settings_view, queue) + + if not os.path.isfile(CONFIG_FILE): + gui_logger.debug(">>> Loading LoginWindow") + login_service = LoginService() + login_presenter = LoginPresenter(login_service, queue) + window_view = LoginView(interface, Gtk, login_presenter, window_view, queue) + + window_view.display_window() + Gtk.main() From d11e7314a0a64b138adb8e3ccfc2fcb37d204146 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 21:00:40 +0200 Subject: [PATCH 34/38] Updated short description in case readme is not found --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index aa15470..297c14f 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ long_descr = '\n' + f.read() except FileNotFoundError: long_descr = """ - The Linux GUI for ProtonVPN. + ProtonVPN Application for Linux based OSs. For further information and a usage guide, please view the project page: From 8757cf9b278bc2c7d33c8c7209ed86338920f672 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 21:10:43 +0200 Subject: [PATCH 35/38] Updated readme text --- README.md | 118 +++++++++++++++++++++++++++--------------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index 1fbb761..310c2d8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -

ProtonVPN Linux GUI

+

ProtonVPN Linux Application

- ProtonVPN Banner + ProtonVPN Banner

@@ -13,63 +13,63 @@

- - Build Status + + Build Status - - Downloads + + Downloads - - Downloads per Week + + Downloads per Week

- PyPI - Python Version + PyPI - Python Version

- - GitHub Workflow Status (branch) + + GitHub Workflow Status (branch)

- - License + + License

-

Linux GUI for ProtonVPN, written in Python. Layout designed in Glade.

+

Linux app for ProtonVPN, written in Python. Layout designed in Glade.

Development Status: Beta

-The linux-gui works on top of linux-cli, making it a dependency. All local configurations are managed by the GUI (such as updating protocol, split tunneling, manage killswitch) while the connections are managed by the CLI. This way, you will be able to use the latest version of the CLI, while also being able to use the GUI. +This application works on top of linux-cli, making it a dependency. All local configurations are managed by the app (such as updating protocol, split tunneling, manage killswitch) while the connections are managed by the CLI. This way, you will be able to use the latest version of the CLI, while also being able to use the app. **Disclaimer:** -The ProtonVPN GUI is currently still an experimental interface. It requires escalated privileges and might be somehow unstable. In the near future we plan to refactor the ProtonVPN CLI and GUI so that the part of the client that really requires being executed as root user is kept to a minimum. +The ProtonVPN application is currently still an experimental interface. It requires escalated privileges and might be somehow unstable. In the near future we plan to refactor both the ProtonVPN CLI and the app, so that the part of the client that really requires being executed as root user is kept to a minimum. ## Table of Contents - [Installing and Updating](#installing-and-updating) - [Dependencies](#dependencies) - [Python dependencies](#python-dependencies) - - [ProtonVPN GUI dependencies](#protonvpn-gui-dependencies) + - [ProtonVPN App dependencies](#protonvpn-app-dependencies) - [ProtonVPN Tray dependencies](#protonvpn-tray-dependencies) - [Known Issues](#tray-known-issues) - [dbus-launch](#dbus-launch) - - [Installing ProtonVPN GUI](#installing-protonvpn-linux-gui) + - [Installing ProtonVPN App](#installing-protonvpn-app) - [Distribution based](#distribution-based) - [PIP based](#pip-based) - [How to Update](#to-update-to-a-new-version) - - [Uninstalling ProtonVPN GUI](#uninstalling-protonvpn-linux-gui) + - [Uninstalling ProtonVPN App](#uninstalling-protonvpn-app) - [Manual installation](#manual-installation) - [Virtual environment](#virtual-environment) - [How to use](#how-to-use) - - [ProtonVPN GUI](#protonvpn-gui) + - [ProtonVPN App](#protonvpn-app) - [ProtonVPN Tray](#protonvpn-tray) - [Enhancements](#enhancements) - [Create .desktop file](#create-desktop-file) - - [ProtonVPN GUI](#protonvpn-gui-1) + - [ProtonVPN App](#protonvpn-app-1) - [ProtonVPN Tray](#protonvpn-tray-1) - [Sudo/PolKit](#sudopolkit) -- [GUI Layout](#gui-layout) +- [App Layout](#app-layout) # Installing and Updating @@ -83,7 +83,7 @@ The ProtonVPN GUI is currently still an experimental interface. It requir - pip for python3 (pip3) - setuptools for python3 (python3-setuptools) -#### ProtonVPN GUI dependencies +#### ProtonVPN App dependencies | **Distro** | **Command** | |:----------------------------------------|:----------------------------------------------------------------------------------------------------------------| @@ -121,7 +121,7 @@ If you would like to use `pkexec` instead of the terminal (or alter `visudo`), t |OpenSUSE/SLES | `sudo zypper install polkit` | |Arch Linux/Manjaro | `sudo pacman -S polkit` | -## Installing ProtonVPN Linux GUI +## Installing ProtonVPN App ### Distribution based - Fedora/CentOS/RHEL: To-do @@ -134,37 +134,37 @@ If you would like to use `pkexec` instead of the terminal (or alter `visudo`), t *Note: Make sure to run pip with sudo* -`sudo pip3 install protonvpn-gui` +`sudo pip3 install protonvpn-app` #### To update to a new version -`sudo pip3 install protonvpn-gui --upgrade` +`sudo pip3 install protonvpn-app --upgrade` ### Manual Installation -**Note:** Before installing the GUI, make sure that you have previously installed the CLI, otherwise an error will be thrown. +**Note:** Before installing the app, make sure that you have previously installed the CLI, otherwise an error will be thrown. 1. Clone this repository - `git clone https://github.com/ProtonVPN/linux-gui` + `git clone https://github.com/ProtonVPN/linux-app` 2. Step into the directory - `cd linux-gui` + `cd linux-app` 3. Install `sudo pip3 install -e .` -## Uninstalling ProtonVPN Linux GUI +## Uninstalling ProtonVPN App -If you have installed the GUI via PIP or by cloning this repo, then to uninstall it type in the following command: +If you have installed the app via PIP or by cloning this repo, then to uninstall it type in the following command: - `sudo pip3 uninstall protonvpn-gui` + `sudo pip3 uninstall protonvpn-app` ### Virtual environment -If you would like to run the the GUI within a virtual environment (for either development purposes or other), then you can easily do that with the help of pipenv. Make sure to install pipenv and additional packages before. +If you would like to run the app within a virtual environment (for either development purposes or other), then you can easily do that with the help of pipenv. Make sure to install pipenv and additional packages before. **Note:** PolKit does not work within virtual environments. | **Distro** | **Command** | @@ -174,18 +174,18 @@ If you would like to run the the GUI within a virtual environment (for either de |OpenSUSE/SLES | `sudo zypper install cairo-devel gobject-introspection-devel python3-cairo-devel pkg-config` | |Arch Linux/Manjaro | `sudo pacman -S cairo base-devel gobject-introspection pkgconf` | -1. `git clone https://github.com/ProtonVPN/linux-gui` -2. `cd linux-gui` +1. `git clone https://github.com/ProtonVPN/linux-app` +2. `cd linux-app` 3. `pipenv install` installs the virtual environment and all necessary dependencies from `Pipfile`. 4. `pipenv shell` enters the virtual environment. -5. `sudo pip install -e .` installs the GUI in your virtual environment. -6. `protonvpn-gui` starts the GUI from within the virtual environment. +5. `sudo pip install -e .` installs the app in your virtual environment. +6. `protonvpn-app` starts the application from within the virtual environment. # How to use -### ProtonVPN GUI +### ProtonVPN App - `protonvpn-gui` + `protonvpn-app` ### ProtonVPN Tray @@ -195,22 +195,22 @@ If you would like to run the the GUI within a virtual environment (for either de ### Create .desktop file -#### ProtonVPN GUI +#### ProtonVPN App To create at desktop launcher with a .desktop file, follow the instructions below. -1. Find the path to the package with `pip3 show protonvpn-gui` +1. Find the path to the package with `pip3 show protonvpn-app` You should get something like `Location: /usr/local/lib//dist-packages` , this is where your Python packages reside. **Note:** Based on your distro, your `Location` path may not look exactly like this one, so make sure to use your own and `Location` path. -2. Based on previous information, the path to your icon should be `/linux_gui/resources/img/logo/protonvpn_logo.png` +2. Based on previous information, the path to your icon should be `/app/resources/img/logo/protonvpn_logo.png` -3. Create a `protonvpn-gui.desktop` file in `.local/share/applications/`, and paste in the following code. Remember to change the **`Icon`** path to your own path. +3. Create a `protonvpn-app.desktop` file in `.local/share/applications/`, and paste in the following code. Remember to change the **`Icon`** path to your own path. ``` [Desktop Entry] Name=ProtonVPN - GenericName=ProtonVPN GUI - Exec=protonvpn-gui + GenericName=ProtonVPN App + Exec=protonvpn-app Icon= Type=Application Terminal=False @@ -220,11 +220,11 @@ To create at desktop launcher with a .desktop file, follow the instructio #### ProtonVPN Tray To create at tray icon launcher with a .desktop file, follow the instructions below. -1. Find the path to the package with `pip3 show protonvpn-gui` +1. Find the path to the package with `pip3 show protonvpn-app` You should get something like `Location: /usr/local/lib//dist-packages` , this is where your Python packages reside. **Note:** Based on your distro, your `Location` path may not look exactly like this one, so make sure to use your own and `Location` path. -2. Based on previous information, the path to your icon should be `/linux_gui/resources/img/logo/protonvpn_logo.png` +2. Based on previous information, the path to your icon should be `/app/resources/img/logo/protonvpn_logo.png` 3. Create a `protonvpn-tray.desktop` file in `.local/share/applications/`, and paste in the following code. Remember to change the **`Icon`** path to your own path. @@ -240,44 +240,44 @@ To create at tray icon launcher with a .desktop file, follow the instruct ``` ## Sudo/PolKit -At the moment, since the CLI protects certain files using sudo and also manages killswitch and split tunneling, the GUI will also need to have access to these sudo protected files. Thus, as it is at the moment, the GUI needs to have certain root privileges. This though is subject to change. -Nonetheless, if you would like to launch the GUI without having to type in your sudo password everytime, then you could add the executable file to `visudo`. +At the moment, since the CLI protects certain files using sudo and also manages killswitch and split tunneling, the app will also need to have access to these sudo protected files. Thus, as it is at the moment, the app needs to have certain root privileges. This though is subject to change. +Nonetheless, if you would like to launch the app without having to type in your sudo password everytime, then you could add the executable file to `visudo`.
Another alternative is enable PolKit Support from within the settings (`pkexec` command). This displays a window for the user to type the sudo password, this way, a user won't have to type the password into the terminal. Whenever you want to connect/disconnect or make some important changes to files, a window prompt will appear for you to enter the sudo password.
-**Note:** This feature needs to be enabled from within the GUI settings for it to be able to work. If you have not installed the necessary packages, then the this feature will not work. +**Note:** This feature needs to be enabled from within the app settings for it to be able to work. If you have not installed the necessary packages, then the this feature will not work. ### Visudo The instructions for seting up visudo are described below. -1. First you will need the path to the GUI. This can be found by typing `which protonvpn-gui`. You should get something like this: `/usr/bin/protonvpn-gui`. Save it since you will need it later. **Note:** As previously mentioned, the path may look different for you, based on your distro. +1. First you will need the path to the application. This can be found by typing `which protonvpn-app`. You should get something like this: `/usr/bin/protonvpn-app`. Save it since you will need it later. **Note:** As previously mentioned, the path may look different for you, based on your distro. 2. Identify your username by typing `whoami`. Save it (or memorize it). 3. In another terminal, type in `sudo visudo`, and a window should pop-up, scroll to the very bottom of it. 4. Once you are at the botton, type: ` ALL = (root) NOPASSWD: ` 5. Exit and save! Have fun :) -# GUI Layout +# App Layout

- Login + Login

- Dashboard + Dashboard

- General Settings + General Settings

- Tray Settings + Tray Settings

- Connection Settings + Connection Settings

- Advanced Settings + Advanced Settings

- Diagnosis Tool + Diagnosis Tool

From 3c9d59033fab9f65fa94e6992a1dd4872adc2bae Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 21:14:31 +0200 Subject: [PATCH 36/38] Removed unnecessary dependency --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 310c2d8..4bb2642 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,6 @@ The ProtonVPN application is currently still an experimental interface. I - python >= 3.5 - linux-cli >= 2.2.2 - requests >= 2.23.0 -- configparse >= 4.0.2 - pip for python3 (pip3) - setuptools for python3 (python3-setuptools) From 46c9e4eabf193d8c5ed9bd3fda1fdc039b680984 Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Fri, 5 Jun 2020 21:22:34 +0200 Subject: [PATCH 37/38] Added 'self.' prefix to class properties --- app/services/settings_service.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/services/settings_service.py b/app/services/settings_service.py index d931235..63817b2 100644 --- a/app/services/settings_service.py +++ b/app/services/settings_service.py @@ -270,10 +270,10 @@ def enable_autoconnect(self, command): gui_logger.debug("errs: {}\nouts: {}".format(errs, outs)) if "dismissed" in errs and not timeout: - return False, admin_acess_dissmissed_info_msg + return False, self.admin_acess_dissmissed_info_msg if not "dismissed" in errs and timeout: - return False, unable_to_process_request_info_msg + return False, self.unable_to_process_request_info_msg if not "created symlink" in errs.lower(): return False, "Unable to setup autoconnect!" @@ -310,7 +310,7 @@ def disable_autoconnect(self): gui_logger.debug("errs: {}\nouts: {}".format(errs, outs)) if "dismissed" in errs and not timeout: - return False, admin_acess_dissmissed_info_msg + return False, self.admin_acess_dissmissed_info_msg if not "dismissed" in errs and timeout: return False, "Unable to process request. Administrator access has probably not been provided." @@ -364,10 +364,10 @@ def root_command(self, command_list, enable=False): return False, "Administrator access is required, and PolKit Support is not enabled.\nPlease launch the app either from within a terminal or enable PolKit Support." if "dismissed" in errs and not timeout: - return False, admin_acess_dissmissed_info_msg + return False, self.admin_acess_dissmissed_info_msg if not "dismissed" in errs and timeout: - return False, unable_to_process_request_info_msg + return False, self.unable_to_process_request_info_msg return True, return_on_sucess_message From 9dd0d19c2b14e0ac39d5220f3efcfa68c93888fa Mon Sep 17 00:00:00 2001 From: Alexandru Cheltuitor <31934100+calexandru2018@users.noreply.github.com> Date: Wed, 17 Jun 2020 22:32:24 +0200 Subject: [PATCH 38/38] Updated to new app name --- app/indicator.py | 3 ++- app/resources/ui/dashboard_window.glade | 2 +- app/resources/ui/message_dialog.glade | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/indicator.py b/app/indicator.py index a4518eb..51b9d27 100644 --- a/app/indicator.py +++ b/app/indicator.py @@ -30,6 +30,7 @@ TRAY_CFG_DATA_TX, TRAY_CFG_TIME_CONN, CURRDIR, + APP_NAME ) from .utils import get_gui_config, set_gui_config @@ -257,7 +258,7 @@ def show_gui(self, _): self.notify.Notification.new(self.tray_title, "Displaying ProtonVPN GUI", LOGO_PATH).show() - process = subprocess.Popen(["protonvpn-gui"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) # nosec + process = subprocess.Popen([APP_NAME], stdout=subprocess.PIPE, stderr=subprocess.PIPE) # nosec outs, errs = process.communicate() gui_logger.debug("TRAY >>> errs: {}\nouts:{}".format(outs, errs)) diff --git a/app/resources/ui/dashboard_window.glade b/app/resources/ui/dashboard_window.glade index fa22323..2812573 100644 --- a/app/resources/ui/dashboard_window.glade +++ b/app/resources/ui/dashboard_window.glade @@ -39,7 +39,7 @@ Author: Alexandru Cheltuitor False False center - ProtonVPN Linux GUI + ProtonVPN Linux App Proton Technologies AG Based on linux-cli https://github.com/ProtonVPN/linux-gui/ diff --git a/app/resources/ui/message_dialog.glade b/app/resources/ui/message_dialog.glade index aa70f97..d6ed415 100644 --- a/app/resources/ui/message_dialog.glade +++ b/app/resources/ui/message_dialog.glade @@ -33,7 +33,7 @@ Author: Alexandru Cheltuitor False True popup - ProtonVPN GUI + ProtonVPN App False center-always 400 @@ -50,7 +50,7 @@ Author: Alexandru Cheltuitor True False - ProtonVPN Linux GUI + ProtonVPN Linux App False True