1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00
Files
niveum/lib/i3status-rust.nix

152 lines
3.9 KiB
Nix
Raw Normal View History

{ pkgs, wirelessInterface, colours, batteryName }:
let
inherit (pkgs) lib;
2020-06-10 17:37:25 +02:00
setsid = script:
pkgs.writers.writeDash "setsid-command" ''
${pkgs.utillinux}/bin/setsid ${script}
'';
coronaBlock = {
block = "custom";
interval = 60 * 2; # every two minutes
command = pkgs.writers.writeDash "corona" ''
${pkgs.curl}/bin/curl https://corona-stats.online/germany \
| ${pkgs.gnugrep}/bin/grep Germany \
| ${pkgs.gnused}/bin/sed 's/\s*//g' \
| ${pkgs.ansifilter}/bin/ansifilter \
| ${pkgs.gawk}/bin/awk -F'' '{print "🤒 " $8 " 💀 " $5}'
'';
};
2020-06-10 17:37:25 +02:00
in {
2019-11-05 21:59:51 +01:00
theme = {
name = "plain";
overrides = {
critical_fg = colours.red.bright;
good_fg = colours.green.bright;
idle_fg = colours.foreground;
info_fg = colours.foreground;
warning_fg = colours.yellow.bright;
2020-05-31 18:25:39 +02:00
warning_bg = colours.background;
2019-11-05 21:59:51 +01:00
alternating_tint_bg = colours.background;
alternating_tint_fg = colours.background;
critical_bg = colours.background;
good_bg = colours.background;
idle_bg = colours.background;
info_bg = colours.background;
separator = "/ ";
2020-05-31 18:25:39 +02:00
separator_bg = "auto";
2020-09-03 19:16:49 +02:00
separator_fg = colours.black.bright;
2019-11-05 21:59:51 +01:00
};
};
icons = {
name = "none";
overrides = {
bat = "🔋";
bat_charging = "🔌";
bat_discharging = "🔋";
2020-08-26 11:33:16 +02:00
bat_empty = " ";
bat_full = " ";
bat_half = " ";
bat_quarter = " ";
bat_three_quarters = " ";
cogs = "🚦 ";
cpu = "🖥 ";
mail = "📧 ";
memory_mem = "🧠 ";
music = "🎵";
music_next = "";
music_pause = "";
music_play = "";
music_prev = "";
net_down = "";
2020-08-26 11:33:16 +02:00
net_up = "🌐";
net_vpn = "🛡 ";
2020-08-26 11:33:16 +02:00
net_wired = "🌐";
net_wireless = "📶";
pomodoro = "🍅 ";
time = "📅 ";
toggle_off = "👎";
toggle_on = "👍";
2020-08-26 11:33:16 +02:00
volume_empty = "🔈 ";
volume_full = "🔊 ";
volume_half = "🔉 ";
2020-08-26 11:33:16 +02:00
volume_muted = "🔇";
weather_sun = "🌣";
weather_clouds = "🌥";
weather_rain = "🌧";
weather_snow = "🌨";
weather_default = "🌡";
weather_thunder = "🌩";
};
};
2019-11-05 21:59:51 +01:00
block = [
{
block = "weather";
service = {
name = "openweathermap";
api_key = lib.strings.fileContents <secrets/openweathermap.key>;
city_id = "2950159";
units = "metric";
};
}
{
block = "custom";
2020-04-27 12:06:37 +02:00
interval = 20;
command = pkgs.writers.writeDash "tasks" ''
2020-04-27 12:06:37 +02:00
${pkgs.todo-txt-cli}/bin/todo.sh list '(.)' \
| tail -n 1 \
| ${pkgs.gawk}/bin/awk '{ print " " $2 "/" $4 }'
'';
2020-06-10 17:37:25 +02:00
on_click = let sleepSeconds = 2.5;
in pkgs.writers.writeDash "show-tasks" ''
2020-06-10 17:37:25 +02:00
${pkgs.st}/bin/st -c floating -e ${pkgs.dash}/bin/dash -c "${pkgs.todo-txt-cli}/bin/todo.sh list && sleep ${
toString sleepSeconds
}"
'';
}
{
block = "custom";
interval = 30;
command =
2020-09-29 22:59:02 +02:00
let query = "tag:unread AND tag:inbox";
in pkgs.writers.writeDash "count-new-mail" ''
mail_count="$(${pkgs.notmuch}/bin/notmuch search ${lib.escapeShellArg query} | wc -l)"
[ "$mail_count" = 0 ] && printf "📭" || printf "📬"
echo "$mail_count"
'';
}
2019-11-05 21:59:51 +01:00
{
block = "net";
device = wirelessInterface;
2019-11-05 21:59:51 +01:00
speed_up = false;
speed_down = false;
2020-01-24 10:09:04 +01:00
signal_strength = true;
ssid = true;
2019-11-05 21:59:51 +01:00
}
{
block = "battery";
device = batteryName;
2019-11-05 21:59:51 +01:00
}
{
block = "sound";
2020-01-24 10:09:04 +01:00
on_click = "pavucontrol";
}
{
block = "disk_space";
alias = "💽";
2019-11-05 21:59:51 +01:00
}
{
block = "memory";
display_type = "memory";
format_mem = "{Mug}G";
2019-11-05 21:59:51 +01:00
clickable = false;
}
2020-06-10 17:37:25 +02:00
{ block = "load"; }
2019-11-05 21:59:51 +01:00
{
block = "time";
interval = 1;
format = "%Y-%m-%d (%W %a) %H:%M";
2019-11-05 21:59:51 +01:00
}
];
}