diff --git a/flake.lock b/flake.lock index 088f5fa..acca713 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1741340151, - "narHash": "sha256-SJ/m4Go4tSj8BnKLGwnLT6yN2pdlewepuXPmaDrzuK4=", + "lastModified": 1741863581, + "narHash": "sha256-datQsagelizLX/7Mb7aSOic7X49GZUzZsWzBzDZOY4U=", "owner": "aylur", "repo": "astal", - "rev": "e14e19c220575446c4a0e815705c88b28e3850e0", + "rev": "69efb4c91e590adcb5a3d8938454f987982e3891", "type": "github" }, "original": { @@ -92,11 +92,11 @@ ] }, "locked": { - "lastModified": 1740872218, - "narHash": "sha256-ZaMw0pdoUKigLpv9HiNDH2Pjnosg7NBYMJlHTIsHEUo=", + "lastModified": 1741352980, + "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "3876f6b87db82f33775b1ef5ea343986105db764", + "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9", "type": "github" }, "original": { @@ -174,11 +174,11 @@ "zig2nix": "zig2nix" }, "locked": { - "lastModified": 1741213203, - "narHash": "sha256-3/z39Y2AuLIm2OKWDAR1iPi1uo+LZju1XwW2NAxKUcY=", + "lastModified": 1741969750, + "narHash": "sha256-AM5cNVUrbloxsu3rGE+cR3mMapbTAa+PecF9atXPqqA=", "owner": "mitchellh", "repo": "ghostty", - "rev": "e07b6fdf6ba342eb1fc4321c26fe5a6475be5133", + "rev": "234b804872af665ca8091892ff3ea35ea278b32c", "type": "github" }, "original": { @@ -197,11 +197,11 @@ ] }, "locked": { - "lastModified": 1740915799, - "narHash": "sha256-JvQvtaphZNmeeV+IpHgNdiNePsIpHD5U/7QN5AeY44A=", + "lastModified": 1741379162, + "narHash": "sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "42b1ba089d2034d910566bf6b40830af6b8ec732", + "rev": "b5a62751225b2f62ff3147d0a334055ebadcd5cc", "type": "github" }, "original": { @@ -261,11 +261,11 @@ ] }, "locked": { - "lastModified": 1741345870, - "narHash": "sha256-KTpoO4oaucdFr3oJJBYpGK+aWVVrLvtiT17EQE7Cf4Y=", + "lastModified": 1741955947, + "narHash": "sha256-2lbURKclgKqBNm7hVRtWh0A7NrdsibD0EaWhahUVhhY=", "owner": "nix-community", "repo": "home-manager", - "rev": "04c915bcf1a1eac3519372ff3185beef053fba7c", + "rev": "4e12151c9e014e2449e0beca2c0e9534b96a26b4", "type": "github" }, "original": { @@ -319,11 +319,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1741306000, - "narHash": "sha256-qaDw0TyUceZBLntPBOdd1642T/mBGMNtK5NBuv2gWiY=", + "lastModified": 1741911010, + "narHash": "sha256-CIKnxI//A8J3N0cUXQ8HMqwpo/1igU89H8eIOrlrNts=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "c1855b306b8eeb70118b3ba70471188a65e694e7", + "rev": "6b175fb7c9d12ff039dc3e7f944256522658581d", "type": "github" }, "original": { @@ -335,11 +335,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1741302428, - "narHash": "sha256-zcgucpL/rgEC/IIii6R4NvmtJsYT+/F0ub1FQOWVv0Q=", + "lastModified": 1741907753, + "narHash": "sha256-T8iwRFgFGQyENPRm/RIIpjDxP+GDIwTlYuFcY1LexQ8=", "owner": "neovim", "repo": "neovim", - "rev": "e46f07b1d2942c7b5c08fca9a4cac735ee2c0c71", + "rev": "4f6196e91d23f17e6b25ea7356d5bbc5b87d95b6", "type": "github" }, "original": { @@ -355,11 +355,11 @@ ] }, "locked": { - "lastModified": 1741229100, - "narHash": "sha256-0HwrTDXp9buEwal/1ymK9uQmzUD5ozIA7CJGqnT/gLs=", + "lastModified": 1741906019, + "narHash": "sha256-c9L0yCdpBzPVTcExcqTti6vP6GuPVaCaVCDf0M8eu+I=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "adf5c88ba1fe21af5c083b4d655004431f20c5ab", + "rev": "4d8a451649b6de429ea7e169378488305d0d9399", "type": "github" }, "original": { @@ -375,11 +375,11 @@ ] }, "locked": { - "lastModified": 1740886574, - "narHash": "sha256-jN6kJ41B6jUVDTebIWeebTvrKP6YiLd1/wMej4uq4Sk=", + "lastModified": 1741619381, + "narHash": "sha256-koZtlJRqi0/MD/AKd0KrXLA2NuBOVzlIyAJprjzpxZE=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "26a0f969549cf4d56f6e9046b9e0418b3f3b94a5", + "rev": "66537fb185462ba9b07f4e6f2d54894a1b2d04ab", "type": "github" }, "original": { @@ -390,11 +390,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1741325094, - "narHash": "sha256-RUAdT8dZ6k/486vnu3tiNRrNW6+Q8uSD2Mq7gTX4jlo=", + "lastModified": 1741792691, + "narHash": "sha256-f0BVt1/cvA0DQ/q3rB+HY4g4tKksd03ZkzI4xehC2Ew=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "b48cc4dab0f9711af296fc367b6108cf7b8ccb16", + "rev": "e1f12151258b12c567f456d8248e4694e9390613", "type": "github" }, "original": { @@ -412,11 +412,11 @@ ] }, "locked": { - "lastModified": 1741192150, - "narHash": "sha256-wB140alXVla1Rw/kENerUoma2qO1Jy5IYWbmiSqmJu0=", + "lastModified": 1741870048, + "narHash": "sha256-odXRdNZGdXg1LmwlAeWL85kgy/FVHsgKlDwrvbR2BsU=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "0e4ccdb8181da2c6193c047b50ffee5f1a3b6dc1", + "rev": "5d76001e33ee19644a598ad80e7318ab0957b122", "type": "github" }, "original": { @@ -427,11 +427,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1741246872, - "narHash": "sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U=", + "lastModified": 1741851582, + "narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "10069ef4cf863633f57238f179a0297de84bd8d3", + "rev": "6607cf789e541e7873d40d3a8f7815ea92204f32", "type": "github" }, "original": { @@ -494,11 +494,11 @@ "tmux": { "flake": false, "locked": { - "lastModified": 1741082475, - "narHash": "sha256-xZTwrCjo4JZg8SXQmomgTKqK+nOvXgvKjZ+0RtPXaHM=", + "lastModified": 1741687272, + "narHash": "sha256-Xb/fVdgZjM8tAADtjqh3IXSMR8ASj9gbRYqS3f4V5H8=", "owner": "tmux", "repo": "tmux", - "rev": "882fb4d295deb3e4b803eb444915763305114e4f", + "rev": "d4b8635f50f997bf48764caa4972c4b5fc8802fd", "type": "github" }, "original": { @@ -535,11 +535,11 @@ ] }, "locked": { - "lastModified": 1740729275, - "narHash": "sha256-/0dJi65+7oBpfEYWrg4jihkEzAf975TVeOk+FpxaW6o=", + "lastModified": 1741838758, + "narHash": "sha256-nGTC/y9e+1+QIVCzIbiSpPiXM2HfS8YwIDCp52CcOQ4=", "owner": "youwen5", "repo": "zen-browser-flake", - "rev": "17bd241d6a5692848b01737f595824a707de855a", + "rev": "03a7fc89bc48344aed00e01b409c1d6ffc4c52ce", "type": "github" }, "original": { @@ -563,11 +563,11 @@ ] }, "locked": { - "lastModified": 1738239110, - "narHash": "sha256-Y5i9mQ++dyIQr+zEPNy+KIbc5wjPmfllBrag3cHZgcE=", + "lastModified": 1741702955, + "narHash": "sha256-Emk3VnNByigCBlBN34IH2cMrsUqIhdex02uw9TSDsN0=", "owner": "mitchellh", "repo": "zig-overlay", - "rev": "1a8fb6f3a04724519436355564b95fce5e272504", + "rev": "1152ce759114a94134081270affd970ae1b957ed", "type": "github" }, "original": { @@ -584,20 +584,20 @@ ], "nixpkgs": [ "ghostty", - "nixpkgs-stable" + "nixpkgs-unstable" ] }, "locked": { - "lastModified": 1738263917, - "narHash": "sha256-j/3fwe2pEOquHabP/puljOKwAZFjIE9gXZqA91sC48M=", + "lastModified": 1741816255, + "narHash": "sha256-SJQMnm1vwXy8Td2qp/omjybn+4xZ/MDdZHeK6aa2nb0=", "owner": "jcollie", "repo": "zig2nix", - "rev": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a", + "rev": "c2a24405298373123e12ca81805e436da648aaf5", "type": "github" }, "original": { "owner": "jcollie", - "ref": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a", + "ref": "c2a24405298373123e12ca81805e436da648aaf5", "repo": "zig2nix", "type": "github" } diff --git a/overlays/default.nix b/overlays/default.nix index 36c1a89..d87062f 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -49,4 +49,6 @@ in { vesktop = enableWayland super.vesktop ["vesktop"]; youtube-music = enableWayland super.youtube-music ["youtube-music"]; vscode = enableWayland super.vscode ["code"]; + + htop-vim = super.callPackage ./htop-vim.nix {}; } diff --git a/overlays/htop-vim.nix b/overlays/htop-vim.nix new file mode 100644 index 0000000..1c4e68e --- /dev/null +++ b/overlays/htop-vim.nix @@ -0,0 +1,83 @@ +# from https://github.com/NixOS/nixpkgs/pull/389674 +{ + lib, + fetchFromGitHub, + fetchpatch2, + stdenv, + autoreconfHook, + pkg-config, + ncurses, + darwin, + libcap, + libnl, + sensorsSupport ? stdenv.hostPlatform.isLinux, + lm_sensors, + systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd, + systemd, +}: + +assert systemdSupport -> stdenv.hostPlatform.isLinux; + +stdenv.mkDerivation rec { + pname = "htop-vim"; + version = "unstable-2023-02-16"; + + src = fetchFromGitHub { + owner = "KoffeinFlummi"; + repo = pname; + rev = "b2b58f8f152343b70c33b79ba51a298024278621"; + hash = "sha256-ZfdBAlnjoy8g6xwrR/i2+dGldMOfLlX6DRlNqB8pkGM="; + }; + + patches = [ + # See https://github.com/htop-dev/htop/pull/1412 + # Remove when updating to 3.4.0 + (fetchpatch2 { + name = "htop-resolve-configuration-path.patch"; + url = "https://github.com/htop-dev/htop/commit/0dac8e7d38ec3aeae901a987717b5177986197e4.patch"; + hash = "sha256-Er1d/yV1fioYfEmXNlLO5ayAyXkyy+IaGSx1KWXvlv0="; + }) + ]; + + nativeBuildInputs = [ autoreconfHook ] ++ lib.optional stdenv.hostPlatform.isLinux pkg-config; + + buildInputs = + [ ncurses ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.IOKit ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + libcap + libnl + ] + ++ lib.optional sensorsSupport lm_sensors + ++ lib.optional systemdSupport systemd; + + configureFlags = + [ + "--enable-unicode" + "--sysconfdir=/etc" + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + "--enable-affinity" + "--enable-capabilities" + "--enable-delayacct" + ] + ++ lib.optional sensorsSupport "--enable-sensors"; + + postFixup = + let + optionalPatch = pred: so: lib.optionalString pred "patchelf --add-needed ${so} $out/bin/htop"; + in + lib.optionalString (!stdenv.hostPlatform.isStatic) '' + ${optionalPatch sensorsSupport "${lib.getLib lm_sensors}/lib/libsensors.so"} + ${optionalPatch systemdSupport "${systemd}/lib/libsystemd.so"} + ''; + + meta = with lib; { + description = "Interactive process viewer, with vim-style keybindings"; + homepage = "https://github.com/KoffeinFlummi/htop-vim"; + license = licenses.gpl2Only; + platforms = platforms.all; + maintainers = with maintainers; [ thiagokokada ]; + mainProgram = "htop"; + }; +}