diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 74de637..bf475ef 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,15 +4,75 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -46,44 +106,33 @@
- {
- "keyToString": {
- "ASKED_ADD_EXTERNAL_FILES": "true",
- "Python.INSTALL.executor": "Run",
- "Python.install.executor": "Run",
- "Python.main.executor": "Run",
- "Python.messagebox.executor": "Run",
- "Python.start_wg.executor": "Run",
- "Python.wg_func.executor": "Run",
- "RunOnceActivity.ShowReadmeOnStart": "true",
- "git-widget-placeholder": "main",
- "last_opened_file_path": "/home/punix/Pyapps/wire-py",
- "settings.editor.selected.configurable": "preferences.lookFeel"
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+}]]>
+
+
+
+
+
+
+
+
+
+
@@ -106,6 +155,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -368,7 +439,15 @@
1726349168248
-
+
+
+ 1726359012150
+
+
+
+ 1726359012150
+
+
@@ -406,7 +485,6 @@
-
@@ -431,6 +509,7 @@
-
+
+
\ No newline at end of file
diff --git a/Wire-Py.desktop b/Wire-Py.desktop
new file mode 100755
index 0000000..7ae15e9
--- /dev/null
+++ b/Wire-Py.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Application
+Name=Wire-Py
+Exec=/usr/bin/wirepy
+Terminal=false
+Categories=Network;
+Icon=/usr/share/icons/wp-icons/128/wg-vpn.png
diff --git a/icons/warning_32.png b/icons/warning_32.png
deleted file mode 100644
index e695c2c..0000000
Binary files a/icons/warning_32.png and /dev/null differ
diff --git a/icons/wg-active.png b/icons/wg-active.png
deleted file mode 100644
index e79bf79..0000000
Binary files a/icons/wg-active.png and /dev/null differ
diff --git a/icons/wg-info.png b/icons/wg-info.png
deleted file mode 100644
index 5501cc5..0000000
Binary files a/icons/wg-info.png and /dev/null differ
diff --git a/icons/wg-trash-info.png b/icons/wg-trash-info.png
deleted file mode 100644
index c98fd74..0000000
Binary files a/icons/wg-trash-info.png and /dev/null differ
diff --git a/icons/wg-vpn-info.png b/icons/wg-vpn-info.png
deleted file mode 100644
index 4471b36..0000000
Binary files a/icons/wg-vpn-info.png and /dev/null differ
diff --git a/icons/wire-switch-off-256.png b/icons/wire-switch-off-256.png
deleted file mode 100644
index 8cc06f3..0000000
Binary files a/icons/wire-switch-off-256.png and /dev/null differ
diff --git a/icons/wire-switch-off-48.png b/icons/wire-switch-off-48.png
deleted file mode 100644
index c973b27..0000000
Binary files a/icons/wire-switch-off-48.png and /dev/null differ
diff --git a/icons/wire-switch-on-256.png b/icons/wire-switch-on-256.png
deleted file mode 100644
index 7a65c63..0000000
Binary files a/icons/wire-switch-on-256.png and /dev/null differ
diff --git a/install b/install
new file mode 100755
index 0000000..86878f3
--- /dev/null
+++ b/install
@@ -0,0 +1,39 @@
+#!/bin/bash
+USER_FOR_GROUP=$USER
+which sudo >/dev/null
+if [ $? -ne 0 ]
+ then
+ su -
+ apt install python3-tk && apt install tcl-ttkthemes && \
+ cp wg_main.py start_wg.py wg_func.py wirepy /usr/bin/ && \
+ mkdir -p /etc/wire_py && cp -R wp-icons /usr/share/icons/ && \
+ if [ ! -e /usr/local/bin/wirepy ]
+ then
+ sudo ln -s /usr/bin/wirepy.py /usr/local/bin/wirepy
+ fi
+ cp org.wirepy.policy /usr/share/polkit-1/actions/ && \
+ cp Wire-Py.desktop /usr/share/applications/ && \
+ chown -R root:root /usr/bin/wire-py && \
+ cp wg_start.services /lib/systemd/system/ && \
+ systemctl enable wg_start.service
+
+else
+ sudo apt install python3-tk && sudo apt install tcl-ttkthemes && \
+ sudo cp wg_main.py start_wg.py wg_func.py wirepy /usr/bin/ && \
+ sudo mkdir -p /etc/wire_py && sudo cp -R wp-icons /usr/share/icons/ && \
+ if [ ! -e /usr/local/bin/wirepy ]
+ then
+ sudo ln -s /usr/bin/wirepy.py /usr/local/bin/wirepy
+ fi
+ sudo cp org.wirepy.policy /usr/share/polkit-1/actions/ && \
+ sudo cp Wire-Py.desktop /usr/share/applications/ && \
+ sudo chown -R root:root /usr/bin/ && \
+ sudo cp wg_start.service /lib/systemd/system/ && \
+ sudo systemctl enable wg_start.service
+
+fi
+read -n 1 -s -r -p $"To close the Window press a button"
+
+
+
+
diff --git a/install.py b/install.py
deleted file mode 100755
index baffcff..0000000
--- a/install.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/python3
-from pathlib import Path
-from getpass import getpass
-
-# for services file in /lib/systemd/system/
-config_path = Path.home() / ".config" / "wire_py" / "wg_py"
-
-start_file = f'''\
-#!/usr/bin/python3
-from subprocess import check_call
-from pathlib import Path
-
-path_to_file = Path.home() / '.config/wire_py/wg_py'
-
-if Path.exists(path_to_file):
- a_con = Path.read_text(path_to_file)
- check_call(['nmcli', 'connection', 'up', a_con])
-else:
- pass
-
-'''
-
-Path("start_wg.py").write_text(start_file)
-
-config_path.parent.mkdir(exist_ok=True)
-
-# Prompt the user for the sudo password
-#sudo_password = getpass('Enter sudo password: ')
-#def cp_files():
-
-# Define the command to run the Python script with sudo
-#command = ['sudo', '-S', 'python3', 'script.py']
-
-# Run the command as a subprocess, passing the sudo password
-#subprocess.run(command, input=sudo_password.encode(), check=True)
diff --git a/org.wirepy.policy b/org.wirepy.policy
new file mode 100644
index 0000000..4890f23
--- /dev/null
+++ b/org.wirepy.policy
@@ -0,0 +1,16 @@
+
+
+
+ Project Wire-Py
+ https://git.ilunix.de/punix/Wire-Py
+ wg-vpn
+
+
+ auth_admin_keep
+ auth_admin_keep
+ yes
+
+ /usr/bin/wire-py/main.py
+ true
+
+
diff --git a/start_wg.py b/start_wg.py
index 53c76cb..41bb29b 100755
--- a/start_wg.py
+++ b/start_wg.py
@@ -2,7 +2,7 @@
from subprocess import check_call
from pathlib import Path
-path_to_file = Path.home() / '.config/wire_py/wg_py'
+path_to_file = Path('/etc/wire_py/wg_py')
if Path.exists(path_to_file):
a_con = Path.read_text(path_to_file)
diff --git a/wg_func.py b/wg_func.py
index 5b39b90..5938ead 100755
--- a/wg_func.py
+++ b/wg_func.py
@@ -8,7 +8,7 @@ from pathlib import Path
from subprocess import check_call
font_color = '#4011a7'
-path_to_file = Path.home() / '.config/wire_py/wg_py'
+path_to_file = Path('/etc/wire_py/wg_py')
def msg_window():
@@ -22,7 +22,7 @@ def msg_window():
msg.geometry('%dx%d+%d+%d' % (msg.x_width, msg.y_height, msg.monitor_center_x, msg.monitor_center_y))
msg.columnconfigure(0, weight=1)
msg.configure(pady=20)
- msg.warning = tk.PhotoImage(file=r'icons/warning_64.png')
+ msg.warning = tk.PhotoImage(file=r'/usr/share/icons/wp-icons/64/warning.png')
msg.i_warning = tk.Label(msg, image=msg.warning)
msg.i_warning.grid(column=0, row=0)
label = tk.Label(msg, text='Oh... no valid Wireguard File!\nPlease select a valid Wireguard File')
@@ -31,7 +31,7 @@ def msg_window():
button = tk.Button(msg, text='OK', command=msg.destroy)
button.config(padx=15, pady=5)
button.grid(column=0, columnspan=2, row=1)
- wg_icon_2 = tk.PhotoImage(file=r'icons/wg-stop.png')
+ wg_icon_2 = tk.PhotoImage(file=r'/usr/share/icons/wp-icons/48/wg_msg.png')
msg.iconphoto(True, wg_icon_2)
msg.winfo_toplevel()
@@ -60,8 +60,8 @@ class StartStopBTN:
self.lb_frame_btn_lbox = None
self.wg_switch = None
self.btn_stst = None
- self.wg_vpn_start = tk.PhotoImage(file=r'icons/wg-vpn-start-48.png')
- self.wg_vpn_stop = tk.PhotoImage(file=r'icons/wg-vpn-stop-48.png')
+ self.wg_vpn_start = tk.PhotoImage(file=r'/usr/share/icons/wp-icons/48/wg_vpn-start.png')
+ self.wg_vpn_stop = tk.PhotoImage(file=r'/usr/share/icons/wp-icons/48/wg_vpn-stop.png')
def button_stop(self):
self.btn_stst = tk.Button(self.lb_frame_btn_lbox, image=self.wg_vpn_stop, bd=0, command=self.wg_switch)
@@ -181,7 +181,7 @@ class ImportTunnel:
def wg_import_select(self):
try:
- filepath = filedialog.askopenfilename(initialdir=Path.home(), title='Select Wireguard config File',
+ filepath = filedialog.askopenfilename(initialdir=Path('/home/*/'), title='Select Wireguard config File',
filetypes=[('WG config files', '*.conf')], )
with open(filepath, 'r') as file:
read = file.read()
@@ -190,17 +190,17 @@ class ImportTunnel:
self.a = TunnelActiv.active()
if 'PrivateKey = ' in read and 'PublicKey = ' in read:
if len(path_split1) > 17:
- p1 = shutil.copy(filepath, Path.home() / 'tester/')
+ p1 = shutil.copy(filepath, Path('/etc/wire_py/'))
path_split = path_split1[len(path_split1) - 17:]
- os.rename(p1, Path.home() / 'tester/' / str(path_split))
+ os.rename(p1, Path('/etc/wire_py') / str(path_split))
if self.a != '':
check_call(['nmcli', 'connection', 'down', TunnelActiv.active()])
ShowAddress.label_empty(self)
- check_call(['nmcli', 'connection', 'import', 'type', 'wireguard', 'file', Path.home() / 'tester' /
+ check_call(['nmcli', 'connection', 'import', 'type', 'wireguard', 'file', 'etc', '/wire_py',
path_split])
else:
- shutil.copy(filepath, Path.home() / 'tester/')
+ shutil.copy(filepath, Path('/etc/wire_py/'))
if self.a != '':
check_call(['nmcli', 'connection', 'down', TunnelActiv.active()])
ShowAddress.label_empty(self)
@@ -214,7 +214,7 @@ class ImportTunnel:
self.StrVar.set(self.a)
GreenLabel.green_show_label(self)
StartStopBTN.button_stop(self)
- wg_read = Path.home() / 'tester/' / str(self.a + '.conf')
+ wg_read = Path('/etc/wire_py') / str(self.a + '.conf')
with open(wg_read, 'r') as file:
data = ConToDict.covert_to_dict(file)
# Address Label
@@ -273,6 +273,8 @@ class OnOff:
if Path.exists(path_to_file):
self.selected_option.set(1)
self.autoconnect_var.set('')
+ if not Path.is_dir(Path('/etc/wire_py')):
+ Path.mkdir(Path('/etc/wire_py'))
self.auto_con = Path.read_text(path_to_file)
else:
self.wg_autostart.configure(state='disabled')
@@ -293,8 +295,8 @@ class ExportTunnels:
tl = ListTunnels.tl_list()
try:
if len(tl) != 0:
- wg_tar = Path.home() / now_datetime
- p_to_conf = Path.home() / 'tester/'
+ wg_tar = Path('/home/*/') / now_datetime
+ p_to_conf = Path('/etc/wire_py/')
shutil.make_archive(wg_tar, 'zip', p_to_conf)
#if zip_full != 0:
#print('Export erfolgraeich')
diff --git a/main.py b/wg_main.py
similarity index 88%
rename from main.py
rename to wg_main.py
index 710af21..5ac41f1 100755
--- a/main.py
+++ b/wg_main.py
@@ -1,5 +1,4 @@
#!/usr/bin/python3
-import os
import tkinter as tk
from subprocess import check_call
from tkinter import ttk
@@ -29,7 +28,7 @@ class MainWindow(tk.Tk):
self.style = ttk.Style(self)
self.style.theme_use('clam')
# Load the image file from disk.
- self.wg_icon = tk.PhotoImage(file=r'icons/wg-vpn-48.png')
+ self.wg_icon = tk.PhotoImage(file=r'/usr/share/icons/wp-icons/48/wg_vpn.png')
# Set it as the window icon.
self.iconphoto(True, self.wg_icon)
@@ -54,12 +53,12 @@ class FrameWidgets(ttk.Frame):
self.peer = None
self.lb_tunnel = None
self.wg_read = None
- self.wg_vpn_start = tk.PhotoImage(file=r'icons/wg-vpn-start-48.png')
- self.wg_vpn_stop = tk.PhotoImage(file=r'icons/wg-vpn-stop-48.png')
- self.imp_pic = tk.PhotoImage(file=r'icons/wg-import.png')
- self.tr_pic = tk.PhotoImage(file=r'icons/wg-trash-48.png')
- self.exp_pic = tk.PhotoImage(file=r'icons/wg-export-48.png')
- self.warning_pic = tk.PhotoImage(file=r'icons/warning_64.png')
+ self.wg_vpn_start = tk.PhotoImage(file=r'/usr/share/icons/wp-icons/48/wg_vpn-start.png')
+ self.wg_vpn_stop = tk.PhotoImage(file=r'/usr/share/icons/wp-icons/48/wg_vpn-stop.png')
+ self.imp_pic = tk.PhotoImage(file=r'/usr/share/icons/wp-icons/48/wg_import.png')
+ self.tr_pic = tk.PhotoImage(file=r'/usr/share/icons/wp-icons/48/wg_trash.png')
+ self.exp_pic = tk.PhotoImage(file=r'/usr/share/icons/wp-icons/48/wg_export.png')
+ self.warning_pic = tk.PhotoImage(file=r'/usr/share/icons/wp-icons/64/warning.png')
# Show active Tunnel
self.a = TunnelActiv.active()
@@ -127,7 +126,7 @@ class FrameWidgets(ttk.Frame):
# Button Vpn
if self.a != '':
StartStopBTN.button_stop(self)
- wg_read = Path.home() / 'tester/' / str(self.a + '.conf')
+ wg_read = Path('/etc/wire_py') / str(self.a + '.conf')
with open(wg_read, 'r') as file:
data = ConToDict.covert_to_dict(file)
# Address Label
@@ -154,16 +153,14 @@ class FrameWidgets(ttk.Frame):
select_tl = self.l_box.get(self.select_tunnel[0])
check_call(['nmcli', 'connection', 'delete', select_tl])
self.l_box.delete(self.select_tunnel[0])
- Path.unlink(Path.home() / 'tester/' / str(select_tl + '.conf'))
-
- path_to_file = Path.home() / '.config/wire_py/wg_py'
- if Path.exists(path_to_file):
+ if Path.is_file(Path('/etc/wire_py/wg_py')):
+ path_to_file = Path('/etc/wire_py') / 'wg_py'
a_con = Path.read_text(path_to_file)
-
- if select_tl == a_con:
- self.selected_option.set(0)
- self.autoconnect_var.set('no Autoconnect')
- Path.unlink(path_to_file)
+ if select_tl == a_con:
+ self.selected_option.set(0)
+ self.autoconnect_var.set('no Autoconnect')
+ Path.unlink(path_to_file)
+ Path.unlink(Path('/etc/wire_py') / str(select_tl + '.conf'))
# for disable checkbox when Listbox empty
tl = ListTunnels.tl_list()
if len(tl) == 0:
@@ -222,7 +219,7 @@ class FrameWidgets(ttk.Frame):
self.select_tunnel = self.l_box.curselection()
select_tl = self.l_box.get(self.select_tunnel[0])
check_call(['nmcli', 'connection', 'up', select_tl])
- wg_read = Path.home() / 'tester/' / str(select_tl + '.conf')
+ wg_read = Path('/etc/wire_py') / str(select_tl + '.conf')
with open(wg_read, 'r') as file:
data = ConToDict.covert_to_dict(file)
# Address Label
diff --git a/wg_py b/wg_py
deleted file mode 100644
index e69de29..0000000
diff --git a/wg_start.service b/wg_start.service
index 6d86638..cc5f2bb 100644
--- a/wg_start.service
+++ b/wg_start.service
@@ -4,7 +4,7 @@ After=network-online.target
[Service]
Type=oneshot
-ExecStartPre=/bin/sleep 3
-ExecStart=/bin/start_wg.py
+ExecStartPre=/bin/sleep 5
+ExecStart=/usr/bin/start_wg.py
[Install]
WantedBy=multi-user.target
diff --git a/wirepy b/wirepy
new file mode 100755
index 0000000..066e378
--- /dev/null
+++ b/wirepy
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+pkexec /usr/bin/wg_main.py
\ No newline at end of file
diff --git a/icons/warning_128.png b/wp-icons/128/error.png
similarity index 100%
rename from icons/warning_128.png
rename to wp-icons/128/error.png
diff --git a/wp-icons/128/wg_export.png b/wp-icons/128/wg_export.png
new file mode 100644
index 0000000..787e894
Binary files /dev/null and b/wp-icons/128/wg_export.png differ
diff --git a/wp-icons/128/wg_import.png b/wp-icons/128/wg_import.png
new file mode 100644
index 0000000..a65f8b2
Binary files /dev/null and b/wp-icons/128/wg_import.png differ
diff --git a/wp-icons/128/wg_msg.png b/wp-icons/128/wg_msg.png
new file mode 100644
index 0000000..dcc04cd
Binary files /dev/null and b/wp-icons/128/wg_msg.png differ
diff --git a/wp-icons/128/wg_trash.png b/wp-icons/128/wg_trash.png
new file mode 100644
index 0000000..16b06b1
Binary files /dev/null and b/wp-icons/128/wg_trash.png differ
diff --git a/wp-icons/128/wg_vpn-start.png b/wp-icons/128/wg_vpn-start.png
new file mode 100644
index 0000000..2555e35
Binary files /dev/null and b/wp-icons/128/wg_vpn-start.png differ
diff --git a/wp-icons/128/wg_vpn-stop.png b/wp-icons/128/wg_vpn-stop.png
new file mode 100644
index 0000000..ff02259
Binary files /dev/null and b/wp-icons/128/wg_vpn-stop.png differ
diff --git a/wp-icons/128/wg_vpn.png b/wp-icons/128/wg_vpn.png
new file mode 100644
index 0000000..e800c31
Binary files /dev/null and b/wp-icons/128/wg_vpn.png differ
diff --git a/icons/warning_256.png b/wp-icons/256/error.png
similarity index 100%
rename from icons/warning_256.png
rename to wp-icons/256/error.png
diff --git a/icons/wg-export.png b/wp-icons/256/wg_export.png
similarity index 100%
rename from icons/wg-export.png
rename to wp-icons/256/wg_export.png
diff --git a/icons/wg-import-orig.png b/wp-icons/256/wg_import.png
similarity index 100%
rename from icons/wg-import-orig.png
rename to wp-icons/256/wg_import.png
diff --git a/icons/wg-stop.png b/wp-icons/256/wg_msg.png
similarity index 100%
rename from icons/wg-stop.png
rename to wp-icons/256/wg_msg.png
diff --git a/icons/wg-trash.png b/wp-icons/256/wg_trash.png
similarity index 100%
rename from icons/wg-trash.png
rename to wp-icons/256/wg_trash.png
diff --git a/icons/wg-vpn-start.png b/wp-icons/256/wg_vpn-start.png
similarity index 100%
rename from icons/wg-vpn-start.png
rename to wp-icons/256/wg_vpn-start.png
diff --git a/icons/wg-vpn-stop.png b/wp-icons/256/wg_vpn-stop.png
similarity index 100%
rename from icons/wg-vpn-stop.png
rename to wp-icons/256/wg_vpn-stop.png
diff --git a/icons/wg-vpn.png b/wp-icons/256/wg_vpn.png
similarity index 100%
rename from icons/wg-vpn.png
rename to wp-icons/256/wg_vpn.png
diff --git a/icons/wire-switch-on-48.png b/wp-icons/32/error.png
similarity index 55%
rename from icons/wire-switch-on-48.png
rename to wp-icons/32/error.png
index 1ced496..18e6c64 100644
Binary files a/icons/wire-switch-on-48.png and b/wp-icons/32/error.png differ
diff --git a/wp-icons/32/wg_export.png b/wp-icons/32/wg_export.png
new file mode 100644
index 0000000..81bb65b
Binary files /dev/null and b/wp-icons/32/wg_export.png differ
diff --git a/wp-icons/32/wg_import.png b/wp-icons/32/wg_import.png
new file mode 100644
index 0000000..dbaa7e7
Binary files /dev/null and b/wp-icons/32/wg_import.png differ
diff --git a/wp-icons/32/wg_msg.png b/wp-icons/32/wg_msg.png
new file mode 100644
index 0000000..5bd0115
Binary files /dev/null and b/wp-icons/32/wg_msg.png differ
diff --git a/wp-icons/32/wg_trash.png b/wp-icons/32/wg_trash.png
new file mode 100644
index 0000000..57f604d
Binary files /dev/null and b/wp-icons/32/wg_trash.png differ
diff --git a/wp-icons/32/wg_vpn-start.png b/wp-icons/32/wg_vpn-start.png
new file mode 100644
index 0000000..149142f
Binary files /dev/null and b/wp-icons/32/wg_vpn-start.png differ
diff --git a/wp-icons/32/wg_vpn-stop.png b/wp-icons/32/wg_vpn-stop.png
new file mode 100644
index 0000000..f29cbe6
Binary files /dev/null and b/wp-icons/32/wg_vpn-stop.png differ
diff --git a/wp-icons/32/wg_vpn.png b/wp-icons/32/wg_vpn.png
new file mode 100644
index 0000000..55df4dd
Binary files /dev/null and b/wp-icons/32/wg_vpn.png differ
diff --git a/wp-icons/48/error.png b/wp-icons/48/error.png
new file mode 100644
index 0000000..92a731a
Binary files /dev/null and b/wp-icons/48/error.png differ
diff --git a/icons/wg-export-48.png b/wp-icons/48/wg_export.png
similarity index 100%
rename from icons/wg-export-48.png
rename to wp-icons/48/wg_export.png
diff --git a/icons/wg-import.png b/wp-icons/48/wg_import.png
similarity index 100%
rename from icons/wg-import.png
rename to wp-icons/48/wg_import.png
diff --git a/wp-icons/48/wg_msg.png b/wp-icons/48/wg_msg.png
new file mode 100644
index 0000000..732eabb
Binary files /dev/null and b/wp-icons/48/wg_msg.png differ
diff --git a/icons/wg-trash-48.png b/wp-icons/48/wg_trash.png
similarity index 100%
rename from icons/wg-trash-48.png
rename to wp-icons/48/wg_trash.png
diff --git a/icons/wg-vpn-start-48.png b/wp-icons/48/wg_vpn-start.png
similarity index 100%
rename from icons/wg-vpn-start-48.png
rename to wp-icons/48/wg_vpn-start.png
diff --git a/icons/wg-vpn-stop-48.png b/wp-icons/48/wg_vpn-stop.png
similarity index 100%
rename from icons/wg-vpn-stop-48.png
rename to wp-icons/48/wg_vpn-stop.png
diff --git a/icons/wg-vpn-48.png b/wp-icons/48/wg_vpn.png
similarity index 100%
rename from icons/wg-vpn-48.png
rename to wp-icons/48/wg_vpn.png
diff --git a/icons/warning_64.png b/wp-icons/64/error.png
similarity index 100%
rename from icons/warning_64.png
rename to wp-icons/64/error.png
diff --git a/wp-icons/64/wg_export.png b/wp-icons/64/wg_export.png
new file mode 100644
index 0000000..7d14d17
Binary files /dev/null and b/wp-icons/64/wg_export.png differ
diff --git a/wp-icons/64/wg_import.png b/wp-icons/64/wg_import.png
new file mode 100644
index 0000000..c9b0c85
Binary files /dev/null and b/wp-icons/64/wg_import.png differ
diff --git a/wp-icons/64/wg_msg.png b/wp-icons/64/wg_msg.png
new file mode 100644
index 0000000..d821d13
Binary files /dev/null and b/wp-icons/64/wg_msg.png differ
diff --git a/icons/wg-trash-64.png b/wp-icons/64/wg_trash.png
similarity index 100%
rename from icons/wg-trash-64.png
rename to wp-icons/64/wg_trash.png
diff --git a/wp-icons/64/wg_vpn-start.png b/wp-icons/64/wg_vpn-start.png
new file mode 100644
index 0000000..3eeb910
Binary files /dev/null and b/wp-icons/64/wg_vpn-start.png differ
diff --git a/wp-icons/64/wg_vpn-stop.png b/wp-icons/64/wg_vpn-stop.png
new file mode 100644
index 0000000..03a5044
Binary files /dev/null and b/wp-icons/64/wg_vpn-stop.png differ
diff --git a/wp-icons/64/wg_vpn.png b/wp-icons/64/wg_vpn.png
new file mode 100644
index 0000000..d69ef68
Binary files /dev/null and b/wp-icons/64/wg_vpn.png differ