- Update to version 0.6.1

Support for new devices:
  * K100 RGB Optical-Mechanical
  * K70 Core TKL RGB
  * K65 Mini
  Features:
  * Port to Qt6
  Bug fixes:
  * The GUI no longer crashes on device disconnect
  * The slash key on the Brazilian (ABNT) layout now works with
    modern keyboards
  * Prevent possible USB connection issues on legacy devices
  * Resolve a crash on pure XWayland systems
  * Prevent memory leak on active window detection code
- Switch build to Qt6 on Tumbleweed

OBS-URL: https://build.opensuse.org/package/show/hardware/ckb-next?expand=0&rev=33
This commit is contained in:
2025-03-10 11:43:34 +00:00
committed by Git OBS Bridge
commit c3b6cf7d3d
12 changed files with 807 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.osc

39
422.patch Normal file
View File

@@ -0,0 +1,39 @@
https://github.com/ckb-next/ckb-next/pull/422
From 257d39dc187f818c6c77a7fb50b994eaa613cbb1 Mon Sep 17 00:00:00 2001
From: "Bernhard M. Wiedemann" <bwiedemann@suse.de>
Date: Wed, 29 May 2019 05:28:33 +0200
Subject: [PATCH] Do not prepend /usr to libexecdir
Fix #276
Without this patch, compiling with -DCMAKE_INSTALL_LIBEXECDIR=%{_libexecdir}
expanded this to /usr//usr/lib/ckb-next-animations
and there is no rpm macro to have libexecdir without /usr
but we need to use these macros to be able to use the same .spec file
across distributions (Fedora has /usr/libexec and openSUSE has /usr/lib )
This matches usage in src/daemon/CMakeLists.txt
diff -Naur ckb-next-0.6.0.orig/src/ckbnextconfig.h.in ckb-next-0.6.0/src/ckbnextconfig.h.in
--- ckb-next-0.6.0.orig/src/ckbnextconfig.h.in 2023-06-22 23:07:29.000000000 +0200
+++ ckb-next-0.6.0/src/ckbnextconfig.h.in 2023-06-25 11:15:37.424689978 +0200
@@ -1,5 +1,5 @@
#define CKB_NEXT_VERSION_STR "${ckb-next_VERSION}"
-#define CKB_NEXT_ANIMATIONS_PATH "${CMAKE_INSTALL_PREFIX}/${INSTALL_DIR_ANIMATIONS}"
+#define CKB_NEXT_ANIMATIONS_PATH "${INSTALL_DIR_ANIMATIONS}"
#define CKB_NEXT_UTILITIES_PATH "${CMAKE_INSTALL_PREFIX}/${INSTALL_DIR_UTILITIES}"
#define CKB_NEXT_PROFILE_VER ${ckb-next_PROFILE_VER}
diff -Naur ckb-next-0.6.0.orig/src/CMakeLists.txt ckb-next-0.6.0/src/CMakeLists.txt
--- ckb-next-0.6.0.orig/src/CMakeLists.txt 2023-06-22 23:07:29.000000000 +0200
+++ ckb-next-0.6.0/src/CMakeLists.txt 2023-06-25 11:16:37.568637199 +0200
@@ -27,7 +27,7 @@
# Export version, etc. to source code
set(CKB_NEXT_VERSION_STR "${ckb-next_VERSION}")
-set(CKB_NEXT_ANIMATIONS_PATH "${CMAKE_INSTALL_PREFIX}/${INSTALL_DIR_ANIMATIONS}")
+set(CKB_NEXT_ANIMATIONS_PATH "${INSTALL_DIR_ANIMATIONS}")
configure_file(
${CMAKE_CURRENT_LIST_DIR}/ckbnextconfig.h.in
${CMAKE_BINARY_DIR}/ckbnextconfig.h)

3
ckb-next-0.6.0.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dd7c9a30ce7bf4fafcdfff974c519b2b3d2ff888c99d3255a6e0194ece5056f4
size 1835972

3
ckb-next-0.6.1.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:675fe181c008b23461e0d73394b5f7953de831bf7fe74092d1fc75bb167e7172
size 1861827

View File

