Compare commits
9
Commits
132fd1852b
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d928ba9e30 | ||
|
|
6b3dac51cc | ||
|
|
1a88dee766 | ||
|
|
33087a8560 | ||
|
|
a647c19386 | ||
|
|
afce8dd737 | ||
|
|
3ad342458f | ||
|
|
44758c7231 | ||
|
|
112174792a |
@@ -0,0 +1,3 @@
|
||||
distfiles/.layout.conf*
|
||||
distfiles/.mirror-cache.json
|
||||
portage-tmp/
|
||||
@@ -1 +1 @@
|
||||
EBUILD openlinkhub-0.ebuild 168 BLAKE2B 7fd3a0164b5dad25c097fb37f1135e2675d3b095fe0a20608b0a3d4d85184ab11f4e514db1b2d44e5875665bdf95f9cc45cb386c5411c651c0cd187802e63a5a SHA512 d3457ecb9418180be83866c6a413ce755f7f03600d78603f633e5d5ee9bfef9e6befaf9c514d6ff3a39bd6027d1e283342c591a885635f91e3ba065870ee8ea9
|
||||
EBUILD openlinkhub-0.ebuild 186 BLAKE2B 702f256e21a7c9b517036db26c9b0ceac8fa75b9396c09b1f5f6c85965338b3d8895cf06bae080dc83581e8dd7d90799c7d1c19a546003538d3aaeab96027d0f SHA512 ff930e6ca5363ae94e72ee2892c5bf9612f9ce7d992c82c70fbbba761936c7404901e2a5975181f803b6f9499fc96dd8625edd46f3f6fe68fded3a3b05e6f033
|
||||
|
||||
@@ -6,3 +6,4 @@ EAPI=8
|
||||
inherit acct-group
|
||||
|
||||
DESCRIPTION="OpenLinkHub program group"
|
||||
ACCT_GROUP_ID=998
|
||||
|
||||
@@ -1 +1 @@
|
||||
EBUILD openlinkhub-0.ebuild 218 BLAKE2B 1854b0130d226e714282c63508684fc094576d4e7fd6d59b278b8a918cffb1e598399ccd2540d527d6bd4469140c2d154042b69430dd92ffc00cf457c555e3d3 SHA512 9e36e66692999191ed42692ab8f8f38fe9557acb3a450a3e53a945eb915563953889463c895dfa31ded0edde18520493e6b289a37879be3262570758bc669088
|
||||
EBUILD openlinkhub-0.ebuild 262 BLAKE2B 839dfa96113f2372477443535c2ddc40bec6d001210cfb0250ac42485c82004c0a4c79a17fadb7831cd5d281bd4503913c4b2efb0df232aa0ea5c2888d49965d SHA512 c85e9944730ee5959e8ce339f8389e304c4f0609e901a105c59944266c2462d565b67c919bc68c80e8d9fda468de559b4d55175dd772f5fc49fd68bf9b9759c2
|
||||
|
||||
@@ -6,5 +6,7 @@ EAPI=8
|
||||
inherit acct-user
|
||||
|
||||
DESCRIPTION="OpenLinkHub program user"
|
||||
ACCT_USER_ID=999
|
||||
ACCT_USER_SHELL=/bin/false
|
||||
ACCT_USER_GROUPS=( openlinkhub )
|
||||
acct-user_add_deps
|
||||
|
||||
Binary file not shown.
@@ -3,5 +3,5 @@ DIST cef_binary_6533_linux_x86_64_v6.tar.xz 325417128 BLAKE2B 6e2d1082fcc1bac22a
|
||||
DIST obs-browser-ea04212e4bbadd077f9e6038758c4e4779c24fa3.tar.gz 117820 BLAKE2B ef21fde3b0508e4753da4549ca48348c03b4a8509904ac0aa8a80e4e4f3c1547be610de5890e688f058bcb3d2bbeda9fac5eb0b4d71ed5f8cef3a56a7709b10c SHA512 2b8ffb22a78b3ac89d5742fac420d762fbf9a8631d97cfbe6001d9506206bc5ee0ba49c9dbf566c4d45955fcbb1ea9f90f7b9b6b228da9a05b62f04306684150
|
||||
DIST obs-studio-32.1.2.tar.gz 16150365 BLAKE2B eb611ab03b902c357b5cd1e80b14340d97c681ef027e794d9d0a79836b5d5997b0640b438203b65ae6ead680471e9fa7849edf38576ea714e8d999ebc48b4673 SHA512 5da9f659b433cc282d3fb10a52af01e9aa0e7eaaf5c61eb2f201d6f88c61fa14a46db5ba4b6c04347d75d3912e3d09d593b355f9d83e524d2df8c043acba6edc
|
||||
DIST obs-websocket-68bebc28be57a8ca371404182113e16eeac74cbf.tar.gz 261944 BLAKE2B e5a23d3b54b45f519226ad1c3483b024c2af9d02ccbfdec2c277ed82cd3b1eb247863e4a557f59c315e0220becb14b998beb938892519257f3aad2c89e603137 SHA512 8f5f17cd88c45e34606af8b5b410ce18a72d56f0b205b1b2d1433b16c3ac8e241845cf8de1e3d535869334912c16ad4a35e30086a0efa3a059ab17de6947bbf8
|
||||
EBUILD obs-studio-32.1.2.ebuild 6943 BLAKE2B ea152a7d473b404c7c24a20dcb3fd4b86df068443e45828255fd7948a6b43adb93c11bf893fa5e4cd2feb60488ffe81d4412ba3363956b264f77bed58bf17999 SHA512 975b1b5df21063d74f70a896c6c7f5535b592e6fffbe4b1010ac2d7ea7a7ce0cd99b71d912c33c594e516fd6239cfd04666ab0488a2e529d510ad1e456a58d2d
|
||||
EBUILD obs-studio-32.1.2.ebuild 6944 BLAKE2B 72a348a79600c951e15c3efdc5eee3fb290dbc9151b97fdf5ef06240f3d1cf541476edc6008a8aebd4218b2abeeba77f12346c91b9fe280a58b1cee00cb9a2ed SHA512 ef6f1816ef944896c45dd1364441544433efe26eb595d56c227e68fa36de233a4ba5256773cf90c23a908fadc6e818ddeaa578ee479a7bc4c8b0bda76e0809fb
|
||||
MISC metadata.xml 2056 BLAKE2B e672e785bbf6e41022b9e8b1fd4e9ce5801c365dbe257e78883f7d79f8223abf99a7a7ec6dcdc4f832351395d5c5e63174fafc5367e4a9bee01a6c7d997acf35 SHA512 dabdcd625cd6c0fee2384a64de7bd918eca62a257ab76fd97123e4e7da11567638fe1841ab32c27960c6b1ac0334fc27a8fb3f5892d4e2ee15d45ef54ef664c0
|
||||
|
||||
@@ -49,7 +49,7 @@ LICENSE="Boost-1.0 GPL-2+ MIT Unlicense"
|
||||
SLOT="0"
|
||||
IUSE="
|
||||
+alsa browser decklink fdk jack lua mpegts nvenc pipewire pulseaudio
|
||||
python qsv sndio speex test-input truetype v4l vlc wayland websocket whip
|
||||
python qsv sndio speex test-input truetype v4l vlc wayland websocket +whip
|
||||
"
|
||||
REQUIRED_USE="
|
||||
browser? ( || ( alsa pulseaudio ) )
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
AUX openlinkhub-0.8.8-openrgb-k100air.patch 7899 BLAKE2B 18c92f08eb1c5da5687ce5abb9b4eb52fa87ced6521a5e2d65e1586f440d1c76fb8a2666ada7148dce9375e73fd7a32065967d9477beaddea2e37a0fdf78a9f5 SHA512 e892f7c1c5c4e4c1423b38eac2879e498be27ea4b4f22406492c96ccdcf1a4f10b3e11c27806c1466b38bfbffec03d9c06a457828c4f70f03f484187734cfc1f
|
||||
AUX openlinkhub.confd 176 BLAKE2B 5301872630e14a77b477f83af977863491c2c503690d35bb45fa8d32265c27db7fc9583b61ba8bfa7a2d12b02e18e82842f65c4e326a4ad4d04720ce98320b02 SHA512 632ffc6866fa5e4082b8d6d6229b923dd5a5e01ecb846a6a18c8631ac6b0815b285c7f2290353f2194c21babd5cfd53e22bb61f9daad8330b33e8c18c240366f
|
||||
AUX openlinkhub.initd 743 BLAKE2B efdc6f9b2c962b386eb776de16ece53d34ccca6360d4e1c7f01ae51da4b1c5f94c26229b3141f9e60f8a991413cb575f9d805c886623c87264fa9f1e64a4ccc7 SHA512 e4d2c8830fc37ddf66b4a1e11a4a40485e589714e7bc312fd5191bd79f03a1bebdec49e8bb2bb0cf575c6e2e918f64f1c27d3c14c40bb202e5c105cc124323f0
|
||||
AUX openlinkhub.service 311 BLAKE2B b6366807f0b5268b78388243c91ade1622456eebeea05f00911d3f08838fe6a5f9a2f306c6b0100849e48c51a208ca899ea4ead2cd8b0c58ad0c283ef96961ee SHA512 f6f4077f7970cff54167a613657fdc16a942732c27f60a817dc72d9584774f85e63f43713b2c9eaa9636460a98658ef1f7343c6d593b84ce7755728cf12786ba
|
||||
AUX openlinkhub.tmpfiles 54 BLAKE2B b9d4baff6c69fc52affed923cc4fc09bd11a5b22bc9954c293f80006f253494c08347693d4ae4260c8b81759e9bc663bf3bdf1e3740af1c706b60b82f8c82ea5 SHA512 32f052480210de470fbe056b85b4ae6054e39fa2c20ca54c737623eb4b3883b5529c8b92f2554272b2ef6baeae15c549f126d958a3bff49bbaa1e463e3a7125f
|
||||
DIST openlinkhub-0.8.8-deps.tar.xz 20985188 BLAKE2B c22b6b1d3f86a725f7a60ba7c36bb8c14a6f3fc6b89373a49d77388d7693aa9afcf82dc0fabadd739d9fa3eaad4d247673ada39879c14ad4c53c8c80a1da268e SHA512 4780a687e92464ca27db31ddb003ca9d789c7b9d2d1be9328321a8dab137951358bc4c19558c87cb92db32e1539a49ba2b5eb82ab71c6fd7a219db0a5adeca8f
|
||||
DIST openlinkhub-0.8.8.tar.gz 5230346 BLAKE2B 0d06c458068c3f06071b799ec74ebfe4ad08e5602fdab9554bcf8b4358d4bab404e3db739d3b75e0c517a3632d3956532660bdfe94d679cb10406e9f9cc9ca36 SHA512 a42b35f8ada4d64a5a9df93944ed19a45b9a2a0ce6b4d17f901712e0dd0f79e00eaa9cd42bf288ba46cf49344ab1fd4bcc33413613ab373e921e2d2abe535b26
|
||||
EBUILD openlinkhub-0.8.8.ebuild 1204 BLAKE2B 74793a0e890f50eb38ce29f88da7bd2e0061eaf0ccd9597ff6264fdc205fb0c87d8abe816251f86f1d956039e28d6fb4f775c6e40cf24deaf7d518a4eb43e641 SHA512 65999c917f9e36b6d8802237ccae0499196bf8ba08de1d5beb6cd745ee110b345779079b2c6cc2f213f4efd8ff55b9debfb41117e82f32571874cd066771cd32
|
||||
EBUILD openlinkhub-0.8.8.ebuild 1606 BLAKE2B 19f0c24a0acd9a3e896272a0ea0133348ea9815a0e0c05957721a2e168730dfe8848dbeab118984b3263542f260eebb481226fc9532d8738faadc12deb945055 SHA512 bfbd8bd9bc69f7dc9fa402ad4bb3191ec7c8e9031b0693f4d2c279da36c0346459049cccfa2921ba289305a4da99866d88d1a32be740eeaa9a1b35106e59ba7d
|
||||
MISC metadata.xml 558 BLAKE2B b5a10bc1b437d1f0dc04125740e065b1821786eb9d832d44f757c031a5a7b24f4c9fe0995cbc0ab169cf46874e6c43ebf7bf2770607bc3d0290a39d61ffbc4a6 SHA512 18bb2abac8ca4923efa55f6757654979c5b37b32a9ce93a390bf5c80feee6a1fac467333b7988d4cf9b7b5b2496236b612c0d40773f8df5a3796efd5392e77f0
|
||||
|
||||
@@ -0,0 +1,257 @@
|
||||
--- a/src/devices/k100airWU/k100airWU.go 2026-06-13 21:26:01.000000000 -0600
|
||||
+++ b/src/devices/k100airWU/k100airWU.go 2026-06-18 13:03:58.116016558 -0600
|
||||
@@ -13,6 +13,7 @@
|
||||
"OpenLinkHub/src/keyboards"
|
||||
"OpenLinkHub/src/logger"
|
||||
"OpenLinkHub/src/macro"
|
||||
+ "OpenLinkHub/src/openrgb"
|
||||
"OpenLinkHub/src/rgb"
|
||||
"OpenLinkHub/src/stats"
|
||||
"OpenLinkHub/src/temperatures"
|
||||
@@ -57,6 +58,7 @@
|
||||
AutoBrightness int
|
||||
Profiles []string
|
||||
RGBCluster bool
|
||||
+ OpenRGBIntegration bool
|
||||
DisableAltTab bool
|
||||
DisableAltF4 bool
|
||||
DisableShiftTab bool
|
||||
@@ -73,6 +75,7 @@
|
||||
Product string `json:"product"`
|
||||
Serial string `json:"serial"`
|
||||
Firmware string `json:"firmware"`
|
||||
+ Path string
|
||||
activeRgb *rgb.ActiveRGB
|
||||
UserProfiles map[string]*DeviceProfile `json:"userProfiles"`
|
||||
Devices map[int]string `json:"devices"`
|
||||
@@ -202,6 +205,7 @@
|
||||
3: "100 %",
|
||||
},
|
||||
Product: "K100 AIR",
|
||||
+ Path: path,
|
||||
LEDChannels: 137,
|
||||
Layouts: keyboards.GetLayouts(keyboardKey),
|
||||
KeyAssignmentTypes: map[int]string{
|
||||
@@ -256,6 +260,9 @@
|
||||
d.setupClusterController() // RGB Cluster
|
||||
d.setupPerformance() // Performance
|
||||
d.setAutoBrightness() // Auto brightness
|
||||
+ if d.DeviceProfile != nil && d.DeviceProfile.OpenRGBIntegration {
|
||||
+ d.setupOpenRGBController() // OpenRGB Controller
|
||||
+ }
|
||||
d.createDevice() // Device register
|
||||
logger.Log(logger.Fields{"serial": d.Serial, "product": d.Product}).Info("Device successfully initialized")
|
||||
|
||||
@@ -411,7 +418,16 @@
|
||||
|
||||
// getKeyData will return key data for given key hash
|
||||
func (d *Device) getKeyData(keyHash string) *keyboards.Key {
|
||||
- for _, value := range d.DeviceProfile.Keyboards[d.DeviceProfile.Profile].Row {
|
||||
+ if d.DeviceProfile == nil {
|
||||
+ return nil
|
||||
+ }
|
||||
+
|
||||
+ keyboard := d.DeviceProfile.Keyboards[d.DeviceProfile.Profile]
|
||||
+ if keyboard == nil {
|
||||
+ return nil
|
||||
+ }
|
||||
+
|
||||
+ for _, value := range keyboard.Row {
|
||||
for _, key := range value.Keys {
|
||||
for _, hash := range key.KeyHash {
|
||||
if hash == keyHash {
|
||||
@@ -776,6 +792,7 @@
|
||||
deviceProfile.LCDMode = d.DeviceProfile.LCDMode
|
||||
deviceProfile.LCDRotation = d.DeviceProfile.LCDRotation
|
||||
deviceProfile.RGBCluster = d.DeviceProfile.RGBCluster
|
||||
+ deviceProfile.OpenRGBIntegration = d.DeviceProfile.OpenRGBIntegration
|
||||
deviceProfile.DisableAltTab = d.DeviceProfile.DisableAltTab
|
||||
deviceProfile.DisableAltF4 = d.DeviceProfile.DisableAltF4
|
||||
deviceProfile.DisableShiftTab = d.DeviceProfile.DisableShiftTab
|
||||
@@ -1153,11 +1170,69 @@
|
||||
cluster.Get().AddDeviceController(clusterController)
|
||||
}
|
||||
|
||||
+// setupOpenRGBController will create RGBController object for OpenRGB Client Integration
|
||||
+func (d *Device) setupOpenRGBController() {
|
||||
+ openrgb.RemoveDeviceControllerBySerial(d.Serial)
|
||||
+
|
||||
+ controller := &common.OpenRGBController{
|
||||
+ Name: d.Product,
|
||||
+ Vendor: "Corsair",
|
||||
+ Description: "OpenLinkHub Backend Device",
|
||||
+ FwVersion: d.Firmware,
|
||||
+ Serial: d.Serial,
|
||||
+ Location: fmt.Sprintf("HID: %s", d.Path),
|
||||
+ Zones: nil,
|
||||
+ Colors: make([]byte, d.LEDChannels*3),
|
||||
+ ActiveMode: 0,
|
||||
+ WriteColorEx: d.writeColorEx,
|
||||
+ DeviceType: common.DeviceTypeKeyboard,
|
||||
+ ColorMode: common.ColorModePerLed,
|
||||
+ }
|
||||
+
|
||||
+ controller.Zones = append(controller.Zones,
|
||||
+ common.OpenRGBZone{
|
||||
+ Name: "Keyboard",
|
||||
+ NumLEDs: uint32(d.LEDChannels),
|
||||
+ ZoneType: common.ZoneTypeLinear,
|
||||
+ },
|
||||
+ )
|
||||
+ openrgb.AddDeviceController(controller)
|
||||
+ openrgb.SendToOpenRGB()
|
||||
+}
|
||||
+
|
||||
+// ProcessSetOpenRgbIntegration will update OpenRGB integration status
|
||||
+func (d *Device) ProcessSetOpenRgbIntegration(enabled bool) uint8 {
|
||||
+ if d.DeviceProfile == nil {
|
||||
+ return 0
|
||||
+ }
|
||||
+ if d.DeviceProfile.RGBCluster {
|
||||
+ return 2
|
||||
+ }
|
||||
+
|
||||
+ d.DeviceProfile.OpenRGBIntegration = enabled
|
||||
+ d.saveDeviceProfile()
|
||||
+ if d.activeRgb != nil {
|
||||
+ d.activeRgb.Exit <- true
|
||||
+ d.activeRgb = nil
|
||||
+ }
|
||||
+ if enabled {
|
||||
+ d.setupOpenRGBController()
|
||||
+ } else {
|
||||
+ openrgb.RemoveDeviceControllerBySerial(d.Serial)
|
||||
+ openrgb.SendToOpenRGB()
|
||||
+ }
|
||||
+ d.setDeviceColor()
|
||||
+ return 1
|
||||
+}
|
||||
+
|
||||
// ProcessSetRgbCluster will update OpenRGB integration status
|
||||
func (d *Device) ProcessSetRgbCluster(enabled bool) uint8 {
|
||||
if d.DeviceProfile == nil {
|
||||
return 0
|
||||
}
|
||||
+ if d.DeviceProfile.OpenRGBIntegration {
|
||||
+ return 2
|
||||
+ }
|
||||
|
||||
d.DeviceProfile.RGBCluster = enabled
|
||||
d.saveDeviceProfile() // Save profile
|
||||
@@ -1743,6 +1818,12 @@
|
||||
return
|
||||
}
|
||||
|
||||
+ // OpenRGB
|
||||
+ if d.DeviceProfile.OpenRGBIntegration {
|
||||
+ logger.Log(logger.Fields{}).Info("Exiting setDeviceColor() due to OpenRGB client")
|
||||
+ return
|
||||
+ }
|
||||
+
|
||||
// RGB Cluster
|
||||
if d.DeviceProfile.RGBCluster {
|
||||
logger.Log(logger.Fields{}).Info("Exiting setDeviceColor() due to RGB Cluster")
|
||||
@@ -2071,6 +2152,85 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+
|
||||
+ if d.DeviceProfile.Performance {
|
||||
+ buf[6] = 255
|
||||
+ buf[7] = 255
|
||||
+ buf[8] = 255
|
||||
+ buf[lockLedIndex] = 255
|
||||
+ buf[lockLedIndex+1] = 0
|
||||
+ buf[lockLedIndex+2] = 0
|
||||
+ }
|
||||
+
|
||||
+ buffer := make([]byte, len(dataTypeSetColor)+len(buf)+headerWriteSize)
|
||||
+ binary.LittleEndian.PutUint16(buffer[0:2], uint16(len(buf)))
|
||||
+ copy(buffer[headerWriteSize:headerWriteSize+len(dataTypeSetColor)], dataTypeSetColor)
|
||||
+ copy(buffer[headerWriteSize+len(dataTypeSetColor):], buf)
|
||||
+
|
||||
+ chunks := common.ProcessMultiChunkPacket(buffer, maxBufferSizePerRequest)
|
||||
+ for i, chunk := range chunks {
|
||||
+ if i == 0 {
|
||||
+ _, err := d.transfer(cmdWriteColor, chunk)
|
||||
+ if err != nil {
|
||||
+ logger.Log(logger.Fields{"error": err, "serial": d.Serial}).Error("Unable to write to color endpoint")
|
||||
+ }
|
||||
+ } else {
|
||||
+ _, err := d.transfer(dataTypeSubColor, chunk)
|
||||
+ if err != nil {
|
||||
+ logger.Log(logger.Fields{"error": err, "serial": d.Serial}).Error("Unable to write to color endpoint")
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+// writeColorEx will write data to the device from OpenRGB client
|
||||
+func (d *Device) writeColorEx(data []byte, _ int) {
|
||||
+ if d.DeviceProfile == nil || !d.DeviceProfile.OpenRGBIntegration {
|
||||
+ return
|
||||
+ }
|
||||
+
|
||||
+ if d.Exit {
|
||||
+ return
|
||||
+ }
|
||||
+
|
||||
+ d.writeOpenRGBColors(data)
|
||||
+}
|
||||
+
|
||||
+// writeOpenRGBColors maps sequential OpenRGB LED data onto the keyboard packet
|
||||
+func (d *Device) writeOpenRGBColors(data []byte) {
|
||||
+ d.deviceLock.Lock()
|
||||
+ defer d.deviceLock.Unlock()
|
||||
+
|
||||
+ if d.DeviceProfile == nil {
|
||||
+ return
|
||||
+ }
|
||||
+
|
||||
+ keyboard := d.DeviceProfile.Keyboards[d.DeviceProfile.Profile]
|
||||
+ if keyboard == nil {
|
||||
+ return
|
||||
+ }
|
||||
+
|
||||
+ var buf = make([]byte, colorPacketLength)
|
||||
+ led := 0
|
||||
+
|
||||
+ for _, rows := range keyboard.Row {
|
||||
+ for _, key := range rows.Keys {
|
||||
+ if key.NoColor {
|
||||
+ continue
|
||||
+ }
|
||||
+ for _, packetIndex := range key.PacketIndex {
|
||||
+ base := led * 3
|
||||
+ if base+2 >= len(data) {
|
||||
+ led++
|
||||
+ continue
|
||||
+ }
|
||||
+ buf[packetIndex] = data[base]
|
||||
+ buf[packetIndex+1] = data[base+1]
|
||||
+ buf[packetIndex+2] = data[base+2]
|
||||
+ led++
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
|
||||
if d.DeviceProfile.Performance {
|
||||
buf[6] = 255
|
||||
--- a/web/k100airW.html 2026-06-13 21:26:01.000000000 -0600
|
||||
+++ b/web/k100airW.html 2026-06-18 13:03:58.116981931 -0600
|
||||
@@ -148,6 +148,15 @@
|
||||
<span class="toggle-track"></span>
|
||||
</label>
|
||||
</div>
|
||||
+
|
||||
+ <!-- OpenRGB -->
|
||||
+ <div class="settings-row">
|
||||
+ <span class="settings-label text-ellipsis">{{ .Lang "txtOpenRGB" }}</span>
|
||||
+ <label class="system-toggle compact">
|
||||
+ <input type="checkbox" class="toggleOpenRGB" {{ if $deviceProfile.OpenRGBIntegration }} checked {{ end }}>
|
||||
+ <span class="toggle-track"></span>
|
||||
+ </label>
|
||||
+ </div>
|
||||
{{ end }}
|
||||
|
||||
<!-- Auto Brightness -->
|
||||
@@ -8,15 +8,18 @@ inherit go-module systemd tmpfiles udev
|
||||
DESCRIPTION="Open source Linux interface for iCUE LINK Hub and Corsair AIOs"
|
||||
HOMEPAGE="https://openlinkhub.dev"
|
||||
SRC_URI="https://github.com/jurkovic-nikola/OpenLinkHub/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
SRC_URI+=" https://git.customdesigns.ca/RHWSI/gentoo-overlay/raw/branch/master/distfiles/${P}-deps.tar.xz"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
LICENSE+=" BSD BSD-2 MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
DEPEND="media-video/pipewire"
|
||||
RDEPEND="
|
||||
acct-group/openlinkhub
|
||||
acct-user/openlinkhub
|
||||
media-libs/pipewire
|
||||
media-video/pipewire
|
||||
sys-apps/i2c-tools
|
||||
sys-apps/systemd
|
||||
"
|
||||
@@ -25,6 +28,8 @@ BDEPEND=">=dev-lang/go-1.25"
|
||||
|
||||
S="${WORKDIR}/OpenLinkHub-${PV}"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${P}-openrgb-k100air.patch" )
|
||||
|
||||
src_compile() {
|
||||
export CGO_CFLAGS_ALLOW='-fno-strict-overflow'
|
||||
ego build -o OpenLinkHub .
|
||||
@@ -45,10 +50,15 @@ src_install() {
|
||||
newtmpfiles "${FILESDIR}/${PN}.tmpfiles" ${PN}.conf
|
||||
|
||||
keepdir /var/lib/${PN}
|
||||
fowners openlinkhub:openlinkhub /var/lib/${PN}
|
||||
fowners -R openlinkhub:openlinkhub /var/lib/${PN}
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
tmpfiles_process ${PN}.conf
|
||||
udev_reload
|
||||
|
||||
# Ensure runtime data dirs are writable after upgrades from older ebuilds.
|
||||
if [[ -d ${ROOT}/var/lib/${PN} ]]; then
|
||||
chown -R openlinkhub:openlinkhub "${ROOT}/var/lib/${PN}"
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user