mirror of
https://github.com/kmein/niveum
synced 2026-03-29 08:41:07 +02:00
Compare commits
4 Commits
c683890ae6
...
ed703dde20
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ed703dde20 | ||
|
|
4d50c655fe | ||
| dafa3229bb | |||
| dee784472f |
48
flake.lock
generated
48
flake.lock
generated
@@ -658,11 +658,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1736373539,
|
||||
"narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=",
|
||||
"lastModified": 1739570999,
|
||||
"narHash": "sha256-eCc0/Q4bPpe4/AS+uzIrHLJcR6BxPQ69q2kD0/Qe6rU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "bd65bc3cde04c16755955630b344bc9e35272c56",
|
||||
"rev": "254d47082e23dbf72fdeca1da6fe1da420f478d8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1113,11 +1113,11 @@
|
||||
},
|
||||
"nixpkgs-unstable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1739062592,
|
||||
"narHash": "sha256-ZYGfL4BOr+hk33AhXH+7lsjCZ3bT7xeeyOocMxd7fRw=",
|
||||
"lastModified": 1739667012,
|
||||
"narHash": "sha256-6QWdUgz2O2Mm+pYx/AYB4Rot5/s1OR1C6bt30TI81yY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8572d1712c684f2eefae7a4d0fa27a2db0ae8aa2",
|
||||
"rev": "1dcdd535fef84d4671129a10e7072d56dca9a4d3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1235,11 +1235,11 @@
|
||||
},
|
||||
"nixpkgs_7": {
|
||||
"locked": {
|
||||
"lastModified": 1738843498,
|
||||
"narHash": "sha256-7x+Q4xgFj9UxZZO9aUDCR8h4vyYut4zPUvfj3i+jBHE=",
|
||||
"lastModified": 1739484910,
|
||||
"narHash": "sha256-wjWLzdM7PIq4ZAe7k3vyjtgVJn6b0UeodtRFlM/6W5U=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f5a32fa27df91dfc4b762671a0e0a859a8a0058f",
|
||||
"rev": "0b73e36b1962620a8ac551a37229dd8662dac5c8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1251,11 +1251,11 @@
|
||||
},
|
||||
"nixpkgs_8": {
|
||||
"locked": {
|
||||
"lastModified": 1739020877,
|
||||
"narHash": "sha256-mIvECo/NNdJJ/bXjNqIh8yeoSjVLAuDuTUzAo7dzs8Y=",
|
||||
"lastModified": 1739446958,
|
||||
"narHash": "sha256-+/bYK3DbPxMIvSL4zArkMX0LQvS7rzBKXnDXLfKyRVc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a79cfe0ebd24952b580b1cf08cd906354996d547",
|
||||
"rev": "2ff53fe64443980e139eaa286017f53f88336dd0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1399,11 +1399,11 @@
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1739051154,
|
||||
"narHash": "sha256-wkbSWAiSMYgtNZhPkEXNeAjiYq4PHjl9cv3hEs1t9cs=",
|
||||
"lastModified": 1739667383,
|
||||
"narHash": "sha256-kfqBQH3ZvTviLJRHJTfHze536WTfmtWc57yvXPaXetY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "d3238bc79d835124ff94295ce7c31ef6f3da304f",
|
||||
"rev": "0d565194b2868f76c3ebf0f1126b1921d1a4e352",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1572,11 +1572,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1738981474,
|
||||
"narHash": "sha256-YIELTXxfATG0g1wXjyaOWA4qrlubds3MG4FvMPCxSGg=",
|
||||
"lastModified": 1739586408,
|
||||
"narHash": "sha256-UN9hRKRE1eLU8C0cioTZubaCZQTA8NDc8/4vCpS5pS0=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "5c571e5ff246d8fc5f76ba6e38dc8edb6e4002fe",
|
||||
"rev": "3dbc0ce1c0690b83cfb9a9a51fbe90c3bc8f9916",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1650,11 +1650,11 @@
|
||||
"nixpkgs": "nixpkgs_9"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1738257334,
|
||||
"narHash": "sha256-gHLvjH9Kw+8LFHPtVDzhAjVJNcwexka9Gf26DXnIso0=",
|
||||
"lastModified": 1739285100,
|
||||
"narHash": "sha256-tQZ8sXCU6yvC0ut/+ezRUSd89Nbyqqn0JVCjYDwcqQA=",
|
||||
"owner": "krebs",
|
||||
"repo": "stockholm",
|
||||
"rev": "0ae99893e47cbbe0ad027c661e918551cdeb5459",
|
||||
"rev": "8d0538bf86e4f9df4f5cc358a1760b255be797e9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1716,11 +1716,11 @@
|
||||
"tinted-tmux": "tinted-tmux"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1738025311,
|
||||
"narHash": "sha256-O0iFoytYpSxQdWeggIvrHjU5kmX/SRC9mcah9GbwlHk=",
|
||||
"lastModified": 1739392863,
|
||||
"narHash": "sha256-mU+aYnob+7Ycu/tU9oFoweIJwdjLj0uxcp+I1czH4DM=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "70505ba00ff09390b84cf50d52d48ee828727976",
|
||||
"rev": "dfa4128b453d424c9fe3ef919776e722c0b766cb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
11
secrets.txt
11
secrets.txt
@@ -1,13 +1,10 @@
|
||||
secrets/alertmanager-token-reporters.age
|
||||
secrets/cifs-credentials-hu-berlin.age
|
||||
secrets/cifs-credentials-zodiac.age
|
||||
secrets/di-fm-key.age
|
||||
secrets/email-password-cock.age
|
||||
secrets/email-password-dslalewa.age
|
||||
secrets/email-password-fsklassp.age
|
||||
secrets/email-password-fysi.age
|
||||
secrets/email-password-letos.age
|
||||
secrets/email-password-meinhak99.age
|
||||
secrets/email-password-meinhaki.age
|
||||
secrets/email-password-posteo.age
|
||||
secrets/fatteh-retiolum-privateKey-ed25519.age
|
||||
secrets/fatteh-retiolum-privateKey-rsa.age
|
||||
@@ -30,6 +27,10 @@ secrets/kabsa-syncthing-key.age
|
||||
secrets/kabsa-wireguard-aether-key.age
|
||||
secrets/kabsa-wireguard-aether-psk.age
|
||||
secrets/kfm-password.age
|
||||
secrets/kibbeh-retiolum-privateKey-ed25519.age
|
||||
secrets/kibbeh-retiolum-privateKey-rsa.age
|
||||
secrets/kibbeh-syncthing-cert.age
|
||||
secrets/kibbeh-syncthing-key.age
|
||||
secrets/ledger-basicAuth.age
|
||||
secrets/makanek-retiolum-privateKey-ed25519.age
|
||||
secrets/makanek-retiolum-privateKey-rsa.age
|
||||
@@ -39,10 +40,8 @@ secrets/manakish-syncthing-cert.age
|
||||
secrets/manakish-syncthing-key.age
|
||||
secrets/manakish-wireguard-aether-key.age
|
||||
secrets/manakish-wireguard-aether-psk.age
|
||||
secrets/mastodon-token-autorenkalender.age
|
||||
secrets/mastodon-token-celan.age
|
||||
secrets/mastodon-token-hesychius.age
|
||||
secrets/mastodon-token-logotheca.age
|
||||
secrets/mastodon-token-nietzsche.age
|
||||
secrets/mastodon-token-smyth.age
|
||||
secrets/mastodon-token-tlgwotd.age
|
||||
|
||||
@@ -89,6 +89,7 @@
|
||||
xournalpp
|
||||
jellyfin-media-player
|
||||
niveumPackages.mpv-tv
|
||||
telegram-desktop
|
||||
(niveumPackages.mpv-radio.override { di-fm-key-file = config.age.secrets.di-fm-key.path; })
|
||||
niveumPackages.meteo
|
||||
spotify
|
||||
|
||||
@@ -0,0 +1,210 @@
|
||||
{ lib, pkgs, config, unstablePackages, ... }:
|
||||
let
|
||||
inherit (import ../../lib) kieran;
|
||||
weechatHome = "/var/lib/weechat";
|
||||
weechat-declarative =
|
||||
pkgs.callPackage ../../packages/weechat-declarative.nix {
|
||||
inherit unstablePackages;
|
||||
};
|
||||
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 = weechat-declarative.override {
|
||||
config = {
|
||||
scripts = [
|
||||
pkgs.weechatScripts.weechat-autosort
|
||||
pkgs.weechatScripts.colorize_nicks
|
||||
# pkgs.weechatScripts.weechat-matrix
|
||||
(pkgs.callPackage ../../packages/weechatScripts/hotlist2extern.nix
|
||||
{ })
|
||||
];
|
||||
settings = let nick = "kmein";
|
||||
in {
|
||||
weechat = {
|
||||
look.mouse = true;
|
||||
look.prefix_align_max = 15;
|
||||
color.chat_nick_colors =
|
||||
lib.lists.subtractLists (lib.range 52 69 ++ lib.range 231 248)
|
||||
(lib.range 31 254);
|
||||
};
|
||||
irc = {
|
||||
look = {
|
||||
server_buffer = "independent";
|
||||
color_nicks_in_nicklist = true;
|
||||
};
|
||||
server_default = {
|
||||
nicks = nick;
|
||||
msg_part = "tschö mit ö";
|
||||
msg_quit = "ciao kakao";
|
||||
msg_kick = "warum machst du diese?";
|
||||
realname = lib.head (lib.strings.split " " kieran.name);
|
||||
};
|
||||
server = {
|
||||
hackint = {
|
||||
autoconnect = true;
|
||||
addresses = "irc.hackint.org/6697";
|
||||
ipv6 = true;
|
||||
tls = true;
|
||||
autojoin = [ "#eloop" "#krebs" "#the_playlist" ];
|
||||
sasl_mechanism = "plain";
|
||||
sasl_username = nick;
|
||||
sasl_password = "\${sec.data.hackint_sasl}";
|
||||
};
|
||||
libera = {
|
||||
autoconnect = true;
|
||||
addresses = "irc.libera.chat/6697";
|
||||
tls = true;
|
||||
autojoin = [ "#haskell" "#fysi" "#binaergewitter" "#vim" ];
|
||||
sasl_mechanism = "plain";
|
||||
sasl_username = nick;
|
||||
sasl_password = "\${sec.data.libera_sasl}";
|
||||
};
|
||||
retiolum = {
|
||||
autoconnect = true;
|
||||
addresses = "irc.r";
|
||||
tls = false;
|
||||
autojoin = [ "#xxx" "#brockman" "#flix" ];
|
||||
command = lib.concatStringsSep "\\;" [
|
||||
"/oper admin aidsballs"
|
||||
"/msg nickserv always-on true"
|
||||
"/msg nickserv autoreplay-missed on"
|
||||
"/msg nickserv auto-away"
|
||||
];
|
||||
sasl_mechanism = "plain";
|
||||
sasl_username = nick;
|
||||
sasl_password = "\${sec.data.retiolum_sasl}";
|
||||
};
|
||||
brockman = {
|
||||
autoconnect = true;
|
||||
addresses = "brockman.news/6667";
|
||||
tls = false;
|
||||
autojoin = [ "#cook" "#kmeinung" ];
|
||||
sasl_username = nick;
|
||||
sasl_password = "\${sec.data.brockman_sasl}";
|
||||
sasl_mechanism = "plain";
|
||||
};
|
||||
};
|
||||
};
|
||||
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.look.server_buffer = "merge_without_core";
|
||||
matrix.server.nibbana = {
|
||||
address = "nibbana.jp";
|
||||
username = nick;
|
||||
password = "\${sec.data.nibbana_account}";
|
||||
autoconnect = true;
|
||||
};
|
||||
alias.cmd.mod = "/quote omode $channel +o $nick";
|
||||
relay = {
|
||||
port.weechat = 9000;
|
||||
network.password = "\${sec.data.relay_password}";
|
||||
};
|
||||
filters = {
|
||||
zerocovid = {
|
||||
buffer = "irc.news.*";
|
||||
tags = "*";
|
||||
regex =
|
||||
"[kc]orona|💉|🤒|😷|[kc]ovid|virus|lockdown|va[kc][sc]in|vaxx|mutante|mutation|impf|pandemi|κορ[ωο]ν[αο]ϊό|корона|expert|infe[ck]t|infizi|in[cz]iden[cz]|sars-cov|drosten|virolog|lauterbach|delta|omi[ck]ron|epidemi|booster|r-wert";
|
||||
};
|
||||
smart = {
|
||||
buffer = "*";
|
||||
tags = "irc_smart_filter";
|
||||
regex = "*";
|
||||
};
|
||||
playlist_topic = {
|
||||
buffer = "irc.*.#the_playlist";
|
||||
tags = "irc_topic";
|
||||
regex = "*";
|
||||
};
|
||||
brockman_notice = {
|
||||
buffer = "irc.news.*";
|
||||
tags = "irc_notice";
|
||||
regex = "*";
|
||||
};
|
||||
bots = {
|
||||
buffer = "irc.retiolum.*";
|
||||
tags = [ "nick_gitlab" "nick_prometheus" ];
|
||||
regex = "*";
|
||||
};
|
||||
people = {
|
||||
buffer = "irc.*.*";
|
||||
tags = map (name: "nick_${name}") [ "mod_p[matrix-fli" ];
|
||||
regex = "*";
|
||||
};
|
||||
};
|
||||
};
|
||||
extraCommands = ''
|
||||
/save
|
||||
/connect -all
|
||||
'';
|
||||
# /matrix connect nibbana
|
||||
};
|
||||
};
|
||||
in {
|
||||
description = "Weechat bouncer";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartIfChanged = true;
|
||||
path = [ pkgs.alacritty.terminfo ];
|
||||
environment.WEECHAT_HOME = weechatHome;
|
||||
# preStart = "${pkgs.coreutils}/bin/rm $WEECHAT_HOME/*.conf";
|
||||
script = "${tmux} -2 new-session -d -s IM ${weechat}/bin/weechat";
|
||||
preStop = "${tmux} kill-session -t IM";
|
||||
serviceConfig = {
|
||||
User = "weechat";
|
||||
Group = "weechat";
|
||||
RemainAfterExit = true;
|
||||
Type = "oneshot";
|
||||
};
|
||||
};
|
||||
|
||||
users.groups.weechat = { };
|
||||
users.extraUsers.weechat = {
|
||||
useDefaultShell = true;
|
||||
openssh.authorizedKeys.keys = kieran.sshKeys ++ [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC+KVDmYYH7mA8v81e9O3swXm3ZVYY9t4HP65ud61uXy weechat_android@kibbeh"
|
||||
];
|
||||
createHome = true;
|
||||
group = "weechat";
|
||||
home = "/var/lib/weechat";
|
||||
isSystemUser = true;
|
||||
packages = [ pkgs.tmux ];
|
||||
};
|
||||
|
||||
age.secrets.weechat-sec = {
|
||||
file = ../../secrets/weechat-sec.conf.age;
|
||||
path = "/var/lib/weechat/sec.conf";
|
||||
owner = "weechat";
|
||||
group = "weechat";
|
||||
mode = "440";
|
||||
};
|
||||
|
||||
niveum.passport.services = [{
|
||||
title = "weechat bouncer";
|
||||
description = "keeps me logged in on IRC.";
|
||||
}];
|
||||
}
|
||||
Reference in New Issue
Block a user