mirror of
https://github.com/NixOS/nixos-hardware
synced 2024-12-19 08:09:45 +01:00
apple/t2: add tiny-dfr service
This commit is contained in:
parent
17ad09c30c
commit
7e3a3f3170
2 changed files with 71 additions and 1 deletions
|
@ -24,6 +24,8 @@ let
|
||||||
|
|
||||||
pipewirePackage = overrideAudioFiles pkgs.pipewire "spa/plugins/";
|
pipewirePackage = overrideAudioFiles pkgs.pipewire "spa/plugins/";
|
||||||
|
|
||||||
|
tiny-dfrPackage = pkgs.callPackage ./pkgs/tiny-dfr.nix { };
|
||||||
|
|
||||||
apple-set-os-loader-installer = pkgs.stdenv.mkDerivation {
|
apple-set-os-loader-installer = pkgs.stdenv.mkDerivation {
|
||||||
name = "apple-set-os-loader-installer-1.0";
|
name = "apple-set-os-loader-installer-1.0";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
|
@ -60,9 +62,10 @@ in
|
||||||
boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.callPackage ./pkgs/linux-t2.nix { });
|
boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.callPackage ./pkgs/linux-t2.nix { });
|
||||||
boot.initrd.kernelModules = [ "apple-bce" ];
|
boot.initrd.kernelModules = [ "apple-bce" ];
|
||||||
|
|
||||||
|
services.udev.packages = [ audioFilesUdevRules tiny-dfrPackage ];
|
||||||
|
|
||||||
# For audio
|
# For audio
|
||||||
boot.kernelParams = [ "pcie_ports=compat" "intel_iommu=on" "iommu=pt" ];
|
boot.kernelParams = [ "pcie_ports=compat" "intel_iommu=on" "iommu=pt" ];
|
||||||
services.udev.packages = [ audioFilesUdevRules ];
|
|
||||||
|
|
||||||
hardware.pulseaudio.package = overrideAudioFiles pkgs.pulseaudio "src/modules/";
|
hardware.pulseaudio.package = overrideAudioFiles pkgs.pulseaudio "src/modules/";
|
||||||
|
|
||||||
|
@ -71,6 +74,22 @@ in
|
||||||
pipewire = pipewirePackage;
|
pipewire = pipewirePackage;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# For tiny-dfr
|
||||||
|
systemd.services.tiny-dfr = {
|
||||||
|
enable = true;
|
||||||
|
description = "Tiny Apple silicon touch bar daemon";
|
||||||
|
after = [ "systemd-user-sessions.service" "getty@tty1.service" "plymouth-quit.service" "systemd-logind.service" ];
|
||||||
|
bindsTo = [ "dev-tiny_dfr_display.device" "dev-tiny_dfr_backlight.device" ];
|
||||||
|
startLimitIntervalSec = 30;
|
||||||
|
startLimitBurst = 2;
|
||||||
|
script = "${tiny-dfrPackage}/bin/tiny-dfr";
|
||||||
|
restartTriggers = [ tiny-dfrPackage ];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.etc."tiny-dfr/config.toml" = {
|
||||||
|
source = "${tiny-dfrPackage}/share/tiny-dfr/config.toml";
|
||||||
|
};
|
||||||
|
|
||||||
# Make sure post-resume.service exists
|
# Make sure post-resume.service exists
|
||||||
powerManagement.enable = true;
|
powerManagement.enable = true;
|
||||||
|
|
||||||
|
|
51
apple/t2/pkgs/tiny-dfr.nix
Normal file
51
apple/t2/pkgs/tiny-dfr.nix
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
{ pkgs, fetchFromGitHub, rustPlatform, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
repo = fetchFromGitHub {
|
||||||
|
owner = "kekrby";
|
||||||
|
repo = "tiny-dfr";
|
||||||
|
rev = "8a5d413cb1dbe2a25b77a9e7f3cb5b9c88ef3ffb";
|
||||||
|
hash = "sha256-l4D7aePz/CYpkRorrvsgIYrvSzoZl59OGcFGJqqJftk=";
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
rustPlatform.buildRustPackage rec {
|
||||||
|
pname = "tiny-dfr";
|
||||||
|
version = repo.rev;
|
||||||
|
|
||||||
|
src = repo;
|
||||||
|
|
||||||
|
cargoLock.lockFile = "${src}/Cargo.lock";
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
udev
|
||||||
|
glib
|
||||||
|
pango
|
||||||
|
cairo
|
||||||
|
gdk-pixbuf
|
||||||
|
libxml2
|
||||||
|
libinput
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace src/main.rs --replace "/usr/share/tiny-dfr/" "$out/share/tiny-dfr/"
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p $out/etc $out/share
|
||||||
|
|
||||||
|
cp -r etc/udev $out/etc/
|
||||||
|
cp -r share/tiny-dfr $out/share/
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with pkgs.lib; {
|
||||||
|
description = "The most basic dynamic function row daemon possible";
|
||||||
|
homepage = "https://github.com/kekrby/tiny-dfr";
|
||||||
|
license = with licenses; [ asl20 bsd3 cc0 isc lgpl21Plus mit mpl20 unicode-dfs-2016 asl20 asl20-llvm mit unlicense ];
|
||||||
|
maintainers = [];
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue