This repository has no description
0

Configure Feed

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

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