2021-02-09 20:56:32 +01:00
|
|
|
|
{ lib, pkgs, ... }:
|
2021-02-07 22:03:24 +01:00
|
|
|
|
let
|
2021-05-04 09:30:49 +02:00
|
|
|
|
inherit (import <niveum/lib>) kieran;
|
2021-02-09 20:56:32 +01:00
|
|
|
|
relayPassword = lib.fileContents <system-secrets/weechat/relay>;
|
2021-02-06 13:44:38 +01:00
|
|
|
|
in {
|
|
|
|
|
|
systemd.services.weechat =
|
|
|
|
|
|
let
|
|
|
|
|
|
tmux = pkgs.writers.writeDash "tmux" ''
|
|
|
|
|
|
exec ${pkgs.tmux}/bin/tmux -f ${pkgs.writeText "tmux.conf" ''
|
|
|
|
|
|
set-option -g prefix `
|
|
|
|
|
|
unbind-key C-b
|
|
|
|
|
|
bind ` send-prefix
|
|
|
|
|
|
|
|
|
|
|
|
set-option -g status off
|
|
|
|
|
|
set-option -g default-terminal screen-256color
|
|
|
|
|
|
|
|
|
|
|
|
#use session instead of windows
|
|
|
|
|
|
bind-key c new-session
|
|
|
|
|
|
bind-key p switch-client -p
|
|
|
|
|
|
bind-key n switch-client -n
|
|
|
|
|
|
bind-key C-s switch-client -l
|
|
|
|
|
|
''} "$@"
|
|
|
|
|
|
'';
|
|
|
|
|
|
weechat = pkgs.weechat.override {
|
|
|
|
|
|
configure = { ... }: {
|
2021-06-01 19:14:00 +02:00
|
|
|
|
scripts = [ pkgs.weechatScripts.weechat-autosort pkgs.weechatScripts.colorize_nicks ];
|
2021-05-30 00:12:47 +02:00
|
|
|
|
init = let
|
|
|
|
|
|
coolColors = lib.lists.subtractLists (lib.range 52 69 ++ lib.range 231 248) (lib.range 31 254);
|
|
|
|
|
|
nick = "kmein";
|
|
|
|
|
|
in ''
|
2021-05-30 00:01:23 +02:00
|
|
|
|
/mouse enable
|
2021-05-30 00:12:47 +02:00
|
|
|
|
/set irc.server_default.nicks "${nick}"
|
2021-02-06 13:44:38 +01:00
|
|
|
|
/set irc.server_default.msg_part "tschö mit ö"
|
|
|
|
|
|
/set irc.server_default.msg_quit "ciao kakao"
|
|
|
|
|
|
/set irc.server_default.msg_kick "warum machst du diese?"
|
|
|
|
|
|
/set irc.server_default.realname "${kieran.name}"
|
2021-02-07 22:03:24 +01:00
|
|
|
|
|
2021-03-23 21:00:48 +01:00
|
|
|
|
/set irc.look.color_nicks_in_nicklist "on"
|
|
|
|
|
|
/set weechat.color.chat_nick_colors "${lib.concatMapStringsSep "," toString coolColors}"
|
|
|
|
|
|
|
2021-02-08 08:16:52 +01:00
|
|
|
|
/server add hackint irc.hackint.org/6697 -ipv6 -ssl
|
2021-05-20 12:58:15 +02:00
|
|
|
|
/server add libera irc.libera.chat/6697 -ssl
|
2021-08-26 18:40:19 +02:00
|
|
|
|
/server add oftc irc.oftc.net/6697 -ssl -ipv6
|
2021-05-25 21:20:23 +02:00
|
|
|
|
/server add retiolum irc.r
|
|
|
|
|
|
/server add news news.r
|
2021-02-07 22:03:24 +01:00
|
|
|
|
|
2021-02-06 13:44:38 +01:00
|
|
|
|
/alias add mod /quote omode $channel +o $nick
|
2021-02-07 22:03:24 +01:00
|
|
|
|
|
2021-02-09 20:56:32 +01:00
|
|
|
|
/relay add weechat 9000
|
|
|
|
|
|
/set relay.network.password ${relayPassword}
|
|
|
|
|
|
|
2021-08-26 18:40:19 +02:00
|
|
|
|
/set irc.server.oftc.command /msg nickserv IDENTIFY ${lib.strings.fileContents <system-secrets/irc/oftc>};/msg nickserv SET CLOAK ON
|
|
|
|
|
|
/set irc.server.oftc.autojoin "#osm,#osm-de"
|
|
|
|
|
|
|
2021-07-26 10:15:21 +02:00
|
|
|
|
/set irc.server.hackint.autojoin "#krebs,#nixos,#the_playlist"
|
2021-05-30 00:12:47 +02:00
|
|
|
|
/set irc.server.hackint.sasl_mechanism plain
|
|
|
|
|
|
/set irc.server.hackint.sasl_username ${nick}
|
|
|
|
|
|
/set irc.server.hackint.sasl_password ${lib.strings.fileContents <system-secrets/irc/hackint>}
|
|
|
|
|
|
|
2021-06-24 12:43:28 +02:00
|
|
|
|
/set irc.server.libera.autojoin "#flipdot,#haskell,#nixos,#fysi,#binaergewitter"
|
2021-05-30 00:12:47 +02:00
|
|
|
|
/set irc.server.libera.sasl_mechanism plain
|
|
|
|
|
|
/set irc.server.libera.sasl_username ${nick}
|
|
|
|
|
|
/set irc.server.libera.sasl_password ${lib.strings.fileContents <system-secrets/irc/libera>}
|
|
|
|
|
|
|
2021-05-25 21:20:23 +02:00
|
|
|
|
/set irc.server.retiolum.autojoin "#xxx,#brockman,#flix"
|
2021-06-14 14:56:07 +02:00
|
|
|
|
/set irc.server.retiolum.command "/oper aids balls"
|
2021-05-25 21:20:23 +02:00
|
|
|
|
/set irc.server.news.autojoin "#cook,#drachengame,#oepnv,#kmeinung,#memes"
|
|
|
|
|
|
/set irc.server.news.command "/oper aids balls"
|
2021-08-11 14:33:18 +02:00
|
|
|
|
/set logger.level.irc.news 0
|
2021-02-07 22:03:24 +01:00
|
|
|
|
|
2021-09-01 15:29:41 +02:00
|
|
|
|
/filter addreplace zerocovid * * [kc]orona|[kc]ovid|virus|lockdown|va[kc][sc]in|mutante|mutation|impf|pandemi|κορ[ωο]ν[αο]ϊό|корона|expert|infe[ck]t|infizi|in[cz]iden[cz]|sars-cov|drosten|virolog|lauterbach|delta
|
2021-06-01 19:04:16 +02:00
|
|
|
|
/filter addreplace joinquit * irc_join,irc_part,irc_quit,irc_nick *
|
2021-05-25 21:20:23 +02:00
|
|
|
|
/filter addreplace playlist_topic irc.*.#the_playlist irc_topic *
|
2021-09-14 11:25:25 +02:00
|
|
|
|
/filter addreplace brockman_notice irc.news.* irc_notice *
|
2021-02-07 22:03:24 +01:00
|
|
|
|
|
|
|
|
|
|
/set irc.look.server_buffer independent
|
|
|
|
|
|
|
2021-05-20 12:58:15 +02:00
|
|
|
|
/connect libera
|
2021-08-26 18:40:19 +02:00
|
|
|
|
/connect oftc
|
2021-02-08 08:16:52 +01:00
|
|
|
|
/connect hackint
|
2021-05-25 21:20:23 +02:00
|
|
|
|
/connect retiolum
|
|
|
|
|
|
/connect news
|
2021-02-06 13:44:38 +01:00
|
|
|
|
'';
|
|
|
|
|
|
};
|
|
|
|
|
|
};
|
|
|
|
|
|
in {
|
|
|
|
|
|
description = "Weechat bouncer";
|
|
|
|
|
|
after = [ "network.target" ];
|
|
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
2021-02-07 22:03:24 +01:00
|
|
|
|
restartIfChanged = true;
|
2021-02-06 13:44:38 +01:00
|
|
|
|
path = [ pkgs.alacritty.terminfo ];
|
|
|
|
|
|
environment.WEECHAT_HOME = "/var/lib/weechat";
|
|
|
|
|
|
script = "${tmux} -2 new-session -d -s IM ${weechat}/bin/weechat";
|
|
|
|
|
|
preStop = "${tmux} kill-session -t IM";
|
|
|
|
|
|
serviceConfig = {
|
|
|
|
|
|
User = "weechat";
|
|
|
|
|
|
RemainAfterExit = true;
|
|
|
|
|
|
Type = "oneshot";
|
|
|
|
|
|
};
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
users.groups.weechat = {};
|
|
|
|
|
|
users.extraUsers.weechat = {
|
|
|
|
|
|
useDefaultShell = true;
|
2021-02-09 20:56:32 +01:00
|
|
|
|
openssh.authorizedKeys.keys = kieran.sshKeys pkgs ++ [
|
|
|
|
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC+KVDmYYH7mA8v81e9O3swXm3ZVYY9t4HP65ud61uXy weechat_android@heym"
|
|
|
|
|
|
];
|
2021-02-06 13:44:38 +01:00
|
|
|
|
createHome = true;
|
|
|
|
|
|
group = "weechat";
|
|
|
|
|
|
home = "/var/lib/weechat";
|
|
|
|
|
|
isSystemUser = true;
|
|
|
|
|
|
packages = [ pkgs.tmux ];
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|