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

feat(i3status-rust): show number of hot weechat buffers

This commit is contained in:
2022-08-23 21:44:34 +02:00
parent 8384363dcb
commit eb79f88c59
3 changed files with 57 additions and 1 deletions

View File

@@ -36,6 +36,7 @@ in {
icons.name = "awesome6"; icons.name = "awesome6";
icons.overrides.rss = ""; icons.overrides.rss = "";
icons.overrides.vpn = ""; icons.overrides.vpn = "";
icons.overrides.irc = "";
block = [ block = [
{ {
block = "weather"; block = "weather";
@@ -142,6 +143,19 @@ in {
json = true; json = true;
hide_when_empty = true; hide_when_empty = true;
} }
{
block = "custom";
interval = 60;
command = pkgs.writers.writeDash "weechat" ''
ssh makanek cat /var/lib/weechat/hotlist.txt | sed 's/,/\n/g' | wc -l | jq '{
text: (if . > 0 then . | tostring else "" end),
state: (if . > 0 then "Info" else "Idle" end),
icon: "irc"
}'
'';
json = true;
hide_when_empty = true;
}
{ {
block = "custom"; block = "custom";
interval = 5; interval = 5;

View File

@@ -0,0 +1,33 @@
{
stdenv,
lib,
fetchurl,
weechat,
}:
stdenv.mkDerivation {
pname = "hotlist2extern";
version = "1.0";
src = fetchurl {
url = "https://raw.githubusercontent.com/weechat/scripts/dd627975cf2e464f206f8006cb3963c8ee82044c/perl/hotlist2extern.pl";
sha256 = "1flpikm1kq6m9rh3hmafni9f2yi1b90w539k3hj55a5c9gddp2lr";
};
dontUnpack = true;
installPhase = ''
mkdir -p $out/share
cp $src $out/share/hotlist2extern.pl
'';
passthru = {
scripts = ["hotlist2extern.pl"];
};
meta = with lib; {
inherit (weechat.meta) platforms;
description = "Give hotlist to an external file/program";
license = licenses.gpl3;
maintainers = with maintainers; [kmein];
};
}

View File

@@ -5,6 +5,7 @@
}: let }: let
inherit (import <niveum/lib>) kieran; inherit (import <niveum/lib>) kieran;
relayPassword = lib.fileContents <system-secrets/weechat/relay>; relayPassword = lib.fileContents <system-secrets/weechat/relay>;
weechatHome = "/var/lib/weechat";
in { in {
systemd.services.weechat = let systemd.services.weechat = let
tmux = pkgs.writers.writeDash "tmux" '' tmux = pkgs.writers.writeDash "tmux" ''
@@ -31,6 +32,7 @@ in {
pkgs.weechatScripts.weechat-autosort pkgs.weechatScripts.weechat-autosort
pkgs.weechatScripts.colorize_nicks pkgs.weechatScripts.colorize_nicks
pkgs.weechatScripts.weechat-matrix pkgs.weechatScripts.weechat-matrix
(pkgs.callPackage <niveum/packages/weechatScripts/hotlist2extern.nix> {})
]; ];
settings = let settings = let
nick = "kmein"; nick = "kmein";
@@ -106,6 +108,13 @@ in {
}; };
}; };
logger.level.irc.news = 0; logger.level.irc.news = 0;
plugins.var.perl.hotlist2extern = {
external_command_hotlist = "echo %X > ${weechatHome}/hotlist.txt";
external_command_hotlist_empty = "echo -n %X > ${weechatHome}/hotlist.txt";
lowest_priority = "2";
use_title = "off";
delimiter = ",";
};
matrix.server.nibbana = { matrix.server.nibbana = {
address = "nibbana.jp"; address = "nibbana.jp";
username = nick; username = nick;
@@ -163,7 +172,7 @@ in {
wantedBy = ["multi-user.target"]; wantedBy = ["multi-user.target"];
restartIfChanged = true; restartIfChanged = true;
path = [pkgs.alacritty.terminfo]; path = [pkgs.alacritty.terminfo];
environment.WEECHAT_HOME = "/var/lib/weechat"; environment.WEECHAT_HOME = weechatHome;
preStart = "${pkgs.coreutils}/bin/rm $WEECHAT_HOME/*.conf"; preStart = "${pkgs.coreutils}/bin/rm $WEECHAT_HOME/*.conf";
script = "${tmux} -2 new-session -d -s IM ${weechat}/bin/weechat"; script = "${tmux} -2 new-session -d -s IM ${weechat}/bin/weechat";
preStop = "${tmux} kill-session -t IM"; preStop = "${tmux} kill-session -t IM";