forked from drath/libratbag
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e28a6a92d6 | ||
|
|
381de107be | ||
|
|
f474776a4d | ||
|
|
fd99aa29a7 | ||
|
|
53bc81f6fe | ||
|
|
ff215126b2 | ||
|
|
78793296a2 | ||
|
|
a6cb7f8301 | ||
|
|
9cb444bb07 | ||
|
|
121a843071 | ||
|
|
62a620c056 | ||
|
|
9d30ec5437 | ||
|
|
e570e29a1e | ||
|
|
1f79d8e6e2 |
269
.circleci/config.yml
Normal file
269
.circleci/config.yml
Normal file
@@ -0,0 +1,269 @@
|
|||||||
|
libratbag_references:
|
||||||
|
build_dependencies: &build_dependencies
|
||||||
|
FEDORA_DEP_BUILD: gcc gcc-c++ meson dbus-daemon glib2-devel json-glib-devel libevdev-devel libudev-devel libunistring-devel python3-devel python3-evdev swig
|
||||||
|
FEDORA_DEP_TEST: check-devel python3-gobject python3-lxml valgrind diffutils
|
||||||
|
FEDORA_DEP_DOC: python3-sphinx python3-sphinx_rtd_theme
|
||||||
|
UBUNTU_DEP_BUILD: gcc g++ meson pkg-config systemd libevdev-dev libglib2.0-dev libjson-glib-dev libsystemd-dev libudev-dev libunistring-dev python3-dev python3-evdev swig
|
||||||
|
UBUNTU_DEP_TEST: check python3-gi python3-lxml valgrind
|
||||||
|
ARCH_DEP_BUILD: meson swig glib2 libevdev libudev.so libunistring json-glib python python-evdev python-gobject
|
||||||
|
ARCH_DEP_TEST: check valgrind python-lxml
|
||||||
|
default_settings: &default_settings
|
||||||
|
working_directory: ~/libratbag
|
||||||
|
environment:
|
||||||
|
LANG: C.UTF-8
|
||||||
|
build_default: &build_default
|
||||||
|
name: Build
|
||||||
|
command: |
|
||||||
|
rm -rf build
|
||||||
|
meson build ${MESON_PARAMS}
|
||||||
|
meson configure build
|
||||||
|
ninja -v -C build ${NINJA_ARGS}
|
||||||
|
environment:
|
||||||
|
MESON_PARAMS: --prefix=/usr
|
||||||
|
build_buildtype_plain: &build_buildtype_plain
|
||||||
|
run:
|
||||||
|
<<: *build_default
|
||||||
|
name: Build with buildtype plain
|
||||||
|
environment:
|
||||||
|
MESON_PARAMS: --prefix=/usr -Dbuildtype=plain
|
||||||
|
build_buildtype_release: &build_buildtype_release
|
||||||
|
run:
|
||||||
|
<<: *build_default
|
||||||
|
name: Build with buildtype release
|
||||||
|
environment:
|
||||||
|
MESON_PARAMS: --prefix=/usr -Dbuildtype=release
|
||||||
|
build_and_test: &build_and_test
|
||||||
|
run:
|
||||||
|
<<: *build_default
|
||||||
|
name: Build and test
|
||||||
|
environment:
|
||||||
|
NINJA_ARGS: test
|
||||||
|
build_with_docs: &build_with_docs
|
||||||
|
run:
|
||||||
|
<<: *build_default
|
||||||
|
name: Build with documentation
|
||||||
|
environment:
|
||||||
|
MESON_PARAMS: -Ddocumentation=true
|
||||||
|
install: &install
|
||||||
|
run:
|
||||||
|
name: Installing
|
||||||
|
command: ninja -C build install
|
||||||
|
check_install: &check_install
|
||||||
|
run:
|
||||||
|
name: Checking installation
|
||||||
|
command: |
|
||||||
|
PREFIX=/usr/local/
|
||||||
|
diff -u <(cd data/devices; ls *.device) <(cd $PREFIX/share/libratbag; ls *.device)
|
||||||
|
check_uninstall: &check_uninstall
|
||||||
|
run:
|
||||||
|
name: Checking if any files are left after uninstall
|
||||||
|
command: |
|
||||||
|
PREFIX=/root/test_install
|
||||||
|
meson build_install --prefix=$PREFIX
|
||||||
|
ninja -C build_install install
|
||||||
|
ninja -C build_install uninstall
|
||||||
|
if [ -d $PREFIX ]
|
||||||
|
then
|
||||||
|
tree $PREFIX
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
export_logs: &export_logs
|
||||||
|
store_artifacts:
|
||||||
|
path: ~/libratbag/build/meson-logs
|
||||||
|
start_dbus: &start_dbus
|
||||||
|
run:
|
||||||
|
name: Start dbus daemon
|
||||||
|
command: |
|
||||||
|
mkdir /run/dbus
|
||||||
|
/usr/bin/dbus-daemon --system --fork
|
||||||
|
|
||||||
|
save_date: &save_date
|
||||||
|
run:
|
||||||
|
name: Save date
|
||||||
|
command: date +%F > /tmp/date
|
||||||
|
|
||||||
|
fedora_save_cache: &fedora_save_cache
|
||||||
|
save_cache:
|
||||||
|
key: fedora-cache-v1-{{ checksum "/tmp/date" }}
|
||||||
|
paths:
|
||||||
|
- /var/cache/dnf
|
||||||
|
|
||||||
|
fedora_fetch_cache: &fedora_fetch_cache
|
||||||
|
restore_cache:
|
||||||
|
keys:
|
||||||
|
- fedora-cache-v1
|
||||||
|
|
||||||
|
fedora_install: &fedora_install
|
||||||
|
run:
|
||||||
|
name: Install prerequisites
|
||||||
|
command: |
|
||||||
|
echo keepcache=1 >> /etc/dnf/dnf.conf
|
||||||
|
dnf install -y git ${FEDORA_DEP_BUILD} ${FEDORA_DEP_TEST}
|
||||||
|
sed -i 's/systemd//' /etc/nsswitch.conf
|
||||||
|
|
||||||
|
fedora_settings: &fedora_settings
|
||||||
|
<<: *default_settings
|
||||||
|
steps:
|
||||||
|
- *save_date
|
||||||
|
- *fedora_fetch_cache
|
||||||
|
- *fedora_install
|
||||||
|
- checkout
|
||||||
|
- *start_dbus
|
||||||
|
- *build_and_test
|
||||||
|
- *install
|
||||||
|
- *check_install
|
||||||
|
- *check_uninstall
|
||||||
|
- *build_buildtype_plain
|
||||||
|
- *build_buildtype_release
|
||||||
|
- *export_logs
|
||||||
|
- *fedora_save_cache
|
||||||
|
environment:
|
||||||
|
*build_dependencies
|
||||||
|
|
||||||
|
arch_save_cache: &arch_save_cache
|
||||||
|
save_cache:
|
||||||
|
key: arch-cache-v1-{{ checksum "/tmp/date" }}
|
||||||
|
paths:
|
||||||
|
- /var/cache/pacman/pkg
|
||||||
|
|
||||||
|
arch_fetch_cache: &arch_fetch_cache
|
||||||
|
restore_cache:
|
||||||
|
keys:
|
||||||
|
- arch-cache-v1
|
||||||
|
|
||||||
|
arch_settings: &arch_settings
|
||||||
|
<<: *default_settings
|
||||||
|
steps:
|
||||||
|
- *save_date
|
||||||
|
- *arch_fetch_cache
|
||||||
|
- run:
|
||||||
|
name: Install prerequisites
|
||||||
|
command: pacman -Syu --noconfirm --noprogressbar --needed base-devel git tree ${ARCH_DEP_BUILD} ${ARCH_DEP_TEST}
|
||||||
|
- *start_dbus
|
||||||
|
- checkout
|
||||||
|
- *build_and_test
|
||||||
|
- *install
|
||||||
|
- *check_install
|
||||||
|
- *check_uninstall
|
||||||
|
- *export_logs
|
||||||
|
- *arch_save_cache
|
||||||
|
environment:
|
||||||
|
*build_dependencies
|
||||||
|
|
||||||
|
ubuntu_settings: &ubuntu_settings
|
||||||
|
<<: *default_settings
|
||||||
|
steps:
|
||||||
|
- run:
|
||||||
|
name: Install prerequisites
|
||||||
|
command: |
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y git ${UBUNTU_DEP_BUILD} ${UBUNTU_DEP_TEST}
|
||||||
|
- checkout
|
||||||
|
- *start_dbus
|
||||||
|
- *build_and_test
|
||||||
|
- *install
|
||||||
|
- *check_install
|
||||||
|
- *check_uninstall
|
||||||
|
- *build_buildtype_plain
|
||||||
|
- *build_buildtype_release
|
||||||
|
- *export_logs
|
||||||
|
environment:
|
||||||
|
*build_dependencies
|
||||||
|
|
||||||
|
doc_build: &doc_build
|
||||||
|
<<: *default_settings
|
||||||
|
steps:
|
||||||
|
- *fedora_fetch_cache
|
||||||
|
- *fedora_install
|
||||||
|
- run:
|
||||||
|
name: Install documentation build-deps
|
||||||
|
command: dnf install -y ${FEDORA_DEP_DOC}
|
||||||
|
- checkout
|
||||||
|
- *build_with_docs
|
||||||
|
- *export_logs
|
||||||
|
- store_artifacts:
|
||||||
|
path: ~/libratbag/build/doc/html
|
||||||
|
- persist_to_workspace:
|
||||||
|
root: build
|
||||||
|
paths:
|
||||||
|
- doc/html/*
|
||||||
|
environment:
|
||||||
|
*build_dependencies
|
||||||
|
|
||||||
|
docs_deploy: &docs_deploy
|
||||||
|
<<: *default_settings
|
||||||
|
steps:
|
||||||
|
- *fedora_fetch_cache
|
||||||
|
- run:
|
||||||
|
name: Install prerequisites
|
||||||
|
command: dnf install -y git tree
|
||||||
|
- checkout
|
||||||
|
- attach_workspace:
|
||||||
|
at: build
|
||||||
|
- run:
|
||||||
|
name: Setup the deploy SSH key
|
||||||
|
command: |
|
||||||
|
ssh-add -L | tail -n1 > ~/.ssh/deploy.pub
|
||||||
|
cat <<EOF > ~/.ssh/config
|
||||||
|
Host github.com
|
||||||
|
IdentityFile /root/.ssh/deploy.pub
|
||||||
|
IdentitiesOnly yes
|
||||||
|
EOF
|
||||||
|
- run:
|
||||||
|
name: Clone doc repository
|
||||||
|
command: |
|
||||||
|
cd ~
|
||||||
|
git clone ssh://git@github.com/${CIRCLE_PROJECT_REPONAME}/${CIRCLE_PROJECT_REPONAME}.github.io
|
||||||
|
- run:
|
||||||
|
name: Copy the doc, commit and push
|
||||||
|
command: |
|
||||||
|
set +e
|
||||||
|
cd ~/${CIRCLE_PROJECT_REPONAME}.github.io
|
||||||
|
\cp -r ~/${CIRCLE_PROJECT_REPONAME}/build/doc/html/* .
|
||||||
|
if ! git diff-index --quiet HEAD --; then
|
||||||
|
git config --global user.email "libratbag@librabtag.github.io"
|
||||||
|
git config --global user.name "The libratbag crew"
|
||||||
|
git add .
|
||||||
|
git commit -m "update docs from ${CIRCLE_SHA1}"
|
||||||
|
git push
|
||||||
|
fi
|
||||||
|
|
||||||
|
version: 2
|
||||||
|
jobs:
|
||||||
|
fedora_32:
|
||||||
|
<<: *fedora_settings
|
||||||
|
docker:
|
||||||
|
- image: fedora:32
|
||||||
|
arch:
|
||||||
|
<<: *arch_settings
|
||||||
|
docker:
|
||||||
|
- image: archlinux
|
||||||
|
ubuntu_20_04:
|
||||||
|
<<: *ubuntu_settings
|
||||||
|
docker:
|
||||||
|
- image: ubuntu:20.04
|
||||||
|
doc_build:
|
||||||
|
<<: *doc_build
|
||||||
|
docker:
|
||||||
|
- image: fedora:32
|
||||||
|
doc_deploy:
|
||||||
|
<<: *docs_deploy
|
||||||
|
docker:
|
||||||
|
- image: fedora:32
|
||||||
|
|
||||||
|
|
||||||
|
workflows:
|
||||||
|
version: 2
|
||||||
|
compile_and_test:
|
||||||
|
jobs:
|
||||||
|
- ubuntu_20_04
|
||||||
|
- arch
|
||||||
|
- fedora_32
|
||||||
|
- doc_build
|
||||||
|
- doc_deploy:
|
||||||
|
requires:
|
||||||
|
- doc_build
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only: master
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
outdir ?= .
|
|
||||||
spec ?= libratbag.spec
|
|
||||||
|
|
||||||
srpm:
|
|
||||||
dnf -y install git-core rpm-build
|
|
||||||
git archive --format=tar.gz --prefix=libratbag-snapshot/ \
|
|
||||||
-o $(outdir)/libratbag-snapshot.tar.gz HEAD
|
|
||||||
rpmbuild -bs $(spec) \
|
|
||||||
--define "_sourcedir $(outdir)" \
|
|
||||||
--define "_srcrpmdir $(outdir)" \
|
|
||||||
--define "gitdate $$(date +%Y%m%d)" \
|
|
||||||
--define "shortcommit $$(git rev-parse --short=7 HEAD)"
|
|
||||||
@@ -1,259 +0,0 @@
|
|||||||
%global udevdir %(pkg-config --variable=udevdir udev)
|
|
||||||
%global commit <full 40-char hash>
|
|
||||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
|
||||||
%global gitdate %(date +%%Y%%m%%d)
|
|
||||||
|
|
||||||
Name: libratbag
|
|
||||||
Version: 0.18^%{gitdate}git%{shortcommit}
|
|
||||||
Release: 1%{?dist}
|
|
||||||
Summary: Programmable input device library
|
|
||||||
License: MIT
|
|
||||||
URL: https://github.com/libratbag/libratbag
|
|
||||||
Source0: libratbag-snapshot.tar.gz
|
|
||||||
|
|
||||||
BuildRequires: git gcc gcc-c++
|
|
||||||
BuildRequires: meson pkgconfig
|
|
||||||
BuildRequires: libevdev-devel
|
|
||||||
BuildRequires: libudev-devel
|
|
||||||
BuildRequires: pkgconfig(udev) pkgconfig(glib-2.0) pkgconfig(json-glib-1.0)
|
|
||||||
BuildRequires: check-devel
|
|
||||||
%ifarch %{valgrind_arches}
|
|
||||||
BuildRequires: valgrind
|
|
||||||
%endif
|
|
||||||
BuildRequires: systemd
|
|
||||||
BuildRequires: python3 python3-devel python3-gobject
|
|
||||||
BuildRequires: python3-lxml python3-evdev swig
|
|
||||||
BuildRequires: libunistring-devel
|
|
||||||
|
|
||||||
%description
|
|
||||||
libratbag is a library that allows to configure programmable
|
|
||||||
mice.
|
|
||||||
|
|
||||||
%package ratbagd
|
|
||||||
Summary: DBus daemon to access programmable input devices
|
|
||||||
Obsoletes: libratbag < 0.9.900
|
|
||||||
Requires: python3-evdev python3-gobject
|
|
||||||
|
|
||||||
%description ratbagd
|
|
||||||
The ratbagd package contains a dbus daemon to access and configure
|
|
||||||
programmable input devices, primarily gaming mice.
|
|
||||||
|
|
||||||
%package -n liblur
|
|
||||||
Summary: Logitech Unifying Receiver library
|
|
||||||
|
|
||||||
%description -n liblur
|
|
||||||
The liblur package contains libraries and tools to access and
|
|
||||||
configure the Logitech Unifying Receivers. The functionality
|
|
||||||
are mainly listing, pairing and un-pairing Logitech devices
|
|
||||||
attached to a receiver.
|
|
||||||
|
|
||||||
%package -n liblur-devel
|
|
||||||
Summary: Development files for liblur
|
|
||||||
Requires: liblur%{?_isa} = %{version}-%{release}
|
|
||||||
|
|
||||||
%description -n liblur-devel
|
|
||||||
The liblur-devel package contains libraries and header files for
|
|
||||||
developing applications that use liblur.
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%autosetup -n libratbag-snapshot
|
|
||||||
|
|
||||||
# hack until rhbz#1409661 gets fixed
|
|
||||||
%{!?__global_cxxflags: %define __global_cxxflags %{optflags}}
|
|
||||||
|
|
||||||
%build
|
|
||||||
# s390x builds sometimes fails during the tests, let just disable those
|
|
||||||
%ifarch s390x
|
|
||||||
%meson -Dudev-dir=%{udevdir} -Ddocumentation=false -Dtests=false
|
|
||||||
%else
|
|
||||||
%meson -Dudev-dir=%{udevdir} -Ddocumentation=false
|
|
||||||
%endif
|
|
||||||
%meson_build
|
|
||||||
|
|
||||||
%check
|
|
||||||
%meson_test
|
|
||||||
|
|
||||||
%install
|
|
||||||
%meson_install
|
|
||||||
|
|
||||||
|
|
||||||
%ldconfig_scriptlets -n liblur
|
|
||||||
|
|
||||||
%files ratbagd
|
|
||||||
%license COPYING
|
|
||||||
%{_bindir}/ratbagctl
|
|
||||||
%{_bindir}/ratbagd
|
|
||||||
%dir %{_datadir}/libratbag
|
|
||||||
%{_datadir}/libratbag/*.device
|
|
||||||
%{_mandir}/man1/ratbagctl.1*
|
|
||||||
%{_mandir}/man8/ratbagd.8*
|
|
||||||
%{_datadir}/dbus-1/system.d/org.freedesktop.ratbag1.conf
|
|
||||||
%{_datadir}/dbus-1/system-services/org.freedesktop.ratbag1.service
|
|
||||||
%{_unitdir}/ratbagd.service
|
|
||||||
|
|
||||||
%files -n liblur
|
|
||||||
%license COPYING
|
|
||||||
%{_libdir}/liblur.so.*
|
|
||||||
%{_bindir}/lur-command
|
|
||||||
%{_mandir}/man1/lur-command.1*
|
|
||||||
|
|
||||||
%files -n liblur-devel
|
|
||||||
%{_includedir}/liblur.h
|
|
||||||
%{_libdir}/liblur.so
|
|
||||||
%{_libdir}/pkgconfig/liblur.pc
|
|
||||||
|
|
||||||
%changelog
|
|
||||||
%changelog
|
|
||||||
* Thu Nov 05 2026 Drath <you@example.com> - 0.18^20261105git<shortcommit>-1
|
|
||||||
- Git snapshot with G502 X Plus device file
|
|
||||||
|
|
||||||
* Thu Jul 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 0.18-6
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 0.18-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.18-4
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Mar 06 2025 David Abdurachmanov <davidlt@rivosinc.com> 0.18-3
|
|
||||||
- Properly check valgrind arches
|
|
||||||
|
|
||||||
* Mon Jan 20 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.18-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jan 03 2025 Peter Hutterer <peter.hutterer@redhat.com> - 0.18-1
|
|
||||||
- libratbag 0.18
|
|
||||||
- Revert upstream change to /sbin
|
|
||||||
|
|
||||||
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.17-7
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jun 26 2024 Marcin Juszkiewicz <marcin@juszkiewicz.com.pl> - 0.17-6
|
|
||||||
- Backport remove of imp Python module to fix FTFBS on F40.
|
|
||||||
|
|
||||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.17-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.17-4
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Sep 08 2023 Peter Hutterer <peter.hutterer@redhat.com>
|
|
||||||
- SPDX migration: license is MIT, we're good
|
|
||||||
|
|
||||||
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.17-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.17-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Nov 30 2022 Peter Hutterer <peter.hutterer@redhat.com> - 0.17-1
|
|
||||||
- libratbag 0.17
|
|
||||||
|
|
||||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.16-4
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.16-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.16-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jun 25 2021 Peter Hutterer <peter.hutterer@redhat.com> 0.16-1
|
|
||||||
- libratbag 0.16
|
|
||||||
|
|
||||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.15-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Sep 28 2020 Peter Hutterer <peter.hutterer@redhat.com> 0.15-1
|
|
||||||
- libratbag 0.15
|
|
||||||
|
|
||||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.14-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu May 21 2020 Peter Hutterer <peter.hutterer@redhat.com> 0.14-1
|
|
||||||
- libratbag 0.14
|
|
||||||
|
|
||||||
* Tue Feb 11 2020 Peter Hutterer <peter.hutterer@redhat.com> 0.13-1
|
|
||||||
- libratbag 0.13
|
|
||||||
|
|
||||||
* Wed Jan 29 2020 Peter Hutterer <peter.hutterer@redhat.com> 0.12-1
|
|
||||||
- libratbag 0.12
|
|
||||||
|
|
||||||
* Tue Nov 05 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.11-1
|
|
||||||
- libratbag 0.11
|
|
||||||
|
|
||||||
* Mon Sep 16 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.10-2
|
|
||||||
- Add missing Requires for ratbagctl
|
|
||||||
|
|
||||||
* Fri Aug 02 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.10-1
|
|
||||||
- libratbag 0.10
|
|
||||||
|
|
||||||
* Fri Jul 26 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.9.906-1
|
|
||||||
- libratbag 0.9.906
|
|
||||||
|
|
||||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.905-4
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 17 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.9.905-3
|
|
||||||
- Use python3-embed as dependency where available. Fixes FTBFS with python
|
|
||||||
3.8 (#1718290)
|
|
||||||
|
|
||||||
* Thu Feb 28 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.9.905-2
|
|
||||||
- Fix meson options
|
|
||||||
|
|
||||||
* Thu Feb 28 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.9.905-1
|
|
||||||
- libratbag 0.9.905
|
|
||||||
|
|
||||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.904-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jan 24 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.9.904-1
|
|
||||||
- libratbag 0.9.904
|
|
||||||
|
|
||||||
* Wed Sep 05 2018 Peter Hutterer <peter.hutterer@redhat.com> 0.9.903-1
|
|
||||||
- libratbag 0.9.903
|
|
||||||
|
|
||||||
* Fri Jul 20 2018 Peter Hutterer <peter.hutterer@redhat.com> 0.9.902-4
|
|
||||||
- Add gcc to BuildRequires (#1604654)
|
|
||||||
- Change to use the correct -Ddocumentation=false
|
|
||||||
|
|
||||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.902-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 0.9.902-2
|
|
||||||
- Rebuilt for Python 3.7
|
|
||||||
|
|
||||||
* Mon May 21 2018 Peter Hutterer <peter.hutterer@redhat.com> 0.9.902-1
|
|
||||||
- libratbag 0.9.902
|
|
||||||
|
|
||||||
* Fri Mar 23 2018 Peter Hutterer <peter.hutterer@redhat.com> 0.9.901-1
|
|
||||||
- libratbag 0.9.901
|
|
||||||
|
|
||||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.9-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.9-4
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.9-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jun 07 2017 Benjamin Tissoires <benjamin.tissoires@redhat.com> 0.9-2
|
|
||||||
- disable tests on s390x because they seem to fail without good reasons
|
|
||||||
|
|
||||||
* Tue Jun 06 2017 Benjamin Tissoires <benjamin.tissoires@redhat.com> 0.9-1
|
|
||||||
- libratbag v0.9
|
|
||||||
- new manpage for lur-command
|
|
||||||
|
|
||||||
* Tue May 09 2017 Benjamin Tissoires <benjamin.tissoires@redhat.com> 0.8-1
|
|
||||||
- libratbag v0.8
|
|
||||||
|
|
||||||
* Tue May 09 2017 Benjamin Tissoires <benjamin.tissoires@redhat.com> 0.7-3
|
|
||||||
- add a hack for F24 and F25 to compile
|
|
||||||
|
|
||||||
* Fri May 05 2017 Benjamin Tissoires <benjamin.tissoires@redhat.com> 0.7-2
|
|
||||||
- Remove the generation of the documentation, we don't ship it
|
|
||||||
|
|
||||||
* Thu May 04 2017 Benjamin Tissoires <benjamin.tissoires@redhat.com> 0.7-1
|
|
||||||
- Initial Fedora packaging (rhbz#1309703)
|
|
||||||
3
.flake8
Normal file
3
.flake8
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[flake8]
|
||||||
|
ignore = E402,E501
|
||||||
|
exclude = .git,__pycache__,build,data,piper/piper.py
|
||||||
39
.github/actions/meson/action.yml
vendored
39
.github/actions/meson/action.yml
vendored
@@ -1,39 +0,0 @@
|
|||||||
# A Github Action to build a repository with meson
|
|
||||||
name: "Setup and run meson"
|
|
||||||
description: "Setup and run meson"
|
|
||||||
inputs:
|
|
||||||
builddir:
|
|
||||||
description: "The build directory"
|
|
||||||
default: "builddir"
|
|
||||||
srcdir:
|
|
||||||
description: "The source directory"
|
|
||||||
default: "."
|
|
||||||
meson_args:
|
|
||||||
description: "Arguments passed to meson setup"
|
|
||||||
default: ""
|
|
||||||
meson_skip_test:
|
|
||||||
description: "Set to a nonempty string to skip meson test"
|
|
||||||
default: ""
|
|
||||||
meson_test_args:
|
|
||||||
description: "Arguments passed to meson test"
|
|
||||||
default: ""
|
|
||||||
meson_precmd:
|
|
||||||
description: "Set to 'sudo' to run with sudo"
|
|
||||||
default: ""
|
|
||||||
ninja_args:
|
|
||||||
description: "Arguments passed to ninja"
|
|
||||||
default: ""
|
|
||||||
ninja_precmd:
|
|
||||||
description: "Set to 'sudo' to run with sudo"
|
|
||||||
default: ""
|
|
||||||
runs:
|
|
||||||
using: "composite"
|
|
||||||
steps:
|
|
||||||
- run: |
|
|
||||||
${{inputs.meson_precmd}} meson setup ${{inputs.builddir}} ${{inputs.srcdir}} ${{inputs.meson_args}}
|
|
||||||
${{inputs.meson_precmd}} meson configure ${{inputs.builddir}}
|
|
||||||
${{inputs.ninja_precmd}} ninja -C ${{inputs.builddir}} ${{inputs.ninja_args}}
|
|
||||||
if [[ -z "${{inputs.meson_skip_test}}" ]]; then
|
|
||||||
${{inputs.meson_precmd}} meson test -C ${{inputs.builddir}} --print-errorlogs ${{inputs.meson_test_args}};
|
|
||||||
fi
|
|
||||||
shell: bash
|
|
||||||
17
.github/actions/pkginstall/action.yml
vendored
17
.github/actions/pkginstall/action.yml
vendored
@@ -1,17 +0,0 @@
|
|||||||
name: "Install packages"
|
|
||||||
description: "Install a set of packages from sources"
|
|
||||||
inputs:
|
|
||||||
apt:
|
|
||||||
description: "The package list to install with apt"
|
|
||||||
pip:
|
|
||||||
description: "The package list to install with pip"
|
|
||||||
pip_precmd:
|
|
||||||
description: "Set to the string 'sudo' to run through sudo"
|
|
||||||
default: ""
|
|
||||||
runs:
|
|
||||||
using: "composite"
|
|
||||||
steps:
|
|
||||||
- run: sudo ${{ github.action_path }}/install-apt.sh ${{ inputs.apt }}
|
|
||||||
shell: bash
|
|
||||||
- run: ${{inputs.pip_precmd}} ${{ github.action_path }}/install-pip.sh ${{ inputs.pip }}
|
|
||||||
shell: bash
|
|
||||||
14
.github/actions/pkginstall/install-apt.sh
vendored
14
.github/actions/pkginstall/install-apt.sh
vendored
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/bash -x
|
|
||||||
|
|
||||||
# If called without arguments, just skip the rest
|
|
||||||
if [[ -z "$@" ]]; then
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Don't care about these bits
|
|
||||||
echo 'path-exclude=/usr/share/doc/*' > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft
|
|
||||||
echo 'path-exclude=/usr/share/locale/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft
|
|
||||||
echo 'path-exclude=/usr/share/man/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
apt-get install -yq --no-install-suggests --no-install-recommends $@
|
|
||||||
9
.github/actions/pkginstall/install-pip.sh
vendored
9
.github/actions/pkginstall/install-pip.sh
vendored
@@ -1,9 +0,0 @@
|
|||||||
#!/bin/bash -x
|
|
||||||
|
|
||||||
# If called without arguments, just skip the rest
|
|
||||||
if [[ -z "$@" ]]; then
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
python -m pip install --upgrade "$@"
|
|
||||||
54
.github/workflows/main.yml
vendored
54
.github/workflows/main.yml
vendored
@@ -1,54 +0,0 @@
|
|||||||
name: linux
|
|
||||||
|
|
||||||
on: [ push, pull_request ]
|
|
||||||
|
|
||||||
env:
|
|
||||||
UBUNTU_DEP_BUILD: |
|
|
||||||
gcc g++ pkg-config systemd libevdev-dev libglib2.0-dev
|
|
||||||
libjson-glib-dev libsystemd-dev libudev-dev libunistring-dev
|
|
||||||
python3-dev python3-evdev swig python3-sphinx
|
|
||||||
UBUNTU_DEP_TEST: check python3-gi python3-lxml valgrind
|
|
||||||
PIP_PACKAGES: meson ninja libevdev pyudev pytest sphinx_rtd_theme black==25.12.0 ruff==0.15.12
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-and-dist:
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- name: default
|
|
||||||
meson_args: ''
|
|
||||||
- name: plain
|
|
||||||
meson_args: '-Dbuildtype=plain'
|
|
||||||
- name: release
|
|
||||||
meson_args: '-Dbuildtype=release'
|
|
||||||
- name: documentation
|
|
||||||
meson_args: '-Ddocumentation=true'
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: ./.github/actions/pkginstall
|
|
||||||
with:
|
|
||||||
apt: $UBUNTU_DEP_BUILD $UBUNTU_DEP_TEST
|
|
||||||
pip: $PIP_PACKAGES
|
|
||||||
- name: meson test ${{matrix.meson_args}}
|
|
||||||
uses: ./.github/actions/meson
|
|
||||||
with:
|
|
||||||
meson_args: --prefix=$PWD/_instdir ${{matrix.meson_args}}
|
|
||||||
ninja_args: install
|
|
||||||
- name: check installation of data files
|
|
||||||
run: diff -u <(cd data/devices; ls *.device) <(cd _instdir/share/libratbag; ls *.device)
|
|
||||||
- name: ninja uninstall
|
|
||||||
uses: ./.github/actions/meson
|
|
||||||
with:
|
|
||||||
meson_args: --prefix=$PWD/_instdir
|
|
||||||
ninja_args: uninstall
|
|
||||||
- name: check if any files are left after uninstall
|
|
||||||
run: (test -d _instdir && tree _instdir && exit 1) || exit 0
|
|
||||||
# Capture all the meson logs, even if we failed
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
if: ${{ always() }} # even if we fail
|
|
||||||
with:
|
|
||||||
name: 'meson test logs ${{ matrix.name }}'
|
|
||||||
path: |
|
|
||||||
builddir/meson-logs/testlog*.txt
|
|
||||||
builddir/meson-logs/meson-log.txt
|
|
||||||
31
.github/workflows/pages.yml
vendored
31
.github/workflows/pages.yml
vendored
@@ -1,31 +0,0 @@
|
|||||||
name: pages
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
|
|
||||||
env:
|
|
||||||
UBUNTU_DEP_BUILD: gcc g++ pkg-config systemd libevdev-dev libglib2.0-dev libjson-glib-dev libsystemd-dev libudev-dev libunistring-dev python3-dev python3-evdev python3-pip swig python3-sphinx python3-sphinx-rtd-theme
|
|
||||||
PIP_PACKAGES: meson ninja
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
deploy:
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- uses: ./.github/actions/pkginstall
|
|
||||||
with:
|
|
||||||
apt: $UBUNTU_DEP_BUILD
|
|
||||||
pip: $PIP_PACKAGES
|
|
||||||
- name: Build docs
|
|
||||||
uses: ./.github/actions/meson
|
|
||||||
with:
|
|
||||||
meson_args: -Ddocumentation=true -Dtests=false
|
|
||||||
meson_skip_test: yes
|
|
||||||
- name: Deploy to GitHub Pages
|
|
||||||
uses: peaceiris/actions-gh-pages@v3
|
|
||||||
with:
|
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
publish_dir: ./builddir/doc/html/
|
|
||||||
allow_empty_commit: true
|
|
||||||
@@ -46,10 +46,6 @@ And to build or re-build after code-changes, run:
|
|||||||
ninja -C builddir
|
ninja -C builddir
|
||||||
sudo ninja -C builddir install
|
sudo ninja -C builddir install
|
||||||
|
|
||||||
To remove/uninstall simply run:
|
|
||||||
|
|
||||||
sudo ninja -C builddir uninstall
|
|
||||||
|
|
||||||
Note: `builddir` is the build output directory and can be changed to any
|
Note: `builddir` is the build output directory and can be changed to any
|
||||||
other directory name. To set configure-time options, use e.g.
|
other directory name. To set configure-time options, use e.g.
|
||||||
|
|
||||||
@@ -173,3 +169,5 @@ libratbag is licensed under the MIT license.
|
|||||||
> Software is furnished to do so, subject to the following conditions: [...]
|
> Software is furnished to do so, subject to the following conditions: [...]
|
||||||
|
|
||||||
See the COPYING file for the full license information.
|
See the COPYING file for the full license information.
|
||||||
|
|
||||||
|
[](https://circleci.com/gh/libratbag/libratbag)
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG GX860 Buzzard Mouse
|
|
||||||
DeviceMatch=usb:0b05:1816
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=10
|
|
||||||
Leds=0
|
|
||||||
Dpis=2
|
|
||||||
DpiRange=100:8200@100
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
# ASUS ROG Chakram, but corded
|
|
||||||
[Device]
|
|
||||||
Name=ASUS ROG Chakram Core
|
|
||||||
DeviceMatch=usb:0b05:1958
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=5
|
|
||||||
Leds=3
|
|
||||||
Dpis=4
|
|
||||||
DpiRange=100:16000@100
|
|
||||||
Quirks=DOUBLE_DPI;STRIX_PROFILE
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Chakram X
|
|
||||||
DeviceMatch=usb:0b05:1a18;usb:0b05:1a1a
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=5
|
|
||||||
Buttons=14
|
|
||||||
Leds=3
|
|
||||||
Dpis=4
|
|
||||||
Wireless=1
|
|
||||||
DpiRange=100:36000@100
|
|
||||||
Quirks=DOUBLE_DPI;RAW_BRIGHTNESS;SEPARATE_XY_DPI;SEPARATE_LEDS;BUTTONS_SECONDARY
|
|
||||||
ButtonMapping=f0;f1;f2;0;0;e6;e8;e9;d0;d1;d2;d3
|
|
||||||
ButtonMappingSecondary=0;0;ea;eb;ec;ed
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Chakram
|
|
||||||
DeviceMatch=usb:0b05:18e3;usb:0b05:18e5
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=5
|
|
||||||
Leds=3
|
|
||||||
Dpis=4
|
|
||||||
Wireless=1
|
|
||||||
DpiRange=100:16000@100
|
|
||||||
Quirks=DOUBLE_DPI;STRIX_PROFILE
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Gladius II Origin PNK LTD
|
|
||||||
DeviceMatch=usb:0b05:18cd
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=8
|
|
||||||
Leds=3
|
|
||||||
Dpis=2
|
|
||||||
DpiRange=100:12000@100
|
|
||||||
Quirks=DOUBLE_DPI
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
# "ASUS ROG Gladius II" without "DPI target button"
|
|
||||||
[Device]
|
|
||||||
Name=ASUS ROG Gladius II Origin
|
|
||||||
DeviceMatch=usb:0b05:1877
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=8
|
|
||||||
Leds=3
|
|
||||||
Dpis=2
|
|
||||||
DpiRange=100:12000@100
|
|
||||||
Quirks=DOUBLE_DPI
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Gladius II
|
|
||||||
DeviceMatch=usb:0b05:1845
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=9
|
|
||||||
Leds=3
|
|
||||||
Dpis=2
|
|
||||||
DpiRange=100:12000@100
|
|
||||||
ButtonMapping=f0;f1;f2;e4;e5;e6;e7;e8;e9
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Harpe Wireless
|
|
||||||
DeviceMatch=usb:0b05:1a92
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=5
|
|
||||||
Buttons=5
|
|
||||||
Leds=1
|
|
||||||
Dpis=4
|
|
||||||
Wireless=1
|
|
||||||
DpiRange=100:36000@50
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Keris Wireless AimPoint
|
|
||||||
DeviceMatch=usb:0b05:1a66;usb:0b05:1a68
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=5
|
|
||||||
Buttons=7
|
|
||||||
Leds=1
|
|
||||||
Dpis=4
|
|
||||||
Wireless=1
|
|
||||||
DpiRange=100:36000@50
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Keris Wireless
|
|
||||||
DeviceMatch=usb:0b05:195e;usb:0b05:1960
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=8
|
|
||||||
Leds=2
|
|
||||||
Dpis=4
|
|
||||||
Wireless=1
|
|
||||||
DpiRange=100:16000@100
|
|
||||||
Quirks=DOUBLE_DPI
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Keris
|
|
||||||
DeviceMatch=usb:0b05:195c
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=8
|
|
||||||
Leds=2
|
|
||||||
Dpis=4
|
|
||||||
DpiRange=100:16000@100
|
|
||||||
Quirks=DOUBLE_DPI
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Omni Receiver
|
|
||||||
DeviceMatch=usb:0b05:1ace
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
# The Omni receiver is a shared USB device for multiple mice (all of them
|
|
||||||
# enumerate with the same usb id), so the actual model is identified during
|
|
||||||
# probe and resolved to the model-specific .device data. This file only
|
|
||||||
# exists to get the asus driver probed on the receiver's hidraw nodes.
|
|
||||||
[Driver/asus]
|
|
||||||
Quirks=OMNI_RECEIVER
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Pugio
|
|
||||||
DeviceMatch=usb:0b05:1846
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=10
|
|
||||||
Leds=3
|
|
||||||
Dpis=2
|
|
||||||
DpiRange=100:7200@100
|
|
||||||
ButtonMapping=f0;f1;f2;e4;e5;e6;0;e8;e9;e1;e2
|
|
||||||
LedModes=ON;BREATHING;ON;CYCLE
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Spatha X
|
|
||||||
DeviceMatch=usb:0b05:1979;usb:0b05:1977
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=5
|
|
||||||
Buttons=14
|
|
||||||
Leds=3
|
|
||||||
Dpis=4
|
|
||||||
Wireless=1
|
|
||||||
DpiRange=100:19000@50
|
|
||||||
ButtonMapping=f0;f1;f2;e4;e5;e6;e8;e9;ea;eb;ec;ed;ee;ef
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Strix Carry
|
|
||||||
DeviceMatch=usb:0b05:18b4
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=8
|
|
||||||
Leds=0
|
|
||||||
Dpis=2
|
|
||||||
Wireless=1
|
|
||||||
DpiRange=100:7200@100
|
|
||||||
Quirks=STRIX_PROFILE
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Strix Impact
|
|
||||||
DeviceMatch=usb:0b05:1847
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=1
|
|
||||||
Buttons=6
|
|
||||||
Leds=1
|
|
||||||
Dpis=2
|
|
||||||
DpiRange=100:5000@100
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Strix Impact II Wireless
|
|
||||||
DeviceMatch=usb:0b05:1947;usb:0b05:1949
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=8
|
|
||||||
Leds=3
|
|
||||||
Dpis=4
|
|
||||||
Wireless=1
|
|
||||||
DpiRange=100:16000@100
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Strix Impact II
|
|
||||||
DeviceMatch=usb:0b05:18e1
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=8
|
|
||||||
Leds=3
|
|
||||||
Dpis=4
|
|
||||||
DpiRange=200:6200@100
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Strix Impact III Wireless
|
|
||||||
DeviceMatch=usb:0b05:1ad7
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
# This device enumerates as usb 0b05:1ad7 behind the ASUS Omni receiver
|
|
||||||
# (0b05:1ace). The usb id is resolved during probe: the receiver is
|
|
||||||
# identified first (asus-rog-omni-receiver.device) and the serial number
|
|
||||||
# signature prefix (OmniSignature) is matched against this file.
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=5
|
|
||||||
Buttons=8
|
|
||||||
Leds=1
|
|
||||||
Dpis=4
|
|
||||||
Wireless=1
|
|
||||||
DpiRange=100:36000@50
|
|
||||||
Quirks=OMNI_RECEIVER;SEPARATE_XY_DPI;LED_V2;SETTINGS_V2
|
|
||||||
OmniSignature=20
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS ROG Strix Impact III
|
|
||||||
DeviceMatch=usb:0b05:1a88
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=8
|
|
||||||
Leds=2
|
|
||||||
Dpis=4
|
|
||||||
DpiRange=100:12000@50
|
|
||||||
Quirks=LED_V2;SETTINGS_V2
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUSTeK TUF GAMING M3 GEN II
|
|
||||||
DeviceMatch=usb:0b05:1a9b
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=8
|
|
||||||
Leds=1
|
|
||||||
Dpis=4
|
|
||||||
DpiRange=100:8000@100
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS TUF GAMING M4 AIR
|
|
||||||
DeviceMatch=usb:0b05:1a03
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=3
|
|
||||||
Buttons=6
|
|
||||||
Leds=0
|
|
||||||
Dpis=4
|
|
||||||
DpiRange=100:16000@100
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=ASUS TUF GAMING MINI WL MOUSE MIKU
|
|
||||||
DeviceMatch=usb:0b05:1c56;usb:0b05:1c57
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=asus
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
Profiles=5
|
|
||||||
Buttons=8
|
|
||||||
Leds=1
|
|
||||||
Dpis=4
|
|
||||||
Wireless=1
|
|
||||||
DpiRange=100:12000@100
|
|
||||||
Quirks=SEPARATE_XY_DPI;RAW_BRIGHTNESS
|
|
||||||
227
data/devices/data-parse-test.py
Executable file
227
data/devices/data-parse-test.py
Executable file
@@ -0,0 +1,227 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
#
|
||||||
|
# Copyright © 2017 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
# copy of this software and associated documentation files (the "Software"),
|
||||||
|
# to deal in the Software without restriction, including without limitation
|
||||||
|
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
# and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
# Software is furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice (including the next
|
||||||
|
# paragraph) shall be included in all copies or substantial portions of the
|
||||||
|
# Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
# DEALINGS IN THE SOFTWARE.
|
||||||
|
#
|
||||||
|
# Device data verification script
|
||||||
|
#
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import configparser
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
def assertIn(element, l):
|
||||||
|
if element not in l:
|
||||||
|
raise AssertionError('{} must be in {}'.format(element, l))
|
||||||
|
|
||||||
|
|
||||||
|
def assertNotIn(element, l):
|
||||||
|
if element in l:
|
||||||
|
raise AssertionError('{} must not be in {}'.format(element, l))
|
||||||
|
|
||||||
|
|
||||||
|
def check_match_str(string):
|
||||||
|
bustypes = ['usb', 'bluetooth']
|
||||||
|
|
||||||
|
matches = string.split(';')
|
||||||
|
for match in matches:
|
||||||
|
if not match: # empty string if trailing ;
|
||||||
|
continue
|
||||||
|
|
||||||
|
parts = match.split(':')
|
||||||
|
assert(len(parts) == 3)
|
||||||
|
assertIn(parts[0], bustypes)
|
||||||
|
vid = parts[1]
|
||||||
|
assert(vid == '{:04x}'.format(int(vid, 16)))
|
||||||
|
pid = parts[2]
|
||||||
|
assert(pid == '{:04x}'.format(int(pid, 16)))
|
||||||
|
|
||||||
|
|
||||||
|
def check_ledtypes_str(string):
|
||||||
|
permitted_types = ['logo', 'side', 'battery', 'dpi', 'switches']
|
||||||
|
|
||||||
|
types = string.split(';')
|
||||||
|
for t in types:
|
||||||
|
if not t: # emtpy string if trailing ;
|
||||||
|
continue
|
||||||
|
|
||||||
|
assertIn(t, permitted_types)
|
||||||
|
|
||||||
|
|
||||||
|
def check_section_device(section):
|
||||||
|
required_keys = ['Name', 'Driver', 'DeviceMatch']
|
||||||
|
permitted_keys = required_keys + ['LedTypes']
|
||||||
|
|
||||||
|
for key in section.keys():
|
||||||
|
assertIn(key, permitted_keys)
|
||||||
|
|
||||||
|
for r in required_keys:
|
||||||
|
assertIn(r, section)
|
||||||
|
|
||||||
|
try:
|
||||||
|
check_ledtypes_str(section['LedTypes'])
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
check_match_str(section['DeviceMatch'])
|
||||||
|
|
||||||
|
|
||||||
|
def check_dpi_range_str(string):
|
||||||
|
import re
|
||||||
|
|
||||||
|
m = re.search('^([0-9]+):([0-9]+)@([0-9.]+)$', string)
|
||||||
|
assert(m is not None)
|
||||||
|
min = int(m.group(1))
|
||||||
|
max = int(m.group(2))
|
||||||
|
steps = float(m.group(3))
|
||||||
|
|
||||||
|
assert(min >= 0 and min <= 400)
|
||||||
|
assert(max >= 2000 and max <= 12000)
|
||||||
|
assert(steps > 0 and steps <= 100)
|
||||||
|
|
||||||
|
if int(steps) == steps:
|
||||||
|
steps = int(steps)
|
||||||
|
|
||||||
|
assert(string == '{}:{}@{}'.format(min, max, steps))
|
||||||
|
|
||||||
|
|
||||||
|
def check_dpi_list_str(string):
|
||||||
|
entries = string.split(';')
|
||||||
|
# Remove possible empty last entry if trailing with a ;
|
||||||
|
if not entries[len(entries) - 1]:
|
||||||
|
entries = entries[:-1]
|
||||||
|
|
||||||
|
for idx, entry in enumerate(entries):
|
||||||
|
dpi = int(entry)
|
||||||
|
assert(dpi >= 0 and dpi <= 12000)
|
||||||
|
if idx > 0:
|
||||||
|
prev = entries[idx - 1]
|
||||||
|
prev_dpi = int(prev)
|
||||||
|
assert(dpi > prev_dpi)
|
||||||
|
|
||||||
|
|
||||||
|
def check_profile_type_str(string):
|
||||||
|
types = ['G9', 'G500', 'G700']
|
||||||
|
assertIn(string, types)
|
||||||
|
|
||||||
|
|
||||||
|
def check_section_hidpp10(section):
|
||||||
|
permitted = ['Profiles', 'ProfileType', 'DpiRange', 'DpiList', 'DeviceIndex', 'Leds']
|
||||||
|
for key in section.keys():
|
||||||
|
assertIn(key, permitted)
|
||||||
|
|
||||||
|
try:
|
||||||
|
nprofiles = int(section['Profiles'])
|
||||||
|
# 10 is arbitrarily chosen
|
||||||
|
assert(nprofiles > 0 and nprofiles < 10)
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
|
index = int(section['DeviceIndex'], 16)
|
||||||
|
assert(index > 0 and index <= 0xff)
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
|
check_dpi_range_str(section['DpiRange'])
|
||||||
|
assertNotIn('DpiList', section.keys())
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
|
check_dpi_list_str(section['DpiList'])
|
||||||
|
assertNotIn('DpiRange', section.keys())
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
|
check_profile_type_str(section['ProfileType'])
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
|
leds = int(section['Leds'])
|
||||||
|
# 10 is arbitrarily chosen
|
||||||
|
assert(leds > 0 and leds < 10)
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def check_section_hidpp20(section):
|
||||||
|
permitted = ['DeviceIndex', 'Leds', 'Quirk']
|
||||||
|
for key in section.keys():
|
||||||
|
assertIn(key, permitted)
|
||||||
|
|
||||||
|
try:
|
||||||
|
index = int(section['DeviceIndex'], 16)
|
||||||
|
assert(index > 0 and index <= 0xff)
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def check_section_driver(driver, section):
|
||||||
|
if driver == 'hidpp10':
|
||||||
|
check_section_hidpp10(section)
|
||||||
|
elif driver == 'hidpp20':
|
||||||
|
check_section_hidpp20(section)
|
||||||
|
else:
|
||||||
|
assert('Unsupported driver section {}'.format(driver))
|
||||||
|
|
||||||
|
|
||||||
|
def validate_data_file_name(path):
|
||||||
|
# Matching any of the characters in the regular expression will throw an
|
||||||
|
# error. Currently only tests the square brackets [], parentheses, and curly
|
||||||
|
# braces.
|
||||||
|
illegal_characters_regex = '([\[\]\{\}\(\)])'
|
||||||
|
found_characters = re.findall(illegal_characters_regex, path)
|
||||||
|
if found_characters:
|
||||||
|
raise AssertionError("data file name '{}' contains illegal characters: '{}'".format(path, ''.join(found_characters)))
|
||||||
|
|
||||||
|
def parse_data_file(path):
|
||||||
|
print('Parsing file {}'.format(path))
|
||||||
|
data = configparser.ConfigParser(strict=True)
|
||||||
|
# Don't convert to lowercase
|
||||||
|
data.optionxform = lambda option: option
|
||||||
|
data.read(path)
|
||||||
|
|
||||||
|
assertIn('Device', data.sections())
|
||||||
|
check_section_device(data['Device'])
|
||||||
|
|
||||||
|
driver = data['Device']['Driver']
|
||||||
|
driver_section = 'Driver/{}'.format(driver)
|
||||||
|
|
||||||
|
permitted_sections = ['Device', driver_section]
|
||||||
|
for s in data.sections():
|
||||||
|
assertIn(s, permitted_sections)
|
||||||
|
|
||||||
|
if data.has_section(driver_section):
|
||||||
|
check_section_driver(driver, data[driver_section])
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
parser = argparse.ArgumentParser(description="Device data-file checker")
|
||||||
|
parser.add_argument('file', nargs='+')
|
||||||
|
args = parser.parse_args()
|
||||||
|
for path in args.file:
|
||||||
|
validate_data_file_name(path)
|
||||||
|
parse_data_file(path)
|
||||||
@@ -15,8 +15,10 @@ DeviceMatch=usb:12ab:00f2
|
|||||||
# The libratbag driver backend
|
# The libratbag driver backend
|
||||||
Driver=hidpp10
|
Driver=hidpp10
|
||||||
|
|
||||||
# The type of this Device: either 'mouse', 'keyboard' or 'other'
|
# The types of the LEDs, in the indexed order they appear in, separated by a
|
||||||
DeviceType=mouse
|
# semicolon.
|
||||||
|
# Allowed values: logo, side, battery, dpi
|
||||||
|
LedTypes=logo;side
|
||||||
|
|
||||||
# Only one group of driver-specific properties is permitted and it must be
|
# Only one group of driver-specific properties is permitted and it must be
|
||||||
# [Driver/<drivername>]. It is a bug do have any other [Driver/foo] group in
|
# [Driver/<drivername>]. It is a bug do have any other [Driver/foo] group in
|
||||||
@@ -50,60 +52,3 @@ Leds=1
|
|||||||
# The HID++ 2.0 device index
|
# The HID++ 2.0 device index
|
||||||
# Should be unset unless required
|
# Should be unset unless required
|
||||||
# DeviceIndex=1
|
# DeviceIndex=1
|
||||||
|
|
||||||
|
|
||||||
[Driver/asus]
|
|
||||||
# Number of profiles
|
|
||||||
Profiles=3
|
|
||||||
|
|
||||||
# Number of buttons
|
|
||||||
Buttons=8
|
|
||||||
|
|
||||||
# Number of LEDs
|
|
||||||
Leds=3
|
|
||||||
|
|
||||||
# Number of DPI presets
|
|
||||||
Dpis=2
|
|
||||||
|
|
||||||
# Set if device is wireless
|
|
||||||
# Wireless=1
|
|
||||||
|
|
||||||
# DPI range in format min:max@step
|
|
||||||
DpiRange=100:16000@100
|
|
||||||
|
|
||||||
# Button mapping
|
|
||||||
# ButtonMapping=f0;f1;f2;e4;e5;e6;e8;e9
|
|
||||||
|
|
||||||
# Device quirks
|
|
||||||
# Quirk=DOUBLE_DPI;STRIX_PROFILE
|
|
||||||
|
|
||||||
# Replace `FEED` in the group name with firmware version of the device.
|
|
||||||
# To find the right value, see the output of ratbagd and search a message like:
|
|
||||||
# "ratbag error: Device with firmware version FEED is not supported"
|
|
||||||
# Official software utility configuration file key: `PSD` (converted from
|
|
||||||
# ASCII codes).
|
|
||||||
[Driver/sinowealth/devices/FEED]
|
|
||||||
# Number of buttons.
|
|
||||||
# Official software utility configuration file key: `KM` (divided by 2).
|
|
||||||
# Default: 0.
|
|
||||||
Buttons=6
|
|
||||||
|
|
||||||
# Device name.
|
|
||||||
DeviceName=CoolVendor CoolMouse
|
|
||||||
|
|
||||||
# The order of LED pins on the mouse.
|
|
||||||
# Change this to `RBG` if LED colors are weird.
|
|
||||||
# Use `None` if there are no LEDs on the mouse.
|
|
||||||
# Permitted values: ("RGB", "RBG", "None").
|
|
||||||
LedType=RGB
|
|
||||||
|
|
||||||
# Number of profiles, called "modes" in official software utilities.
|
|
||||||
# If you are unsure what the "mode" thing is about, don't set this field.
|
|
||||||
# Official software utility configuration file key: `MDNUM` (divided by 3).
|
|
||||||
# Default: 1.
|
|
||||||
Profiles=1
|
|
||||||
|
|
||||||
# Sensor type.
|
|
||||||
# This field is unused, only used for book-keeping purposes.
|
|
||||||
# Official software utility configuration file key: `Sensor`.
|
|
||||||
SensorType=PMW3289
|
|
||||||
|
|||||||
10
data/devices/dream-machines-dm5-blink.device
Normal file
10
data/devices/dream-machines-dm5-blink.device
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[Device]
|
||||||
|
Name=Dream Machines DM5 Blink
|
||||||
|
DeviceMatch=usb:258a:0027
|
||||||
|
Driver=sinowealth
|
||||||
|
|
||||||
|
[Driver/sinowealth]
|
||||||
|
Buttons=8
|
||||||
|
Leds=1
|
||||||
|
LedType=RGB
|
||||||
|
DpiRange=100:16000@100
|
||||||
@@ -24,7 +24,6 @@
|
|||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
import pathlib
|
|
||||||
import sys
|
import sys
|
||||||
import configparser
|
import configparser
|
||||||
|
|
||||||
@@ -35,22 +34,22 @@ def parse_data_file(path):
|
|||||||
data.optionxform = lambda option: option
|
data.optionxform = lambda option: option
|
||||||
data.read(path)
|
data.read(path)
|
||||||
|
|
||||||
matches = data["Device"]["DeviceMatch"]
|
matches = data['Device']['DeviceMatch']
|
||||||
return matches.split(";")
|
return matches.split(';')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
parser = argparse.ArgumentParser(description="Device duplicate match checker")
|
parser = argparse.ArgumentParser(description='Device duplicate match checker')
|
||||||
parser.add_argument("directory")
|
parser.add_argument('file', nargs='+')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
device_matches = {}
|
device_matches = {}
|
||||||
duplicates = False
|
duplicates = False
|
||||||
for path in pathlib.Path(args.directory).glob("*.device"):
|
for path in args.file:
|
||||||
matches = parse_data_file(path)
|
matches = parse_data_file(path)
|
||||||
fname = os.path.basename(path)
|
fname = os.path.basename(path)
|
||||||
for m in matches:
|
for m in matches:
|
||||||
if m in device_matches:
|
if m in device_matches:
|
||||||
print(f"Duplicate DeviceMatch={m} in {fname} and {device_matches[m]}")
|
print('Duplicate DeviceMatch={} in {} and {}'.format(m, fname, device_matches[m]))
|
||||||
duplicates = True
|
duplicates = True
|
||||||
device_matches[m] = fname
|
device_matches[m] = fname
|
||||||
|
|
||||||
@@ -2,4 +2,3 @@
|
|||||||
Name=Etekcity Scroll Alpha
|
Name=Etekcity Scroll Alpha
|
||||||
DeviceMatch=usb:1ea7:4011
|
DeviceMatch=usb:1ea7:4011
|
||||||
Driver=etekcity
|
Driver=etekcity
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
[Device]
|
[Device]
|
||||||
Name=Glorious Model D
|
Name=Glorious Model D
|
||||||
DeviceMatch=usb:258a:0033
|
DeviceMatch=usb:258a:0033
|
||||||
DeviceType=mouse
|
|
||||||
Driver=sinowealth
|
Driver=sinowealth
|
||||||
|
|
||||||
[Driver/sinowealth/devices/V102]
|
[Driver/sinowealth]
|
||||||
Buttons=6
|
Buttons=6
|
||||||
DeviceName=Glorious Model D
|
Leds=2
|
||||||
LedType=RBG
|
DpiRange=100:12000@100
|
||||||
SensorType=PMW3360
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=Glorious Model O Eternal
|
|
||||||
DeviceMatch=usb:3794:a000
|
|
||||||
Driver=sinowealth
|
|
||||||
DeviceType=mouse
|
|
||||||
|
|
||||||
[Driver/sinowealth/devices/1009]
|
|
||||||
Buttons=6
|
|
||||||
LedType=RBG
|
|
||||||
DeviceName=Glorious Model O Eternal
|
|
||||||
SensorType=PMW3360
|
|
||||||
@@ -1,11 +1,10 @@
|
|||||||
[Device]
|
[Device]
|
||||||
Name=Glorious Model O/O-
|
Name=Glorious Model O
|
||||||
DeviceMatch=usb:258a:0036
|
DeviceMatch=usb:258a:0036
|
||||||
DeviceType=mouse
|
|
||||||
Driver=sinowealth
|
Driver=sinowealth
|
||||||
|
|
||||||
[Driver/sinowealth/devices/V103]
|
[Driver/sinowealth]
|
||||||
Buttons=6
|
Buttons=6
|
||||||
DeviceName=Glorious Model O/O- (updated firmware)
|
Leds=2
|
||||||
LedType=RBG
|
LedType=RBG
|
||||||
SensorType=PMW3360
|
DpiRange=100:12000@100
|
||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=G.Skill MX-780
|
Name=G.Skill MX-780
|
||||||
DeviceMatch=usb:28da:3101
|
DeviceMatch=usb:28da:3101
|
||||||
Driver=gskill
|
Driver=gskill
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=Logitech M325
|
Name=Logitech M325
|
||||||
DeviceMatch=usb:046d:400a
|
DeviceMatch=usb:046d:400a
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
# Logitech M500s
|
|
||||||
[Device]
|
|
||||||
Name=Logitech M500s
|
|
||||||
DeviceMatch=usb:046d:c093
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=hidpp20
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
# Logitech M545
|
|
||||||
[Device]
|
|
||||||
Name=Logitech M545
|
|
||||||
DeviceMatch=usb:046d:4052
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=hidpp20
|
|
||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=Logitech M570
|
Name=Logitech M570
|
||||||
DeviceMatch=usb:046d:1028
|
DeviceMatch=usb:046d:1028
|
||||||
Driver=hidpp10
|
Driver=hidpp10
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=Logitech M585/M590
|
Name=Logitech M585/M590
|
||||||
DeviceMatch=usb:046d:406b;bluetooth:046d:b01b
|
DeviceMatch=usb:046d:406b;bluetooth:046d:b01b
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=Logitech M705
|
Name=Logitech M705
|
||||||
DeviceMatch=usb:046d:101b
|
DeviceMatch=usb:046d:101b
|
||||||
Driver=hidpp10
|
Driver=hidpp10
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -2,4 +2,3 @@
|
|||||||
Name=Logitech M720
|
Name=Logitech M720
|
||||||
DeviceMatch=usb:046d:405e;bluetooth:046d:b015
|
DeviceMatch=usb:046d:405e;bluetooth:046d:b015
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
# Logitech MX Anywhere 3
|
|
||||||
[Device]
|
|
||||||
Name=Logitech MX Anywhere 3
|
|
||||||
DeviceMatch=bluetooth:046d:b025;usb:046d:4090
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=hidpp20
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
# Logitech MX Anywhere 3S
|
|
||||||
[Device]
|
|
||||||
Name=Logitech MX Anywhere 3S
|
|
||||||
DeviceMatch=bluetooth:046d:b037
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=hidpp20
|
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
[Device]
|
[Device]
|
||||||
Name=Logitech MX Anywhere 2
|
Name=Logitech MX Anywhere 2
|
||||||
DeviceMatch=usb:046d:404a;usb:046d:4072;usb:046d:4063;bluetooth:046d:b013;bluetooth:046d:b018;bluetooth:046d:b01f
|
DeviceMatch=usb:046d:404a;bluetooth:046d:b013;bluetooth:046d:b018;bluetooth:046d:b01f
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -2,4 +2,3 @@
|
|||||||
Name=Logitech MX Anywhere 2S
|
Name=Logitech MX Anywhere 2S
|
||||||
DeviceMatch=bluetooth:046d:b01a;usb:046d:406a
|
DeviceMatch=bluetooth:046d:b01a;usb:046d:406a
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
# Logitech MX Anywhere 3B
|
|
||||||
[Device]
|
|
||||||
Driver=hidpp20
|
|
||||||
Name=Logitech MX Anywhere 3B
|
|
||||||
DeviceType=mouse
|
|
||||||
DeviceMatch=bluetooth:046d:b02d
|
|
||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=Logitech MX Ergo
|
Name=Logitech MX Ergo
|
||||||
DeviceMatch=bluetooth:046d:b01d;usb:046d:406f
|
DeviceMatch=bluetooth:046d:b01d;usb:046d:406f
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=Logitech MX Master 2S
|
Name=Logitech MX Master 2S
|
||||||
DeviceMatch=bluetooth:046d:b019;usb:046d:4069
|
DeviceMatch=bluetooth:046d:b019;usb:046d:4069
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=Logitech MX Master 3
|
Name=Logitech MX Master 3
|
||||||
DeviceMatch=bluetooth:046d:b023;usb:046d:4082
|
DeviceMatch=bluetooth:046d:b023;usb:046d:4082
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
[Device]
|
|
||||||
DeviceMatch=bluetooth:046d:b035
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=hidpp20
|
|
||||||
Name=Logitech MX Master 3S for Business
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
[Device]
|
|
||||||
DeviceMatch=bluetooth:046d:b034
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=hidpp20
|
|
||||||
Name=Logitech MX Master 3S
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
[Device]
|
|
||||||
DeviceMatch=bluetooth:046d:b042
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=hidpp20
|
|
||||||
Name=Logitech MX Master 4
|
|
||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=Logitech MX Master
|
Name=Logitech MX Master
|
||||||
DeviceMatch=usb:046d:4041;bluetooth:046d:b012;usb:046d:4060;bluetooth:046d:b017;bluetooth:046d:b01e;usb:046d:4071
|
DeviceMatch=usb:046d:4041;bluetooth:046d:b012;usb:046d:4060;bluetooth:046d:b017;bluetooth:046d:b01e;usb:046d:4071
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
[Device]
|
[Device]
|
||||||
Name=Logitech MX Vertical
|
Name=Logitech MX Vertical
|
||||||
DeviceMatch=bluetooth:046d:b020;usb:046d:407b;usb:046d:c08a;usb:046d:c077
|
DeviceMatch=bluetooth:046d:b020;usb:046d:407b
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -2,4 +2,3 @@
|
|||||||
Name=MX518
|
Name=MX518
|
||||||
DeviceMatch=usb:046d:c08e
|
DeviceMatch=usb:046d:c08e
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -2,4 +2,3 @@
|
|||||||
Name=Logitech Marathon M705
|
Name=Logitech Marathon M705
|
||||||
DeviceMatch=usb:046d:406d
|
DeviceMatch=usb:046d:406d
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=Logitech T650
|
Name=Logitech T650
|
||||||
DeviceMatch=usb:046d:4101
|
DeviceMatch=usb:046d:4101
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=Logitech Wireless Touchpad
|
Name=Logitech Wireless Touchpad
|
||||||
DeviceMatch=usb:046d:4011
|
DeviceMatch=usb:046d:4011
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
[Device]
|
[Device]
|
||||||
Name=Logitech G Powerplay
|
Name=Logitech G Powerplay
|
||||||
DeviceMatch=usb:046d:405f
|
DeviceMatch=usb:046d:405f
|
||||||
|
LedTypes=logo
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=other
|
|
||||||
|
|
||||||
[Driver/hidpp20]
|
[Driver/hidpp20]
|
||||||
DeviceIndex=7
|
DeviceIndex=7
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
[Device]
|
|
||||||
DeviceMatch=usb:046d:c339
|
|
||||||
DeviceType=keyboard
|
|
||||||
Driver=hidpp20
|
|
||||||
Name=Logitech G PRO Keyboard
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
[Device]
|
[Device]
|
||||||
Name=Logitech G Pro Wireless
|
Name=Logitech G Pro Wireless
|
||||||
DeviceMatch=usb:046d:4079;usb:046d:c088
|
DeviceMatch=usb:046d:4079;usb:046d:c088
|
||||||
|
LedTypes=logo;battery;dpi;
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|
||||||
[Driver/hidpp20]
|
[Driver/hidpp20]
|
||||||
DeviceIndex=1
|
DeviceIndex=1
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=Logitech G Pro X Wireless Superlight
|
|
||||||
DeviceMatch=usb:046d:4093;usb:046d:c094
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=hidpp20
|
|
||||||
@@ -2,4 +2,4 @@
|
|||||||
Name=Logitech Gaming Mouse G Pro
|
Name=Logitech Gaming Mouse G Pro
|
||||||
DeviceMatch=usb:046d:c085;usb:046d:c08c
|
DeviceMatch=usb:046d:c085;usb:046d:c08c
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
LedTypes=logo;side
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# G102, G103 and G203 (USB)
|
# G102, G103 and G203 (USB)
|
||||||
[Device]
|
[Device]
|
||||||
Name=Logitech Gaming Mouse G102/G103/G203
|
Name=Logitech Gaming Mouse G102/G103/G203
|
||||||
DeviceMatch=usb:046d:c084;usb:046d:c092;usb:046d:c09d
|
DeviceMatch=usb:046d:c084;usb:046d:c092
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
LedTypes=logo;side;
|
||||||
|
|||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=Logitech G300
|
Name=Logitech G300
|
||||||
DeviceMatch=usb:046d:c246
|
DeviceMatch=usb:046d:c246
|
||||||
Driver=logitech_g300
|
Driver=logitech_g300
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -3,4 +3,4 @@
|
|||||||
Name=Logitech Gaming Mouse G302
|
Name=Logitech Gaming Mouse G302
|
||||||
DeviceMatch=usb:046d:c07f
|
DeviceMatch=usb:046d:c07f
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
LedTypes=logo;side;
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=Logitech G303 Shroud Edition
|
|
||||||
DeviceMatch=usb:046d:c097
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=hidpp20
|
|
||||||
@@ -3,4 +3,4 @@
|
|||||||
Name=Logitech Gaming Mouse G303
|
Name=Logitech Gaming Mouse G303
|
||||||
DeviceMatch=usb:046d:c080
|
DeviceMatch=usb:046d:c080
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
LedTypes=logo;side;
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
Name=Logitech Gaming Mouse G305
|
Name=Logitech Gaming Mouse G305
|
||||||
DeviceMatch=usb:046d:4074
|
DeviceMatch=usb:046d:4074
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|
||||||
[Driver/hidpp20]
|
[Driver/hidpp20]
|
||||||
Leds=0
|
Leds=0
|
||||||
|
|||||||
@@ -2,5 +2,5 @@
|
|||||||
[Device]
|
[Device]
|
||||||
Name=Logitech G402 Gaming Mouse
|
Name=Logitech G402 Gaming Mouse
|
||||||
DeviceMatch=usb:046d:c07e
|
DeviceMatch=usb:046d:c07e
|
||||||
|
LedTypes=logo
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -2,4 +2,3 @@
|
|||||||
Name=Logitech G403 Hero
|
Name=Logitech G403 Hero
|
||||||
DeviceMatch=usb:046d:c08f
|
DeviceMatch=usb:046d:c08f
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -2,4 +2,3 @@
|
|||||||
Name=Logitech G403 Wireless
|
Name=Logitech G403 Wireless
|
||||||
DeviceMatch=usb:046d:405d;usb:046d:c082
|
DeviceMatch=usb:046d:405d;usb:046d:c082
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -2,4 +2,3 @@
|
|||||||
Name=Logitech G403
|
Name=Logitech G403
|
||||||
DeviceMatch=usb:046d:c083
|
DeviceMatch=usb:046d:c083
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
[Device]
|
|
||||||
DeviceMatch=usb:046d:c33a
|
|
||||||
DeviceType=keyboard
|
|
||||||
Driver=hidpp20
|
|
||||||
Name=Logitech G413
|
|
||||||
@@ -3,7 +3,6 @@
|
|||||||
Name=Logitech G5
|
Name=Logitech G5
|
||||||
DeviceMatch=usb:046d:c049
|
DeviceMatch=usb:046d:c049
|
||||||
Driver=hidpp10
|
Driver=hidpp10
|
||||||
DeviceType=mouse
|
|
||||||
|
|
||||||
[Driver/hidpp10]
|
[Driver/hidpp10]
|
||||||
DpiList=400;800;1600;2000
|
DpiList=400;800;1600;2000
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
Name=G5
|
Name=G5
|
||||||
DeviceMatch=usb:046d:c041
|
DeviceMatch=usb:046d:c041
|
||||||
Driver=hidpp10
|
Driver=hidpp10
|
||||||
DeviceType=mouse
|
|
||||||
|
|
||||||
[Driver/hidpp10]
|
[Driver/hidpp10]
|
||||||
DpiList=400;800;1600;2000
|
DpiList=400;800;1600;2000
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
Name=Logitech G500
|
Name=Logitech G500
|
||||||
DeviceMatch=usb:046d:c068
|
DeviceMatch=usb:046d:c068
|
||||||
Driver=hidpp10
|
Driver=hidpp10
|
||||||
DeviceType=mouse
|
|
||||||
|
|
||||||
[Driver/hidpp10]
|
[Driver/hidpp10]
|
||||||
DpiRange=0:5700@23.53
|
DpiRange=0:5700@23.53
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
Name=Logitech G500s
|
Name=Logitech G500s
|
||||||
DeviceMatch=usb:046d:c24e
|
DeviceMatch=usb:046d:c24e
|
||||||
Driver=hidpp10
|
Driver=hidpp10
|
||||||
DeviceType=mouse
|
|
||||||
|
|
||||||
[Driver/hidpp10]
|
[Driver/hidpp10]
|
||||||
DpiRange=0:8200@50
|
DpiRange=0:8200@50
|
||||||
|
|||||||
@@ -2,7 +2,3 @@
|
|||||||
Name=Logitech G502 Hero Wireless
|
Name=Logitech G502 Hero Wireless
|
||||||
DeviceMatch=usb:046d:407f;usb:046d:c08d
|
DeviceMatch=usb:046d:407f;usb:046d:c08d
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|
||||||
[Driver/hidpp20]
|
|
||||||
Quirk=INDEX_OFFSET
|
|
||||||
|
|||||||
@@ -2,7 +2,3 @@
|
|||||||
Name=Logitech G502 Hero
|
Name=Logitech G502 Hero
|
||||||
DeviceMatch=usb:046d:c08b
|
DeviceMatch=usb:046d:c08b
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|
||||||
[Driver/hidpp20]
|
|
||||||
Quirk=INDEX_OFFSET
|
|
||||||
|
|||||||
@@ -2,4 +2,3 @@
|
|||||||
Name=Logitech G502 Proteus Core
|
Name=Logitech G502 Proteus Core
|
||||||
DeviceMatch=usb:046d:c07d
|
DeviceMatch=usb:046d:c07d
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -2,7 +2,3 @@
|
|||||||
Name=Logitech G502 Proteus Spectrum
|
Name=Logitech G502 Proteus Spectrum
|
||||||
DeviceMatch=usb:046d:c332
|
DeviceMatch=usb:046d:c332
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|
||||||
[Driver/hidpp20]
|
|
||||||
Quirk=INDEX_OFFSET
|
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=Logitech G502 X PLUS
|
|
||||||
DeviceMatch=usb:046d:4099;usb:046d:c095
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=hidpp20
|
|
||||||
|
|
||||||
[Driver/hidpp20]
|
|
||||||
# G502X_PLUS: LED is in the 2nd slot. INDEX_OFFSET: profile index is 1-indexed.
|
|
||||||
Quirk=G502X_PLUS;INDEX_OFFSET
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=Logitech G502 X Wireless
|
|
||||||
DeviceMatch=usb:046d:c098;usb:046d:409f
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=hidpp20
|
|
||||||
|
|
||||||
[Driver/hidpp20]
|
|
||||||
Quirk=INDEX_OFFSET
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=Logitech G502 X
|
|
||||||
DeviceMatch=usb:046d:c099
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=hidpp20
|
|
||||||
|
|
||||||
[Driver/hidpp20]
|
|
||||||
Quirk=INDEX_OFFSET
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
[Device]
|
[Device]
|
||||||
Name=Logitech G513
|
Name=Logitech G513
|
||||||
DeviceMatch=usb:046d:c33c
|
DeviceMatch=usb:046d:c33c
|
||||||
|
LedTypes=switches
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=keyboard
|
|
||||||
|
|||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=Logitech G600
|
Name=Logitech G600
|
||||||
DeviceMatch=usb:046d:c24a
|
DeviceMatch=usb:046d:c24a
|
||||||
Driver=logitech_g600
|
Driver=logitech_g600
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
Name=Logitech G602
|
Name=Logitech G602
|
||||||
DeviceMatch=usb:046d:402c
|
DeviceMatch=usb:046d:402c
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|
||||||
[Driver/hidpp20]
|
[Driver/hidpp20]
|
||||||
DeviceIndex=1
|
DeviceIndex=1
|
||||||
|
|||||||
@@ -3,4 +3,3 @@
|
|||||||
Name=Logitech G603
|
Name=Logitech G603
|
||||||
DeviceMatch=usb:046d:406c;bluetooth:046d:b01c
|
DeviceMatch=usb:046d:406c;bluetooth:046d:b01c
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|||||||
@@ -2,7 +2,3 @@
|
|||||||
Name=Logitech G604
|
Name=Logitech G604
|
||||||
DeviceMatch=usb:046d:4085;bluetooth:046d:b024
|
DeviceMatch=usb:046d:4085;bluetooth:046d:b024
|
||||||
Driver=hidpp20
|
Driver=hidpp20
|
||||||
DeviceType=mouse
|
|
||||||
|
|
||||||
[Driver/hidpp20]
|
|
||||||
Quirk=INDEX_OFFSET
|
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
[Device]
|
|
||||||
Name=Logitech G635
|
|
||||||
DeviceMatch=usb:046d:0a89
|
|
||||||
DeviceType=mouse
|
|
||||||
Driver=hidpp20
|
|
||||||
|
|
||||||
[Driver/hidpp20]
|
|
||||||
Buttons=0
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user