@@ -0,0 +1,13 @@
Index: ckb-next-0.3.2/src/libs/ckb-next/CMakeLists.txt
===================================================================
--- ckb-next-0.3.2.orig/src/libs/ckb-next/CMakeLists.txt
+++ ckb-next-0.3.2/src/libs/ckb-next/CMakeLists.txt
@@ -67,7 +67,7 @@ configure_file(
COPYONLY)
# Ignore these for now on macOS
-if(NOT MACOS)
+if(0)
install(
EXPORT ${PROJECT_NAME}Targets
FILE

35
ckb-next-systemd.patch Normal file
View File

@@ -0,0 +1,35 @@
Index: ckb-next-0.4.3/src/daemon/CMakeLists.txt
===================================================================
--- ckb-next-0.4.3.orig/src/daemon/CMakeLists.txt
+++ ckb-next-0.4.3/src/daemon/CMakeLists.txt
@@ -302,7 +302,7 @@ elseif (LINUX)
endif ()
# A way to check for systemd
- if (EXISTS "/run/systemd/system" OR "systemd" IN_LIST FORCE_INIT_SYSTEM)
+ if (EXISTS "/usr/lib/systemd/system" OR "systemd" IN_LIST FORCE_INIT_SYSTEM)
message(STATUS "systemd detected")
set(CKB_NEXT_INIT_SYSTEM "systemd" CACHE INTERNAL "")
set(SYSTEMD_UNIT_INSTALL_DIR "/usr/lib/systemd/system" CACHE STRING "Where to install systemd unit files.")
@@ -415,7 +415,7 @@ if (MACOS)
elseif (LINUX)
install(
TARGETS ckb-next-daemon
- DESTINATION "bin")
+ DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}")
endif ()
# Declare target's auxiliary files installation paths
Index: ckb-next-0.4.3/linux/systemd/ckb-next-daemon.service.in
===================================================================
--- ckb-next-0.4.3.orig/linux/systemd/ckb-next-daemon.service.in
+++ ckb-next-0.4.3/linux/systemd/ckb-next-daemon.service.in
@@ -5,7 +5,7 @@
Description=Corsair Keyboards and Mice Daemon
[Service]
-ExecStart=@CMAKE_INSTALL_PREFIX@/bin/ckb-next-daemon
+ExecStart=@CMAKE_INSTALL_LIBEXECDIR@/ckb-next-daemon
Restart=on-failure
[Install]

8
ckb-next-udev.patch Normal file
View File

@@ -0,0 +1,8 @@
Index: ckb-next-0.4.0/linux/udev/99-ckb-next-daemon.rules
===================================================================
--- ckb-next-0.4.0.orig/linux/udev/99-ckb-next-daemon.rules
+++ ckb-next-0.4.0/linux/udev/99-ckb-next-daemon.rules
@@ -1,2 +1,2 @@
# Mark ckb devices as not a joystick and create symlinks to the virtual input devices
-ACTION=="add|change", SUBSYSTEM=="input", ATTRS{name}=="ckb[0-9]: [A-Za-z0-9]*", ENV{ID_INPUT_JOYSTICK}="", PROGRAM="/usr/bin/env sed 's/[0-9]: /-/' /sys/class/input/%k/device/name", ENV{.INPUT_NAME}="%c, "SYMLINK+="input/by-id/%E{.INPUT_NAME}-event"
+ACTION=="add|change", SUBSYSTEM=="input", ATTRS{name}=="ckb[0-9]: [A-Za-z0-9]*", ENV{ID_INPUT_JOYSTICK}="", PROGRAM="/usr/bin/sed 's/[0-9]: /-/' /sys/class/input/%k/device/name", ENV{.INPUT_NAME}="%c, "SYMLINK+="input/by-id/%E{.INPUT_NAME}-event"

52
ckb-next-use-run.patch Normal file
View File

@@ -0,0 +1,52 @@
diff -Naur ckb-next-0.6.0.orig/ckb-next-dev-detect ckb-next-0.6.0/ckb-next-dev-detect
--- ckb-next-0.6.0.orig/ckb-next-dev-detect 2023-06-22 23:07:29.000000000 +0200
+++ ckb-next-0.6.0/ckb-next-dev-detect 2023-06-25 10:58:28.109452264 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/bash
# Newline
N=$'\n'
@@ -69,7 +69,7 @@
OUT="${OUT}${N}${N}Daemon on current boot:${N}`journalctl -o short-precise -b 0 --unit=ckb-next-daemon 2>&1`"
OUT="${OUT}${N}${N}Daemon on last boot:${N}`journalctl -o short-precise -b -1 --unit=ckb-next-daemon 2>&1`"
fi
- OUT="${OUT}${N}${N}Dev nodes:${N}`find /dev/input/ckb* -print -type f -exec cat {} \; 2>&1`"
+ OUT="${OUT}${N}${N}Dev nodes:${N}`find /run/ckb* -print -type f -exec cat {} \; 2>&1`"
OUT="${OUT}${N}${N}Kernel command line:${N}`cat /proc/cmdline`"
GUIPATH="$(which ckb-next)"
OUT="${OUT}${N}${N}GUI ldd:${N}`ldd ${GUIPATH}`"
diff -Naur ckb-next-0.6.0.orig/src/daemon/devnode.c ckb-next-0.6.0/src/daemon/devnode.c
--- ckb-next-0.6.0.orig/src/daemon/devnode.c 2023-06-22 23:07:29.000000000 +0200
+++ ckb-next-0.6.0/src/daemon/devnode.c 2023-06-25 11:00:12.833333006 +0200
@@ -7,13 +7,7 @@
#include "profile.h"
#include <ckbnextconfig.h>
-// OSX doesn't like putting FIFOs in /dev for some reason
-// Don't make these pointers, as doing so will result in sizeof() not producing the correct result.
-#ifndef OS_MAC
-#define DEVPATH "/dev/input/ckb"
-#else
-#define DEVPATH "/var/run/ckb"
-#endif
+#define DEVPATH "/run/ckb"
const char devpath[] = DEVPATH;
#define DEVPATH_LEN (sizeof(devpath) - 1)
diff -Naur ckb-next-0.6.0.orig/src/gui/kbmanager.cpp ckb-next-0.6.0/src/gui/kbmanager.cpp
--- ckb-next-0.6.0.orig/src/gui/kbmanager.cpp 2023-06-22 23:07:29.000000000 +0200
+++ ckb-next-0.6.0/src/gui/kbmanager.cpp 2023-06-25 11:01:01.785277266 +0200
@@ -2,11 +2,7 @@
#include "idletimer.h"
#include <limits>
-#ifndef Q_OS_MACOS
-QString devpath = "/dev/input/ckb%1";
-#else
-QString devpath = "/var/run/ckb%1";
-#endif
+QString devpath = "/run/ckb%1";
#ifdef DEBUG_IDLE_TIMER
#define IDLE_TIMER_DURATION 5000

474
ckb-next.changes Normal file
View File

