From 4c956ef477c158bc61a185bec5b8815f196769a6 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Thu, 7 Sep 2023 18:57:27 +0800 Subject: [PATCH 1/2] qmk_gui: WIP: Add a debug console Signed-off-by: Daniel Schaefer --- qmk_gui.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/qmk_gui.py b/qmk_gui.py index 719ca22..a23383f 100755 --- a/qmk_gui.py +++ b/qmk_gui.py @@ -171,11 +171,12 @@ def main(devices): [sg.Text("Detected Devices")], ] + device_checkboxes + [ [sg.HorizontalSeparator()], - - [sg.Text("Bootloader")], + ] + bundled_update + [ + [sg.Text("Bootloader & Debug")], [sg.Button("Bootloader", k='-BOOTLOADER-')], + [sg.Button("Open Debug Console", k='-DEBUG-CONSOLE-')], [sg.HorizontalSeparator()], - ] + bundled_update + [ + [sg.Text("Backlight Brightness")], # TODO: Get default from device [sg.Slider((0, 255), orientation='h', default_value=120, @@ -214,8 +215,8 @@ def main(devices): ], [sg.HorizontalSeparator()], - [sg.Text("Save Settings")], - [sg.Button("Save", k='-SAVE-'), sg.Button("Clear EEPROM", k='-CLEAR-EEPROM-')], + [sg.Text("Settings (And key layout)")], + [sg.Button("Save", k='-SAVE-'), sg.Button("Erase Settings", k='-CLEAR-EEPROM-')], [sg.Text(f"Program Version: {PROGRAM_VERSION}")], ] @@ -263,9 +264,16 @@ def main(devices): if event == "-TYPE-": # Once the user has selected a type, the exact firmware file is known and can be flashed window['-FLASH-'].update(disabled=False) + if event == "-DEBUG-CONSOLE-": + if len(selected_devices) != 1: + sg.Popup('To check debug console, select exactly 1 device.') + continue + while True: + sg.Print("Hello") + time.sleep(1) if event == "-FLASH-": if len(selected_devices) != 1: - sg.Popup('To flash select exactly 1 device.') + sg.Popup('To flash, select exactly 1 device.') continue dev = selected_devices[0] ver = values['-VERSION-'] From 954227f503207e855d7c5c8245c881299b27b914 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Thu, 7 Sep 2023 19:03:21 +0800 Subject: [PATCH 2/2] gh-actions: Run workflow only if files changed Signed-off-by: Daniel Schaefer --- .github/workflows/ci.yml | 78 ++++------------------------------ .github/workflows/qmk_gui.yml | 79 +++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 70 deletions(-) create mode 100644 .github/workflows/qmk_gui.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 51e24e1..6a0943d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,13 @@ -name: CI +name: qmk_hid CI + on: push: + branches: + - '*' + paths-ignore: + - '*.py' + - 'requirements.txt' + - 'res/**' jobs: # Enable later @@ -107,72 +114,3 @@ jobs: - name: Run cargo clippy run: cargo clippy -- -D warnings - - build-gui: - name: Build GUI - runs-on: windows-2022 - steps: - - uses: actions/checkout@v3 - - - name: Download releases to bundle - run: | - mkdir releases - mkdir releases\0.2.3 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.3/framework_ansi_default_v0.2.3.uf2 -OutFile releases\0.2.3\framework_ansi_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.3/framework_iso_default_v0.2.3.uf2 -OutFile releases\0.2.3\framework_iso_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.3/framework_jis_default_v0.2.3.uf2 -OutFile releases\0.2.3\framework_jis_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.3/framework_numpad_default_v0.2.3.uf2 -OutFile releases\0.2.3\framework_numpad_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.3/framework_macropad_default_v0.2.3.uf2 -OutFile releases\0.2.3\framework_macropad_default.uf2 - mkdir releases\0.2.2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.2/framework_ansi_default_v0.2.2.uf2 -OutFile releases\0.2.2\framework_ansi_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.2/framework_iso_default_v0.2.2.uf2 -OutFile releases\0.2.2\framework_iso_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.2/framework_jis_default_v0.2.2.uf2 -OutFile releases\0.2.2\framework_jis_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.2/framework_numpad_default_v0.2.2.uf2 -OutFile releases\0.2.2\framework_numpad_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.2/framework_macropad_default_v0.2.2.uf2 -OutFile releases\0.2.2\framework_macropad_default.uf2 - mkdir releases\0.2.1 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.1/framework_ansi_default_v0.2.1.uf2 -OutFile releases\0.2.1\framework_ansi_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.1/framework_iso_default_v0.2.1.uf2 -OutFile releases\0.2.1\framework_iso_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.1/framework_jis_default_v0.2.1.uf2 -OutFile releases\0.2.1\framework_jis_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.1/framework_numpad_default_v0.2.1.uf2 -OutFile releases\0.2.1\framework_numpad_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.1/framework_macropad_default_v0.2.1.uf2 -OutFile releases\0.2.1\framework_macropad_default.uf2 - mkdir releases\0.2.0 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.0/framework_ansi_default_v0.2.0.uf2 -OutFile releases\0.2.0\framework_ansi_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.0/framework_iso_default_v0.2.0.uf2 -OutFile releases\0.2.0\framework_iso_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.0/framework_jis_default_v0.2.0.uf2 -OutFile releases\0.2.0\framework_jis_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.0/framework_numpad_default_v0.2.0.uf2 -OutFile releases\0.2.0\framework_numpad_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.0/framework_macropad_default_v0.2.0.uf2 -OutFile releases\0.2.0\framework_macropad_default.uf2 - mkdir releases\0.1.9 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.9/framework_ansi_default_v0.1.9.uf2 -OutFile releases\0.1.9\framework_ansi_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.9/framework_iso_default_v0.1.9.uf2 -OutFile releases\0.1.9\framework_iso_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.9/framework_jis_default_v0.1.9.uf2 -OutFile releases\0.1.9\framework_jis_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.9/framework_numpad_default_v0.1.9.uf2 -OutFile releases\0.1.9\framework_numpad_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.9/framework_macropad_default_v0.1.9.uf2 -OutFile releases\0.1.9\framework_macropad_default.uf2 - mkdir releases\0.1.8 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.8/framework_ansi_default.uf2 -OutFile releases\0.1.8\framework_ansi_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.8/framework_iso_default.uf2 -OutFile releases\0.1.8\framework_iso_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.8/framework_jis_default.uf2 -OutFile releases\0.1.8\framework_jis_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.8/framework_numpad_default.uf2 -OutFile releases\0.1.8\framework_numpad_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.8/framework_gridpad_default.uf2 -OutFile releases\0.1.8\framework_gridpad_default.uf2 - mkdir releases\0.1.7 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.7/framework_ansi_default_v0.1.7.uf2 -OutFile releases\0.1.7\framework_ansi_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.7/framework_iso_default_v0.1.7.uf2 -OutFile releases\0.1.7\framework_iso_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.7/framework_jis_default_v0.1.7.uf2 -OutFile releases\0.1.7\framework_jis_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.7/framework_numpad_default_v0.1.7.uf2 -OutFile releases\0.1.7\framework_numpad_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.7/framework_gridpad_default_v0.1.7.uf2 -OutFile releases\0.1.7\framework_gridpad_default.uf2 - mkdir releases\0.1.6 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.6/framework_ansi_default.uf2 -OutFile releases\0.1.6\framework_ansi_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.6/framework_iso_default.uf2 -OutFile releases\0.1.6\framework_iso_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.6/framework_jis_default.uf2 -OutFile releases\0.1.6\framework_jis_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.6/framework_numpad_default.uf2 -OutFile releases\0.1.6\framework_numpad_default.uf2 - Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.6/framework_gridpad_default.uf2 -OutFile releases\0.1.6\framework_gridpad_default.uf2 - - # To run locally, need to make sure to include the pywin32 DLL - # pyinstaller --onefile, --name "qmk_gui", --windowed, --add-data "releases;releases" --path C:\users\skype\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\Python311\site-packages\pywin32_system32 --icon=res\logo_cropped_transparent_keyboard_48x48.ico --add-data 'res;res' qmk_gui.py - - name: Create Executable - uses: JohnAZoidberg/pyinstaller-action@dont-clean - with: - python_ver: '3.11' - spec: qmk_gui.py - requirements: 'requirements.txt' - upload_exe_with_name: 'qmk_gui.exe' - options: --onefile, --name "qmk_gui", --windowed, --add-data "releases;releases" --icon=res/logo_cropped_transparent_keyboard_48x48.ico --add-data 'res;res' diff --git a/.github/workflows/qmk_gui.yml b/.github/workflows/qmk_gui.yml new file mode 100644 index 0000000..14bb11b --- /dev/null +++ b/.github/workflows/qmk_gui.yml @@ -0,0 +1,79 @@ +name: qmk_gui CI + +on: + push: + branches: + - '*' + paths: + - 'qmk_gui.py' + - 'requirements.txt' + - 'res/**' + + build-gui: + name: Build GUI + runs-on: windows-2022 + steps: + - uses: actions/checkout@v3 + + - name: Download releases to bundle + run: | + mkdir releases + mkdir releases\0.2.3 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.3/framework_ansi_default_v0.2.3.uf2 -OutFile releases\0.2.3\framework_ansi_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.3/framework_iso_default_v0.2.3.uf2 -OutFile releases\0.2.3\framework_iso_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.3/framework_jis_default_v0.2.3.uf2 -OutFile releases\0.2.3\framework_jis_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.3/framework_numpad_default_v0.2.3.uf2 -OutFile releases\0.2.3\framework_numpad_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.3/framework_macropad_default_v0.2.3.uf2 -OutFile releases\0.2.3\framework_macropad_default.uf2 + mkdir releases\0.2.2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.2/framework_ansi_default_v0.2.2.uf2 -OutFile releases\0.2.2\framework_ansi_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.2/framework_iso_default_v0.2.2.uf2 -OutFile releases\0.2.2\framework_iso_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.2/framework_jis_default_v0.2.2.uf2 -OutFile releases\0.2.2\framework_jis_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.2/framework_numpad_default_v0.2.2.uf2 -OutFile releases\0.2.2\framework_numpad_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.2/framework_macropad_default_v0.2.2.uf2 -OutFile releases\0.2.2\framework_macropad_default.uf2 + mkdir releases\0.2.1 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.1/framework_ansi_default_v0.2.1.uf2 -OutFile releases\0.2.1\framework_ansi_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.1/framework_iso_default_v0.2.1.uf2 -OutFile releases\0.2.1\framework_iso_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.1/framework_jis_default_v0.2.1.uf2 -OutFile releases\0.2.1\framework_jis_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.1/framework_numpad_default_v0.2.1.uf2 -OutFile releases\0.2.1\framework_numpad_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.1/framework_macropad_default_v0.2.1.uf2 -OutFile releases\0.2.1\framework_macropad_default.uf2 + mkdir releases\0.2.0 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.0/framework_ansi_default_v0.2.0.uf2 -OutFile releases\0.2.0\framework_ansi_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.0/framework_iso_default_v0.2.0.uf2 -OutFile releases\0.2.0\framework_iso_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.0/framework_jis_default_v0.2.0.uf2 -OutFile releases\0.2.0\framework_jis_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.0/framework_numpad_default_v0.2.0.uf2 -OutFile releases\0.2.0\framework_numpad_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.2.0/framework_macropad_default_v0.2.0.uf2 -OutFile releases\0.2.0\framework_macropad_default.uf2 + mkdir releases\0.1.9 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.9/framework_ansi_default_v0.1.9.uf2 -OutFile releases\0.1.9\framework_ansi_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.9/framework_iso_default_v0.1.9.uf2 -OutFile releases\0.1.9\framework_iso_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.9/framework_jis_default_v0.1.9.uf2 -OutFile releases\0.1.9\framework_jis_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.9/framework_numpad_default_v0.1.9.uf2 -OutFile releases\0.1.9\framework_numpad_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.9/framework_macropad_default_v0.1.9.uf2 -OutFile releases\0.1.9\framework_macropad_default.uf2 + mkdir releases\0.1.8 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.8/framework_ansi_default.uf2 -OutFile releases\0.1.8\framework_ansi_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.8/framework_iso_default.uf2 -OutFile releases\0.1.8\framework_iso_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.8/framework_jis_default.uf2 -OutFile releases\0.1.8\framework_jis_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.8/framework_numpad_default.uf2 -OutFile releases\0.1.8\framework_numpad_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.8/framework_gridpad_default.uf2 -OutFile releases\0.1.8\framework_gridpad_default.uf2 + mkdir releases\0.1.7 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.7/framework_ansi_default_v0.1.7.uf2 -OutFile releases\0.1.7\framework_ansi_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.7/framework_iso_default_v0.1.7.uf2 -OutFile releases\0.1.7\framework_iso_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.7/framework_jis_default_v0.1.7.uf2 -OutFile releases\0.1.7\framework_jis_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.7/framework_numpad_default_v0.1.7.uf2 -OutFile releases\0.1.7\framework_numpad_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.7/framework_gridpad_default_v0.1.7.uf2 -OutFile releases\0.1.7\framework_gridpad_default.uf2 + mkdir releases\0.1.6 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.6/framework_ansi_default.uf2 -OutFile releases\0.1.6\framework_ansi_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.6/framework_iso_default.uf2 -OutFile releases\0.1.6\framework_iso_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.6/framework_jis_default.uf2 -OutFile releases\0.1.6\framework_jis_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.6/framework_numpad_default.uf2 -OutFile releases\0.1.6\framework_numpad_default.uf2 + Invoke-WebRequest -Uri https://github.com/FrameworkComputer/qmk_firmware/releases/download/v0.1.6/framework_gridpad_default.uf2 -OutFile releases\0.1.6\framework_gridpad_default.uf2 + + # To run locally, need to make sure to include the pywin32 DLL + # pyinstaller --onefile, --name "qmk_gui", --windowed, --add-data "releases;releases" --path C:\users\skype\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\Python311\site-packages\pywin32_system32 --icon=res\logo_cropped_transparent_keyboard_48x48.ico --add-data 'res;res' qmk_gui.py + - name: Create Executable + uses: JohnAZoidberg/pyinstaller-action@dont-clean + with: + python_ver: '3.11' + spec: qmk_gui.py + requirements: 'requirements.txt' + upload_exe_with_name: 'qmk_gui.exe' + options: --onefile, --name "qmk_gui", --windowed, --add-data "releases;releases" --icon=res/logo_cropped_transparent_keyboard_48x48.ico --add-data 'res;res'