mirror of
https://github.com/NixOS/nixos-hardware
synced 2024-12-23 18:19:44 +01:00
52 lines
1.9 KiB
Nix
52 lines
1.9 KiB
Nix
{ pkgs, config, lib, ... }:
|
|
|
|
let
|
|
iio-sensor-proxy-supports-rotation =
|
|
lib.versionAtLeast pkgs.iio-sensor-proxy.version "3.0";
|
|
in
|
|
{
|
|
imports = [
|
|
../../common/cpu/intel
|
|
../../common/pc/laptop
|
|
../../common/pc/laptop/ssd
|
|
];
|
|
|
|
# OneNetbook 4 has `GXTP7386:00 27C6:011A Stylus` exporting no buttons in 5.12
|
|
# and libinput does't consider it a tablet without them, but a touchscreen.
|
|
# This leads to real weird effects,
|
|
# starting from clicking as soon as the pen gets tracked.
|
|
# A kernel patch exists to resolve that, compiled as an out-of-tree module here
|
|
# to avoid recompiling the kernel for such a small change.
|
|
# `hid-multitouch-onenetbook4` is the fixed one, don't use `hid-multitouch`.
|
|
boot.blacklistedKernelModules = [ "hid-multitouch" ];
|
|
boot.extraModulePackages = [
|
|
(config.boot.kernelPackages.callPackage ./goodix-stylus-mastykin {})
|
|
];
|
|
|
|
# OneNetbook 4 has an accelerometer,
|
|
hardware.sensor.iio.enable = lib.mkDefault iio-sensor-proxy-supports-rotation;
|
|
# said accelerometer needs rotation, rotation needs iio-sensor-proxy >= 3.0
|
|
services.udev.extraHwdb = lib.mkIf iio-sensor-proxy-supports-rotation ''
|
|
acpi:BOSC0200:BOSC0200:*
|
|
ACCEL_MOUNT_MATRIX=0, 1, 0; 0, 0, 1; 1, 0, 0
|
|
'';
|
|
# (this at least gets normal/left-up/right-up/bottom-up right)
|
|
# Until https://github.com/NixOS/nixpkgs/pull/125989 reaches you, you can use
|
|
#nixpkgs.overlays = [
|
|
# (self: super: {
|
|
# iio-sensor-proxy =
|
|
# if (lib.versionOlder super.iio-sensor-proxy.version "3.0") then
|
|
# (super.iio-sensor-proxy.overrideAttrs (oa: rec {
|
|
# version = "3.0";
|
|
# src = pkgs.fetchFromGitLab {
|
|
# domain = "gitlab.freedesktop.org";
|
|
# owner = "hadess";
|
|
# repo = "iio-sensor-proxy";
|
|
# rev = version;
|
|
# sha256 = "0ngbz1vkbjci3ml6p47jh6c6caipvbkm8mxrc8ayr6vc2p9l1g49";
|
|
# };
|
|
# }))
|
|
# else super.iio-sensor-proxy;
|
|
# })
|
|
#];
|
|
}
|