From 86f98cb8e51844e7fdaf665ab7362598d8869ef4 Mon Sep 17 00:00:00 2001 From: JaxxMoss Date: Fri, 2 May 2025 22:23:23 +0200 Subject: [PATCH] WIP: Trayicon --- be/app/api.go | 20 +++++++-------- be/app/device.go | 38 +++++++++++++++++++---------- be/app/log.go | 18 +++++++------- be/app/systray.go | 61 ++++++++++++++++++++++++++++++++++++++++++++++ be/favicon.ico | Bin 0 -> 195703 bytes be/main.go | 20 ++++++++------- 6 files changed, 116 insertions(+), 41 deletions(-) create mode 100644 be/app/systray.go create mode 100644 be/favicon.ico diff --git a/be/app/api.go b/be/app/api.go index 7f2ebc0..75c16f8 100644 --- a/be/app/api.go +++ b/be/app/api.go @@ -1,21 +1,21 @@ /* -Macrame is a program that enables the user to create keyboard macros and button panels. -The macros are saved as simple JSON files and can be linked to the button panels. The panels can +Macrame is a program that enables the user to create keyboard macros and button panels. +The macros are saved as simple JSON files and can be linked to the button panels. The panels can be created with HTML and CSS. Copyright (C) 2025 Jesse Malotaux -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -You should have received a copy of the GNU General Public License +You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -96,7 +96,7 @@ func ApiPost(w http.ResponseWriter, r *http.Request) { case "/macro/play": PlayMacro("", w, r) case "/device/server/ip": - GetServerIP(w, r) + GetServerIP(w) case "/device/list": DeviceList(w, r) case "/device/access/check": diff --git a/be/app/device.go b/be/app/device.go index 8c83f43..9a906dd 100644 --- a/be/app/device.go +++ b/be/app/device.go @@ -1,21 +1,21 @@ /* -Macrame is a program that enables the user to create keyboard macros and button panels. -The macros are saved as simple JSON files and can be linked to the button panels. The panels can +Macrame is a program that enables the user to create keyboard macros and button panels. +The macros are saved as simple JSON files and can be linked to the button panels. The panels can be created with HTML and CSS. Copyright (C) 2025 Jesse Malotaux -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -You should have received a copy of the GNU General Public License +You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -35,11 +35,22 @@ import ( "time" ) -func GetServerIP(w http.ResponseWriter, r *http.Request) { +func ListServerIP(w http.ResponseWriter) { + ip, err := GetServerIp() + + if err != nil { + MCRMLog("GetServerIP err: ", err) + return + } + + json.NewEncoder(w).Encode(ip) +} + +func GetServerIp() (string, error) { ifs, err := net.Interfaces() if err != nil { MCRMLog(err) - return + return "", err } for _, ifi := range ifs { @@ -78,10 +89,11 @@ func GetServerIP(w http.ResponseWriter, r *http.Request) { } // Found a good IP, return it - json.NewEncoder(w).Encode(ip.String()) - return + return ip.String(), nil } } + + return "", fmt.Errorf("No IP found") } func DeviceList(w http.ResponseWriter, r *http.Request) { diff --git a/be/app/log.go b/be/app/log.go index 894d1da..db662ed 100644 --- a/be/app/log.go +++ b/be/app/log.go @@ -1,21 +1,21 @@ /* -Macrame is a program that enables the user to create keyboard macros and button panels. -The macros are saved as simple JSON files and can be linked to the button panels. The panels can +Macrame is a program that enables the user to create keyboard macros and button panels. +The macros are saved as simple JSON files and can be linked to the button panels. The panels can be created with HTML and CSS. Copyright (C) 2025 Jesse Malotaux -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -You should have received a copy of the GNU General Public License +You should have received a copy of the GNU General Public License along with this program. If not, see . */ diff --git a/be/app/systray.go b/be/app/systray.go new file mode 100644 index 0000000..dcece3f --- /dev/null +++ b/be/app/systray.go @@ -0,0 +1,61 @@ +package app + +import ( + "be/app/helper" + "os" + + "github.com/getlantern/systray" +) + +func InitSystray() { + go func() { + systray.Run(OnReady, OnExit) + }() +} + +func OnReady() { + systray.SetIcon(getFavicon()) + systray.SetTitle("Macrame") + systray.SetTooltip("Macrame - Server") + + ip, _ := GetServerIp() + + systray.AddMenuItem("IP: "+ip+":"+helper.EnvGet("MCRM__PORT"), "") + + systray.AddSeparator() + + addMCRMItem("Dashboard", "/") + addMCRMItem("Panels", "/panels") + addMCRMItem("Macros", "/macros") + addMCRMItem("Devices", "/devices") + + systray.AddSeparator() + + mQuit := systray.AddMenuItem("Quit Macrame", "Quit Macrame") + go func() { + <-mQuit.ClickedCh + os.Exit(0) + }() +} + +func addMCRMItem(name, urlPath string) { + m := systray.AddMenuItem(name, name) + go func() { + <-m.ClickedCh + helper.OpenBrowser("http://localhost:" + helper.EnvGet("MCRM__PORT") + urlPath) + }() +} + +func OnExit() { + systray.Quit() +} + +func getFavicon() []byte { + favicon, err := os.ReadFile("favicon.ico") + + if err != nil { + MCRMLog("getFavicon Error: ", err) + } + + return favicon +} diff --git a/be/favicon.ico b/be/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a9a8c2423a69ed6dd8585da98c00df8e48c4a81d GIT binary patch literal 195703 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 literal 0 HcmV?d00001 diff --git a/be/main.go b/be/main.go index 383340c..ecbb126 100644 --- a/be/main.go +++ b/be/main.go @@ -1,21 +1,21 @@ /* -Macrame is a program that enables the user to create keyboard macros and button panels. -The macros are saved as simple JSON files and can be linked to the button panels. The panels can +Macrame is a program that enables the user to create keyboard macros and button panels. +The macros are saved as simple JSON files and can be linked to the button panels. The panels can be created with HTML and CSS. Copyright (C) 2025 Jesse Malotaux -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -You should have received a copy of the GNU General Public License +You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -48,6 +48,8 @@ func main() { app.MCRMLog("Listening on http://localhost:" + helper.EnvGet("MCRM__PORT")) + app.InitSystray() + app.MCRMLog(http.ListenAndServe(":"+helper.EnvGet("MCRM__PORT"), nil)) }