Compare commits
5 commits
57fdea9442
...
440ef15fcb
Author | SHA1 | Date | |
---|---|---|---|
440ef15fcb | |||
|
331dc65955 | ||
3cceab4fb3 | |||
f644169a3a | |||
|
32f96c0552 |
6 changed files with 90 additions and 7 deletions
27
PKGBUILD
Normal file
27
PKGBUILD
Normal file
|
@ -0,0 +1,27 @@
|
|||
# Maintainer: Dymstro <ricardo at dymstro dot nl>
|
||||
|
||||
pkgname=nova-chatmix
|
||||
pkgver=0.1.0
|
||||
pkgrel=1
|
||||
arch=('any')
|
||||
url='https://git.dymstro.nl/Dymstro/nova-chatmix-linux'
|
||||
license=('0BSD')
|
||||
depends=('python' 'python-hidapi' 'pipewire' 'libpulse')
|
||||
makedepends=('git')
|
||||
source=("$pkgname::git+https://git.dymstro.nl/Dymstro/nova-chatmix-linux.git#tag=v${pkgver}")
|
||||
sha256sums=('SKIP')
|
||||
install=nova-chatmix.install
|
||||
|
||||
prepare() {
|
||||
# Change service to point to system bin directory
|
||||
sed -i 's#%h/\.local/bin#/usr/bin#g' ${pkgname}/nova-chatmix.service
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${pkgname}"
|
||||
install -Dm755 nova-chatmix.py "${pkgdir}/usr/bin/nova-chatmix/nova-chatmix"
|
||||
install -Dm644 50-nova-pro-wireless.rules "${pkgdir}/usr/lib/udev/rules.d/50-nova-pro-wireless.rules"
|
||||
install -Dm644 nova-chatmix.service "${pkgdir}/usr/lib/systemd/user/nova-chatmix.service"
|
||||
install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md"
|
||||
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
|
||||
}
|
10
README.md
10
README.md
|
@ -59,7 +59,7 @@ To be able to run the script as a non-root user, some udev rules need to be appl
|
|||
Copy `50-nova-pro-wireless.rules` to `/etc/udev/rules.d` and reload udev rules:
|
||||
|
||||
```
|
||||
sudo cp 50-nova-pro-wireless.rules /etc/udev/rules.d/
|
||||
sudo cp 50-nova-pro-wireless.rules /etc/udev/rules.d/50-nova-pro-wireless.rules
|
||||
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
|
@ -72,12 +72,12 @@ If you want to run this script on startup you can add and enable the systemd ser
|
|||
# Create the folder if it doesn't exist
|
||||
mkdir -p ~/.local/bin
|
||||
# Copy the script to the expected location
|
||||
cp -i nova.py ~/.local/bin
|
||||
cp -i nova-chatmix.py ~/.local/bin/nova-chatmix
|
||||
|
||||
# Create systemd user unit folder if it doesn't exist
|
||||
mkdir -p ~/.config/systemd/user
|
||||
# Install the service file
|
||||
cp nova-chatmix.service ~/.config/systemd/user/
|
||||
cp nova-chatmix.service ~/.config/systemd/user/nova-chatmix.service
|
||||
# Reload systemd configuration
|
||||
systemctl --user daemon-reload
|
||||
# Enable and start the service
|
||||
|
@ -94,7 +94,7 @@ This will create 2 virtual sound devices:
|
|||
|
||||
```
|
||||
# You do not need to run this if you installed the systemd unit!
|
||||
python nova.py
|
||||
python nova-chatmix.py
|
||||
```
|
||||
|
||||
This command does not generate any output, but the Sonar icon should now be visible on the base station.
|
||||
|
@ -113,7 +113,7 @@ I am on MCU firmware version `01.29.27` and DSP firmware version `00.03.82`.
|
|||
|
||||
### Protocol description
|
||||
|
||||
See `nova.py` for a commented example implementation.
|
||||
See `nova-chatmix.py` for a commented example implementation.
|
||||
|
||||
The controls and data output are on USB Interface 4 (`bInterfaceNumber=4`). This interface has 2 endpoint, 1 for sending data (`0x04`) and 1 for receiving data (`0x84`).
|
||||
|
||||
|
|
6
nova-chatmix.install
Normal file
6
nova-chatmix.install
Normal file
|
@ -0,0 +1,6 @@
|
|||
post_install() {
|
||||
udevadm control --reload-rules
|
||||
udevadm trigger
|
||||
echo "==> To enable nova-chatmix for your user, run:"
|
||||
echo " systemctl --user enable --now nova-chatmix"
|
||||
}
|
|
@ -4,9 +4,8 @@ After=pipewire.service pipewire-pulse.service
|
|||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Restart=no
|
||||
Type=simple
|
||||
ExecStart=%h/.local/bin/nova.py
|
||||
ExecStart=%h/.local/bin/nova-chatmix
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
|
|
51
nova-chatmix.spec
Normal file
51
nova-chatmix.spec
Normal file
|
@ -0,0 +1,51 @@
|
|||
Name: nova-chatmix
|
||||
Version: 0.1.0
|
||||
Release: 1%{?dist}
|
||||
Summary: ChatMix Implementation for the SteelSeries Arctis Nova Pro Wireless headset
|
||||
|
||||
License: 0BSD
|
||||
URL: https://git.dymstro.nl/Dymstro/nova-chatmix-linux
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
|
||||
BuildRequires: systemd-rpm-macros
|
||||
Requires: python3,python3-hidapi,pipewire,pulseaudio-utils
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
%description
|
||||
ChatMix Implementation for the SteelSeries Arctis Nova Pro Wireless headset
|
||||
|
||||
%prep
|
||||
%setup -qc
|
||||
# Change service to point to system bin directory
|
||||
sed -i 's#%h/\.local/bin#%{_bindir}#g' nova-chatmix.service
|
||||
|
||||
%install
|
||||
install -Dm 0755 nova-chatmix.py %{buildroot}/%{_bindir}/nova-chatmix
|
||||
install -Dm 0644 50-nova-pro-wireless.rules %{buildroot}/%{_libdir}/udev/rules.d/50-nova-pro-wireless.rules
|
||||
install -Dm 0644 nova-chatmix.service %{buildroot}/%{_libdir}/systemd/user/nova-chatmix.service
|
||||
|
||||
%post
|
||||
udevadm control --reload-rules
|
||||
udevadm trigger
|
||||
%systemd_user_post nova-chatmix.service
|
||||
|
||||
%preun
|
||||
%systemd_user_preun nova-chatmix.service
|
||||
|
||||
%postun
|
||||
%systemd_user_postun_with_restart nova-chatmix.service
|
||||
%systemd_user_postun nova-chatmix.service
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%{_bindir}/nova-chatmix
|
||||
%{_libdir}/udev/rules.d/50-nova-pro-wireless.rules
|
||||
%{_libdir}/systemd/user/nova-chatmix.service
|
||||
|
||||
|
||||
%changelog
|
||||
* Sat Aug 16 2025 Ricardo <ricardo@dymstro.nl>
|
||||
- Release 0.1.0
|
Loading…
Add table
Reference in a new issue