Files
nixos-config/hosts/Bellerophon/duo-configuration.nix
2025-01-09 10:39:36 -04:00

61 lines
1.8 KiB
Nix

{pkgs, ...}: let
# Clone the repository
duoRepo = builtins.fetchGit {
url = "https://github.com/alesya-h/zenbook-duo-2024-ux8406ma-linux";
# Specify a specific commit or branch if needed
rev = "2b8be1840f38f92e6626da7a442245b74ed0715f"; # Uncomment this line to specify a branch or commit
};
# Path to the duo script
duoScript = "${duoRepo}/duo";
# Read and modify the script content
modifiedScriptContent =
builtins.replaceStrings [
"#!/usr/bin/env bash"
"prefered_resolution=\"2880x1800@120.000\""
] [
"#!${pkgs.bash}/bin/bash"
"prefered_resolution=\"2880x1800@120.000+vrr\""
] (builtins.readFile duoScript);
# Write the modifications to a patched duo file
patchedDuoScript = pkgs.writeShellScript "patched-duo" modifiedScriptContent;
in {
systemd.services.watchBacklight = {
description = "synchronize screen brightness";
wantedBy = ["default.target"];
path = [pkgs.inotify-tools pkgs.sudo];
serviceConfig = {
ExecStart = "${patchedDuoScript} watch-backlight";
Restart = "always";
RestartSec = 5;
};
};
systemd.user.services.watchDisplays = {
description = "set screens on keyboard event";
wantedBy = ["default.target"];
after = ["graphical-session.target"];
path = [pkgs.gnome-monitor-config pkgs.usbutils pkgs.inotify-tools];
serviceConfig = {
ExecStart = "${patchedDuoScript} watch-displays";
Restart = "always";
RestartSec = 5;
};
};
systemd.user.services.watchRotation = {
description = "rotate screens";
wantedBy = ["default.target"];
after = ["graphical-session.target"];
path = [pkgs.gnome-monitor-config pkgs.iio-sensor-proxy];
serviceConfig = {
ExecStart = "${patchedDuoScript} watch-rotation";
Restart = "always";
RestartSec = 5;
};
};
}