@@ -0,0 +1,474 @@
-------------------------------------------------------------------
Mon Mar 10 11:35:11 UTC 2025 - Luigi Baldoni <aloisio@gmx.com>
- Update to version 0.6.1
Support for new devices:
* K100 RGB Optical-Mechanical
* K70 Core TKL RGB
* K65 Mini
Features:
* Port to Qt6
Bug fixes:
* The GUI no longer crashes on device disconnect
* The slash key on the Brazilian (ABNT) layout now works with
modern keyboards
* Prevent possible USB connection issues on legacy devices
* Resolve a crash on pure XWayland systems
* Prevent memory leak on active window detection code
- Switch build to Qt6 on Tumbleweed
-------------------------------------------------------------------
Sun Jun 25 09:49:23 UTC 2023 - Jannik Seiler <seil0@mosad.xyz>
- Update to version 0.6.0
Support for new devices:
* K55 RGB PRO
* K55 RGB PRO XT
* K60 PRO (Monochrome)
* K60 PRO TKL RGB
* Dark Core RGB Pro (experimental)
* Dark Core RGB Pro SE (experimental)
* Slipstream wireless dongle (when paired with a single supported device)
Important bugfixes:
* The Fn key now behaves as expected on the K65
* The GUI now accepts macros containing the ISO backslash key
* A workaround is now implemented to prevent the media keys on the Strafe from getting stuck pressed
* The daemon no longer crashes with a buffer overflow detected message on start under certain conditions
* The WinLock LED now functions on the K55 RGB and K55 RGB Pro XT
* The GUI no longer crashes under certain conditions when the sound server is being restarted
* The battery states are now reported correctly in the GUI
* The brightness is now correctly set for newer devices (and the lights now turn off instantly)
New features:
* The device previews are now rendered using the GPU
* Horizontal scrolling is now available for binding
* The mute indicator can now indicate either the default output or input audio device
* The music visualizer now supports automatic gain control, automatically adapting to volume changes
* It is now possible to pair wireless devices with dongles (not in GUI yet)
- Refresh ckb-next-use-run.patch
- Refresh 422.patch
- Drop fix_buffer_overflow_FORTIFY_SOURCE.patch, fixed upstream
-------------------------------------------------------------------
Mon Apr 10 18:21:31 UTC 2023 - Luigi Baldoni <aloisio@gmx.com>
- Add fix_buffer_overflow_FORTIFY_SOURCE.patch (see
gh#ckb-next/ckb-next/issues#940)
-------------------------------------------------------------------
Fri May 27 11:09:17 UTC 2022 - Luigi Baldoni <aloisio@gmx.com>
- Update to version 0.5.0
Support for new devices:
* Katar Pro
* Katar Pro XT
* Glaive Pro
* M55
* K60 Pro RGB
* K60 Pro RGB Low Profile
* K60 Pro RGB SE
Important bugfixes:
* Scroll wheels are now treated as axes (Responsiveness should
be improved for specific mice)
* The lights on the K95 RGB Platinum top bar are now updated
correctly
* An infinite loop is prevented if certain USB information can
not be read
* GUI no longer crashes on exit under certain conditions
* Mouse scrolling works again when combined with specific
libinput versions
* The daemon no longer hangs when quitting due to LED keyboard
indicators
* The lighting programming key can now be rebound on K95 Legacy
* Animations won't break due to daylight savings / system time
changes
* GUI doesn't crash when switching to a hardware mode on a
fresh installation
* Daemon no longer causes a kernel Oops on resume under
certain conditions (Devices now resume correctly from sleep)
* Window detection is more reliable and works correctly on
system boot
* Settings tab now stretches correctly
* Profile switch button can now be bound correctly on mice
* ISO Enter key is now aligned correctly
* Bindings are now consistent between demo and new modes
* Firmware update dialog is no longer cut off and can be
resized
* RGB data won't be sent to the daemon when brightness is set
to 0%
New features:
* German translation
* 66 service (not installed automatically)
* Device previews are now resizable
- Refresh ckb-next-use-run.patch
-------------------------------------------------------------------
Fri Oct 15 12:11:27 UTC 2021 - Johannes Segitz <jsegitz@suse.com>
- Drop ProtectClock hardening, can cause issues if other device acceess is needed
-------------------------------------------------------------------
Fri Aug 27 19:07:46 UTC 2021 - Luigi Baldoni <aloisio@gmx.com>
- Re-labeled 422.patch
- Updated harden_ckb-next-daemon.service.patch to fix
gh#ckb-next/ckb-next#740
-------------------------------------------------------------------
Thu Aug 26 07:23:55 UTC 2021 - Johannes Segitz <jsegitz@suse.com>
- Added hardening to systemd service(s). Added patch(es):
* harden_ckb-next-daemon.service.patch
-------------------------------------------------------------------
Mon Jun 7 11:31:57 UTC 2021 - Ludwig Nussel <lnussel@suse.de>
- Fix fix double slash in //bin/bash requirement
-------------------------------------------------------------------
Thu Mar 18 15:53:16 UTC 2021 - Luigi Baldoni <aloisio@gmx.com>
- Update to version 0.4.4
Important bugfixes:
* Fixed a crash when creating a new profile
* Fixed lights turning off unexpectedly or not being restored
correctly
* Macros can now be repeated quickly by repeatedly pressing
the keys
* Fixed various deadlocks when resuming from suspend or during
device initialisation
* Fixed devices not functioning during system boot requiring a
daemon restart
- Refreshed ckb-next-use-run.patch
-------------------------------------------------------------------
Fri Dec 18 07:44:11 UTC 2020 - Luigi Baldoni <aloisio@gmx.com>
* Update to version 0.4.3
Support for new devices:
* Scimitar RGB Elite
* Nightsword RGB
Important bugfixes:
* Fixed delay when shutting down with K95 RGB
* Fixed freezing when updating indicator LEDs
* Indicator LEDs are now more responsive when an animation is
playing
* GUI now starts hidden in tray on KDE
* The pipe animation now works consistently between mode
changes
* The pipe animation now handles input commands sent in rapid
succession before the device is updated
* Input works on wayland again after recent updates
* libgdx based games no longer crash on mouse input
* Mouse settings are now correctly restored when resuming from
suspend
* Fixed a bug where some devices would not be initialised on
daemon start and would require a replug
* Fixed layouts for K68, K65, K63, M95
New features:
* Under X11 only, lights can now automatically turn off after
a user-set time
* Macros now loop when the key is held down
* Macro UI has been redesigned and supports recording from non
ckb-next managed keyboards
* Modes can now be changed automatically based on the current
focused application (X11/XWayland Only)
* Translations are now supported
Notes for packagers:
* The systemd unit directory can be overriden with
-DSYSTEMD_UNIT_INSTALL_DIR
* libappindicator is no longer used
* Minimum Qt version has been bumped up to 5.5.1 (xenial)
* cmake now checks for quazip 1.0
* The following new dependencies have been introduced: Qt5
X11Extras, xcb, xcb-screensaver, xcb-ewmh, Qt5 translation
tools, dbusmenu-qt5
- Refresh ckb-next-use-run.patch, ckb-next-systemd.patch and
422.patch
- Drop ckb-next-gcc10.patch (merged upstream)
-------------------------------------------------------------------
Sat Aug 29 14:54:55 UTC 2020 - Jannik Seiler <seil0@mosad.xyz>
- Adjust ckb-next-systemd.patch to the change for %_libexecdir
-------------------------------------------------------------------
Mon Jun 8 07:44:47 UTC 2020 - aloisio@gmx.com
- Add ckb-next-gcc10.patch
-------------------------------------------------------------------
Wed Nov 20 23:15:31 UTC 2019 - Simon Lees <sflees@suse.de>
- %make_jobs is depricated replaced by %cmake_build
- Use %autosetup to simplify maintenance
-------------------------------------------------------------------
Tue Oct 8 16:39:12 UTC 2019 - Luigi Baldoni <aloisio@gmx.com>
- Update to version 0.4.2
Support for new devices:
* Harpoon RGB Pro
* Ironclaw RGB
Important bugfixes:
* GUI no longer crashes if an animation has no keys set
-------------------------------------------------------------------
Tue Aug 27 18:22:08 UTC 2019 - Luigi Baldoni <aloisio@gmx.com>
- Update to version 0.4.1
Important bugfixes:
* Specified keyboard layout is no longer being reverted on
restart
* Pipe animation no longer quits if it can't read data
* Media keys work again on the legacy K65
* Daemon no longer crashes on quit on macOS
* Devices are now re-activated after resume on Linux
* Gradient animation no longer flickers with dithering enabled
* HiDPI has been disabled by default due to screen resolution
misdetection
* Max DPI is now per-device
* Extra words are now filtered from the device name
* gpg2 is preferred over gpg for signature verification
New features:
* An uninstall button has been added for macOS users that
allows complete uninstallation, including older versions
* Life animation has a new transparent preset
* Confirmation dialog boxes have been added when deleting
profiles, modes, and animations
* Animation preview now gets temporarily disabled while
ckb-next is out of focus
* Support for multiple animation paths has been added
* Pollrate can now be changed through the GUI
Notes for packagers:
* Udev rules are now installed by default in /lib/udev/rules.d.
* Udev rule installation path can be changed with
UDEV_RULE_DIRECTORY in cmake
* Init systems can manually be force-enabled with
FORCE_INIT_SYSTEM in cmake
- Refreshed ckb-next-use-run.patch and ckb-next-systemd.patch
-------------------------------------------------------------------
Wed May 29 03:55:59 UTC 2019 - Bernhard Wiedemann <bwiedemann@suse.com>
- Add 422.patch to fix animations dir (boo#1135528)
-------------------------------------------------------------------
Sat Mar 9 08:46:09 UTC 2019 - Luigi Baldoni <aloisio@gmx.com>
- Update to version 0.4.0
Support for new devices:
* K70 RGB MK.2 LP
* M65 RGB Elite
* M95 Legacy
Important bugfixes:
* ST100 now works on macOS properly
* Strafe RGB MK.2 logo is mapped to the right LEDs, and media
buttons are positioned correctly
* A buffer overflow causing the daemon to crash or hang has
been fixed
* quickinstall can now run correctly with multibyte characters
in the path
* Rename now works correctly in the Profile Manager context
menu
* Animations with no presets no longer get loaded to prevent
crashes
* K70 Lux is now marked correctly as monochrome
* ckb-next can be built again with Qt 5.2
* Save to hardware now gets disabled in the context menu for
unsupported devices
* Settings backend has been changed to ini for macOS,
preventing silent configuration data corruption
* The K55, the ST100 and the Polaris now have working default
profiles
* A few cases that may cause the GUI to crash have been found
and fixed
* Blank animation names are no longer allowed
New features:
* GUI has gained a monochrome tray icon option
(QSystemTrayIcon only)
* Device brightness can be controlled by scrolling on the tray
icon on Linux systems that support it (AppIndicator or KDE)
* Profiles and modes can now be changed with the --profile and
--mode arguments passed to the GUI binary
* New Conway's Game of Life animation
* New 'snake' animation
* New 'pipe' animation, allowing the user to send rgb data
from external applications
* Music Visualizer (mviz) is now supported on macOS, and has
been reworked to function correctly
* A --version argument has been added to the daemon
Notes:
* On Linux, the udev rule has been renamed and moved
* On Linux, for builds with libappindicator, it can be force
enabled/disabled by setting the CKB_NEXT_USE_APPINDICATOR
environment variable
* On Linux, libappindicator support is also enabled if the Qt
platform theme is gtk2 (Useful for Unity on Ubuntu 19.04)
* The restart command has been removed from the daemon
* Threads are now named for easier debugging
* Signal handler has been rewritten
* A few unneeded packets are no longer being sent to M65 mice
* Only Red channel data is being sent to monochrome devices
- Refreshed ckb-next-systemd.patch and ckb-next-udev.patch
-------------------------------------------------------------------
Thu Jan 10 19:33:47 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Trim filler wording from description.
-------------------------------------------------------------------
Tue Jan 8 09:26:22 UTC 2019 - Luigi Baldoni <aloisio@gmx.com>
- Update to version 0.3.2
Important news:
* This version fixes a major bug for the Scimitar Pro, causing
the daemon to not properly interface with the mouse. This
could require manually reflashing the mouse firmware if a
firmware update was performed with 0.3.1 or earlier.
* An updater has been created to more quickly push bugfixes to
users, especially for those on macOS.
* There is a new Space Invaders-like minigame that can be
played as an animation, thanks to @mvladimirovich.
Support for new devices:
* Strafe RGB MK.2; by accidental omission from the previous
release.
* K66
Important bugfixes:
* The Scimitar Pro now defaults to v2.xx endpoints
* The DPI LED on mice now changes in sniper mode
* The GUI will warn if uinput cannot be loaded on Linux
* The "Save to Hardware" button on the Scimitar and Glaive has
been greyed out due to a current lack of support
* Thanks to the efforts of @Kedstar99, the codebase compiles
with much fewer warnings
* Binding commands to wheels will now repeat properly
* QuaZip is no longer required for daemon-only builds
* KissFFT is now built as a static library
* Symbolic links are now created in /dev/input/by-id for evdev
users
* Fixed a regression for devices using the legacy protocol
Note for packagers:
* If ckb-next is updated through a package management system,
`-DDISABLE_UPDATER=1` should be passed to CMake
version 0.3.1
Support for new devices:
* K70 RGB MK.2
* K70 RGB MK.2 SE
New major features:
* The GUI now has a generate ckb-next-dev-detect report button
Important bugfixes:
* Rapidfire keyboards have a workaround on shutdown
* Bugfix for independent X/Y DPI
* The new Strafe NRGB has firmware updates now
* The GUI pops up a warning when trying to bind the Windows
key with Winlock enabled
* The GUI now has a DPI indicator
* The K68 NRGB winlock light now lights up
* The GUI handles SIGINT/SIGTERM cleanly, avoiding stalled
devices
* Strafe sidelights now save state on GUI start
* Original Strafe NRGB's sidelights now toggle correctly
* ckb-next-dev-detect is now installed to the system and added
to PATH
version 0.3.0
Support for new devices:
* K55 RGB
* K68 RGB
* K90 Legacy
* Katar RGB
* Polaris RGB
* ST100 RGB
New major features:
* Use URB Interrupts to read data from devices
* Profile Import/Export
* Keyboard Layout autodetection
* CMake build system
* Relocation of binaries
* No single global layout for all devices in the GUI
Important bugfixes:
* Deadlock on daemon exit
* Support for K95 Platinum profile switch key
* Keymap corruption on the GUI
* Pulseaudio GUI deadlock
* Use udev to detect the appropriate endpoint max packet size
* Ignore devices in BIOS mode
* Disable save to hardware for unsupported devices
* Keymap patches for K68
* Workaround for linux kernel out-of-bounds write
* Memory leaks on firmware update
version 0.2.9
Important changes:
* Significantly lower CPU usage on idle
* Add support for K95 Platinum
* Add support for K68
* Add support for (new) Strafe non-RGB
* Add support for Glaive
* Add support for Harpoon
* Add support for Corsair firmware v3
* Add support for pt\_br layout
* Add support for Japanese layout
* Add macro delays to the GUI
* New FIRMWARE file structure
* GUI warning when daemon is not running
* udev rule to remove joystick tag
* Dynamic keymap patching
* Require Qt >=5.2
* Numerous small fixes and improvements
version 0.2.8
* `ckb` is now `ckb-next`, __but the binaries will be renamed
in `v0.2.9`__
* Numerous PRs from `ckb` merged
[\#4](https://github.com/mattanger/ckb-next/issues/4)
* SIGSEGV when deleting copied profile is fixed
[\#38](https://github.com/mattanger/ckb-next/issues/38)
* `make debug` target on Linux is fixed
[\#79](https://github.com/mattanger/ckb-next/issues/79)
* Heat map animation issues fixed
[\#30](https://github.com/mattanger/ckb-next/issues/30)
* Compilation of the music visualizer fixed
[\#21](https://github.com/mattanger/ckb-next/issues/21)
* Hardware profile loading error on firmware 2.05 fixed
[\#24](https://github.com/mattanger/ckb-next/pull/24)
* Project's own firmware table created, signed and populated
with new devices
[\#60](https://github.com/mattanger/ckb-next/pull/60)
* Arch Linux and Fedora/CentOS packages added
[\#80](https://github.com/mattanger/ckb-next/pull/80)
[\#5](https://github.com/mattanger/ckb-next/issues/5)
[\#41](https://github.com/mattanger/ckb-next/pull/41)
- Dropped ckb-external-quazip.patch (no longer necessary)
- Refreshed ckb-use-var-run.patch as ckb-next-use-run.patch
- Added ckb-next-systemd.patch, ckb-next-no-cmake-modules.patch
and ckb-next-udev.patch
-------------------------------------------------------------------
Thu Aug 25 09:18:15 UTC 2016 - aloisio@gmx.com
- Update to version 0.2.6
- Use external quazip only when available
- Replaced ckb-fix-desktop-file.patch with %suse_update_desktop_file
- Replaced ckb-daemon-path.patch and ckb-animations-path.patch
with macros for consistency.
-------------------------------------------------------------------
Sun Apr 17 19:04:20 UTC 2016 - herbert@graeber-clan.de
- Add hicoler folder, too
-------------------------------------------------------------------
Sun Apr 17 08:25:41 UTC 2016 - herbert@graeber-clan.de
- Fix icon folder
-------------------------------------------------------------------
Fri Apr 15 17:12:17 UTC 2016 - herbert@graeber-clan.de
- Initial package
* Use /var/run instead of /dev/input for communication with the
daemon.
* move the daemon and the animations into the libexec folder

132
ckb-next.spec Normal file
View File

@@ -0,0 +1,132 @@
#
# spec file for package ckb-next
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: ckb-next
Version: 0.6.1
Release: 0
Summary: RGB driver for Corsair keyboard and mice
License: BSD-3-Clause AND GPL-2.0-only
Group: Hardware/Other
URL: https://github.com/ckb-next/ckb-next
Source: https://github.com/ckb-next/ckb-next/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
# PATCH-FIX-OPENSUSE ckb-next-use-run.patch
Patch1: ckb-next-use-run.patch
# PATCH-FIX-OPENSUSE ckb-next-systemd.patch
Patch2: ckb-next-systemd.patch
# PATCH-FIX-OPENSUSE ckb-next-no-cmake-modules.patch
Patch3: ckb-next-no-cmake-modules.patch
# PATCH-FIX-UPSTREAM ckb-next-udev.patch
Patch4: ckb-next-udev.patch
# PATCH-FIX-OPENSUSE 422.patch boo#1135528
Patch5: 422.patch
Patch6: harden_ckb-next-daemon.service.patch
BuildRequires: ImageMagick
BuildRequires: cmake
BuildRequires: hicolor-icon-theme
%if 0%{?suse_version} >= 1600
BuildRequires: cmake(QuaZip-Qt6)
%else
BuildRequires: cmake(QuaZip-Qt5)
%endif
BuildRequires: update-desktop-files
%if 0%{?suse_version} >= 1600
BuildRequires: cmake(Qt6Core)
BuildRequires: cmake(Qt6DBus)
BuildRequires: cmake(Qt6Gui)
BuildRequires: cmake(Qt6LinguistTools)
BuildRequires: cmake(Qt6Network)
BuildRequires: cmake(Qt6OpenGLWidgets)
BuildRequires: cmake(Qt6Widgets)
%else
BuildRequires: cmake(Qt5DBus)
BuildRequires: cmake(Qt5LinguistTools)
BuildRequires: cmake(Qt5Network)
BuildRequires: cmake(Qt5Widgets) >= 5.2
BuildRequires: cmake(Qt5X11Extras)
BuildRequires: cmake(dbusmenu-qt5)
%endif
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(systemd)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-ewmh)
BuildRequires: pkgconfig(xcb-screensaver)
BuildRequires: pkgconfig(zlib)
Obsoletes: ckb < %{version}
Provides: ckb = %{version}
Requires: bash
%{systemd_requires}
%description
ckb is a driver for Corsair keyboards and mice. It brings the
features of their proprietary CUE software to the Linux operating
system. This project supports much of the same functionality,
including full RGB animations.
%prep
%autosetup -p1
%build
%cmake \
%if 0%{?suse_version} >= 1600
-DPREFER_QT6=1 \
%endif
-DDISABLE_UPDATER=1 \
-DCMAKE_INSTALL_LIBEXECDIR=%{_libexecdir} \
-DUDEV_RULE_DIRECTORY=%{_udevrulesdir}
%cmake_build
%install
%cmake_install
for s in 16 22 32 48 64 96 128 192 256; do
mkdir -pv %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps
convert -strip -resize ${s}x${s} %{buildroot}%{_datadir}/icons/hicolor/512x512/apps/ckb-next.png \
%{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/%{name}.png
done
mkdir %{buildroot}%{_sbindir}
ln -sf service %{buildroot}%{_sbindir}/rc%{name}-daemon
%suse_update_desktop_file -r %{name} Settings HardwareSettings
%pre
%service_add_pre %{name}-daemon.service
%post
%service_add_post %{name}-daemon.service
%preun
%service_del_preun %{name}-daemon.service
%postun
%service_del_postun %{name}-daemon.service
%files
%license LICENSE
%doc CHANGELOG.md FIRMWARE README.md
%{_bindir}/%{name}
%{_bindir}/%{name}-dev-detect
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}*.png
%{_datadir}/icons/hicolor/*/status/%{name}*png
%{_sbindir}/rc%{name}-daemon
%{_libexecdir}/%{name}-daemon
%{_libexecdir}/%{name}-animations
%{_libexecdir}/%{name}-sinfo
%{_udevrulesdir}/99-%{name}-daemon.rules
%{_unitdir}/%{name}-daemon.service
%changelog

View File

@@ -0,0 +1,24 @@
Index: ckb-next-0.4.4/linux/systemd/ckb-next-daemon.service.in
===================================================================
--- ckb-next-0.4.4.orig/linux/systemd/ckb-next-daemon.service.in
+++ ckb-next-0.4.4/linux/systemd/ckb-next-daemon.service.in
@@ -5,6 +5,19 @@
Description=Corsair Keyboards and Mice Daemon
[Service]
+# added automatically, for details please see
+# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
+ProtectSystem=full
+ProtectHome=true
+ProtectHostname=true
+# Fixes https://github.com/ckb-next/ckb-next/issues/740
+DeviceAllow=char-usb_device rw
+DeviceAllow=/dev/uinput rw
+ProtectKernelTunables=true
+ProtectKernelLogs=true
+ProtectControlGroups=true
+RestrictRealtime=true
+# end of automatic additions
ExecStart=@CMAKE_INSTALL_LIBEXECDIR@/ckb-next-daemon
Restart=on-failure