nix/modules/home/i3blocks.nix
Narrator f534aea373
Some checks failed
CI / formatting (push) Failing after 9m23s
CI / nix_flake_check (push) Failing after 9m20s
better i3bar
2025-12-11 13:23:10 +01:00

107 lines
3.3 KiB
Nix

{ config, pkgs, ... }:
{
programs.i3blocks = {
enable = true;
bars = {
default = {
dt = {
label = "DT ";
command = "${pkgs.coreutils}/bin/date '+%a%d/%m %H:%M'";
interval = 10;
};
bat = {
label = "BAT ";
command = "${pkgs.acpi}/bin/acpi -b | grep -o '[0-9]\\+%' | head -n1";
interval = 15;
};
vol = {
label = "VOL";
command = ''
${pkgs.pipewire}/bin/wpctl get-volume @DEFAULT_SINK@ | grep -o '[0-9]\+%' | head -n1
'';
interval = 5;
};
ram = {
label = "RAM ";
command = "${pkgs.procps}/bin/free -h | awk '/Mem:/ {print \$3 \"/\" \$2}'";
interval = 7;
};
cpu = {
label = "CPU ";
command = "${pkgs.procps}/bin/top -bn1 | grep 'Cpu(s)' | awk '{print \$2 \"% us\"}'";
interval = 5;
};
cput = {
label = "CPU° ";
command = "${pkgs.lm_sensors}/bin/sensors k10temp-* 2>/dev/null | awk '/Tctl:/ {print \$2}' || echo '?°C'";
interval = 10;
};
gpumem = {
label = "GPU ";
command = "nvidia-smi --query-gpu=memory.used,memory.total --format=csv,noheader,nounits | awk -F, '{printf \"%.0f/%.0fG\", \$1/1024, \$2/1024}' 2>/dev/null || echo '?G'";
interval = 10;
};
gput = {
label = "GPU° ";
command = "nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits 2>/dev/null || echo '?°C'";
interval = 10;
};
net = {
label = "NET ";
command = "${pkgs.iproute2}/bin/ip -4 addr show scope global | grep inet | awk '{print \$2}' | cut -d/ -f1 | head -n1";
interval = 20;
};
pkg = {
label = "UPD ";
command = "cd /home/narrator/nix-flake && nixos-rebuild dry-run 2>&1 | grep -qE '(would be built|downloaded)' && echo '!UP2DATE' || echo 'UP2DATE'";
interval = 3600;
};
tmp = {
label = "TMP ";
command = "${pkgs.coreutils}/bin/df -h /tmp | awk 'NR==2{print \$3\"/\"$2}'";
interval = 60;
};
nix = {
label = "NIX ";
command = "${pkgs.coreutils}/bin/du -sh /nix/store | cut -f1";
interval = 600;
};
gen = {
label = "GEN ";
command = "nixos-rebuild list-generations | grep -oE '[0-9]+' | head -n1";
interval = 900;
};
fail = {
label = "FAIL ";
command = "${pkgs.systemd}/bin/systemctl --failed --no-pager --no-legend | head -n1 | awk '{print \$1}'";
interval = 60;
};
sh = {
label = "SH ";
command = "getent passwd \$USER | cut -d: -f7";
interval = 300;
};
tmpc = {
label = "SOC° ";
command = "cat /sys/class/thermal/thermal_zone0/temp | awk '{printf \"%.1f°C\", \$1/1000}'";
interval = 15;
};
pp = {
label = "PWR ";
command = "${pkgs.power-profiles-daemon}/bin/powerprofilesctl get";
interval = 30;
};
hn = {
label = "HN ";
command = "${pkgs.coreutils}/bin/hostname -s";
interval = 1000;
};
};
};
};
}