diff options
author | Mike Crute <mike@crute.us> | 2018-01-24 03:48:12 +0000 |
---|---|---|
committer | Mike Crute <mike@crute.us> | 2018-01-24 03:48:12 +0000 |
commit | 44443d7407dc7ba8bb613bea587b5216eb487e22 (patch) | |
tree | 853b2b13a3c73f3c806bf0345e2a67d42e57a906 /.irssi | |
parent | 505270c2db1e05b99678dbd38c664ad04951a75b (diff) | |
download | dotfiles-44443d7407dc7ba8bb613bea587b5216eb487e22.tar.bz2 dotfiles-44443d7407dc7ba8bb613bea587b5216eb487e22.tar.xz dotfiles-44443d7407dc7ba8bb613bea587b5216eb487e22.zip |
Cleanup some irssi stuff
Diffstat (limited to '.irssi')
-rw-r--r-- | .irssi/config.clean | 232 | ||||
-rw-r--r-- | .irssi/default.theme | 294 | ||||
-rw-r--r-- | .irssi/startup | 1 |
3 files changed, 294 insertions, 233 deletions
diff --git a/.irssi/config.clean b/.irssi/config.clean deleted file mode 100644 index 90d6f14..0000000 --- a/.irssi/config.clean +++ /dev/null | |||
@@ -1,232 +0,0 @@ | |||
1 | servers = ( | ||
2 | { | ||
3 | address = "ircs.work.com"; | ||
4 | chatnet = "Work"; | ||
5 | port = "6697"; | ||
6 | use_ssl = "yes"; | ||
7 | autoconnect = "yes"; | ||
8 | ssl_verify = "no"; | ||
9 | }, | ||
10 | { | ||
11 | address = "localhost"; | ||
12 | chatnet = "Bitlbee"; | ||
13 | port = "6667"; | ||
14 | autoconnect = "yes"; | ||
15 | } | ||
16 | ); | ||
17 | |||
18 | chatnets = { | ||
19 | Work = { | ||
20 | type = "IRC"; | ||
21 | nick = "mcrute"; | ||
22 | autosendcmd = "/msg userserv login mcrute [REDACTED]; wait 2000; /window goto userserv; /window close"; | ||
23 | }; | ||
24 | Bitlbee = { type = "IRC"; nick = "mcrute"; }; | ||
25 | }; | ||
26 | |||
27 | channels = ( | ||
28 | { | ||
29 | name = "&bitlbee"; | ||
30 | chatnet = "Bitlbee"; | ||
31 | autojoin = "yes"; | ||
32 | autosendcmd = "/exec -o echo identify [REDACTED]"; | ||
33 | } | ||
34 | ); | ||
35 | |||
36 | aliases = { | ||
37 | J = "join"; | ||
38 | WJOIN = "join -window"; | ||
39 | WQUERY = "query -window"; | ||
40 | LEAVE = "part"; | ||
41 | BYE = "quit"; | ||
42 | EXIT = "quit"; | ||
43 | SIGNOFF = "quit"; | ||
44 | DESCRIBE = "action"; | ||
45 | DATE = "time"; | ||
46 | HOST = "userhost"; | ||
47 | LAST = "lastlog"; | ||
48 | SAY = "msg *"; | ||
49 | WI = "whois"; | ||
50 | WII = "whois $0 $0"; | ||
51 | WW = "whowas"; | ||
52 | W = "who"; | ||
53 | N = "names"; | ||
54 | M = "msg"; | ||
55 | T = "topic"; | ||
56 | C = "clear"; | ||
57 | CL = "clear"; | ||
58 | K = "kick"; | ||
59 | KB = "kickban"; | ||
60 | KN = "knockout"; | ||
61 | BANS = "ban"; | ||
62 | B = "ban"; | ||
63 | MUB = "unban *"; | ||
64 | UB = "unban"; | ||
65 | IG = "ignore"; | ||
66 | UNIG = "unignore"; | ||
67 | SB = "scrollback"; | ||
68 | UMODE = "mode $N"; | ||
69 | WC = "window close"; | ||
70 | WN = "window new hide"; | ||
71 | SV = "say Irssi $J ($V) - http://irssi.org/"; | ||
72 | GOTO = "sb goto"; | ||
73 | CHAT = "dcc chat"; | ||
74 | RUN = "SCRIPT LOAD"; | ||
75 | CALC = "exec - if which bc &>/dev/null\\; then echo '$*' | bc | awk '{print \"$*=\"$$1}'\\; else echo bc was not found\\; fi"; | ||
76 | SBAR = "STATUSBAR"; | ||
77 | INVITELIST = "mode $C +I"; | ||
78 | Q = "QUERY"; | ||
79 | "MANUAL-WINDOWS" = "set use_status_window off;set autocreate_windows off;set autocreate_query_level none;set autoclose_windows off;set reuse_unused_windows on;save"; | ||
80 | EXEMPTLIST = "mode $C +e"; | ||
81 | ATAG = "WINDOW SERVER"; | ||
82 | tu = "twitter_update"; | ||
83 | }; | ||
84 | |||
85 | statusbar = { | ||
86 | # formats: | ||
87 | # when using {templates}, the template is shown only if it's argument isn't | ||
88 | # empty unless no argument is given. for example {sb} is printed always, | ||
89 | # but {sb $T} is printed only if $T isn't empty. | ||
90 | |||
91 | items = { | ||
92 | # start/end text in statusbars | ||
93 | barstart = "{sbstart}"; | ||
94 | barend = "{sbend}"; | ||
95 | |||
96 | topicbarstart = "{topicsbstart}"; | ||
97 | topicbarend = "{topicsbend}"; | ||
98 | |||
99 | # treated "normally", you could change the time/user name to whatever | ||
100 | time = "{sb $Z}"; | ||
101 | user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}"; | ||
102 | |||
103 | # treated specially .. window is printed with non-empty windows, | ||
104 | # window_empty is printed with empty windows | ||
105 | window = "{sb $winref:$tag/$itemname{sbmode $M}}"; | ||
106 | window_empty = "{sb $winref{sbservertag $tag}}"; | ||
107 | prompt = "{prompt $[.15]itemname}"; | ||
108 | prompt_empty = "{prompt $winname}"; | ||
109 | topic = " $topic"; | ||
110 | topic_empty = " Irssi v$J - http://irssi.org/help/"; | ||
111 | |||
112 | # all of these treated specially, they're only displayed when needed | ||
113 | lag = "{sb Lag: $0-}"; | ||
114 | act = "{sb Act: $0-}"; | ||
115 | more = "-- more --"; | ||
116 | }; | ||
117 | |||
118 | # there's two type of statusbars. root statusbars are either at the top | ||
119 | # of the screen or at the bottom of the screen. window statusbars are at | ||
120 | # the top/bottom of each split window in screen. | ||
121 | default = { | ||
122 | # the "default statusbar" to be displayed at the bottom of the window. | ||
123 | # contains all the normal items. | ||
124 | window = { | ||
125 | |||
126 | # window, root | ||
127 | type = "window"; | ||
128 | # top, bottom | ||
129 | placement = "bottom"; | ||
130 | # number | ||
131 | position = "1"; | ||
132 | # active, inactive, always | ||
133 | visible = "active"; | ||
134 | |||
135 | # list of items in statusbar in the display order | ||
136 | items = { | ||
137 | barstart = { priority = "100"; }; | ||
138 | time = { }; | ||
139 | user = { }; | ||
140 | window = { }; | ||
141 | window_empty = { }; | ||
142 | lag = { priority = "-1"; }; | ||
143 | act = { priority = "10"; }; | ||
144 | ac = { priority = "10"; }; | ||
145 | more = { priority = "-1"; alignment = "right"; }; | ||
146 | barend = { priority = "100"; alignment = "right"; }; | ||
147 | }; | ||
148 | disabled = "yes"; | ||
149 | }; | ||
150 | |||
151 | # statusbar to use in inactive split windows | ||
152 | window_inact = { | ||
153 | type = "window"; | ||
154 | placement = "bottom"; | ||
155 | position = "1"; | ||
156 | visible = "inactive"; | ||
157 | items = { | ||
158 | barstart = { priority = "100"; }; | ||
159 | window = { }; | ||
160 | window_empty = { }; | ||
161 | more = { priority = "-1"; alignment = "right"; }; | ||
162 | barend = { priority = "100"; alignment = "right"; }; | ||
163 | }; | ||
164 | }; | ||
165 | |||
166 | # we treat input line as yet another statusbar :) It's possible to | ||
167 | # add other items before or after the input line item. | ||
168 | prompt = { | ||
169 | type = "root"; | ||
170 | placement = "bottom"; | ||
171 | # we want to be at the bottom always | ||
172 | position = "100"; | ||
173 | visible = "always"; | ||
174 | items = { | ||
175 | prompt = { priority = "-1"; }; | ||
176 | prompt_empty = { priority = "-1"; }; | ||
177 | # treated specially, this is the real input line. | ||
178 | input = { priority = "10"; }; | ||
179 | }; | ||
180 | }; | ||
181 | |||
182 | # topicbar | ||
183 | topic = { | ||
184 | type = "root"; | ||
185 | placement = "top"; | ||
186 | position = "1"; | ||
187 | visible = "always"; | ||
188 | items = { | ||
189 | topicbarstart = { priority = "100"; }; | ||
190 | topic = { }; | ||
191 | topic_empty = { }; | ||
192 | topicbarend = { priority = "100"; alignment = "right"; }; | ||
193 | }; | ||
194 | }; | ||
195 | awl_0 = { | ||
196 | items = { | ||
197 | barstart = { priority = "100"; }; | ||
198 | awl_0 = { }; | ||
199 | barend = { priority = "100"; alignment = "right"; }; | ||
200 | }; | ||
201 | }; | ||
202 | }; | ||
203 | }; | ||
204 | settings = { | ||
205 | core = { | ||
206 | real_name = "Mike Crute"; | ||
207 | user_name = "mcrute"; | ||
208 | nick = "mcrute"; | ||
209 | }; | ||
210 | "fe-text" = { actlist_sort = "refnum"; }; | ||
211 | "fe-common/core" = { | ||
212 | autolog = "yes"; | ||
213 | autolog_path = "~/.irssi/logs/$tag/$0.log"; | ||
214 | theme = "ectobar"; | ||
215 | }; | ||
216 | "irc/core" = { channels_rejoin_unavailable = "yes"; }; | ||
217 | "perl/core/scripts" = { | ||
218 | awl_display_key = "$Q%K|%n$H$C$S"; | ||
219 | awl_prefer_name = "yes"; | ||
220 | twirssi_first_run = "no"; | ||
221 | twitter_poll_interval = "60"; | ||
222 | notify_nick = "mcrute"; | ||
223 | }; | ||
224 | }; | ||
225 | logs = { }; | ||
226 | windows = { 1 = { immortal = "yes"; name = "(st)"; level = "ALL"; }; }; | ||
227 | |||
228 | hilights = ( { text = "mcrute"; nick = "yes"; word = "yes"; } ); | ||
229 | ignores = ( | ||
230 | { mask = "#tos"; level = "JOINS PARTS QUITS MODES"; }, | ||
231 | { level = "JOINS PARTS QUITS MODES"; channels = ( "#tos" ); } | ||
232 | ); | ||
diff --git a/.irssi/default.theme b/.irssi/default.theme new file mode 100644 index 0000000..6b6aeab --- /dev/null +++ b/.irssi/default.theme | |||
@@ -0,0 +1,294 @@ | |||
1 | # When testing changes, the easiest way to reload the theme is with /RELOAD. | ||
2 | # This reloads the configuration file too, so if you did any changes remember | ||
3 | # to /SAVE it first. Remember also that /SAVE overwrites the theme file with | ||
4 | # old data so keep backups :) | ||
5 | |||
6 | # TEMPLATES: | ||
7 | |||
8 | # The real text formats that irssi uses are the ones you can find with | ||
9 | # /FORMAT command. Back in the old days all the colors and texts were mixed | ||
10 | # up in those formats, and it was really hard to change the colors since you | ||
11 | # might have had to change them in tens of different places. So, then came | ||
12 | # this templating system. | ||
13 | |||
14 | # Now the /FORMATs don't have any colors in them, and they also have very | ||
15 | # little other styling. Most of the stuff you need to change is in this | ||
16 | # theme file. If you can't change something here, you can always go back | ||
17 | # to change the /FORMATs directly, they're also saved in these .theme files. | ||
18 | |||
19 | # So .. the templates. They're those {blahblah} parts you see all over the | ||
20 | # /FORMATs and here. Their usage is simply {name parameter1 parameter2}. | ||
21 | # When irssi sees this kind of text, it goes to find "name" from abstracts | ||
22 | # block below and sets "parameter1" into $0 and "parameter2" into $1 (you | ||
23 | # can have more parameters of course). Templates can have subtemplates. | ||
24 | # Here's a small example: | ||
25 | # /FORMAT format hello {colorify {underline world}} | ||
26 | # abstracts = { colorify = "%G$0-%n"; underline = "%U$0-%U"; } | ||
27 | # When irssi expands the templates in "format", the final string would be: | ||
28 | # hello %G%Uworld%U%n | ||
29 | # ie. underlined bright green "world" text. | ||
30 | # and why "$0-", why not "$0"? $0 would only mean the first parameter, | ||
31 | # $0- means all the parameters. With {underline hello world} you'd really | ||
32 | # want to underline both of the words, not just the hello (and world would | ||
33 | # actually be removed entirely). | ||
34 | |||
35 | # COLORS: | ||
36 | |||
37 | # You can find definitions for the color format codes in docs/formats.txt. | ||
38 | |||
39 | # There's one difference here though. %n format. Normally it means the | ||
40 | # default color of the terminal (white mostly), but here it means the | ||
41 | # "reset color back to the one it was in higher template". For example | ||
42 | # if there was /FORMAT test %g{foo}bar, and foo = "%Y$0%n", irssi would | ||
43 | # print yellow "foo" (as set with %Y) but "bar" would be green, which was | ||
44 | # set at the beginning before the {foo} template. If there wasn't the %g | ||
45 | # at start, the normal behaviour of %n would occur. If you _really_ want | ||
46 | # to use the terminal's default color, use %N. | ||
47 | |||
48 | ############################################################################# | ||
49 | |||
50 | # default foreground color (%N) - -1 is the "default terminal color" | ||
51 | default_color = "-1"; | ||
52 | |||
53 | # print timestamp/servertag at the end of line, not at beginning | ||
54 | info_eol = "false"; | ||
55 | |||
56 | # these characters are automatically replaced with specified color | ||
57 | # (dark grey by default) | ||
58 | replaces = { "[]=" = "%K$*%n"; }; | ||
59 | |||
60 | abstracts = { | ||
61 | ## | ||
62 | ## generic | ||
63 | ## | ||
64 | |||
65 | # text to insert at the beginning of each non-message line | ||
66 | line_start = "%B-%n!%B-%n "; | ||
67 | |||
68 | # timestamp styling, nothing by default | ||
69 | timestamp = "$*"; | ||
70 | |||
71 | # any kind of text that needs hilighting, default is to bold | ||
72 | hilight = "%_$*%_"; | ||
73 | |||
74 | # any kind of error message, default is bright red | ||
75 | error = "%R$*%n"; | ||
76 | |||
77 | # channel name is printed | ||
78 | channel = "%_$*%_"; | ||
79 | |||
80 | # nick is printed | ||
81 | nick = "%_$*%_"; | ||
82 | |||
83 | # nick host is printed | ||
84 | nickhost = "[$*]"; | ||
85 | |||
86 | # server name is printed | ||
87 | server = "%_$*%_"; | ||
88 | |||
89 | # some kind of comment is printed | ||
90 | comment = "[$*]"; | ||
91 | |||
92 | # reason for something is printed (part, quit, kick, ..) | ||
93 | reason = "{comment $*}"; | ||
94 | |||
95 | # mode change is printed ([+o nick]) | ||
96 | mode = "{comment $*}"; | ||
97 | |||
98 | ## | ||
99 | ## channel specific messages | ||
100 | ## | ||
101 | |||
102 | # highlighted nick/host is printed (joins) | ||
103 | channick_hilight = "%C$*%n"; | ||
104 | chanhost_hilight = "{nickhost %c$*%n}"; | ||
105 | |||
106 | # nick/host is printed (parts, quits, etc.) | ||
107 | channick = "%c$*%n"; | ||
108 | chanhost = "{nickhost $*}"; | ||
109 | |||
110 | # highlighted channel name is printed | ||
111 | channelhilight = "%c$*%n"; | ||
112 | |||
113 | # ban/ban exception/invite list mask is printed | ||
114 | ban = "%c$*%n"; | ||
115 | |||
116 | ## | ||
117 | ## messages | ||
118 | ## | ||
119 | |||
120 | # the basic styling of how to print message, $0 = nick mode, $1 = nick | ||
121 | msgnick = "%K<%n$0$1-%K>%n %|"; | ||
122 | |||
123 | # message from you is printed. "ownnick" specifies the styling of the | ||
124 | # nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the | ||
125 | # whole line. | ||
126 | |||
127 | # Example1: You want the message text to be green: | ||
128 | # ownmsgnick = "{msgnick $0 $1-}%g"; | ||
129 | # Example2.1: You want < and > chars to be yellow: | ||
130 | # ownmsgnick = "%Y{msgnick $0 $1-%Y}%n"; | ||
131 | # (you'll also have to remove <> from replaces list above) | ||
132 | # Example2.2: But you still want to keep <> grey for other messages: | ||
133 | # pubmsgnick = "%K{msgnick $0 $1-%K}%n"; | ||
134 | # pubmsgmenick = "%K{msgnick $0 $1-%K}%n"; | ||
135 | # pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n"; | ||
136 | # ownprivmsgnick = "%K{msgnick $*%K}%n"; | ||
137 | # privmsgnick = "%K{msgnick %R$*%K}%n"; | ||
138 | |||
139 | # $0 = nick mode, $1 = nick | ||
140 | ownmsgnick = "{msgnick $0 $1-}"; | ||
141 | ownnick = "%_$*%n"; | ||
142 | |||
143 | # public message in channel, $0 = nick mode, $1 = nick | ||
144 | pubmsgnick = "{msgnick $0 $1-}"; | ||
145 | pubnick = "%N$*%n"; | ||
146 | |||
147 | # public message in channel meant for me, $0 = nick mode, $1 = nick | ||
148 | pubmsgmenick = "{msgnick $0 $1-}"; | ||
149 | menick = "%Y$*%n"; | ||
150 | |||
151 | # public highlighted message in channel | ||
152 | # $0 = highlight color, $1 = nick mode, $2 = nick | ||
153 | pubmsghinick = "{msgnick $1 $0$2-%n}"; | ||
154 | |||
155 | # channel name is printed with message | ||
156 | msgchannel = "%K:%c$*%n"; | ||
157 | |||
158 | # private message, $0 = nick, $1 = host | ||
159 | privmsg = "[%R$0%K(%r$1-%K)%n] "; | ||
160 | |||
161 | # private message from you, $0 = "msg", $1 = target nick | ||
162 | ownprivmsg = "[%r$0%K(%R$1-%K)%n] "; | ||
163 | |||
164 | # own private message in query | ||
165 | ownprivmsgnick = "{msgnick $*}"; | ||
166 | ownprivnick = "%_$*%n"; | ||
167 | |||
168 | # private message in query | ||
169 | privmsgnick = "{msgnick %R$*%n}"; | ||
170 | |||
171 | ## | ||
172 | ## Actions (/ME stuff) | ||
173 | ## | ||
174 | |||
175 | # used internally by this theme | ||
176 | action_core = "%_ * $*%n"; | ||
177 | |||
178 | # generic one that's used by most actions | ||
179 | action = "{action_core $*} "; | ||
180 | |||
181 | # own action, both private/public | ||
182 | ownaction = "{action $*}"; | ||
183 | |||
184 | # own action with target, both private/public | ||
185 | ownaction_target = "{action_core $0}%K:%c$1%n "; | ||
186 | |||
187 | # private action sent by others | ||
188 | pvtaction = "%_ (*) $*%n "; | ||
189 | pvtaction_query = "{action $*}"; | ||
190 | |||
191 | # public action sent by others | ||
192 | pubaction = "{action $*}"; | ||
193 | |||
194 | |||
195 | ## | ||
196 | ## other IRC events | ||
197 | ## | ||
198 | |||
199 | # whois | ||
200 | whois = "%# $[8]0 : $1-"; | ||
201 | |||
202 | # notices | ||
203 | ownnotice = "[%r$0%K(%R$1-%K)]%n "; | ||
204 | notice = "%K-%M$*%K-%n "; | ||
205 | pubnotice_channel = "%K:%m$*"; | ||
206 | pvtnotice_host = "%K(%m$*%K)"; | ||
207 | servernotice = "%g!$*%n "; | ||
208 | |||
209 | # CTCPs | ||
210 | ownctcp = "[%r$0%K(%R$1-%K)] "; | ||
211 | ctcp = "%g$*%n"; | ||
212 | |||
213 | # wallops | ||
214 | wallop = "%_$*%n: "; | ||
215 | wallop_nick = "%n$*"; | ||
216 | wallop_action = "%_ * $*%n "; | ||
217 | |||
218 | # netsplits | ||
219 | netsplit = "%R$*%n"; | ||
220 | netjoin = "%C$*%n"; | ||
221 | |||
222 | # /names list | ||
223 | names_prefix = ""; | ||
224 | names_nick = "[%_$0%_$1-] "; | ||
225 | names_nick_op = "{names_nick $*}"; | ||
226 | names_nick_halfop = "{names_nick $*}"; | ||
227 | names_nick_voice = "{names_nick $*}"; | ||
228 | names_users = "[%g$*%n]"; | ||
229 | names_channel = "%G$*%n"; | ||
230 | |||
231 | # DCC | ||
232 | dcc = "%g$*%n"; | ||
233 | dccfile = "%_$*%_"; | ||
234 | |||
235 | # DCC chat, own msg/action | ||
236 | dccownmsg = "[%r$0%K($1-%K)%n] "; | ||
237 | dccownnick = "%R$*%n"; | ||
238 | dccownquerynick = "%_$*%n"; | ||
239 | dccownaction = "{action $*}"; | ||
240 | dccownaction_target = "{action_core $0}%K:%c$1%n "; | ||
241 | |||
242 | # DCC chat, others | ||
243 | dccmsg = "[%G$1-%K(%g$0%K)%n] "; | ||
244 | dccquerynick = "%G$*%n"; | ||
245 | dccaction = "%_ (*dcc*) $*%n %|"; | ||
246 | |||
247 | ## | ||
248 | ## statusbar | ||
249 | ## | ||
250 | |||
251 | # default background for all statusbars. You can also give | ||
252 | # the default foreground color for statusbar items. | ||
253 | sb_background = "%4%w"; | ||
254 | |||
255 | # default backround for "default" statusbar group | ||
256 | #sb_default_bg = "%4"; | ||
257 | # background for prompt / input line | ||
258 | sb_prompt_bg = "%n"; | ||
259 | # background for info statusbar | ||
260 | sb_info_bg = "%8"; | ||
261 | # background for topicbar (same default) | ||
262 | #sb_topic_bg = "%4"; | ||
263 | |||
264 | # text at the beginning of statusbars. sb-item already puts | ||
265 | # space there,so we don't use anything by default. | ||
266 | sbstart = ""; | ||
267 | # text at the end of statusbars. Use space so that it's never | ||
268 | # used for anything. | ||
269 | sbend = " "; | ||
270 | |||
271 | topicsbstart = "{sbstart $*}"; | ||
272 | topicsbend = "{sbend $*}"; | ||
273 | |||
274 | prompt = "[$*] "; | ||
275 | |||
276 | sb = " %c[%n$*%c]%n"; | ||
277 | sbmode = "(%c+%n$*)"; | ||
278 | sbaway = " (%GzZzZ%n)"; | ||
279 | sbservertag = ":$0 (change with ^X)"; | ||
280 | sbnickmode = "$0"; | ||
281 | |||
282 | # activity in statusbar | ||
283 | |||
284 | # ',' separator | ||
285 | sb_act_sep = "%c$*"; | ||
286 | # normal text | ||
287 | sb_act_text = "%c$*"; | ||
288 | # public message | ||
289 | sb_act_msg = "%W$*"; | ||
290 | # hilight | ||
291 | sb_act_hilight = "%M$*"; | ||
292 | # hilight with specified color, $0 = color, $1 = text | ||
293 | sb_act_hilight_color = "$0$1-%n"; | ||
294 | }; | ||
diff --git a/.irssi/startup b/.irssi/startup deleted file mode 100644 index 2009d71..0000000 --- a/.irssi/startup +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | load xmpp | ||