Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / sw / sway-assign-cgroups / package.nix
blob47acd2ae4d1d1ab7e40c4c4dbc35e728c432cf4d
1 { lib
2 , fetchFromGitHub
3 , python3Packages
4 }:
6 python3Packages.buildPythonApplication rec {
7   pname = "sway-assign-cgroups";
8   version = "0.4.0";
9   src = fetchFromGitHub {
10     owner = "alebastr";
11     repo = "sway-systemd";
12     rev = "v${version}";
13     sha256 = "sha256-wznYE1/lVJtvf5Nq96gbPYisxc2gWLahVydwcH1vwoQ=";
14   };
15   format = "other";
17   propagatedBuildInputs = with python3Packages; [ dbus-next i3ipc psutil tenacity xlib ];
19   installPhase = ''
20     runHook preInstall
21     mkdir -p $out/bin
22     cp src/assign-cgroups.py $out/bin/
23     runHook postInstall
24   '';
26   meta = with lib; {
27     description = "Place GUI applications into systemd scopes for systemd-oomd compatibility";
28     mainProgram = "assign-cgroups.py";
29     longDescription = ''
30       Automatically assign a dedicated systemd scope to the GUI applications
31       launched in the same cgroup as the compositor. This could be helpful for
32       implementing cgroup-based resource management and would be necessary when
33       `systemd-oomd` is in use.
35       Limitations: The script is using i3ipc window:new event to detect application
36       launches and would fail to detect background apps or special surfaces.
37       Therefore it's recommended to supplement the script with use of systemd user
38       services for such background apps.
39     '';
40     license = licenses.mit;
41     platforms = platforms.linux;
42     maintainers = with maintainers; [ nickhu ];
43   };