Skip to content

Would you be open to working with me and an app designer (I'd pay for them) to design a nice ui around your software #232

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 69 commits into
base: AsusAuraWindows
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
4097d18
Add Razer Blade Pro 2017 to supported devices under Linux
CalcProgrammer1 Aug 31, 2018
64a1d98
Development branch for using OpenAuraSDK's generic RGBController inte…
CalcProgrammer1 Aug 23, 2019
53b7fb2
Get OpenAuraSDK test branch building on Windows
CalcProgrammer1 Aug 23, 2019
b69add6
Update OpenAuraSDK
CalcProgrammer1 Sep 2, 2019
4473b8c
Generate effects per zone, single and linear zones supported
CalcProgrammer1 Sep 4, 2019
229b597
Multithreaded LED update function
CalcProgrammer1 Oct 4, 2019
06d3973
Update OpenAuraSDK submodule and build E1.31 support in Linux
CalcProgrammer1 Oct 27, 2019
edbef07
Add support for matrix devices in OpenAuraSDK branch, make orange and…
CalcProgrammer1 Oct 26, 2019
583b390
Update OpenAuraSDK submodule
CalcProgrammer1 Oct 27, 2019
532bc5d
Implement beginnings of OpenRGB SDK support
CalcProgrammer1 Apr 26, 2020
c8b6191
Send all controllers sequentially and let OpenRGB handle threading
CalcProgrammer1 Apr 26, 2020
9b167ae
Remove files that are no longer needed after switching to OpenRGB SDK
CalcProgrammer1 Apr 26, 2020
f77553d
Treat matrix devices as single zone for now
CalcProgrammer1 Apr 26, 2020
eee3978
Use tree view for device list and add columns for LED count and zone …
CalcProgrammer1 Apr 26, 2020
04b9dff
Add license (GPLv2)
CalcProgrammer1 Apr 26, 2020
72339e3
Resizable GUI
CalcProgrammer1 Apr 26, 2020
b50b983
Matrix effect support
CalcProgrammer1 Apr 26, 2020
650ddc1
Remove visual studio project and get the Qt project to build on Windo…
CalcProgrammer1 Apr 27, 2020
684dc2f
Use DeviceUpdateLEDs for now so that the threading behavior doesn't c…
CalcProgrammer1 Apr 27, 2020
082b4ee
Remove unnecessary loop for matrix devices
CalcProgrammer1 Apr 27, 2020
e4c36a2
Pull up OpenRGB network_devel branch to pull in nodelay changes
CalcProgrammer1 Apr 29, 2020
e6d48dd
Update OpenRGB submodule to use std::thread for client thread
CalcProgrammer1 Apr 29, 2020
bb7327d
Values of 0xFFFFFFFF in matrix map indicate unused slots. Don't upda…
CalcProgrammer1 May 1, 2020
b015629
Use std::thread for Keyboard Visualizer threads
CalcProgrammer1 May 3, 2020
a028a2c
Add box to enter IP and port of OpenRGB SDK server
CalcProgrammer1 May 6, 2020
f5e20f1
Allow multiple OpenRGB SDK client connections simultaneously
CalcProgrammer1 May 6, 2020
86fcdfc
Add support for MacOS
CalcProgrammer1 May 8, 2020
9481abd
Send client string
CalcProgrammer1 May 9, 2020
ef0c3d7
Update OpenRGB submodule to master
CalcProgrammer1 May 9, 2020
0bb0acb
Automatically reconnect to server if disconnected, display controller…
CalcProgrammer1 May 10, 2020
0b21986
Update client list whenever status changes
CalcProgrammer1 May 10, 2020
dc06fa9
Update OpenRGB submodule
CalcProgrammer1 May 10, 2020
3fda2ff
Add button to disconnect clients
CalcProgrammer1 May 14, 2020
47f2a72
Code cleanup for version 4.0
CalcProgrammer1 May 16, 2020
60daac6
Update version to 4.00 and move version definition to QMake project
CalcProgrammer1 May 16, 2020
cb12727
Set default delay to 25ms
CalcProgrammer1 May 16, 2020
917592b
Add functions for creating zone maps and use them to improve zone map…
CalcProgrammer1 May 16, 2020
cde4e88
Store the index map rather than regenerating it every cycle
CalcProgrammer1 May 17, 2020
d1190e4
Update OpenRGB submodule
CalcProgrammer1 May 17, 2020
9bcc40b
Add MacOS icon
CalcProgrammer1 May 17, 2020
f632365
Update README for OpenRGB change
CalcProgrammer1 May 17, 2020
d282267
Update README build section
CalcProgrammer1 May 19, 2020
f6e025a
Update OpenRGB submodule, update default port, and update client string
CalcProgrammer1 Jun 22, 2020
0266562
Update submodule and add GitLab CI configuration to build Windows 32/…
CalcProgrammer1 Jul 23, 2020
d7abd62
Add KV paths to include path
CalcProgrammer1 Jul 23, 2020
53ee93d
Replace jom with make
CalcProgrammer1 Jul 23, 2020
5f2e265
Fix make path
CalcProgrammer1 Jul 23, 2020
ca3f316
Add no_batch option and switch back to jom
CalcProgrammer1 Jul 23, 2020
f48e98d
Add GitLab CI configuration for project Windows settings
CalcProgrammer1 Jul 23, 2020
dd9d920
Add Debian packaging files
CalcProgrammer1 Jul 26, 2020
2b2bd78
Reenable settings file parsing and uncomment strtok_r usage, but use …
CalcProgrammer1 Jul 26, 2020
f9a7648
Fix Windows build by making pointer const
CalcProgrammer1 Jul 26, 2020
d8d76f2
Add GitLab CI Linux build target that produces an AppImage
CalcProgrammer1 Jul 31, 2020
5672c53
Make build-appimage.sh executable
CalcProgrammer1 Jul 31, 2020
a4fce7e
Fix file name in AppImage script
CalcProgrammer1 Jul 31, 2020
5aed324
Fix file name in Gitlab CI config
CalcProgrammer1 Jul 31, 2020
2d7cb0a
Add enable control for each device and initialize devices without a D…
CalcProgrammer1 Sep 1, 2020
069b218
Update linux-deploy path
CalcProgrammer1 Sep 8, 2020
1fa00fa
Handle device list updates
CalcProgrammer1 Oct 1, 2020
0043929
Fix settings file name
CalcProgrammer1 Oct 18, 2020
e0912c8
Use C++14 on MacOS
CalcProgrammer1 Mar 3, 2021
e521379
Fix README steps to build binary on Linux
RafaelKr Mar 9, 2021
8628d7c
Update icon path in README.md
SapuSeven Oct 10, 2020
2ac9c93
Create FUNDING.yml
CalcProgrammer1 Apr 9, 2021
ccd3b2e
Update OpenRGB submodule, use bundled AppImage creation tools
CalcProgrammer1 Apr 9, 2021
88499e1
Add MacOS CI
CalcProgrammer1 Apr 11, 2021
b50cc50
Add 32- and 64-bit Linux builds, AppImage and .deb
CalcProgrammer1 Apr 11, 2021
6a0b3d4
Remove KeyboardVisualizer network synchronization feature
CalcProgrammer1 Jan 19, 2025
8424448
Remove Release submodule, as it only contains 3.x and earlier release…
CalcProgrammer1 Jan 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# These are supported funding model platforms

github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: CalcProgrammer1
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
292 changes: 292 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,292 @@
# swy: some useful references; the MSVC part of the CI script is based on the one from bind9, by Michał Kępień:
# https://gitlab.com/gitlab-org/ci-cd/shared-runners/images/gcp/windows-containers/blob/master/cookbooks/preinstalled-software/README.md
# https://gitlab.isc.org/isc-projects/bind9/commit/facc6a051fcac70fbbc61cb92a37be8c3e4db5ec#587d266bb27a4dc3022bbed44dfa19849df3044c_718_731
# https://www.kittell.net/code/powershell-unix-sed-equivalent-change-text-file/
# https://powershell.org/forums/topic/how-to-use-ansi-vt100-formatting-in-powershell-ooh-pretty-colors/

#-----------------------------------------------------------------------#
# OpenRGB GitLab CI Configuration #
#-----------------------------------------------------------------------#
variables:
GIT_SUBMODULE_STRATEGY: recursive

.shared_windows_runners:
tags:
- shared-windows
- windows
- windows-1809

stages:
- build

before_script:
- echo "started by ${GITLAB_USER_NAME}"

#reusable templates
.ccache_init: &ccache_init
before_script:
- apt update
- apt install -y build-essential qtcreator qt5-default libopenal-dev pkgconf wget git

#-----------------------------------------------------------------------#
# Linux (AppImage) 32-bit Build Target #
#-----------------------------------------------------------------------#
build_linux_32:
<<: *ccache_init
image: i386/ubuntu:bionic
stage: build
script:
- export $(dpkg-architecture)
- ./scripts/build-appimage.sh

artifacts:
paths:
- Keyboard_Visualizer-i386.AppImage
expire_in: 30 days

#-----------------------------------------------------------------------#
# Linux (AppImage) 64-bit Build Target #
#-----------------------------------------------------------------------#
build_linux_64:
<<: *ccache_init
image: ubuntu:bionic
stage: build
script:
- export $(dpkg-architecture)
- ./scripts/build-appimage.sh

artifacts:
paths:
- Keyboard_Visualizer-x86_64.AppImage
expire_in: 30 days

#-----------------------------------------------------------------------#
# Linux (.deb) 32-bit Build Target #
#-----------------------------------------------------------------------#
build_linux_deb32:
<<: *ccache_init
image: i386/ubuntu:bionic
stage: build
script:
- apt install -y debhelper
- dpkg-architecture -l
- dpkg-buildpackage --target-arch i386 -us -B
- rm -v ../keyboardvisualizer-dbgsym*.ddeb
- mv -v ../keyboardvisualizer*.deb ./

artifacts:
paths:
- keyboardvisualizer*.deb
exclude:
- keyboardvisualizer-dbgsym*.deb
expire_in: 30 days

#-----------------------------------------------------------------------#
# Linux (.deb) 64-bit Build Target #
#-----------------------------------------------------------------------#
build_linux_deb64:
<<: *ccache_init
image: ubuntu:bionic
stage: build
script:
- apt install -y debhelper
- dpkg-architecture -l
- dpkg-buildpackage -us -B
- rm -v ../keyboardvisualizer-dbgsym*.ddeb
- mv -v ../keyboardvisualizer*.deb ./

artifacts:
paths:
- keyboardvisualizer*.deb
exclude:
- keyboardvisualizer-dbgsym*.deb
expire_in: 30 days

#-----------------------------------------------------------------------#
# Windows (32-bit) Build Target #
#-----------------------------------------------------------------------#
build_windows_32:
extends:
- .shared_windows_runners
stage: build
script:
- $esc = "$([char]27)"
- $count = 0
- function _unix_tmsec_ { [int64](([datetime]::UtcNow)-(get-date "1/1/1970")).TotalSeconds }
- function _fold_start_ { param( [string]$TEXT_TAG ) $t=_unix_tmsec_; $global:count += 1; Write-Host -NoNewLine "`r`n`r`nsection_start:${t}:sect_${count}`r${esc}[0K${esc}[33m${TEXT_TAG}${esc}[39m`r`n"; }
- function _fold_final_ { $t=_unix_tmsec_; Write-Host -NoNewLine "`r`n`r`nsection_end:${t}:sect_${count}`r${esc}[0K`r`n" ; }


- _fold_start_ 'configuring the msvc environment variables'
- Push-Location "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Auxiliary/Build"
- '& cmd.exe /C "vcvarsall.bat x86 & set" | Foreach-Object { if ($_ -match "(.*?)=(.*)") { Set-Item -force -path "Env:\$($matches[1])" -value "$($matches[2])" } }'
- Pop-Location
- _fold_final_

- _fold_start_ 'downloading precompiled versions of qtbase, qttools (for windeployqt) and jom (for a more parallel nmake)'
- mkdir _qt
- mkdir _qt_download
- Push-Location _qt_download
- curl.exe -LJ -o qt-base.7z 'https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5150/qt.qt5.5150.win32_msvc2019/5.15.0-0-202005150700qtbase-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86.7z'
- curl.exe -LJ -o qt-tools.7z 'https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5150/qt.qt5.5150.win32_msvc2019/5.15.0-0-202005150700qttools-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86.7z'
- curl.exe -LJ -o qt-jom.zip 'https://download.qt.io/official_releases/jom/jom.zip'
- _fold_final_

- _fold_start_ 'extracting the downloaded qt binaries'
- 7z x qt-base.7z '-o../_qt' -y
- 7z x qt-tools.7z '-o../_qt' -y
- 7z x qt-jom.zip '-o../_qt' -y
- _fold_final_

- _fold_start_ 'turn the qt install from enterprise to foss; remove the licensing checks'
- ${qconfig-pri-folder} = '..\_qt\5.15.0\msvc2019\mkspecs\qconfig.pri'
- (Get-Content ${qconfig-pri-folder}).replace('QT_EDITION = Enterprise', 'QT_EDITION = OpenSource') | Set-Content ${qconfig-pri-folder}
- (Get-Content ${qconfig-pri-folder}).replace('QT_LICHECK = licheck.exe', '') | Set-Content ${qconfig-pri-folder}
- Pop-Location
- _fold_final_

- _fold_start_ 'run qmake and generate the msvc nmake makefile'
- mkdir _build; cd _build
- ..\_qt\5.15.0\msvc2019\bin\qmake ..\KeyboardVisualizer.pro
- _fold_final_

- _fold_start_ 'start the actual build with jom instead of nmake; for speed'
- ..\_qt\jom
- _fold_final_

- _fold_start_ 'run windeployqt to automatically copy the needed dll files'
- ..\_qt\5.15.0\msvc2019\bin\windeployqt --no-angle --no-translations --no-opengl-sw --no-system-d3d-compiler --no-compiler-runtime --no-webkit2 .\release\
- _fold_final_

- _fold_start_ 'compressing the release folder so that we can upload it as artifact'
- mv release 'Keyboard Visualizer Windows 32-bit'
- ${datetime} = Get-Date ([datetime]::UtcNow) -Format "yyyy-MM-ddTHH-mm-ss"
- ${revision} = ((git rev-parse --short HEAD) | Out-String).Trim()
- ${rversion} = (((Get-Content '..\KeyboardVisualizer.pro' | Select-String -Pattern "VERSION =") | Out-String).Trim().Split("="))[1].Trim()
- 7z a -mx9 -r -y "KeyboardVisualizer_${rversion}_32_${revision}_nightly_${datetime}.7z" 'Keyboard Visualizer Windows 32-bit'
- _fold_final_
# cache:
# key: same-key
# paths:
# - C:\vcpkg\installed\
artifacts:
paths:
- _build/*.7z
expire_in: 30 days

#-----------------------------------------------------------------------#
# Windows (64-bit) Build Target #
#-----------------------------------------------------------------------#
build_windows_64:
extends:
- .shared_windows_runners
stage: build
script:
- $esc = "$([char]27)"
- $count = 0
- function _unix_tmsec_ { [int64](([datetime]::UtcNow)-(get-date "1/1/1970")).TotalSeconds }
- function _fold_start_ { param( [string]$TEXT_TAG ) $t=_unix_tmsec_; $global:count += 1; Write-Host -NoNewLine "`r`n`r`nsection_start:${t}:sect_${count}`r${esc}[0K${esc}[33m${TEXT_TAG}${esc}[39m`r`n"; }
- function _fold_final_ { $t=_unix_tmsec_; Write-Host -NoNewLine "`r`n`r`nsection_end:${t}:sect_${count}`r${esc}[0K`r`n" ; }


- _fold_start_ 'configuring the msvc environment variables'
- Push-Location "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Auxiliary/Build"
- '& cmd.exe /C "vcvarsall.bat x64 & set" | Foreach-Object { if ($_ -match "(.*?)=(.*)") { Set-Item -force -path "Env:\$($matches[1])" -value "$($matches[2])" } }'
- Pop-Location
- _fold_final_

- _fold_start_ 'downloading precompiled versions of qtbase, qttools (for windeployqt) and jom (for a more parallel nmake)'
- mkdir _qt
- mkdir _qt_download
- Push-Location _qt_download
- curl.exe -LJ -o qt-base.7z 'https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5150/qt.qt5.5150.win64_msvc2019_64/5.15.0-0-202005150700qtbase-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z'
- curl.exe -LJ -o qt-tools.7z 'https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5150/qt.qt5.5150.win64_msvc2019_64/5.15.0-0-202005150700qttools-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z'
- curl.exe -LJ -o qt-jom.zip 'https://download.qt.io/official_releases/jom/jom.zip'
- _fold_final_

- _fold_start_ 'extracting the downloaded qt binaries'
- 7z x qt-base.7z '-o../_qt' -y
- 7z x qt-tools.7z '-o../_qt' -y
- 7z x qt-jom.zip '-o../_qt' -y
- _fold_final_

- _fold_start_ 'turn the qt install from enterprise to foss; remove the licensing checks'
- ${qconfig-pri-folder} = '..\_qt\5.15.0\msvc2019_64\mkspecs\qconfig.pri'
- (Get-Content ${qconfig-pri-folder}).replace('QT_EDITION = Enterprise', 'QT_EDITION = OpenSource') | Set-Content ${qconfig-pri-folder}
- (Get-Content ${qconfig-pri-folder}).replace('QT_LICHECK = licheck.exe', '') | Set-Content ${qconfig-pri-folder}
- Pop-Location
- _fold_final_

- _fold_start_ 'run qmake and generate the msvc nmake makefile'
- mkdir _build; cd _build
- ..\_qt\5.15.0\msvc2019_64\bin\qmake ..\KeyboardVisualizer.pro
- _fold_final_

- _fold_start_ 'start the actual build with jom instead of nmake; for speed'
- ..\_qt\jom
- _fold_final_

- _fold_start_ 'run windeployqt to automatically copy the needed dll files'
- ..\_qt\5.15.0\msvc2019_64\bin\windeployqt --no-angle --no-translations --no-opengl-sw --no-system-d3d-compiler --no-compiler-runtime --no-webkit2 .\release\
- _fold_final_

- _fold_start_ 'compressing the release folder so that we can upload it as artifact'
- mv release 'Keyboard Visualizer Windows 64-bit'
- ${datetime} = Get-Date ([datetime]::UtcNow) -Format "yyyy-MM-ddTHH-mm-ss"
- ${revision} = ((git rev-parse --short HEAD) | Out-String).Trim()
- ${rversion} = (((Get-Content '..\KeyboardVisualizer.pro' | Select-String -Pattern "VERSION =") | Out-String).Trim().Split("="))[1].Trim()
- 7z a -mx9 -r -y "KeyboardVisualizer_${rversion}_64_${revision}_nightly_${datetime}.7z" 'Keyboard Visualizer Windows 64-bit'
- _fold_final_
# cache:
# key: same-key
# paths:
# - C:\vcpkg\installed\
artifacts:
paths:
- _build/*.7z
expire_in: 30 days

#-----------------------------------------------------------------------#
# MacOS Build Target #
#-----------------------------------------------------------------------#
build_macos_arm64:
tags:
- macos
stage: build
script:
- eval $(/opt/homebrew/bin/brew shellenv)
- qmake KeyboardVisualizer.pro
- make -j16
- macdeployqt KeyboardVisualizer.app -codesign=OpenRGB

artifacts:
paths:
- KeyboardVisualizer.app
expire_in: 30 days

rules:
- if: '$CI_PROJECT_PATH == "CalcProgrammer1/KeyboardVisualizer"'
when: on_success
- if: '$BUILD_MACOS =~ /.+/'
when: on_success

build_macos_intel:
tags:
- macos
stage: build
script:
- eval $(/usr/local/bin/brew shellenv)
- arch -x86_64 /usr/local/bin/qmake KeyboardVisualizer.pro
- arch -x86_64 make -j16
- arch -x86_64 macdeployqt KeyboardVisualizer.app -codesign=OpenRGB

artifacts:
paths:
- KeyboardVisualizer.app
expire_in: 30 days

rules:
- if: '$CI_PROJECT_PATH == "CalcProgrammer1/KeyboardVisualizer"'
when: on_success
- if: '$BUILD_MACOS =~ /.+/'
when: on_success
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "Release"]
path = Release
url = https://github.com/CalcProgrammer1/KeyboardVisualizerVCUI_Release
[submodule "OpenRGB"]
path = OpenRGB
url = https://gitlab.com/CalcProgrammer1/OpenRGB
Loading