2024-05-22 14:29:45 +02:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
2024-11-01 20:54:33 +01:00
|
|
|
pkgs,
|
2024-05-22 14:29:45 +02:00
|
|
|
...
|
2025-07-20 01:23:48 +02:00
|
|
|
}:
|
|
|
|
let
|
2025-04-09 15:31:18 +02:00
|
|
|
inherit (lib.options) mkEnableOption;
|
|
|
|
inherit (lib.modules) mkIf;
|
|
|
|
|
2024-05-15 00:14:59 +02:00
|
|
|
cfg = config.modules.programs.btop;
|
2024-11-01 20:54:33 +01:00
|
|
|
|
|
|
|
btop-settings = pkgs.writeTextDir "btop/btop.conf" ''
|
|
|
|
truecolor = True
|
|
|
|
vim_keys = True
|
|
|
|
rounded_corners = True
|
|
|
|
update_ms = 100
|
|
|
|
graph_symbol = "braille"
|
|
|
|
cpu_single_graph = True
|
|
|
|
clock_format = "%X"
|
|
|
|
use_fstab = True
|
|
|
|
io_mode = True
|
|
|
|
net_sync = True
|
|
|
|
net_iface = "enp4s0"
|
|
|
|
log_level = "ERROR"
|
|
|
|
'';
|
|
|
|
|
2025-07-18 23:12:42 +02:00
|
|
|
btop-no-desktop-entry = pkgs.btop.overrideAttrs (prev: {
|
|
|
|
postInstall = ''
|
|
|
|
${prev.postInstall or ""}
|
|
|
|
rm -rf $out/share/applications/*.desktop
|
|
|
|
'';
|
|
|
|
});
|
|
|
|
|
2024-11-01 20:54:33 +01:00
|
|
|
btop-wrapped = pkgs.symlinkJoin {
|
|
|
|
name = "btop-wrapped";
|
2025-07-20 01:23:48 +02:00
|
|
|
paths = [ btop-no-desktop-entry ];
|
|
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
2024-11-01 20:54:33 +01:00
|
|
|
postBuild = ''
|
|
|
|
wrapProgram $out/bin/btop --set XDG_CONFIG_HOME "${btop-settings}"
|
|
|
|
'';
|
|
|
|
};
|
2025-07-20 01:23:48 +02:00
|
|
|
in
|
|
|
|
{
|
2024-05-15 00:14:59 +02:00
|
|
|
options.modules.programs.btop.enable = mkEnableOption "btop";
|
|
|
|
config = mkIf cfg.enable {
|
2025-07-20 01:23:48 +02:00
|
|
|
environment.systemPackages = [ btop-wrapped ];
|
2024-05-15 00:14:59 +02:00
|
|
|
};
|
2024-04-10 17:39:26 +02:00
|
|
|
}
|