diff --git a/.github/workflows/windows-release.yml b/.github/workflows/windows-release.yml
deleted file mode 100644
index 3980832..0000000
--- a/.github/workflows/windows-release.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-name: Release Build (Windows)
-
-on:
- push:
- branches:
- - "release/**"
-
-jobs:
- build-and-merge:
- runs-on: windows-latest
-
- steps:
- - name: Checkout the release branch
- uses: actions/checkout@v4
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Extract version from branch name
- id: extract
- shell: bash
- run: |
- version="${GITHUB_REF##*/}"
- echo "version=$version" >> $GITHUB_OUTPUT
-
- - name: Set up Git
- shell: bash
- run: |
- git config user.name "github-actions"
- git config user.email "github-actions@github.com"
-
- - name: Run build script
- shell: cmd
- run: .\build-scripts\windows-build.bat
-
- - name: Commit and push build artifacts
- shell: bash
- run: |
- git add -A
- git commit -m "Automated release build for version: ${{ steps.extract.outputs.version }}" || echo "No changes to commit"
- git push origin ${{ github.ref }}
-
- - name: Fetch and force merge into main
- shell: bash
- run: |
- git fetch origin main
- git checkout main
- git merge -X theirs ${{ github.ref }} -m "Merging release version ${{ steps.extract.outputs.version }} into main"
- git push origin main
diff --git a/.gitignore b/.gitignore
index 2f5a024..345ff6f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,19 +2,13 @@
config.js
devices/*
-tmp
+tmp/
log.txt
Macrame.exe
-public/*
-
+public
macros/*
-!macros/TEST-*
-
-panels/*
-!panels/test_panel
-
builds
node_modules
ToDo.md
\ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index 2f69d0a..0000000
--- a/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Macrame
-
-*The current release isn't yet public.*
-
-Turn Any Device into a button panel. Open-source, easy, and built to supercharge your workflow or gaming.
-Macrame is released under the GPL V3 licence. More information can be found at: [Macrame License](https://macrame-app.github.io/license.html)
-
-Macrame is small application that can be used to record keyboard macros.
-The macros can be linked to button panels and the panels can be used by devices on the same network.
-
-## Getting Started
-
-Read the [official documentation](https://macrame-app.github.io/) about the Macrame app to get started.
diff --git a/app/helper/env-helper.go b/app/helper/env-helper.go
index 0eb5e1e..28af4d4 100644
--- a/app/helper/env-helper.go
+++ b/app/helper/env-helper.go
@@ -36,7 +36,7 @@ func EnvGet(key string) string {
if !configFileExists() {
CreateConfigFile(configPath)
- CheckUIDevDir()
+ CheckFeDevDir()
}
data, err := os.ReadFile(configPath)
@@ -63,12 +63,12 @@ func configFileExists() bool {
return err == nil
}
-func CheckUIDevDir() {
+func CheckFeDevDir() {
log.Println("Checking FE dev directory...")
- _, err := os.Stat("ui")
+ _, err := os.Stat("fe")
if err != nil {
- log.Println("Error checking ui dev directory:", err)
+ log.Println("Error checking FE dev directory:", err)
return
}
@@ -83,7 +83,7 @@ func copyConfigToFe() {
return
}
- if err := os.WriteFile("ui/config.js", data, 0644); err != nil {
+ if err := os.WriteFile("fe/config.js", data, 0644); err != nil {
log.Println("Error writing config.js:", err)
}
}
diff --git a/build-scripts/windows-build.bat b/build-scripts/windows-build.bat
deleted file mode 100644
index 3dfd88f..0000000
--- a/build-scripts/windows-build.bat
+++ /dev/null
@@ -1,52 +0,0 @@
-@echo off
-setlocal enabledelayedexpansion
-
-REM Step 1: Build Macrame Go application for Windows
-echo Building Macrame Go Application for Windows...
-
-go build -ldflags "-H=windowsgui" -o Macrame.exe main.go
-
-IF %ERRORLEVEL% NEQ 0 (
- echo Go build failed!
- exit /b %ERRORLEVEL%
-) ELSE (
- echo Go build was successful!
-)
-
-REM Step 2: Build Macrame Vue UI
-echo Moving to ui directory and building Vue UI
-cd ui
-
-echo Running npm install...
-call npm install
-IF %ERRORLEVEL% NEQ 0 (
- echo npm install failed!
- exit /b %ERRORLEVEL%
-)
-
-echo Running npm run build...
-call npm run build
-IF %ERRORLEVEL% NEQ 0 (
- echo npm run build failed!
- exit /b %ERRORLEVEL%
-)
-
-cd ..
-
-REM Step 3: Cleanup root directory of build files.
-echo Cleaning up root directory...
-
-echo Removing directories: app, ui, and build-scripts
-rmdir /s /q app
-rmdir /s /q ui
-rmdir /s /q build-scripts
-
-for %%F in (*) do (
- set "file=%%~nxF"
- if /I not "!file!"=="Macrame.exe" if /I not "!file!"=="favicon.ico" if /I not "!file!"=="README.md" (
- echo Deleting !file!
- del /f /q "%%F"
- )
-)
-
-echo Build and cleanup complete.
diff --git a/build.sh b/build.sh
new file mode 100644
index 0000000..65eb876
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+# Set the name of the build directory
+BUILD_DIR="Macrame_$(date +'%m%d%H%M%S')"
+
+# Build the Go application
+go build -ldflags "-H=windowsgui" -o Macrame.exe main.go
+
+# Build the frontend
+cd fe
+npm run build
+
+cd ../builds
+
+# Create the new build directory
+mkdir $BUILD_DIR
+mkdir $BUILD_DIR/macros
+mkdir $BUILD_DIR/panels
+mkdir $BUILD_DIR/panels/test_panel
+mkdir $BUILD_DIR/public
+mkdir $BUILD_DIR/public/assets
+
+# Move the generated files to the new build directory
+cp ../Macrame.exe $BUILD_DIR/Macrame.exe
+cp ../favicon.ico $BUILD_DIR/favicon.ico
+find ../macros -type f ! -name 'ED-*' -exec cp --parents {} "$BUILD_DIR/macros/" \;
+cp -r ../panels/test_panel/* $BUILD_DIR/panels/test_panel/
+mv ../public/* $BUILD_DIR/public/
+
+# cp ../install.bat $BUILD_DIR/install.bat
+
+powershell -Command "Compress-Archive -Path $BUILD_DIR/* -DestinationPath $BUILD_DIR.zip -Force"
+
+# Print the path to the new build directory
+echo "Build directory: ../$BUILD_DIR"
\ No newline at end of file
diff --git a/ui/.editorconfig b/fe/.editorconfig
similarity index 100%
rename from ui/.editorconfig
rename to fe/.editorconfig
diff --git a/ui/.gitattributes b/fe/.gitattributes
similarity index 100%
rename from ui/.gitattributes
rename to fe/.gitattributes
diff --git a/ui/.gitignore b/fe/.gitignore
similarity index 100%
rename from ui/.gitignore
rename to fe/.gitignore
diff --git a/ui/.prettierrc.json b/fe/.prettierrc.json
similarity index 100%
rename from ui/.prettierrc.json
rename to fe/.prettierrc.json
diff --git a/ui/.vscode/extensions.json b/fe/.vscode/extensions.json
similarity index 100%
rename from ui/.vscode/extensions.json
rename to fe/.vscode/extensions.json
diff --git a/ui/README.md b/fe/README.md
similarity index 100%
rename from ui/README.md
rename to fe/README.md
diff --git a/ui/eslint.config.js b/fe/eslint.config.js
similarity index 100%
rename from ui/eslint.config.js
rename to fe/eslint.config.js
diff --git a/ui/index.html b/fe/index.html
similarity index 100%
rename from ui/index.html
rename to fe/index.html
diff --git a/ui/jsconfig.json b/fe/jsconfig.json
similarity index 100%
rename from ui/jsconfig.json
rename to fe/jsconfig.json
diff --git a/ui/mcrm-icon.svg b/fe/mcrm-icon.svg
similarity index 100%
rename from ui/mcrm-icon.svg
rename to fe/mcrm-icon.svg
diff --git a/ui/package-lock.json b/fe/package-lock.json
similarity index 100%
rename from ui/package-lock.json
rename to fe/package-lock.json
diff --git a/ui/package.json b/fe/package.json
similarity index 82%
rename from ui/package.json
rename to fe/package.json
index 0770485..f23dda3 100644
--- a/ui/package.json
+++ b/fe/package.json
@@ -1,8 +1,7 @@
{
- "name": "Macrame - UI",
- "description": "Macrame UI - Macrame is a small application that can turn any device into a button panel for your pc.",
- "version": "1.0.0",
- "private": false,
+ "name": "fe",
+ "version": "0.0.0",
+ "private": true,
"type": "module",
"scripts": {
"dev": "vite --host",
diff --git a/ui/src/App.vue b/fe/src/App.vue
similarity index 100%
rename from ui/src/App.vue
rename to fe/src/App.vue
diff --git a/ui/src/assets/img/Macrame-Logo-duo.svg b/fe/src/assets/img/Macrame-Logo-duo.svg
similarity index 100%
rename from ui/src/assets/img/Macrame-Logo-duo.svg
rename to fe/src/assets/img/Macrame-Logo-duo.svg
diff --git a/ui/src/assets/img/Macrame-Logo-gradient.svg b/fe/src/assets/img/Macrame-Logo-gradient.svg
similarity index 100%
rename from ui/src/assets/img/Macrame-Logo-gradient.svg
rename to fe/src/assets/img/Macrame-Logo-gradient.svg
diff --git a/ui/src/assets/img/Macrame-Logo-white.svg b/fe/src/assets/img/Macrame-Logo-white.svg
similarity index 100%
rename from ui/src/assets/img/Macrame-Logo-white.svg
rename to fe/src/assets/img/Macrame-Logo-white.svg
diff --git a/ui/src/assets/img/bg-gradient.svg b/fe/src/assets/img/bg-gradient.svg
similarity index 100%
rename from ui/src/assets/img/bg-gradient.svg
rename to fe/src/assets/img/bg-gradient.svg
diff --git a/ui/src/assets/main.css b/fe/src/assets/main.css
similarity index 100%
rename from ui/src/assets/main.css
rename to fe/src/assets/main.css
diff --git a/ui/src/assets/style/_content.css b/fe/src/assets/style/_content.css
similarity index 100%
rename from ui/src/assets/style/_content.css
rename to fe/src/assets/style/_content.css
diff --git a/ui/src/assets/style/_form.css b/fe/src/assets/style/_form.css
similarity index 100%
rename from ui/src/assets/style/_form.css
rename to fe/src/assets/style/_form.css
diff --git a/ui/src/assets/style/_macro.css b/fe/src/assets/style/_macro.css
similarity index 100%
rename from ui/src/assets/style/_macro.css
rename to fe/src/assets/style/_macro.css
diff --git a/ui/src/assets/style/_mcrm-block.css b/fe/src/assets/style/_mcrm-block.css
similarity index 100%
rename from ui/src/assets/style/_mcrm-block.css
rename to fe/src/assets/style/_mcrm-block.css
diff --git a/ui/src/assets/style/_panel.css b/fe/src/assets/style/_panel.css
similarity index 100%
rename from ui/src/assets/style/_panel.css
rename to fe/src/assets/style/_panel.css
diff --git a/ui/src/assets/style/_scrollbar.css b/fe/src/assets/style/_scrollbar.css
similarity index 100%
rename from ui/src/assets/style/_scrollbar.css
rename to fe/src/assets/style/_scrollbar.css
diff --git a/ui/src/components/base/AccordionComp.vue b/fe/src/components/base/AccordionComp.vue
similarity index 100%
rename from ui/src/components/base/AccordionComp.vue
rename to fe/src/components/base/AccordionComp.vue
diff --git a/ui/src/components/base/AlertComp.vue b/fe/src/components/base/AlertComp.vue
similarity index 100%
rename from ui/src/components/base/AlertComp.vue
rename to fe/src/components/base/AlertComp.vue
diff --git a/ui/src/components/base/ButtonComp.vue b/fe/src/components/base/ButtonComp.vue
similarity index 100%
rename from ui/src/components/base/ButtonComp.vue
rename to fe/src/components/base/ButtonComp.vue
diff --git a/ui/src/components/base/ButtonGroup.vue b/fe/src/components/base/ButtonGroup.vue
similarity index 100%
rename from ui/src/components/base/ButtonGroup.vue
rename to fe/src/components/base/ButtonGroup.vue
diff --git a/ui/src/components/base/ContextMenu.vue b/fe/src/components/base/ContextMenu.vue
similarity index 100%
rename from ui/src/components/base/ContextMenu.vue
rename to fe/src/components/base/ContextMenu.vue
diff --git a/ui/src/components/base/DialogComp.vue b/fe/src/components/base/DialogComp.vue
similarity index 100%
rename from ui/src/components/base/DialogComp.vue
rename to fe/src/components/base/DialogComp.vue
diff --git a/ui/src/components/base/LoadComp.vue b/fe/src/components/base/LoadComp.vue
similarity index 100%
rename from ui/src/components/base/LoadComp.vue
rename to fe/src/components/base/LoadComp.vue
diff --git a/ui/src/components/base/MainMenu.vue b/fe/src/components/base/MainMenu.vue
similarity index 100%
rename from ui/src/components/base/MainMenu.vue
rename to fe/src/components/base/MainMenu.vue
diff --git a/ui/src/components/dashboard/RemoteView.vue b/fe/src/components/dashboard/RemoteView.vue
similarity index 100%
rename from ui/src/components/dashboard/RemoteView.vue
rename to fe/src/components/dashboard/RemoteView.vue
diff --git a/ui/src/components/dashboard/ServerView.vue b/fe/src/components/dashboard/ServerView.vue
similarity index 100%
rename from ui/src/components/dashboard/ServerView.vue
rename to fe/src/components/dashboard/ServerView.vue
diff --git a/ui/src/components/devices/RemoteView.vue b/fe/src/components/devices/RemoteView.vue
similarity index 100%
rename from ui/src/components/devices/RemoteView.vue
rename to fe/src/components/devices/RemoteView.vue
diff --git a/ui/src/components/devices/ServerView.vue b/fe/src/components/devices/ServerView.vue
similarity index 100%
rename from ui/src/components/devices/ServerView.vue
rename to fe/src/components/devices/ServerView.vue
diff --git a/ui/src/components/form/FormSelect.vue b/fe/src/components/form/FormSelect.vue
similarity index 100%
rename from ui/src/components/form/FormSelect.vue
rename to fe/src/components/form/FormSelect.vue
diff --git a/ui/src/components/macros/MacroOverview.vue b/fe/src/components/macros/MacroOverview.vue
similarity index 100%
rename from ui/src/components/macros/MacroOverview.vue
rename to fe/src/components/macros/MacroOverview.vue
diff --git a/ui/src/components/macros/MacroRecorder.vue b/fe/src/components/macros/MacroRecorder.vue
similarity index 100%
rename from ui/src/components/macros/MacroRecorder.vue
rename to fe/src/components/macros/MacroRecorder.vue
diff --git a/ui/src/components/macros/components/DelaySpan.vue b/fe/src/components/macros/components/DelaySpan.vue
similarity index 100%
rename from ui/src/components/macros/components/DelaySpan.vue
rename to fe/src/components/macros/components/DelaySpan.vue
diff --git a/ui/src/components/macros/components/DeleteKeyDialog.vue b/fe/src/components/macros/components/DeleteKeyDialog.vue
similarity index 100%
rename from ui/src/components/macros/components/DeleteKeyDialog.vue
rename to fe/src/components/macros/components/DeleteKeyDialog.vue
diff --git a/ui/src/components/macros/components/EditDelayDialog.vue b/fe/src/components/macros/components/EditDelayDialog.vue
similarity index 100%
rename from ui/src/components/macros/components/EditDelayDialog.vue
rename to fe/src/components/macros/components/EditDelayDialog.vue
diff --git a/ui/src/components/macros/components/EditKeyDialog.vue b/fe/src/components/macros/components/EditKeyDialog.vue
similarity index 100%
rename from ui/src/components/macros/components/EditKeyDialog.vue
rename to fe/src/components/macros/components/EditKeyDialog.vue
diff --git a/ui/src/components/macros/components/FixedDelayMenu.vue b/fe/src/components/macros/components/FixedDelayMenu.vue
similarity index 100%
rename from ui/src/components/macros/components/FixedDelayMenu.vue
rename to fe/src/components/macros/components/FixedDelayMenu.vue
diff --git a/ui/src/components/macros/components/InsertKeyDialog.vue b/fe/src/components/macros/components/InsertKeyDialog.vue
similarity index 100%
rename from ui/src/components/macros/components/InsertKeyDialog.vue
rename to fe/src/components/macros/components/InsertKeyDialog.vue
diff --git a/ui/src/components/macros/components/MacroKey.vue b/fe/src/components/macros/components/MacroKey.vue
similarity index 100%
rename from ui/src/components/macros/components/MacroKey.vue
rename to fe/src/components/macros/components/MacroKey.vue
diff --git a/ui/src/components/macros/components/ValidationErrorDialog.vue b/fe/src/components/macros/components/ValidationErrorDialog.vue
similarity index 100%
rename from ui/src/components/macros/components/ValidationErrorDialog.vue
rename to fe/src/components/macros/components/ValidationErrorDialog.vue
diff --git a/ui/src/components/macros/parts/EditDialogs.vue b/fe/src/components/macros/parts/EditDialogs.vue
similarity index 100%
rename from ui/src/components/macros/parts/EditDialogs.vue
rename to fe/src/components/macros/parts/EditDialogs.vue
diff --git a/ui/src/components/macros/parts/RecorderFooter.vue b/fe/src/components/macros/parts/RecorderFooter.vue
similarity index 100%
rename from ui/src/components/macros/parts/RecorderFooter.vue
rename to fe/src/components/macros/parts/RecorderFooter.vue
diff --git a/ui/src/components/macros/parts/RecorderHeader.vue b/fe/src/components/macros/parts/RecorderHeader.vue
similarity index 100%
rename from ui/src/components/macros/parts/RecorderHeader.vue
rename to fe/src/components/macros/parts/RecorderHeader.vue
diff --git a/ui/src/components/macros/parts/RecorderInput.vue b/fe/src/components/macros/parts/RecorderInput.vue
similarity index 100%
rename from ui/src/components/macros/parts/RecorderInput.vue
rename to fe/src/components/macros/parts/RecorderInput.vue
diff --git a/ui/src/components/macros/parts/RecorderOutput.vue b/fe/src/components/macros/parts/RecorderOutput.vue
similarity index 100%
rename from ui/src/components/macros/parts/RecorderOutput.vue
rename to fe/src/components/macros/parts/RecorderOutput.vue
diff --git a/ui/src/components/panels/PanelEdit.vue b/fe/src/components/panels/PanelEdit.vue
similarity index 100%
rename from ui/src/components/panels/PanelEdit.vue
rename to fe/src/components/panels/PanelEdit.vue
diff --git a/ui/src/components/panels/PanelView.vue b/fe/src/components/panels/PanelView.vue
similarity index 100%
rename from ui/src/components/panels/PanelView.vue
rename to fe/src/components/panels/PanelView.vue
diff --git a/ui/src/components/panels/PanelsOverview.vue b/fe/src/components/panels/PanelsOverview.vue
similarity index 100%
rename from ui/src/components/panels/PanelsOverview.vue
rename to fe/src/components/panels/PanelsOverview.vue
diff --git a/ui/src/main.js b/fe/src/main.js
similarity index 100%
rename from ui/src/main.js
rename to fe/src/main.js
diff --git a/ui/src/router/index.js b/fe/src/router/index.js
similarity index 100%
rename from ui/src/router/index.js
rename to fe/src/router/index.js
diff --git a/ui/src/services/ApiService.js b/fe/src/services/ApiService.js
similarity index 100%
rename from ui/src/services/ApiService.js
rename to fe/src/services/ApiService.js
diff --git a/ui/src/services/EncryptService.js b/fe/src/services/EncryptService.js
similarity index 100%
rename from ui/src/services/EncryptService.js
rename to fe/src/services/EncryptService.js
diff --git a/ui/src/services/MacroRecordService.js b/fe/src/services/MacroRecordService.js
similarity index 100%
rename from ui/src/services/MacroRecordService.js
rename to fe/src/services/MacroRecordService.js
diff --git a/ui/src/services/MacroService.js b/fe/src/services/MacroService.js
similarity index 100%
rename from ui/src/services/MacroService.js
rename to fe/src/services/MacroService.js
diff --git a/ui/src/services/PanelService.js b/fe/src/services/PanelService.js
similarity index 100%
rename from ui/src/services/PanelService.js
rename to fe/src/services/PanelService.js
diff --git a/ui/src/services/RobotKeys.md b/fe/src/services/RobotKeys.md
similarity index 100%
rename from ui/src/services/RobotKeys.md
rename to fe/src/services/RobotKeys.md
diff --git a/ui/src/stores/counter.js b/fe/src/stores/counter.js
similarity index 100%
rename from ui/src/stores/counter.js
rename to fe/src/stores/counter.js
diff --git a/ui/src/stores/device.js b/fe/src/stores/device.js
similarity index 100%
rename from ui/src/stores/device.js
rename to fe/src/stores/device.js
diff --git a/ui/src/stores/macrorecorder.js b/fe/src/stores/macrorecorder.js
similarity index 100%
rename from ui/src/stores/macrorecorder.js
rename to fe/src/stores/macrorecorder.js
diff --git a/ui/src/stores/panel.js b/fe/src/stores/panel.js
similarity index 100%
rename from ui/src/stores/panel.js
rename to fe/src/stores/panel.js
diff --git a/ui/src/views/DashboardView.vue b/fe/src/views/DashboardView.vue
similarity index 100%
rename from ui/src/views/DashboardView.vue
rename to fe/src/views/DashboardView.vue
diff --git a/ui/src/views/DevicesView.vue b/fe/src/views/DevicesView.vue
similarity index 100%
rename from ui/src/views/DevicesView.vue
rename to fe/src/views/DevicesView.vue
diff --git a/ui/src/views/MacrosView.vue b/fe/src/views/MacrosView.vue
similarity index 100%
rename from ui/src/views/MacrosView.vue
rename to fe/src/views/MacrosView.vue
diff --git a/ui/src/views/PanelsView.vue b/fe/src/views/PanelsView.vue
similarity index 100%
rename from ui/src/views/PanelsView.vue
rename to fe/src/views/PanelsView.vue
diff --git a/ui/src/views/SettingsView.vue b/fe/src/views/SettingsView.vue
similarity index 100%
rename from ui/src/views/SettingsView.vue
rename to fe/src/views/SettingsView.vue
diff --git a/ui/vite.config.js b/fe/vite.config.js
similarity index 100%
rename from ui/vite.config.js
rename to fe/vite.config.js
diff --git a/macros/TEST-Close_Application.json b/macros/TEST-Close_Application.json
deleted file mode 100644
index c481f1b..0000000
--- a/macros/TEST-Close_Application.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
- { "code": "lalt", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "f4", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lalt", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "f4", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-Close_Browser_Window.json b/macros/TEST-Close_Browser_Window.json
deleted file mode 100644
index 63cb228..0000000
--- a/macros/TEST-Close_Browser_Window.json
+++ /dev/null
@@ -1,13 +0,0 @@
-[
- { "code": "lctrl", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lshift", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "w", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lctrl", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lshift", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "w", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-Close_Tab.json b/macros/TEST-Close_Tab.json
deleted file mode 100644
index 577aa88..0000000
--- a/macros/TEST-Close_Tab.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
- { "code": "lctrl", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "w", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lctrl", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "w", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-Displays.json b/macros/TEST-Displays.json
deleted file mode 100644
index 80ba168..0000000
--- a/macros/TEST-Displays.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
- { "code": "lcmd", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "p", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lcmd", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "p", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-Files.json b/macros/TEST-Files.json
deleted file mode 100644
index be664ab..0000000
--- a/macros/TEST-Files.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
- { "code": "lcmd", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "e", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lcmd", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "e", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-Fullscreen.json b/macros/TEST-Fullscreen.json
deleted file mode 100644
index 16aa578..0000000
--- a/macros/TEST-Fullscreen.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"code":"f11","direction":"down","type":"key"},{"type":"delay","value":15},{"code":"f11","direction":"up","type":"key"}]
\ No newline at end of file
diff --git a/macros/TEST-Home.json b/macros/TEST-Home.json
deleted file mode 100644
index 4782647..0000000
--- a/macros/TEST-Home.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
- { "code": "lalt", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "home", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "home", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lalt", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-New_Desktop.json b/macros/TEST-New_Desktop.json
deleted file mode 100644
index 9ade4e0..0000000
--- a/macros/TEST-New_Desktop.json
+++ /dev/null
@@ -1,13 +0,0 @@
-[
- { "code": "lcmd", "direction": "down", "type": "key" },
- { "type": "delay", "value": 50 },
- { "code": "lctrl", "direction": "down", "type": "key" },
- { "type": "delay", "value": 50 },
- { "code": "d", "direction": "down", "type": "key" },
- { "type": "delay", "value": 50 },
- { "code": "lcmd", "direction": "up", "type": "key" },
- { "type": "delay", "value": 50 },
- { "code": "lctrl", "direction": "up", "type": "key" },
- { "type": "delay", "value": 50 },
- { "code": "d", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-New_Tab.json b/macros/TEST-New_Tab.json
deleted file mode 100644
index f62acf0..0000000
--- a/macros/TEST-New_Tab.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
- { "code": "lctrl", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "t", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lctrl", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "t", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-New_Window.json b/macros/TEST-New_Window.json
deleted file mode 100644
index 8880f54..0000000
--- a/macros/TEST-New_Window.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
- { "code": "lctrl", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "n", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lctrl", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "n", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-Next_Tab.json b/macros/TEST-Next_Tab.json
deleted file mode 100644
index 1ee9641..0000000
--- a/macros/TEST-Next_Tab.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
- { "code": "lctrl", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "tab", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lctrl", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "tab", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-PlayPause.json b/macros/TEST-PlayPause.json
deleted file mode 100644
index 5471bd1..0000000
--- a/macros/TEST-PlayPause.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"code":"audio_play|audio_pause","direction":"down","type":"key"},{"type":"delay","value":15},{"code":"audio_play|audio_pause","direction":"up","type":"key"}]
\ No newline at end of file
diff --git a/macros/TEST-Previous_Tab.json b/macros/TEST-Previous_Tab.json
deleted file mode 100644
index 57dfb44..0000000
--- a/macros/TEST-Previous_Tab.json
+++ /dev/null
@@ -1,13 +0,0 @@
-[
- { "code": "lctrl", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lshift", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "tab", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lctrl", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lshift", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "tab", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-RunDialog.json b/macros/TEST-RunDialog.json
deleted file mode 100644
index 4b73502..0000000
--- a/macros/TEST-RunDialog.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
- { "code": "lcmd", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "r", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lcmd", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "r", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-Settings.json b/macros/TEST-Settings.json
deleted file mode 100644
index fdc8f80..0000000
--- a/macros/TEST-Settings.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
- { "code": "lcmd", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "i", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lcmd", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "i", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-Task_manager.json b/macros/TEST-Task_manager.json
deleted file mode 100644
index 732e5df..0000000
--- a/macros/TEST-Task_manager.json
+++ /dev/null
@@ -1,13 +0,0 @@
-[
- { "code": "lctrl", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lshift", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "esc", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "esc", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lshift", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lctrl", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-Task_view.json b/macros/TEST-Task_view.json
deleted file mode 100644
index 65901ec..0000000
--- a/macros/TEST-Task_view.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
- { "code": "lcmd", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "tab", "direction": "down", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "lcmd", "direction": "up", "type": "key" },
- { "type": "delay", "value": 15 },
- { "code": "tab", "direction": "up", "type": "key" }
-]
diff --git a/macros/TEST-desktop.json b/macros/TEST-desktop.json
deleted file mode 100644
index 03341e3..0000000
--- a/macros/TEST-desktop.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"type":"key","key":"Meta","code":"MetaLeft","location":1,"direction":"down","value":0},{"type":"delay","key":"","code":"","location":0,"direction":"","value":240},{"type":"key","key":"d","code":"KeyD","location":0,"direction":"down","value":0},{"type":"delay","key":"","code":"","location":0,"direction":"","value":10},{"type":"key","key":"d","code":"KeyD","location":0,"direction":"up","value":0},{"type":"delay","key":"","code":"","location":0,"direction":"","value":10},{"type":"key","key":"Meta","code":"MetaLeft","location":1,"direction":"up","value":0}]
\ No newline at end of file
diff --git a/panels/Elite_Dangerous/index.html b/panels/Elite_Dangerous/index.html
new file mode 100644
index 0000000..2d230d9
--- /dev/null
+++ b/panels/Elite_Dangerous/index.html
@@ -0,0 +1,913 @@
+
+
+
L?ve(f,b,y,!0,!1,P):Se(u,p,_,b,y,S,w,E,P)},Ge=(f,u,p,_,b,y,S,w,E)=>{let x=0;const L=u.length;let P=f.length-1,F=L-1;for(;x<=P&&x<=F;){const $=f[x],U=u[x]=E?Ye(u[x]):Fe(u[x]);if(Ct($,U))A($,U,p,null,b,y,S,w,E);else break;x++}for(;x<=P&&x<=F;){const $=f[P],U=u[F]=E?Ye(u[F]):Fe(u[F]);if(Ct($,U))A($,U,p,null,b,y,S,w,E);else break;P--,F--}if(x>P){if(x<=F){const $=F+1,U=$