Skip to content

Instantly share code, notes, and snippets.

View devLukaDev's full-sized avatar

Luka devLukaDev

View GitHub Profile
@devLukaDev
devLukaDev / Bugreport.md
Created September 10, 2026 16:00
Bug Report: DPI Button Remapped to Play/Pause Not Recognized on Linux

Bug Report: DPI Button Remapped to Play/Pause Not Recognized on Linux

Summary

On the Model O Eternal, remapping the DPI switch button to a multimedia key (Play/Pause) via Glorious Core and saving to onboard memory works correctly on Windows, but the resulting keypress is silently dropped on Linux. USB traffic capture confirms the mouse's firmware correctly sends the Play/Pause HID usage code — the bug is in the HID Report Descriptor, which incorrectly flags the Consumer Control input field as Constant instead of Data. Per the HID spec, Constant fields are explicitly meant to be ignored by any compliant HID parser, so Linux's generic HID driver correctly discards the data even though the mouse is sending it. Windows only works because Glorious's proprietary driver bypasses descriptor semantics and reads the raw report bytes directly.

Environment

  • Device: Glorious Model O Eternal
  • USB IDs: 3794:a000 (SINOWEALTH)
  • Firmware/bcdDevice: 1.14
  • OS: Linux (CachyOS), kernel HID s
import pandas as pd
from scipy.stats import ttest_ind
import numpy as np
from scipy.stats import chi2_contingency
# Replace 'your_file.csv' with the path to your CSV file
df = pd.read_csv('results.csv')
initial = [15] # Interaction order (SELECT WHICH ONE WAS FIRST)
tilt_vs_swipe = [42, 43] # How likely would you like to use to use a system using tilt vs swipe
@devLukaDev
devLukaDev / gist:a7c576426e43fcb8ef0a8d54f4653b8f
Created June 2, 2025 20:09
numpy attribute error (entire log)
(INFOGAP) luka@luka-mint:~/Desktop/INFOGAP/infogap$ pip list
Package Version Editable project location
-------------------------- ----------- -----------------------------------------------------
annotated-types 0.7.0
anyio 4.9.0
appdirs 1.4.4
asttokens 3.0.0
beautifulsoup4 4.7.1
bs4 0.0.2
certifi 2025.4.26
[
{
"docid": 1,
"title": "Omgevingsvergunning dakkapel Jan Vrijlandtsingel",
"short_description": "Vergunning voor dakkapel aan de voorzijde van woning.",
"date": "2025-05-16-09:00",
"category": "omgevingsvergunning",
"location": "Jan Vrijlandtsingel 23, 3076 PM, Rotterdam",
"detailed_description": "Het College van Burgemeester en Wethouders van Rotterdam verleent een omgevingsvergunning voor het plaatsen van een dakkapel van circa 4,2 m x 1,5 m op het voordakvlak van de woning aan de Jan Vrijlandtsingel 23. De vergunning werd verleend op 13 mei 2025. Belanghebbenden kunnen binnen zes weken bezwaar indienen bij het college.",
"objection_period": "2025-06-24",
@devLukaDev
devLukaDev / KR5-Alliance-balance.json
Last active July 31, 2024 14:40
Converted balance.lua file from Kingdom Rush 5
// chunkname: @./kr5/balance/balance.lua (JSON-ified by me)
// VERSION 2024/07/31 (ver. kr5 desktop 1.01.06)
{
"werebeasts": {
"hog_invader": {
"speed": 36,
"armor": 0,
"hp": 48,
"gold": 5,
"magic_armor": 0,
{
"batchcomplete": "",
"query": {
"pages": {
"109635": {
"pageid": 109635,
"ns": 0,
"title": "Feer",
"revisions": [
{
classDiagram
%% Bord "1"<|-- "0-*" Kuiltje
MankalaSpel "1"*--"1" State
MankalaSpel "1"<|--"1" MankalaV1
WinCheckerV1 "1"<.."1" MankalaV1
MankalaV1Bord "1"<.."1" MankalaV1
RegelVoorbeeld "5"<.."1" MankalaV1
GameManager "1"*--"1" MankalaSpel
WinChecker "1"<|--"1" WinCheckerV1
Regel "1"<|--"1" RegelVoorbeeld
classDiagram
Ticket "1"<|-- "0-1"DiscountedTicket
Ticket "1"<|--"0-1" SingleTicket
Ticket "1"<|--"0-1" ReturnTicket
TicketProcess "1" *-- "1" Payment
TicketProcess "1" *-- "*" Ticket
TicketProcess "1" *-- "1" TicketPrinter
Payment "1"<|-- "0-1" CoinPayment
Payment "1" <|-- "0-1" CardPayment
DiscountedTicket "1"*--"1" RailcardReader
@devLukaDev
devLukaDev / apps.json
Last active March 4, 2026 22:06
New Tab New apps
{"apps":{"0":{"title":"YouTube","image":"https://www.google.com/s2/favicons?domain=https://www.youtube.com&sz=256","link":"https://www.youtube.com"},"1":{"title":"Twitch","image":"https://www.google.com/s2/favicons?domain=https://www.twitch.tv&sz=256","link":"https://www.twitch.tv"},"2":{"title":"Twitter","image":"https://img.freepik.com/premium-vector/new-twitter-logo-x-2023-twitter-x-logo-vector-download_691560-10794.jpg","link":"https://x.com"},"3":{"title":"Plex","image":"https://i.imgur.com/AN6vgyS.png","link":"http://192.168.178.58:32400/web/index.html#!/"},"4":{"title":"Reddit","image":"https://www.google.com/s2/favicons?domain=https://www.reddit.com&sz=256","link":"https://www.reddit.com"},"5":{"title":"GitHub","image":"https://cdn-icons-png.flaticon.com/512/25/25231.png","link":"https://www.github.com"},"6":{"title":"Wikipedia NL","image":"https://www.google.com/s2/favicons?domain=https://nl.wikipedia.org&sz=256","link":"https://nl.wikipedia.org"},"7":{"title":"Wikipedia EN","image":"https://www.goog
namespace MNP
{
internal class Program
{
static void Main(string[] args)
{
//Code here
}
}
}