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