diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix b/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix new file mode 100644 index 000000000000..edb482ad15f0 --- /dev/null +++ b/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix @@ -0,0 +1,60 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, pkg-config +, makeWrapper +, dbus +, libpulseaudio +, notmuch +, openssl +, ethtool +}: + +rustPlatform.buildRustPackage rec { + pname = "i3status-rust"; + version = "0.20.4"; + + src = fetchFromGitHub { + owner = "greshake"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-lohMrsMCAnb2p7H+xfa24Wx3LEFxCAlGHfP9A70Hg48="; + }; + + cargoSha256 = "sha256-pe96VNTH49qgQ4yxKcAcQPN31W2k1mD9TdhNKBp4x5Q="; + + nativeBuildInputs = [ pkg-config makeWrapper ]; + + buildInputs = [ dbus libpulseaudio notmuch openssl ]; + + cargoBuildFlags = [ + "--features=notmuch" + "--features=maildir" + "--features=pulseaudio" + ]; + + prePatch = '' + substituteInPlace src/util.rs \ + --replace "/usr/share/i3status-rust" "$out/share" + ''; + + postInstall = '' + mkdir -p $out/share + cp -R examples files/* $out/share + ''; + + postFixup = '' + wrapProgram $out/bin/i3status-rs --prefix PATH : "${ethtool}/bin" + ''; + + # Currently no tests are implemented, so we avoid building the package twice + doCheck = false; + + meta = with lib; { + description = "Very resource-friendly and feature-rich replacement for i3status"; + homepage = "https://github.com/greshake/i3status-rust"; + license = licenses.gpl3; + maintainers = with maintainers; [ backuitist globin ma27 ]; + platforms = platforms.linux; + }; +} |