This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / 2configs / weechat.nix
8.3 kB 286 lines
1{ config, pkgs, ... }: 2let 3 4 weechat-configured = pkgs.weechat-declarative.override { 5 config = { 6 scripts = [ 7 pkgs.weechatScripts.wee-slack 8 ]; 9 settings = { 10 irc.server_default.nicks = [ 11 "lassulus" 12 "hackulus" 13 ]; 14 irc.server.bitlbee = { 15 addresses = "localhost/6666"; 16 command = "msg &bitlbee identify \${sec.data.bitlbee}"; 17 }; 18 irc.server.hackint = { 19 addresses = "irc.hackint.org/6697"; 20 autojoin = [ 21 "#c3-gsm" 22 "#panthermoderns" 23 "#feldoffice" 24 "#36c3" 25 "#cccac" 26 "#nixos" 27 "#krebs" 28 "#krebstel" 29 "#c-base" 30 "#afra" 31 "#tvl" 32 "#tvix-dev" 33 "#eloop" 34 "#systemdultras" 35 "#rc3" 36 "#krebs-announce" 37 "#the_playlist" 38 "#germany" 39 "#hackint" 40 "#dezentrale" 41 "#hackerfleet \${sec.data.c3-gsm}" # TODO support channel passwords in a cooler way 42 ]; 43 ssl = true; 44 sasl_fail = "reconnect"; 45 sasl_username = "lassulus"; 46 sasl_password = "\${sec.data.hackint_sasl}"; 47 }; 48 irc.server.r = { 49 addresses = "irc.r"; 50 autojoin = [ 51 "#xxx" 52 "#autowifi" 53 "#brockman" 54 "#flix" 55 "#kollkoll" 56 "#noise" 57 "#mukke" 58 ]; 59 sasl_fail = "reconnect"; 60 sasl_username = "lassulus"; 61 sasl_password = "\${sec.data.r_sasl}"; 62 anti_flood_prio_high = 0; 63 anti_flood_prio_low = 0; 64 }; 65 irc.server.libera = { 66 addresses = "irc.libera.chat/6697"; 67 autojoin = [ 68 "#shackspace" 69 "#nixos" 70 "#krebs" 71 "#dezentrale" 72 "#tinc" 73 "#nixos-de" 74 "#fysi" 75 "#hillhacks" 76 "#nixos-rc3" 77 "#binaergewitter" 78 "#hackerfleet" 79 "#weechat" 80 ]; 81 ssl = true; 82 sasl_username = "lassulus"; 83 sasl_fail = "reconnect"; 84 sasl_password = "\${sec.data.libera_sasl}"; 85 }; 86 irc.server.news = { 87 addresses = "news.r"; 88 autojoin = [ 89 "#all" 90 "#aluhut" 91 "#querdenkos" 92 "#news" 93 "#drachengame" 94 ]; 95 anti_flood_prio_high = 0; 96 anti_flood_prio_low = 0; 97 }; 98 matrix.server.lassulus = { 99 address = "matrix.lassul.us"; 100 username = "lassulus"; 101 password = "\${sec.data.matrix_lassulus}"; 102 device_name = config.networking.hostName; 103 }; 104 plugins.var.python.go.short_name = true; 105 plugins.var.python.go.short_name_server = true; 106 plugins.var.python.go.fuzzy_search = true; 107 relay.network.password = "xxx"; # secret? 108 relay.port.weechat = 9998; 109 relay.weechat.commands = "*,!exec,!quit"; 110 weechat.look.buffer_time_format = "%m-%d_%H:%M:%S"; 111 weechat.look.item_time_format = "%m-%d_%H:%M:%S"; 112 irc.look.color_nicks_in_names = true; 113 irc.look.color_nicks_in_nicklist = true; 114 logger.file.mask = "$plugin.$name/%Y-%m-%d.weechatlog"; 115 logger.file.path = "/var/state/weechat_logs"; 116 logger.look.backlog = 1000; 117 weechat.notify.irc.news."#all" = "highlight"; 118 119 # setting logger levels for channels is currently not possible declarativly 120 # because of already defined 121 logger.level.core.weechat = 0; 122 logger.level.irc = 3; 123 logger.level.python = 3; 124 weechat.bar.title.color_bg = 0; 125 weechat.bar.status.color_bg = 0; 126 alias.cmd.reload = "exec -oc cat /etc/weechat.set"; 127 script.scripts.download_enabled = true; 128 weechat.look.prefix_align = "left"; 129 weechat.look.prefix_align_max = 20; 130 irc.look.server_buffer = "independent"; 131 matrix.look.server_buffer = "independent"; 132 weechat.bar.buflist.size_max = 20; 133 weechat.color.chat_nick_colors = [ 134 1 135 2 136 3 137 4 138 5 139 6 140 9 141 10 142 11 143 12 144 13 145 14 146 28 147 29 148 30 149 31 150 32 151 33 152 34 153 35 154 36 155 37 156 38 157 39 158 70 159 94 160 101 161 102 162 103 163 104 164 105 165 106 166 107 167 130 168 131 169 133 170 134 171 135 172 136 173 137 174 140 175 141 176 142 177 143 178 160 179 161 180 162 181 163 182 165 183 166 184 167 185 168 186 169 187 170 188 171 189 172 190 173 191 174 192 175 193 196 194 197 195 198 196 199 197 200 198 201 199 202 200 203 201 204 202 205 203 206 204 208 205 209 206 209 207 210 208 211 209 212 210 ]; 211 }; 212 extraCommands = '' 213 /script upgrade 214 /script install go.py 215 /script install nickregain.pl 216 /script install autosort.py 217 /key bind meta-q /go 218 /key bind meta-t /bar toggle nicklist 219 /key bind meta-y /bar toggle buflist 220 /filter addreplace irc_smart * irc_smart_filter * 221 /filter addreplace playlist_topic irc.*.#the_playlist irc_topic * 222 /filter addreplace xxx_joinpart irc.r.#xxx irc_join,irc_part,irc_quit * 223 /set logger.level.irc.news 0 224 /set logger.level.python.server.nixos_dev = 0; 225 /set logger.level.irc.hackint.#the_playlist = 0; 226 /connect bitlbee 227 /connect r 228 /connect news 229 /connect libera 230 /connect hackint 231 /matrix connect nixos_dev 232 /matrix connect lassulus 233 ''; 234 files."sec.conf" = toString ( 235 pkgs.writeText "sec.conf" '' 236 [crypt] 237 cipher = aes256 238 hash_algo = sha256 239 passphrase_command = "cat $CREDENTIALS_DIRECTORY/WEECHAT_PASSPHRASE" 240 salt = on 241 242 [data] 243 __passphrase__ = on 244 hackint_sasl = "5CA242E92E7A09B180711B50C4AE2E65C42934EB4E584EC82BC1281D8C72CD411D590C16CC435687C0DA13759873CC" 245 libera_sasl = "9500B5AC3B29F9CAA273F1B89DC99550E038AF95C4B47442B1FB4CB9F0D6B86B26015988AD39E642CA9C4A78DED7F42D1F409B268C93E778" 246 r_sasl = "CB6FB1421ED5A9094CD2C05462DB1FA87C4A675628ABD9AEC9928A1A6F3F96C07D9F26472331BAF80B7B73270680EB1BBEFD" 247 c3-gsm = "C49DD845900CFDFA93EEBCE4F1ABF4A963EF6082B7DA6410FA701CC77A04BB6C201FCB864988C4F2B97ED7D44D5A28F162" 248 bitlbee = "814ECAC59D9CF6E8340B566563E5D7E92AB92209B49C1EDE4CAAC32DD0DF1EC511D97C75E840C45D69BB9E3D03E79C" 249 matrix_lassulus = "0CA5C0F70A9F893881370F4A665B4CC40FBB1A41E53BC94916CD92B029103528611EC0B390116BE60FA79AE10F486E96E17B0824BE2DE1C97D87B88F5407330DAD70C044147533C36B09B7030CAD97" 250 '' 251 ); 252 }; 253 }; 254 255in 256{ 257 nixpkgs.config.permittedInsecurePackages = [ 258 "olm-3.2.16" 259 ]; 260 users.users.mainUser.packages = [ 261 weechat-configured 262 ]; 263 environment.etc."weechat.set".source = "${weechat-configured}/weechat.set"; 264 systemd.tmpfiles.rules = [ 265 "d /var/state/weechat_logs 0700 lass users -" 266 "d /var/state/weechat 0700 lass users -" 267 "d /var/state/weechat_cfg 0700 lass users -" 268 "L+ /home/lass/.local/share/weechat - - - - ../../../../var/state/weechat" 269 "L+ /home/lass/.config/weechat - - - - ../../../../var/state/weechat_cfg" 270 ]; 271 272 systemd.services.weechat = { 273 wantedBy = [ "multi-user.target" ]; 274 restartIfChanged = false; 275 serviceConfig = { 276 User = "lass"; 277 RemainAfterExit = true; 278 Type = "oneshot"; 279 # LoadCredential = [ 280 # "WEECHAT_PASSPHRASE:${config.krebs.secret.directory}/weechat_passphrase" 281 # ]; 282 ExecStart = "${pkgs.tmux}/bin/tmux -2 new-session -d -s IM ${weechat-configured}/bin/weechat"; 283 ExecStop = "${pkgs.tmux}/bin/tmux kill-session -t IM"; # TODO run save in weechat 284 }; 285 }; 286}