system76 scheduler
This commit is contained in:
parent
2faec8579a
commit
ec067ee460
10 changed files with 218 additions and 105 deletions
54
system/syspkgs/kwin-system76-scheduler-integration.nix
Normal file
54
system/syspkgs/kwin-system76-scheduler-integration.nix
Normal file
|
@ -0,0 +1,54 @@
|
|||
{ lib, pkgs, stdenv, fetchFromGitHub, dbus, qt5, qtbase, wrapQtAppsHook, kpackage, kcoreaddons, ... }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kwin-system76-scheduler-integration";
|
||||
version = "0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "maxiberta";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-HX0nK1p97kqt+ZZuECm7Mg9aAXaFDnsJDkbcLUEU+p0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
wrapQtAppsHook
|
||||
kpackage
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
dbus
|
||||
qt5.qttools.bin
|
||||
];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
kpackagetool5 --type=KWin/Script -i . -p $out/share/kwin/scripts
|
||||
|
||||
cat <<EOF > $out/bin/kwin-system76-scheduler-dbus-proxy.sh
|
||||
#!${pkgs.bash}/bin/bash
|
||||
DBUS_SERVICE="com.system76.Scheduler"
|
||||
DBUS_PATH="/com/system76/Scheduler"
|
||||
DBUS_INTERFACE="com.system76.Scheduler"
|
||||
DBUS_METHOD="SetForegroundProcess"
|
||||
echo "starting dbus proxy.."
|
||||
echo \''$DBUS_SERVICE \''$DBUS_PATH \''$DBUS_INTERFACE \''$DBUS_METHOD
|
||||
${pkgs.dbus}/bin/dbus-monitor --session "destination=\''$DBUS_SERVICE,path=\''$DBUS_PATH,interface=\''$DBUS_INTERFACE,member=\''$DBUS_METHOD" |
|
||||
while true; do
|
||||
read method call time sender _ dest serial path interface member
|
||||
read type pid
|
||||
[ "\''$member" = "member=\''$DBUS_METHOD" ] && ${pkgs.libsForQt5.qt5.qttools.bin}/bin/qdbus --system \''$DBUS_SERVICE \''$DBUS_PATH \''$DBUS_INTERFACE.\''$DBUS_METHOD \''$pid && echo "new foreground process: \''$pid"
|
||||
done
|
||||
EOF
|
||||
|
||||
chmod +x $out/bin/kwin-system76-scheduler-dbus-proxy.sh
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
|
||||
}
|
34
system/syspkgs/system76-scheduler.nix
Normal file
34
system/syspkgs/system76-scheduler.nix
Normal file
|
@ -0,0 +1,34 @@
|
|||
{ pkgs, lib, rustPlatform, fetchFromGitHub, ... }:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
|
||||
pname = "system76-scheduler";
|
||||
version = "1.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pop-os";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-uFFJkuMxqcGj6OQShF0zh/FGwX4/ln1l6NwGonkUsNI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
bcc
|
||||
];
|
||||
|
||||
EXECSNOOP_PATH = "${pkgs.bcc}/bin/execsnoop";
|
||||
|
||||
cargoSha256 = "sha256-s91T/Ttr7G8sjyf0Mp5suep4IA+l/r4118B+ue33yfQ=";
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/etc/system76-scheduler/assignments \
|
||||
$out/etc/system76-scheduler/exceptions \
|
||||
$out/lib/systemd/system \
|
||||
$out/etc/dbus-1/system.d
|
||||
install -Dm0644 data/config.ron $out/etc/system76-scheduler/config.ron
|
||||
install -Dm0644 data/assignments.ron $out/etc/system76-scheduler/assignments/default.ron
|
||||
install -Dm0644 data/exceptions.ron $out/etc/system76-scheduler/exceptions/default.ron
|
||||
# install -Dm0644 data/com.system76.Scheduler.service $out/lib/systemd/system/com.system76.Scheduler.service
|
||||
install -Dm0644 data/com.system76.Scheduler.conf $out/etc/dbus-1/system.d/com.system76.Scheduler.conf
|
||||
'';
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue