Compare commits

...

4 Commits

5 changed files with 3 additions and 186 deletions
-12
View File
@@ -1,19 +1,7 @@
self: super:
{
ddccontrol = super.callPackage ../pkgs/ddccontrol {};
opencode-claude-auth = super.callPackage ../pkgs/opencode-claude-auth {};
# Pin some kde packages to 6.3.1, 6.3.2 breaks thunderbolt
# kdePackages = super.kdePackages.overrideScope(kdeFinal: kdePrev: {
# kwin = kdePrev.kwin.overrideAttrs (prevAttrs: {
# src = super.fetchurl {
# url = "mirror://kde/stable/plasma/6.3.1/kwin-6.3.1.tar.xz";
# hash = "sha256-mlC6DqpiCXg73vu2aOV9DL36cc6Ov70X/kRtttdz8kI=";
# };
# version = "6.3.1";
# });
# });
linuxPackages = super.linuxPackages.extend (lpself: lpsuper: {
acer-wmi-ext = lpsuper.callPackage ../pkgs/acer-wmi-ext {};
acer-wmi-battery = lpsuper.callPackage ../pkgs/acer-wmi-battery {};
});
}
-50
View File
@@ -1,50 +0,0 @@
# Custom module for Acer WMI features, like battery charge limit
{
lib,
stdenv,
fetchFromGitHub,
kernel
}:
stdenv.mkDerivation {
pname = "acer-wmi-battery";
version = "0.0.0";
src = fetchFromGitHub {
owner = "frederik-h";
repo = "acer-wmi-battery";
rev = "0889d3ea54655eaa88de552b334911ce7375952f";
sha256 = "sha256-mI6Ob9BmNfwqT3nndWf3jkz8f7tV10odkTnfApsNo+A=";
};
nativeBuildInputs = [ kernel.moduleBuildDependencies ];
# Makefile provided in repo is useless, hardcoded paths, not using it
setSourceRoot = ''
export sourceRoot=$(pwd)/source
'';
makeFlags = [
"-C"
"${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"M=$(sourceRoot)"
];
patchPhase = ''
cat > Kbuild <<EOF
obj-m := acer-wmi-battery.o
EOF
'';
buildFlags = [ "modules" ];
installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ];
installTargets = [ "modules_install" ];
meta = {
description = "Acer WMI kernel module for battery charge limit";
homepage = "https://github.com/frederik-h/acer-wmi-battery";
license = lib.licenses.gpl2;
platforms = lib.platforms.linux;
};
}
+3 -16
View File
@@ -11,10 +11,10 @@ stdenv.mkDerivation {
version = "0.0.0";
src = fetchFromGitHub {
owner = "TenSeventy7";
owner = "Lumpiasty";
repo = "acer-wmi-ext";
rev = "78aaf9392e1fbdd62c3ec9944e9615505485ec04";
sha256 = "sha256-AmhBnZiy7llYqHB9gD6T7lK4L2qhtl5pBWAf+H+V8hE=";
rev = "71bc84f4729eb53e7786aaed37957c6d91ce0cfd";
sha256 = "sha256-eMKEVgEFaBB1oDL5mlmnJyEj24jzi8HsISl3cCzstD8=";
};
nativeBuildInputs = [ kernel.moduleBuildDependencies ];
@@ -31,19 +31,6 @@ stdenv.mkDerivation {
"M=$(sourceRoot)"
];
patchPhase = ''
# Add support for Acer Swift 14 (SFG14-63) model
# Using values found by playing with performance settings in acer's software on windows
# https://github.com/hirschmann/nbfc/wiki/Probe-the-EC's-registers
# Also, disable USB control because not sure, need to verify
patch -p1 < ${./sfg14-63.patch}
# Create Kbuild file for module
cat > Kbuild <<EOF
obj-m := acer-wmi-ext.o
EOF
'';
buildFlags = [ "modules" ];
installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ];
installTargets = [ "modules_install" ];
-44
View File
@@ -1,44 +0,0 @@
diff --git a/acer-wmi-ext.c b/acer-wmi-ext.c
index 24112bf..7829c19 100644
--- a/acer-wmi-ext.c
+++ b/acer-wmi-ext.c
@@ -69,9 +69,9 @@ struct set_battery_health_control_output {
enum battery_mode { HEALTH_MODE = 1, CALIBRATION_MODE = 2 };
-#define ACER_SYSTEM_CONTROL_MODE_EC_OFFSET 0x45
+#define ACER_SYSTEM_CONTROL_MODE_EC_OFFSET 0x10
enum system_control_mode {
- SYSTEM_CONTROL_BALANCED = 1,
+ SYSTEM_CONTROL_BALANCED = 0,
SYSTEM_CONTROL_SILENT = 2,
SYSTEM_CONTROL_PERFORMANCE = 3,
};
@@ -146,9 +146,9 @@ static struct quirk_entry quirk_unknown = {
static struct quirk_entry quirk_acer_system_control_mode = {
.system_control_mode = 1,
};
-static struct quirk_entry quirk_acer_sfg174_73 = {
+static struct quirk_entry quirk_acer_sfg14_63 = {
.system_control_mode = 1, // Enable system control mode for this model
- .usb_charge_mode = 1, // Enable USB charge mode for this model
+ .usb_charge_mode = 0, // Disable USB charge mode for this model
};
/*
@@ -165,12 +165,12 @@ static int __init dmi_matched(const struct dmi_system_id *dmi)
static const struct dmi_system_id acer_quirks[] __initconst = {
{
.callback = dmi_matched,
- .ident = "Acer Swift SFG14-73",
+ .ident = "Acer Swift SFG14-63",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
- DMI_MATCH(DMI_PRODUCT_NAME, "Swift SFG14-73"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Swift SFG14-63"),
},
- .driver_data = &quirk_acer_sfg174_73,
+ .driver_data = &quirk_acer_sfg14_63,
},
};
-64
View File
@@ -1,64 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
autoreconfHook,
intltool,
libxml2,
pciutils,
pkg-config,
gtk2,
ddccontrol-db,
}:
stdenv.mkDerivation rec {
pname = "ddccontrol";
version = "1.0.3";
src = fetchFromGitHub {
owner = "ddccontrol";
repo = "ddccontrol";
rev = version;
sha256 = "sha256-qyD6i44yH3EufIW+LA/LBMW20Tejb49zvsDfv6YFD6c=";
};
nativeBuildInputs = [
autoreconfHook
intltool
pkg-config
];
buildInputs = [
libxml2
pciutils
gtk2
ddccontrol-db
];
configureFlags = [
"--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
];
prePatch = ''
substituteInPlace configure.ac \
--replace \
"\$""{datadir}/ddccontrol-db" \
"${ddccontrol-db}/share/ddccontrol-db"
substituteInPlace src/ddcpci/Makefile.am \
--replace "chmod 4711" "chmod 0711"
'';
preConfigure = ''
intltoolize --force
'';
meta = with lib; {
description = "Program used to control monitor parameters by software";
homepage = "https://github.com/ddccontrol/ddccontrol";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with lib.maintainers; [ pakhfn ];
};
}